@coti-io/coti-contracts 1.1.0 → 1.3.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 (433) hide show
  1. package/.github/workflows/npm-publish.yml +19 -15
  2. package/README.md +3 -1
  3. package/contracts/disperse/coinByRatio/FixedRatioCoinDisperser.sol +452 -0
  4. package/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1.sol +490 -0
  5. package/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow.sol +432 -0
  6. package/contracts/disperse/disperseToken/MintDisperser.sol +120 -0
  7. package/contracts/disperse/disperseToken/TokenDisperser.sol +139 -0
  8. package/contracts/messaging/PrivateMessaging.sol +456 -0
  9. package/contracts/mocks/messaging/PrivateMessagingHarness.sol +54 -0
  10. package/contracts/mocks/oracle/CotiPriceConsumerMock.sol +31 -0
  11. package/contracts/mocks/token/ERC20DecimalsMock.sol +21 -0
  12. package/contracts/mocks/token/ERC20Mock.sol +19 -0
  13. package/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.sol +18 -0
  14. package/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.sol +18 -0
  15. package/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.sol +44 -0
  16. package/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.sol +23 -0
  17. package/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock.sol +29 -0
  18. package/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.sol +9 -4
  19. package/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol +39 -0
  20. package/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock.sol +29 -0
  21. package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock.sol +18 -0
  22. package/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock.sol +12 -0
  23. package/contracts/mocks/utils/mpc/Arithmetic128TestsContract.sol +123 -0
  24. package/contracts/mocks/utils/mpc/Arithmetic256TestsContract.sol +122 -0
  25. package/contracts/mocks/utils/mpc/Bitwise128TestsContract.sol +65 -0
  26. package/contracts/mocks/utils/mpc/Bitwise256TestsContract.sol +65 -0
  27. package/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract.sol +64 -0
  28. package/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract.sol +64 -0
  29. package/contracts/mocks/utils/mpc/Comparison128TestsContract.sol +98 -0
  30. package/contracts/mocks/utils/mpc/Comparison256TestsContract.sol +98 -0
  31. package/contracts/mocks/utils/mpc/MinMax128TestsContract.sol +44 -0
  32. package/contracts/mocks/utils/mpc/MinMax256TestsContract.sol +44 -0
  33. package/contracts/mocks/utils/mpc/MinimalImplementation.sol +55 -0
  34. package/contracts/mocks/utils/mpc/MinimalProxy.sol +27 -0
  35. package/contracts/mocks/utils/mpc/MpcOperations128TestContract.sol +267 -0
  36. package/contracts/mocks/utils/mpc/MpcOperationsTestContract.sol +334 -0
  37. package/contracts/mocks/utils/mpc/Mux128TestsContract.sol +24 -0
  38. package/contracts/mocks/utils/mpc/Mux256TestsContract.sol +24 -0
  39. package/contracts/mocks/utils/mpc/OnBoard128TestsContract.sol +93 -0
  40. package/contracts/mocks/utils/mpc/OnBoard256TestsContract.sol +116 -0
  41. package/contracts/mocks/utils/mpc/PrivacyImplementationV1.sol +157 -0
  42. package/contracts/mocks/utils/mpc/PrivacyImplementationV2.sol +133 -0
  43. package/contracts/mocks/utils/mpc/PrivacyProxy.sol +137 -0
  44. package/contracts/mocks/utils/mpc/Random128TestsContract.sol +32 -0
  45. package/contracts/mocks/utils/mpc/Random256TestsContract.sol +32 -0
  46. package/contracts/mocks/utils/mpc/Shift128TestsContract.sol +36 -0
  47. package/contracts/mocks/utils/mpc/Shift256TestsContract.sol +36 -0
  48. package/contracts/mocks/utils/mpc/Transfer128TestsContract.sol +29 -0
  49. package/contracts/mocks/utils/mpc/Transfer256TestsContract.sol +29 -0
  50. package/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract.sol +32 -0
  51. package/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract.sol +32 -0
  52. package/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract.sol +59 -0
  53. package/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract.sol +63 -0
  54. package/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract.sol +99 -0
  55. package/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.sol +7 -6
  56. package/contracts/node/CotiNodeRewards.sol +199 -0
  57. package/contracts/node/SoulboundNodeNFT.sol +519 -0
  58. package/contracts/oracle/CotiPriceConsumer.sol +103 -0
  59. package/contracts/oracle/ICotiPriceConsumer.sol +15 -0
  60. package/contracts/oracle/IStdReference.sol +26 -0
  61. package/contracts/privacyBridge/PrivacyBridge.sol +600 -0
  62. package/contracts/privacyBridge/PrivacyBridgeCotiNative.sol +316 -0
  63. package/contracts/privacyBridge/PrivacyBridgeERC20.sol +333 -0
  64. package/contracts/privacyBridge/PrivacyBridgeUSDCe.sol +22 -0
  65. package/contracts/privacyBridge/PrivacyBridgeUSDT.sol +23 -0
  66. package/contracts/privacyBridge/PrivacyBridgeWADA.sol +23 -0
  67. package/contracts/privacyBridge/PrivacyBridgeWBTC.sol +23 -0
  68. package/contracts/privacyBridge/PrivacyBridgeWETH.sol +23 -0
  69. package/contracts/privacyBridge/PrivacyBridgegCoti.sol +23 -0
  70. package/contracts/token/PrivateERC20/IPrivateERC20.sol +273 -40
  71. package/contracts/token/PrivateERC20/ITokenReceiver.sol +17 -0
  72. package/contracts/token/PrivateERC20/ITokenReceiverEncrypted.sol +20 -0
  73. package/contracts/token/PrivateERC20/PrivateERC20.sol +861 -152
  74. package/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.sol +17 -0
  75. package/contracts/token/PrivateERC20/tokens/PrivateCOTI.sol +13 -0
  76. package/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.sol +17 -0
  77. package/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.sol +17 -0
  78. package/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.sol +17 -0
  79. package/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.sol +17 -0
  80. package/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.sol +13 -0
  81. package/contracts/utils/mpc/MpcCore.sol +10780 -4962
  82. package/contracts/utils/mpc/MpcInterface.sol +7 -2
  83. package/hardhat/gasPriceBump.ts +60 -0
  84. package/hardhat.config.ts +63 -12
  85. package/package.json +22 -4
  86. package/scripts/add-bridge-operators.cjs +87 -0
  87. package/scripts/deploy-coti-price-consumer-mainnet.cjs +49 -0
  88. package/scripts/deployCotiNodeRewards.ts +51 -0
  89. package/scripts/deploySoulboundNodeNFT.ts +57 -0
  90. package/scripts/redeploy-private-and-bridges.cjs +201 -0
  91. package/scripts/set-bridge-limits-mainnet.cjs +177 -0
  92. package/scripts/verify-mainnet-private-bridges.cjs +289 -0
  93. package/sonar-project.properties +11 -0
  94. package/test/messaging/PrivateMessaging.test.ts +158 -0
  95. package/test/privacyBridge/UnifiedPrivacyBridges.test.cjs +1663 -0
  96. package/test/token/PrivateERC20/PrivacyBridge.fees.test.ts +250 -0
  97. package/test/token/PrivateERC20/PrivateERC20.test.ts +1109 -268
  98. package/test/utils/mpc/Bitwise128.test.ts +92 -0
  99. package/test/utils/mpc/Bitwise256.test.ts +101 -0
  100. package/test/utils/mpc/BuildInputText128.test.ts +398 -0
  101. package/test/utils/mpc/CheckedArithmetic128.test.ts +45 -0
  102. package/test/utils/mpc/CheckedArithmetic256.test.ts +45 -0
  103. package/test/utils/mpc/Comparison128.test.ts +48 -0
  104. package/test/utils/mpc/Comparison256.test.ts +48 -0
  105. package/test/utils/mpc/InvalidCiphertext.test.ts +179 -0
  106. package/test/utils/mpc/InvalidCiphertext128.test.ts +179 -0
  107. package/test/utils/mpc/InvalidCiphertext256.test.ts +201 -0
  108. package/test/utils/mpc/InvalidTransfer128.test.ts +166 -0
  109. package/test/utils/mpc/InvalidTransfer256.test.ts +158 -0
  110. package/test/utils/mpc/MinMax128.test.ts +44 -0
  111. package/test/utils/mpc/MinMax256.test.ts +44 -0
  112. package/test/utils/mpc/MinimalProxyDemo.test.ts +280 -0
  113. package/test/utils/mpc/MpcOperations.test.ts +589 -0
  114. package/test/utils/mpc/MpcOperations128.test.ts +632 -0
  115. package/test/utils/mpc/Mux128.test.ts +41 -0
  116. package/test/utils/mpc/Mux256.test.ts +41 -0
  117. package/test/utils/mpc/NegativeCases.test.ts +478 -0
  118. package/test/utils/mpc/NegativeCases128.test.ts +237 -0
  119. package/test/utils/mpc/NegativeCases256.test.ts +236 -0
  120. package/test/utils/mpc/OnBoard128.test.ts +90 -0
  121. package/test/utils/mpc/OnBoard256.test.ts +114 -0
  122. package/test/utils/mpc/Precompile128.test.ts +51 -0
  123. package/test/utils/mpc/Precompile256.test.ts +115 -0
  124. package/test/utils/mpc/ProxyValidation.test.ts +199 -0
  125. package/test/utils/mpc/Random128.test.ts +47 -0
  126. package/test/utils/mpc/Random256.test.ts +47 -0
  127. package/test/utils/mpc/Shift128.test.ts +41 -0
  128. package/test/utils/mpc/Shift256.test.ts +41 -0
  129. package/test/utils/mpc/Transfer128.test.ts +46 -0
  130. package/test/utils/mpc/Transfer256.test.ts +46 -0
  131. package/test/utils/mpc/TransferWithAllowance128.test.ts +48 -0
  132. package/test/utils/mpc/TransferWithAllowance256.test.ts +48 -0
  133. package/test/utils/mpc/UpgradeablePrivacyProxy.test.ts +307 -0
  134. package/test/utils/mpc/ValidateCiphertext.test.ts +221 -0
  135. package/test/utils/mpc/ValidateCiphertext256.test.ts +161 -0
  136. package/test/utils/mpc/ValidateCiphertext256Decryption.test.ts +383 -0
  137. package/test/utils/mpc/WalletEncryptionFailures.test.ts +494 -0
  138. package/test/utils/privateErc20Helpers.ts +97 -0
  139. package/typechain-types/@openzeppelin/contracts/access/AccessControl.ts +324 -0
  140. package/typechain-types/@openzeppelin/contracts/access/AccessControlEnumerable.ts +361 -0
  141. package/typechain-types/@openzeppelin/contracts/access/IAccessControl.ts +292 -0
  142. package/typechain-types/@openzeppelin/contracts/access/IAccessControlEnumerable.ts +329 -0
  143. package/typechain-types/@openzeppelin/contracts/access/Ownable.ts +153 -0
  144. package/typechain-types/@openzeppelin/contracts/access/index.ts +8 -0
  145. package/typechain-types/@openzeppelin/contracts/index.ts +4 -0
  146. package/typechain-types/@openzeppelin/contracts/security/Pausable.ts +150 -0
  147. package/typechain-types/@openzeppelin/contracts/security/index.ts +4 -0
  148. package/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts +330 -0
  149. package/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts +262 -0
  150. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts +286 -0
  151. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.ts +143 -0
  152. package/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts +5 -0
  153. package/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts +7 -0
  154. package/typechain-types/@openzeppelin/contracts/token/ERC721/ERC721.ts +420 -0
  155. package/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.ts +420 -0
  156. package/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/index.ts +4 -0
  157. package/typechain-types/@openzeppelin/contracts/token/ERC721/index.ts +3 -0
  158. package/typechain-types/@openzeppelin/contracts/token/index.ts +2 -0
  159. package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperser.ts +679 -0
  160. package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1.ts +735 -0
  161. package/typechain-types/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow.ts +734 -0
  162. package/typechain-types/contracts/disperse/coinByRatio/index.ts +6 -0
  163. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/IMintableERC20.ts +97 -0
  164. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/IOwnable.ts +95 -0
  165. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser.ts +228 -0
  166. package/typechain-types/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +6 -0
  167. package/typechain-types/contracts/disperse/disperseToken/TokenDisperser.ts +191 -0
  168. package/typechain-types/contracts/disperse/disperseToken/index.ts +6 -0
  169. package/typechain-types/contracts/disperse/index.ts +7 -0
  170. package/typechain-types/contracts/index.ts +10 -0
  171. package/typechain-types/contracts/messaging/PrivateMessaging.ts +871 -0
  172. package/typechain-types/contracts/messaging/index.ts +4 -0
  173. package/typechain-types/contracts/mocks/index.ts +4 -0
  174. package/typechain-types/contracts/mocks/messaging/PrivateMessagingHarness.ts +951 -0
  175. package/typechain-types/contracts/mocks/messaging/index.ts +4 -0
  176. package/typechain-types/contracts/mocks/oracle/CotiPriceConsumerMock.ts +163 -0
  177. package/typechain-types/contracts/mocks/oracle/index.ts +4 -0
  178. package/typechain-types/contracts/mocks/token/ERC20DecimalsMock.ts +349 -0
  179. package/typechain-types/contracts/mocks/token/ERC20Mock.ts +368 -0
  180. package/typechain-types/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock.ts +108 -0
  181. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock.ts +1892 -0
  182. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock.ts +1296 -0
  183. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock.ts +1270 -0
  184. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock.ts +166 -0
  185. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.ts +827 -78
  186. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/IPrivateERC20TransferAndCallEncrypted.ts +102 -0
  187. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/PrivateERC20ReentrantReceiverMock.ts +154 -0
  188. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/index.ts +5 -0
  189. package/typechain-types/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock.ts +155 -0
  190. package/typechain-types/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock.ts +107 -0
  191. package/typechain-types/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock.ts +100 -0
  192. package/typechain-types/contracts/mocks/token/PrivateERC20/index.ts +10 -0
  193. package/typechain-types/contracts/mocks/token/index.ts +2 -0
  194. package/typechain-types/contracts/mocks/utils/mpc/{Arithmetic128BitTestsContract.ts → Arithmetic128TestsContract.ts} +96 -126
  195. package/typechain-types/contracts/mocks/utils/mpc/{Arithmetic256BitTestsContract.ts → Arithmetic256TestsContract.ts} +97 -133
  196. package/typechain-types/contracts/mocks/utils/mpc/{Bitwise128BitTestsContract.ts → Bitwise128TestsContract.ts} +52 -59
  197. package/typechain-types/contracts/mocks/utils/mpc/{Bitwise256BitTestsContract.ts → Bitwise256TestsContract.ts} +52 -59
  198. package/typechain-types/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract.ts +206 -0
  199. package/typechain-types/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract.ts +206 -0
  200. package/typechain-types/contracts/mocks/utils/mpc/{Comparison128BitTestsContract.ts → Comparison128TestsContract.ts} +115 -97
  201. package/typechain-types/contracts/mocks/utils/mpc/{Comparison256BitTestsContract.ts → Comparison256TestsContract.ts} +115 -97
  202. package/typechain-types/contracts/mocks/utils/mpc/MinMax128TestsContract.ts +142 -0
  203. package/typechain-types/contracts/mocks/utils/mpc/MinMax256TestsContract.ts +142 -0
  204. package/typechain-types/contracts/mocks/utils/mpc/MinimalImplementation.ts +259 -0
  205. package/typechain-types/contracts/mocks/utils/mpc/MinimalProxy.ts +90 -0
  206. package/typechain-types/contracts/mocks/utils/mpc/MpcOperations128TestContract.ts +388 -0
  207. package/typechain-types/contracts/mocks/utils/mpc/MpcOperationsTestContract.ts +455 -0
  208. package/typechain-types/contracts/mocks/utils/mpc/Mux128TestsContract.ts +109 -0
  209. package/typechain-types/contracts/mocks/utils/mpc/Mux256TestsContract.ts +109 -0
  210. package/typechain-types/contracts/mocks/utils/mpc/OnBoard128TestsContract.ts +166 -0
  211. package/typechain-types/contracts/mocks/utils/mpc/OnBoard256TestsContract.ts +194 -0
  212. package/typechain-types/contracts/mocks/utils/mpc/PrivacyImplementationV1.ts +385 -0
  213. package/typechain-types/contracts/mocks/utils/mpc/PrivacyImplementationV2.ts +441 -0
  214. package/typechain-types/contracts/mocks/utils/mpc/PrivacyProxy.ts +201 -0
  215. package/typechain-types/contracts/mocks/utils/mpc/Random128TestsContract.ts +131 -0
  216. package/typechain-types/contracts/mocks/utils/mpc/Random256TestsContract.ts +131 -0
  217. package/typechain-types/contracts/mocks/utils/mpc/Shift128TestsContract.ts +142 -0
  218. package/typechain-types/contracts/mocks/utils/mpc/Shift256TestsContract.ts +142 -0
  219. package/typechain-types/contracts/mocks/utils/mpc/Transfer128TestsContract.ts +109 -0
  220. package/typechain-types/contracts/mocks/utils/mpc/Transfer256TestsContract.ts +109 -0
  221. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract.ts +128 -0
  222. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract.ts +128 -0
  223. package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract.ts +198 -0
  224. package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract.ts +182 -0
  225. package/typechain-types/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract.ts +257 -0
  226. package/typechain-types/contracts/mocks/utils/mpc/index.ts +32 -8
  227. package/typechain-types/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.ts +6 -6
  228. package/typechain-types/contracts/node/CotiNodeRewards.ts +566 -0
  229. package/typechain-types/contracts/node/SoulboundNodeNFT.sol/IERC5192.ts +123 -0
  230. package/typechain-types/contracts/node/SoulboundNodeNFT.sol/SoulboundNodeNFT.ts +975 -0
  231. package/typechain-types/contracts/node/SoulboundNodeNFT.sol/index.ts +5 -0
  232. package/typechain-types/contracts/node/index.ts +6 -0
  233. package/typechain-types/contracts/oracle/CotiPriceConsumer.ts +256 -0
  234. package/typechain-types/contracts/oracle/ICotiPriceConsumer.ts +119 -0
  235. package/typechain-types/contracts/oracle/IStdReference.ts +136 -0
  236. package/typechain-types/contracts/oracle/index.ts +6 -0
  237. package/typechain-types/contracts/privacyBridge/PrivacyBridge.ts +1628 -0
  238. package/typechain-types/contracts/privacyBridge/PrivacyBridgeCotiNative.ts +1870 -0
  239. package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/IHasDecimals.ts +84 -0
  240. package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/PrivacyBridgeERC20.ts +1892 -0
  241. package/typechain-types/contracts/privacyBridge/PrivacyBridgeERC20.sol/index.ts +5 -0
  242. package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDCe.ts +1892 -0
  243. package/typechain-types/contracts/privacyBridge/PrivacyBridgeUSDT.ts +1892 -0
  244. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWADA.ts +1892 -0
  245. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWBTC.ts +1892 -0
  246. package/typechain-types/contracts/privacyBridge/PrivacyBridgeWETH.ts +1892 -0
  247. package/typechain-types/contracts/privacyBridge/PrivacyBridgegCoti.ts +1892 -0
  248. package/typechain-types/contracts/privacyBridge/index.ts +13 -0
  249. package/typechain-types/contracts/token/PrivateERC20/IPrivateERC20.ts +507 -70
  250. package/typechain-types/contracts/token/PrivateERC20/ITokenReceiver.ts +100 -0
  251. package/typechain-types/contracts/token/PrivateERC20/ITokenReceiverEncrypted.ts +99 -0
  252. package/typechain-types/contracts/token/PrivateERC20/PrivateERC20.ts +833 -68
  253. package/typechain-types/contracts/token/PrivateERC20/index.ts +4 -0
  254. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC.ts +1270 -0
  255. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateCOTI.ts +1270 -0
  256. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken.ts +1270 -0
  257. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateTetherUSD.ts +1270 -0
  258. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedADA.ts +1270 -0
  259. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC.ts +1270 -0
  260. package/typechain-types/contracts/token/PrivateERC20/tokens/PrivateWrappedEther.ts +1270 -0
  261. package/typechain-types/contracts/token/PrivateERC20/tokens/index.ts +10 -0
  262. package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +111 -10
  263. package/typechain-types/factories/@openzeppelin/contracts/access/AccessControlEnumerable__factory.ts +276 -0
  264. package/typechain-types/factories/@openzeppelin/contracts/access/AccessControl__factory.ts +229 -0
  265. package/typechain-types/factories/@openzeppelin/contracts/access/IAccessControlEnumerable__factory.ts +244 -0
  266. package/typechain-types/factories/@openzeppelin/contracts/access/IAccessControl__factory.ts +197 -0
  267. package/typechain-types/factories/@openzeppelin/contracts/access/Ownable__factory.ts +74 -0
  268. package/typechain-types/factories/@openzeppelin/contracts/access/index.ts +8 -0
  269. package/typechain-types/factories/@openzeppelin/contracts/index.ts +2 -0
  270. package/typechain-types/factories/@openzeppelin/contracts/security/Pausable__factory.ts +61 -0
  271. package/typechain-types/factories/@openzeppelin/contracts/security/index.ts +4 -0
  272. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts +356 -0
  273. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts +205 -0
  274. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts +247 -0
  275. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit__factory.ts +100 -0
  276. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts +5 -0
  277. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +6 -0
  278. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/ERC721__factory.ts +416 -0
  279. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata__factory.ts +355 -0
  280. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/extensions/index.ts +4 -0
  281. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/index.ts +2 -0
  282. package/typechain-types/factories/@openzeppelin/contracts/token/index.ts +1 -0
  283. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperserLeftoverS1__factory.ts +791 -0
  284. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperserUnlimitedWindow__factory.ts +711 -0
  285. package/typechain-types/factories/contracts/disperse/coinByRatio/FixedRatioCoinDisperser__factory.ts +759 -0
  286. package/typechain-types/factories/contracts/disperse/coinByRatio/index.ts +6 -0
  287. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/IMintableERC20__factory.ts +43 -0
  288. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/IOwnable__factory.ts +35 -0
  289. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/MintDisperser__factory.ts +203 -0
  290. package/typechain-types/factories/contracts/disperse/disperseToken/MintDisperser.sol/index.ts +6 -0
  291. package/typechain-types/factories/contracts/disperse/disperseToken/TokenDisperser__factory.ts +198 -0
  292. package/typechain-types/factories/contracts/disperse/disperseToken/index.ts +5 -0
  293. package/typechain-types/factories/contracts/disperse/index.ts +5 -0
  294. package/typechain-types/factories/contracts/index.ts +5 -0
  295. package/typechain-types/factories/contracts/messaging/PrivateMessaging__factory.ts +1035 -0
  296. package/typechain-types/factories/contracts/messaging/index.ts +4 -0
  297. package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
  298. package/typechain-types/factories/contracts/mocks/index.ts +2 -0
  299. package/typechain-types/factories/contracts/mocks/messaging/PrivateMessagingHarness__factory.ts +1161 -0
  300. package/typechain-types/factories/contracts/mocks/messaging/index.ts +4 -0
  301. package/typechain-types/factories/contracts/mocks/oracle/CotiPriceConsumerMock__factory.ts +159 -0
  302. package/typechain-types/factories/contracts/mocks/oracle/index.ts +4 -0
  303. package/typechain-types/factories/contracts/mocks/token/ERC20DecimalsMock__factory.ts +394 -0
  304. package/typechain-types/factories/contracts/mocks/token/ERC20Mock__factory.ts +392 -0
  305. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/EncryptedTokenReceiverMock__factory.ts +125 -0
  306. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivacyBridgeERC20Mock__factory.ts +1797 -0
  307. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20AuditorSupplyMock__factory.ts +1514 -0
  308. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20CappedMock__factory.ts +1466 -0
  309. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20GtCallerMock__factory.ts +165 -0
  310. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +975 -127
  311. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/IPrivateERC20TransferAndCallEncrypted__factory.ts +54 -0
  312. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/PrivateERC20ReentrantReceiverMock__factory.ts +159 -0
  313. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20ReentrantReceiverMock.sol/index.ts +5 -0
  314. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicReentrantTokenReceiverMock__factory.ts +164 -0
  315. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicTokenReceiverBoolMock__factory.ts +130 -0
  316. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PublicTokenReceiverMock__factory.ts +102 -0
  317. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/index.ts +9 -0
  318. package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
  319. package/typechain-types/factories/contracts/mocks/token/index.ts +2 -0
  320. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128TestsContract__factory.ts +330 -0
  321. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256TestsContract__factory.ts +330 -0
  322. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +1 -1
  323. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128TestsContract__factory.ts +184 -0
  324. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256TestsContract__factory.ts +184 -0
  325. package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +1 -1
  326. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic128WithOverflowBitTestsContract__factory.ts +203 -0
  327. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmetic256WithOverflowBitTestsContract__factory.ts +203 -0
  328. package/typechain-types/factories/contracts/mocks/utils/mpc/CheckedArithmeticWIthOverflowBitTestsContract.sol/CheckedArithmeticWithOverflowBitTestsContract__factory.ts +1 -1
  329. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128TestsContract__factory.ts +295 -0
  330. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +1 -1
  331. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256TestsContract__factory.ts +295 -0
  332. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +1 -1
  333. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax128TestsContract__factory.ts +147 -0
  334. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMax256TestsContract__factory.ts +147 -0
  335. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +1 -1
  336. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalImplementation__factory.ts +263 -0
  337. package/typechain-types/factories/contracts/mocks/utils/mpc/MinimalProxy__factory.ts +104 -0
  338. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +1 -1
  339. package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +1 -1
  340. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperations128TestContract__factory.ts +723 -0
  341. package/typechain-types/factories/contracts/mocks/utils/mpc/MpcOperationsTestContract__factory.ts +1410 -0
  342. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux128TestsContract__factory.ts +115 -0
  343. package/typechain-types/factories/contracts/mocks/utils/mpc/Mux256TestsContract__factory.ts +115 -0
  344. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +1 -1
  345. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard128TestsContract__factory.ts +175 -0
  346. package/typechain-types/factories/contracts/mocks/utils/mpc/OnBoard256TestsContract__factory.ts +205 -0
  347. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV1__factory.ts +521 -0
  348. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyImplementationV2__factory.ts +648 -0
  349. package/typechain-types/factories/contracts/mocks/utils/mpc/PrivacyProxy__factory.ts +179 -0
  350. package/typechain-types/factories/contracts/mocks/utils/mpc/Random128TestsContract__factory.ts +131 -0
  351. package/typechain-types/factories/contracts/mocks/utils/mpc/Random256TestsContract__factory.ts +131 -0
  352. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift128TestsContract__factory.ts +147 -0
  353. package/typechain-types/factories/contracts/mocks/utils/mpc/Shift256TestsContract__factory.ts +147 -0
  354. package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
  355. package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
  356. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer128TestsContract__factory.ts +135 -0
  357. package/typechain-types/factories/contracts/mocks/utils/mpc/Transfer256TestsContract__factory.ts +135 -0
  358. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +1 -1
  359. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +1 -1
  360. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract__factory.ts +154 -0
  361. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract__factory.ts +154 -0
  362. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +1 -1
  363. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +1 -1
  364. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +1 -1
  365. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +1 -1
  366. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +1 -1
  367. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +1 -1
  368. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext128TestsContract__factory.ts +190 -0
  369. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertext256TestsContract__factory.ts +210 -0
  370. package/typechain-types/factories/contracts/mocks/utils/mpc/ValidateCiphertextTestsContract__factory.ts +260 -0
  371. package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +32 -8
  372. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +10 -28
  373. package/typechain-types/factories/contracts/node/CotiNodeRewards__factory.ts +549 -0
  374. package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/IERC5192__factory.ts +54 -0
  375. package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/SoulboundNodeNFT__factory.ts +947 -0
  376. package/typechain-types/factories/contracts/node/SoulboundNodeNFT.sol/index.ts +5 -0
  377. package/typechain-types/factories/contracts/node/index.ts +5 -0
  378. package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +1 -1
  379. package/typechain-types/factories/contracts/oracle/CotiPriceConsumer__factory.ts +295 -0
  380. package/typechain-types/factories/contracts/oracle/ICotiPriceConsumer__factory.ts +73 -0
  381. package/typechain-types/factories/contracts/oracle/IStdReference__factory.ts +107 -0
  382. package/typechain-types/factories/contracts/oracle/index.ts +6 -0
  383. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeCotiNative__factory.ts +1676 -0
  384. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/IHasDecimals__factory.ts +38 -0
  385. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/PrivacyBridgeERC20__factory.ts +1678 -0
  386. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeERC20.sol/index.ts +5 -0
  387. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDCe__factory.ts +1782 -0
  388. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeUSDT__factory.ts +1782 -0
  389. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWADA__factory.ts +1782 -0
  390. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWBTC__factory.ts +1782 -0
  391. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgeWETH__factory.ts +1782 -0
  392. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridge__factory.ts +1367 -0
  393. package/typechain-types/factories/contracts/privacyBridge/PrivacyBridgegCoti__factory.ts +1782 -0
  394. package/typechain-types/factories/contracts/privacyBridge/index.ts +12 -0
  395. package/typechain-types/factories/contracts/token/PrivateERC20/IPrivateERC20__factory.ts +639 -61
  396. package/typechain-types/factories/contracts/token/PrivateERC20/ITokenReceiverEncrypted__factory.ts +53 -0
  397. package/typechain-types/factories/contracts/token/PrivateERC20/ITokenReceiver__factory.ts +54 -0
  398. package/typechain-types/factories/contracts/token/PrivateERC20/PrivateERC20__factory.ts +986 -120
  399. package/typechain-types/factories/contracts/token/PrivateERC20/index.ts +3 -0
  400. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateBridgedUSDC__factory.ts +1445 -0
  401. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTITreasuryGovernanceToken__factory.ts +1451 -0
  402. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateCOTI__factory.ts +1442 -0
  403. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateTetherUSD__factory.ts +1445 -0
  404. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedADA__factory.ts +1445 -0
  405. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedBTC__factory.ts +1445 -0
  406. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/PrivateWrappedEther__factory.ts +1451 -0
  407. package/typechain-types/factories/contracts/token/PrivateERC20/tokens/index.ts +10 -0
  408. package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +1 -1
  409. package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +126 -0
  410. package/typechain-types/hardhat.d.ts +1772 -278
  411. package/typechain-types/index.ts +182 -16
  412. package/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract.sol +0 -260
  413. package/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract.sol +0 -264
  414. package/contracts/mocks/utils/mpc/Bitwise128BitTestsContract.sol +0 -91
  415. package/contracts/mocks/utils/mpc/Bitwise256BitTestsContract.sol +0 -91
  416. package/contracts/mocks/utils/mpc/Comparison128BitTestsContract.sol +0 -158
  417. package/contracts/mocks/utils/mpc/Comparison256BitTestsContract.sol +0 -158
  418. package/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.sol +0 -185
  419. package/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.sol +0 -190
  420. package/contracts/mocks/utils/mpc/README.md +0 -486
  421. package/test/utils/mpc/Unsigned128BitIntegers.test.ts +0 -945
  422. package/test/utils/mpc/Unsigned256BitIntegers.test.ts +0 -1124
  423. package/test/utils/mpc/helpers.ts +0 -77
  424. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract.ts +0 -302
  425. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract.ts +0 -322
  426. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic128BitTestsContract__factory.ts +0 -349
  427. package/typechain-types/factories/contracts/mocks/utils/mpc/Arithmetic256BitTestsContract__factory.ts +0 -364
  428. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise128BitTestsContract__factory.ts +0 -182
  429. package/typechain-types/factories/contracts/mocks/utils/mpc/Bitwise256BitTestsContract__factory.ts +0 -182
  430. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison128BitTestsContract__factory.ts +0 -255
  431. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison256BitTestsContract__factory.ts +0 -255
  432. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous128BitTestsContract__factory.ts +0 -332
  433. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous256BitTestsContract__factory.ts +0 -380
