@etherisc/gif-next 0.0.2-836a512-798 → 0.0.2-836e6e4-400

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/README.md +339 -8
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +4 -0
  3. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → components/BaseComponent.sol/BaseComponent.json} +254 -237
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +772 -0
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/access/Access.sol/AccessModule.json → components/IBaseComponent.sol/IBaseComponent.json} +207 -223
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +152 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/policy/PolicyModule.sol/PolicyModule.json → components/IPoolComponent.sol/IPoolComponent.json} +143 -122
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +157 -0
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +718 -79
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +628 -91
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +4 -0
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +66 -0
  20. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +4 -0
  21. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +24 -0
  22. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +4 -0
  23. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +42 -0
  24. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +2 -2
  26. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +2 -2
  28. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +2 -2
  30. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +2 -2
  32. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  36. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  37. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  38. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  39. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  40. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  41. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  42. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  43. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  44. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  45. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  46. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  47. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +2 -2
  48. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  49. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +2 -2
  50. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  51. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  52. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  53. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +788 -0
  54. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  55. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +185 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1145 -771
  58. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  59. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +541 -0
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +2219 -769
  64. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1057 -0
  66. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +763 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1422 -0
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +879 -0
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +444 -0
  74. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  75. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +285 -0
  76. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
  77. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +521 -0
  78. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +113 -0
  80. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +429 -0
  82. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  83. package/artifacts/contracts/instance/{lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
  84. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +502 -0
  86. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
  88. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  89. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +243 -0
  90. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
  92. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
  94. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  95. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  96. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  97. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
  98. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  99. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +10 -0
  100. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  101. package/artifacts/contracts/instance/{treasury → module}/ITreasury.sol/ITreasury.json +1 -1
  102. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  103. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +923 -0
  104. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +432 -0
  106. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +4 -0
  107. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +814 -0
  108. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  109. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +671 -0
  110. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +420 -0
  112. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  113. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +669 -0
  114. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +4 -0
  115. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +466 -0
  116. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  117. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +446 -0
  118. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  119. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +664 -0
  120. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
  121. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +499 -0
  122. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
  123. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +536 -0
  124. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  125. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +971 -0
  126. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +464 -0
  128. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
  129. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +705 -0
  130. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +420 -0
  132. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
  133. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +755 -0
  134. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +420 -0
  136. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  137. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +239 -2
  138. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  139. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +487 -31
  140. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  141. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +976 -0
  142. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  143. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  144. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  145. package/artifacts/contracts/registry/Registry.sol/Registry.json +545 -47
  146. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  147. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  148. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  149. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1195 -0
  150. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +451 -0
  152. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  153. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +546 -0
  154. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  155. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +397 -0
  156. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  158. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  159. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +35 -0
  160. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  161. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
  162. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  163. package/artifacts/contracts/{components/Component.sol/Component.json → shared/IRegisterable.sol/IRegisterable.json} +98 -102
  164. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IService.sol/IService.json +421 -0
  166. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +205 -0
  168. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  169. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  170. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  171. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  172. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  173. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +274 -0
  174. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
  175. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +442 -0
  176. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  177. package/artifacts/contracts/shared/Service.sol/Service.json +468 -0
  178. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  179. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  180. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  181. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  182. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  183. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +228 -0
  184. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +4 -0
  185. package/artifacts/contracts/test/TestFee.sol/TestFee.json +119 -0
  186. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
  187. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +305 -0
  188. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +4 -0
  189. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +116 -0
  190. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +4 -0
  191. package/artifacts/contracts/test/TestService.sol/TestService.json +600 -0
  192. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +4 -0
  193. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +376 -0
  194. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +4 -0
  195. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +218 -0
  196. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +4 -0
  197. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +286 -0
  198. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
  199. package/artifacts/contracts/test/Usdc.sol/USDC.json +376 -0
  200. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  201. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +10 -0
  202. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  203. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  204. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  205. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +2 -2
  206. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  207. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  208. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
  209. package/artifacts/contracts/types/Fee.sol/FeeLib.json +257 -0
  210. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
  211. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +125 -0
  212. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  213. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +65 -4
  214. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  215. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +33 -0
  216. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  217. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  218. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  219. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  220. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  221. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  222. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  223. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  224. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  225. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +156 -0
  226. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  227. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  228. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  229. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +77 -2
  230. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  231. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  232. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  233. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +479 -0
  234. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +4 -0
  235. package/artifacts/contracts/types/Version.sol/VersionLib.json +177 -0
  236. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +4 -0
  237. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +49 -0
  238. package/contracts/components/BaseComponent.sol +148 -0
  239. package/contracts/components/Distribution.sol +163 -0
  240. package/contracts/components/IBaseComponent.sol +32 -0
  241. package/contracts/components/IDistributionComponent.sol +44 -0
  242. package/contracts/components/IPoolComponent.sol +66 -0
  243. package/contracts/components/IProductComponent.sol +35 -0
  244. package/contracts/components/Pool.sol +247 -21
  245. package/contracts/components/Product.sol +252 -41
  246. package/contracts/experiment/cloning/Cloner.sol +47 -0
  247. package/contracts/experiment/statemachine/Dummy.sol +12 -18
  248. package/contracts/experiment/statemachine/ISM.sol +7 -2
  249. package/contracts/experiment/statemachine/SM.sol +15 -12
  250. package/contracts/experiment/statemachine/SimpleStateMachine.sol +11 -4
  251. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
  252. package/contracts/instance/BundleManager.sol +129 -0
  253. package/contracts/instance/Cloneable.sol +46 -0
  254. package/contracts/instance/IInstance.sol +61 -21
  255. package/contracts/instance/IInstanceBase.sol +26 -0
  256. package/contracts/instance/IInstanceService.sol +38 -0
  257. package/contracts/instance/Instance.sol +267 -60
  258. package/contracts/instance/InstanceAccessManager.sol +304 -0
  259. package/contracts/instance/InstanceBase.sol +41 -0
  260. package/contracts/instance/InstanceReader.sol +315 -0
  261. package/contracts/instance/InstanceService.sol +300 -0
  262. package/contracts/instance/InstanceServiceManager.sol +54 -0
  263. package/contracts/instance/ObjectManager.sol +101 -0
  264. package/contracts/instance/base/ComponentServiceBase.sol +72 -0
  265. package/contracts/instance/base/IInstanceBase.sol +23 -0
  266. package/contracts/instance/base/IKeyValueStore.sol +49 -0
  267. package/contracts/instance/base/ILifecycle.sol +30 -0
  268. package/contracts/instance/base/KeyValueStore.sol +172 -0
  269. package/contracts/instance/base/Lifecycle.sol +100 -0
  270. package/contracts/instance/module/IAccess.sol +48 -0
  271. package/contracts/instance/module/IBundle.sol +20 -0
  272. package/contracts/instance/module/IDistribution.sol +39 -0
  273. package/contracts/instance/module/IPolicy.sol +45 -0
  274. package/contracts/instance/module/IRisk.sol +11 -0
  275. package/contracts/instance/module/ISetup.sol +46 -0
  276. package/contracts/instance/module/ITreasury.sol +23 -0
  277. package/contracts/instance/service/BundleService.sol +260 -0
  278. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  279. package/contracts/instance/service/ComponentOwnerService.sol +315 -0
  280. package/contracts/instance/service/DistributionService.sol +114 -0
  281. package/contracts/instance/service/DistributionServiceManager.sol +51 -0
  282. package/contracts/instance/service/IBundleService.sol +45 -0
  283. package/contracts/instance/service/IComponentOwnerService.sol +20 -0
  284. package/contracts/instance/service/IDistributionService.sol +12 -0
  285. package/contracts/instance/service/IPolicyService.sol +87 -0
  286. package/contracts/instance/service/IPoolService.sol +20 -0
  287. package/contracts/instance/service/IProductService.sol +40 -0
  288. package/contracts/instance/service/PolicyService.sol +503 -0
  289. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  290. package/contracts/instance/service/PoolService.sol +122 -0
  291. package/contracts/instance/service/PoolServiceManager.sol +51 -0
  292. package/contracts/instance/service/ProductService.sol +168 -0
  293. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  294. package/contracts/registry/ChainNft.sol +129 -62
  295. package/contracts/registry/IRegistry.sol +65 -43
  296. package/contracts/registry/IRegistryService.sol +58 -0
  297. package/contracts/registry/ITransferInterceptor.sol +6 -0
  298. package/contracts/registry/Registry.sol +346 -127
  299. package/contracts/registry/RegistryAccessManager.sol +210 -0
  300. package/contracts/registry/RegistryService.sol +323 -0
  301. package/contracts/registry/RegistryServiceManager.sol +62 -0
  302. package/contracts/registry/ReleaseManager.sol +348 -0
  303. package/contracts/registry/TokenRegistry.sol +110 -0
  304. package/contracts/shared/ContractDeployerLib.sol +72 -0
  305. package/contracts/shared/ERC165.sol +25 -0
  306. package/contracts/shared/INftOwnable.sol +22 -0
  307. package/contracts/shared/IRegisterable.sol +17 -0
  308. package/contracts/shared/IService.sol +16 -0
  309. package/contracts/shared/IVersionable.sol +96 -0
  310. package/contracts/shared/NftOwnable.sol +134 -0
  311. package/contracts/shared/ProxyManager.sol +94 -0
  312. package/contracts/shared/Registerable.sol +90 -0
  313. package/contracts/shared/RegisterableUpgradable.sol +16 -0
  314. package/contracts/shared/Service.sol +58 -0
  315. package/contracts/shared/TokenHandler.sol +27 -0
  316. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  317. package/contracts/shared/Versionable.sol +147 -0
  318. package/contracts/test/TestFee.sol +25 -0
  319. package/contracts/test/TestRegisterable.sol +18 -0
  320. package/contracts/test/TestRoleId.sol +14 -0
  321. package/contracts/test/TestService.sol +25 -0
  322. package/contracts/test/TestToken.sol +26 -0
  323. package/contracts/test/TestVersion.sol +44 -0
  324. package/contracts/test/TestVersionable.sol +17 -0
  325. package/contracts/test/Usdc.sol +26 -0
  326. package/contracts/types/AddressSet.sol +58 -0
  327. package/contracts/types/DistributorType.sol +55 -0
  328. package/contracts/types/Fee.sol +42 -16
  329. package/contracts/types/Key32.sol +50 -0
  330. package/contracts/types/NftId.sol +22 -1
  331. package/contracts/types/NftIdSet.sol +62 -0
  332. package/contracts/types/NumberId.sol +52 -0
  333. package/contracts/types/ObjectType.sol +125 -23
  334. package/contracts/types/Referral.sol +85 -0
  335. package/contracts/types/RiskId.sol +43 -0
  336. package/contracts/types/RoleId.sol +90 -0
  337. package/contracts/types/StateId.sol +80 -21
  338. package/contracts/types/Timestamp.sol +29 -4
  339. package/contracts/types/UFixed.sol +150 -31
  340. package/contracts/types/Version.sol +107 -0
  341. package/package.json +14 -5
  342. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  343. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  344. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  345. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  346. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
  347. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  348. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  349. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  350. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  351. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  352. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.json +0 -35
  353. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  354. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  355. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  356. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  357. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  358. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -318
  359. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  360. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
  361. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  362. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  363. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  364. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  365. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -236
  366. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  367. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  368. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  369. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  370. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  371. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  372. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  373. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  374. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  375. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  376. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  377. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
  378. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  379. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  380. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  381. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
  382. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  383. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  384. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  385. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  386. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  387. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
  388. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  389. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  390. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  391. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  392. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  393. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  394. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -355
  395. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  396. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  397. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  398. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -355
  399. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  400. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  401. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  402. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  403. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  404. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  405. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  406. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  407. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  408. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  409. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  410. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  411. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
  412. package/contracts/components/Component.sol +0 -77
  413. package/contracts/components/IPool.sol +0 -11
  414. package/contracts/components/IProduct.sol +0 -11
  415. package/contracts/experiment/statemachine/README.md +0 -112
  416. package/contracts/instance/access/Access.sol +0 -165
  417. package/contracts/instance/access/IAccess.sol +0 -63
  418. package/contracts/instance/component/ComponentModule.sol +0 -254
  419. package/contracts/instance/component/IComponent.sol +0 -76
  420. package/contracts/instance/lifecycle/ILifecycle.sol +0 -32
  421. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -91
  422. package/contracts/instance/policy/IPolicy.sol +0 -52
  423. package/contracts/instance/policy/PolicyModule.sol +0 -107
  424. package/contracts/instance/pool/IPoolModule.sol +0 -22
  425. package/contracts/instance/pool/PoolModule.sol +0 -82
  426. package/contracts/instance/product/IProductService.sol +0 -36
  427. package/contracts/instance/product/ProductService.sol +0 -118
  428. package/contracts/instance/treasury/ITreasury.sol +0 -73
  429. package/contracts/instance/treasury/TokenHandler.sol +0 -27
  430. package/contracts/instance/treasury/TreasuryModule.sol +0 -131
  431. package/contracts/registry/IChainNft.sol +0 -21
@@ -0,0 +1,879 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "InstanceService",
4
+ "sourceName": "contracts/instance/InstanceService.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "ERC1167FailedCreateClone",
9
+ "type": "error"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "address",
15
+ "name": "registry",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "NftId",
20
+ "name": "nftId",
21
+ "type": "uint96"
22
+ }
23
+ ],
24
+ "name": "ErrorAlreadyLinked",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "address",
31
+ "name": "contractAddress",
32
+ "type": "address"
33
+ }
34
+ ],
35
+ "name": "ErrorContractNotRegistered",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [
40
+ {
41
+ "internalType": "address",
42
+ "name": "caller",
43
+ "type": "address"
44
+ },
45
+ {
46
+ "internalType": "NftId",
47
+ "name": "instanceNftId",
48
+ "type": "uint96"
49
+ }
50
+ ],
51
+ "name": "ErrorInstanceServiceNotInstanceOwner",
52
+ "type": "error"
53
+ },
54
+ {
55
+ "inputs": [
56
+ {
57
+ "internalType": "address",
58
+ "name": "caller",
59
+ "type": "address"
60
+ }
61
+ ],
62
+ "name": "ErrorInstanceServiceRequestUnauhorized",
63
+ "type": "error"
64
+ },
65
+ {
66
+ "inputs": [
67
+ {
68
+ "internalType": "address",
69
+ "name": "account",
70
+ "type": "address"
71
+ }
72
+ ],
73
+ "name": "ErrorNotOwner",
74
+ "type": "error"
75
+ },
76
+ {
77
+ "inputs": [
78
+ {
79
+ "internalType": "address",
80
+ "name": "registryAddress",
81
+ "type": "address"
82
+ }
83
+ ],
84
+ "name": "ErrorNotRegistry",
85
+ "type": "error"
86
+ },
87
+ {
88
+ "inputs": [
89
+ {
90
+ "internalType": "address",
91
+ "name": "registryAddress",
92
+ "type": "address"
93
+ }
94
+ ],
95
+ "name": "ErrorRegisterableNotRegistry",
96
+ "type": "error"
97
+ },
98
+ {
99
+ "inputs": [],
100
+ "name": "ErrorRegistryAddressZero",
101
+ "type": "error"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "internalType": "address",
107
+ "name": "registry",
108
+ "type": "address"
109
+ }
110
+ ],
111
+ "name": "ErrorRegistryAlreadyInitialized",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "inputs": [],
116
+ "name": "ErrorRegistryNotInitialized",
117
+ "type": "error"
118
+ },
119
+ {
120
+ "inputs": [],
121
+ "name": "InvalidInitialization",
122
+ "type": "error"
123
+ },
124
+ {
125
+ "inputs": [],
126
+ "name": "NotInitializing",
127
+ "type": "error"
128
+ },
129
+ {
130
+ "anonymous": false,
131
+ "inputs": [
132
+ {
133
+ "indexed": false,
134
+ "internalType": "uint64",
135
+ "name": "version",
136
+ "type": "uint64"
137
+ }
138
+ ],
139
+ "name": "Initialized",
140
+ "type": "event"
141
+ },
142
+ {
143
+ "anonymous": false,
144
+ "inputs": [
145
+ {
146
+ "indexed": false,
147
+ "internalType": "address",
148
+ "name": "clonedAccessManagerAddress",
149
+ "type": "address"
150
+ },
151
+ {
152
+ "indexed": false,
153
+ "internalType": "address",
154
+ "name": "clonedInstanceAddress",
155
+ "type": "address"
156
+ },
157
+ {
158
+ "indexed": false,
159
+ "internalType": "address",
160
+ "name": "clonedInstanceReaderAddress",
161
+ "type": "address"
162
+ },
163
+ {
164
+ "indexed": false,
165
+ "internalType": "NftId",
166
+ "name": "clonedInstanceNftId",
167
+ "type": "uint96"
168
+ }
169
+ ],
170
+ "name": "LogInstanceCloned",
171
+ "type": "event"
172
+ },
173
+ {
174
+ "anonymous": false,
175
+ "inputs": [
176
+ {
177
+ "indexed": false,
178
+ "internalType": "Version",
179
+ "name": "version",
180
+ "type": "uint24"
181
+ },
182
+ {
183
+ "indexed": false,
184
+ "internalType": "address",
185
+ "name": "implementation",
186
+ "type": "address"
187
+ },
188
+ {
189
+ "indexed": false,
190
+ "internalType": "address",
191
+ "name": "activatedBy",
192
+ "type": "address"
193
+ }
194
+ ],
195
+ "name": "LogVersionableInitialized",
196
+ "type": "event"
197
+ },
198
+ {
199
+ "inputs": [],
200
+ "name": "INSTANCE_CREATION_CODE_HASH",
201
+ "outputs": [
202
+ {
203
+ "internalType": "bytes32",
204
+ "name": "",
205
+ "type": "bytes32"
206
+ }
207
+ ],
208
+ "stateMutability": "view",
209
+ "type": "function"
210
+ },
211
+ {
212
+ "inputs": [],
213
+ "name": "NAME",
214
+ "outputs": [
215
+ {
216
+ "internalType": "string",
217
+ "name": "",
218
+ "type": "string"
219
+ }
220
+ ],
221
+ "stateMutability": "view",
222
+ "type": "function"
223
+ },
224
+ {
225
+ "inputs": [],
226
+ "name": "REGISTERABLE_LOCATION_V1",
227
+ "outputs": [
228
+ {
229
+ "internalType": "bytes32",
230
+ "name": "",
231
+ "type": "bytes32"
232
+ }
233
+ ],
234
+ "stateMutability": "view",
235
+ "type": "function"
236
+ },
237
+ {
238
+ "inputs": [],
239
+ "name": "createInstanceClone",
240
+ "outputs": [
241
+ {
242
+ "internalType": "contract InstanceAccessManager",
243
+ "name": "clonedAccessManager",
244
+ "type": "address"
245
+ },
246
+ {
247
+ "internalType": "contract Instance",
248
+ "name": "clonedInstance",
249
+ "type": "address"
250
+ },
251
+ {
252
+ "internalType": "NftId",
253
+ "name": "clonedInstanceNftId",
254
+ "type": "uint96"
255
+ },
256
+ {
257
+ "internalType": "contract InstanceReader",
258
+ "name": "clonedInstanceReader",
259
+ "type": "address"
260
+ },
261
+ {
262
+ "internalType": "contract BundleManager",
263
+ "name": "clonedBundleManager",
264
+ "type": "address"
265
+ }
266
+ ],
267
+ "stateMutability": "nonpayable",
268
+ "type": "function"
269
+ },
270
+ {
271
+ "inputs": [],
272
+ "name": "getDomain",
273
+ "outputs": [
274
+ {
275
+ "internalType": "ObjectType",
276
+ "name": "",
277
+ "type": "uint8"
278
+ }
279
+ ],
280
+ "stateMutability": "pure",
281
+ "type": "function"
282
+ },
283
+ {
284
+ "inputs": [],
285
+ "name": "getInitialInfo",
286
+ "outputs": [
287
+ {
288
+ "components": [
289
+ {
290
+ "internalType": "NftId",
291
+ "name": "nftId",
292
+ "type": "uint96"
293
+ },
294
+ {
295
+ "internalType": "NftId",
296
+ "name": "parentNftId",
297
+ "type": "uint96"
298
+ },
299
+ {
300
+ "internalType": "ObjectType",
301
+ "name": "objectType",
302
+ "type": "uint8"
303
+ },
304
+ {
305
+ "internalType": "bool",
306
+ "name": "isInterceptor",
307
+ "type": "bool"
308
+ },
309
+ {
310
+ "internalType": "address",
311
+ "name": "objectAddress",
312
+ "type": "address"
313
+ },
314
+ {
315
+ "internalType": "address",
316
+ "name": "initialOwner",
317
+ "type": "address"
318
+ },
319
+ {
320
+ "internalType": "bytes",
321
+ "name": "data",
322
+ "type": "bytes"
323
+ }
324
+ ],
325
+ "internalType": "struct IRegistry.ObjectInfo",
326
+ "name": "",
327
+ "type": "tuple"
328
+ },
329
+ {
330
+ "internalType": "bytes",
331
+ "name": "data",
332
+ "type": "bytes"
333
+ }
334
+ ],
335
+ "stateMutability": "view",
336
+ "type": "function"
337
+ },
338
+ {
339
+ "inputs": [],
340
+ "name": "getInitializedVersion",
341
+ "outputs": [
342
+ {
343
+ "internalType": "uint64",
344
+ "name": "",
345
+ "type": "uint64"
346
+ }
347
+ ],
348
+ "stateMutability": "view",
349
+ "type": "function"
350
+ },
351
+ {
352
+ "inputs": [],
353
+ "name": "getMajorVersion",
354
+ "outputs": [
355
+ {
356
+ "internalType": "VersionPart",
357
+ "name": "majorVersion",
358
+ "type": "uint8"
359
+ }
360
+ ],
361
+ "stateMutability": "view",
362
+ "type": "function"
363
+ },
364
+ {
365
+ "inputs": [],
366
+ "name": "getMasterInstance",
367
+ "outputs": [
368
+ {
369
+ "internalType": "address",
370
+ "name": "",
371
+ "type": "address"
372
+ }
373
+ ],
374
+ "stateMutability": "view",
375
+ "type": "function"
376
+ },
377
+ {
378
+ "inputs": [],
379
+ "name": "getMasterInstanceAccessManager",
380
+ "outputs": [
381
+ {
382
+ "internalType": "address",
383
+ "name": "",
384
+ "type": "address"
385
+ }
386
+ ],
387
+ "stateMutability": "view",
388
+ "type": "function"
389
+ },
390
+ {
391
+ "inputs": [],
392
+ "name": "getMasterInstanceBundleManager",
393
+ "outputs": [
394
+ {
395
+ "internalType": "address",
396
+ "name": "",
397
+ "type": "address"
398
+ }
399
+ ],
400
+ "stateMutability": "view",
401
+ "type": "function"
402
+ },
403
+ {
404
+ "inputs": [],
405
+ "name": "getMasterInstanceReader",
406
+ "outputs": [
407
+ {
408
+ "internalType": "address",
409
+ "name": "",
410
+ "type": "address"
411
+ }
412
+ ],
413
+ "stateMutability": "view",
414
+ "type": "function"
415
+ },
416
+ {
417
+ "inputs": [],
418
+ "name": "getNftId",
419
+ "outputs": [
420
+ {
421
+ "internalType": "NftId",
422
+ "name": "",
423
+ "type": "uint96"
424
+ }
425
+ ],
426
+ "stateMutability": "view",
427
+ "type": "function"
428
+ },
429
+ {
430
+ "inputs": [],
431
+ "name": "getOwner",
432
+ "outputs": [
433
+ {
434
+ "internalType": "address",
435
+ "name": "",
436
+ "type": "address"
437
+ }
438
+ ],
439
+ "stateMutability": "view",
440
+ "type": "function"
441
+ },
442
+ {
443
+ "inputs": [],
444
+ "name": "getRegistry",
445
+ "outputs": [
446
+ {
447
+ "internalType": "contract IRegistry",
448
+ "name": "",
449
+ "type": "address"
450
+ }
451
+ ],
452
+ "stateMutability": "view",
453
+ "type": "function"
454
+ },
455
+ {
456
+ "inputs": [],
457
+ "name": "getVersion",
458
+ "outputs": [
459
+ {
460
+ "internalType": "Version",
461
+ "name": "",
462
+ "type": "uint24"
463
+ }
464
+ ],
465
+ "stateMutability": "pure",
466
+ "type": "function"
467
+ },
468
+ {
469
+ "inputs": [
470
+ {
471
+ "internalType": "uint256",
472
+ "name": "idx",
473
+ "type": "uint256"
474
+ }
475
+ ],
476
+ "name": "getVersion",
477
+ "outputs": [
478
+ {
479
+ "internalType": "Version",
480
+ "name": "",
481
+ "type": "uint24"
482
+ }
483
+ ],
484
+ "stateMutability": "view",
485
+ "type": "function"
486
+ },
487
+ {
488
+ "inputs": [],
489
+ "name": "getVersionCount",
490
+ "outputs": [
491
+ {
492
+ "internalType": "uint256",
493
+ "name": "",
494
+ "type": "uint256"
495
+ }
496
+ ],
497
+ "stateMutability": "view",
498
+ "type": "function"
499
+ },
500
+ {
501
+ "inputs": [
502
+ {
503
+ "internalType": "Version",
504
+ "name": "_version",
505
+ "type": "uint24"
506
+ }
507
+ ],
508
+ "name": "getVersionInfo",
509
+ "outputs": [
510
+ {
511
+ "components": [
512
+ {
513
+ "internalType": "Version",
514
+ "name": "version",
515
+ "type": "uint24"
516
+ },
517
+ {
518
+ "internalType": "address",
519
+ "name": "implementation",
520
+ "type": "address"
521
+ },
522
+ {
523
+ "internalType": "address",
524
+ "name": "activatedBy",
525
+ "type": "address"
526
+ },
527
+ {
528
+ "internalType": "Timestamp",
529
+ "name": "activatedAt",
530
+ "type": "uint40"
531
+ },
532
+ {
533
+ "internalType": "Blocknumber",
534
+ "name": "activatedIn",
535
+ "type": "uint32"
536
+ }
537
+ ],
538
+ "internalType": "struct IVersionable.VersionInfo",
539
+ "name": "",
540
+ "type": "tuple"
541
+ }
542
+ ],
543
+ "stateMutability": "view",
544
+ "type": "function"
545
+ },
546
+ {
547
+ "inputs": [
548
+ {
549
+ "internalType": "address",
550
+ "name": "account",
551
+ "type": "address"
552
+ },
553
+ {
554
+ "internalType": "RoleId",
555
+ "name": "role",
556
+ "type": "uint64"
557
+ },
558
+ {
559
+ "internalType": "address",
560
+ "name": "instanceAddress",
561
+ "type": "address"
562
+ }
563
+ ],
564
+ "name": "hasRole",
565
+ "outputs": [
566
+ {
567
+ "internalType": "bool",
568
+ "name": "",
569
+ "type": "bool"
570
+ }
571
+ ],
572
+ "stateMutability": "view",
573
+ "type": "function"
574
+ },
575
+ {
576
+ "inputs": [
577
+ {
578
+ "internalType": "address",
579
+ "name": "implementation",
580
+ "type": "address"
581
+ },
582
+ {
583
+ "internalType": "address",
584
+ "name": "activatedBy",
585
+ "type": "address"
586
+ },
587
+ {
588
+ "internalType": "bytes",
589
+ "name": "data",
590
+ "type": "bytes"
591
+ }
592
+ ],
593
+ "name": "initialize",
594
+ "outputs": [],
595
+ "stateMutability": "nonpayable",
596
+ "type": "function"
597
+ },
598
+ {
599
+ "inputs": [
600
+ {
601
+ "internalType": "Version",
602
+ "name": "_version",
603
+ "type": "uint24"
604
+ }
605
+ ],
606
+ "name": "isInitialized",
607
+ "outputs": [
608
+ {
609
+ "internalType": "bool",
610
+ "name": "",
611
+ "type": "bool"
612
+ }
613
+ ],
614
+ "stateMutability": "view",
615
+ "type": "function"
616
+ },
617
+ {
618
+ "inputs": [],
619
+ "name": "linkToRegisteredNftId",
620
+ "outputs": [],
621
+ "stateMutability": "nonpayable",
622
+ "type": "function"
623
+ },
624
+ {
625
+ "inputs": [
626
+ {
627
+ "internalType": "address",
628
+ "name": "accessManagerAddress",
629
+ "type": "address"
630
+ },
631
+ {
632
+ "internalType": "address",
633
+ "name": "instanceAddress",
634
+ "type": "address"
635
+ },
636
+ {
637
+ "internalType": "address",
638
+ "name": "instanceReaderAddress",
639
+ "type": "address"
640
+ },
641
+ {
642
+ "internalType": "address",
643
+ "name": "bundleManagerAddress",
644
+ "type": "address"
645
+ }
646
+ ],
647
+ "name": "setMasterInstance",
648
+ "outputs": [],
649
+ "stateMutability": "nonpayable",
650
+ "type": "function"
651
+ },
652
+ {
653
+ "inputs": [
654
+ {
655
+ "internalType": "address",
656
+ "name": "instanceReaderAddress",
657
+ "type": "address"
658
+ }
659
+ ],
660
+ "name": "setMasterInstanceReader",
661
+ "outputs": [],
662
+ "stateMutability": "nonpayable",
663
+ "type": "function"
664
+ },
665
+ {
666
+ "inputs": [
667
+ {
668
+ "internalType": "bytes4",
669
+ "name": "interfaceId",
670
+ "type": "bytes4"
671
+ }
672
+ ],
673
+ "name": "supportsInterface",
674
+ "outputs": [
675
+ {
676
+ "internalType": "bool",
677
+ "name": "",
678
+ "type": "bool"
679
+ }
680
+ ],
681
+ "stateMutability": "view",
682
+ "type": "function"
683
+ },
684
+ {
685
+ "inputs": [
686
+ {
687
+ "internalType": "address",
688
+ "name": "implementation",
689
+ "type": "address"
690
+ },
691
+ {
692
+ "internalType": "address",
693
+ "name": "activatedBy",
694
+ "type": "address"
695
+ },
696
+ {
697
+ "internalType": "bytes",
698
+ "name": "data",
699
+ "type": "bytes"
700
+ }
701
+ ],
702
+ "name": "upgrade",
703
+ "outputs": [],
704
+ "stateMutability": "nonpayable",
705
+ "type": "function"
706
+ },
707
+ {
708
+ "inputs": [
709
+ {
710
+ "internalType": "NftId",
711
+ "name": "instanceNftId",
712
+ "type": "uint96"
713
+ }
714
+ ],
715
+ "name": "upgradeInstanceReader",
716
+ "outputs": [],
717
+ "stateMutability": "nonpayable",
718
+ "type": "function"
719
+ }
720
+ ],
721
+ "bytecode": "0x60806040523480156200001157600080fd5b50620000546301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b600280546001600160a01b031916331790556200007062000076565b6200012a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000c75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001275780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6142ce806200013a6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063946dfcfe116100f9578063cde749f411610097578063eb59c6b111610071578063eb59c6b11461053b578063edabac031461054c578063eeff428e1461055d578063feec1190146105a857600080fd5b8063cde749f41461050f578063cf7a1d7714610517578063e338e27b1461052a57600080fd5b8063b3c65015116100d3578063b3c65015146104b4578063b68d1809146104d4578063b88da759146104e9578063c22f980d146104fc57600080fd5b8063946dfcfe1461043f578063a3f4df7e14610466578063a745e3df146104a157600080fd5b80633bd516ef116101665780635ab1bd53116101405780635ab1bd53146103f3578063644c45e014610404578063872309c71461042f578063893d20e81461043757600080fd5b80633bd516ef146102b45780634d459c90146102c75780634f421333146103e057600080fd5b8063103bd5da116101a2578063103bd5da1461023d578063138461e0146102505780631eff4b221461025a5780632b440bc91461028f57600080fd5b806301ffc9a7146101c95780630d8e6e2c1461020b5780630fec111c14610227575b600080fd5b6101f66101d73660046138ad565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102136105bb565b60405162ffffff9091168152602001610202565b61022f610645565b60405161020292919061392e565b6101f661024b3660046139ff565b6107c7565b6102586108ad565b005b6102817f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610202565b6003546001600160a01b03165b6040516001600160a01b039091168152602001610202565b6102586102c2366004613a4a565b610acf565b6103836102d5366004613ab7565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061427983398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a001610202565b6101f66103ee366004613ab7565b6110e4565b6001546001600160a01b031661029c565b600154600160a01b90046001600160601b03166040516001600160601b039091168152602001610202565b610281600081565b61029c611197565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610281565b6104946040518060400160405280600f81526020016e496e7374616e63655365727669636560881b81525081565b6040516102029190613ad4565b6102586104af366004613b7c565b6112b0565b6104bc61140a565b6040516001600160401b039091168152602001610202565b60465b60405160ff9091168152602001610202565b6102136104f7366004613c20565b61142b565b61025861050a366004613c4e565b61147c565b6104d7611686565b610258610525366004613b7c565b611709565b6004546001600160a01b031661029c565b6006546001600160a01b031661029c565b6005546001600160a01b031661029c565b610565611812565b604080516001600160a01b03968716815294861660208601526001600160601b03909316928401929092528316606083015291909116608082015260a001610202565b6102586105b6366004613c6b565b611dc4565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801561061c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613c88565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e001604052806106c86001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610710611197565b6001600160a01b0316815260200182600101805461072d90613ca5565b80601f016020809104026020016040519081016040528092919081815260200182805461075990613ca5565b80156107a65780601f1061077b576101008083540402835291602001916107a6565b820191906000526020600020905b81548152906001019060200180831161078957829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6000808290506000816001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190613cdf565b6040516368fc2b7760e11b81529091506001600160a01b0382169063d1f856ee906108629088908a90600401613cfc565b602060405180830381865afa15801561087f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190613d2e565b9695505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561090f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109339190613d2e565b1561097a576001546040516316322c0f60e31b8152610971916001600160a01b03811691600160a01b9091046001600160601b031690600401613d49565b60405180910390fd5b6001546001600160a01b03166109a35760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa1580156109ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a109190613d2e565b610a38576040516372657a5160e01b81526001600160a01b0382166004820152602401610971565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa69190613d76565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b610ad7611197565b6001600160a01b0316336001600160a01b031614610b0a5760405163700dd81160e01b8152336004820152602401610971565b6003546001600160a01b031615610b7b5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3030313a4143434553535f4d414e414745525f4d415360448201526e15115497d053149150511657d4d155608a1b6064820152608401610971565b6004546001600160a01b031615610be65760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4352442d3030323a494e5354414e43455f4d41535445525f414c604482015268149150511657d4d15560ba1b6064820152608401610971565b6006546001600160a01b031615610c575760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3030343a42554e444c455f4d414e414745525f4d415360448201526e15115497d053149150511657d4d155608a1b6064820152608401610971565b6001600160a01b038416610cb75760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4352442d3030353a4143434553535f4d414e414745525f5a45526044820152604f60f81b6064820152608401610971565b6001600160a01b038316610d0d5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4352442d3030363a494e5354414e43455f5a45524f00000000006044820152606401610971565b6001600160a01b038216610d6e5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4352442d3030373a494e5354414e43455f5245414445525f5a45604482015261524f60f01b6064820152608401610971565b6001600160a01b038116610dce5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4352442d3030383a42554e444c455f4d414e414745525f5a45526044820152604f60f81b6064820152608401610971565b600083905060008390506000839050866001600160a01b0316836001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e499190613cdf565b6001600160a01b031614610eb15760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4352442d3030393a494e5354414e43455f415554484f524954596044820152680be9a92a69a82a886960bb1b6064820152608401610971565b610f89826001600160a01b0316637e7986696040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f169190613d76565b846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f789190613d76565b6001600160601b0390811691161490565b610fed5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3031303a494e5354414e43455f5245414445525f494e60448201526e0a6a8829c868abe9a92a69a82a8869608b1b6064820152608401610971565b61102e816001600160a01b0316637e7986696040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef2573d6000803e3d6000fd5b6110915760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a4352442d3031313a42554e444c455f4d414e414745525f494e5360448201526d0a8829c868abe9a92a69a82a886960931b6064820152608401610971565b5050600380546001600160a01b039687166001600160a01b031991821617909155600480549587169582169590951790945550600580549285169284169290921790915560068054919093169116179055565b60008060008051602061427983398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af415801561116c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111909190613d9e565b1192915050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156111fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112209190613d2e565b156112a057600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa15801561127c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613cdf565b506002546001600160a01b031690565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6112d26105bb565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015611312573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113369190613db7565b6000805160206142598339815191528054600160401b900460ff1680611369575080546001600160401b03808416911610155b156113875760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556113b2858561207c565b6113bb8361231b565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b6000610640600080516020614259833981519152546001600160401b031690565b6000600080516020614279833981519152600101828154811061145057611450613dd4565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b60006114906001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201529091506000906001600160a01b0383169063a48f42e090602401600060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261150b9190810190613efe565b90506000816080015190506000816001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a9190613cdf565b9050336001600160a01b038216146115a7576040516302613e9f60e51b8152336004820152602401610971565b6005546000906115bf906001600160a01b0316612323565b604051633ca904dd60e21b81529091506001600160a01b0382169063f2a41374906115f09088908a90600401613d49565b600060405180830381600087803b15801561160a57600080fd5b505af115801561161e573d6000803e3d6000fd5b5050604051633def10c760e21b81526001600160a01b0384811660048301528616925063f7bc431c91506024015b600060405180830381600087803b15801561166657600080fd5b505af115801561167a573d6000803e3d6000fd5b50505050505050505050565b60006116906105bb565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af41580156116e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613f32565b6000805160206142598339815191528054600160401b810460ff1615906001600160401b031660008115801561173c5750825b90506000826001600160401b031660011480156117585750303b155b905081158015611766575080155b156117845760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156117ae57845460ff60401b1916600160401b1785555b6117b8888861207c565b6117c28787612395565b831561180857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b600080808080338161182c6001546001600160a01b031690565b604051636939560f60e11b81526001600160a01b03821660048201819052919250829160009163d272ac1e90602401602060405180830381865afa158015611878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189c9190613d76565b905060006001600160a01b03841663d39e604360286118b9611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119229190613cdf565b600354909150819061193c906001600160a01b0316612323565b604051637bee8e7d60e11b8152306004820152909b506001600160a01b038c169063f7dd1cfa90602401600060405180830381600087803b15801561198057600080fd5b505af1158015611994573d6000803e3d6000fd5b50506004546119ae92506001600160a01b03169050612323565b60405163976b0a7760e01b81526001600160a01b038d8116600483015286811660248301526001600160601b0386166044830152336064830152919b50908b169063976b0a7790608401600060405180830381600087803b158015611a1257600080fd5b505af1158015611a26573d6000803e3d6000fd5b505060405163834af15360e01b81526001600160a01b038d81166004830152600093508416915063834af153906024016000604051808303816000875af1158015611a75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a9d9190810190613f4f565b508051600554909b50909150611abb906001600160a01b0316612323565b604051633ca904dd60e21b81529099506001600160a01b038a169063f2a4137490611aec9088908e90600401613d49565b600060405180830381600087803b158015611b0657600080fd5b505af1158015611b1a573d6000803e3d6000fd5b5050604051633def10c760e21b81526001600160a01b038c811660048301528e16925063f7bc431c9150602401600060405180830381600087803b158015611b6157600080fd5b505af1158015611b75573d6000803e3d6000fd5b5050600654611b8f92506001600160a01b03169050612323565b604051630c861c2560e41b81526001600160a01b038e8116600483015287811660248301526001600160601b038d1660448301529199509089169063c861c25090606401600060405180830381600087803b158015611bed57600080fd5b505af1158015611c01573d6000803e3d6000fd5b505060405162422c9d60e81b81526001600160a01b038b811660048301528e16925063422c9d009150602401600060405180830381600087803b158015611c4757600080fd5b505af1158015611c5b573d6000803e3d6000fd5b50505050611c6a8c8c8a6124d0565b8b6001600160a01b031663b428b0b0611c8161251d565b896040518363ffffffff1660e01b8152600401611c9f929190613cfc565b6020604051808303816000875af1158015611cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce29190613d2e565b508b6001600160a01b031663b7d2b162611cfa61251d565b306040518363ffffffff1660e01b8152600401611d18929190613cfc565b6020604051808303816000875af1158015611d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5b9190613d2e565b50604080516001600160a01b038e811682528d811660208301528b16818301526001600160601b038c16606082015290517f89f53d1fc9d655ac6863fb19d55f6cc8a7649a51ec36a0d13ec77d2bd2e970f39181900360800190a1505050505050509091929394565b611dcc611197565b6001600160a01b0316336001600160a01b031614611dff5760405163700dd81160e01b8152336004820152602401610971565b6005546001600160a01b0316611e6c5760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4352442d3030333a494e5354414e43455f5245414445525f4d4160448201526b14d5115497d393d517d4d15560a21b6064820152608401610971565b6001600160a01b038116611ecd5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4352442d3031323a494e5354414e43455f5245414445525f5a45604482015261524f60f01b6064820152608401610971565b6005546001600160a01b0390811690821603611f445760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4352442d3031343a494e5354414e43455f5245414445525f4d4160448201526f535445525f53414d455f41535f4e455760801b6064820152608401610971565b6000819050611ff5816001600160a01b0316637e7986696040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fae9190613d76565b6004805460408051630322622f60e51b815290516001600160a01b039092169263644c45e09282820192602092908290030181865afa158015610f54573d6000803e3d6000fd5b6120595760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3031353a494e5354414e43455f5245414445525f494e60448201526e0a6a8829c868abe9a92a69a82a8869608b1b6064820152608401610971565b50600580546001600160a01b0319166001600160a01b0392909216919091179055565b612084612595565b60008051602061427983398151915260006120b4600080516020614259833981519152546001600160401b031690565b905060006120c06105bb565b9050816001600160401b03166001036120ed5760028301805462ffffff191662ffffff831617905561213b565b600283015462ffffff9081169082161161213b5760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b6044820152606401610971565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af41580156121ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122139190613fb2565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906113fb9083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101c4612595565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b038116612390576040516330be1a3d60e21b815260040160405180910390fd5b919050565b6000805160206142598339815191528054600160401b810460ff1615906001600160401b03166000811580156123c85750825b90506000826001600160401b031660011480156123e45750303b155b9050811580156123f2575080155b156124105760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561243a57845460ff60401b1916600160401b1785555b600080878060200190518101906124519190613fd9565b9250905061245f818a6125ce565b61246f637b6a51fd60e01b612639565b61247f633fb125d560e21b612639565b505083156124c757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6124db83838361265e565b6124e58383612716565b6124ef8383612925565b6124f98383612b18565b6125038383612d65565b61250e838383612f44565b61251883836132b6565b505050565b6040516368aebf7b60e01b81526000600482018190529073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024015b602060405180830381865af4158015612571573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613db7565b60008051602061425983398151915254600160401b900460ff166125cc57604051631afcd79f60e31b815260040160405180910390fd5b565b600060466125da611686565b6040805160ff938416602082015292909116908201526060016040516020818303038152906040529050600061260f84613426565b905060006126228583603c848888613497565b612632637b6a51fd60e01b612639565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b60405163044ec4c360e41b81526001600160a01b038416906344ec4c309061268a908590600401614013565b600060405180830381600087803b1580156126a457600080fd5b505af11580156126b8573d6000803e3d6000fd5b505060405163044ec4c360e41b81526001600160a01b03861692506344ec4c3091506126e890849060040161404a565b600060405180830381600087803b15801561270257600080fd5b505af11580156124c7573d6000803e3d6000fd5b600061272a6001546001600160a01b031690565b905060006001600160a01b03821663d39e60436078612747611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b09190613cdf565b9050836001600160a01b031663b428b0b06127c9613563565b836040518363ffffffff1660e01b81526004016127e7929190613cfc565b6020604051808303816000875af1158015612806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282a9190613d2e565b50604080516002808252606082018352600092602083019080368337019050509050630b24cf5f60e01b8160008151811061286757612867613dd4565b6001600160e01b031990921660209283029190910190910152805163bd5947e360e01b908290600190811061289e5761289e613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0385166329db8c3d826128cf613563565b6040518363ffffffff1660e01b81526004016128ec9291906140cb565b600060405180830381600087803b15801561290657600080fd5b505af115801561291a573d6000803e3d6000fd5b505050505050505050565b6001546000906001600160a01b031663d39e6043608c612943611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ac9190613cdf565b9050826001600160a01b031663b428b0b06129c561359f565b836040518363ffffffff1660e01b81526004016129e3929190613cfc565b6020604051808303816000875af1158015612a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a269190613d2e565b5060408051600480825260a082019092526000916020820160808036833701905050905063e7cd37d460e01b81600081518110612a6557612a65613dd4565b6001600160e01b0319909216602092830291909101909101528051633055195560e11b9082906001908110612a9c57612a9c613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd61359f565b6040518363ffffffff1660e01b8152600401612aea9291906140cb565b600060405180830381600087803b158015612b0457600080fd5b505af1158015611808573d6000803e3d6000fd5b6001546000906001600160a01b031663d39e6043606e612b36611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9f9190613cdf565b9050826001600160a01b031663b428b0b0612bb86135db565b836040518363ffffffff1660e01b8152600401612bd6929190613cfc565b6020604051808303816000875af1158015612bf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c199190613d2e565b5060408051600580825260c082019092526000916020820160a0803683370190505090506391ff6eaa60e01b81600081518110612c5857612c58613dd4565b6001600160e01b03199092166020928302919091019091015280516354e750a160e11b9082906001908110612c8f57612c8f613dd4565b6001600160e01b03199092166020928302919091019091015280516317b0844560e11b9082906002908110612cc657612cc6613dd4565b6001600160e01b03199092166020928302919091019091015280516314eddc0360e31b9082906003908110612cfd57612cfd613dd4565b6001600160e01b0319909216602092830291909101909101528051633e77a42160e11b9082906004908110612d3457612d34613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd6135db565b6001546000906001600160a01b031663d39e604360d2612d83611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612dc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dec9190613cdf565b9050826001600160a01b031663b428b0b0612e05613617565b836040518363ffffffff1660e01b8152600401612e23929190613cfc565b6020604051808303816000875af1158015612e42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e669190613d2e565b50604080516003808252608082019092526000916020820160608036833701905050905063bc8d400060e01b81600081518110612ea557612ea5613dd4565b6001600160e01b0319909216602092830291909101909101528051634d4b06a960e11b9082906001908110612edc57612edc613dd4565b6001600160e01b0319909216602092830291909101909101528051631750d17360e21b9082906002908110612f1357612f13613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd613617565b6001546000906001600160a01b031663d39e604360dc612f62611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612fa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcb9190613cdf565b9050836001600160a01b031663b428b0b0612fe4613653565b836040518363ffffffff1660e01b8152600401613002929190613cfc565b6020604051808303816000875af1158015613021573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130459190613d2e565b50604080516002808252606082018352600092602083019080368337019050509050636071a68e60e01b8160008151811061308257613082613dd4565b6001600160e01b03199092166020928302919091019091015280516307f8b57360e31b90829060019081106130b9576130b9613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0385166329db8c3d826130ea613653565b6040518363ffffffff1660e01b81526004016131079291906140cb565b600060405180830381600087803b15801561312157600080fd5b505af1158015613135573d6000803e3d6000fd5b5060009250600591506131459050565b60405190808252806020026020018201604052801561316e578160200160208202803683370190505b509050630cc7e61460e01b8160008151811061318c5761318c613dd4565b6001600160e01b0319909216602092830291909101909101528051631351fccf60e31b90829060019081106131c3576131c3613dd4565b6001600160e01b03199092166020928302919091019091015280516346f0e8a760e11b90829060029081106131fa576131fa613dd4565b6001600160e01b031990921660209283029190910190910152805163b5346af560e01b908290600390811061323157613231613dd4565b6001600160e01b03199092166020928302919091019091015280516306fa456560e01b908290600490811061326857613268613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0386166329db8c3d82613299613653565b6040518363ffffffff1660e01b815260040161164c92919061411e565b6001546000906001600160a01b031663d39e604360466132d4611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333d9190613cdf565b9050826001600160a01b031663b428b0b061335661368f565b836040518363ffffffff1660e01b8152600401613374929190613cfc565b6020604051808303816000875af1158015613393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b79190613d2e565b506040805160018082528183019092526000916020808301908036833701905050905063f7bc431c60e01b816000815181106133f5576133f5613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd61368f565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa15801561346d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134919190613d76565b92915050565b6134d86301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6134e282876136cb565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b861515021781559050600181016135528382614199565b506124c76303fb044760e21b612639565b6040516368aebf7b60e01b8152610834600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b8152610898600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b81526108fc600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b8152610960600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b81526109c4600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b81526107d0600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6001600160a01b0382166137215760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e6572206973203000006044820152606401610971565b600280546001600160a01b0319166001600160a01b03841617905561374581613749565b5050565b6001546001600160a01b0316156137825760015460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401610971565b6001600160a01b0381166137a95760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b6000036137df5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610971565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263102da10360e01b60048201526301ffc9a790602401602060405180830381865afa925050508015613859575060408051601f3d908101601f1916820190925261385691810190613d2e565b60015b6138815760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610971565b806137455760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610971565b50565b6000602082840312156138bf57600080fd5b81356001600160e01b0319811681146138d757600080fd5b9392505050565b60005b838110156138f95781810151838201526020016138e1565b50506000910152565b6000815180845261391a8160208601602086016138de565b601f01601f19169290920160200192915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff6040850151166080830152606084015161397260a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e06101008401526139b8610120840182613902565b905082810360208401526139cc8185613902565b95945050505050565b6001600160a01b03811681146138aa57600080fd5b6001600160401b03811681146138aa57600080fd5b600080600060608486031215613a1457600080fd5b8335613a1f816139d5565b92506020840135613a2f816139ea565b91506040840135613a3f816139d5565b809150509250925092565b60008060008060808587031215613a6057600080fd5b8435613a6b816139d5565b93506020850135613a7b816139d5565b92506040850135613a8b816139d5565b91506060850135613a9b816139d5565b939692955090935050565b62ffffff811681146138aa57600080fd5b600060208284031215613ac957600080fd5b81356138d781613aa6565b6020815260006138d76020830184613902565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715613b1f57613b1f613ae7565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4d57613b4d613ae7565b604052919050565b60006001600160401b03821115613b6e57613b6e613ae7565b50601f01601f191660200190565b600080600060608486031215613b9157600080fd5b8335613b9c816139d5565b92506020840135613bac816139d5565b915060408401356001600160401b03811115613bc757600080fd5b8401601f81018613613bd857600080fd5b8035613beb613be682613b55565b613b25565b818152876020838501011115613c0057600080fd5b816020840160208301376000602083830101528093505050509250925092565b600060208284031215613c3257600080fd5b5035919050565b6001600160601b03811681146138aa57600080fd5b600060208284031215613c6057600080fd5b81356138d781613c39565b600060208284031215613c7d57600080fd5b81356138d7816139d5565b600060208284031215613c9a57600080fd5b81516138d781613aa6565b600181811c90821680613cb957607f821691505b602082108103613cd957634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215613cf157600080fd5b81516138d7816139d5565b6001600160401b039290921682526001600160a01b0316602082015260400190565b8051801515811461239057600080fd5b600060208284031215613d4057600080fd5b6138d782613d1e565b6001600160a01b039290921682526001600160601b0316602082015260400190565b805161239081613c39565b600060208284031215613d8857600080fd5b81516138d781613c39565b8051612390816139d5565b600060208284031215613db057600080fd5b5051919050565b600060208284031215613dc957600080fd5b81516138d7816139ea565b634e487b7160e01b600052603260045260246000fd5b60ff811681146138aa57600080fd5b805161239081613dea565b600082601f830112613e1557600080fd5b8151613e23613be682613b55565b818152846020838601011115613e3857600080fd5b613e498260208301602087016138de565b949350505050565b600060e08284031215613e6357600080fd5b613e6b613afd565b9050613e7682613d6b565b8152613e8460208301613d6b565b6020820152613e9560408301613df9565b6040820152613ea660608301613d1e565b6060820152613eb760808301613d93565b6080820152613ec860a08301613d93565b60a082015260c08201516001600160401b03811115613ee657600080fd5b613ef284828501613e04565b60c08301525092915050565b600060208284031215613f1057600080fd5b81516001600160401b03811115613f2657600080fd5b613e4984828501613e51565b600060208284031215613f4457600080fd5b81516138d781613dea565b60008060408385031215613f6257600080fd5b82516001600160401b0380821115613f7957600080fd5b613f8586838701613e51565b93506020850151915080821115613f9b57600080fd5b50613fa885828601613e04565b9150509250929050565b600060208284031215613fc457600080fd5b815164ffffffffff811681146138d757600080fd5b60008060408385031215613fec57600080fd5b8251613ff7816139d5565b6020840151909250614008816139d5565b809150509250929050565b6001600160a01b038216815260406020820181905260089082015267496e7374616e636560c01b60608201526000608082016138d7565b6001600160a01b0382168152604060208201819052600d908201526c213ab7323632a6b0b730b3b2b960991b60608201526000608082016138d7565b600081518084526020808501945080840160005b838110156140c05781516001600160e01b0319168752958201959082019060010161409a565b509495945050505050565b6060815260006140f3606083016008815267496e7374616e636560c01b602082015260400190565b82810360208401526141058186614086565b9150506001600160401b03831660408301529392505050565b6060815260006140f360608301600d81526c213ab7323632a6b0b730b3b2b960991b602082015260400190565b601f82111561251857600081815260208120601f850160051c810160208610156141725750805b601f850160051c820191505b818110156141915782815560010161417e565b505050505050565b81516001600160401b038111156141b2576141b2613ae7565b6141c6816141c08454613ca5565b8461414b565b602080601f8311600181146141fb57600084156141e35750858301515b600019600386901b1c1916600185901b178555614191565b600085815260208120601f198616915b8281101561422a5788860151825594840194600190910190840161420b565b50858210156142485787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220af7a478e1256fc1d47926c37d54168ec229e6457e18400a208a58217f8d28e6b64736f6c63430008140033",
722
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063946dfcfe116100f9578063cde749f411610097578063eb59c6b111610071578063eb59c6b11461053b578063edabac031461054c578063eeff428e1461055d578063feec1190146105a857600080fd5b8063cde749f41461050f578063cf7a1d7714610517578063e338e27b1461052a57600080fd5b8063b3c65015116100d3578063b3c65015146104b4578063b68d1809146104d4578063b88da759146104e9578063c22f980d146104fc57600080fd5b8063946dfcfe1461043f578063a3f4df7e14610466578063a745e3df146104a157600080fd5b80633bd516ef116101665780635ab1bd53116101405780635ab1bd53146103f3578063644c45e014610404578063872309c71461042f578063893d20e81461043757600080fd5b80633bd516ef146102b45780634d459c90146102c75780634f421333146103e057600080fd5b8063103bd5da116101a2578063103bd5da1461023d578063138461e0146102505780631eff4b221461025a5780632b440bc91461028f57600080fd5b806301ffc9a7146101c95780630d8e6e2c1461020b5780630fec111c14610227575b600080fd5b6101f66101d73660046138ad565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102136105bb565b60405162ffffff9091168152602001610202565b61022f610645565b60405161020292919061392e565b6101f661024b3660046139ff565b6107c7565b6102586108ad565b005b6102817f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610202565b6003546001600160a01b03165b6040516001600160a01b039091168152602001610202565b6102586102c2366004613a4a565b610acf565b6103836102d5366004613ab7565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260008051602061427983398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a001610202565b6101f66103ee366004613ab7565b6110e4565b6001546001600160a01b031661029c565b600154600160a01b90046001600160601b03166040516001600160601b039091168152602001610202565b610281600081565b61029c611197565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610281565b6104946040518060400160405280600f81526020016e496e7374616e63655365727669636560881b81525081565b6040516102029190613ad4565b6102586104af366004613b7c565b6112b0565b6104bc61140a565b6040516001600160401b039091168152602001610202565b60465b60405160ff9091168152602001610202565b6102136104f7366004613c20565b61142b565b61025861050a366004613c4e565b61147c565b6104d7611686565b610258610525366004613b7c565b611709565b6004546001600160a01b031661029c565b6006546001600160a01b031661029c565b6005546001600160a01b031661029c565b610565611812565b604080516001600160a01b03968716815294861660208601526001600160601b03909316928401929092528316606083015291909116608082015260a001610202565b6102586105b6366004613c6b565b611dc4565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af415801561061c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613c88565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e001604052806106c86001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610710611197565b6001600160a01b0316815260200182600101805461072d90613ca5565b80601f016020809104026020016040519081016040528092919081815260200182805461075990613ca5565b80156107a65780601f1061077b576101008083540402835291602001916107a6565b820191906000526020600020905b81548152906001019060200180831161078957829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6000808290506000816001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190613cdf565b6040516368fc2b7760e11b81529091506001600160a01b0382169063d1f856ee906108629088908a90600401613cfc565b602060405180830381865afa15801561087f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a39190613d2e565b9695505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af415801561090f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109339190613d2e565b1561097a576001546040516316322c0f60e31b8152610971916001600160a01b03811691600160a01b9091046001600160601b031690600401613d49565b60405180910390fd5b6001546001600160a01b03166109a35760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa1580156109ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a109190613d2e565b610a38576040516372657a5160e01b81526001600160a01b0382166004820152602401610971565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa69190613d76565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b610ad7611197565b6001600160a01b0316336001600160a01b031614610b0a5760405163700dd81160e01b8152336004820152602401610971565b6003546001600160a01b031615610b7b5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3030313a4143434553535f4d414e414745525f4d415360448201526e15115497d053149150511657d4d155608a1b6064820152608401610971565b6004546001600160a01b031615610be65760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4352442d3030323a494e5354414e43455f4d41535445525f414c604482015268149150511657d4d15560ba1b6064820152608401610971565b6006546001600160a01b031615610c575760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3030343a42554e444c455f4d414e414745525f4d415360448201526e15115497d053149150511657d4d155608a1b6064820152608401610971565b6001600160a01b038416610cb75760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4352442d3030353a4143434553535f4d414e414745525f5a45526044820152604f60f81b6064820152608401610971565b6001600160a01b038316610d0d5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4352442d3030363a494e5354414e43455f5a45524f00000000006044820152606401610971565b6001600160a01b038216610d6e5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4352442d3030373a494e5354414e43455f5245414445525f5a45604482015261524f60f01b6064820152608401610971565b6001600160a01b038116610dce5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4352442d3030383a42554e444c455f4d414e414745525f5a45526044820152604f60f81b6064820152608401610971565b600083905060008390506000839050866001600160a01b0316836001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e499190613cdf565b6001600160a01b031614610eb15760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4352442d3030393a494e5354414e43455f415554484f524954596044820152680be9a92a69a82a886960bb1b6064820152608401610971565b610f89826001600160a01b0316637e7986696040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f169190613d76565b846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f789190613d76565b6001600160601b0390811691161490565b610fed5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3031303a494e5354414e43455f5245414445525f494e60448201526e0a6a8829c868abe9a92a69a82a8869608b1b6064820152608401610971565b61102e816001600160a01b0316637e7986696040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef2573d6000803e3d6000fd5b6110915760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a4352442d3031313a42554e444c455f4d414e414745525f494e5360448201526d0a8829c868abe9a92a69a82a886960931b6064820152608401610971565b5050600380546001600160a01b039687166001600160a01b031991821617909155600480549587169582169590951790945550600580549285169284169290921790915560068054919093169116179055565b60008060008051602061427983398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af415801561116c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111909190613d9e565b1192915050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156111fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112209190613d2e565b156112a057600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa15801561127c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613cdf565b506002546001600160a01b031690565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6112d26105bb565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015611312573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113369190613db7565b6000805160206142598339815191528054600160401b900460ff1680611369575080546001600160401b03808416911610155b156113875760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556113b2858561207c565b6113bb8361231b565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b6000610640600080516020614259833981519152546001600160401b031690565b6000600080516020614279833981519152600101828154811061145057611450613dd4565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b60006114906001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03841660048201529091506000906001600160a01b0383169063a48f42e090602401600060405180830381865afa1580156114e3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261150b9190810190613efe565b90506000816080015190506000816001600160a01b031663893d20e86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a9190613cdf565b9050336001600160a01b038216146115a7576040516302613e9f60e51b8152336004820152602401610971565b6005546000906115bf906001600160a01b0316612323565b604051633ca904dd60e21b81529091506001600160a01b0382169063f2a41374906115f09088908a90600401613d49565b600060405180830381600087803b15801561160a57600080fd5b505af115801561161e573d6000803e3d6000fd5b5050604051633def10c760e21b81526001600160a01b0384811660048301528616925063f7bc431c91506024015b600060405180830381600087803b15801561166657600080fd5b505af115801561167a573d6000803e3d6000fd5b50505050505050505050565b60006116906105bb565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af41580156116e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613f32565b6000805160206142598339815191528054600160401b810460ff1615906001600160401b031660008115801561173c5750825b90506000826001600160401b031660011480156117585750303b155b905081158015611766575080155b156117845760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156117ae57845460ff60401b1916600160401b1785555b6117b8888861207c565b6117c28787612395565b831561180857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b600080808080338161182c6001546001600160a01b031690565b604051636939560f60e11b81526001600160a01b03821660048201819052919250829160009163d272ac1e90602401602060405180830381865afa158015611878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189c9190613d76565b905060006001600160a01b03841663d39e604360286118b9611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119229190613cdf565b600354909150819061193c906001600160a01b0316612323565b604051637bee8e7d60e11b8152306004820152909b506001600160a01b038c169063f7dd1cfa90602401600060405180830381600087803b15801561198057600080fd5b505af1158015611994573d6000803e3d6000fd5b50506004546119ae92506001600160a01b03169050612323565b60405163976b0a7760e01b81526001600160a01b038d8116600483015286811660248301526001600160601b0386166044830152336064830152919b50908b169063976b0a7790608401600060405180830381600087803b158015611a1257600080fd5b505af1158015611a26573d6000803e3d6000fd5b505060405163834af15360e01b81526001600160a01b038d81166004830152600093508416915063834af153906024016000604051808303816000875af1158015611a75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a9d9190810190613f4f565b508051600554909b50909150611abb906001600160a01b0316612323565b604051633ca904dd60e21b81529099506001600160a01b038a169063f2a4137490611aec9088908e90600401613d49565b600060405180830381600087803b158015611b0657600080fd5b505af1158015611b1a573d6000803e3d6000fd5b5050604051633def10c760e21b81526001600160a01b038c811660048301528e16925063f7bc431c9150602401600060405180830381600087803b158015611b6157600080fd5b505af1158015611b75573d6000803e3d6000fd5b5050600654611b8f92506001600160a01b03169050612323565b604051630c861c2560e41b81526001600160a01b038e8116600483015287811660248301526001600160601b038d1660448301529199509089169063c861c25090606401600060405180830381600087803b158015611bed57600080fd5b505af1158015611c01573d6000803e3d6000fd5b505060405162422c9d60e81b81526001600160a01b038b811660048301528e16925063422c9d009150602401600060405180830381600087803b158015611c4757600080fd5b505af1158015611c5b573d6000803e3d6000fd5b50505050611c6a8c8c8a6124d0565b8b6001600160a01b031663b428b0b0611c8161251d565b896040518363ffffffff1660e01b8152600401611c9f929190613cfc565b6020604051808303816000875af1158015611cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce29190613d2e565b508b6001600160a01b031663b7d2b162611cfa61251d565b306040518363ffffffff1660e01b8152600401611d18929190613cfc565b6020604051808303816000875af1158015611d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5b9190613d2e565b50604080516001600160a01b038e811682528d811660208301528b16818301526001600160601b038c16606082015290517f89f53d1fc9d655ac6863fb19d55f6cc8a7649a51ec36a0d13ec77d2bd2e970f39181900360800190a1505050505050509091929394565b611dcc611197565b6001600160a01b0316336001600160a01b031614611dff5760405163700dd81160e01b8152336004820152602401610971565b6005546001600160a01b0316611e6c5760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4352442d3030333a494e5354414e43455f5245414445525f4d4160448201526b14d5115497d393d517d4d15560a21b6064820152608401610971565b6001600160a01b038116611ecd5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4352442d3031323a494e5354414e43455f5245414445525f5a45604482015261524f60f01b6064820152608401610971565b6005546001600160a01b0390811690821603611f445760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4352442d3031343a494e5354414e43455f5245414445525f4d4160448201526f535445525f53414d455f41535f4e455760801b6064820152608401610971565b6000819050611ff5816001600160a01b0316637e7986696040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fae9190613d76565b6004805460408051630322622f60e51b815290516001600160a01b039092169263644c45e09282820192602092908290030181865afa158015610f54573d6000803e3d6000fd5b6120595760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4352442d3031353a494e5354414e43455f5245414445525f494e60448201526e0a6a8829c868abe9a92a69a82a8869608b1b6064820152608401610971565b50600580546001600160a01b0319166001600160a01b0392909216919091179055565b612084612595565b60008051602061427983398151915260006120b4600080516020614259833981519152546001600160401b031690565b905060006120c06105bb565b9050816001600160401b03166001036120ed5760028301805462ffffff191662ffffff831617905561213b565b600283015462ffffff9081169082161161213b5760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b6044820152606401610971565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af41580156121ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122139190613fb2565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906113fb9083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101c4612595565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b038116612390576040516330be1a3d60e21b815260040160405180910390fd5b919050565b6000805160206142598339815191528054600160401b810460ff1615906001600160401b03166000811580156123c85750825b90506000826001600160401b031660011480156123e45750303b155b9050811580156123f2575080155b156124105760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561243a57845460ff60401b1916600160401b1785555b600080878060200190518101906124519190613fd9565b9250905061245f818a6125ce565b61246f637b6a51fd60e01b612639565b61247f633fb125d560e21b612639565b505083156124c757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6124db83838361265e565b6124e58383612716565b6124ef8383612925565b6124f98383612b18565b6125038383612d65565b61250e838383612f44565b61251883836132b6565b505050565b6040516368aebf7b60e01b81526000600482018190529073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024015b602060405180830381865af4158015612571573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106409190613db7565b60008051602061425983398151915254600160401b900460ff166125cc57604051631afcd79f60e31b815260040160405180910390fd5b565b600060466125da611686565b6040805160ff938416602082015292909116908201526060016040516020818303038152906040529050600061260f84613426565b905060006126228583603c848888613497565b612632637b6a51fd60e01b612639565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b60405163044ec4c360e41b81526001600160a01b038416906344ec4c309061268a908590600401614013565b600060405180830381600087803b1580156126a457600080fd5b505af11580156126b8573d6000803e3d6000fd5b505060405163044ec4c360e41b81526001600160a01b03861692506344ec4c3091506126e890849060040161404a565b600060405180830381600087803b15801561270257600080fd5b505af11580156124c7573d6000803e3d6000fd5b600061272a6001546001600160a01b031690565b905060006001600160a01b03821663d39e60436078612747611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b09190613cdf565b9050836001600160a01b031663b428b0b06127c9613563565b836040518363ffffffff1660e01b81526004016127e7929190613cfc565b6020604051808303816000875af1158015612806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282a9190613d2e565b50604080516002808252606082018352600092602083019080368337019050509050630b24cf5f60e01b8160008151811061286757612867613dd4565b6001600160e01b031990921660209283029190910190910152805163bd5947e360e01b908290600190811061289e5761289e613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0385166329db8c3d826128cf613563565b6040518363ffffffff1660e01b81526004016128ec9291906140cb565b600060405180830381600087803b15801561290657600080fd5b505af115801561291a573d6000803e3d6000fd5b505050505050505050565b6001546000906001600160a01b031663d39e6043608c612943611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ac9190613cdf565b9050826001600160a01b031663b428b0b06129c561359f565b836040518363ffffffff1660e01b81526004016129e3929190613cfc565b6020604051808303816000875af1158015612a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a269190613d2e565b5060408051600480825260a082019092526000916020820160808036833701905050905063e7cd37d460e01b81600081518110612a6557612a65613dd4565b6001600160e01b0319909216602092830291909101909101528051633055195560e11b9082906001908110612a9c57612a9c613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd61359f565b6040518363ffffffff1660e01b8152600401612aea9291906140cb565b600060405180830381600087803b158015612b0457600080fd5b505af1158015611808573d6000803e3d6000fd5b6001546000906001600160a01b031663d39e6043606e612b36611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9f9190613cdf565b9050826001600160a01b031663b428b0b0612bb86135db565b836040518363ffffffff1660e01b8152600401612bd6929190613cfc565b6020604051808303816000875af1158015612bf5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c199190613d2e565b5060408051600580825260c082019092526000916020820160a0803683370190505090506391ff6eaa60e01b81600081518110612c5857612c58613dd4565b6001600160e01b03199092166020928302919091019091015280516354e750a160e11b9082906001908110612c8f57612c8f613dd4565b6001600160e01b03199092166020928302919091019091015280516317b0844560e11b9082906002908110612cc657612cc6613dd4565b6001600160e01b03199092166020928302919091019091015280516314eddc0360e31b9082906003908110612cfd57612cfd613dd4565b6001600160e01b0319909216602092830291909101909101528051633e77a42160e11b9082906004908110612d3457612d34613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd6135db565b6001546000906001600160a01b031663d39e604360d2612d83611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612dc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dec9190613cdf565b9050826001600160a01b031663b428b0b0612e05613617565b836040518363ffffffff1660e01b8152600401612e23929190613cfc565b6020604051808303816000875af1158015612e42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e669190613d2e565b50604080516003808252608082019092526000916020820160608036833701905050905063bc8d400060e01b81600081518110612ea557612ea5613dd4565b6001600160e01b0319909216602092830291909101909101528051634d4b06a960e11b9082906001908110612edc57612edc613dd4565b6001600160e01b0319909216602092830291909101909101528051631750d17360e21b9082906002908110612f1357612f13613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd613617565b6001546000906001600160a01b031663d39e604360dc612f62611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015612fa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcb9190613cdf565b9050836001600160a01b031663b428b0b0612fe4613653565b836040518363ffffffff1660e01b8152600401613002929190613cfc565b6020604051808303816000875af1158015613021573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130459190613d2e565b50604080516002808252606082018352600092602083019080368337019050509050636071a68e60e01b8160008151811061308257613082613dd4565b6001600160e01b03199092166020928302919091019091015280516307f8b57360e31b90829060019081106130b9576130b9613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0385166329db8c3d826130ea613653565b6040518363ffffffff1660e01b81526004016131079291906140cb565b600060405180830381600087803b15801561312157600080fd5b505af1158015613135573d6000803e3d6000fd5b5060009250600591506131459050565b60405190808252806020026020018201604052801561316e578160200160208202803683370190505b509050630cc7e61460e01b8160008151811061318c5761318c613dd4565b6001600160e01b0319909216602092830291909101909101528051631351fccf60e31b90829060019081106131c3576131c3613dd4565b6001600160e01b03199092166020928302919091019091015280516346f0e8a760e11b90829060029081106131fa576131fa613dd4565b6001600160e01b031990921660209283029190910190910152805163b5346af560e01b908290600390811061323157613231613dd4565b6001600160e01b03199092166020928302919091019091015280516306fa456560e01b908290600490811061326857613268613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0386166329db8c3d82613299613653565b6040518363ffffffff1660e01b815260040161164c92919061411e565b6001546000906001600160a01b031663d39e604360466132d4611686565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333d9190613cdf565b9050826001600160a01b031663b428b0b061335661368f565b836040518363ffffffff1660e01b8152600401613374929190613cfc565b6020604051808303816000875af1158015613393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b79190613d2e565b506040805160018082528183019092526000916020808301908036833701905050905063f7bc431c60e01b816000815181106133f5576133f5613dd4565b6001600160e01b0319909216602092830291909101909101526001600160a01b0384166329db8c3d82612acd61368f565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa15801561346d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134919190613d76565b92915050565b6134d86301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6134e282876136cb565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b861515021781559050600181016135528382614199565b506124c76303fb044760e21b612639565b6040516368aebf7b60e01b8152610834600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b8152610898600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b81526108fc600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b8152610960600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b81526109c4600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6040516368aebf7b60e01b81526107d0600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401612554565b6001600160a01b0382166137215760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e6572206973203000006044820152606401610971565b600280546001600160a01b0319166001600160a01b03841617905561374581613749565b5050565b6001546001600160a01b0316156137825760015460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401610971565b6001600160a01b0381166137a95760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b6000036137df5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610971565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263102da10360e01b60048201526301ffc9a790602401602060405180830381865afa925050508015613859575060408051601f3d908101601f1916820190925261385691810190613d2e565b60015b6138815760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610971565b806137455760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610971565b50565b6000602082840312156138bf57600080fd5b81356001600160e01b0319811681146138d757600080fd5b9392505050565b60005b838110156138f95781810151838201526020016138e1565b50506000910152565b6000815180845261391a8160208601602086016138de565b601f01601f19169290920160200192915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff6040850151166080830152606084015161397260a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e06101008401526139b8610120840182613902565b905082810360208401526139cc8185613902565b95945050505050565b6001600160a01b03811681146138aa57600080fd5b6001600160401b03811681146138aa57600080fd5b600080600060608486031215613a1457600080fd5b8335613a1f816139d5565b92506020840135613a2f816139ea565b91506040840135613a3f816139d5565b809150509250925092565b60008060008060808587031215613a6057600080fd5b8435613a6b816139d5565b93506020850135613a7b816139d5565b92506040850135613a8b816139d5565b91506060850135613a9b816139d5565b939692955090935050565b62ffffff811681146138aa57600080fd5b600060208284031215613ac957600080fd5b81356138d781613aa6565b6020815260006138d76020830184613902565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715613b1f57613b1f613ae7565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613b4d57613b4d613ae7565b604052919050565b60006001600160401b03821115613b6e57613b6e613ae7565b50601f01601f191660200190565b600080600060608486031215613b9157600080fd5b8335613b9c816139d5565b92506020840135613bac816139d5565b915060408401356001600160401b03811115613bc757600080fd5b8401601f81018613613bd857600080fd5b8035613beb613be682613b55565b613b25565b818152876020838501011115613c0057600080fd5b816020840160208301376000602083830101528093505050509250925092565b600060208284031215613c3257600080fd5b5035919050565b6001600160601b03811681146138aa57600080fd5b600060208284031215613c6057600080fd5b81356138d781613c39565b600060208284031215613c7d57600080fd5b81356138d7816139d5565b600060208284031215613c9a57600080fd5b81516138d781613aa6565b600181811c90821680613cb957607f821691505b602082108103613cd957634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215613cf157600080fd5b81516138d7816139d5565b6001600160401b039290921682526001600160a01b0316602082015260400190565b8051801515811461239057600080fd5b600060208284031215613d4057600080fd5b6138d782613d1e565b6001600160a01b039290921682526001600160601b0316602082015260400190565b805161239081613c39565b600060208284031215613d8857600080fd5b81516138d781613c39565b8051612390816139d5565b600060208284031215613db057600080fd5b5051919050565b600060208284031215613dc957600080fd5b81516138d7816139ea565b634e487b7160e01b600052603260045260246000fd5b60ff811681146138aa57600080fd5b805161239081613dea565b600082601f830112613e1557600080fd5b8151613e23613be682613b55565b818152846020838601011115613e3857600080fd5b613e498260208301602087016138de565b949350505050565b600060e08284031215613e6357600080fd5b613e6b613afd565b9050613e7682613d6b565b8152613e8460208301613d6b565b6020820152613e9560408301613df9565b6040820152613ea660608301613d1e565b6060820152613eb760808301613d93565b6080820152613ec860a08301613d93565b60a082015260c08201516001600160401b03811115613ee657600080fd5b613ef284828501613e04565b60c08301525092915050565b600060208284031215613f1057600080fd5b81516001600160401b03811115613f2657600080fd5b613e4984828501613e51565b600060208284031215613f4457600080fd5b81516138d781613dea565b60008060408385031215613f6257600080fd5b82516001600160401b0380821115613f7957600080fd5b613f8586838701613e51565b93506020850151915080821115613f9b57600080fd5b50613fa885828601613e04565b9150509250929050565b600060208284031215613fc457600080fd5b815164ffffffffff811681146138d757600080fd5b60008060408385031215613fec57600080fd5b8251613ff7816139d5565b6020840151909250614008816139d5565b809150509250929050565b6001600160a01b038216815260406020820181905260089082015267496e7374616e636560c01b60608201526000608082016138d7565b6001600160a01b0382168152604060208201819052600d908201526c213ab7323632a6b0b730b3b2b960991b60608201526000608082016138d7565b600081518084526020808501945080840160005b838110156140c05781516001600160e01b0319168752958201959082019060010161409a565b509495945050505050565b6060815260006140f3606083016008815267496e7374616e636560c01b602082015260400190565b82810360208401526141058186614086565b9150506001600160401b03831660408301529392505050565b6060815260006140f360608301600d81526c213ab7323632a6b0b730b3b2b960991b602082015260400190565b601f82111561251857600081815260208120601f850160051c810160208610156141725750805b601f850160051c820191505b818110156141915782815560010161417e565b505050505050565b81516001600160401b038111156141b2576141b2613ae7565b6141c6816141c08454613ca5565b8461414b565b602080601f8311600181146141fb57600084156141e35750858301515b600019600386901b1c1916600185901b178555614191565b600085815260208120601f198616915b8281101561422a5788860151825594840194600190910190840161420b565b50858210156142485787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220af7a478e1256fc1d47926c37d54168ec229e6457e18400a208a58217f8d28e6b64736f6c63430008140033",
723
+ "linkReferences": {
724
+ "contracts/types/Blocknumber.sol": {
725
+ "BlocknumberLib": [
726
+ {
727
+ "length": 20,
728
+ "start": 4716
729
+ }
730
+ ]
731
+ },
732
+ "contracts/types/NftId.sol": {
733
+ "NftIdLib": [
734
+ {
735
+ "length": 20,
736
+ "start": 2575
737
+ },
738
+ {
739
+ "length": 20,
740
+ "start": 4860
741
+ }
742
+ ]
743
+ },
744
+ "contracts/types/RoleId.sol": {
745
+ "RoleIdLib": [
746
+ {
747
+ "length": 20,
748
+ "start": 9840
749
+ },
750
+ {
751
+ "length": 20,
752
+ "start": 14007
753
+ },
754
+ {
755
+ "length": 20,
756
+ "start": 14067
757
+ },
758
+ {
759
+ "length": 20,
760
+ "start": 14127
761
+ },
762
+ {
763
+ "length": 20,
764
+ "start": 14187
765
+ },
766
+ {
767
+ "length": 20,
768
+ "start": 14247
769
+ },
770
+ {
771
+ "length": 20,
772
+ "start": 14307
773
+ }
774
+ ]
775
+ },
776
+ "contracts/types/Timestamp.sol": {
777
+ "TimestampLib": [
778
+ {
779
+ "length": 20,
780
+ "start": 8943
781
+ }
782
+ ]
783
+ },
784
+ "contracts/types/Version.sol": {
785
+ "VersionLib": [
786
+ {
787
+ "length": 20,
788
+ "start": 1820
789
+ },
790
+ {
791
+ "length": 20,
792
+ "start": 5100
793
+ },
794
+ {
795
+ "length": 20,
796
+ "start": 6117
797
+ }
798
+ ]
799
+ }
800
+ },
801
+ "deployedLinkReferences": {
802
+ "contracts/types/Blocknumber.sol": {
803
+ "BlocknumberLib": [
804
+ {
805
+ "length": 20,
806
+ "start": 4402
807
+ }
808
+ ]
809
+ },
810
+ "contracts/types/NftId.sol": {
811
+ "NftIdLib": [
812
+ {
813
+ "length": 20,
814
+ "start": 2261
815
+ },
816
+ {
817
+ "length": 20,
818
+ "start": 4546
819
+ }
820
+ ]
821
+ },
822
+ "contracts/types/RoleId.sol": {
823
+ "RoleIdLib": [
824
+ {
825
+ "length": 20,
826
+ "start": 9526
827
+ },
828
+ {
829
+ "length": 20,
830
+ "start": 13693
831
+ },
832
+ {
833
+ "length": 20,
834
+ "start": 13753
835
+ },
836
+ {
837
+ "length": 20,
838
+ "start": 13813
839
+ },
840
+ {
841
+ "length": 20,
842
+ "start": 13873
843
+ },
844
+ {
845
+ "length": 20,
846
+ "start": 13933
847
+ },
848
+ {
849
+ "length": 20,
850
+ "start": 13993
851
+ }
852
+ ]
853
+ },
854
+ "contracts/types/Timestamp.sol": {
855
+ "TimestampLib": [
856
+ {
857
+ "length": 20,
858
+ "start": 8629
859
+ }
860
+ ]
861
+ },
862
+ "contracts/types/Version.sol": {
863
+ "VersionLib": [
864
+ {
865
+ "length": 20,
866
+ "start": 1506
867
+ },
868
+ {
869
+ "length": 20,
870
+ "start": 4786
871
+ },
872
+ {
873
+ "length": 20,
874
+ "start": 5803
875
+ }
876
+ ]
877
+ }
878
+ }
879
+ }