@etherisc/gif-next 0.0.2-f9905e1 → 0.0.2-f9bc4c7-556

Sign up to get free protection for your applications and to get access to all the features.
Files changed (347) hide show
  1. package/README.md +123 -7
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +4 -0
  3. package/artifacts/contracts/components/{IPool.sol/IPoolComponent.json → BaseComponent.sol/BaseComponent.json} +55 -60
  4. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +4 -0
  5. package/artifacts/contracts/{instance/component/IComponent.sol/IComponentContract.json → components/IBaseComponent.sol/IBaseComponent.json} +54 -59
  6. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  7. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +356 -0
  8. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +279 -0
  10. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  11. package/artifacts/contracts/components/Pool.sol/Pool.json +225 -33
  12. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  13. package/artifacts/contracts/components/Product.sol/Product.json +154 -62
  14. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +4 -0
  15. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +105 -0
  16. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +4 -0
  17. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +105 -0
  18. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +2 -2
  20. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +2 -2
  22. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +4 -0
  29. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +59 -0
  30. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +4 -0
  31. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +124 -0
  32. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +4 -0
  33. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +74 -0
  34. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +4 -0
  35. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +124 -0
  36. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +4 -0
  37. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +207 -0
  38. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  39. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +2 -2
  40. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  41. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +2 -2
  42. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1249 -275
  44. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +4 -0
  45. package/artifacts/contracts/instance/{component/IComponent.sol → IInstanceLinked.sol}/IInstanceLinked.json +1 -1
  46. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  47. package/artifacts/contracts/instance/Instance.sol/Instance.json +1560 -373
  48. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
  49. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +300 -0
  50. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  51. package/artifacts/contracts/instance/{product/ProductService.sol/ProductModule.json → base/IInstanceBase.sol/IInstanceBase.json} +18 -30
  52. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  53. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +511 -0
  54. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  55. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.json +115 -0
  56. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/IService.sol/IService.json +300 -0
  58. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{component/ComponentModule.sol/ComponentModule.json → base/InstanceBase.sol/InstanceBase.json} +140 -141
  60. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +692 -0
  62. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
  64. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.json +10 -0
  66. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +4 -0
  67. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +300 -0
  68. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +4 -0
  69. package/artifacts/contracts/instance/{access → module/access}/Access.sol/AccessModule.json +85 -152
  70. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +4 -0
  71. package/artifacts/contracts/instance/{access → module/access}/IAccess.sol/IAccess.json +1 -1
  72. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +4 -0
  73. package/artifacts/contracts/instance/{access → module/access}/IAccess.sol/IAccessModule.json +96 -99
  74. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +4 -0
  75. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +296 -0
  76. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.json +10 -0
  78. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +4 -0
  79. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +296 -0
  80. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +4 -0
  81. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +10 -0
  82. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +4 -0
  83. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +10 -0
  84. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +4 -0
  85. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +10 -0
  86. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +4 -0
  87. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +188 -0
  88. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +4 -0
  89. package/artifacts/contracts/instance/{component → module/component}/IComponent.sol/IComponent.json +1 -1
  90. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{component → module/component}/IComponent.sol/IComponentModule.json +54 -111
  92. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{policy → module/policy}/IPolicy.sol/IPolicy.json +1 -1
  94. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +4 -0
  95. package/artifacts/contracts/instance/{policy → module/policy}/IPolicy.sol/IPolicyModule.json +146 -116
  96. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +4 -0
  97. package/artifacts/contracts/instance/{policy → module/policy}/PolicyModule.sol/PolicyModule.json +146 -116
  98. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +4 -0
  99. package/artifacts/contracts/instance/{pool → module/pool}/IPoolModule.sol/IPool.json +1 -1
  100. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +4 -0
  101. package/artifacts/contracts/instance/{pool → module/pool}/IPoolModule.sol/IPoolModule.json +63 -63
  102. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +4 -0
  103. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +149 -0
  104. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +4 -0
  105. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.json +10 -0
  106. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +4 -0
  107. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +10 -0
  108. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +10 -0
  110. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +4 -0
  111. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +10 -0
  112. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +4 -0
  113. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +533 -0
  114. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  115. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +76 -0
  116. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +4 -0
  117. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +533 -0
  118. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +4 -0
  119. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +523 -0
  120. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +4 -0
  121. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +364 -0
  122. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
  123. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +376 -0
  124. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
  125. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +477 -0
  126. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
  127. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +471 -0
  128. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
  129. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +673 -0
  130. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +597 -0
  132. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +4 -0
  133. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +452 -0
  134. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  135. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +115 -81
  136. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  137. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +24 -0
  138. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  139. package/artifacts/contracts/registry/Registry.sol/Registry.json +265 -82
  140. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  141. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +35 -0
  142. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +4 -0
  143. package/artifacts/contracts/{registry/IRegistry.sol → shared/IOwnable.sol}/IOwnable.json +1 -1
  144. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  145. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegisterable.sol}/IRegisterable.json +22 -67
  146. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +164 -0
  148. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  149. package/artifacts/contracts/{registry/Registry.sol → shared/Registerable.sol}/Registerable.json +23 -68
  150. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/pool/PoolModule.sol/PoolModule.json → shared/Versionable.sol/Versionable.json} +72 -70
  152. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +4 -0
  153. package/artifacts/contracts/test/TestFee.sol/TestFee.json +119 -0
  154. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +4 -0
  155. package/artifacts/contracts/test/TestPool.sol/TestPool.json +387 -0
  156. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +4 -0
  157. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +393 -0
  158. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
  159. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +137 -0
  160. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +4 -0
  161. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +116 -0
  162. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +4 -0
  163. package/artifacts/contracts/test/TestService.sol/TestService.json +379 -0
  164. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +4 -0
  165. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +338 -0
  166. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +4 -0
  167. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +218 -0
  168. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +4 -0
  169. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +206 -0
  170. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
  171. package/artifacts/contracts/test/Usdc.sol/USDC.json +338 -0
  172. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  173. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +10 -0
  174. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  175. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +174 -0
  176. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  177. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +2 -2
  178. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
  179. package/artifacts/contracts/types/Fee.sol/FeeLib.json +218 -0
  180. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
  181. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +111 -0
  182. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +4 -0
  183. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +153 -0
  184. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  185. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +10 -0
  186. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  187. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +92 -0
  188. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  189. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +30 -0
  190. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +4 -0
  191. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +92 -0
  192. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +4 -0
  193. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +236 -0
  194. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +4 -0
  195. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +479 -0
  196. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +4 -0
  197. package/artifacts/contracts/types/Version.sol/VersionLib.json +139 -0
  198. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +4 -0
  199. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +30 -0
  200. package/contracts/components/BaseComponent.sol +88 -0
  201. package/contracts/components/IBaseComponent.sol +19 -0
  202. package/contracts/components/IPoolComponent.sol +57 -0
  203. package/contracts/components/IProductComponent.sol +19 -0
  204. package/contracts/components/Pool.sol +161 -16
  205. package/contracts/components/Product.sol +79 -27
  206. package/contracts/experiment/errors/Require.sol +38 -0
  207. package/contracts/experiment/errors/Revert.sol +44 -0
  208. package/contracts/experiment/inheritance/A.sol +8 -11
  209. package/contracts/experiment/inheritance/B.sol +10 -5
  210. package/contracts/experiment/inheritance/C.sol +11 -5
  211. package/contracts/experiment/inheritance/IA.sol +2 -7
  212. package/contracts/experiment/inheritance/IB.sol +3 -2
  213. package/contracts/experiment/inheritance/IC.sol +4 -3
  214. package/contracts/experiment/statemachine/Dummy.sol +27 -0
  215. package/contracts/experiment/statemachine/ISM.sol +25 -0
  216. package/contracts/experiment/statemachine/README.md +112 -0
  217. package/contracts/experiment/statemachine/SM.sol +57 -0
  218. package/contracts/experiment/statemachine/SimpleStateMachine.sol +31 -0
  219. package/contracts/experiment/types/TypeA.sol +14 -9
  220. package/contracts/experiment/types/TypeB.sol +14 -9
  221. package/contracts/instance/IInstance.sol +42 -10
  222. package/contracts/instance/IInstanceLinked.sol +8 -0
  223. package/contracts/instance/Instance.sol +47 -42
  224. package/contracts/instance/base/ComponentServiceBase.sol +42 -0
  225. package/contracts/instance/base/IInstanceBase.sol +14 -0
  226. package/contracts/instance/base/IKeyValueStore.sol +49 -0
  227. package/contracts/instance/base/ILifecycle.sol +30 -0
  228. package/contracts/instance/base/IService.sol +15 -0
  229. package/contracts/instance/base/InstanceBase.sol +80 -0
  230. package/contracts/instance/base/KeyValueStore.sol +156 -0
  231. package/contracts/instance/base/Lifecycle.sol +95 -0
  232. package/contracts/instance/base/ModuleBase.sol +52 -0
  233. package/contracts/instance/base/ServiceBase.sol +37 -0
  234. package/contracts/instance/module/access/Access.sol +149 -0
  235. package/contracts/instance/module/access/IAccess.sol +53 -0
  236. package/contracts/instance/module/bundle/BundleModule.sol +136 -0
  237. package/contracts/instance/module/bundle/IBundle.sol +58 -0
  238. package/contracts/instance/module/compensation/CompensationModule.sol +8 -0
  239. package/contracts/instance/module/compensation/ICompensation.sol +10 -0
  240. package/contracts/instance/module/component/ComponentModule.sol +95 -0
  241. package/contracts/instance/module/component/IComponent.sol +53 -0
  242. package/contracts/instance/module/policy/IPolicy.sol +60 -0
  243. package/contracts/instance/module/policy/PolicyModule.sol +76 -0
  244. package/contracts/instance/module/pool/IPoolModule.sol +41 -0
  245. package/contracts/instance/module/pool/PoolModule.sol +87 -0
  246. package/contracts/instance/module/risk/IRisk.sol +10 -0
  247. package/contracts/instance/module/risk/RiskModule.sol +8 -0
  248. package/contracts/instance/module/treasury/ITreasury.sol +103 -0
  249. package/contracts/instance/module/treasury/TokenHandler.sol +48 -0
  250. package/contracts/instance/module/treasury/TreasuryModule.sol +152 -0
  251. package/contracts/instance/service/ComponentOwnerService.sol +170 -0
  252. package/contracts/instance/service/IComponentOwnerService.sol +22 -0
  253. package/contracts/instance/service/IPoolService.sol +30 -0
  254. package/contracts/instance/service/IProductService.sol +58 -0
  255. package/contracts/instance/service/PoolService.sol +123 -0
  256. package/contracts/instance/service/ProductService.sol +354 -0
  257. package/contracts/registry/ChainNft.sol +159 -0
  258. package/contracts/registry/IChainNft.sol +21 -0
  259. package/contracts/registry/IRegistry.sol +41 -50
  260. package/contracts/registry/IRegistryLinked.sol +8 -0
  261. package/contracts/registry/Registry.sol +307 -123
  262. package/contracts/shared/ERC165.sol +21 -0
  263. package/contracts/shared/IOwnable.sol +6 -0
  264. package/contracts/shared/IRegisterable.sol +24 -0
  265. package/contracts/shared/IVersionable.sol +52 -0
  266. package/contracts/shared/Registerable.sol +86 -0
  267. package/contracts/shared/Versionable.sol +89 -0
  268. package/contracts/test/TestFee.sol +25 -0
  269. package/contracts/test/TestPool.sol +22 -0
  270. package/contracts/test/TestProduct.sol +44 -0
  271. package/contracts/test/TestRegisterable.sol +19 -0
  272. package/contracts/test/TestRoleId.sol +14 -0
  273. package/contracts/test/TestService.sol +32 -0
  274. package/contracts/test/TestToken.sol +26 -0
  275. package/contracts/test/TestVersion.sol +44 -0
  276. package/contracts/test/TestVersionable.sol +17 -0
  277. package/contracts/test/Usdc.sol +26 -0
  278. package/contracts/types/AddressSet.sol +58 -0
  279. package/contracts/types/Blocknumber.sol +118 -0
  280. package/contracts/types/ChainId.sol +24 -10
  281. package/contracts/types/Fee.sol +51 -0
  282. package/contracts/types/Key32.sol +45 -0
  283. package/contracts/types/NftId.sol +72 -0
  284. package/contracts/types/NftIdSet.sol +60 -0
  285. package/contracts/types/ObjectType.sol +115 -0
  286. package/contracts/types/RoleId.sol +38 -0
  287. package/contracts/types/StateId.sol +101 -0
  288. package/contracts/types/Timestamp.sol +123 -0
  289. package/contracts/types/UFixed.sol +209 -0
  290. package/contracts/types/Version.sol +95 -0
  291. package/package.json +19 -5
  292. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  293. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  294. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  295. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  296. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  297. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  298. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  299. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  300. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  301. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  302. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.json +0 -35
  303. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  304. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  305. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  306. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  307. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  308. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -105
  309. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  310. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  311. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  312. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  313. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  314. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  315. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  316. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  317. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  318. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  319. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  320. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  321. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  322. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  323. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  324. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  325. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  326. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  327. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -125
  328. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  329. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  330. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  331. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  332. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  333. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  334. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  335. package/contracts/components/Component.sol +0 -62
  336. package/contracts/components/IPool.sol +0 -9
  337. package/contracts/components/IProduct.sol +0 -11
  338. package/contracts/instance/access/Access.sol +0 -218
  339. package/contracts/instance/access/IAccess.sol +0 -83
  340. package/contracts/instance/component/ComponentModule.sol +0 -259
  341. package/contracts/instance/component/IComponent.sol +0 -94
  342. package/contracts/instance/policy/IPolicy.sol +0 -66
  343. package/contracts/instance/policy/PolicyModule.sol +0 -106
  344. package/contracts/instance/pool/IPoolModule.sol +0 -40
  345. package/contracts/instance/pool/PoolModule.sol +0 -83
  346. package/contracts/instance/product/IProductService.sol +0 -45
  347. package/contracts/instance/product/ProductService.sol +0 -105