@@ -386,7 +386,7 @@ const _abi = [
386
386
  ] as const;
387
387
 
388
388
  const _bytecode =
389
- "0x608060405234801561001057600080fd5b50613308806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063701251311161005057806370125131146100c1578063d7b0fe63146100d4578063f6029cb3146100e757600080fd5b80634717f97c1461006c5780636a3ae654146100ac575b600080fd5b60005460ff80821691610100810482169162010000909104165b6040805160ff948516815293909216602084015215159082015260600160405180910390f35b6100bf6100ba36600461317a565b6100fa565b005b6100866100cf366004613242565b610b69565b6100bf6100e236600461317a565b610e0a565b6100bf6100f536600461317a565b6112c6565b600080600061011688608001518960a0015189604001516126af565b9250925092506101258361276d565b63ffffffff168660ff1614801561014c57506101408261276d565b63ffffffff168560ff16145b8015610163575061015c81612810565b1515841515145b6101b45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064015b60405180910390fd5b6101cb88600001518960a0015189604001516128a1565b919450925090506101db8361276d565b63ffffffff168660ff1614801561020257506101f68261276d565b63ffffffff168560ff16145b8015610219575061021281612810565b1515841515145b6102655760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61027c8860800151896020015189604001516128bd565b9194509250905061028c8361276d565b63ffffffff168660ff161480156102b357506102a78261276d565b63ffffffff168560ff16145b80156102ca57506102c381612810565b1515841515145b6103165760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61032d88604001518960a0015189604001516128d9565b9194509250905061033d8361276d565b63ffffffff168660ff1614801561036457506103588261276d565b63ffffffff168560ff16145b801561037b575061037481612810565b1515841515145b6103c75760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6103de8860800151896060015189604001516128f5565b919450925090506103ee8361276d565b63ffffffff168660ff1614801561041557506104098261276d565b63ffffffff168560ff16145b801561042c575061042581612810565b1515841515145b6104785760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61048f88608001518960a001518960000151612911565b9194509250905061049f8361276d565b63ffffffff168660ff161480156104c657506104ba8261276d565b63ffffffff168560ff16145b80156104dd57506104d681612810565b1515841515145b6105295760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b875160a0890151885161053d92919061292d565b9194509250905061054d8361276d565b63ffffffff168660ff1614801561057457506105688261276d565b63ffffffff168560ff16145b801561058b575061058481612810565b1515841515145b6105d75760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6105ee886080015189602001518960000151612949565b919450925090506105fe8361276d565b63ffffffff168660ff1614801561062557506106198261276d565b63ffffffff168560ff16145b801561063c575061063581612810565b1515841515145b6106885760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61069f88604001518960a001518960000151612965565b919450925090506106af8361276d565b63ffffffff168660ff161480156106d657506106ca8261276d565b63ffffffff168560ff16145b80156106ed57506106e681612810565b1515841515145b6107395760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610750886080015189606001518960000151612982565b919450925090506107608361276d565b63ffffffff168660ff16148015610787575061077b8261276d565b63ffffffff168560ff16145b801561079e575061079781612810565b1515841515145b6107ea5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61080188608001518960a00151896020015161299f565b919450925090506108118361276d565b63ffffffff168660ff16148015610838575061082c8261276d565b63ffffffff168560ff16145b801561084f575061084881612810565b1515841515145b61089b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6108b288600001518960a0015189602001516129bb565b919450925090506108c28361276d565b63ffffffff168660ff161480156108e957506108dd8261276d565b63ffffffff168560ff16145b801561090057506108f981612810565b1515841515145b61094c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6109638860800151896020015189602001516129d8565b919450925090506109738361276d565b63ffffffff168660ff1614801561099a575061098e8261276d565b63ffffffff168560ff16145b80156109b157506109aa81612810565b1515841515145b6109fd5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610a1488604001518960a0015189602001516129f5565b91945092509050610a248361276d565b63ffffffff168660ff16148015610a4b5750610a3f8261276d565b63ffffffff168560ff16145b8015610a625750610a5b81612810565b1515841515145b610aae5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610ac5886080015189606001518960200151612a11565b91945092509050610ad58361276d565b63ffffffff168660ff16148015610afc5750610af08261276d565b63ffffffff168560ff16145b8015610b135750610b0c81612810565b1515841515145b610b5f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b5050505050505050565b6000806000610bb660405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610beb6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b610bf488612a2d565b8252610bff87612a2d565b6020830152610c1060ff8916612a96565b6040830152610c2160ff8816612a96565b6060830152610c3260ff8916612b00565b6080830152610c4360ff8816612b00565b60a0830152610c5460ff8916612b6c565b60c0830152610c6560ff8816612b6c565b60e0830152610c7386612a2d565b8152610c8160ff8716612a96565b6020820152610c9260ff8716612b00565b6040820152610ca360ff8716612b6c565b606082015260ff8616608082015281516020830151825160009283928392610ccc929190612bdc565b925092509250610cdb83612bf7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff92909216919091179055610d1682612bf7565b600060016101000a81548160ff021916908360ff160217905550610d3981612810565b60008054911515620100009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff8416811792839055610d96938993899360ff9384169284169290921792610100820481169290910416610e0a565b600054610dbc908690869060ff80821691610100810482169162010000909104166100fa565b600054610de2908690869060ff80821691610100810482169162010000909104166112c6565b505060005460ff8082169b610100830482169b50620100009092041698509650505050505050565b6000806000610e26886040015189606001518960000151612c07565b925092509250610e3583612c23565b61ffff168660ff16148015610e585750610e4e82612c23565b61ffff168560ff16145b8015610e6f5750610e6881612810565b1515841515145b610ebb5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b875160608901518851610ecf929190612c33565b91945092509050610edf83612c23565b61ffff168660ff16148015610f025750610ef882612c23565b61ffff168560ff16145b8015610f195750610f1281612810565b1515841515145b610f655760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b610f7c886040015189602001518960000151612c4f565b91945092509050610f8c83612c23565b61ffff168660ff16148015610faf5750610fa582612c23565b61ffff168560ff16145b8015610fc65750610fbf81612810565b1515841515145b6110125760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611029886040015189606001518960200151612c6b565b9194509250905061103983612c23565b61ffff168660ff1614801561105c575061105282612c23565b61ffff168560ff16145b8015611073575061106c81612810565b1515841515145b6110bf5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6110d6886000015189606001518960200151612c86565b919450925090506110e683612c23565b61ffff168660ff1614801561110957506110ff82612c23565b61ffff168560ff16145b8015611120575061111981612810565b1515841515145b61116c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611183886040015189602001518960200151612ca2565b9194509250905061119383612c23565b61ffff168660ff161480156111b657506111ac82612c23565b61ffff168560ff16145b80156111cd57506111c681612810565b1515841515145b6112195760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611230886040015189606001518960000151612c07565b9194509250905061124083612c23565b61ffff168660ff16148015611263575061125982612c23565b61ffff168560ff16145b801561127a575061127381612810565b1515841515145b610b5f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b60008060006112e28860c001518960e001518960600151612cbe565b9250925092506112f183612cd9565b67ffffffffffffffff168660ff16148015611320575061131082612cd9565b67ffffffffffffffff168560ff16145b8015611337575061133081612810565b1515841515145b6113835760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61139a88600001518960e001518960600151612ce9565b919450925090506113aa83612cd9565b67ffffffffffffffff168660ff161480156113d957506113c982612cd9565b67ffffffffffffffff168560ff16145b80156113f057506113e981612810565b1515841515145b61143c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6114538860c0015189602001518960600151612d05565b9194509250905061146383612cd9565b67ffffffffffffffff168660ff16148015611492575061148282612cd9565b67ffffffffffffffff168560ff16145b80156114a957506114a281612810565b1515841515145b6114f55760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61150c88604001518960e001518960600151612d21565b9194509250905061151c83612cd9565b67ffffffffffffffff168660ff1614801561154b575061153b82612cd9565b67ffffffffffffffff168560ff16145b8015611562575061155b81612810565b1515841515145b6115ae5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6115c58860c0015189606001518960600151612d3d565b919450925090506115d583612cd9565b67ffffffffffffffff168660ff1614801561160457506115f482612cd9565b67ffffffffffffffff168560ff16145b801561161b575061161481612810565b1515841515145b6116675760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61167e88608001518960e001518960600151612d59565b9194509250905061168e83612cd9565b67ffffffffffffffff168660ff161480156116bd57506116ad82612cd9565b67ffffffffffffffff168560ff16145b80156116d457506116cd81612810565b1515841515145b6117205760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6117378860c001518960a001518960600151612d75565b9194509250905061174783612cd9565b67ffffffffffffffff168660ff16148015611776575061176682612cd9565b67ffffffffffffffff168560ff16145b801561178d575061178681612810565b1515841515145b6117d95760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6117f08860c001518960e001518960400151612d91565b9194509250905061180083612cd9565b67ffffffffffffffff168660ff1614801561182f575061181f82612cd9565b67ffffffffffffffff168560ff16145b8015611846575061183f81612810565b1515841515145b6118925760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6118a988600001518960e001518960400151612dad565b919450925090506118b983612cd9565b67ffffffffffffffff168660ff161480156118e857506118d882612cd9565b67ffffffffffffffff168560ff16145b80156118ff57506118f881612810565b1515841515145b61194b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6119628860c0015189602001518960400151612dca565b9194509250905061197283612cd9565b67ffffffffffffffff168660ff161480156119a1575061199182612cd9565b67ffffffffffffffff168560ff16145b80156119b857506119b181612810565b1515841515145b611a045760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611a1b88604001518960e001518960400151612de7565b91945092509050611a2b83612cd9565b67ffffffffffffffff168660ff16148015611a5a5750611a4a82612cd9565b67ffffffffffffffff168560ff16145b8015611a715750611a6a81612810565b1515841515145b611abd5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611ad48860c0015189606001518960400151612e04565b91945092509050611ae483612cd9565b67ffffffffffffffff168660ff16148015611b135750611b0382612cd9565b67ffffffffffffffff168560ff16145b8015611b2a5750611b2381612810565b1515841515145b611b765760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611b8d88608001518960e001518960400151612e21565b91945092509050611b9d83612cd9565b67ffffffffffffffff168660ff16148015611bcc5750611bbc82612cd9565b67ffffffffffffffff168560ff16145b8015611be35750611bdc81612810565b1515841515145b611c2f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611c468860c001518960a001518960400151612e3d565b91945092509050611c5683612cd9565b67ffffffffffffffff168660ff16148015611c855750611c7582612cd9565b67ffffffffffffffff168560ff16145b8015611c9c5750611c9581612810565b1515841515145b611ce85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611cff8860c001518960e001518960000151612e59565b91945092509050611d0f83612cd9565b67ffffffffffffffff168660ff16148015611d3e5750611d2e82612cd9565b67ffffffffffffffff168560ff16145b8015611d555750611d4e81612810565b1515841515145b611da15760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b875160e08901518851611db5929190612e75565b91945092509050611dc583612cd9565b67ffffffffffffffff168660ff16148015611df45750611de482612cd9565b67ffffffffffffffff168560ff16145b8015611e0b5750611e0481612810565b1515841515145b611e575760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611e6e8860c0015189602001518960000151612e91565b91945092509050611e7e83612cd9565b67ffffffffffffffff168660ff16148015611ead5750611e9d82612cd9565b67ffffffffffffffff168560ff16145b8015611ec45750611ebd81612810565b1515841515145b611f105760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611f2788604001518960e001518960000151612ead565b91945092509050611f3783612cd9565b67ffffffffffffffff168660ff16148015611f665750611f5682612cd9565b67ffffffffffffffff168560ff16145b8015611f7d5750611f7681612810565b1515841515145b611fc95760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611fe08860c0015189606001518960000151612eca565b91945092509050611ff083612cd9565b67ffffffffffffffff168660ff1614801561201f575061200f82612cd9565b67ffffffffffffffff168560ff16145b8015612036575061202f81612810565b1515841515145b6120825760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b61209988608001518960e001518960000151612ee7565b919450925090506120a983612cd9565b67ffffffffffffffff168660ff161480156120d857506120c882612cd9565b67ffffffffffffffff168560ff16145b80156120ef57506120e881612810565b1515841515145b61213b5760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b6121528860c001518960a001518960000151612f04565b9194509250905061216283612cd9565b67ffffffffffffffff168660ff16148015612191575061218182612cd9565b67ffffffffffffffff168560ff16145b80156121a857506121a181612810565b1515841515145b6121f45760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b61220b8860c001518960e001518960200151612f21565b9194509250905061221b83612cd9565b67ffffffffffffffff168660ff1614801561224a575061223a82612cd9565b67ffffffffffffffff168560ff16145b8015612261575061225a81612810565b1515841515145b6122ad5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6122c488600001518960e001518960200151612f3d565b919450925090506122d483612cd9565b67ffffffffffffffff168660ff1614801561230357506122f382612cd9565b67ffffffffffffffff168560ff16145b801561231a575061231381612810565b1515841515145b6123665760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b61237d8860c0015189602001518960200151612f5a565b9194509250905061238d83612cd9565b67ffffffffffffffff168660ff161480156123bc57506123ac82612cd9565b67ffffffffffffffff168560ff16145b80156123d357506123cc81612810565b1515841515145b61241f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b61243688604001518960e001518960200151612f77565b9194509250905061244683612cd9565b67ffffffffffffffff168660ff16148015612475575061246582612cd9565b67ffffffffffffffff168560ff16145b801561248c575061248581612810565b1515841515145b6124d85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6124ef8860c0015189606001518960200151612f93565b919450925090506124ff83612cd9565b67ffffffffffffffff168660ff1614801561252e575061251e82612cd9565b67ffffffffffffffff168560ff16145b8015612545575061253e81612810565b1515841515145b6125915760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6125a888608001518960e001518960200151612faf565b919450925090506125b883612cd9565b67ffffffffffffffff168660ff161480156125e757506125d782612cd9565b67ffffffffffffffff168560ff16145b80156125fe57506125f781612810565b1515841515145b61264a5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6126618860c001518960a001518960200151612fcc565b9194509250905061267183612cd9565b67ffffffffffffffff168660ff16148015611263575061269082612cd9565b67ffffffffffffffff168560ff1614801561127a575061127381612810565b6000808080808060646356c72d286126ca6003808086612fe5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b9052606481018a90526084016060604051808303816000875af1158015612737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275b9190613285565b919b909a509098509650505050505050565b60006064630cfed56160035b60f81b846040518363ffffffff1660e01b81526004016127c79291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af11580156127e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061280a91906132e2565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015612874573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289891906132e2565b15159392505050565b6000808080808060646356c72d286126ca600160038086612fe5565b6000808080808060646356c72d286126ca600360018186612fe5565b6000808080808060646356c72d286126ca600260038086612fe5565b6000808080808060646356c72d286126ca600360028186612fe5565b6000808080808060646356c72d286126ca600380600186612fe5565b6000808080808060646356c72d286126ca600160038186612fe5565b6000808080808060646356c72d286126ca600360018086612fe5565b6000808080808060646356c72d286126ca60026003600186612fe5565b6000808080808060646356c72d286126ca60036002600186612fe5565b6000808080808060646356c72d286126ca600380600286612fe5565b6000808080808060646356c72d286126ca60016003600286612fe5565b6000808080808060646356c72d286126ca60036001600286612fe5565b6000808080808060646356c72d286126ca600260038186612fe5565b6000808080808060646356c72d286126ca600360028086612fe5565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b60906044016127c7565b6000808080808060646356c72d286126ca6001808086612fe5565b60006064630cfed5616001612779565b6000808080808060646356c72d286126ca600280600186612fe5565b60006064630cfed5616002612779565b6000808080808060646356c72d286126ca600160028186612fe5565b6000808080808060646356c72d286126ca600260018086612fe5565b6000808080808060646356c72d286126ca6002808086612fe5565b6000808080808060646356c72d286126ca600160028086612fe5565b6000808080808060646356c72d286126ca600260018186612fe5565b6000808080808060646356c72d286126ca6004808086612fe5565b60006064630cfed5616004612779565b6000808080808060646356c72d286126ca600160048086612fe5565b6000808080808060646356c72d286126ca600460018186612fe5565b6000808080808060646356c72d286126ca600260048086612fe5565b6000808080808060646356c72d286126ca600460028186612fe5565b6000808080808060646356c72d286126ca600360048086612fe5565b6000808080808060646356c72d286126ca600460038186612fe5565b6000808080808060646356c72d286126ca600480600386612fe5565b6000808080808060646356c72d286126ca60016004600386612fe5565b6000808080808060646356c72d286126ca60046001600386612fe5565b6000808080808060646356c72d286126ca60026004600386612fe5565b6000808080808060646356c72d286126ca60046002600386612fe5565b6000808080808060646356c72d286126ca600360048186612fe5565b6000808080808060646356c72d286126ca600460038086612fe5565b6000808080808060646356c72d286126ca600480600186612fe5565b6000808080808060646356c72d286126ca600160048186612fe5565b6000808080808060646356c72d286126ca600460018086612fe5565b6000808080808060646356c72d286126ca60026004600186612fe5565b6000808080808060646356c72d286126ca60046002600186612fe5565b6000808080808060646356c72d286126ca60036004600186612fe5565b6000808080808060646356c72d286126ca60046003600186612fe5565b6000808080808060646356c72d286126ca600480600286612fe5565b6000808080808060646356c72d286126ca60016004600286612fe5565b6000808080808060646356c72d286126ca60046001600286612fe5565b6000808080808060646356c72d286126ca600260048186612fe5565b6000808080808060646356c72d286126ca600460028086612fe5565b6000808080808060646356c72d286126ca60036004600286612fe5565b6000808080808060646356c72d286126ca600460036002865b6000816002811115612ff957612ff96132b3565b60ff166008846004811115613010576130106132b3565b61ffff16901b61ffff16601086600481111561302e5761302e6132b3565b62ffffff16901b62ffffff16601888600481111561304e5761304e6132b3565b63ffffffff16901b17171760e01b95945050505050565b604051610100810167ffffffffffffffff811182821017156130b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff811681146130c757600080fd5b919050565b600060a082840312156130de57600080fd5b60405160a0810181811067ffffffffffffffff82111715613128577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80604052508091508235815260208301356020820152604083013560408201526060830135606082015261315e608084016130b6565b60808201525092915050565b803580151581146130c757600080fd5b600080600080600085870361020081121561319457600080fd5b610100808212156131a457600080fd5b6131ac613065565b9150873582526020880135602083015260408801356040830152606088013560608301526080880135608083015260a088013560a083015260c088013560c083015260e088013560e083015281965061320789828a016130cc565b955050506132186101a087016130b6565b92506132276101c087016130b6565b91506132366101e0870161316a565b90509295509295909350565b60008060006060848603121561325757600080fd5b613260846130b6565b925061326e602085016130b6565b915061327c604085016130b6565b90509250925092565b60008060006060848603121561329a57600080fd5b8351925060208401519150604084015190509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156132f457600080fd5b505191905056fea164736f6c6343000813000a";
389
+ "0x6080806040523461001657612ba9908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b60003560e01c9081634717f97c14610433575080636a3ae654146104195780637012513114610091578063d7b0fe63146100775763f6029cb31461005657600080fd5b346100725761007061006736610534565b939290926114a0565b005b600080fd5b346100725761007061008836610534565b939290926106af565b346100725760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100725760ff8060043516600435036100725780602435166024350361007257806044351660443503610072576040516100f58161048b565b6000815260006020820152600060408201526000606082015260006080820152600060a0820152600060c0820152600060e0820152604051610136816104d7565b600081526000602082015260006040820152600060608201526000608082015261016160043561263e565b825261016e60243561263e565b602083015261018083600435166127a0565b604083015261019283602435166127a0565b60608301526101a483600435166128bc565b60808301526101b683602435166128bc565b60a08301526101c883600435166129de565b60c08301526101da83602435166129de565b60e08301526101ea60443561263e565b81526101f983604435166127a0565b602082015261020b83604435166128bc565b604082015261021d83604435166129de565b606082015282604435166080820152815191602081015182519060405194630ad8e5a560e31b86527f01010100000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152606083608481600060645af1801561040d576103196103669161039d9587600080926000946103d1575b50906102b36102e293926126df565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000556126df565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006000549260081b169116176000556125a7565b151562ff00006000549160101b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff82161790816000558680808460101c169360081c16911685856106af565b610383600054858160101c169086808260081c1691168585610b26565b60005490848260101c169285808460081c169316916114a0565b6000546040805160ff84841681168252600884901c851616602082015260109290921c909216151591810191909152606090f35b6102b394506102e293506103fd915060603d606011610406575b6103f581836104f3565b810190612785565b949093506102a4565b503d6103eb565b6040513d6000823e3d90fd5b346100725761007061042a36610534565b93929092610b26565b346100725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100725760005460ff8082168352600882901c8116602084015260109190911c1615156040820152606090f35b610100810190811067ffffffffffffffff8211176104a857604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176104a857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176104a857604052565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201610200811261007257610100136100725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefc6040516105988161048b565b6004358152602435602082015260443560408201526064356060820152608435608082015260a4358382015260c43560c082015260e43560e0820152930112610072576040516105e7816104d7565b6101043581526101243560208201526101443560408201526101643560608201526101843560ff81168103610072576080820152906101a43560ff8116810361007257906101c43560ff8116810361007257906101e43580151581036100725790565b1561065157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c6564000000006044820152fd5b929391936106f56106db61ffff6106d160408801516060890151875191612b0c565b9291939093612814565b1660ff8916149182610a79575b5081610a63575b5061064a565b8351606085015183519060405192630ad8e5a560e31b84527f01020100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576107729160008092600092610a95575b506106db61ffff91612814565b6040840151602085015183519060405192630ad8e5a560e31b84527f02010100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576107f19160008092600092610a9557506106db61ffff91612814565b6040840151606085015160208401519060405192630ad8e5a560e31b84527f02020200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576108739160008092600092610a9557506106db61ffff91612814565b8351606085015160208401519060405192630ad8e5a560e31b84527f01020200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576108f29160008092600092610a9557506106db61ffff91612814565b604084015194602085015160208401519060405197630ad8e5a560e31b89527f020102000000000000000000000000000000000000000000000000000000000060048a0152602489015260448801526064870152606086608481600060645af1801561040d576109ae6109b89661ffff9561099c6109d29a60ff9560008092600092610a39575b506109848b91612814565b16878916149182610a20575b5081610a0a575061064a565b60606040830151920151905191612b0c565b9591979097612814565b1691161493846109ec575b5050826109d4575b505061064a565b565b6109df9192506125a7565b15159015151438806109cb565b60ff919294506109fe61ffff91612814565b169116149138806109c3565b610a1491506125a7565b151589151514386106ef565b8a919250610a2d90612814565b16868916149038610990565b8b93506109849250610a5a915060603d606011610406576103f581836104f3565b90935091610979565b610a6d91506125a7565b151584151514386106ef565b61ffff919250610a8890612814565b1660ff84161490386106e8565b61ffff93506106db9250610ab8915060603d606011610406576103f581836104f3565b90935091610765565b15610ac857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c6564000000006044820152fd5b9290939193608084015160a085015160408301519060405192630ad8e5a560e31b84527f03030300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610bca91600080926000926113a8575b50610bb063ffffffff91612932565b1660ff891614918261138a575b5081611374575b50610ac1565b835160a085015160408301519060405192630ad8e5a560e31b84527f01030300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610c4b91600080926000926113a85750610bb063ffffffff91612932565b6080840151602085015160408301519060405192630ad8e5a560e31b84527f03010300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610ccf91600080926000926113a85750610bb063ffffffff91612932565b604084015160a085015160408301519060405192630ad8e5a560e31b84527f02030300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610d5391600080926000926113a85750610bb063ffffffff91612932565b6080840151606085015160408301519060405192630ad8e5a560e31b84527f03020300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610dd791600080926000926113a85750610bb063ffffffff91612932565b608084015160a085015182519060405192630ad8e5a560e31b84527f03030100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610e5891600080926000926113a85750610bb063ffffffff91612932565b835160a085015182519060405192630ad8e5a560e31b84527f01030100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610ed691600080926000926113a85750610bb063ffffffff91612932565b6080840151602085015182519060405192630ad8e5a560e31b84527f03010100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610f5791600080926000926113a85750610bb063ffffffff91612932565b604084015160a085015182519060405192630ad8e5a560e31b84527f02030100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57610fd891600080926000926113a85750610bb063ffffffff91612932565b6080840151606085015182519060405192630ad8e5a560e31b84527f03020100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d5761105991600080926000926113a85750610bb063ffffffff91612932565b608084015160a085015160208301519060405192630ad8e5a560e31b84527f03030200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576110dd91600080926000926113a85750610bb063ffffffff91612932565b835160a085015160208301519060405192630ad8e5a560e31b84527f01030200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d5761115e91600080926000926113a85750610bb063ffffffff91612932565b6080840151602085015160208301519060405192630ad8e5a560e31b84527f03010200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576111e291600080926000926113a85750610bb063ffffffff91612932565b604084015160a085015160208301519060405192630ad8e5a560e31b84527f02030200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d5761126691600080926000926113a85750610bb063ffffffff91612932565b6020606060808601519501519101519060405194630ad8e5a560e31b86527f03020200000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152606083608481600060645af190811561040d576109d2946000809560009461133f575b5063ffffffff6112ed60ff92612932565b16911614938461131f575b505082611307575b5050610ac1565b6113129192506125a7565b1515901515143880611300565b60ff9192945061133363ffffffff91612932565b169116149138806112f8565b63ffffffff96506112ed945060ff91506113679060603d606011610406576103f581836104f3565b90979095509091506112dc565b61137e91506125a7565b15158415151438610bc4565b63ffffffff91925061139b90612932565b1660ff8516149038610bbd565b63ffffffff9350610bb092506113cd915060603d606011610406576103f581836104f3565b90935091610ba1565b156113dd57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c6564000000006044820152fd5b1561144257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c656400000000006044820152fd5b929093919360c084015160e085015160608301519060405192630ad8e5a560e31b84527f04040400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576115489160008092600092612575575b5061152e67ffffffffffffffff91612a58565b1660ff8916149182612553575b508161253d575b506113d6565b835160e085015160608301519060405192630ad8e5a560e31b84527f01040400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576115cd9160008092600092612575575061152e67ffffffffffffffff91612a58565b60c0840151602085015160608301519060405192630ad8e5a560e31b84527f04010400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576116559160008092600092612575575061152e67ffffffffffffffff91612a58565b604084015160e085015160608301519060405192630ad8e5a560e31b84527f02040400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576116dd9160008092600092612575575061152e67ffffffffffffffff91612a58565b60c0840151606085015160608301519060405192630ad8e5a560e31b84527f04020400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576117659160008092600092612575575061152e67ffffffffffffffff91612a58565b608084015160e085015160608301519060405192630ad8e5a560e31b84527f03040400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576117ed9160008092600092612575575061152e67ffffffffffffffff91612a58565b60c084015160a085015160608301519060405192630ad8e5a560e31b84527f04030400000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576118759160008092600092612575575061152e67ffffffffffffffff91612a58565b60c084015160e085015160408301519060405192630ad8e5a560e31b84527f04040300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611916916000809260009261250b575b506118fe67ffffffffffffffff91612a58565b1660ff89161491826124f65750816113745750610ac1565b835160e085015160408301519060405192630ad8e5a560e31b84527f01040300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d5761199b916000809260009261250b57506118fe67ffffffffffffffff91612a58565b60c0840151602085015160408301519060405192630ad8e5a560e31b84527f04010300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611a23916000809260009261250b57506118fe67ffffffffffffffff91612a58565b604084015160e085015160408301519060405192630ad8e5a560e31b84527f02040300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611aab916000809260009261250b57506118fe67ffffffffffffffff91612a58565b60c0840151606085015160408301519060405192630ad8e5a560e31b84527f04020300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611b33916000809260009261250b57506118fe67ffffffffffffffff91612a58565b608084015160e085015160408301519060405192630ad8e5a560e31b84527f03040300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611bbb916000809260009261250b57506118fe67ffffffffffffffff91612a58565b60c084015160a085015160408301519060405192630ad8e5a560e31b84527f04030300000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611c43916000809260009261250b57506118fe67ffffffffffffffff91612a58565b60c084015160e085015182519060405192630ad8e5a560e31b84527f04040100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611ce391600080926000926124c4575b50611cc967ffffffffffffffff91612a58565b1660ff89161491826124a2575b508161248c575b5061143b565b835160e085015182519060405192630ad8e5a560e31b84527f01040100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611d6591600080926000926124c45750611cc967ffffffffffffffff91612a58565b60c0840151602085015182519060405192630ad8e5a560e31b84527f04010100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611dea91600080926000926124c45750611cc967ffffffffffffffff91612a58565b604084015160e085015182519060405192630ad8e5a560e31b84527f02040100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611e6f91600080926000926124c45750611cc967ffffffffffffffff91612a58565b60c0840151606085015182519060405192630ad8e5a560e31b84527f04020100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611ef491600080926000926124c45750611cc967ffffffffffffffff91612a58565b608084015160e085015182519060405192630ad8e5a560e31b84527f03040100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611f7991600080926000926124c45750611cc967ffffffffffffffff91612a58565b60c084015160a085015182519060405192630ad8e5a560e31b84527f04030100000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57611ffe91600080926000926124c45750611cc967ffffffffffffffff91612a58565b60c084015160e085015160208301519060405192630ad8e5a560e31b84527f04040200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d5761209f916000809260009261245a575b5061208767ffffffffffffffff91612a58565b1660ff8916149182612438575081610a63575061064a565b835160e085015160208301519060405192630ad8e5a560e31b84527f01040200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57612124916000809260009261245a575061208767ffffffffffffffff91612a58565b60c0840151602085015160208301519060405192630ad8e5a560e31b84527f04010200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576121ac916000809260009261245a575061208767ffffffffffffffff91612a58565b604084015160e085015160208301519060405192630ad8e5a560e31b84527f02040200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57612234916000809260009261245a575061208767ffffffffffffffff91612a58565b60c0840151606085015160208301519060405192630ad8e5a560e31b84527f04020200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d576122bc916000809260009261245a575061208767ffffffffffffffff91612a58565b608084015160e085015160208301519060405192630ad8e5a560e31b84527f03040200000000000000000000000000000000000000000000000000000000006004850152602484015260448301526064820152606081608481600060645af190811561040d57612344916000809260009261245a575061208767ffffffffffffffff91612a58565b602060a060c08601519501519101519060405194630ad8e5a560e31b86527f04030200000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152606083608481600060645af190811561040d576109d294600080956000946123ff575b5067ffffffffffffffff6123cf60ff92612a58565b1691161493846123e7575050826109d457505061064a565b60ff919294506109fe67ffffffffffffffff91612a58565b67ffffffffffffffff96506123cf945060ff915061242b9060603d606011610406576103f581836104f3565b90979095509091506123ba565b67ffffffffffffffff91925061244d90612a58565b1660ff85161490386106e8565b67ffffffffffffffff93506120879250612483915060603d606011610406576103f581836104f3565b90935091612074565b61249691506125a7565b15158415151438611cdd565b67ffffffffffffffff9192506124b790612a58565b1660ff8516149038611cd6565b67ffffffffffffffff9350611cc992506124ed915060603d606011610406576103f581836104f3565b90935091611cb6565b67ffffffffffffffff91925061139b90612a58565b67ffffffffffffffff93506118fe9250612534915060603d606011610406576103f581836104f3565b909350916118eb565b61254791506125a7565b15158415151438611542565b67ffffffffffffffff91925061256890612a58565b1660ff851614903861153b565b67ffffffffffffffff935061152e925061259e915060603d606011610406576103f581836104f3565b9093509161151b565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260009182600483015260248201526020816044818560645af19182156126325780926125fb575b5050151590565b9091506020823d821161262a575b81612616602093836104f3565b8101031261262757505138806125f4565b80fd5b3d9150612609565b604051903d90823e3d90fd5b60ff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f01000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af190811561040d576000916126b1575090565b906020823d82116126d7575b816126ca602093836104f3565b8101031261262757505190565b3d91506126bd565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f010000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af1801561040d57600090612753575b60ff91501690565b6020823d821161277d575b8161276b602093836104f3565b81010312612627575060ff905161274b565b3d915061275e565b90816060910312610072578051916040602083015192015190565b61ffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f02000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af190811561040d576000916126b1575090565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f020000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af1801561040d57600090612889575b61ffff91501690565b6020823d82116128b4575b816128a1602093836104f3565b81010312612627575061ffff9051612880565b3d9150612894565b63ffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f03000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af190811561040d576000916126b1575090565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f030000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af1801561040d576000906129a9575b63ffffffff91501690565b6020823d82116129d6575b816129c1602093836104f3565b81010312612627575063ffffffff905161299e565b3d91506129b4565b67ffffffffffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f04000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af190811561040d576000916126b1575090565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f040000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af1801561040d57600090612ad3575b67ffffffffffffffff91501690565b6020823d8211612b04575b81612aeb602093836104f3565b81010312612627575067ffffffffffffffff9051612ac4565b3d9150612ade565b92919060405193630ad8e5a560e31b85527f02020100000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152606082608481600060645af190811561040d57600080938193612b76575b50929190565b91935050612b92915060603d8111610406576103f581836104f3565b9290929138612b7056fea164736f6c6343000813000a";
390
390
 