@@ -5,90 +5,97 @@
5
5
  "abi": [
6
6
  {
7
7
  "inputs": [],
8
- "stateMutability": "nonpayable",
9
- "type": "constructor"
10
- },
11
- {
12
- "inputs": [],
13
- "name": "BUNDLE",
8
+ "name": "EMPTY_URI",
14
9
  "outputs": [
15
10
  {
16
- "internalType": "uint256",
11
+ "internalType": "string",
17
12
  "name": "",
18
- "type": "uint256"
13
+ "type": "string"
19
14
  }
20
15
  ],
21
- "stateMutability": "pure",
16
+ "stateMutability": "view",
22
17
  "type": "function"
23
18
  },
24
19
  {
25
20
  "inputs": [],
26
- "name": "INSTANCE",
21
+ "name": "getChainNft",
27
22
  "outputs": [
28
23
  {
29
- "internalType": "uint256",
24
+ "internalType": "contract IChainNft",
30
25
  "name": "",
31
- "type": "uint256"
26
+ "type": "address"
32
27
  }
33
28
  ],
34
- "stateMutability": "pure",
29
+ "stateMutability": "view",
35
30
  "type": "function"
36
31
  },
37
32
  {
38
33
  "inputs": [],
39
- "name": "ORACLE",
34
+ "name": "getData",
40
35
  "outputs": [
41
36
  {
42
- "internalType": "uint256",
43
- "name": "",
44
- "type": "uint256"
37
+ "internalType": "bytes",
38
+ "name": "data",
39
+ "type": "bytes"
45
40
  }
46
41
  ],
47
42
  "stateMutability": "pure",
48
43
  "type": "function"
49
44
  },
50
45
  {
51
- "inputs": [],
52
- "name": "POLICY",
46
+ "inputs": [
47
+ {
48
+ "internalType": "NftId",
49
+ "name": "nftId",
50
+ "type": "uint96"
51
+ }
52
+ ],
53
+ "name": "getName",
53
54
  "outputs": [
54
55
  {
55
- "internalType": "uint256",
56
- "name": "",
57
- "type": "uint256"
56
+ "internalType": "string",
57
+ "name": "name",
58
+ "type": "string"
58
59
  }
59
60
  ],
60
- "stateMutability": "pure",
61
+ "stateMutability": "view",
61
62
  "type": "function"
62
63
  },
63
64
  {
64
65
  "inputs": [],
65
- "name": "POOL",
66
+ "name": "getNftId",
66
67
  "outputs": [
67
68
  {
68
- "internalType": "uint256",
69
- "name": "",
70
- "type": "uint256"
69
+ "internalType": "NftId",
70
+ "name": "nftId",
71
+ "type": "uint96"
71
72
  }
72
73
  ],
73
- "stateMutability": "pure",
74
+ "stateMutability": "view",
74
75
  "type": "function"
75
76
  },
76
77
  {
77
- "inputs": [],
78
- "name": "PRODUCT",
78
+ "inputs": [
79
+ {
80
+ "internalType": "address",
81
+ "name": "object",
82
+ "type": "address"
83
+ }
84
+ ],
85
+ "name": "getNftId",
79
86
  "outputs": [
80
87
  {
81
- "internalType": "uint256",
82
- "name": "",
83
- "type": "uint256"
88
+ "internalType": "NftId",
89
+ "name": "id",
90
+ "type": "uint96"
84
91
  }
85
92
  ],
86
- "stateMutability": "pure",
93
+ "stateMutability": "view",
87
94
  "type": "function"
88
95
  },
89
96
  {
90
97
  "inputs": [],
91
- "name": "TOKEN",
98
+ "name": "getObjectCount",
92
99
  "outputs": [
93
100
  {
94
101
  "internalType": "uint256",
@@ -96,35 +103,35 @@
96
103
  "type": "uint256"
97
104
  }
98
105
  ],
99
- "stateMutability": "pure",
106
+ "stateMutability": "view",
100
107
  "type": "function"
101
108
  },
102
109
  {
103
110
  "inputs": [
104
111
  {
105
- "internalType": "uint256",
106
- "name": "id",
107
- "type": "uint256"
112
+ "internalType": "NftId",
113
+ "name": "nftId",
114
+ "type": "uint96"
108
115
  }
109
116
  ],
110
- "name": "getInfo",
117
+ "name": "getObjectInfo",
111
118
  "outputs": [
112
119
  {
113
120
  "components": [
114
121
  {
115
- "internalType": "uint256",
122
+ "internalType": "NftId",
116
123
  "name": "nftId",
117
- "type": "uint256"
124
+ "type": "uint96"
118
125
  },
119
126
  {
120
- "internalType": "uint256",
127
+ "internalType": "NftId",
121
128
  "name": "parentNftId",
122
- "type": "uint256"
129
+ "type": "uint96"
123
130
  },
124
131
  {
125
- "internalType": "uint256",
132
+ "internalType": "ObjectType",
126
133
  "name": "objectType",
127
- "type": "uint256"
134
+ "type": "uint8"
128
135
  },
129
136
  {
130
137
  "internalType": "address",
@@ -135,9 +142,14 @@
135
142
  "internalType": "address",
136
143
  "name": "initialOwner",
137
144
  "type": "address"
145
+ },
146
+ {
147
+ "internalType": "bytes",
148
+ "name": "data",
149
+ "type": "bytes"
138
150
  }
139
151
  ],
140
- "internalType": "struct IRegistry.RegistryInfo",
152
+ "internalType": "struct IRegistry.ObjectInfo",
141
153
  "name": "info",
142
154
  "type": "tuple"
143
155
  }
@@ -145,20 +157,46 @@
145
157
  "stateMutability": "view",
146
158
  "type": "function"
147
159
  },
160
+ {
161
+ "inputs": [],
162
+ "name": "getOwner",
163
+ "outputs": [
164
+ {
165
+ "internalType": "address",
166
+ "name": "owner",
167
+ "type": "address"
168
+ }
169
+ ],
170
+ "stateMutability": "view",
171
+ "type": "function"
172
+ },
148
173
  {
149
174
  "inputs": [
175
+ {
176
+ "internalType": "NftId",
177
+ "name": "nftId",
178
+ "type": "uint96"
179
+ }
180
+ ],
181
+ "name": "getOwner",
182
+ "outputs": [
150
183
  {
151
184
  "internalType": "address",
152
- "name": "object",
185
+ "name": "",
153
186
  "type": "address"
154
187
  }
155
188
  ],
156
- "name": "getNftId",
189
+ "stateMutability": "view",
190
+ "type": "function"
191
+ },
192
+ {
193
+ "inputs": [],
194
+ "name": "getParentNftId",
157
195
  "outputs": [
158
196
  {
159
- "internalType": "uint256",
160
- "name": "id",
161
- "type": "uint256"
197
+ "internalType": "NftId",
198
+ "name": "nftId",
199
+ "type": "uint96"
162
200
  }
163
201
  ],
164
202
  "stateMutability": "view",
@@ -166,12 +204,25 @@
166
204
  },
167
205
  {
168
206
  "inputs": [],
169
- "name": "getObjectCount",
207
+ "name": "getProtocolOwner",
170
208
  "outputs": [
171
209
  {
172
- "internalType": "uint256",
210
+ "internalType": "address",
173
211
  "name": "",
174
- "type": "uint256"
212
+ "type": "address"
213
+ }
214
+ ],
215
+ "stateMutability": "view",
216
+ "type": "function"
217
+ },
218
+ {
219
+ "inputs": [],
220
+ "name": "getRegistry",
221
+ "outputs": [
222
+ {
223
+ "internalType": "contract IRegistry",
224
+ "name": "registry",
225
+ "type": "address"
175
226
  }
176
227
  ],
177
228
  "stateMutability": "view",
@@ -180,22 +231,58 @@
180
231
  {
181
232
  "inputs": [
182
233
  {
183
- "internalType": "uint256",
184
- "name": "id",
185
- "type": "uint256"
234
+ "internalType": "string",
235
+ "name": "serviceName",
236
+ "type": "string"
237
+ },
238
+ {
239
+ "internalType": "VersionPart",
240
+ "name": "majorVersion",
241
+ "type": "uint8"
186
242
  }
187
243
  ],
188
- "name": "getOwner",
244
+ "name": "getServiceAddress",
189
245
  "outputs": [
190
246
  {
191
247
  "internalType": "address",
192
- "name": "",
248
+ "name": "serviceAddress",
193
249
  "type": "address"
194
250
  }
195
251
  ],
196
252
  "stateMutability": "view",
197
253
  "type": "function"
198
254
  },
255
+ {
256
+ "inputs": [],
257
+ "name": "getType",
258
+ "outputs": [
259
+ {
260
+ "internalType": "ObjectType",
261
+ "name": "objectType",
262
+ "type": "uint8"
263
+ }
264
+ ],
265
+ "stateMutability": "pure",
266
+ "type": "function"
267
+ },
268
+ {
269
+ "inputs": [
270
+ {
271
+ "internalType": "address",
272
+ "name": "chainNft",
273
+ "type": "address"
274
+ },
275
+ {
276
+ "internalType": "address",
277
+ "name": "protocolOwner",
278
+ "type": "address"
279
+ }
280
+ ],
281
+ "name": "initialize",
282
+ "outputs": [],
283
+ "stateMutability": "nonpayable",
284
+ "type": "function"
285
+ },
199
286
  {
200
287
  "inputs": [
201
288
  {
@@ -215,6 +302,38 @@
215
302
  "stateMutability": "view",
216
303
  "type": "function"
217
304
  },
305
+ {
306
+ "inputs": [
307
+ {
308
+ "internalType": "NftId",
309
+ "name": "nftId",
310
+ "type": "uint96"
311
+ }
312
+ ],
313
+ "name": "isRegistered",
314
+ "outputs": [
315
+ {
316
+ "internalType": "bool",
317
+ "name": "",
318
+ "type": "bool"
319
+ }
320
+ ],
321
+ "stateMutability": "view",
322
+ "type": "function"
323
+ },
324
+ {
325
+ "inputs": [],
326
+ "name": "register",
327
+ "outputs": [
328
+ {
329
+ "internalType": "NftId",
330
+ "name": "nftId",
331
+ "type": "uint96"
332
+ }
333
+ ],
334
+ "stateMutability": "pure",
335
+ "type": "function"
336
+ },
218
337
  {
219
338
  "inputs": [
220
339
  {
@@ -226,9 +345,9 @@
226
345
  "name": "register",
227
346
  "outputs": [
228
347
  {
229
- "internalType": "uint256",
348
+ "internalType": "NftId",
230
349
  "name": "nftId",
231
- "type": "uint256"
350
+ "type": "uint96"
232
351
  }
233
352
  ],
234
353
  "stateMutability": "nonpayable",
@@ -237,27 +356,32 @@
237
356
  {
238
357
  "inputs": [
239
358
  {
240
- "internalType": "uint256",
359
+ "internalType": "NftId",
241
360
  "name": "parentNftId",
242
- "type": "uint256"
361
+ "type": "uint96"
243
362
  },
244
363
  {
245
- "internalType": "uint256",
364
+ "internalType": "ObjectType",
246
365
  "name": "objectType",
247
- "type": "uint256"
366
+ "type": "uint8"
248
367
  },
249
368
  {
250
369
  "internalType": "address",
251
370
  "name": "initialOwner",
252
371
  "type": "address"
372
+ },
373
+ {
374
+ "internalType": "bytes",
375
+ "name": "data",
376
+ "type": "bytes"
253
377
  }
254
378
  ],
255
379
  "name": "registerObjectForInstance",
256
380
  "outputs": [
257
381
  {
258
- "internalType": "uint256",
382
+ "internalType": "NftId",
259
383
  "name": "nftId",
260
- "type": "uint256"
384
+ "type": "uint96"
261
385
  }
262
386
  ],
263
387
  "stateMutability": "nonpayable",
@@ -266,24 +390,83 @@
266
390
  {
267
391
  "inputs": [
268
392
  {
269
- "internalType": "uint256",
270
- "name": "id",
271
- "type": "uint256"
272
- },
393
+ "internalType": "bytes4",
394
+ "name": "interfaceId",
395
+ "type": "bytes4"
396
+ }
397
+ ],
398
+ "name": "supportsInterface",
399
+ "outputs": [
273
400
  {
274
- "internalType": "address",
275
- "name": "newOwner",
276
- "type": "address"
401
+ "internalType": "bool",
402
+ "name": "",
403
+ "type": "bool"
277
404
  }
278
405
  ],
279
- "name": "transfer",
280
- "outputs": [],
281
- "stateMutability": "nonpayable",
406
+ "stateMutability": "pure",
282
407
  "type": "function"
283
408
  }
284
409
  ],
285
- "bytecode": "0x608060405234801561001057600080fd5b506000600481905550611596806100286000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806382bfefc811610097578063c41a360a11610066578063c41a360a1461028a578063d15db8b4146102ba578063d272ac1e146102d8578063dadbccee14610308576100f5565b806382bfefc8146101f0578063ab10b8ec1461020e578063b7760c8f1461023e578063c3c5a5471461025a576100f5565b806338013f02116100d357806338013f02146101665780634420e4861461018457806353bed7c3146101b45780637535d246146101d2576100f5565b80631a3cd59a146100fa5780631a848cfb1461012a57806325425a9114610148575b600080fd5b610114600480360381019061010f9190610f69565b610326565b604051610121919061104e565b60405180910390f35b61013261041c565b60405161013f9190611078565b60405180910390f35b610150610429565b60405161015d9190611078565b60405180910390f35b61016e610432565b60405161017b9190611078565b60405180910390f35b61019e600480360381019061019991906110bf565b61043b565b6040516101ab9190611078565b60405180910390f35b6101bc610ab6565b6040516101c99190611078565b60405180910390f35b6101da610abf565b6040516101e79190611078565b60405180910390f35b6101f8610ac8565b6040516102059190611078565b60405180910390f35b610228600480360381019061022391906110ec565b610ad1565b6040516102359190611078565b60405180910390f35b6102586004803603810190610253919061113f565b610c5a565b005b610274600480360381019061026f91906110bf565b610d51565b604051610281919061119a565b60405180910390f35b6102a4600480360381019061029f9190610f69565b610d9c565b6040516102b191906111c4565b60405180910390f35b6102c2610dd9565b6040516102cf9190611078565b60405180910390f35b6102f260048036038101906102ed91906110bf565b610de2565b6040516102ff9190611078565b60405180910390f35b610310610e2b565b60405161031d9190611078565b60405180910390f35b61032e610ed3565b6000808381526020019081526020016000206040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b6000600380549050905090565b60006032905090565b6000603c905090565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146104be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b59061123c565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff166379e829d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105329190611288565b610571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056890611301565b60405180910390fd5b610579610dd9565b8173ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e89190611336565b1461078f5760008060008373ffffffffffffffffffffffffffffffffffffffff166331b62a3b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106619190611336565b81526020019081526020016000206040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600081600001511161078d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610784906113af565b60405180910390fd5b505b6108068173ffffffffffffffffffffffffffffffffffffffff1663fb2cb1016040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080191906113e4565b610e34565b915060006040518060a001604052808481526020018373ffffffffffffffffffffffffffffffffffffffff166331b62a3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088a9190611336565b81526020018373ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fe9190611336565b81526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1663fb2cb1016040518163ffffffff1660e01b8152600401602060405180830381865afa15801561096a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098e91906113e4565b73ffffffffffffffffffffffffffffffffffffffff1681525090508060008085815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050919050565b6000605a905090565b60006046905090565b6000601e905090565b6000610adb610e2b565b831480610aee5750610aeb610ab6565b83145b610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b249061145d565b60405180910390fd5b610b3682610e34565b905060006040518060a00160405280838152602001868152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681525090508060008084815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050509392505050565b6001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf2906114c9565b60405180910390fd5b806001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006028905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006050905090565b600060046000815480929190610e4990611518565b91905055506004549050816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003819080600181540180825580915050600190039060005260206000200160009091909190915055919050565b6040518060a00160405280600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b6000819050919050565b610f4681610f33565b8114610f5157600080fd5b50565b600081359050610f6381610f3d565b92915050565b600060208284031215610f7f57610f7e610f2e565b5b6000610f8d84828501610f54565b91505092915050565b610f9f81610f33565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fd082610fa5565b9050919050565b610fe081610fc5565b82525050565b60a082016000820151610ffc6000850182610f96565b50602082015161100f6020850182610f96565b5060408201516110226040850182610f96565b5060608201516110356060850182610fd7565b5060808201516110486080850182610fd7565b50505050565b600060a0820190506110636000830184610fe6565b92915050565b61107281610f33565b82525050565b600060208201905061108d6000830184611069565b92915050565b61109c81610fc5565b81146110a757600080fd5b50565b6000813590506110b981611093565b92915050565b6000602082840312156110d5576110d4610f2e565b5b60006110e3848285016110aa565b91505092915050565b60008060006060848603121561110557611104610f2e565b5b600061111386828701610f54565b935050602061112486828701610f54565b9250506040611135868287016110aa565b9150509250925092565b6000806040838503121561115657611155610f2e565b5b600061116485828601610f54565b9250506020611175858286016110aa565b9150509250929050565b60008115159050919050565b6111948161117f565b82525050565b60006020820190506111af600083018461118b565b92915050565b6111be81610fc5565b82525050565b60006020820190506111d960008301846111b5565b92915050565b600082825260208201905092915050565b7f4552524f523a5245472d3030313a414c52454144595f52454749535445524544600082015250565b60006112266020836111df565b9150611231826111f0565b602082019050919050565b6000602082019050818103600083015261125581611219565b9050919050565b6112658161117f565b811461127057600080fd5b50565b6000815190506112828161125c565b92915050565b60006020828403121561129e5761129d610f2e565b5b60006112ac84828501611273565b91505092915050565b7f4552524f523a5245472d3030323a4e4f545f524547495354455241424c450000600082015250565b60006112eb601e836111df565b91506112f6826112b5565b602082019050919050565b6000602082019050818103600083015261131a816112de565b9050919050565b60008151905061133081610f3d565b92915050565b60006020828403121561134c5761134b610f2e565b5b600061135a84828501611321565b91505092915050565b7f4552524f523a5245472d3030333a504152454e545f4e4f545f464f554e440000600082015250565b6000611399601e836111df565b91506113a482611363565b602082019050919050565b600060208201905081810360008301526113c88161138c565b9050919050565b6000815190506113de81611093565b92915050565b6000602082840312156113fa576113f9610f2e565b5b6000611408848285016113cf565b91505092915050565b7f4552524f523a5245472d3030353a545950455f494e56414c4944000000000000600082015250565b6000611447601a836111df565b915061145282611411565b602082019050919050565b600060208201905081810360008301526114768161143a565b9050919050565b7f4552524f523a5245472d3031303a4e4f545f4f574e4552000000000000000000600082015250565b60006114b36017836111df565b91506114be8261147d565b602082019050919050565b600060208201905081810360008301526114e2816114a6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061152382610f33565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611555576115546114e9565b5b60018201905091905056fea26469706673582212203fde97cde480e7aab92fcfa885a1fe75694f7308dda0d145a1b0f71b6a14c3c664736f6c63430008140033",
286
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806382bfefc811610097578063c41a360a11610066578063c41a360a1461028a578063d15db8b4146102ba578063d272ac1e146102d8578063dadbccee14610308576100f5565b806382bfefc8146101f0578063ab10b8ec1461020e578063b7760c8f1461023e578063c3c5a5471461025a576100f5565b806338013f02116100d357806338013f02146101665780634420e4861461018457806353bed7c3146101b45780637535d246146101d2576100f5565b80631a3cd59a146100fa5780631a848cfb1461012a57806325425a9114610148575b600080fd5b610114600480360381019061010f9190610f69565b610326565b604051610121919061104e565b60405180910390f35b61013261041c565b60405161013f9190611078565b60405180910390f35b610150610429565b60405161015d9190611078565b60405180910390f35b61016e610432565b60405161017b9190611078565b60405180910390f35b61019e600480360381019061019991906110bf565b61043b565b6040516101ab9190611078565b60405180910390f35b6101bc610ab6565b6040516101c99190611078565b60405180910390f35b6101da610abf565b6040516101e79190611078565b60405180910390f35b6101f8610ac8565b6040516102059190611078565b60405180910390f35b610228600480360381019061022391906110ec565b610ad1565b6040516102359190611078565b60405180910390f35b6102586004803603810190610253919061113f565b610c5a565b005b610274600480360381019061026f91906110bf565b610d51565b604051610281919061119a565b60405180910390f35b6102a4600480360381019061029f9190610f69565b610d9c565b6040516102b191906111c4565b60405180910390f35b6102c2610dd9565b6040516102cf9190611078565b60405180910390f35b6102f260048036038101906102ed91906110bf565b610de2565b6040516102ff9190611078565b60405180910390f35b610310610e2b565b60405161031d9190611078565b60405180910390f35b61032e610ed3565b6000808381526020019081526020016000206040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b6000600380549050905090565b60006032905090565b6000603c905090565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146104be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b59061123c565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff166379e829d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105329190611288565b610571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056890611301565b60405180910390fd5b610579610dd9565b8173ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e89190611336565b1461078f5760008060008373ffffffffffffffffffffffffffffffffffffffff166331b62a3b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106619190611336565b81526020019081526020016000206040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600081600001511161078d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610784906113af565b60405180910390fd5b505b6108068173ffffffffffffffffffffffffffffffffffffffff1663fb2cb1016040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080191906113e4565b610e34565b915060006040518060a001604052808481526020018373ffffffffffffffffffffffffffffffffffffffff166331b62a3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088a9190611336565b81526020018373ffffffffffffffffffffffffffffffffffffffff166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fe9190611336565b81526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1663fb2cb1016040518163ffffffff1660e01b8152600401602060405180830381865afa15801561096a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098e91906113e4565b73ffffffffffffffffffffffffffffffffffffffff1681525090508060008085815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050919050565b6000605a905090565b60006046905090565b6000601e905090565b6000610adb610e2b565b831480610aee5750610aeb610ab6565b83145b610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b249061145d565b60405180910390fd5b610b3682610e34565b905060006040518060a00160405280838152602001868152602001858152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681525090508060008084815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050509392505050565b6001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf2906114c9565b60405180910390fd5b806001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006028905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006050905090565b600060046000815480929190610e4990611518565b91905055506004549050816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003819080600181540180825580915050600190039060005260206000200160009091909190915055919050565b6040518060a00160405280600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b600080fd5b6000819050919050565b610f4681610f33565b8114610f5157600080fd5b50565b600081359050610f6381610f3d565b92915050565b600060208284031215610f7f57610f7e610f2e565b5b6000610f8d84828501610f54565b91505092915050565b610f9f81610f33565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fd082610fa5565b9050919050565b610fe081610fc5565b82525050565b60a082016000820151610ffc6000850182610f96565b50602082015161100f6020850182610f96565b5060408201516110226040850182610f96565b5060608201516110356060850182610fd7565b5060808201516110486080850182610fd7565b50505050565b600060a0820190506110636000830184610fe6565b92915050565b61107281610f33565b82525050565b600060208201905061108d6000830184611069565b92915050565b61109c81610fc5565b81146110a757600080fd5b50565b6000813590506110b981611093565b92915050565b6000602082840312156110d5576110d4610f2e565b5b60006110e3848285016110aa565b91505092915050565b60008060006060848603121561110557611104610f2e565b5b600061111386828701610f54565b935050602061112486828701610f54565b9250506040611135868287016110aa565b9150509250925092565b6000806040838503121561115657611155610f2e565b5b600061116485828601610f54565b9250506020611175858286016110aa565b9150509250929050565b60008115159050919050565b6111948161117f565b82525050565b60006020820190506111af600083018461118b565b92915050565b6111be81610fc5565b82525050565b60006020820190506111d960008301846111b5565b92915050565b600082825260208201905092915050565b7f4552524f523a5245472d3030313a414c52454144595f52454749535445524544600082015250565b60006112266020836111df565b9150611231826111f0565b602082019050919050565b6000602082019050818103600083015261125581611219565b9050919050565b6112658161117f565b811461127057600080fd5b50565b6000815190506112828161125c565b92915050565b60006020828403121561129e5761129d610f2e565b5b60006112ac84828501611273565b91505092915050565b7f4552524f523a5245472d3030323a4e4f545f524547495354455241424c450000600082015250565b60006112eb601e836111df565b91506112f6826112b5565b602082019050919050565b6000602082019050818103600083015261131a816112de565b9050919050565b60008151905061133081610f3d565b92915050565b60006020828403121561134c5761134b610f2e565b5b600061135a84828501611321565b91505092915050565b7f4552524f523a5245472d3030333a504152454e545f4e4f545f464f554e440000600082015250565b6000611399601e836111df565b91506113a482611363565b602082019050919050565b600060208201905081810360008301526113c88161138c565b9050919050565b6000815190506113de81611093565b92915050565b6000602082840312156113fa576113f9610f2e565b5b6000611408848285016113cf565b91505092915050565b7f4552524f523a5245472d3030353a545950455f494e56414c4944000000000000600082015250565b6000611447601a836111df565b915061145282611411565b602082019050919050565b600060208201905081810360008301526114768161143a565b9050919050565b7f4552524f523a5245472d3031303a4e4f545f4f574e4552000000000000000000600082015250565b60006114b36017836111df565b91506114be8261147d565b602082019050919050565b600060208201905081810360008301526114e2816114a6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061152382610f33565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611555576115546114e9565b5b60018201905091905056fea26469706673582212203fde97cde480e7aab92fcfa885a1fe75694f7308dda0d145a1b0f71b6a14c3c664736f6c63430008140033",
287
- "linkReferences": {},
288
- "deployedLinkReferences": {}
410
+ "bytecode": "0x608060405234801561001057600080fd5b5061260b806100206000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80635ef14b5e116100b8578063bc36dc911161007c578063bc36dc91146102ad578063c3c5a547146102c5578063d272ac1e146102d8578063df33330b1461030a578063e74d052f1461031d578063f16f93c21461033057600080fd5b80635ef14b5e1461024e578063644c45e014610261578063893d20e814610272578063a3bcd81d1461027a578063a48f42e01461028d57600080fd5b806331b62a3b1161010a57806331b62a3b146101e55780633bc5de30146101ed5780633fe9300e1461020a5780634420e48614610220578063485cc955146102335780635ab1bd531461024857600080fd5b8063015654ff1461014757806301ffc9a71461017157806315dae03e146101a55780631a848cfb146101b45780631aa3a008146101ca575b600080fd5b600a546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b61019561017f36600461201a565b6001600160e01b0319166306ecd8ef60e01b1490565b6040519015158152602001610168565b60405160148152602001610168565b6101bc610348565b604051908152602001610168565b60005b6040516001600160601b039091168152602001610168565b6101cd6103c1565b6040805160208101909152600081525b604051610168919061209b565b6101fd6040518060200160405280600081525081565b6101cd61022e3660046120c6565b610488565b6102466102413660046120e3565b610c5c565b005b30610154565b6101cd61025c3660046121ed565b610d61565b6007546001600160601b03166101cd565b610154610fcf565b610154610288366004612276565b6110d2565b6102a061029b3660046122d1565b611128565b60405161016891906122ee565b600754600160601b90046001600160a01b0316610154565b6101956102d33660046120c6565b61126a565b6101cd6102e63660046120c6565b6001600160a01b03166000908152600260205260409020546001600160601b031690565b6101546103183660046122d1565b611307565b61019561032b3660046122d1565b611408565b6101fd61033e3660046122d1565b611462565b905090565b60006007600c9054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561039d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103439190612361565b60004660010361043d5760085460408051632cc7144960e11b81529051610343926001600160a01b03169163598e28929160048083019260209291908290030181865afa158015610416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043a9190612361565b90565b60085460408051632e85b1f360e01b81529051610343926001600160a01b031691632e85b1f39160048083019260209291908290030181865afa158015610416573d6000803e3d6000fd5b6001600160a01b038116600090815260026020526040808220549051630a4d29dd60e31b81526001600160601b03909116600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906352694ee890602401602060405180830381865af41580156104fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051e919061237a565b61056f5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5245472d3030323a414c52454144595f5245474953544552454460448201526064015b60405180910390fd5b6040516301ffc9a760e01b8152631dfba64760e11b600482015282906001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e0919061237a565b61062c5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245472d3030333a4e4f545f524547495354455241424c4500006044820152606401610566565b6000816001600160a01b03166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610690919061239c565b60ff808216600090815260036020526040902054919250166106f45760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5245472d3030343a545950455f494e56414c49440000000000006044820152606401610566565b6000826001600160a01b03166331b62a3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610734573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075891906123b9565b905061076381611408565b6107bb5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245472d3030353a504152454e545f4e4f545f5245474953544560448201526214915160ea1b6064820152608401610566565b60ff80831660009081526004602090815260408083206001600160601b038616845283835281842054600160c01b9004851684529091529020541661084c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245472d3030363a504152454e545f545950455f494e56414c496044820152601160fa1b6064820152608401610566565b60006007600c9054906101000a90046001600160a01b03166001600160a01b031663d0def521856001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d491906123d6565b604051806020016040528060008152506040518363ffffffff1660e01b81526004016109019291906123f3565b6020604051808303816000875af1158015610920573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109449190612361565b90508094506109bc846001600160a01b03166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae919061239c565b60285b60ff90811691161490565b15610c49576040516301ffc9a760e01b8152631b4612f160e31b600482015286906001600160a01b038216906301ffc9a790602401602060405180830381865afa158015610a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a32919061237a565b610a7e5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5245472d3030373a4e4f545f53455256494345000000000000006044820152606401610566565b6000816001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610abe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ae69190810190612447565b90506000826001600160a01b031663cde749f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4c919061239c565b9050600082604051602001610b61919061209b565b60408051601f1981840301815291815281516020928301206001600160601b038c16600090815260059093529120909150610b9c8482612515565b50600081815260066020908152604080832060ff861684529091529020546001600160a01b031615610c105760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5245472d3030383a414c52454144595f524547495354455245446044820152606401610566565b600090815260066020908152604080832060ff9490941683529290522080546001600160a01b0319166001600160a01b038a1617905550505b610c53848661150e565b50505050919050565b600754600160601b90046001600160a01b031615610cc65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245472d3030313a414c52454144595f494e495449414c495a456044820152601160fa1b6064820152608401610566565b60098054336001600160a01b031991821617909155600a805482166001600160a01b0384811691909117909155600780546001600160601b0316600160601b92861692830217905560088054909216179055610d206117e2565b610d286119de565b600780546bffffffffffffffffffffffff19166001600160601b0392909216919091179055610d55611b50565b610d5d611d02565b5050565b6000610d6e8460c86109b1565b80610d7f5750610d7f8460d26109b1565b610dcb5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5245472d3031303a545950455f494e56414c49440000000000006044820152606401610566565b600754604080516020810182526000808252915163d0def52160e01b81529192600160601b90046001600160a01b03169163d0def52191610e11918891906004016123f3565b6020604051808303816000875af1158015610e30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e549190612361565b905080915060006040518060c00160405280846001600160601b03168152602001886001600160601b031681526020018760ff16815260200160006001600160a01b03168152602001866001600160a01b0316815260200185815250905080600080856001600160601b03166001600160601b0316815260200190815260200160002060008201518160000160006101000a8154816001600160601b0302191690836001600160601b03160217905550602082015181600001600c6101000a8154816001600160601b0302191690836001600160601b0316021790555060408201518160000160186101000a81548160ff021916908360ff16021790555060608201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060808201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a0820151816003019081610fc19190612515565b509050505050949350505050565b6007546040516330b8415f60e01b81526001600160601b03909116600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561102e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611052919061237a565b61106657506009546001600160a01b031690565b60075460405163df33330b60e01b81526001600160601b039091166004820152309063df33330b90602401602060405180830381865afa1580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034391906123d6565b600080836040516020016110e6919061209b565b60408051601f19818403018152918152815160209283012060009081526006835281812060ff871682529092529020546001600160a01b031691505092915050565b6040805160c0810182526000808252602082018190529181018290526060808201839052608082019290925260a08101919091526001600160601b0382811660009081526020818152604091829020825160c08101845281548086168252600160601b810490951692810192909252600160c01b90930460ff169181019190915260018201546001600160a01b039081166060830152600283015416608082015260038201805491929160a0840191906111e190612490565b80601f016020809104026020016040519081016040528092919081815260200182805461120d90612490565b801561125a5780601f1061122f5761010080835404028352916020019161125a565b820191906000526020600020905b81548152906001019060200180831161123d57829003601f168201915b5050505050815250509050919050565b6001600160a01b0381166000908152600260205260408082205490516330b8415f60e01b81526001600160601b03909116600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f906024015b602060405180830381865af41580156112dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611301919061237a565b92915050565b60075460405163046e44af60e11b81526001600160601b0383166004820152600091600160601b90046001600160a01b031690636352211e9073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906308dc895e90602401602060405180830381865af415801561137c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a091906123b9565b6040516001600160e01b031960e084901b1681526001600160601b039091166004820152602401602060405180830381865afa1580156113e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130191906123d6565b6001600160601b03811660009081526020819052604080822054905163b2466acf60e01b8152600160c01b90910460ff16600482015273__$fb4566b39bd2075cb32f600f6f40bfaef2$__9063b2466acf906024016112c0565b6001600160601b038116600090815260056020526040902080546060919061148990612490565b80601f01602080910402602001604051908101604052809291908181526020018280546114b590612490565b80156115025780601f106114d757610100808354040283529160200191611502565b820191906000526020600020905b8154815290600101906020018083116114e557829003601f168201915b50505050509050919050565b600082905060006040518060c00160405280846001600160601b03168152602001856001600160a01b03166331b62a3b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159191906123b9565b6001600160601b03168152602001856001600160a01b03166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611601919061239c565b60ff168152602001836001600160a01b03168152602001856001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167a91906123d6565b6001600160a01b03168152602001856001600160a01b0316633bc5de306040518163ffffffff1660e01b8152600401600060405180830381865afa1580156116c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116ee9190810190612447565b90526001600160601b038085166000908152602081815260409182902084518154928601519386015160ff16600160c01b0260ff60c01b19948616600160601b026001600160c01b03199094169190951617919091179190911691909117815560608201516001820180546001600160a01b039283166001600160a01b031991821617909155608084015160028401805491909316911617905560a0820151919250829160038201906117a19082612515565b505050506001600160a01b0316600090815260026020526040902080546bffffffffffffffffffffffff19166001600160601b039290921691909117905550565b60085460408051632cc7144960e11b815290516000926001600160a01b03169163598e28929160048083019260209291908290030181865afa15801561182c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118509190612361565b600854600a546040516340c10f1960e01b81526001600160a01b0391821660048201526024810184905292935016906340c10f1990604401600060405180830381600087803b1580156118a257600080fd5b505af11580156118b6573d6000803e3d6000fd5b5050505060006118c38290565b905060006040518060c00160405280836001600160601b031681526020016118e9600090565b6001600160601b03168152602001600a5b60ff908116825260006020808401829052600a546001600160a01b03908116604080870191909152805180840182528481526060968701526001600160601b03808a16855284845293819020875181549489015192890151909616600160c01b0260ff60c01b19928616600160601b026001600160c01b031990951696909516959095179290921791909116919091178255918301516001820180549184166001600160a01b031992831617905560808401516002830180549190941691161790915560a0820151919250829160038201906119d69082612515565b505050505050565b600854604051630559ea4760e01b81526002600482015260009182916001600160a01b0390911690630559ea4790602401602060405180830381865afa158015611a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a509190612361565b9050809150600860009054906101000a90046001600160a01b03166001600160a01b0316632e85b1f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acc9190612361565b8114611ada57611ada611eb0565b600854600a546040516340c10f1960e01b81526001600160a01b039182166004820152602481018490529116906340c10f1990604401600060405180830381600087803b158015611b2a57600080fd5b505af1158015611b3e573d6000803e3d6000fd5b50505050611b4c308361150e565b5090565b600360208190527f0ffe031ee7f67944a037276fd51f48fcc2fe05a729c43144606bc8777da8014f8054600160ff1991821681179092557f6117fee2f1274e1b392d2c3fe842478040a980d896757f38cbfe2ceebfa9f55f80548216831790557ff787d5ff306ee7ea1d7b35b5cacd5a837646921c113945dbc3a3b6329ce4003380548216831790557f3ba015d6b845e102ce2f76836007be82508e3543856f2a3c2ff4b56eb46d920e80548216831790557f01c8d1bf01472944f62fa726559c57c955f3535856e865cee78082252c0dbe6580548216831790557f6b16ef514f22b74729cbea5cc7babfecbdc2309e530ca716643d11fe929eed2e80548216831790557fe372c44748f4c2908ae7c0a1dc553464478b0394f70953faecd55173b039317c80548216831790557fc3d073881ce0daff4d900012573fe3b8d5b283519b2f509e59d1b978e7cf0fc5805482168317905560c860009081527f4ee5ee9bffee16640c2540fd7f6965fdc66a7e5f780f34dcd70130941a3eae078054909216831790915590919060d25b60ff1681526020810191909152604001600020805460ff1916911515919091179055565b7f6ccc4a05ba84db57b26e1eca724a26bc49e11eb3a3513975525da73fd093530d8054600160ff1991821681179092557f4c2b21eba089fcb614eba18217d4f3f95e42177ede89c079f86306b133497c3080548216831790557faa0e0fe5d9929c265201b796d5196a8fc79d16a288275314ff2973541d58721a80548216831790557f23854806efa1d194aae4b21bf1927e22d50453dfa23086ded38c40c8955c637e80548216831790557fbdc45962c4e89b26bf7a29a39eab560d17e5064145716460fdc5986ae2da49bc80548216831790557f41f7e94f80001b9d612ad252f2dc06b77c5cc502088b7ac7f3641fc95d4a34e180548216831790557f2662d582402060579dffef7773c6b43725228b20e70069c9a8314d21465c105280548216831790557fecd1272a2d7402e39704b78db8ea4bd00d629fbfc046e55cc6c9d5ee5e9e5e7880548216831790557f5e5bbf8b42bd7b6d1aeb3e362a8afc07dddf1cd72e2816d91748f633a63aabc0805490911682179055603c600090815260046020527f2fc109324a9702a6c6d9ee4cb191009203224963472d729f754fd607ea2f8fd0906082611cde565b60085460408051632e85b1f360e01b815290516000926001600160a01b031691632e85b1f39160048083019260209291908290030181865afa158015611efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1e9190612361565b600854600a546040516340c10f1960e01b81526001600160a01b0391821660048201526024810184905292935016906340c10f1990604401600060405180830381600087803b158015611f7057600080fd5b505af1158015611f84573d6000803e3d6000fd5b505050506000611f918290565b905060006040518060c00160405280836001600160601b03168152602001612005600860009054906101000a90046001600160a01b03166001600160a01b031663598e28926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610416573d6000803e3d6000fd5b6001600160601b0316815260200160146118fa565b60006020828403121561202c57600080fd5b81356001600160e01b03198116811461204457600080fd5b9392505050565b60005b8381101561206657818101518382015260200161204e565b50506000910152565b6000815180845261208781602086016020860161204b565b601f01601f19169290920160200192915050565b602081526000612044602083018461206f565b6001600160a01b03811681146120c357600080fd5b50565b6000602082840312156120d857600080fd5b8135612044816120ae565b600080604083850312156120f657600080fd5b8235612101816120ae565b91506020830135612111816120ae565b809150509250929050565b6001600160601b03811681146120c357600080fd5b60ff811681146120c357600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561217f5761217f612140565b604052919050565b600067ffffffffffffffff8211156121a1576121a1612140565b50601f01601f191660200190565b60006121c26121bd84612187565b612156565b90508281528383830111156121d657600080fd5b828260208301376000602084830101529392505050565b6000806000806080858703121561220357600080fd5b843561220e8161211c565b9350602085013561221e81612131565b9250604085013561222e816120ae565b9150606085013567ffffffffffffffff81111561224a57600080fd5b8501601f8101871361225b57600080fd5b61226a878235602084016121af565b91505092959194509250565b6000806040838503121561228957600080fd5b823567ffffffffffffffff8111156122a057600080fd5b8301601f810185136122b157600080fd5b6122c0858235602084016121af565b925050602083013561211181612131565b6000602082840312156122e357600080fd5b81356120448161211c565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff6040840151166060830152606083015160018060a01b0380821660808501528060808601511660a0850152505060a083015160c08084015261235960e084018261206f565b949350505050565b60006020828403121561237357600080fd5b5051919050565b60006020828403121561238c57600080fd5b8151801515811461204457600080fd5b6000602082840312156123ae57600080fd5b815161204481612131565b6000602082840312156123cb57600080fd5b81516120448161211c565b6000602082840312156123e857600080fd5b8151612044816120ae565b6001600160a01b03831681526040602082018190526000906123599083018461206f565b60006124256121bd84612187565b905082815283838301111561243957600080fd5b61204483602083018461204b565b60006020828403121561245957600080fd5b815167ffffffffffffffff81111561247057600080fd5b8201601f8101841361248157600080fd5b61235984825160208401612417565b600181811c908216806124a457607f821691505b6020821081036124c457634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561251057600081815260208120601f850160051c810160208610156124f15750805b601f850160051c820191505b818110156119d6578281556001016124fd565b505050565b815167ffffffffffffffff81111561252f5761252f612140565b6125438161253d8454612490565b846124ca565b602080601f83116001811461257857600084156125605750858301515b600019600386901b1c1916600185901b1785556119d6565b600085815260208120601f198616915b828110156125a757888601518255948401946001909101908401612588565b50858210156125c55787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea2646970667358221220e265f82879be20803445f374a863f310be9093b961a95716c734996db157b4ca64736f6c63430008140033",
411
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80635ef14b5e116100b8578063bc36dc911161007c578063bc36dc91146102ad578063c3c5a547146102c5578063d272ac1e146102d8578063df33330b1461030a578063e74d052f1461031d578063f16f93c21461033057600080fd5b80635ef14b5e1461024e578063644c45e014610261578063893d20e814610272578063a3bcd81d1461027a578063a48f42e01461028d57600080fd5b806331b62a3b1161010a57806331b62a3b146101e55780633bc5de30146101ed5780633fe9300e1461020a5780634420e48614610220578063485cc955146102335780635ab1bd531461024857600080fd5b8063015654ff1461014757806301ffc9a71461017157806315dae03e146101a55780631a848cfb146101b45780631aa3a008146101ca575b600080fd5b600a546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b61019561017f36600461201a565b6001600160e01b0319166306ecd8ef60e01b1490565b6040519015158152602001610168565b60405160148152602001610168565b6101bc610348565b604051908152602001610168565b60005b6040516001600160601b039091168152602001610168565b6101cd6103c1565b6040805160208101909152600081525b604051610168919061209b565b6101fd6040518060200160405280600081525081565b6101cd61022e3660046120c6565b610488565b6102466102413660046120e3565b610c5c565b005b30610154565b6101cd61025c3660046121ed565b610d61565b6007546001600160601b03166101cd565b610154610fcf565b610154610288366004612276565b6110d2565b6102a061029b3660046122d1565b611128565b60405161016891906122ee565b600754600160601b90046001600160a01b0316610154565b6101956102d33660046120c6565b61126a565b6101cd6102e63660046120c6565b6001600160a01b03166000908152600260205260409020546001600160601b031690565b6101546103183660046122d1565b611307565b61019561032b3660046122d1565b611408565b6101fd61033e3660046122d1565b611462565b905090565b60006007600c9054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561039d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103439190612361565b60004660010361043d5760085460408051632cc7144960e11b81529051610343926001600160a01b03169163598e28929160048083019260209291908290030181865afa158015610416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043a9190612361565b90565b60085460408051632e85b1f360e01b81529051610343926001600160a01b031691632e85b1f39160048083019260209291908290030181865afa158015610416573d6000803e3d6000fd5b6001600160a01b038116600090815260026020526040808220549051630a4d29dd60e31b81526001600160601b03909116600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906352694ee890602401602060405180830381865af41580156104fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051e919061237a565b61056f5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5245472d3030323a414c52454144595f5245474953544552454460448201526064015b60405180910390fd5b6040516301ffc9a760e01b8152631dfba64760e11b600482015282906001600160a01b038216906301ffc9a790602401602060405180830381865afa1580156105bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e0919061237a565b61062c5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245472d3030333a4e4f545f524547495354455241424c4500006044820152606401610566565b6000816001600160a01b03166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610690919061239c565b60ff808216600090815260036020526040902054919250166106f45760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5245472d3030343a545950455f494e56414c49440000000000006044820152606401610566565b6000826001600160a01b03166331b62a3b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610734573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075891906123b9565b905061076381611408565b6107bb5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245472d3030353a504152454e545f4e4f545f5245474953544560448201526214915160ea1b6064820152608401610566565b60ff80831660009081526004602090815260408083206001600160601b038616845283835281842054600160c01b9004851684529091529020541661084c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245472d3030363a504152454e545f545950455f494e56414c496044820152601160fa1b6064820152608401610566565b60006007600c9054906101000a90046001600160a01b03166001600160a01b031663d0def521856001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d491906123d6565b604051806020016040528060008152506040518363ffffffff1660e01b81526004016109019291906123f3565b6020604051808303816000875af1158015610920573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109449190612361565b90508094506109bc846001600160a01b03166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae919061239c565b60285b60ff90811691161490565b15610c49576040516301ffc9a760e01b8152631b4612f160e31b600482015286906001600160a01b038216906301ffc9a790602401602060405180830381865afa158015610a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a32919061237a565b610a7e5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5245472d3030373a4e4f545f53455256494345000000000000006044820152606401610566565b6000816001600160a01b03166317d7de7c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610abe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ae69190810190612447565b90506000826001600160a01b031663cde749f46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4c919061239c565b9050600082604051602001610b61919061209b565b60408051601f1981840301815291815281516020928301206001600160601b038c16600090815260059093529120909150610b9c8482612515565b50600081815260066020908152604080832060ff861684529091529020546001600160a01b031615610c105760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5245472d3030383a414c52454144595f524547495354455245446044820152606401610566565b600090815260066020908152604080832060ff9490941683529290522080546001600160a01b0319166001600160a01b038a1617905550505b610c53848661150e565b50505050919050565b600754600160601b90046001600160a01b031615610cc65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245472d3030313a414c52454144595f494e495449414c495a456044820152601160fa1b6064820152608401610566565b60098054336001600160a01b031991821617909155600a805482166001600160a01b0384811691909117909155600780546001600160601b0316600160601b92861692830217905560088054909216179055610d206117e2565b610d286119de565b600780546bffffffffffffffffffffffff19166001600160601b0392909216919091179055610d55611b50565b610d5d611d02565b5050565b6000610d6e8460c86109b1565b80610d7f5750610d7f8460d26109b1565b610dcb5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5245472d3031303a545950455f494e56414c49440000000000006044820152606401610566565b600754604080516020810182526000808252915163d0def52160e01b81529192600160601b90046001600160a01b03169163d0def52191610e11918891906004016123f3565b6020604051808303816000875af1158015610e30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e549190612361565b905080915060006040518060c00160405280846001600160601b03168152602001886001600160601b031681526020018760ff16815260200160006001600160a01b03168152602001866001600160a01b0316815260200185815250905080600080856001600160601b03166001600160601b0316815260200190815260200160002060008201518160000160006101000a8154816001600160601b0302191690836001600160601b03160217905550602082015181600001600c6101000a8154816001600160601b0302191690836001600160601b0316021790555060408201518160000160186101000a81548160ff021916908360ff16021790555060608201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060808201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a0820151816003019081610fc19190612515565b509050505050949350505050565b6007546040516330b8415f60e01b81526001600160601b03909116600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561102e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611052919061237a565b61106657506009546001600160a01b031690565b60075460405163df33330b60e01b81526001600160601b039091166004820152309063df33330b90602401602060405180830381865afa1580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034391906123d6565b600080836040516020016110e6919061209b565b60408051601f19818403018152918152815160209283012060009081526006835281812060ff871682529092529020546001600160a01b031691505092915050565b6040805160c0810182526000808252602082018190529181018290526060808201839052608082019290925260a08101919091526001600160601b0382811660009081526020818152604091829020825160c08101845281548086168252600160601b810490951692810192909252600160c01b90930460ff169181019190915260018201546001600160a01b039081166060830152600283015416608082015260038201805491929160a0840191906111e190612490565b80601f016020809104026020016040519081016040528092919081815260200182805461120d90612490565b801561125a5780601f1061122f5761010080835404028352916020019161125a565b820191906000526020600020905b81548152906001019060200180831161123d57829003601f168201915b5050505050815250509050919050565b6001600160a01b0381166000908152600260205260408082205490516330b8415f60e01b81526001600160601b03909116600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f906024015b602060405180830381865af41580156112dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611301919061237a565b92915050565b60075460405163046e44af60e11b81526001600160601b0383166004820152600091600160601b90046001600160a01b031690636352211e9073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906308dc895e90602401602060405180830381865af415801561137c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a091906123b9565b6040516001600160e01b031960e084901b1681526001600160601b039091166004820152602401602060405180830381865afa1580156113e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130191906123d6565b6001600160601b03811660009081526020819052604080822054905163b2466acf60e01b8152600160c01b90910460ff16600482015273__$fb4566b39bd2075cb32f600f6f40bfaef2$__9063b2466acf906024016112c0565b6001600160601b038116600090815260056020526040902080546060919061148990612490565b80601f01602080910402602001604051908101604052809291908181526020018280546114b590612490565b80156115025780601f106114d757610100808354040283529160200191611502565b820191906000526020600020905b8154815290600101906020018083116114e557829003601f168201915b50505050509050919050565b600082905060006040518060c00160405280846001600160601b03168152602001856001600160a01b03166331b62a3b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159191906123b9565b6001600160601b03168152602001856001600160a01b03166315dae03e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611601919061239c565b60ff168152602001836001600160a01b03168152602001856001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167a91906123d6565b6001600160a01b03168152602001856001600160a01b0316633bc5de306040518163ffffffff1660e01b8152600401600060405180830381865afa1580156116c6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116ee9190810190612447565b90526001600160601b038085166000908152602081815260409182902084518154928601519386015160ff16600160c01b0260ff60c01b19948616600160601b026001600160c01b03199094169190951617919091179190911691909117815560608201516001820180546001600160a01b039283166001600160a01b031991821617909155608084015160028401805491909316911617905560a0820151919250829160038201906117a19082612515565b505050506001600160a01b0316600090815260026020526040902080546bffffffffffffffffffffffff19166001600160601b039290921691909117905550565b60085460408051632cc7144960e11b815290516000926001600160a01b03169163598e28929160048083019260209291908290030181865afa15801561182c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118509190612361565b600854600a546040516340c10f1960e01b81526001600160a01b0391821660048201526024810184905292935016906340c10f1990604401600060405180830381600087803b1580156118a257600080fd5b505af11580156118b6573d6000803e3d6000fd5b5050505060006118c38290565b905060006040518060c00160405280836001600160601b031681526020016118e9600090565b6001600160601b03168152602001600a5b60ff908116825260006020808401829052600a546001600160a01b03908116604080870191909152805180840182528481526060968701526001600160601b03808a16855284845293819020875181549489015192890151909616600160c01b0260ff60c01b19928616600160601b026001600160c01b031990951696909516959095179290921791909116919091178255918301516001820180549184166001600160a01b031992831617905560808401516002830180549190941691161790915560a0820151919250829160038201906119d69082612515565b505050505050565b600854604051630559ea4760e01b81526002600482015260009182916001600160a01b0390911690630559ea4790602401602060405180830381865afa158015611a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a509190612361565b9050809150600860009054906101000a90046001600160a01b03166001600160a01b0316632e85b1f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acc9190612361565b8114611ada57611ada611eb0565b600854600a546040516340c10f1960e01b81526001600160a01b039182166004820152602481018490529116906340c10f1990604401600060405180830381600087803b158015611b2a57600080fd5b505af1158015611b3e573d6000803e3d6000fd5b50505050611b4c308361150e565b5090565b600360208190527f0ffe031ee7f67944a037276fd51f48fcc2fe05a729c43144606bc8777da8014f8054600160ff1991821681179092557f6117fee2f1274e1b392d2c3fe842478040a980d896757f38cbfe2ceebfa9f55f80548216831790557ff787d5ff306ee7ea1d7b35b5cacd5a837646921c113945dbc3a3b6329ce4003380548216831790557f3ba015d6b845e102ce2f76836007be82508e3543856f2a3c2ff4b56eb46d920e80548216831790557f01c8d1bf01472944f62fa726559c57c955f3535856e865cee78082252c0dbe6580548216831790557f6b16ef514f22b74729cbea5cc7babfecbdc2309e530ca716643d11fe929eed2e80548216831790557fe372c44748f4c2908ae7c0a1dc553464478b0394f70953faecd55173b039317c80548216831790557fc3d073881ce0daff4d900012573fe3b8d5b283519b2f509e59d1b978e7cf0fc5805482168317905560c860009081527f4ee5ee9bffee16640c2540fd7f6965fdc66a7e5f780f34dcd70130941a3eae078054909216831790915590919060d25b60ff1681526020810191909152604001600020805460ff1916911515919091179055565b7f6ccc4a05ba84db57b26e1eca724a26bc49e11eb3a3513975525da73fd093530d8054600160ff1991821681179092557f4c2b21eba089fcb614eba18217d4f3f95e42177ede89c079f86306b133497c3080548216831790557faa0e0fe5d9929c265201b796d5196a8fc79d16a288275314ff2973541d58721a80548216831790557f23854806efa1d194aae4b21bf1927e22d50453dfa23086ded38c40c8955c637e80548216831790557fbdc45962c4e89b26bf7a29a39eab560d17e5064145716460fdc5986ae2da49bc80548216831790557f41f7e94f80001b9d612ad252f2dc06b77c5cc502088b7ac7f3641fc95d4a34e180548216831790557f2662d582402060579dffef7773c6b43725228b20e70069c9a8314d21465c105280548216831790557fecd1272a2d7402e39704b78db8ea4bd00d629fbfc046e55cc6c9d5ee5e9e5e7880548216831790557f5e5bbf8b42bd7b6d1aeb3e362a8afc07dddf1cd72e2816d91748f633a63aabc0805490911682179055603c600090815260046020527f2fc109324a9702a6c6d9ee4cb191009203224963472d729f754fd607ea2f8fd0906082611cde565b60085460408051632e85b1f360e01b815290516000926001600160a01b031691632e85b1f39160048083019260209291908290030181865afa158015611efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1e9190612361565b600854600a546040516340c10f1960e01b81526001600160a01b0391821660048201526024810184905292935016906340c10f1990604401600060405180830381600087803b158015611f7057600080fd5b505af1158015611f84573d6000803e3d6000fd5b505050506000611f918290565b905060006040518060c00160405280836001600160601b03168152602001612005600860009054906101000a90046001600160a01b03166001600160a01b031663598e28926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610416573d6000803e3d6000fd5b6001600160601b0316815260200160146118fa565b60006020828403121561202c57600080fd5b81356001600160e01b03198116811461204457600080fd5b9392505050565b60005b8381101561206657818101518382015260200161204e565b50506000910152565b6000815180845261208781602086016020860161204b565b601f01601f19169290920160200192915050565b602081526000612044602083018461206f565b6001600160a01b03811681146120c357600080fd5b50565b6000602082840312156120d857600080fd5b8135612044816120ae565b600080604083850312156120f657600080fd5b8235612101816120ae565b91506020830135612111816120ae565b809150509250929050565b6001600160601b03811681146120c357600080fd5b60ff811681146120c357600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561217f5761217f612140565b604052919050565b600067ffffffffffffffff8211156121a1576121a1612140565b50601f01601f191660200190565b60006121c26121bd84612187565b612156565b90508281528383830111156121d657600080fd5b828260208301376000602084830101529392505050565b6000806000806080858703121561220357600080fd5b843561220e8161211c565b9350602085013561221e81612131565b9250604085013561222e816120ae565b9150606085013567ffffffffffffffff81111561224a57600080fd5b8501601f8101871361225b57600080fd5b61226a878235602084016121af565b91505092959194509250565b6000806040838503121561228957600080fd5b823567ffffffffffffffff8111156122a057600080fd5b8301601f810185136122b157600080fd5b6122c0858235602084016121af565b925050602083013561211181612131565b6000602082840312156122e357600080fd5b81356120448161211c565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff6040840151166060830152606083015160018060a01b0380821660808501528060808601511660a0850152505060a083015160c08084015261235960e084018261206f565b949350505050565b60006020828403121561237357600080fd5b5051919050565b60006020828403121561238c57600080fd5b8151801515811461204457600080fd5b6000602082840312156123ae57600080fd5b815161204481612131565b6000602082840312156123cb57600080fd5b81516120448161211c565b6000602082840312156123e857600080fd5b8151612044816120ae565b6001600160a01b03831681526040602082018190526000906123599083018461206f565b60006124256121bd84612187565b905082815283838301111561243957600080fd5b61204483602083018461204b565b60006020828403121561245957600080fd5b815167ffffffffffffffff81111561247057600080fd5b8201601f8101841361248157600080fd5b61235984825160208401612417565b600181811c908216806124a457607f821691505b6020821081036124c457634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561251057600081815260208120601f850160051c810160208610156124f15750805b601f850160051c820191505b818110156119d6578281556001016124fd565b505050565b815167ffffffffffffffff81111561252f5761252f612140565b6125438161253d8454612490565b846124ca565b602080601f83116001811461257857600084156125605750858301515b600019600386901b1c1916600185901b1785556119d6565b600085815260208120601f198616915b828110156125a757888601518255948401946001909101908401612588565b50858210156125c55787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea2646970667358221220e265f82879be20803445f374a863f310be9093b961a95716c734996db157b4ca64736f6c63430008140033",
412
+ "linkReferences": {
413
+ "contracts/types/NftId.sol": {
414
+ "NftIdLib": [
415
+ {
416
+ "length": 20,
417
+ "start": 1248
418
+ },
419
+ {
420
+ "length": 20,
421
+ "start": 4116
422
+ },
423
+ {
424
+ "length": 20,
425
+ "start": 4802
426
+ },
427
+ {
428
+ "length": 20,
429
+ "start": 4962
430
+ }
431
+ ]
432
+ },
433
+ "contracts/types/ObjectType.sol": {
434
+ "ObjectTypeLib": [
435
+ {
436
+ "length": 20,
437
+ "start": 5216
438
+ }
439
+ ]
440
+ }
441
+ },
442
+ "deployedLinkReferences": {
443
+ "contracts/types/NftId.sol": {
444
+ "NftIdLib": [
445
+ {
446
+ "length": 20,
447
+ "start": 1216
448
+ },
449
+ {
450
+ "length": 20,
451
+ "start": 4084
452
+ },
453
+ {
454
+ "length": 20,
455
+ "start": 4770
456
+ },
457
+ {
458
+ "length": 20,
459
+ "start": 4930
460
+ }
461
+ ]
462
+ },
463
+ "contracts/types/ObjectType.sol": {
464
+ "ObjectTypeLib": [
465
+ {
466
+ "length": 20,
467
+ "start": 5184
468
+ }
469
+ ]
470
+ }
471
+ }
289
472
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/ac8b1a0ba35c3a8a508882d70043ad3f.json"
4
+ }