391
391
  type TransferTestsContractConstructorParams =
392
392
  | [signer?: Signer]
@@ -0,0 +1,154 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Contract,
6
+ ContractFactory,
7
+ ContractTransactionResponse,
8
+ Interface,
9
+ } from "ethers";
10
+ import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
11
+ import type { NonPayableOverrides } from "../../../../../common";
12
+ import type {
13
+ TransferWithAllowance128TestsContract,
14
+ TransferWithAllowance128TestsContractInterface,
15
+ } from "../../../../../contracts/mocks/utils/mpc/TransferWithAllowance128TestsContract";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [],
20
+ name: "getResults",
21
+ outputs: [
22
+ {
23
+ internalType: "uint128",
24
+ name: "",
25
+ type: "uint128",
26
+ },
27
+ {
28
+ internalType: "uint128",
29
+ name: "",
30
+ type: "uint128",
31
+ },
32
+ {
33
+ internalType: "bool",
34
+ name: "",
35
+ type: "bool",
36
+ },
37
+ {
38
+ internalType: "uint128",
39
+ name: "",
40
+ type: "uint128",
41
+ },
42
+ ],
43
+ stateMutability: "view",
44
+ type: "function",
45
+ },
46
+ {
47
+ inputs: [
48
+ {
49
+ internalType: "uint128",
50
+ name: "a",
51
+ type: "uint128",
52
+ },
53
+ {
54
+ internalType: "uint128",
55
+ name: "b",
56
+ type: "uint128",
57
+ },
58
+ {
59
+ internalType: "uint128",
60
+ name: "amount",
61
+ type: "uint128",
62
+ },
63
+ {
64
+ internalType: "uint128",
65
+ name: "allowance",
66
+ type: "uint128",
67
+ },
68
+ ],
69
+ name: "transferWithAllowanceTest",
70
+ outputs: [
71
+ {
72
+ internalType: "uint128",
73
+ name: "",
74
+ type: "uint128",
75
+ },
76
+ {
77
+ internalType: "uint128",
78
+ name: "",
79
+ type: "uint128",
80
+ },
81
+ {
82
+ internalType: "bool",
83
+ name: "",
84
+ type: "bool",
85
+ },
86
+ {
87
+ internalType: "uint128",
88
+ name: "",
89
+ type: "uint128",
90
+ },
91
+ ],
92
+ stateMutability: "nonpayable",
93
+ type: "function",
94
+ },
95
+ ] as const;
96
+
97
+ const _bytecode =
98
+ "0x60808060405234610016576105cf908161001c8239f35b600080fdfe604060808152600436101561001357600080fd5b6000803560e01c806342568eca146100ab57634717f97c1461003457600080fd5b346100a857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100a8575460015491516fffffffffffffffffffffffffffffffff8083168252608092831c602083015260ff84161515604083015260089390931c909216606083015290f35b0390f35b80fd5b50346100a857608091827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103ce576fffffffffffffffffffffffffffffffff9260043584811681036103ae5760243590858216820361035a576044359086821682036103ca576064359087821682036103c65761014061013a61013461014693610442565b95610442565b93610442565b91610442565b918551937fc2ff267a0000000000000000000000000000000000000000000000000000000085527f050505050000000000000000000000000000000000000000000000000000000060048601526024850152604484015260648301526084820152818160a4818760645af19081156103b9578486869187938895610370575b50816101d3610203926104fe565b16927fffffffffffffffffffffffffffffffff0000000000000000000000000000000093848a54161789556104fe565b91875492861b1691161785558351907f0cfed56100000000000000000000000000000000000000000000000000000000825285600483015260248201526020816044818860645af19081156103665790869291869161032a575b509161029e60ff926100a4969594847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006001541691151516176001556104fe565b600180547fffffffffffffffffffffffffffffff00000000000000000000000000000000ff8116600893841b70ffffffffffffffffffffffffffffffff00161791829055975495516fffffffffffffffffffffffffffffffff938716841681529590941c8216602086015291909516151560408401521c90931691909116606083015281906080820190565b919250506020813d821161035e575b81610346602093836103d2565b8101031261035a575185919061029e61025d565b8480fd5b3d9150610339565b84513d87823e3d90fd5b9450505050508181813d83116103b2575b61038b81836103d2565b810103126103ae57805160208201518483015160609093015192918790816101c5565b8380fd5b503d610381565b50505051903d90823e3d90fd5b8680fd5b8580fd5b5080fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761041357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6fffffffffffffffffffffffffffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f05000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104f2576000916104c4575090565b906020823d82116104ea575b816104dd602093836103d2565b810103126100a857505190565b3d91506104d0565b6040513d6000823e3d90fd5b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f050000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af180156104f257600090610581575b6fffffffffffffffffffffffffffffffff91501690565b6020823d82116105ba575b81610599602093836103d2565b810103126100a857506fffffffffffffffffffffffffffffffff905161056a565b3d915061058c56fea164736f6c6343000813000a";
99
+
100
+ type TransferWithAllowance128TestsContractConstructorParams =
101
+ | [signer?: Signer]
102
+ | ConstructorParameters<typeof ContractFactory>;
103
+
104
+ const isSuperArgs = (
105
+ xs: TransferWithAllowance128TestsContractConstructorParams
106
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
107
+
108
+ export class TransferWithAllowance128TestsContract__factory extends ContractFactory {
109
+ constructor(...args: TransferWithAllowance128TestsContractConstructorParams) {
110
+ if (isSuperArgs(args)) {
111
+ super(...args);
112
+ } else {
113
+ super(_abi, _bytecode, args[0]);
114
+ }
115
+ }
116
+
117
+ override getDeployTransaction(
118
+ overrides?: NonPayableOverrides & { from?: string }
119
+ ): Promise<ContractDeployTransaction> {
120
+ return super.getDeployTransaction(overrides || {});
121
+ }
122
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
123
+ return super.deploy(overrides || {}) as Promise<
124
+ TransferWithAllowance128TestsContract & {
125
+ deploymentTransaction(): ContractTransactionResponse;
126
+ }
127
+ >;
128
+ }
129
+ override connect(
130
+ runner: ContractRunner | null
131
+ ): TransferWithAllowance128TestsContract__factory {
132
+ return super.connect(
133
+ runner
134
+ ) as TransferWithAllowance128TestsContract__factory;
135
+ }
136
+
137
+ static readonly bytecode = _bytecode;
138
+ static readonly abi = _abi;
139
+ static createInterface(): TransferWithAllowance128TestsContractInterface {
140
+ return new Interface(
141
+ _abi
142
+ ) as TransferWithAllowance128TestsContractInterface;
143
+ }
144
+ static connect(
145
+ address: string,
146
+ runner?: ContractRunner | null
147
+ ): TransferWithAllowance128TestsContract {
148
+ return new Contract(
149
+ address,
150
+ _abi,
151
+ runner
152
+ ) as unknown as TransferWithAllowance128TestsContract;
153
+ }
154
+ }
@@ -0,0 +1,154 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Contract,
6
+ ContractFactory,
7
+ ContractTransactionResponse,
8
+ Interface,
9
+ } from "ethers";
10
+ import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
11
+ import type { NonPayableOverrides } from "../../../../../common";
12
+ import type {
13
+ TransferWithAllowance256TestsContract,
14
+ TransferWithAllowance256TestsContractInterface,
15
+ } from "../../../../../contracts/mocks/utils/mpc/TransferWithAllowance256TestsContract";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [],
20
+ name: "getResults",
21
+ outputs: [
22
+ {
23
+ internalType: "uint256",
24
+ name: "",
25
+ type: "uint256",
26
+ },
27
+ {
28
+ internalType: "uint256",
29
+ name: "",
30
+ type: "uint256",
31
+ },
32
+ {
33
+ internalType: "bool",
34
+ name: "",
35
+ type: "bool",
36
+ },
37
+ {
38
+ internalType: "uint256",
39
+ name: "",
40
+ type: "uint256",
41
+ },
42
+ ],
43
+ stateMutability: "view",
44
+ type: "function",
45
+ },
46
+ {
47
+ inputs: [
48
+ {
49
+ internalType: "uint256",
50
+ name: "a",
51
+ type: "uint256",
52
+ },
53
+ {
54
+ internalType: "uint256",
55
+ name: "b",
56
+ type: "uint256",
57
+ },
58
+ {
59
+ internalType: "uint256",
60
+ name: "amount",
61
+ type: "uint256",
62
+ },
63
+ {
64
+ internalType: "uint256",
65
+ name: "allowance",
66
+ type: "uint256",
67
+ },
68
+ ],
69
+ name: "transferWithAllowanceTest",
70
+ outputs: [
71
+ {
72
+ internalType: "uint256",
73
+ name: "",
74
+ type: "uint256",
75
+ },
76
+ {
77
+ internalType: "uint256",
78
+ name: "",
79
+ type: "uint256",
80
+ },
81
+ {
82
+ internalType: "bool",
83
+ name: "",
84
+ type: "bool",
85
+ },
86
+ {
87
+ internalType: "uint256",
88
+ name: "",
89
+ type: "uint256",
90
+ },
91
+ ],
92
+ stateMutability: "nonpayable",
93
+ type: "function",
94
+ },
95
+ ] as const;
96
+
97
+ const _bytecode =
98
+ "0x6080806040523461001657610476908161001c8239f35b600080fdfe6080604090808252600436101561001557600080fd5b600090813560e01c9081634717f97c1461028557506393e243cb1461003957600080fd5b346102825760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102825761007360043561034f565b61007e60243561034f565b61008960443561034f565b61009460643561034f565b918551937fc2ff267a0000000000000000000000000000000000000000000000000000000085527f06060606000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a4818560645af1908115610278578283908492859461022c575b5090610121610128926103f9565b85556103f9565b6001558351907f0cfed56100000000000000000000000000000000000000000000000000000000825283600483015260248201526020816044818660645af19081156102225783916101eb575b506101e7916101b29160ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541691151516176002556103f9565b918260035554916001549360ff6002541690519485948590949392606092608083019683526020830152151560408201520152565b0390f35b90506020813d821161021a575b81610205602093836102df565b8101031261021657516101e7610175565b8280fd5b3d91506101f8565b84513d85823e3d90fd5b93505050506080813d8211610270575b81610249608093836102df565b8101031261026c5780516020820151848301516060909301519291610121610113565b5080fd5b3d915061023c565b83513d84823e3d90fd5b80fd5b90503461026c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261026c579054600154600254600354928452602084019190915260ff16151560408301526060820152608090f35b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761032057604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051907fd9b60b600000000000000000000000000000000000000000000000000000000082527f060000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af19081156103ed576000916103bf575090565b906020823d82116103e5575b816103d8602093836102df565b8101031261028257505190565b3d91506103cb565b6040513d6000823e3d90fd5b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f060000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af19081156103ed576000916103bf57509056fea164736f6c6343000813000a";
99
+
100
+ type TransferWithAllowance256TestsContractConstructorParams =
101
+ | [signer?: Signer]
102
+ | ConstructorParameters<typeof ContractFactory>;
103
+
104
+ const isSuperArgs = (
105
+ xs: TransferWithAllowance256TestsContractConstructorParams
106
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
107
+
108
+ export class TransferWithAllowance256TestsContract__factory extends ContractFactory {
109
+ constructor(...args: TransferWithAllowance256TestsContractConstructorParams) {
110
+ if (isSuperArgs(args)) {
111
+ super(...args);
112
+ } else {
113
+ super(_abi, _bytecode, args[0]);
114
+ }
115
+ }
116
+
117
+ override getDeployTransaction(
118
+ overrides?: NonPayableOverrides & { from?: string }
119
+ ): Promise<ContractDeployTransaction> {
120
+ return super.getDeployTransaction(overrides || {});
121
+ }
122
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
123
+ return super.deploy(overrides || {}) as Promise<
124
+ TransferWithAllowance256TestsContract & {
125
+ deploymentTransaction(): ContractTransactionResponse;
126
+ }
127
+ >;
128
+ }
129
+ override connect(
130
+ runner: ContractRunner | null
131
+ ): TransferWithAllowance256TestsContract__factory {
132
+ return super.connect(
133
+ runner
134
+ ) as TransferWithAllowance256TestsContract__factory;
135
+ }
136
+
137
+ static readonly bytecode = _bytecode;
138
+ static readonly abi = _abi;
139
+ static createInterface(): TransferWithAllowance256TestsContractInterface {
140
+ return new Interface(
141
+ _abi
142
+ ) as TransferWithAllowance256TestsContractInterface;
143
+ }
144
+ static connect(
145
+ address: string,
146
+ runner?: ContractRunner | null
147
+ ): TransferWithAllowance256TestsContract {
148
+ return new Contract(
149
+ address,
150
+ _abi,
151
+ runner
152
+ ) as unknown as TransferWithAllowance256TestsContract;
153
+ }
154
+ }
@@ -663,7 +663,7 @@ const _abi = [
663
663
  ] as const;
664
664
 
665
665
  const _bytecode =
666
- "0x608060405234801561001057600080fd5b5061263c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063bb30c2f411610050578063bb30c2f4146100f0578063d4ba41d414610103578063f4fa21101461011657600080fd5b80630aaef195146100775780634717f97c1461008c578063a37f8f11146100dd575b600080fd5b61008a610085366004612471565b610129565b005b60005460ff80821691610100810482169162010000820481169163010000009004165b6040805160ff9586168152938516602085015291151583830152909216606082015290519081900360800190f35b61008a6100eb366004612471565b610766565b61008a6100fe366004612471565b610ccc565b61008a610111366004612471565b611232565b6100af61012436600461255d565b611798565b60008060008061014b8b600001518c60e001518c606001518c60200151611b5b565b935093509350935061015c84611c48565b67ffffffffffffffff168860ff1614801561018b575061017b83611c48565b67ffffffffffffffff168760ff16145b80156101a2575061019b82611ceb565b1515861515145b80156101c257506101b281611c48565b67ffffffffffffffff168560ff16145b6102135760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064015b60405180910390fd5b61022f8b60c001518c602001518c606001518c60200151611d7c565b9296509094509250905061024284611c48565b67ffffffffffffffff168860ff16148015610271575061026183611c48565b67ffffffffffffffff168760ff16145b8015610288575061028182611ceb565b1515861515145b80156102a8575061029881611c48565b67ffffffffffffffff168560ff16145b6102f45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103108b60c001518c60e001518c606001518c60200151611d9c565b9296509094509250905061032384611c48565b67ffffffffffffffff168860ff16148015610352575061034283611c48565b67ffffffffffffffff168760ff16145b8015610369575061036282611ceb565b1515861515145b8015610389575061037981611c48565b67ffffffffffffffff168560ff16145b6103d55760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103f18b604001518c60e001518c606001518c60200151611dbb565b9296509094509250905061040484611c48565b67ffffffffffffffff168860ff16148015610433575061042383611c48565b67ffffffffffffffff168760ff16145b801561044a575061044382611ceb565b1515861515145b801561046a575061045a81611c48565b67ffffffffffffffff168560ff16145b6104b65760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6104d28b60c001518c606001518c606001518c60200151611dda565b929650909450925090506104e584611c48565b67ffffffffffffffff168860ff16148015610514575061050483611c48565b67ffffffffffffffff168760ff16145b801561052b575061052482611ceb565b1515861515145b801561054b575061053b81611c48565b67ffffffffffffffff168560ff16145b6105975760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6105b38b608001518c60e001518c606001518c60200151611df9565b929650909450925090506105c684611c48565b67ffffffffffffffff168860ff161480156105f557506105e583611c48565b67ffffffffffffffff168760ff16145b801561060c575061060582611ceb565b1515861515145b801561062c575061061c81611c48565b67ffffffffffffffff168560ff16145b6106785760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c606001518c60200151611e19565b929650909450925090506106a784611c48565b67ffffffffffffffff168860ff161480156106d657506106c683611c48565b67ffffffffffffffff168760ff16145b80156106ed57506106e682611ceb565b1515861515145b801561070d57506106fd81611c48565b67ffffffffffffffff168560ff16145b6107595760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b5050505050505050505050565b6000806000806107888b600001518c60e001518c604001518c60200151611e39565b935093509350935061079984611c48565b67ffffffffffffffff168860ff161480156107c857506107b883611c48565b67ffffffffffffffff168760ff16145b80156107df57506107d882611ceb565b1515861515145b80156107ff57506107ef81611c48565b67ffffffffffffffff168560ff16145b61084b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6108678b60c001518c602001518c604001518c60200151611e5a565b9296509094509250905061087a84611c48565b67ffffffffffffffff168860ff161480156108a9575061089983611c48565b67ffffffffffffffff168760ff16145b80156108c057506108b982611ceb565b1515861515145b80156108e057506108d081611c48565b67ffffffffffffffff168560ff16145b61092c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6109488b604001518c60e001518c604001518c60200151611e7b565b9296509094509250905061095b84611c48565b67ffffffffffffffff168860ff1614801561098a575061097a83611c48565b67ffffffffffffffff168760ff16145b80156109a1575061099a82611ceb565b1515861515145b80156109c157506109b181611c48565b67ffffffffffffffff168560ff16145b610a0d5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610a298b60c001518c606001518c604001518c60200151611e9b565b92965090945092509050610a3c84611c48565b67ffffffffffffffff168860ff16148015610a6b5750610a5b83611c48565b67ffffffffffffffff168760ff16145b8015610a825750610a7b82611ceb565b1515861515145b8015610aa25750610a9281611c48565b67ffffffffffffffff168560ff16145b610aee5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610b0a8b608001518c60e001518c604001518c60200151611ebb565b92965090945092509050610b1d84611c48565b67ffffffffffffffff168860ff16148015610b4c5750610b3c83611c48565b67ffffffffffffffff168760ff16145b8015610b635750610b5c82611ceb565b1515861515145b8015610b835750610b7381611c48565b67ffffffffffffffff168560ff16145b610bcf5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610beb8b60c001518c60a001518c604001518c60200151611edb565b92965090945092509050610bfe84611c48565b67ffffffffffffffff168860ff16148015610c2d5750610c1d83611c48565b67ffffffffffffffff168760ff16145b8015610c445750610c3d82611ceb565b1515861515145b8015610c645750610c5481611c48565b67ffffffffffffffff168560ff16145b610cb05760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60e001518c604001518c60200151611efb565b600080600080610cee8b600001518c60e001518c600001518c60200151611f1b565b9350935093509350610cff84611c48565b67ffffffffffffffff168860ff16148015610d2e5750610d1e83611c48565b67ffffffffffffffff168760ff16145b8015610d455750610d3e82611ceb565b1515861515145b8015610d655750610d5581611c48565b67ffffffffffffffff168560ff16145b610db15760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610dcd8b60c001518c602001518c600001518c60200151611f3b565b92965090945092509050610de084611c48565b67ffffffffffffffff168860ff16148015610e0f5750610dff83611c48565b67ffffffffffffffff168760ff16145b8015610e265750610e1f82611ceb565b1515861515145b8015610e465750610e3681611c48565b67ffffffffffffffff168560ff16145b610e925760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610eae8b60c001518c60e001518c600001518c60200151611f5b565b92965090945092509050610ec184611c48565b67ffffffffffffffff168860ff16148015610ef05750610ee083611c48565b67ffffffffffffffff168760ff16145b8015610f075750610f0082611ceb565b1515861515145b8015610f275750610f1781611c48565b67ffffffffffffffff168560ff16145b610f735760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610f8f8b604001518c60e001518c600001518c60200151611f7b565b92965090945092509050610fa284611c48565b67ffffffffffffffff168860ff16148015610fd15750610fc183611c48565b67ffffffffffffffff168760ff16145b8015610fe85750610fe182611ceb565b1515861515145b80156110085750610ff881611c48565b67ffffffffffffffff168560ff16145b6110545760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6110708b60c001518c606001518c600001518c60200151611f9b565b9296509094509250905061108384611c48565b67ffffffffffffffff168860ff161480156110b257506110a283611c48565b67ffffffffffffffff168760ff16145b80156110c957506110c282611ceb565b1515861515145b80156110e957506110d981611c48565b67ffffffffffffffff168560ff16145b6111355760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6111518b608001518c60e001518c600001518c60200151611fbb565b9296509094509250905061116484611c48565b67ffffffffffffffff168860ff16148015611193575061118383611c48565b67ffffffffffffffff168760ff16145b80156111aa57506111a382611ceb565b1515861515145b80156111ca57506111ba81611c48565b67ffffffffffffffff168560ff16145b6112165760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c600001518c60200151611fdc565b6000806000806112548b600001518c60e001518c602001518c60200151611ffd565b935093509350935061126584611c48565b67ffffffffffffffff168860ff16148015611294575061128483611c48565b67ffffffffffffffff168760ff16145b80156112ab57506112a482611ceb565b1515861515145b80156112cb57506112bb81611c48565b67ffffffffffffffff168560ff16145b6113175760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6113338b60c001518c602001518c602001518c6020015161201d565b9296509094509250905061134684611c48565b67ffffffffffffffff168860ff16148015611375575061136583611c48565b67ffffffffffffffff168760ff16145b801561138c575061138582611ceb565b1515861515145b80156113ac575061139c81611c48565b67ffffffffffffffff168560ff16145b6113f85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114148b604001518c60e001518c602001518c6020015161203d565b9296509094509250905061142784611c48565b67ffffffffffffffff168860ff16148015611456575061144683611c48565b67ffffffffffffffff168760ff16145b801561146d575061146682611ceb565b1515861515145b801561148d575061147d81611c48565b67ffffffffffffffff168560ff16145b6114d95760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114f58b60c001518c606001518c602001518c6020015161205c565b9296509094509250905061150884611c48565b67ffffffffffffffff168860ff16148015611537575061152783611c48565b67ffffffffffffffff168760ff16145b801561154e575061154782611ceb565b1515861515145b801561156e575061155e81611c48565b67ffffffffffffffff168560ff16145b6115ba5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6115d68b60c001518c60e001518c602001518c6020015161207b565b929650909450925090506115e984611c48565b67ffffffffffffffff168860ff16148015611618575061160883611c48565b67ffffffffffffffff168760ff16145b801561162f575061162882611ceb565b1515861515145b801561164f575061163f81611c48565b67ffffffffffffffff168560ff16145b61169b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6116b78b608001518c60e001518c602001518c6020015161209a565b929650909450925090506116ca84611c48565b67ffffffffffffffff168860ff161480156116f957506116e983611c48565b67ffffffffffffffff168760ff16145b8015611710575061170982611ceb565b1515861515145b8015611730575061172081611c48565b67ffffffffffffffff168560ff16145b61177c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c602001518c602001516120ba565b6000806000806117e660405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61181b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118506040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118598b6120da565b83526118648a6120da565b602084015261187560ff8c16612143565b604084015261188660ff8b16612143565b606084015261189760ff8c166121ad565b60808401526118a860ff8b166121ad565b60a08401526118b960ff8c16612219565b60c08401526118ca60ff8b16612219565b60e08401526118d8896120da565b82526118e660ff8a16612143565b60208301526118f760ff8a166121ad565b604083015261190860ff8a16612219565b606083015260ff8916608083015261191f886120da565b815261192d60ff8916612143565b602082015261193e60ff89166121ad565b604082015261194f60ff8916612219565b606082015260ff88166080820152825160208401518351835160009384938493849361197d93929190612289565b935093509350935061198e846122a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff929092169190911790556119c9836122a7565b600060016101000a81548160ff021916908360ff1602179055506119ec82611ceb565b6000805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055611a2b816122a7565b6000805460ff92831663010000009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff8316811793849055611a92948c948c948c94938316908316179261010082048316926201000083048116929190910416610ccc565b600054611ac39088908890889060ff8082169161010081048216916201000082048116916301000000900416611232565b600054611af49088908890889060ff8082169161010081048216916201000082048116916301000000900416610766565b600054611b259088908890889060ff8082169161010081048216916201000082048116916301000000900416610129565b505060005460ff8082169f610100830482169f5062010000830482169e506301000000909204169b509950505050505050505050565b600080808080808080606463c2ff267a611b7b60016004806002876122b7565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffffffff0000000000000000000000000000000000000000000000000000009091166004820152602481018f9052604481018e9052606481018d9052608481018c905260a4016080604051808303816000875af1158015611c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3291906125b1565b929f919e509c50909a5098505050505050505050565b60006064630cfed56160045b60f81b846040518363ffffffff1660e01b8152600401611ca29291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af1158015611cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce59190612616565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015611d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d739190612616565b15159392505050565b600080808080808080606463c2ff267a611b7b60046001816002876122b7565b600080808080808080606463c2ff267a611b7b600480806002876122b7565b600080808080808080606463c2ff267a611b7b600260048082876122b7565b600080808080808080606463c2ff267a611b7b600460028181876122b7565b600080808080808080606463c2ff267a611b7b60036004806002876122b7565b600080808080808080606463c2ff267a611b7b60046003816002876122b7565b600080808080808080606463c2ff267a611b7b6001600460036002876122b7565b600080808080808080606463c2ff267a611b7b6004600160036002876122b7565b600080808080808080606463c2ff267a611b7b60026004600382876122b7565b600080808080808080606463c2ff267a611b7b60046002600381876122b7565b600080808080808080606463c2ff267a611b7b60036004816002876122b7565b600080808080808080606463c2ff267a611b7b60046003806002876122b7565b600080808080808080606463c2ff267a611b7b60048060036002876122b7565b600080808080808080606463c2ff267a611b7b60016004816002876122b7565b600080808080808080606463c2ff267a611b7b60046001806002876122b7565b600080808080808080606463c2ff267a611b7b60048060016002876122b7565b600080808080808080606463c2ff267a611b7b60026004600182876122b7565b600080808080808080606463c2ff267a611b7b60046002600181876122b7565b600080808080808080606463c2ff267a611b7b6003600460016002876122b7565b600080808080808080606463c2ff267a611b7b6004600360016002876122b7565b600080808080808080606463c2ff267a611b7b60016004600280876122b7565b600080808080808080606463c2ff267a611b7b60046001600280876122b7565b600080808080808080606463c2ff267a611b7b600260048180876122b7565b600080808080808080606463c2ff267a611b7b600460028080876122b7565b600080808080808080606463c2ff267a611b7b600480600280876122b7565b600080808080808080606463c2ff267a611b7b60036004600280876122b7565b600080808080808080606463c2ff267a611b7b60046003600280876122b7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b6090604401611ca2565b600080808080808080606463c2ff267a611b7b6001808080876122b7565b60006064630cfed5616001611c54565b60008160028111156122cb576122cb6125e7565b60ff1660088460048111156122e2576122e26125e7565b61ffff16901b61ffff166010866004811115612300576123006125e7565b62ffffff16901b62ffffff166018886004811115612320576123206125e7565b63ffffffff16901b63ffffffff1660208a6004811115612342576123426125e7565b64ffffffffff16901b1717171760d81b9695505050505050565b604051610100810167ffffffffffffffff811182821017156123a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff811681146123be57600080fd5b919050565b600060a082840312156123d557600080fd5b60405160a0810181811067ffffffffffffffff8211171561241f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152612455608084016123ad565b60808201525092915050565b803580151581146123be57600080fd5b60008060008060008060008789036102c081121561248e57600080fd5b6101008082121561249e57600080fd5b6124a661235c565b91508935825260208a0135602083015260408a0135604083015260608a0135606083015260808a0135608083015260a08a013560a083015260c08a013560c083015260e08a013560e08301528198506125018b828c016123c3565b97505050612513896101a08a016123c3565b945061252261024089016123ad565b935061253161026089016123ad565b92506125406102808901612461565b915061254f6102a089016123ad565b905092959891949750929550565b6000806000806080858703121561257357600080fd5b61257c856123ad565b935061258a602086016123ad565b9250612598604086016123ad565b91506125a6606086016123ad565b905092959194509250565b600080600080608085870312156125c757600080fd5b505082516020840151604085015160609095015191969095509092509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561262857600080fd5b505191905056fea164736f6c6343000813000a";
666
+ "0x6080806040523461001657611e98908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630aaef195146105995780634717f97c1461052f578063a37f8f1114610512578063bb30c2f4146104f5578063d4ba41d4146104d65763f4fa21101461005e57600080fd5b346104d15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d15760ff60043516600435036104d15760ff60243516602435036104d15760ff60443516604435036104d15760ff60643516606435036104d1576040516100d1816105b6565b6000815260006020820152604081016000815260608201600081526080830160008152600060a0850152600060c0850152600060e0850152610111611a48565b9161011a611a48565b93610126600435611b0a565b8652610133602435611b0a565b602087015261014660ff60043516611c73565b905261015660ff60243516611c73565b905261016660ff60043516611ce7565b905261017660ff60243516611ce7565b60a084015261018960ff60043516611d5d565b60c084015261019c60ff60243516611d5d565b60e08401526101ac604435611b0a565b81526101bc60ff60443516611c73565b60208201526101cf60ff60443516611ce7565b60408201526101e260ff60443516611d5d565b606082015260ff6044351660808201526101fd606435611b0a565b825261020d60ff60643516611c73565b602083015261022060ff60643516611ce7565b604083015261023360ff60643516611d5d565b606083015260ff606435166080830152825192602081015182518451916040519663617f933d60e11b88527f01010101000000000000000000000000000000000000000000000000000000006004890152602488015260448701526064860152608485015260808460a481600060645af19384156104c5576103796103ce916104429660008060009160009361047d575b61033f9394509060ff6102d961030893611bab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000541617600055611bab565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006000549260081b16911617600055611a73565b15157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006000549260101b16911617600055611bab565b63ff0000006000549160181b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff8216178060005560ff8160181c169160ff80808460101c169360081c169116878787610854565b6103f660005460ff8160181c169060ff8160101c169060ff808260081c169116878787610dd7565b61041e60005460ff8160181c169060ff8160101c169060ff808260081c1691168787876111fc565b6000549060ff8260181c169360ff8360101c169360ff808560081c16941692611622565b6000546040805160ff8084168252600884901c81166020830152601084901c811615159282019290925260189290921c166060820152608090f35b5050505061033f60ff6103086104ad6102d99460803d6080116104be575b6104a5818361061e565b810190611c51565b9296509194509092509050836102c4565b503d61049b565b6040513d6000823e3d90fd5b600080fd5b346104d1576104f36104e73661065f565b95949094939193610dd7565b005b346104d1576104f36105063661065f565b95949094939193610854565b346104d1576104f36105233661065f565b959490949391936111fc565b346104d15760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d1576000546040805160ff8084168252600884901c81166020830152601084901c811615159282019290925260189290921c166060820152608090f35b346104d1576104f36105aa3661065f565b95949094939193611622565b610100810190811067ffffffffffffffff8211176105d357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176105d357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176105d357604052565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc81016102c081126104d157610100136104d15760409182516106a1816105b6565b60043581526024356020820152604435848201526064356060820152608435608082015260a43560a082015260c43560c082015260e43560e08201529260a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefc8401126104d157805161071381610602565b61010435815261012435602082015261014435828201526101643560608201526101843560ff811681036104d157817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5c91608060a09401529401126104d15780519061077e82610602565b6101a43582526101c43560208301526101e435908201526102043560608201526102243560ff811681036104d1576080820152906102443560ff811681036104d157906102643560ff811681036104d157906102843580151581036104d157906102a43560ff811681036104d15790565b156107f657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c6564000000006044820152fd5b929491959395835160e085015183516020840151916040519363617f933d60e11b85527f01040102000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761090d91600091600092600091600093610d9f575b506108ec67ffffffffffffffff91611dd7565b1660ff8b16149283610d7d575b5082610d65575b5081610d45575b506107ef565b60c0840151602085015183516020840151916040519363617f933d60e11b85527f04010102000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576109a191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160e085015183516020840151916040519363617f933d60e11b85527f04040102000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610a3591600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015183516020840151916040519363617f933d60e11b85527f02040102000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610ac991600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015183516020840151916040519363617f933d60e11b85527f04020102000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610b5d91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015183516020840151916040519363617f933d60e11b85527f03040102000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610bf191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b602060a060c08601519501519251910151916040519463617f933d60e11b86527f04030102000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575b5067ffffffffffffffff610c8860ff92611dd7565b169116149586610ce8575b505084610cce575b505082610cac575b50506107ef565b565b60ff919250610cc367ffffffffffffffff91611dd7565b169116143880610ca3565b610cda91929450611a73565b151590151514913880610c9b565b60ff91929650610d0067ffffffffffffffff91611dd7565b16911614933880610c93565b67ffffffffffffffff9850610c88965060ff9450610d39915060803d6080116104be576104a5818361061e565b91999197509450610c73565b67ffffffffffffffff9150610d5990611dd7565b1660ff87161438610907565b610d70919250611a73565b1515851515149038610900565b67ffffffffffffffff919350610d9290611dd7565b1660ff8b161491386108f9565b905067ffffffffffffffff93506108ec9250610dca915060803d6080116104be576104a5818361061e565b91945090929091906108d9565b929491959395835160e085015160208401516020840151916040519363617f933d60e11b85527f01040202000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610e7191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151602085015160208401516020840151916040519363617f933d60e11b85527f04010202000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610f0891600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015160208401516020840151916040519363617f933d60e11b85527f02040202000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610f9f91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015160208401516020840151916040519363617f933d60e11b85527f04020202000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761103691600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160e085015160208401516020840151916040519363617f933d60e11b85527f04040202000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576110cd91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015160208401516020840151916040519363617f933d60e11b85527f03040202000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761116491600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60208060a060c0870151960151930151910151916040519463617f933d60e11b86527f04030202000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575067ffffffffffffffff610c8860ff92611dd7565b929491959395835160e085015160408401516020840151916040519363617f933d60e11b85527f01040302000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761129691600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151602085015160408401516020840151916040519363617f933d60e11b85527f04010302000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761132d91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015160408401516020840151916040519363617f933d60e11b85527f02040302000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576113c491600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015160408401516020840151916040519363617f933d60e11b85527f04020302000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761145b91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015160408401516020840151916040519363617f933d60e11b85527f03040302000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576114f291600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160a085015160408401516020840151916040519363617f933d60e11b85527f04030302000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761158991600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b6020604060e060c0870151960151930151910151916040519463617f933d60e11b86527f04040302000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575067ffffffffffffffff610c8860ff92611dd7565b929491959395835160e085015160608401516020840151916040519363617f933d60e11b85527f01040402000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576116bc91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151602085015160608401516020840151916040519363617f933d60e11b85527f04010402000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761175391600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160e085015160608401516020840151916040519363617f933d60e11b85527f04040402000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576117ea91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015160608401516020840151916040519363617f933d60e11b85527f02040402000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761188191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015160608401516020840151916040519363617f933d60e11b85527f04020402000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761191891600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015160608401516020840151916040519363617f933d60e11b85527f03040402000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576119af91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b6020606060a060c0870151960151930151910151916040519463617f933d60e11b86527f04030402000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575067ffffffffffffffff610c8860ff92611dd7565b60405190611a5582610602565b60006080838281528260208201528260408201528260608201520152565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260009182600483015260248201526020816044818560645af1918215611afe578092611ac7575b5050151590565b9091506020823d8211611af6575b81611ae26020938361061e565b81010312611af35750513880611ac0565b80fd5b3d9150611ad5565b604051903d90823e3d90fd5b60ff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f01000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b906020823d8211611ba3575b81611b966020938361061e565b81010312611af357505190565b3d9150611b89565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f010000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af180156104c557600090611c1f575b60ff91501690565b6020823d8211611c49575b81611c376020938361061e565b81010312611af3575060ff9051611c17565b3d9150611c2a565b91908260809103126104d1578151916020810151916060604083015192015190565b61ffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f02000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b63ffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f03000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b67ffffffffffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f04000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f040000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af180156104c557600090611e52575b67ffffffffffffffff91501690565b6020823d8211611e83575b81611e6a6020938361061e565b81010312611af3575067ffffffffffffffff9051611e43565b3d9150611e5d56fea164736f6c6343000813000a";
667
667
 
668
668
  type TransferWithAllowance64_16TestsContractConstructorParams =
669
669
  | [signer?: Signer]
@@ -663,7 +663,7 @@ const _abi = [
663
663
  ] as const;
664
664
 
665
665
  const _bytecode =
666
- "0x608060405234801561001057600080fd5b5061263c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063b371a05811610050578063b371a058146100f0578063d5ea40aa14610103578063f4fa21101461011657600080fd5b8063205093f2146100775780633391d5a81461008c5780634717f97c1461009f575b600080fd5b61008a610085366004612471565b610129565b005b61008a61009a366004612471565b610766565b60005460ff80821691610100810482169162010000820481169163010000009004165b6040805160ff9586168152938516602085015291151583830152909216606082015290519081900360800190f35b61008a6100fe366004612471565b610ccc565b61008a610111366004612471565b611232565b6100c261012436600461255d565b611798565b60008060008061014b8b600001518c60e001518c604001518c60400151611b5b565b935093509350935061015c84611c48565b67ffffffffffffffff168860ff1614801561018b575061017b83611c48565b67ffffffffffffffff168760ff16145b80156101a2575061019b82611ceb565b1515861515145b80156101c257506101b281611c48565b67ffffffffffffffff168560ff16145b6102135760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064015b60405180910390fd5b61022f8b60c001518c602001518c604001518c60400151611d7c565b9296509094509250905061024284611c48565b67ffffffffffffffff168860ff16148015610271575061026183611c48565b67ffffffffffffffff168760ff16145b8015610288575061028182611ceb565b1515861515145b80156102a8575061029881611c48565b67ffffffffffffffff168560ff16145b6102f45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103108b604001518c60e001518c604001518c60400151611d9c565b9296509094509250905061032384611c48565b67ffffffffffffffff168860ff16148015610352575061034283611c48565b67ffffffffffffffff168760ff16145b8015610369575061036282611ceb565b1515861515145b8015610389575061037981611c48565b67ffffffffffffffff168560ff16145b6103d55760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6103f18b60c001518c606001518c604001518c60400151611dbc565b9296509094509250905061040484611c48565b67ffffffffffffffff168860ff16148015610433575061042383611c48565b67ffffffffffffffff168760ff16145b801561044a575061044382611ceb565b1515861515145b801561046a575061045a81611c48565b67ffffffffffffffff168560ff16145b6104b65760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6104d28b608001518c60e001518c604001518c60400151611ddc565b929650909450925090506104e584611c48565b67ffffffffffffffff168860ff16148015610514575061050483611c48565b67ffffffffffffffff168760ff16145b801561052b575061052482611ceb565b1515861515145b801561054b575061053b81611c48565b67ffffffffffffffff168560ff16145b6105975760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6105b38b60c001518c60a001518c604001518c60400151611dfb565b929650909450925090506105c684611c48565b67ffffffffffffffff168860ff161480156105f557506105e583611c48565b67ffffffffffffffff168760ff16145b801561060c575061060582611ceb565b1515861515145b801561062c575061061c81611c48565b67ffffffffffffffff168560ff16145b6106785760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60e001518c604001518c60400151611e1a565b929650909450925090506106a784611c48565b67ffffffffffffffff168860ff161480156106d657506106c683611c48565b67ffffffffffffffff168760ff16145b80156106ed57506106e682611ceb565b1515861515145b801561070d57506106fd81611c48565b67ffffffffffffffff168560ff16145b6107595760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b5050505050505050505050565b6000806000806107888b600001518c60e001518c602001518c60400151611e39565b935093509350935061079984611c48565b67ffffffffffffffff168860ff161480156107c857506107b883611c48565b67ffffffffffffffff168760ff16145b80156107df57506107d882611ceb565b1515861515145b80156107ff57506107ef81611c48565b67ffffffffffffffff168560ff16145b61084b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6108678b60c001518c602001518c602001518c60400151611e5a565b9296509094509250905061087a84611c48565b67ffffffffffffffff168860ff161480156108a9575061089983611c48565b67ffffffffffffffff168760ff16145b80156108c057506108b982611ceb565b1515861515145b80156108e057506108d081611c48565b67ffffffffffffffff168560ff16145b61092c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6109488b604001518c60e001518c602001518c60400151611e7b565b9296509094509250905061095b84611c48565b67ffffffffffffffff168860ff1614801561098a575061097a83611c48565b67ffffffffffffffff168760ff16145b80156109a1575061099a82611ceb565b1515861515145b80156109c157506109b181611c48565b67ffffffffffffffff168560ff16145b610a0d5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610a298b60c001518c606001518c602001518c60400151611e9b565b92965090945092509050610a3c84611c48565b67ffffffffffffffff168860ff16148015610a6b5750610a5b83611c48565b67ffffffffffffffff168760ff16145b8015610a825750610a7b82611ceb565b1515861515145b8015610aa25750610a9281611c48565b67ffffffffffffffff168560ff16145b610aee5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610b0a8b60c001518c60e001518c602001518c60400151611ebb565b92965090945092509050610b1d84611c48565b67ffffffffffffffff168860ff16148015610b4c5750610b3c83611c48565b67ffffffffffffffff168760ff16145b8015610b635750610b5c82611ceb565b1515861515145b8015610b835750610b7381611c48565b67ffffffffffffffff168560ff16145b610bcf5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610beb8b608001518c60e001518c602001518c60400151611edb565b92965090945092509050610bfe84611c48565b67ffffffffffffffff168860ff16148015610c2d5750610c1d83611c48565b67ffffffffffffffff168760ff16145b8015610c445750610c3d82611ceb565b1515861515145b8015610c645750610c5481611c48565b67ffffffffffffffff168560ff16145b610cb05760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c602001518c60400151611efb565b600080600080610cee8b600001518c60e001518c606001518c60400151611f1b565b9350935093509350610cff84611c48565b67ffffffffffffffff168860ff16148015610d2e5750610d1e83611c48565b67ffffffffffffffff168760ff16145b8015610d455750610d3e82611ceb565b1515861515145b8015610d655750610d5581611c48565b67ffffffffffffffff168560ff16145b610db15760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610dcd8b60c001518c602001518c606001518c60400151611f3b565b92965090945092509050610de084611c48565b67ffffffffffffffff168860ff16148015610e0f5750610dff83611c48565b67ffffffffffffffff168760ff16145b8015610e265750610e1f82611ceb565b1515861515145b8015610e465750610e3681611c48565b67ffffffffffffffff168560ff16145b610e925760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610eae8b60c001518c60e001518c606001518c60400151611f5b565b92965090945092509050610ec184611c48565b67ffffffffffffffff168860ff16148015610ef05750610ee083611c48565b67ffffffffffffffff168760ff16145b8015610f075750610f0082611ceb565b1515861515145b8015610f275750610f1781611c48565b67ffffffffffffffff168560ff16145b610f735760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b610f8f8b604001518c60e001518c606001518c60400151611f7a565b92965090945092509050610fa284611c48565b67ffffffffffffffff168860ff16148015610fd15750610fc183611c48565b67ffffffffffffffff168760ff16145b8015610fe85750610fe182611ceb565b1515861515145b80156110085750610ff881611c48565b67ffffffffffffffff168560ff16145b6110545760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6110708b60c001518c606001518c606001518c60400151611f9a565b9296509094509250905061108384611c48565b67ffffffffffffffff168860ff161480156110b257506110a283611c48565b67ffffffffffffffff168760ff16145b80156110c957506110c282611ceb565b1515861515145b80156110e957506110d981611c48565b67ffffffffffffffff168560ff16145b6111355760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6111518b608001518c60e001518c606001518c60400151611fba565b9296509094509250905061116484611c48565b67ffffffffffffffff168860ff16148015611193575061118383611c48565b67ffffffffffffffff168760ff16145b80156111aa57506111a382611ceb565b1515861515145b80156111ca57506111ba81611c48565b67ffffffffffffffff168560ff16145b6112165760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c606001518c60400151611fd9565b6000806000806112548b600001518c60e001518c600001518c60400151611ff8565b935093509350935061126584611c48565b67ffffffffffffffff168860ff16148015611294575061128483611c48565b67ffffffffffffffff168760ff16145b80156112ab57506112a482611ceb565b1515861515145b80156112cb57506112bb81611c48565b67ffffffffffffffff168560ff16145b6113175760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6113338b60c001518c602001518c600001518c60400151612018565b9296509094509250905061134684611c48565b67ffffffffffffffff168860ff16148015611375575061136583611c48565b67ffffffffffffffff168760ff16145b801561138c575061138582611ceb565b1515861515145b80156113ac575061139c81611c48565b67ffffffffffffffff168560ff16145b6113f85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114148b60c001518c60e001518c600001518c60400151612038565b9296509094509250905061142784611c48565b67ffffffffffffffff168860ff16148015611456575061144683611c48565b67ffffffffffffffff168760ff16145b801561146d575061146682611ceb565b1515861515145b801561148d575061147d81611c48565b67ffffffffffffffff168560ff16145b6114d95760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6114f58b604001518c60e001518c600001518c60400151612058565b9296509094509250905061150884611c48565b67ffffffffffffffff168860ff16148015611537575061152783611c48565b67ffffffffffffffff168760ff16145b801561154e575061154782611ceb565b1515861515145b801561156e575061155e81611c48565b67ffffffffffffffff168560ff16145b6115ba5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6115d68b60c001518c606001518c600001518c60400151612079565b929650909450925090506115e984611c48565b67ffffffffffffffff168860ff16148015611618575061160883611c48565b67ffffffffffffffff168760ff16145b801561162f575061162882611ceb565b1515861515145b801561164f575061163f81611c48565b67ffffffffffffffff168560ff16145b61169b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6116b78b608001518c60e001518c600001518c6040015161209a565b929650909450925090506116ca84611c48565b67ffffffffffffffff168860ff161480156116f957506116e983611c48565b67ffffffffffffffff168760ff16145b8015611710575061170982611ceb565b1515861515145b8015611730575061172081611c48565b67ffffffffffffffff168560ff16145b61177c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c656400000000604482015260640161020a565b6106948b60c001518c60a001518c600001518c604001516120ba565b6000806000806117e660405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b61181b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118506040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6118598b6120da565b83526118648a6120da565b602084015261187560ff8c16612143565b604084015261188660ff8b16612143565b606084015261189760ff8c166121ad565b60808401526118a860ff8b166121ad565b60a08401526118b960ff8c16612219565b60c08401526118ca60ff8b16612219565b60e08401526118d8896120da565b82526118e660ff8a16612143565b60208301526118f760ff8a166121ad565b604083015261190860ff8a16612219565b606083015260ff8916608083015261191f886120da565b815261192d60ff8916612143565b602082015261193e60ff89166121ad565b604082015261194f60ff8916612219565b606082015260ff88166080820152825160208401518351835160009384938493849361197d93929190612289565b935093509350935061198e846122a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff929092169190911790556119c9836122a7565b600060016101000a81548160ff021916908360ff1602179055506119ec82611ceb565b6000805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055611a2b816122a7565b6000805460ff92831663010000009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff8316811793849055611a92948c948c948c94938316908316179261010082048316926201000083048116929190910416611232565b600054611ac39088908890889060ff8082169161010081048216916201000082048116916301000000900416610766565b600054611af49088908890889060ff8082169161010081048216916201000082048116916301000000900416610129565b600054611b259088908890889060ff8082169161010081048216916201000082048116916301000000900416610ccc565b505060005460ff8082169f610100830482169f5062010000830482169e506301000000909204169b509950505050505050505050565b600080808080808080606463c2ff267a611b7b60016004600380876122b7565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681527fffffffffff0000000000000000000000000000000000000000000000000000009091166004820152602481018f9052604481018e9052606481018d9052608481018c905260a4016080604051808303816000875af1158015611c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3291906125b1565b929f919e509c50909a5098505050505050505050565b60006064630cfed56160045b60f81b846040518363ffffffff1660e01b8152600401611ca29291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af1158015611cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce59190612616565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015611d4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d739190612616565b15159392505050565b600080808080808080606463c2ff267a611b7b60046001600380876122b7565b600080808080808080606463c2ff267a611b7b60026004600380876122b7565b600080808080808080606463c2ff267a611b7b60046002600380876122b7565b600080808080808080606463c2ff267a611b7b600360048180876122b7565b600080808080808080606463c2ff267a611b7b600460038080876122b7565b600080808080808080606463c2ff267a611b7b600480600380876122b7565b600080808080808080606463c2ff267a611b7b6001600460026003876122b7565b600080808080808080606463c2ff267a611b7b6004600160026003876122b7565b600080808080808080606463c2ff267a611b7b60026004816003876122b7565b600080808080808080606463c2ff267a611b7b60046002806003876122b7565b600080808080808080606463c2ff267a611b7b60048060026003876122b7565b600080808080808080606463c2ff267a611b7b60036004600282876122b7565b600080808080808080606463c2ff267a611b7b60046003600281876122b7565b600080808080808080606463c2ff267a611b7b60016004806003876122b7565b600080808080808080606463c2ff267a611b7b60046001816003876122b7565b600080808080808080606463c2ff267a611b7b600480806003876122b7565b600080808080808080606463c2ff267a611b7b60026004806003876122b7565b600080808080808080606463c2ff267a611b7b60046002816003876122b7565b600080808080808080606463c2ff267a611b7b600360048082876122b7565b600080808080808080606463c2ff267a611b7b600460038181876122b7565b600080808080808080606463c2ff267a611b7b60016004816003876122b7565b600080808080808080606463c2ff267a611b7b60046001806003876122b7565b600080808080808080606463c2ff267a611b7b60048060016003876122b7565b600080808080808080606463c2ff267a611b7b6002600460016003876122b7565b600080808080808080606463c2ff267a611b7b6004600260016003876122b7565b600080808080808080606463c2ff267a611b7b60036004600182876122b7565b600080808080808080606463c2ff267a611b7b60046003600181876122b7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b6090604401611ca2565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b6090604401611ca2565b600080808080808080606463c2ff267a611b7b6001808080876122b7565b60006064630cfed5616001611c54565b60008160028111156122cb576122cb6125e7565b60ff1660088460048111156122e2576122e26125e7565b61ffff16901b61ffff166010866004811115612300576123006125e7565b62ffffff16901b62ffffff166018886004811115612320576123206125e7565b63ffffffff16901b63ffffffff1660208a6004811115612342576123426125e7565b64ffffffffff16901b1717171760d81b9695505050505050565b604051610100810167ffffffffffffffff811182821017156123a7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff811681146123be57600080fd5b919050565b600060a082840312156123d557600080fd5b60405160a0810181811067ffffffffffffffff8211171561241f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152612455608084016123ad565b60808201525092915050565b803580151581146123be57600080fd5b60008060008060008060008789036102c081121561248e57600080fd5b6101008082121561249e57600080fd5b6124a661235c565b91508935825260208a0135602083015260408a0135604083015260608a0135606083015260808a0135608083015260a08a013560a083015260c08a013560c083015260e08a013560e08301528198506125018b828c016123c3565b97505050612513896101a08a016123c3565b945061252261024089016123ad565b935061253161026089016123ad565b92506125406102808901612461565b915061254f6102a089016123ad565b905092959891949750929550565b6000806000806080858703121561257357600080fd5b61257c856123ad565b935061258a602086016123ad565b9250612598604086016123ad565b91506125a6606086016123ad565b905092959194509250565b600080600080608085870312156125c757600080fd5b505082516020840151604085015160609095015191969095509092509050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561262857600080fd5b505191905056fea164736f6c6343000813000a";
666
+ "0x6080806040523461001657611e98908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063205093f2146105995780633391d5a81461057c5780634717f97c14610512578063b371a058146104f5578063d5ea40aa146104d65763f4fa21101461005e57600080fd5b346104d15760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d15760ff60043516600435036104d15760ff60243516602435036104d15760ff60443516604435036104d15760ff60643516606435036104d1576040516100d1816105b6565b6000815260006020820152604081016000815260608201600081526080830160008152600060a0850152600060c0850152600060e0850152610111611a48565b9161011a611a48565b93610126600435611b0a565b8652610133602435611b0a565b602087015261014660ff60043516611c73565b905261015660ff60243516611c73565b905261016660ff60043516611ce7565b905261017660ff60243516611ce7565b60a084015261018960ff60043516611d5d565b60c084015261019c60ff60243516611d5d565b60e08401526101ac604435611b0a565b81526101bc60ff60443516611c73565b60208201526101cf60ff60443516611ce7565b60408201526101e260ff60443516611d5d565b606082015260ff6044351660808201526101fd606435611b0a565b825261020d60ff60643516611c73565b602083015261022060ff60643516611ce7565b604083015261023360ff60643516611d5d565b606083015260ff606435166080830152825192602081015182518451916040519663617f933d60e11b88527f01010101000000000000000000000000000000000000000000000000000000006004890152602488015260448701526064860152608485015260808460a481600060645af19384156104c5576103796103ce916104429660008060009160009361047d575b61033f9394509060ff6102d961030893611bab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006000541617600055611bab565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006000549260081b16911617600055611a73565b15157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006000549260101b16911617600055611bab565b63ff0000006000549160181b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff8216178060005560ff8160181c169160ff80808460101c169360081c169116878787610854565b6103f660005460ff8160181c169060ff8160101c169060ff808260081c169116878787610dd7565b61041e60005460ff8160181c169060ff8160101c169060ff808260081c1691168787876111fd565b6000549060ff8260181c169360ff8360101c169360ff808560081c16941692611622565b6000546040805160ff8084168252600884901c81166020830152601084901c811615159282019290925260189290921c166060820152608090f35b5050505061033f60ff6103086104ad6102d99460803d6080116104be575b6104a5818361061e565b810190611c51565b9296509194509092509050836102c4565b503d61049b565b6040513d6000823e3d90fd5b600080fd5b346104d1576104f36104e73661065f565b95949094939193610854565b005b346104d1576104f36105063661065f565b95949094939193611622565b346104d15760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104d1576000546040805160ff8084168252600884901c81166020830152601084901c811615159282019290925260189290921c166060820152608090f35b346104d1576104f361058d3661065f565b95949094939193610dd7565b346104d1576104f36105aa3661065f565b959490949391936111fd565b610100810190811067ffffffffffffffff8211176105d357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60a0810190811067ffffffffffffffff8211176105d357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176105d357604052565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc81016102c081126104d157610100136104d15760409182516106a1816105b6565b60043581526024356020820152604435848201526064356060820152608435608082015260a43560a082015260c43560c082015260e43560e08201529260a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefc8401126104d157805161071381610602565b61010435815261012435602082015261014435828201526101643560608201526101843560ff811681036104d157817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5c91608060a09401529401126104d15780519061077e82610602565b6101a43582526101c43560208301526101e435908201526102043560608201526102243560ff811681036104d1576080820152906102443560ff811681036104d157906102643560ff811681036104d157906102843580151581036104d157906102a43560ff811681036104d15790565b156107f657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c6564000000006044820152fd5b929491959395835160e085015183516040840151916040519363617f933d60e11b85527f01040103000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761090d91600091600092600091600093610d9f575b506108ec67ffffffffffffffff91611dd7565b1660ff8b16149283610d7d575b5082610d65575b5081610d45575b506107ef565b60c0840151602085015183516040840151916040519363617f933d60e11b85527f04010103000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576109a191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160e085015183516040840151916040519363617f933d60e11b85527f04040103000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610a3591600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015183516040840151916040519363617f933d60e11b85527f02040103000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610ac991600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015183516040840151916040519363617f933d60e11b85527f04020103000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610b5d91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015183516040840151916040519363617f933d60e11b85527f03040103000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610bf191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604060a060c08601519501519251910151916040519463617f933d60e11b86527f04030103000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575b5067ffffffffffffffff610c8860ff92611dd7565b169116149586610ce8575b505084610cce575b505082610cac575b50506107ef565b565b60ff919250610cc367ffffffffffffffff91611dd7565b169116143880610ca3565b610cda91929450611a73565b151590151514913880610c9b565b60ff91929650610d0067ffffffffffffffff91611dd7565b16911614933880610c93565b67ffffffffffffffff9850610c88965060ff9450610d39915060803d6080116104be576104a5818361061e565b91999197509450610c73565b67ffffffffffffffff9150610d5990611dd7565b1660ff87161438610907565b610d70919250611a73565b1515851515149038610900565b67ffffffffffffffff919350610d9290611dd7565b1660ff8b161491386108f9565b905067ffffffffffffffff93506108ec9250610dca915060803d6080116104be576104a5818361061e565b91945090929091906108d9565b929491959395835160e085015160208401516040840151916040519363617f933d60e11b85527f01040203000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610e7191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151602085015160208401516040840151916040519363617f933d60e11b85527f04010203000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610f0891600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015160208401516040840151916040519363617f933d60e11b85527f02040203000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c557610f9f91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015160208401516040840151916040519363617f933d60e11b85527f04020203000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761103691600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160e085015160208401516040840151916040519363617f933d60e11b85527f04040203000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576110cd91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015160208401516040840151916040519363617f933d60e11b85527f03040203000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761116491600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b6040602060a060c0870151960151930151910151916040519463617f933d60e11b86527f04030203000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575067ffffffffffffffff610c8860ff92611dd7565b929491959395835160e085015160408401516040840151916040519363617f933d60e11b85527f01040303000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761129791600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151602085015160408401516040840151916040519363617f933d60e11b85527f04010303000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761132e91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015160408401516040840151916040519363617f933d60e11b85527f02040303000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576113c591600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015160408401516040840151916040519363617f933d60e11b85527f04020303000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761145c91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015160408401516040840151916040519363617f933d60e11b85527f03040303000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576114f391600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160a085015160408401516040840151916040519363617f933d60e11b85527f04030303000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761158a91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60408060e060c0870151960151930151910151916040519463617f933d60e11b86527f04040303000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575067ffffffffffffffff610c8860ff92611dd7565b929491959395835160e085015160608401516040840151916040519363617f933d60e11b85527f01040403000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576116bc91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151602085015160608401516040840151916040519363617f933d60e11b85527f04010403000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761175391600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c084015160e085015160608401516040840151916040519363617f933d60e11b85527f04040403000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576117ea91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b604084015160e085015160608401516040840151916040519363617f933d60e11b85527f02040403000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761188191600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b60c0840151606085015160608401516040840151916040519363617f933d60e11b85527f04020403000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c55761191891600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b608084015160e085015160608401516040840151916040519363617f933d60e11b85527f03040403000000000000000000000000000000000000000000000000000000006004860152602485015260448401526064830152608482015260808160a481600060645af19081156104c5576119af91600091600092600091600093610d9f57506108ec67ffffffffffffffff91611dd7565b6040606060a060c0870151960151930151910151916040519463617f933d60e11b86527f04030403000000000000000000000000000000000000000000000000000000006004870152602486015260448501526064840152608483015260808260a481600060645af19182156104c557610caa95600095600096600093600096610d0c575067ffffffffffffffff610c8860ff92611dd7565b60405190611a5582610602565b60006080838281528260208201528260408201528260608201520152565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260009182600483015260248201526020816044818560645af1918215611afe578092611ac7575b5050151590565b9091506020823d8211611af6575b81611ae26020938361061e565b81010312611af35750513880611ac0565b80fd5b3d9150611ad5565b604051903d90823e3d90fd5b60ff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f01000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b906020823d8211611ba3575b81611b966020938361061e565b81010312611af357505190565b3d9150611b89565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f010000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af180156104c557600090611c1f575b60ff91501690565b6020823d8211611c49575b81611c376020938361061e565b81010312611af3575060ff9051611c17565b3d9150611c2a565b91908260809103126104d1578151916020810151916060604083015192015190565b61ffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f02000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b63ffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f03000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b67ffffffffffffffff604051917fd9b60b600000000000000000000000000000000000000000000000000000000083527f04000000000000000000000000000000000000000000000000000000000000006004840152166024820152602081604481600060645af19081156104c557600091611b7d575090565b604051907f0cfed5610000000000000000000000000000000000000000000000000000000082527f040000000000000000000000000000000000000000000000000000000000000060048301526024820152602081604481600060645af180156104c557600090611e52575b67ffffffffffffffff91501690565b6020823d8211611e83575b81611e6a6020938361061e565b81010312611af3575067ffffffffffffffff9051611e43565b3d9150611e5d56fea164736f6c6343000813000a";
667
667
 
668
668
  type TransferWithAllowance64_32TestsContractConstructorParams =
669
669
  | [signer?: Signer]