@etherisc/gif-next 0.0.2-ef935e0-790 → 0.0.2-efd035d-094

Sign up to get free protection for your applications and to get access to all the features.
Files changed (591) hide show
  1. package/README.md +72 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +471 -552
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +343 -173
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +478 -3045
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +649 -336
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +511 -349
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +351 -105
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +91 -2
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +718 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → oracle/IOracleService.sol/IOracleService.json} +269 -174
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1133 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +868 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +714 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +297 -358
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +233 -200
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +259 -284
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → product/IProductService.sol/IProductService.json} +147 -87
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +407 -127
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +382 -219
  118. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  119. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  120. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/Registry.sol/Registry.json +601 -180
  122. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +452 -330
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +331 -135
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  129. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  130. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  132. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  133. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
  134. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → shared/AccessManagerCustom.sol/AccessManagerCustom.json} +122 -11
  136. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  138. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  140. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  144. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  145. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  146. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  147. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1490 -0
  148. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  150. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +203 -217
  152. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  153. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  154. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  155. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  156. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  158. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  159. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  160. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  162. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  164. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  166. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  168. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  170. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  172. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  174. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  175. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  176. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IService.sol/IService.json +88 -176
  178. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  180. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  181. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  182. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  183. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  184. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  185. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  186. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  187. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  188. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  189. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  190. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  192. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  193. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  194. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  195. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -62
  196. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  198. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  199. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  200. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  201. package/artifacts/contracts/shared/Service.sol/Service.json +191 -165
  202. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  203. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  204. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  205. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  206. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  208. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  209. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  210. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  211. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  212. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  214. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  215. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  216. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  218. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  220. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  222. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  224. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  226. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  227. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  228. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  229. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  230. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  231. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  232. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  234. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  236. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  238. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  240. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  242. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  244. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  245. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  246. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -0
  248. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  250. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  252. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  254. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  256. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  258. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  260. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  262. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  263. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
  264. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  266. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  267. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  268. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  270. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  271. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  272. package/contracts/distribution/Distribution.sol +261 -0
  273. package/contracts/distribution/DistributionService.sol +298 -0
  274. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  275. package/contracts/distribution/IDistributionComponent.sol +66 -0
  276. package/contracts/distribution/IDistributionService.sol +81 -0
  277. package/contracts/instance/BundleManager.sol +126 -0
  278. package/contracts/instance/IInstance.sol +67 -24
  279. package/contracts/instance/IInstanceService.sol +64 -13
  280. package/contracts/instance/Instance.sol +156 -363
  281. package/contracts/instance/InstanceAdmin.sol +331 -0
  282. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  283. package/contracts/instance/InstanceReader.sol +167 -83
  284. package/contracts/instance/InstanceService.sol +305 -126
  285. package/contracts/instance/InstanceServiceManager.sol +12 -25
  286. package/contracts/instance/InstanceStore.sol +281 -0
  287. package/contracts/instance/base/BalanceStore.sol +118 -0
  288. package/contracts/instance/base/Cloneable.sol +51 -0
  289. package/contracts/instance/base/ObjectCounter.sol +21 -0
  290. package/contracts/instance/base/ObjectManager.sol +82 -0
  291. package/contracts/instance/module/IAccess.sol +29 -21
  292. package/contracts/instance/module/IBundle.sol +8 -8
  293. package/contracts/instance/module/IComponents.sol +52 -0
  294. package/contracts/instance/module/IDistribution.sol +7 -4
  295. package/contracts/instance/module/IPolicy.sol +56 -17
  296. package/contracts/instance/module/IRisk.sol +1 -1
  297. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  298. package/contracts/oracle/IOracle.sol +20 -0
  299. package/contracts/oracle/IOracleComponent.sol +16 -0
  300. package/contracts/oracle/IOracleService.sol +42 -0
  301. package/contracts/oracle/Oracle.sol +122 -0
  302. package/contracts/oracle/OracleService.sol +191 -0
  303. package/contracts/oracle/OracleServiceManager.sol +42 -0
  304. package/contracts/pool/BundleService.sol +296 -0
  305. package/contracts/pool/BundleServiceManager.sol +42 -0
  306. package/contracts/pool/IBundleService.sol +106 -0
  307. package/contracts/pool/IPoolComponent.sol +112 -0
  308. package/contracts/pool/IPoolService.sol +150 -0
  309. package/contracts/pool/Pool.sol +299 -0
  310. package/contracts/pool/PoolService.sol +453 -0
  311. package/contracts/pool/PoolServiceManager.sol +42 -0
  312. package/contracts/product/ApplicationService.sol +254 -0
  313. package/contracts/product/ApplicationServiceManager.sol +38 -0
  314. package/contracts/product/ClaimService.sol +442 -0
  315. package/contracts/product/ClaimServiceManager.sol +38 -0
  316. package/contracts/product/IApplicationService.sol +62 -0
  317. package/contracts/product/IClaimService.sol +93 -0
  318. package/contracts/product/IPolicyService.sol +78 -0
  319. package/contracts/product/IPricingService.sol +39 -0
  320. package/contracts/product/IProductComponent.sol +42 -0
  321. package/contracts/product/IProductService.sol +33 -0
  322. package/contracts/product/PolicyService.sol +475 -0
  323. package/contracts/product/PolicyServiceManager.sol +42 -0
  324. package/contracts/product/PricingService.sol +301 -0
  325. package/contracts/product/PricingServiceManager.sol +42 -0
  326. package/contracts/product/Product.sol +377 -0
  327. package/contracts/product/ProductService.sol +124 -0
  328. package/contracts/product/ProductServiceManager.sol +42 -0
  329. package/contracts/registry/ChainNft.sol +15 -0
  330. package/contracts/registry/IRegistry.sol +75 -30
  331. package/contracts/registry/IRegistryService.sol +47 -28
  332. package/contracts/registry/ITransferInterceptor.sol +1 -0
  333. package/contracts/registry/Registry.sol +378 -246
  334. package/contracts/registry/RegistryAdmin.sol +237 -0
  335. package/contracts/registry/RegistryService.sol +115 -207
  336. package/contracts/registry/RegistryServiceManager.sol +24 -46
  337. package/contracts/registry/ReleaseManager.sol +599 -0
  338. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  339. package/contracts/registry/TokenRegistry.sol +261 -57
  340. package/contracts/{instance/AccessManagerSimple.sol → shared/AccessManagerCustom.sol} +276 -232
  341. package/contracts/shared/AccessManagerExtended.sol +470 -0
  342. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  343. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  344. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  345. package/contracts/shared/Component.sol +281 -0
  346. package/contracts/shared/ComponentService.sol +618 -0
  347. package/contracts/shared/ComponentServiceManager.sol +35 -0
  348. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  349. package/contracts/shared/ERC165.sol +15 -13
  350. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  351. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  352. package/contracts/shared/IComponent.sol +70 -0
  353. package/contracts/shared/IComponentService.sol +102 -0
  354. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  355. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  356. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  357. package/contracts/shared/INftOwnable.sol +13 -12
  358. package/contracts/shared/IPolicyHolder.sol +45 -0
  359. package/contracts/shared/IRegisterable.sol +4 -6
  360. package/contracts/shared/IRegistryLinked.sol +11 -0
  361. package/contracts/shared/IService.sol +8 -5
  362. package/contracts/shared/IVersionable.sol +5 -48
  363. package/contracts/shared/InitializableCustom.sol +177 -0
  364. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  365. package/contracts/shared/KeyValueStore.sol +127 -0
  366. package/contracts/{instance/base → shared}/Lifecycle.sol +35 -7
  367. package/contracts/shared/NftIdSetManager.sol +65 -0
  368. package/contracts/shared/NftOwnable.sol +59 -86
  369. package/contracts/shared/PolicyHolder.sol +102 -0
  370. package/contracts/shared/ProxyManager.sol +131 -26
  371. package/contracts/shared/Registerable.sol +26 -41
  372. package/contracts/shared/RegistryLinked.sol +43 -0
  373. package/contracts/shared/Service.sol +46 -24
  374. package/contracts/shared/TokenHandler.sol +37 -6
  375. package/contracts/shared/Versionable.sol +4 -92
  376. package/contracts/staking/IStaking.sol +168 -0
  377. package/contracts/staking/IStakingService.sol +149 -0
  378. package/contracts/staking/StakeManagerLib.sol +179 -0
  379. package/contracts/staking/Staking.sol +551 -0
  380. package/contracts/staking/StakingManager.sol +54 -0
  381. package/contracts/staking/StakingReader.sol +187 -0
  382. package/contracts/staking/StakingService.sol +406 -0
  383. package/contracts/staking/StakingServiceManager.sol +45 -0
  384. package/contracts/staking/StakingStore.sol +572 -0
  385. package/contracts/staking/TargetManagerLib.sol +207 -0
  386. package/contracts/{types → type}/AddressSet.sol +1 -1
  387. package/contracts/type/Amount.sol +128 -0
  388. package/contracts/{types → type}/Blocknumber.sol +21 -3
  389. package/contracts/type/ClaimId.sol +75 -0
  390. package/contracts/{types → type}/DistributorType.sol +2 -2
  391. package/contracts/{types → type}/Fee.sol +33 -23
  392. package/contracts/{types → type}/NftId.sol +21 -15
  393. package/contracts/type/NftIdSet.sol +62 -0
  394. package/contracts/{types → type}/ObjectType.sol +32 -16
  395. package/contracts/type/PayoutId.sol +82 -0
  396. package/contracts/{types → type}/Referral.sol +5 -1
  397. package/contracts/type/RequestId.sol +75 -0
  398. package/contracts/{types → type}/RiskId.sol +1 -1
  399. package/contracts/type/RoleId.sol +146 -0
  400. package/contracts/type/Seconds.sol +81 -0
  401. package/contracts/{types → type}/StateId.sol +30 -4
  402. package/contracts/{types → type}/Timestamp.sol +18 -13
  403. package/contracts/{types → type}/UFixed.sol +1 -0
  404. package/contracts/{types → type}/Version.sol +2 -1
  405. package/package.json +3 -3
  406. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  407. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  408. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  409. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  410. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  411. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  412. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  413. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  414. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  415. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  416. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  417. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  418. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -782
  419. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  420. package/artifacts/contracts/components/Product.sol/Product.json +0 -775
  421. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  422. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  423. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  424. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  425. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  426. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  427. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  428. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  429. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  430. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  431. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  432. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  433. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  434. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  435. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  436. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  437. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  438. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  439. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  440. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  441. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  442. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  443. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  444. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  445. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  446. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  447. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  448. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  449. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  450. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  451. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  452. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  454. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  455. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  456. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  458. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  459. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  460. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  461. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  462. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  463. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  464. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  465. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  466. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  467. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  469. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  472. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  473. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  474. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  475. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  476. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  477. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  479. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  481. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
  483. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  485. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  487. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -839
  489. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -448
  491. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  492. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  493. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  494. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  495. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  496. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  497. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  498. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  499. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  500. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  501. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  502. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  503. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  504. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  505. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  506. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  507. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  508. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  509. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  510. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  511. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  512. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  513. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  514. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  515. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  516. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  517. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  518. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  519. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  520. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  521. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  522. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  523. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  524. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  525. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  526. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  527. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  528. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  529. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  530. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  531. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  533. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  534. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  535. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  536. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  537. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  538. package/contracts/components/BaseComponent.sol +0 -91
  539. package/contracts/components/Distribution.sol +0 -160
  540. package/contracts/components/IBaseComponent.sol +0 -25
  541. package/contracts/components/IDistributionComponent.sol +0 -44
  542. package/contracts/components/IPoolComponent.sol +0 -62
  543. package/contracts/components/IProductComponent.sol +0 -35
  544. package/contracts/components/Pool.sol +0 -243
  545. package/contracts/components/Product.sol +0 -297
  546. package/contracts/experiment/cloning/Cloner.sol +0 -47
  547. package/contracts/experiment/errors/Require.sol +0 -38
  548. package/contracts/experiment/errors/Revert.sol +0 -44
  549. package/contracts/experiment/inheritance/A.sol +0 -53
  550. package/contracts/experiment/inheritance/B.sol +0 -28
  551. package/contracts/experiment/inheritance/C.sol +0 -34
  552. package/contracts/experiment/inheritance/IA.sol +0 -13
  553. package/contracts/experiment/inheritance/IB.sol +0 -10
  554. package/contracts/experiment/inheritance/IC.sol +0 -12
  555. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  556. package/contracts/experiment/statemachine/ISM.sol +0 -25
  557. package/contracts/experiment/statemachine/SM.sol +0 -57
  558. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  559. package/contracts/experiment/types/TypeA.sol +0 -47
  560. package/contracts/experiment/types/TypeB.sol +0 -29
  561. package/contracts/instance/AccessManagedSimple.sol +0 -115
  562. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  563. package/contracts/instance/InstanceAccessManager.sol +0 -288
  564. package/contracts/instance/base/ComponentServiceBase.sol +0 -124
  565. package/contracts/instance/base/IInstanceBase.sol +0 -23
  566. package/contracts/instance/base/KeyValueStore.sol +0 -172
  567. package/contracts/instance/module/ISetup.sol +0 -44
  568. package/contracts/instance/module/ITreasury.sol +0 -23
  569. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  570. package/contracts/instance/service/DistributionService.sol +0 -88
  571. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  572. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  573. package/contracts/instance/service/IDistributionService.sol +0 -12
  574. package/contracts/instance/service/IPoolService.sol +0 -37
  575. package/contracts/instance/service/IProductService.sol +0 -107
  576. package/contracts/instance/service/PoolService.sol +0 -194
  577. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  578. package/contracts/shared/ContractDeployerLib.sol +0 -72
  579. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  580. package/contracts/test/TestFee.sol +0 -25
  581. package/contracts/test/TestRegisterable.sol +0 -18
  582. package/contracts/test/TestRoleId.sol +0 -14
  583. package/contracts/test/TestService.sol +0 -24
  584. package/contracts/test/TestToken.sol +0 -26
  585. package/contracts/test/TestVersion.sol +0 -44
  586. package/contracts/test/TestVersionable.sol +0 -17
  587. package/contracts/types/ChainId.sol +0 -38
  588. package/contracts/types/NftIdSet.sol +0 -60
  589. package/contracts/types/NumberId.sol +0 -52
  590. package/contracts/types/RoleId.sol +0 -89
  591. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -3,27 +3,6 @@
3
3
  "contractName": "Instance",
4
4
  "sourceName": "contracts/instance/Instance.sol",
5
5
  "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "address",
10
- "name": "accessManagerAddress",
11
- "type": "address"
12
- },
13
- {
14
- "internalType": "address",
15
- "name": "registryAddress",
16
- "type": "address"
17
- },
18
- {
19
- "internalType": "NftId",
20
- "name": "registryNftId",
21
- "type": "uint96"
22
- }
23
- ],
24
- "stateMutability": "nonpayable",
25
- "type": "constructor"
26
- },
27
6
  {
28
7
  "inputs": [
29
8
  {
@@ -66,233 +45,142 @@
66
45
  "inputs": [
67
46
  {
68
47
  "internalType": "address",
69
- "name": "registry",
48
+ "name": "instanceBundleManager",
70
49
  "type": "address"
71
- },
72
- {
73
- "internalType": "NftId",
74
- "name": "nftId",
75
- "type": "uint96"
76
50
  }
77
51
  ],
78
- "name": "ErrorAlreadyLinked",
52
+ "name": "ErrorInstanceBundleManagerAlreadySet",
79
53
  "type": "error"
80
54
  },
81
55
  {
82
56
  "inputs": [
83
57
  {
84
58
  "internalType": "address",
85
- "name": "contractAddress",
59
+ "name": "instanceAuthority",
86
60
  "type": "address"
87
61
  }
88
62
  ],
89
- "name": "ErrorContractNotRegistered",
90
- "type": "error"
91
- },
92
- {
93
- "inputs": [
94
- {
95
- "internalType": "RoleId",
96
- "name": "roleId",
97
- "type": "uint64"
98
- }
99
- ],
100
- "name": "ErrorGrantNonexstentRole",
101
- "type": "error"
102
- },
103
- {
104
- "inputs": [
105
- {
106
- "internalType": "ObjectType",
107
- "name": "objectType",
108
- "type": "uint8"
109
- },
110
- {
111
- "internalType": "StateId",
112
- "name": "fromStateId",
113
- "type": "uint8"
114
- },
115
- {
116
- "internalType": "StateId",
117
- "name": "toStateId",
118
- "type": "uint8"
119
- }
120
- ],
121
- "name": "ErrorInvalidStateTransition",
122
- "type": "error"
123
- },
124
- {
125
- "inputs": [
126
- {
127
- "internalType": "NftId",
128
- "name": "nftId",
129
- "type": "uint96"
130
- },
131
- {
132
- "internalType": "ObjectType",
133
- "name": "objectType",
134
- "type": "uint8"
135
- }
136
- ],
137
- "name": "ErrorNoLifecycle",
63
+ "name": "ErrorInstanceBundleManagerAuthorityMismatch",
138
64
  "type": "error"
139
65
  },
140
66
  {
141
67
  "inputs": [
142
68
  {
143
69
  "internalType": "address",
144
- "name": "account",
70
+ "name": "instance",
145
71
  "type": "address"
146
72
  }
147
73
  ],
148
- "name": "ErrorNotOwner",
74
+ "name": "ErrorInstanceBundleManagerInstanceMismatch",
149
75
  "type": "error"
150
76
  },
151
77
  {
152
78
  "inputs": [
153
79
  {
154
80
  "internalType": "address",
155
- "name": "registryAddress",
81
+ "name": "InstanceAdmin",
156
82
  "type": "address"
157
83
  }
158
84
  ],
159
- "name": "ErrorNotRegistry",
85
+ "name": "ErrorInstanceInstanceAdminAlreadySet",
160
86
  "type": "error"
161
87
  },
162
88
  {
163
89
  "inputs": [
164
90
  {
165
91
  "internalType": "address",
166
- "name": "registryAddress",
92
+ "name": "instanceAuthority",
167
93
  "type": "address"
168
94
  }
169
95
  ],
170
- "name": "ErrorRegisterableNotRegistry",
96
+ "name": "ErrorInstanceInstanceAdminAuthorityMismatch",
171
97
  "type": "error"
172
98
  },
173
99
  {
174
100
  "inputs": [],
175
- "name": "ErrorRegistryAddressZero",
101
+ "name": "ErrorInstanceInstanceAdminZero",
176
102
  "type": "error"
177
103
  },
178
104
  {
179
105
  "inputs": [
180
106
  {
181
107
  "internalType": "address",
182
- "name": "registry",
108
+ "name": "instanceAuthority",
183
109
  "type": "address"
184
110
  }
185
111
  ],
186
- "name": "ErrorRegistryAlreadyInitialized",
187
- "type": "error"
188
- },
189
- {
190
- "inputs": [],
191
- "name": "ErrorRegistryNotInitialized",
192
- "type": "error"
193
- },
194
- {
195
- "inputs": [
196
- {
197
- "internalType": "RoleId",
198
- "name": "roleId",
199
- "type": "uint64"
200
- }
201
- ],
202
- "name": "ErrorRenounceNonexstentRole",
203
- "type": "error"
204
- },
205
- {
206
- "inputs": [
207
- {
208
- "internalType": "RoleId",
209
- "name": "roleId",
210
- "type": "uint64"
211
- }
212
- ],
213
- "name": "ErrorRevokeNonexstentRole",
112
+ "name": "ErrorInstanceInstanceReaderInstanceMismatch",
214
113
  "type": "error"
215
114
  },
216
115
  {
217
116
  "inputs": [
218
117
  {
219
- "internalType": "RoleId",
220
- "name": "roleId",
221
- "type": "uint64"
118
+ "internalType": "address",
119
+ "name": "instanceStore",
120
+ "type": "address"
222
121
  }
223
122
  ],
224
- "name": "ErrorRoleIdInvalid",
123
+ "name": "ErrorInstanceInstanceStoreAlreadySet",
225
124
  "type": "error"
226
125
  },
227
126
  {
228
127
  "inputs": [
229
128
  {
230
- "internalType": "RoleId",
231
- "name": "roleId",
232
- "type": "uint64"
129
+ "internalType": "address",
130
+ "name": "instanceAuthority",
131
+ "type": "address"
233
132
  }
234
133
  ],
235
- "name": "ErrorRoleIdNotActive",
134
+ "name": "ErrorInstanceInstanceStoreAuthorityMismatch",
236
135
  "type": "error"
237
136
  },
238
137
  {
239
138
  "inputs": [
240
139
  {
241
- "internalType": "RoleId",
242
- "name": "roleId",
243
- "type": "uint64"
140
+ "internalType": "NftId",
141
+ "name": "nftId",
142
+ "type": "uint96"
244
143
  }
245
144
  ],
246
- "name": "ErrorRoleIdTooBig",
145
+ "name": "ErrorNftOwnableAlreadyLinked",
247
146
  "type": "error"
248
147
  },
249
148
  {
250
149
  "inputs": [
251
150
  {
252
- "internalType": "RoleId",
253
- "name": "roleId",
254
- "type": "uint64"
151
+ "internalType": "address",
152
+ "name": "contractAddress",
153
+ "type": "address"
255
154
  }
256
155
  ],
257
- "name": "ErrorRoleIdTooSmall",
156
+ "name": "ErrorNftOwnableContractNotRegistered",
258
157
  "type": "error"
259
158
  },
260
159
  {
261
- "inputs": [
262
- {
263
- "internalType": "RoleId",
264
- "name": "roleId",
265
- "type": "uint64"
266
- }
267
- ],
268
- "name": "ErrorRoleNameEmpty",
160
+ "inputs": [],
161
+ "name": "ErrorNftOwnableInitialOwnerZero",
269
162
  "type": "error"
270
163
  },
271
164
  {
272
165
  "inputs": [
273
166
  {
274
- "internalType": "RoleId",
275
- "name": "roleId",
276
- "type": "uint64"
277
- },
278
- {
279
- "internalType": "ShortString",
280
- "name": "name",
281
- "type": "bytes32"
167
+ "internalType": "address",
168
+ "name": "account",
169
+ "type": "address"
282
170
  }
283
171
  ],
284
- "name": "ErrorRoleNameNotUnique",
172
+ "name": "ErrorNftOwnableNotOwner",
285
173
  "type": "error"
286
174
  },
287
175
  {
288
176
  "inputs": [
289
177
  {
290
178
  "internalType": "address",
291
- "name": "target",
179
+ "name": "registryAddress",
292
180
  "type": "address"
293
181
  }
294
182
  ],
295
- "name": "ErrorTargetDoesNotExist",
183
+ "name": "ErrorNotRegistry",
296
184
  "type": "error"
297
185
  },
298
186
  {
@@ -300,27 +188,11 @@
300
188
  "name": "InvalidInitialization",
301
189
  "type": "error"
302
190
  },
303
- {
304
- "inputs": [],
305
- "name": "InvalidShortString",
306
- "type": "error"
307
- },
308
191
  {
309
192
  "inputs": [],
310
193
  "name": "NotInitializing",
311
194
  "type": "error"
312
195
  },
313
- {
314
- "inputs": [
315
- {
316
- "internalType": "string",
317
- "name": "str",
318
- "type": "string"
319
- }
320
- ],
321
- "name": "StringTooLong",
322
- "type": "error"
323
- },
324
196
  {
325
197
  "anonymous": false,
326
198
  "inputs": [
@@ -348,142 +220,201 @@
348
220
  "type": "event"
349
221
  },
350
222
  {
351
- "anonymous": false,
352
- "inputs": [
353
- {
354
- "indexed": false,
355
- "internalType": "ObjectType",
356
- "name": "objectType",
357
- "type": "uint8"
358
- },
223
+ "inputs": [],
224
+ "name": "GIF_MAJOR_VERSION",
225
+ "outputs": [
359
226
  {
360
- "indexed": false,
361
- "internalType": "KeyId",
362
- "name": "keyId",
363
- "type": "bytes31"
364
- },
227
+ "internalType": "uint256",
228
+ "name": "",
229
+ "type": "uint256"
230
+ }
231
+ ],
232
+ "stateMutability": "view",
233
+ "type": "function"
234
+ },
235
+ {
236
+ "inputs": [],
237
+ "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
238
+ "outputs": [
365
239
  {
366
- "indexed": false,
367
- "internalType": "StateId",
368
- "name": "state",
369
- "type": "uint8"
370
- },
240
+ "internalType": "bytes32",
241
+ "name": "",
242
+ "type": "bytes32"
243
+ }
244
+ ],
245
+ "stateMutability": "view",
246
+ "type": "function"
247
+ },
248
+ {
249
+ "inputs": [],
250
+ "name": "REGISTERABLE_LOCATION_V1",
251
+ "outputs": [
371
252
  {
372
- "indexed": false,
373
- "internalType": "address",
374
- "name": "createdBy",
375
- "type": "address"
376
- },
253
+ "internalType": "bytes32",
254
+ "name": "",
255
+ "type": "bytes32"
256
+ }
257
+ ],
258
+ "stateMutability": "view",
259
+ "type": "function"
260
+ },
261
+ {
262
+ "inputs": [],
263
+ "name": "authority",
264
+ "outputs": [
377
265
  {
378
- "indexed": false,
379
266
  "internalType": "address",
380
- "name": "txOrigin",
267
+ "name": "",
381
268
  "type": "address"
382
269
  }
383
270
  ],
384
- "name": "LogInfoCreated",
385
- "type": "event"
271
+ "stateMutability": "view",
272
+ "type": "function"
386
273
  },
387
274
  {
388
- "anonymous": false,
389
275
  "inputs": [
390
276
  {
391
- "indexed": false,
392
- "internalType": "ObjectType",
393
- "name": "objectType",
394
- "type": "uint8"
277
+ "internalType": "string",
278
+ "name": "roleName",
279
+ "type": "string"
395
280
  },
396
281
  {
397
- "indexed": false,
398
- "internalType": "KeyId",
399
- "name": "keyId",
400
- "type": "bytes31"
401
- },
282
+ "internalType": "string",
283
+ "name": "adminName",
284
+ "type": "string"
285
+ }
286
+ ],
287
+ "name": "createRole",
288
+ "outputs": [
402
289
  {
403
- "indexed": false,
404
- "internalType": "StateId",
405
- "name": "state",
406
- "type": "uint8"
290
+ "internalType": "RoleId",
291
+ "name": "roleId",
292
+ "type": "uint64"
407
293
  },
408
294
  {
409
- "indexed": false,
410
- "internalType": "address",
411
- "name": "updatedBy",
412
- "type": "address"
413
- },
295
+ "internalType": "RoleId",
296
+ "name": "admin",
297
+ "type": "uint64"
298
+ }
299
+ ],
300
+ "stateMutability": "nonpayable",
301
+ "type": "function"
302
+ },
303
+ {
304
+ "inputs": [
414
305
  {
415
- "indexed": false,
416
306
  "internalType": "address",
417
- "name": "txOrigin",
307
+ "name": "target",
418
308
  "type": "address"
419
309
  },
420
310
  {
421
- "indexed": false,
422
- "internalType": "Blocknumber",
423
- "name": "lastUpdatedIn",
424
- "type": "uint32"
311
+ "internalType": "string",
312
+ "name": "name",
313
+ "type": "string"
425
314
  }
426
315
  ],
427
- "name": "LogInfoUpdated",
428
- "type": "event"
316
+ "name": "createTarget",
317
+ "outputs": [],
318
+ "stateMutability": "nonpayable",
319
+ "type": "function"
429
320
  },
430
321
  {
431
- "anonymous": false,
432
- "inputs": [
322
+ "inputs": [],
323
+ "name": "getBundleManager",
324
+ "outputs": [
433
325
  {
434
- "indexed": false,
435
- "internalType": "ObjectType",
436
- "name": "objectType",
437
- "type": "uint8"
438
- },
439
- {
440
- "indexed": false,
441
- "internalType": "KeyId",
442
- "name": "keyId",
443
- "type": "bytes31"
444
- },
445
- {
446
- "indexed": false,
447
- "internalType": "StateId",
448
- "name": "stateOld",
449
- "type": "uint8"
450
- },
451
- {
452
- "indexed": false,
453
- "internalType": "StateId",
454
- "name": "stateNew",
455
- "type": "uint8"
456
- },
326
+ "internalType": "contract BundleManager",
327
+ "name": "",
328
+ "type": "address"
329
+ }
330
+ ],
331
+ "stateMutability": "view",
332
+ "type": "function"
333
+ },
334
+ {
335
+ "inputs": [],
336
+ "name": "getBundleService",
337
+ "outputs": [
457
338
  {
458
- "indexed": false,
459
- "internalType": "address",
460
- "name": "updatedBy",
339
+ "internalType": "contract IBundleService",
340
+ "name": "",
461
341
  "type": "address"
462
- },
342
+ }
343
+ ],
344
+ "stateMutability": "view",
345
+ "type": "function"
346
+ },
347
+ {
348
+ "inputs": [],
349
+ "name": "getDistributionService",
350
+ "outputs": [
463
351
  {
464
- "indexed": false,
465
- "internalType": "address",
466
- "name": "txOrigin",
352
+ "internalType": "contract IDistributionService",
353
+ "name": "",
467
354
  "type": "address"
468
- },
355
+ }
356
+ ],
357
+ "stateMutability": "view",
358
+ "type": "function"
359
+ },
360
+ {
361
+ "inputs": [],
362
+ "name": "getInitialInfo",
363
+ "outputs": [
469
364
  {
470
- "indexed": false,
471
- "internalType": "Blocknumber",
472
- "name": "lastUpdatedIn",
473
- "type": "uint32"
365
+ "components": [
366
+ {
367
+ "internalType": "NftId",
368
+ "name": "nftId",
369
+ "type": "uint96"
370
+ },
371
+ {
372
+ "internalType": "NftId",
373
+ "name": "parentNftId",
374
+ "type": "uint96"
375
+ },
376
+ {
377
+ "internalType": "ObjectType",
378
+ "name": "objectType",
379
+ "type": "uint8"
380
+ },
381
+ {
382
+ "internalType": "bool",
383
+ "name": "isInterceptor",
384
+ "type": "bool"
385
+ },
386
+ {
387
+ "internalType": "address",
388
+ "name": "objectAddress",
389
+ "type": "address"
390
+ },
391
+ {
392
+ "internalType": "address",
393
+ "name": "initialOwner",
394
+ "type": "address"
395
+ },
396
+ {
397
+ "internalType": "bytes",
398
+ "name": "data",
399
+ "type": "bytes"
400
+ }
401
+ ],
402
+ "internalType": "struct IRegistry.ObjectInfo",
403
+ "name": "info",
404
+ "type": "tuple"
474
405
  }
475
406
  ],
476
- "name": "LogStateUpdated",
477
- "type": "event"
407
+ "stateMutability": "view",
408
+ "type": "function"
478
409
  },
479
410
  {
480
411
  "inputs": [],
481
- "name": "ADMIN_ROLE",
412
+ "name": "getInstanceAccessManager",
482
413
  "outputs": [
483
414
  {
484
- "internalType": "uint64",
415
+ "internalType": "contract AccessManagerExtendedInitializeable",
485
416
  "name": "",
486
- "type": "uint64"
417
+ "type": "address"
487
418
  }
488
419
  ],
489
420
  "stateMutability": "view",
@@ -491,12 +422,12 @@
491
422
  },
492
423
  {
493
424
  "inputs": [],
494
- "name": "CUSTOM_ROLE_ID_MIN",
425
+ "name": "getInstanceAdmin",
495
426
  "outputs": [
496
427
  {
497
- "internalType": "uint64",
428
+ "internalType": "contract InstanceAdmin",
498
429
  "name": "",
499
- "type": "uint64"
430
+ "type": "address"
500
431
  }
501
432
  ],
502
433
  "stateMutability": "view",
@@ -504,12 +435,12 @@
504
435
  },
505
436
  {
506
437
  "inputs": [],
507
- "name": "EXECUTION_DELAY",
438
+ "name": "getInstanceReader",
508
439
  "outputs": [
509
440
  {
510
- "internalType": "uint32",
441
+ "internalType": "contract InstanceReader",
511
442
  "name": "",
512
- "type": "uint32"
443
+ "type": "address"
513
444
  }
514
445
  ],
515
446
  "stateMutability": "view",
@@ -517,12 +448,12 @@
517
448
  },
518
449
  {
519
450
  "inputs": [],
520
- "name": "PUBLIC_ROLE",
451
+ "name": "getInstanceStore",
521
452
  "outputs": [
522
453
  {
523
- "internalType": "uint64",
454
+ "internalType": "contract InstanceStore",
524
455
  "name": "",
525
- "type": "uint64"
456
+ "type": "address"
526
457
  }
527
458
  ],
528
459
  "stateMutability": "view",
@@ -530,12 +461,25 @@
530
461
  },
531
462
  {
532
463
  "inputs": [],
533
- "name": "REGISTERABLE_LOCATION_V1",
464
+ "name": "getMajorVersion",
534
465
  "outputs": [
535
466
  {
536
- "internalType": "bytes32",
467
+ "internalType": "VersionPart",
468
+ "name": "majorVersion",
469
+ "type": "uint8"
470
+ }
471
+ ],
472
+ "stateMutability": "pure",
473
+ "type": "function"
474
+ },
475
+ {
476
+ "inputs": [],
477
+ "name": "getNftId",
478
+ "outputs": [
479
+ {
480
+ "internalType": "NftId",
537
481
  "name": "",
538
- "type": "bytes32"
482
+ "type": "uint96"
539
483
  }
540
484
  ],
541
485
  "stateMutability": "view",
@@ -543,7 +487,7 @@
543
487
  },
544
488
  {
545
489
  "inputs": [],
546
- "name": "authority",
490
+ "name": "getOwner",
547
491
  "outputs": [
548
492
  {
549
493
  "internalType": "address",
@@ -555,101 +499,71 @@
555
499
  "type": "function"
556
500
  },
557
501
  {
558
- "inputs": [
502
+ "inputs": [],
503
+ "name": "getPolicyService",
504
+ "outputs": [
559
505
  {
560
- "internalType": "ObjectType",
561
- "name": "objectType",
562
- "type": "uint8"
563
- },
506
+ "internalType": "contract IPolicyService",
507
+ "name": "",
508
+ "type": "address"
509
+ }
510
+ ],
511
+ "stateMutability": "view",
512
+ "type": "function"
513
+ },
514
+ {
515
+ "inputs": [],
516
+ "name": "getPoolService",
517
+ "outputs": [
564
518
  {
565
- "internalType": "StateId",
566
- "name": "fromId",
567
- "type": "uint8"
568
- },
519
+ "internalType": "contract IPoolService",
520
+ "name": "",
521
+ "type": "address"
522
+ }
523
+ ],
524
+ "stateMutability": "view",
525
+ "type": "function"
526
+ },
527
+ {
528
+ "inputs": [],
529
+ "name": "getProductService",
530
+ "outputs": [
569
531
  {
570
- "internalType": "StateId",
571
- "name": "toId",
572
- "type": "uint8"
532
+ "internalType": "contract IProductService",
533
+ "name": "",
534
+ "type": "address"
535
+ }
536
+ ],
537
+ "stateMutability": "view",
538
+ "type": "function"
539
+ },
540
+ {
541
+ "inputs": [],
542
+ "name": "getRegistry",
543
+ "outputs": [
544
+ {
545
+ "internalType": "contract IRegistry",
546
+ "name": "",
547
+ "type": "address"
573
548
  }
574
549
  ],
575
- "name": "checkTransition",
576
- "outputs": [],
577
550
  "stateMutability": "view",
578
551
  "type": "function"
579
552
  },
580
553
  {
581
554
  "inputs": [
582
555
  {
583
- "internalType": "NftId",
584
- "name": "bundleNftId",
585
- "type": "uint96"
556
+ "internalType": "RoleId",
557
+ "name": "roleId",
558
+ "type": "uint64"
586
559
  },
587
560
  {
588
- "components": [
589
- {
590
- "internalType": "NftId",
591
- "name": "poolNftId",
592
- "type": "uint96"
593
- },
594
- {
595
- "components": [
596
- {
597
- "internalType": "UFixed",
598
- "name": "fractionalFee",
599
- "type": "uint256"
600
- },
601
- {
602
- "internalType": "uint256",
603
- "name": "fixedFee",
604
- "type": "uint256"
605
- }
606
- ],
607
- "internalType": "struct Fee",
608
- "name": "fee",
609
- "type": "tuple"
610
- },
611
- {
612
- "internalType": "bytes",
613
- "name": "filter",
614
- "type": "bytes"
615
- },
616
- {
617
- "internalType": "uint256",
618
- "name": "capitalAmount",
619
- "type": "uint256"
620
- },
621
- {
622
- "internalType": "uint256",
623
- "name": "lockedAmount",
624
- "type": "uint256"
625
- },
626
- {
627
- "internalType": "uint256",
628
- "name": "balanceAmount",
629
- "type": "uint256"
630
- },
631
- {
632
- "internalType": "uint256",
633
- "name": "lifetime",
634
- "type": "uint256"
635
- },
636
- {
637
- "internalType": "Timestamp",
638
- "name": "expiredAt",
639
- "type": "uint40"
640
- },
641
- {
642
- "internalType": "Timestamp",
643
- "name": "closedAt",
644
- "type": "uint40"
645
- }
646
- ],
647
- "internalType": "struct IBundle.BundleInfo",
648
- "name": "bundle",
649
- "type": "tuple"
561
+ "internalType": "address",
562
+ "name": "account",
563
+ "type": "address"
650
564
  }
651
565
  ],
652
- "name": "createBundle",
566
+ "name": "grantRole",
653
567
  "outputs": [],
654
568
  "stateMutability": "nonpayable",
655
569
  "type": "function"
@@ -657,44 +571,29 @@
657
571
  {
658
572
  "inputs": [
659
573
  {
660
- "internalType": "NftId",
661
- "name": "policyNftId",
662
- "type": "uint96"
574
+ "internalType": "address",
575
+ "name": "authority",
576
+ "type": "address"
663
577
  },
664
578
  {
665
- "internalType": "NumberId",
666
- "name": "claimId",
667
- "type": "uint32"
579
+ "internalType": "address",
580
+ "name": "registryAddress",
581
+ "type": "address"
668
582
  },
669
583
  {
670
- "components": [
671
- {
672
- "internalType": "uint256",
673
- "name": "claimAmount",
674
- "type": "uint256"
675
- },
676
- {
677
- "internalType": "uint256",
678
- "name": "paidAmount",
679
- "type": "uint256"
680
- },
681
- {
682
- "internalType": "bytes",
683
- "name": "data",
684
- "type": "bytes"
685
- },
686
- {
687
- "internalType": "Timestamp",
688
- "name": "closedAt",
689
- "type": "uint40"
690
- }
691
- ],
692
- "internalType": "struct IPolicy.ClaimInfo",
693
- "name": "claim",
694
- "type": "tuple"
584
+ "internalType": "address",
585
+ "name": "initialOwner",
586
+ "type": "address"
695
587
  }
696
588
  ],
697
- "name": "createClaim",
589
+ "name": "initialize",
590
+ "outputs": [],
591
+ "stateMutability": "nonpayable",
592
+ "type": "function"
593
+ },
594
+ {
595
+ "inputs": [],
596
+ "name": "initializeERC165",
698
597
  "outputs": [],
699
598
  "stateMutability": "nonpayable",
700
599
  "type": "function"
@@ -702,74 +601,55 @@
702
601
  {
703
602
  "inputs": [
704
603
  {
705
- "internalType": "RoleId",
706
- "name": "roleId",
707
- "type": "uint64"
604
+ "internalType": "address",
605
+ "name": "initialOwner",
606
+ "type": "address"
708
607
  },
709
608
  {
710
- "internalType": "string",
711
- "name": "name",
712
- "type": "string"
609
+ "internalType": "address",
610
+ "name": "registryAddress",
611
+ "type": "address"
713
612
  }
714
613
  ],
715
- "name": "createCustomRole",
614
+ "name": "initializeNftOwnable",
716
615
  "outputs": [],
717
616
  "stateMutability": "nonpayable",
718
617
  "type": "function"
719
618
  },
720
619
  {
721
620
  "inputs": [
621
+ {
622
+ "internalType": "address",
623
+ "name": "registryAddress",
624
+ "type": "address"
625
+ },
722
626
  {
723
627
  "internalType": "NftId",
724
- "name": "distributionNftId",
628
+ "name": "parentNftId",
725
629
  "type": "uint96"
726
630
  },
727
631
  {
728
- "components": [
729
- {
730
- "internalType": "NftId",
731
- "name": "productNftId",
732
- "type": "uint96"
733
- },
734
- {
735
- "internalType": "contract TokenHandler",
736
- "name": "tokenHandler",
737
- "type": "address"
738
- },
739
- {
740
- "components": [
741
- {
742
- "internalType": "UFixed",
743
- "name": "fractionalFee",
744
- "type": "uint256"
745
- },
746
- {
747
- "internalType": "uint256",
748
- "name": "fixedFee",
749
- "type": "uint256"
750
- }
751
- ],
752
- "internalType": "struct Fee",
753
- "name": "distributionFee",
754
- "type": "tuple"
755
- },
756
- {
757
- "internalType": "bool",
758
- "name": "isIntercepting",
759
- "type": "bool"
760
- },
761
- {
762
- "internalType": "address",
763
- "name": "wallet",
764
- "type": "address"
765
- }
766
- ],
767
- "internalType": "struct ISetup.DistributionSetupInfo",
768
- "name": "setup",
769
- "type": "tuple"
632
+ "internalType": "ObjectType",
633
+ "name": "objectType",
634
+ "type": "uint8"
635
+ },
636
+ {
637
+ "internalType": "bool",
638
+ "name": "isInterceptor",
639
+ "type": "bool"
640
+ },
641
+ {
642
+ "internalType": "address",
643
+ "name": "initialOwner",
644
+ "type": "address"
645
+ },
646
+ {
647
+ "internalType": "bytes",
648
+ "name": "registryData",
649
+ "type": "bytes"
770
650
  }
771
651
  ],
772
- "name": "createDistributionSetup",
652
+ "name": "initializeRegisterable",
773
653
  "outputs": [],
774
654
  "stateMutability": "nonpayable",
775
655
  "type": "function"
@@ -777,89 +657,56 @@
777
657
  {
778
658
  "inputs": [
779
659
  {
780
- "internalType": "NftId",
781
- "name": "policyNftId",
782
- "type": "uint96"
783
- },
784
- {
785
- "internalType": "NumberId",
786
- "name": "payoutId",
787
- "type": "uint32"
788
- },
789
- {
790
- "components": [
791
- {
792
- "internalType": "NumberId",
793
- "name": "claimId",
794
- "type": "uint32"
795
- },
796
- {
797
- "internalType": "uint256",
798
- "name": "amount",
799
- "type": "uint256"
800
- },
801
- {
802
- "internalType": "bytes",
803
- "name": "data",
804
- "type": "bytes"
805
- },
806
- {
807
- "internalType": "Timestamp",
808
- "name": "paidAt",
809
- "type": "uint40"
810
- }
811
- ],
812
- "internalType": "struct IPolicy.PayoutInfo",
813
- "name": "payout",
814
- "type": "tuple"
660
+ "internalType": "address",
661
+ "name": "registryAddress",
662
+ "type": "address"
815
663
  }
816
664
  ],
817
- "name": "createDistributor",
665
+ "name": "initializeRegistryLinked",
818
666
  "outputs": [],
819
667
  "stateMutability": "nonpayable",
820
668
  "type": "function"
821
669
  },
822
670
  {
823
- "inputs": [
671
+ "inputs": [],
672
+ "name": "isConsumingScheduledOp",
673
+ "outputs": [
674
+ {
675
+ "internalType": "bytes4",
676
+ "name": "",
677
+ "type": "bytes4"
678
+ }
679
+ ],
680
+ "stateMutability": "view",
681
+ "type": "function"
682
+ },
683
+ {
684
+ "inputs": [],
685
+ "name": "linkToRegisteredNftId",
686
+ "outputs": [
824
687
  {
825
688
  "internalType": "NftId",
826
- "name": "policyNftId",
689
+ "name": "nftId",
827
690
  "type": "uint96"
828
- },
691
+ }
692
+ ],
693
+ "stateMutability": "nonpayable",
694
+ "type": "function"
695
+ },
696
+ {
697
+ "inputs": [
829
698
  {
830
- "internalType": "NumberId",
831
- "name": "payoutId",
832
- "type": "uint32"
699
+ "internalType": "address",
700
+ "name": "to",
701
+ "type": "address"
833
702
  },
834
703
  {
835
- "components": [
836
- {
837
- "internalType": "NumberId",
838
- "name": "claimId",
839
- "type": "uint32"
840
- },
841
- {
842
- "internalType": "uint256",
843
- "name": "amount",
844
- "type": "uint256"
845
- },
846
- {
847
- "internalType": "bytes",
848
- "name": "data",
849
- "type": "bytes"
850
- },
851
- {
852
- "internalType": "Timestamp",
853
- "name": "paidAt",
854
- "type": "uint40"
855
- }
856
- ],
857
- "internalType": "struct IPolicy.PayoutInfo",
858
- "name": "payout",
859
- "type": "tuple"
704
+ "internalType": "uint256",
705
+ "name": "tokenId",
706
+ "type": "uint256"
860
707
  }
861
708
  ],
862
- "name": "createDistributorType",
709
+ "name": "nftMint",
863
710
  "outputs": [],
864
711
  "stateMutability": "nonpayable",
865
712
  "type": "function"
@@ -867,44 +714,22 @@
867
714
  {
868
715
  "inputs": [
869
716
  {
870
- "internalType": "NftId",
871
- "name": "policyNftId",
872
- "type": "uint96"
717
+ "internalType": "address",
718
+ "name": "from",
719
+ "type": "address"
873
720
  },
874
721
  {
875
- "internalType": "NumberId",
876
- "name": "payoutId",
877
- "type": "uint32"
722
+ "internalType": "address",
723
+ "name": "to",
724
+ "type": "address"
878
725
  },
879
726
  {
880
- "components": [
881
- {
882
- "internalType": "NumberId",
883
- "name": "claimId",
884
- "type": "uint32"
885
- },
886
- {
887
- "internalType": "uint256",
888
- "name": "amount",
889
- "type": "uint256"
890
- },
891
- {
892
- "internalType": "bytes",
893
- "name": "data",
894
- "type": "bytes"
895
- },
896
- {
897
- "internalType": "Timestamp",
898
- "name": "paidAt",
899
- "type": "uint40"
900
- }
901
- ],
902
- "internalType": "struct IPolicy.PayoutInfo",
903
- "name": "payout",
904
- "type": "tuple"
727
+ "internalType": "uint256",
728
+ "name": "tokenId",
729
+ "type": "uint256"
905
730
  }
906
731
  ],
907
- "name": "createPayout",
732
+ "name": "nftTransferFrom",
908
733
  "outputs": [],
909
734
  "stateMutability": "nonpayable",
910
735
  "type": "function"
@@ -912,99 +737,12 @@
912
737
  {
913
738
  "inputs": [
914
739
  {
915
- "internalType": "NftId",
916
- "name": "policyNftId",
917
- "type": "uint96"
918
- },
919
- {
920
- "components": [
921
- {
922
- "internalType": "NftId",
923
- "name": "productNftId",
924
- "type": "uint96"
925
- },
926
- {
927
- "internalType": "NftId",
928
- "name": "bundleNftId",
929
- "type": "uint96"
930
- },
931
- {
932
- "internalType": "ReferralId",
933
- "name": "referralId",
934
- "type": "bytes8"
935
- },
936
- {
937
- "internalType": "RiskId",
938
- "name": "riskId",
939
- "type": "bytes8"
940
- },
941
- {
942
- "internalType": "uint256",
943
- "name": "sumInsuredAmount",
944
- "type": "uint256"
945
- },
946
- {
947
- "internalType": "uint256",
948
- "name": "premiumAmount",
949
- "type": "uint256"
950
- },
951
- {
952
- "internalType": "uint256",
953
- "name": "premiumPaidAmount",
954
- "type": "uint256"
955
- },
956
- {
957
- "internalType": "uint256",
958
- "name": "lifetime",
959
- "type": "uint256"
960
- },
961
- {
962
- "internalType": "bytes",
963
- "name": "applicationData",
964
- "type": "bytes"
965
- },
966
- {
967
- "internalType": "bytes",
968
- "name": "policyData",
969
- "type": "bytes"
970
- },
971
- {
972
- "internalType": "uint16",
973
- "name": "claimsCount",
974
- "type": "uint16"
975
- },
976
- {
977
- "internalType": "uint16",
978
- "name": "openClaimsCount",
979
- "type": "uint16"
980
- },
981
- {
982
- "internalType": "uint256",
983
- "name": "payoutAmount",
984
- "type": "uint256"
985
- },
986
- {
987
- "internalType": "Timestamp",
988
- "name": "activatedAt",
989
- "type": "uint40"
990
- },
991
- {
992
- "internalType": "Timestamp",
993
- "name": "expiredAt",
994
- "type": "uint40"
995
- },
996
- {
997
- "internalType": "Timestamp",
998
- "name": "closedAt",
999
- "type": "uint40"
1000
- }
1001
- ],
1002
- "internalType": "struct IPolicy.PolicyInfo",
1003
- "name": "policy",
1004
- "type": "tuple"
740
+ "internalType": "bytes4",
741
+ "name": "interfaceId",
742
+ "type": "bytes4"
1005
743
  }
1006
744
  ],
1007
- "name": "createPolicy",
745
+ "name": "registerInterface",
1008
746
  "outputs": [],
1009
747
  "stateMutability": "nonpayable",
1010
748
  "type": "function"
@@ -1012,95 +750,17 @@
1012
750
  {
1013
751
  "inputs": [
1014
752
  {
1015
- "internalType": "NftId",
1016
- "name": "poolNftId",
1017
- "type": "uint96"
753
+ "internalType": "RoleId",
754
+ "name": "roleId",
755
+ "type": "uint64"
1018
756
  },
1019
757
  {
1020
- "components": [
1021
- {
1022
- "internalType": "NftId",
1023
- "name": "productNftId",
1024
- "type": "uint96"
1025
- },
1026
- {
1027
- "internalType": "contract TokenHandler",
1028
- "name": "tokenHandler",
1029
- "type": "address"
1030
- },
1031
- {
1032
- "internalType": "UFixed",
1033
- "name": "collateralizationLevel",
1034
- "type": "uint256"
1035
- },
1036
- {
1037
- "components": [
1038
- {
1039
- "internalType": "UFixed",
1040
- "name": "fractionalFee",
1041
- "type": "uint256"
1042
- },
1043
- {
1044
- "internalType": "uint256",
1045
- "name": "fixedFee",
1046
- "type": "uint256"
1047
- }
1048
- ],
1049
- "internalType": "struct Fee",
1050
- "name": "poolFee",
1051
- "type": "tuple"
1052
- },
1053
- {
1054
- "components": [
1055
- {
1056
- "internalType": "UFixed",
1057
- "name": "fractionalFee",
1058
- "type": "uint256"
1059
- },
1060
- {
1061
- "internalType": "uint256",
1062
- "name": "fixedFee",
1063
- "type": "uint256"
1064
- }
1065
- ],
1066
- "internalType": "struct Fee",
1067
- "name": "stakingFee",
1068
- "type": "tuple"
1069
- },
1070
- {
1071
- "components": [
1072
- {
1073
- "internalType": "UFixed",
1074
- "name": "fractionalFee",
1075
- "type": "uint256"
1076
- },
1077
- {
1078
- "internalType": "uint256",
1079
- "name": "fixedFee",
1080
- "type": "uint256"
1081
- }
1082
- ],
1083
- "internalType": "struct Fee",
1084
- "name": "performanceFee",
1085
- "type": "tuple"
1086
- },
1087
- {
1088
- "internalType": "bool",
1089
- "name": "isIntercepting",
1090
- "type": "bool"
1091
- },
1092
- {
1093
- "internalType": "address",
1094
- "name": "wallet",
1095
- "type": "address"
1096
- }
1097
- ],
1098
- "internalType": "struct ISetup.PoolSetupInfo",
1099
- "name": "setup",
1100
- "type": "tuple"
758
+ "internalType": "address",
759
+ "name": "account",
760
+ "type": "address"
1101
761
  }
1102
762
  ],
1103
- "name": "createPoolSetup",
763
+ "name": "revokeRole",
1104
764
  "outputs": [],
1105
765
  "stateMutability": "nonpayable",
1106
766
  "type": "function"
@@ -1108,141 +768,12 @@
1108
768
  {
1109
769
  "inputs": [
1110
770
  {
1111
- "internalType": "NftId",
1112
- "name": "productNftId",
1113
- "type": "uint96"
1114
- },
1115
- {
1116
- "components": [
1117
- {
1118
- "internalType": "contract IERC20Metadata",
1119
- "name": "token",
1120
- "type": "address"
1121
- },
1122
- {
1123
- "internalType": "contract TokenHandler",
1124
- "name": "tokenHandler",
1125
- "type": "address"
1126
- },
1127
- {
1128
- "internalType": "NftId",
1129
- "name": "distributionNftId",
1130
- "type": "uint96"
1131
- },
1132
- {
1133
- "internalType": "NftId",
1134
- "name": "poolNftId",
1135
- "type": "uint96"
1136
- },
1137
- {
1138
- "components": [
1139
- {
1140
- "internalType": "UFixed",
1141
- "name": "fractionalFee",
1142
- "type": "uint256"
1143
- },
1144
- {
1145
- "internalType": "uint256",
1146
- "name": "fixedFee",
1147
- "type": "uint256"
1148
- }
1149
- ],
1150
- "internalType": "struct Fee",
1151
- "name": "distributionFee",
1152
- "type": "tuple"
1153
- },
1154
- {
1155
- "components": [
1156
- {
1157
- "internalType": "UFixed",
1158
- "name": "fractionalFee",
1159
- "type": "uint256"
1160
- },
1161
- {
1162
- "internalType": "uint256",
1163
- "name": "fixedFee",
1164
- "type": "uint256"
1165
- }
1166
- ],
1167
- "internalType": "struct Fee",
1168
- "name": "productFee",
1169
- "type": "tuple"
1170
- },
1171
- {
1172
- "components": [
1173
- {
1174
- "internalType": "UFixed",
1175
- "name": "fractionalFee",
1176
- "type": "uint256"
1177
- },
1178
- {
1179
- "internalType": "uint256",
1180
- "name": "fixedFee",
1181
- "type": "uint256"
1182
- }
1183
- ],
1184
- "internalType": "struct Fee",
1185
- "name": "processingFee",
1186
- "type": "tuple"
1187
- },
1188
- {
1189
- "components": [
1190
- {
1191
- "internalType": "UFixed",
1192
- "name": "fractionalFee",
1193
- "type": "uint256"
1194
- },
1195
- {
1196
- "internalType": "uint256",
1197
- "name": "fixedFee",
1198
- "type": "uint256"
1199
- }
1200
- ],
1201
- "internalType": "struct Fee",
1202
- "name": "poolFee",
1203
- "type": "tuple"
1204
- },
1205
- {
1206
- "components": [
1207
- {
1208
- "internalType": "UFixed",
1209
- "name": "fractionalFee",
1210
- "type": "uint256"
1211
- },
1212
- {
1213
- "internalType": "uint256",
1214
- "name": "fixedFee",
1215
- "type": "uint256"
1216
- }
1217
- ],
1218
- "internalType": "struct Fee",
1219
- "name": "stakingFee",
1220
- "type": "tuple"
1221
- },
1222
- {
1223
- "components": [
1224
- {
1225
- "internalType": "UFixed",
1226
- "name": "fractionalFee",
1227
- "type": "uint256"
1228
- },
1229
- {
1230
- "internalType": "uint256",
1231
- "name": "fixedFee",
1232
- "type": "uint256"
1233
- }
1234
- ],
1235
- "internalType": "struct Fee",
1236
- "name": "performanceFee",
1237
- "type": "tuple"
1238
- }
1239
- ],
1240
- "internalType": "struct ISetup.ProductSetupInfo",
1241
- "name": "setup",
1242
- "type": "tuple"
771
+ "internalType": "address",
772
+ "name": "newAuthority",
773
+ "type": "address"
1243
774
  }
1244
775
  ],
1245
- "name": "createProductSetup",
776
+ "name": "setAuthority",
1246
777
  "outputs": [],
1247
778
  "stateMutability": "nonpayable",
1248
779
  "type": "function"
@@ -1250,44 +781,12 @@
1250
781
  {
1251
782
  "inputs": [
1252
783
  {
1253
- "internalType": "NftId",
1254
- "name": "policyNftId",
1255
- "type": "uint96"
1256
- },
1257
- {
1258
- "internalType": "NumberId",
1259
- "name": "payoutId",
1260
- "type": "uint32"
1261
- },
1262
- {
1263
- "components": [
1264
- {
1265
- "internalType": "NumberId",
1266
- "name": "claimId",
1267
- "type": "uint32"
1268
- },
1269
- {
1270
- "internalType": "uint256",
1271
- "name": "amount",
1272
- "type": "uint256"
1273
- },
1274
- {
1275
- "internalType": "bytes",
1276
- "name": "data",
1277
- "type": "bytes"
1278
- },
1279
- {
1280
- "internalType": "Timestamp",
1281
- "name": "paidAt",
1282
- "type": "uint40"
1283
- }
1284
- ],
1285
- "internalType": "struct IPolicy.PayoutInfo",
1286
- "name": "payout",
1287
- "type": "tuple"
784
+ "internalType": "contract BundleManager",
785
+ "name": "bundleManager",
786
+ "type": "address"
1288
787
  }
1289
788
  ],
1290
- "name": "createReferral",
789
+ "name": "setBundleManager",
1291
790
  "outputs": [],
1292
791
  "stateMutability": "nonpayable",
1293
792
  "type": "function"
@@ -1295,29 +794,12 @@
1295
794
  {
1296
795
  "inputs": [
1297
796
  {
1298
- "internalType": "RiskId",
1299
- "name": "riskId",
1300
- "type": "bytes8"
1301
- },
1302
- {
1303
- "components": [
1304
- {
1305
- "internalType": "NftId",
1306
- "name": "productNftId",
1307
- "type": "uint96"
1308
- },
1309
- {
1310
- "internalType": "bytes",
1311
- "name": "data",
1312
- "type": "bytes"
1313
- }
1314
- ],
1315
- "internalType": "struct IRisk.RiskInfo",
1316
- "name": "risk",
1317
- "type": "tuple"
797
+ "internalType": "contract InstanceAdmin",
798
+ "name": "accessManager",
799
+ "type": "address"
1318
800
  }
1319
801
  ],
1320
- "name": "createRisk",
802
+ "name": "setInstanceAdmin",
1321
803
  "outputs": [],
1322
804
  "stateMutability": "nonpayable",
1323
805
  "type": "function"
@@ -1325,17 +807,12 @@
1325
807
  {
1326
808
  "inputs": [
1327
809
  {
1328
- "internalType": "RoleId",
1329
- "name": "roleId",
1330
- "type": "uint64"
1331
- },
1332
- {
1333
- "internalType": "string",
1334
- "name": "name",
1335
- "type": "string"
810
+ "internalType": "contract InstanceReader",
811
+ "name": "instanceReader",
812
+ "type": "address"
1336
813
  }
1337
814
  ],
1338
- "name": "createStandardRole",
815
+ "name": "setInstanceReader",
1339
816
  "outputs": [],
1340
817
  "stateMutability": "nonpayable",
1341
818
  "type": "function"
@@ -1343,29 +820,12 @@
1343
820
  {
1344
821
  "inputs": [
1345
822
  {
1346
- "internalType": "address",
1347
- "name": "target",
823
+ "internalType": "contract InstanceStore",
824
+ "name": "instanceStore",
1348
825
  "type": "address"
1349
- },
1350
- {
1351
- "components": [
1352
- {
1353
- "internalType": "ShortString",
1354
- "name": "name",
1355
- "type": "bytes32"
1356
- },
1357
- {
1358
- "internalType": "bool",
1359
- "name": "isCustom",
1360
- "type": "bool"
1361
- }
1362
- ],
1363
- "internalType": "struct IAccess.TargetInfo",
1364
- "name": "targetInfo",
1365
- "type": "tuple"
1366
826
  }
1367
827
  ],
1368
- "name": "createTarget",
828
+ "name": "setInstanceStore",
1369
829
  "outputs": [],
1370
830
  "stateMutability": "nonpayable",
1371
831
  "type": "function"
@@ -1373,2165 +833,138 @@
1373
833
  {
1374
834
  "inputs": [
1375
835
  {
1376
- "internalType": "Key32",
1377
- "name": "key32",
1378
- "type": "bytes32"
1379
- }
1380
- ],
1381
- "name": "exists",
1382
- "outputs": [
1383
- {
1384
- "internalType": "bool",
1385
- "name": "",
1386
- "type": "bool"
1387
- }
1388
- ],
1389
- "stateMutability": "view",
1390
- "type": "function"
1391
- },
1392
- {
1393
- "inputs": [
836
+ "internalType": "string",
837
+ "name": "targetName",
838
+ "type": "string"
839
+ },
1394
840
  {
1395
- "internalType": "Key32",
1396
- "name": "key32",
1397
- "type": "bytes32"
1398
- }
1399
- ],
1400
- "name": "get",
1401
- "outputs": [
841
+ "internalType": "bytes4[]",
842
+ "name": "selectors",
843
+ "type": "bytes4[]"
844
+ },
1402
845
  {
1403
- "components": [
1404
- {
1405
- "components": [
1406
- {
1407
- "internalType": "ObjectType",
1408
- "name": "objectType",
1409
- "type": "uint8"
1410
- },
1411
- {
1412
- "internalType": "StateId",
1413
- "name": "state",
1414
- "type": "uint8"
1415
- },
1416
- {
1417
- "internalType": "address",
1418
- "name": "updatedBy",
1419
- "type": "address"
1420
- },
1421
- {
1422
- "internalType": "Blocknumber",
1423
- "name": "updatedIn",
1424
- "type": "uint32"
1425
- },
1426
- {
1427
- "internalType": "Blocknumber",
1428
- "name": "createdIn",
1429
- "type": "uint32"
1430
- }
1431
- ],
1432
- "internalType": "struct IKeyValueStore.Metadata",
1433
- "name": "metadata",
1434
- "type": "tuple"
1435
- },
1436
- {
1437
- "internalType": "bytes",
1438
- "name": "data",
1439
- "type": "bytes"
1440
- }
1441
- ],
1442
- "internalType": "struct IKeyValueStore.Value",
1443
- "name": "value",
1444
- "type": "tuple"
846
+ "internalType": "RoleId",
847
+ "name": "roleId",
848
+ "type": "uint64"
1445
849
  }
1446
850
  ],
1447
- "stateMutability": "view",
851
+ "name": "setTargetFunctionRole",
852
+ "outputs": [],
853
+ "stateMutability": "nonpayable",
1448
854
  "type": "function"
1449
855
  },
1450
856
  {
1451
- "inputs": [],
1452
- "name": "getComponentOwnerService",
1453
- "outputs": [
857
+ "inputs": [
1454
858
  {
1455
- "internalType": "contract IComponentOwnerService",
1456
- "name": "",
859
+ "internalType": "address",
860
+ "name": "target",
1457
861
  "type": "address"
862
+ },
863
+ {
864
+ "internalType": "bool",
865
+ "name": "locked",
866
+ "type": "bool"
1458
867
  }
1459
868
  ],
1460
- "stateMutability": "view",
869
+ "name": "setTargetLocked",
870
+ "outputs": [],
871
+ "stateMutability": "nonpayable",
1461
872
  "type": "function"
1462
873
  },
1463
874
  {
1464
875
  "inputs": [
1465
876
  {
1466
- "internalType": "Key32",
1467
- "name": "key32",
1468
- "type": "bytes32"
877
+ "internalType": "bytes4",
878
+ "name": "interfaceId",
879
+ "type": "bytes4"
1469
880
  }
1470
881
  ],
1471
- "name": "getData",
882
+ "name": "supportsInterface",
1472
883
  "outputs": [
1473
884
  {
1474
- "internalType": "bytes",
1475
- "name": "data",
1476
- "type": "bytes"
885
+ "internalType": "bool",
886
+ "name": "",
887
+ "type": "bool"
1477
888
  }
1478
889
  ],
1479
890
  "stateMutability": "view",
1480
891
  "type": "function"
1481
- },
1482
- {
1483
- "inputs": [],
1484
- "name": "getDistributionService",
1485
- "outputs": [
892
+ }
893
+ ],
894
+ "bytecode": "0x608060405234801561001057600080fd5b506127e6806100206000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c8063770ab10211610146578063c0c53b8b116100c3578063e1033e7d11610087578063e1033e7d14610552578063e5f6cd271461055a578063e7f7fb8614610562578063f7bc431c14610575578063f7c34ee014610588578063fed3d63f1461059b57600080fd5b8063c0c53b8b146104d9578063ca600b1c146104ec578063cde749f4146104f4578063d2192dbf1461050e578063d4cda0d81461054157600080fd5b8063ada9652e1161010a578063ada9652e14610483578063b428b0b014610498578063b7d2b162146104ab578063bb1e0e59146104be578063bf7e214f146104d157600080fd5b8063770ab102146104215780637a9e5e4b146104345780638689231314610447578063893d20e81461045a5780638fb360371461046257600080fd5b8063311adb68116101d45780635fa8aad4116101985780635fa8aad4146103c457806361f5f420146103d7578063644c45e0146103e8578063675393bf146104065780636b9bf08b1461041957600080fd5b8063311adb681461037f57806336fc697e14610390578063422c9d00146103985780634288121d146103ab5780635ab1bd53146103b357600080fd5b8063214cdb801161021b578063214cdb80146103295780632449aea81461033e5780632781d4431461035157806327bb7a331461035957806329db8c3d1461036c57600080fd5b806301ffc9a71461025857806302cd30711461029a5780630fec111c146102bf578063138461e0146102d45780631eff4b22146102f4575b600080fd5b610285610266366004611e50565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b039091168152602001610291565b6102c76105a3565b6040516102919190611ec2565b6102dc610767565b6040516001600160601b039091168152602001610291565b61031b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610291565b61033c610337366004611e50565b610777565b005b61033c61034c366004611f62565b6107a4565b61031b600381565b61033c61036736600461203c565b6108bf565b61033c61037a366004612128565b610964565b6002546001600160a01b03166102a7565b61033c6109d1565b61033c6103a6366004611f62565b610a17565b6102a7610bc1565b6001546001600160a01b03166102a7565b61033c6103d23660046121d2565b610c4f565b6004546001600160a01b03166102a7565b600080516020612771833981519152546001600160601b03166102dc565b61033c610414366004611f62565b610cc0565b6102a7610dce565b61033c61042f366004611f62565b610df7565b61033c610442366004611f62565b610f09565b61033c610455366004612221565b610f8c565b6102a7610fcf565b61046a611106565b6040516001600160e01b03199091168152602001610291565b61031b60008051602061277183398151915281565b61033c6104a636600461225a565b61113e565b61033c6104b936600461225a565b611220565b61033c6104cc366004612288565b6112fb565b6102a76113be565b61033c6104e73660046122b4565b6113da565b6102a76115a6565b6104fc6115cf565b60405160ff9091168152602001610291565b61052161051c3660046122ff565b611646565b604080516001600160401b03938416815292909116602083015201610291565b6005546001600160a01b03166102a7565b6102a76116d1565b6102a76116fa565b61033c610570366004612358565b611704565b61033c610583366004611f62565b6117fa565b61033c610596366004612399565b6118ba565b6102a7611931565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b91906123b7565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016106c3610fcf565b6001600160a01b031681526020018260010180546106e0906123d4565b80601f016020809104026020016040519081016040528092919081815260200182805461070c906123d4565b80156107595780601f1061072e57610100808354040283529160200191610759565b820191906000526020600020905b81548152906001019060200180831161073c57829003601f168201915b505050505081525091505090565b60006107723061195a565b905090565b61077f611b5b565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6107b1335b600036611ba6565b6005546001600160a01b0316156107ef57600554604051632e67e2ab60e21b81526001600160a01b0390911660048201526024015b60405180910390fd5b6107f76113be565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610862919061240e565b6001600160a01b03161461089d576108786113be565b6040516348263eef60e01b81526001600160a01b0390911660048201526024016107e6565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6108c7611b5b565b6108d182876118ba565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30161095a8382612476565b5050505050505050565b61096d336107a9565b60025460405163dc85dcb160e01b81526001600160a01b039091169063dc85dcb1906109a3908790879087908790600401612535565b600060405180830381600087803b1580156109bd57600080fd5b505af115801561095a573d6000803e3d6000fd5b6109d9611b5b565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b610a20336107a9565b6004546001600160a01b031615610a5c576004805460405163384c2dbd60e11b81526001600160a01b03909116918101919091526024016107e6565b306001600160a01b0316816001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac8919061240e565b6001600160a01b031614610af15760405163decb98c560e01b81523060048201526024016107e6565b610af96113be565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b64919061240e565b6001600160a01b031614610b9f57610b7a6113be565b604051630312205960e41b81526001600160a01b0390911660048201526024016107e6565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bd56001546001600160a01b031690565b6001600160a01b031663d39e6043606e5b6040516001600160e01b031960e084901b16815260ff909116600482015260036024820152604401602060405180830381865afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610772919061240e565b610c58336107a9565b6002546040516317ea2ab560e21b81526001600160a01b0390911690635fa8aad490610c8a90859085906004016125aa565b600060405180830381600087803b158015610ca457600080fd5b505af1158015610cb8573d6000803e3d6000fd5b505050505050565b610cc8611b5b565b806001600160a01b03163b600003610cfe5760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107e6565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e607072160e01b60048201526301ffc9a790602401602060405180830381865afa925050508015610d78575060408051601f3d908101601f19168201909252610d75918101906125ce565b60015b610da05760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107e6565b80610dc95760405163fdeac91f60e01b81526001600160a01b03831660048201526024016107e6565b505b50565b6000610de26001546001600160a01b031690565b6001600160a01b031663d39e6043608c610be6565b610e00336107a9565b6002546001600160a01b031615610e395760025460405163078a818f60e31b81526001600160a01b0390911660048201526024016107e6565b610e416113be565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac919061240e565b6001600160a01b031614610ee757610ec26113be565b60405163021f1e5360e61b81526001600160a01b0390911660048201526024016107e6565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b33610f126113be565b6001600160a01b0316816001600160a01b031614610f4d5760405162d1953b60e31b81526001600160a01b03821660048201526024016107e6565b816001600160a01b03163b600003610f83576040516361798f2f60e11b81526001600160a01b03831660048201526024016107e6565b610dc982611ca4565b610f95336107a9565b6002546040516308b6d1c760e21b81526001600160a01b0384811660048301528315156024830152909116906322db471c90604401610c8a565b60008060008051602061277183398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561103f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106391906125ce565b156110f0576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156110c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ea919061240e565b91505090565b54600160601b90046001600160a01b0316919050565b600080516020612791833981519152805460009190600160a01b900460ff166111305760006110ea565b638fb3603760e01b91505090565b611147336107a9565b61114f6113be565b604051631517388760e21b81526001600160401b03841660048201526001600160a01b0391909116906325c471a09073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156111ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111de91906125eb565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038416602482015260006044820152606401610c8a565b611229336107a9565b6112316113be565b604051631517388760e21b81526001600160401b03841660048201526001600160a01b03919091169063b7d2b1629073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561129c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c091906125eb565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0384166024820152604401610c8a565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611344573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611368919061240e565b6001600160a01b0316336001600160a01b03161461138557600080fd5b600254604051632f42b9a560e11b8152600060048201526001600160a01b03848116602483015290911690635e85734a90604401610c8a565b600080516020612791833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561141f5750825b90506000826001600160401b0316600114801561143b5750303b155b905081158015611449575080155b156114675760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561149157845460ff60401b1916600160401b1785555b6001600160a01b0388166114b8576040516377dbcd1760e01b815260040160405180910390fd5b6114c188611d05565b600087905061154688826001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152c91906123b7565b604660018b604051806020016040528060008152506108bf565b611556637344136d60e01b610777565b50831561095a57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b60006115ba6001546001600160a01b031690565b6001600160a01b031663d39e60436078610be6565b604051632392b61b60e21b81526003600482015260009073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015611622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107729190612608565b600080611652336107a9565b60025460405163d2192dbf60e01b81526001600160a01b039091169063d2192dbf906116849087908790600401612625565b60408051808303816000875af11580156116a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c69190612653565b909590945092505050565b60006116e56001546001600160a01b031690565b6001600160a01b031663d39e604360d3610be6565b60006107726113be565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561174d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611771919061240e565b6001600160a01b0316336001600160a01b03161461178e57600080fd5b600254604051632f42b9a560e11b81526001600160a01b038581166004830152848116602483015290911690635e85734a90604401600060405180830381600087803b1580156117dd57600080fd5b505af11580156117f1573d6000803e3d6000fd5b50505050505050565b611803336107a9565b306001600160a01b0316816001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa15801561184b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186f919061240e565b6001600160a01b031614611898576040516345789cf560e01b81523060048201526024016107e6565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6118c2611b5b565b6118cb81610cc0565b6118d36109d1565b6001600160a01b0382166118fa5760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061277183398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b60006119456001546001600160a01b031690565b6001600160a01b031663d39e604360dc610be6565b60008060008051602061277183398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156119ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ee91906125ce565b15611a1a5780546040516301ab8b6760e21b81526001600160601b0390911660048201526024016107e6565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9291906125ce565b611aba5760405163b9304b0d60e01b81526001600160a01b03841660048201526024016107e6565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa158015611b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3291906123b7565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611ba457604051631afcd79f60e31b815260040160405180910390fd5b565b600080516020612791833981519152600080611be1611bc36113be565b8730611bd3600460008a8c612682565b611bdc916126ac565b611d16565b9150915081610cb85763ffffffff811615611c8157825460ff60a01b1916600160a01b178355611c0f6113be565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401611c3e939291906126dc565b600060405180830381600087803b158015611c5857600080fd5b505af1158015611c6c573d6000803e3d6000fd5b5050845460ff60a01b1916855550610cb89050565b60405162d1953b60e31b81526001600160a01b03871660048201526024016107e6565b60008051602061279183398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b611d0d611b5b565b610dcb81611e22565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611d85919061271c565b600060405180830381855afa9150503d8060008114611dc0576040519150601f19603f3d011682016040523d82523d6000602084013e611dc5565b606091505b50915091508115611e17576040815110611df75780806020019051810190611ded9190612738565b9094509250611e17565b6020815110611e175780806020019051810190611e1491906125ce565b93505b505094509492505050565b611e2a611b5b565b610dcb81611ca4565b80356001600160e01b031981168114611e4b57600080fd5b919050565b600060208284031215611e6257600080fd5b611e6b82611e33565b9392505050565b60005b83811015611e8d578181015183820152602001611e75565b50506000910152565b60008151808452611eae816020860160208601611e72565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a0830151611f2b60c08401826001600160a01b03169052565b5060c083015160e080840152611f45610100840182611e96565b949350505050565b6001600160a01b0381168114610dcb57600080fd5b600060208284031215611f7457600080fd5b8135611e6b81611f4d565b6001600160601b0381168114610dcb57600080fd5b60ff81168114610dcb57600080fd5b8015158114610dcb57600080fd5b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115611fe157611fe1611fb1565b604051601f8501601f19908116603f0116810190828211818310171561200957612009611fb1565b8160405280935085815286868601111561202257600080fd5b858560208301376000602087830101525050509392505050565b60008060008060008060c0878903121561205557600080fd5b863561206081611f4d565b9550602087013561207081611f7f565b9450604087013561208081611f94565b9350606087013561209081611fa3565b925060808701356120a081611f4d565b915060a08701356001600160401b038111156120bb57600080fd5b8701601f810189136120cc57600080fd5b6120db89823560208401611fc7565b9150509295509295509295565b600082601f8301126120f957600080fd5b611e6b83833560208501611fc7565b6001600160401b0381168114610dcb57600080fd5b8035611e4b81612108565b6000806000806060858703121561213e57600080fd5b84356001600160401b038082111561215557600080fd5b612161888389016120e8565b9550602087013591508082111561217757600080fd5b818701915087601f83011261218b57600080fd5b81358181111561219a57600080fd5b8860208260051b85010111156121af57600080fd5b6020830195508094505050506121c76040860161211d565b905092959194509250565b600080604083850312156121e557600080fd5b82356121f081611f4d565b915060208301356001600160401b0381111561220b57600080fd5b612217858286016120e8565b9150509250929050565b6000806040838503121561223457600080fd5b823561223f81611f4d565b9150602083013561224f81611fa3565b809150509250929050565b6000806040838503121561226d57600080fd5b823561227881612108565b9150602083013561224f81611f4d565b6000806040838503121561229b57600080fd5b82356122a681611f4d565b946020939093013593505050565b6000806000606084860312156122c957600080fd5b83356122d481611f4d565b925060208401356122e481611f4d565b915060408401356122f481611f4d565b809150509250925092565b6000806040838503121561231257600080fd5b82356001600160401b038082111561232957600080fd5b612335868387016120e8565b9350602085013591508082111561234b57600080fd5b50612217858286016120e8565b60008060006060848603121561236d57600080fd5b833561237881611f4d565b9250602084013561238881611f4d565b929592945050506040919091013590565b600080604083850312156123ac57600080fd5b823561227881611f4d565b6000602082840312156123c957600080fd5b8151611e6b81611f7f565b600181811c908216806123e857607f821691505b60208210810361240857634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561242057600080fd5b8151611e6b81611f4d565b601f82111561247157600081815260208120601f850160051c810160208610156124525750805b601f850160051c820191505b81811015610cb85782815560010161245e565b505050565b81516001600160401b0381111561248f5761248f611fb1565b6124a38161249d84546123d4565b8461242b565b602080601f8311600181146124d857600084156124c05750858301515b600019600386901b1c1916600185901b178555610cb8565b600085815260208120601f198616915b82811015612507578886015182559484019460019091019084016124e8565b50858210156125255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6060815260006125486060830187611e96565b8281036020848101919091528582528691810160005b8781101561258b576001600160e01b031961257885611e33565b168252928201929082019060010161255e565b508093505050506001600160401b038316604083015295945050505050565b6001600160a01b0383168152604060208201819052600090611f4590830184611e96565b6000602082840312156125e057600080fd5b8151611e6b81611fa3565b6000602082840312156125fd57600080fd5b8151611e6b81612108565b60006020828403121561261a57600080fd5b8151611e6b81611f94565b6040815260006126386040830185611e96565b828103602084015261264a8185611e96565b95945050505050565b6000806040838503121561266657600080fd5b825161267181612108565b602084015190925061224f81612108565b6000808585111561269257600080fd5b8386111561269f57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156126d45780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000825161272e818460208701611e72565b9190910192915050565b6000806040838503121561274b57600080fd5b825161275681611fa3565b602084015190925063ffffffff8116811461224f57600080fdfe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a26469706673582212202228d9c7267c62bded1b1181dd595810520ce05bab83afa745a9c8f64b5540f864736f6c63430008140033",
895
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102535760003560e01c8063770ab10211610146578063c0c53b8b116100c3578063e1033e7d11610087578063e1033e7d14610552578063e5f6cd271461055a578063e7f7fb8614610562578063f7bc431c14610575578063f7c34ee014610588578063fed3d63f1461059b57600080fd5b8063c0c53b8b146104d9578063ca600b1c146104ec578063cde749f4146104f4578063d2192dbf1461050e578063d4cda0d81461054157600080fd5b8063ada9652e1161010a578063ada9652e14610483578063b428b0b014610498578063b7d2b162146104ab578063bb1e0e59146104be578063bf7e214f146104d157600080fd5b8063770ab102146104215780637a9e5e4b146104345780638689231314610447578063893d20e81461045a5780638fb360371461046257600080fd5b8063311adb68116101d45780635fa8aad4116101985780635fa8aad4146103c457806361f5f420146103d7578063644c45e0146103e8578063675393bf146104065780636b9bf08b1461041957600080fd5b8063311adb681461037f57806336fc697e14610390578063422c9d00146103985780634288121d146103ab5780635ab1bd53146103b357600080fd5b8063214cdb801161021b578063214cdb80146103295780632449aea81461033e5780632781d4431461035157806327bb7a331461035957806329db8c3d1461036c57600080fd5b806301ffc9a71461025857806302cd30711461029a5780630fec111c146102bf578063138461e0146102d45780631eff4b22146102f4575b600080fd5b610285610266366004611e50565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b039091168152602001610291565b6102c76105a3565b6040516102919190611ec2565b6102dc610767565b6040516001600160601b039091168152602001610291565b61031b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b604051908152602001610291565b61033c610337366004611e50565b610777565b005b61033c61034c366004611f62565b6107a4565b61031b600381565b61033c61036736600461203c565b6108bf565b61033c61037a366004612128565b610964565b6002546001600160a01b03166102a7565b61033c6109d1565b61033c6103a6366004611f62565b610a17565b6102a7610bc1565b6001546001600160a01b03166102a7565b61033c6103d23660046121d2565b610c4f565b6004546001600160a01b03166102a7565b600080516020612771833981519152546001600160601b03166102dc565b61033c610414366004611f62565b610cc0565b6102a7610dce565b61033c61042f366004611f62565b610df7565b61033c610442366004611f62565b610f09565b61033c610455366004612221565b610f8c565b6102a7610fcf565b61046a611106565b6040516001600160e01b03199091168152602001610291565b61031b60008051602061277183398151915281565b61033c6104a636600461225a565b61113e565b61033c6104b936600461225a565b611220565b61033c6104cc366004612288565b6112fb565b6102a76113be565b61033c6104e73660046122b4565b6113da565b6102a76115a6565b6104fc6115cf565b60405160ff9091168152602001610291565b61052161051c3660046122ff565b611646565b604080516001600160401b03938416815292909116602083015201610291565b6005546001600160a01b03166102a7565b6102a76116d1565b6102a76116fa565b61033c610570366004612358565b611704565b61033c610583366004611f62565b6117fa565b61033c610596366004612399565b6118ba565b6102a7611931565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067b91906123b7565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016106c3610fcf565b6001600160a01b031681526020018260010180546106e0906123d4565b80601f016020809104026020016040519081016040528092919081815260200182805461070c906123d4565b80156107595780601f1061072e57610100808354040283529160200191610759565b820191906000526020600020905b81548152906001019060200180831161073c57829003601f168201915b505050505081525091505090565b60006107723061195a565b905090565b61077f611b5b565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6107b1335b600036611ba6565b6005546001600160a01b0316156107ef57600554604051632e67e2ab60e21b81526001600160a01b0390911660048201526024015b60405180910390fd5b6107f76113be565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610862919061240e565b6001600160a01b03161461089d576108786113be565b6040516348263eef60e01b81526001600160a01b0390911660048201526024016107e6565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6108c7611b5b565b6108d182876118ba565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30161095a8382612476565b5050505050505050565b61096d336107a9565b60025460405163dc85dcb160e01b81526001600160a01b039091169063dc85dcb1906109a3908790879087908790600401612535565b600060405180830381600087803b1580156109bd57600080fd5b505af115801561095a573d6000803e3d6000fd5b6109d9611b5b565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b610a20336107a9565b6004546001600160a01b031615610a5c576004805460405163384c2dbd60e11b81526001600160a01b03909116918101919091526024016107e6565b306001600160a01b0316816001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac8919061240e565b6001600160a01b031614610af15760405163decb98c560e01b81523060048201526024016107e6565b610af96113be565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b64919061240e565b6001600160a01b031614610b9f57610b7a6113be565b604051630312205960e41b81526001600160a01b0390911660048201526024016107e6565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610bd56001546001600160a01b031690565b6001600160a01b031663d39e6043606e5b6040516001600160e01b031960e084901b16815260ff909116600482015260036024820152604401602060405180830381865afa158015610c2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610772919061240e565b610c58336107a9565b6002546040516317ea2ab560e21b81526001600160a01b0390911690635fa8aad490610c8a90859085906004016125aa565b600060405180830381600087803b158015610ca457600080fd5b505af1158015610cb8573d6000803e3d6000fd5b505050505050565b610cc8611b5b565b806001600160a01b03163b600003610cfe5760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107e6565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e607072160e01b60048201526301ffc9a790602401602060405180830381865afa925050508015610d78575060408051601f3d908101601f19168201909252610d75918101906125ce565b60015b610da05760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107e6565b80610dc95760405163fdeac91f60e01b81526001600160a01b03831660048201526024016107e6565b505b50565b6000610de26001546001600160a01b031690565b6001600160a01b031663d39e6043608c610be6565b610e00336107a9565b6002546001600160a01b031615610e395760025460405163078a818f60e31b81526001600160a01b0390911660048201526024016107e6565b610e416113be565b6001600160a01b0316816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eac919061240e565b6001600160a01b031614610ee757610ec26113be565b60405163021f1e5360e61b81526001600160a01b0390911660048201526024016107e6565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b33610f126113be565b6001600160a01b0316816001600160a01b031614610f4d5760405162d1953b60e31b81526001600160a01b03821660048201526024016107e6565b816001600160a01b03163b600003610f83576040516361798f2f60e11b81526001600160a01b03831660048201526024016107e6565b610dc982611ca4565b610f95336107a9565b6002546040516308b6d1c760e21b81526001600160a01b0384811660048301528315156024830152909116906322db471c90604401610c8a565b60008060008051602061277183398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af415801561103f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106391906125ce565b156110f0576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156110c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ea919061240e565b91505090565b54600160601b90046001600160a01b0316919050565b600080516020612791833981519152805460009190600160a01b900460ff166111305760006110ea565b638fb3603760e01b91505090565b611147336107a9565b61114f6113be565b604051631517388760e21b81526001600160401b03841660048201526001600160a01b0391909116906325c471a09073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156111ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111de91906125eb565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038416602482015260006044820152606401610c8a565b611229336107a9565b6112316113be565b604051631517388760e21b81526001600160401b03841660048201526001600160a01b03919091169063b7d2b1629073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561129c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c091906125eb565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0384166024820152604401610c8a565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611344573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611368919061240e565b6001600160a01b0316336001600160a01b03161461138557600080fd5b600254604051632f42b9a560e11b8152600060048201526001600160a01b03848116602483015290911690635e85734a90604401610c8a565b600080516020612791833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561141f5750825b90506000826001600160401b0316600114801561143b5750303b155b905081158015611449575080155b156114675760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561149157845460ff60401b1916600160401b1785555b6001600160a01b0388166114b8576040516377dbcd1760e01b815260040160405180910390fd5b6114c188611d05565b600087905061154688826001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152c91906123b7565b604660018b604051806020016040528060008152506108bf565b611556637344136d60e01b610777565b50831561095a57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b60006115ba6001546001600160a01b031690565b6001600160a01b031663d39e60436078610be6565b604051632392b61b60e21b81526003600482015260009073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015611622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107729190612608565b600080611652336107a9565b60025460405163d2192dbf60e01b81526001600160a01b039091169063d2192dbf906116849087908790600401612625565b60408051808303816000875af11580156116a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c69190612653565b909590945092505050565b60006116e56001546001600160a01b031690565b6001600160a01b031663d39e604360d3610be6565b60006107726113be565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561174d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611771919061240e565b6001600160a01b0316336001600160a01b03161461178e57600080fd5b600254604051632f42b9a560e11b81526001600160a01b038581166004830152848116602483015290911690635e85734a90604401600060405180830381600087803b1580156117dd57600080fd5b505af11580156117f1573d6000803e3d6000fd5b50505050505050565b611803336107a9565b306001600160a01b0316816001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa15801561184b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186f919061240e565b6001600160a01b031614611898576040516345789cf560e01b81523060048201526024016107e6565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6118c2611b5b565b6118cb81610cc0565b6118d36109d1565b6001600160a01b0382166118fa5760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061277183398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b60006119456001546001600160a01b031690565b6001600160a01b031663d39e604360dc610be6565b60008060008051602061277183398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156119ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ee91906125ce565b15611a1a5780546040516301ab8b6760e21b81526001600160601b0390911660048201526024016107e6565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9291906125ce565b611aba5760405163b9304b0d60e01b81526001600160a01b03841660048201526024016107e6565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa158015611b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3291906123b7565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611ba457604051631afcd79f60e31b815260040160405180910390fd5b565b600080516020612791833981519152600080611be1611bc36113be565b8730611bd3600460008a8c612682565b611bdc916126ac565b611d16565b9150915081610cb85763ffffffff811615611c8157825460ff60a01b1916600160a01b178355611c0f6113be565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401611c3e939291906126dc565b600060405180830381600087803b158015611c5857600080fd5b505af1158015611c6c573d6000803e3d6000fd5b5050845460ff60a01b1916855550610cb89050565b60405162d1953b60e31b81526001600160a01b03871660048201526024016107e6565b60008051602061279183398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b611d0d611b5b565b610dcb81611e22565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611d85919061271c565b600060405180830381855afa9150503d8060008114611dc0576040519150601f19603f3d011682016040523d82523d6000602084013e611dc5565b606091505b50915091508115611e17576040815110611df75780806020019051810190611ded9190612738565b9094509250611e17565b6020815110611e175780806020019051810190611e1491906125ce565b93505b505094509492505050565b611e2a611b5b565b610dcb81611ca4565b80356001600160e01b031981168114611e4b57600080fd5b919050565b600060208284031215611e6257600080fd5b611e6b82611e33565b9392505050565b60005b83811015611e8d578181015183820152602001611e75565b50506000910152565b60008151808452611eae816020860160208601611e72565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a0830151611f2b60c08401826001600160a01b03169052565b5060c083015160e080840152611f45610100840182611e96565b949350505050565b6001600160a01b0381168114610dcb57600080fd5b600060208284031215611f7457600080fd5b8135611e6b81611f4d565b6001600160601b0381168114610dcb57600080fd5b60ff81168114610dcb57600080fd5b8015158114610dcb57600080fd5b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115611fe157611fe1611fb1565b604051601f8501601f19908116603f0116810190828211818310171561200957612009611fb1565b8160405280935085815286868601111561202257600080fd5b858560208301376000602087830101525050509392505050565b60008060008060008060c0878903121561205557600080fd5b863561206081611f4d565b9550602087013561207081611f7f565b9450604087013561208081611f94565b9350606087013561209081611fa3565b925060808701356120a081611f4d565b915060a08701356001600160401b038111156120bb57600080fd5b8701601f810189136120cc57600080fd5b6120db89823560208401611fc7565b9150509295509295509295565b600082601f8301126120f957600080fd5b611e6b83833560208501611fc7565b6001600160401b0381168114610dcb57600080fd5b8035611e4b81612108565b6000806000806060858703121561213e57600080fd5b84356001600160401b038082111561215557600080fd5b612161888389016120e8565b9550602087013591508082111561217757600080fd5b818701915087601f83011261218b57600080fd5b81358181111561219a57600080fd5b8860208260051b85010111156121af57600080fd5b6020830195508094505050506121c76040860161211d565b905092959194509250565b600080604083850312156121e557600080fd5b82356121f081611f4d565b915060208301356001600160401b0381111561220b57600080fd5b612217858286016120e8565b9150509250929050565b6000806040838503121561223457600080fd5b823561223f81611f4d565b9150602083013561224f81611fa3565b809150509250929050565b6000806040838503121561226d57600080fd5b823561227881612108565b9150602083013561224f81611f4d565b6000806040838503121561229b57600080fd5b82356122a681611f4d565b946020939093013593505050565b6000806000606084860312156122c957600080fd5b83356122d481611f4d565b925060208401356122e481611f4d565b915060408401356122f481611f4d565b809150509250925092565b6000806040838503121561231257600080fd5b82356001600160401b038082111561232957600080fd5b612335868387016120e8565b9350602085013591508082111561234b57600080fd5b50612217858286016120e8565b60008060006060848603121561236d57600080fd5b833561237881611f4d565b9250602084013561238881611f4d565b929592945050506040919091013590565b600080604083850312156123ac57600080fd5b823561227881611f4d565b6000602082840312156123c957600080fd5b8151611e6b81611f7f565b600181811c908216806123e857607f821691505b60208210810361240857634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561242057600080fd5b8151611e6b81611f4d565b601f82111561247157600081815260208120601f850160051c810160208610156124525750805b601f850160051c820191505b81811015610cb85782815560010161245e565b505050565b81516001600160401b0381111561248f5761248f611fb1565b6124a38161249d84546123d4565b8461242b565b602080601f8311600181146124d857600084156124c05750858301515b600019600386901b1c1916600185901b178555610cb8565b600085815260208120601f198616915b82811015612507578886015182559484019460019091019084016124e8565b50858210156125255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6060815260006125486060830187611e96565b8281036020848101919091528582528691810160005b8781101561258b576001600160e01b031961257885611e33565b168252928201929082019060010161255e565b508093505050506001600160401b038316604083015295945050505050565b6001600160a01b0383168152604060208201819052600090611f4590830184611e96565b6000602082840312156125e057600080fd5b8151611e6b81611fa3565b6000602082840312156125fd57600080fd5b8151611e6b81612108565b60006020828403121561261a57600080fd5b8151611e6b81611f94565b6040815260006126386040830185611e96565b828103602084015261264a8185611e96565b95945050505050565b6000806040838503121561266657600080fd5b825161267181612108565b602084015190925061224f81612108565b6000808585111561269257600080fd5b8386111561269f57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156126d45780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000825161272e818460208701611e72565b9190910192915050565b6000806040838503121561274b57600080fd5b825161275681611fa3565b602084015190925063ffffffff8116811461224f57600080fdfe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a26469706673582212202228d9c7267c62bded1b1181dd595810520ce05bab83afa745a9c8f64b5540f864736f6c63430008140033",
896
+ "linkReferences": {
897
+ "contracts/type/NftId.sol": {
898
+ "NftIdLib": [
1486
899
  {
1487
- "internalType": "contract IDistributionService",
1488
- "name": "",
1489
- "type": "address"
900
+ "length": 20,
901
+ "start": 1584
902
+ },
903
+ {
904
+ "length": 20,
905
+ "start": 4133
906
+ },
907
+ {
908
+ "length": 20,
909
+ "start": 6576
1490
910
  }
1491
- ],
1492
- "stateMutability": "view",
1493
- "type": "function"
911
+ ]
1494
912
  },
1495
- {
1496
- "inputs": [],
1497
- "name": "getInitialInfo",
1498
- "outputs": [
913
+ "contracts/type/RoleId.sol": {
914
+ "RoleIdLib": [
1499
915
  {
1500
- "components": [
1501
- {
1502
- "internalType": "NftId",
1503
- "name": "nftId",
1504
- "type": "uint96"
1505
- },
1506
- {
1507
- "internalType": "NftId",
1508
- "name": "parentNftId",
1509
- "type": "uint96"
1510
- },
1511
- {
1512
- "internalType": "ObjectType",
1513
- "name": "objectType",
1514
- "type": "uint8"
1515
- },
1516
- {
1517
- "internalType": "bool",
1518
- "name": "isInterceptor",
1519
- "type": "bool"
1520
- },
1521
- {
1522
- "internalType": "address",
1523
- "name": "objectAddress",
1524
- "type": "address"
1525
- },
1526
- {
1527
- "internalType": "address",
1528
- "name": "initialOwner",
1529
- "type": "address"
1530
- },
1531
- {
1532
- "internalType": "bytes",
1533
- "name": "data",
1534
- "type": "bytes"
1535
- }
1536
- ],
1537
- "internalType": "struct IRegistry.ObjectInfo",
1538
- "name": "",
1539
- "type": "tuple"
916
+ "length": 20,
917
+ "start": 4512
1540
918
  },
1541
919
  {
1542
- "internalType": "bytes",
1543
- "name": "data",
1544
- "type": "bytes"
920
+ "length": 20,
921
+ "start": 4738
1545
922
  }
1546
- ],
1547
- "stateMutability": "view",
1548
- "type": "function"
923
+ ]
1549
924
  },
1550
- {
1551
- "inputs": [
925
+ "contracts/type/Version.sol": {
926
+ "VersionPartLib": [
1552
927
  {
1553
- "internalType": "ObjectType",
1554
- "name": "objectType",
1555
- "type": "uint8"
928
+ "length": 20,
929
+ "start": 5640
1556
930
  }
1557
- ],
1558
- "name": "getInitialState",
1559
- "outputs": [
931
+ ]
932
+ }
933
+ },
934
+ "deployedLinkReferences": {
935
+ "contracts/type/NftId.sol": {
936
+ "NftIdLib": [
1560
937
  {
1561
- "internalType": "StateId",
1562
- "name": "",
1563
- "type": "uint8"
1564
- }
1565
- ],
1566
- "stateMutability": "view",
1567
- "type": "function"
1568
- },
1569
- {
1570
- "inputs": [],
1571
- "name": "getInstanceReader",
1572
- "outputs": [
938
+ "length": 20,
939
+ "start": 1552
940
+ },
1573
941
  {
1574
- "internalType": "contract InstanceReader",
1575
- "name": "",
1576
- "type": "address"
942
+ "length": 20,
943
+ "start": 4101
944
+ },
945
+ {
946
+ "length": 20,
947
+ "start": 6544
1577
948
  }
1578
- ],
1579
- "stateMutability": "view",
1580
- "type": "function"
949
+ ]
1581
950
  },
1582
- {
1583
- "inputs": [
951
+ "contracts/type/RoleId.sol": {
952
+ "RoleIdLib": [
1584
953
  {
1585
- "internalType": "Key32",
1586
- "name": "key32",
1587
- "type": "bytes32"
1588
- }
1589
- ],
1590
- "name": "getMetadata",
1591
- "outputs": [
1592
- {
1593
- "components": [
1594
- {
1595
- "internalType": "ObjectType",
1596
- "name": "objectType",
1597
- "type": "uint8"
1598
- },
1599
- {
1600
- "internalType": "StateId",
1601
- "name": "state",
1602
- "type": "uint8"
1603
- },
1604
- {
1605
- "internalType": "address",
1606
- "name": "updatedBy",
1607
- "type": "address"
1608
- },
1609
- {
1610
- "internalType": "Blocknumber",
1611
- "name": "updatedIn",
1612
- "type": "uint32"
1613
- },
1614
- {
1615
- "internalType": "Blocknumber",
1616
- "name": "createdIn",
1617
- "type": "uint32"
1618
- }
1619
- ],
1620
- "internalType": "struct IKeyValueStore.Metadata",
1621
- "name": "metadata",
1622
- "type": "tuple"
1623
- }
1624
- ],
1625
- "stateMutability": "view",
1626
- "type": "function"
1627
- },
1628
- {
1629
- "inputs": [],
1630
- "name": "getNftId",
1631
- "outputs": [
1632
- {
1633
- "internalType": "NftId",
1634
- "name": "",
1635
- "type": "uint96"
1636
- }
1637
- ],
1638
- "stateMutability": "view",
1639
- "type": "function"
1640
- },
1641
- {
1642
- "inputs": [],
1643
- "name": "getOwner",
1644
- "outputs": [
1645
- {
1646
- "internalType": "address",
1647
- "name": "",
1648
- "type": "address"
1649
- }
1650
- ],
1651
- "stateMutability": "view",
1652
- "type": "function"
1653
- },
1654
- {
1655
- "inputs": [],
1656
- "name": "getPoolService",
1657
- "outputs": [
1658
- {
1659
- "internalType": "contract IPoolService",
1660
- "name": "",
1661
- "type": "address"
1662
- }
1663
- ],
1664
- "stateMutability": "view",
1665
- "type": "function"
1666
- },
1667
- {
1668
- "inputs": [],
1669
- "name": "getRegistry",
1670
- "outputs": [
1671
- {
1672
- "internalType": "contract IRegistry",
1673
- "name": "",
1674
- "type": "address"
1675
- }
1676
- ],
1677
- "stateMutability": "view",
1678
- "type": "function"
1679
- },
1680
- {
1681
- "inputs": [
1682
- {
1683
- "internalType": "RoleId",
1684
- "name": "roleId",
1685
- "type": "uint64"
1686
- }
1687
- ],
1688
- "name": "getRole",
1689
- "outputs": [
1690
- {
1691
- "components": [
1692
- {
1693
- "internalType": "ShortString",
1694
- "name": "name",
1695
- "type": "bytes32"
1696
- },
1697
- {
1698
- "internalType": "bool",
1699
- "name": "isCustom",
1700
- "type": "bool"
1701
- }
1702
- ],
1703
- "internalType": "struct IAccess.RoleInfo",
1704
- "name": "role",
1705
- "type": "tuple"
1706
- }
1707
- ],
1708
- "stateMutability": "view",
1709
- "type": "function"
1710
- },
1711
- {
1712
- "inputs": [
1713
- {
1714
- "internalType": "uint256",
1715
- "name": "idx",
1716
- "type": "uint256"
1717
- }
1718
- ],
1719
- "name": "getRoleId",
1720
- "outputs": [
1721
- {
1722
- "internalType": "RoleId",
1723
- "name": "roleId",
1724
- "type": "uint64"
1725
- }
1726
- ],
1727
- "stateMutability": "view",
1728
- "type": "function"
1729
- },
1730
- {
1731
- "inputs": [
1732
- {
1733
- "internalType": "RoleId",
1734
- "name": "roleId",
1735
- "type": "uint64"
1736
- },
1737
- {
1738
- "internalType": "uint256",
1739
- "name": "idx",
1740
- "type": "uint256"
1741
- }
1742
- ],
1743
- "name": "getRoleMember",
1744
- "outputs": [
1745
- {
1746
- "internalType": "address",
1747
- "name": "roleMember",
1748
- "type": "address"
1749
- }
1750
- ],
1751
- "stateMutability": "view",
1752
- "type": "function"
1753
- },
1754
- {
1755
- "inputs": [
1756
- {
1757
- "internalType": "Key32",
1758
- "name": "key32",
1759
- "type": "bytes32"
1760
- }
1761
- ],
1762
- "name": "getState",
1763
- "outputs": [
1764
- {
1765
- "internalType": "StateId",
1766
- "name": "state",
1767
- "type": "uint8"
1768
- }
1769
- ],
1770
- "stateMutability": "view",
1771
- "type": "function"
1772
- },
1773
- {
1774
- "inputs": [
1775
- {
1776
- "internalType": "RoleId",
1777
- "name": "roleId",
1778
- "type": "uint64"
1779
- },
1780
- {
1781
- "internalType": "address",
1782
- "name": "member",
1783
- "type": "address"
1784
- }
1785
- ],
1786
- "name": "grantRole",
1787
- "outputs": [
1788
- {
1789
- "internalType": "bool",
1790
- "name": "granted",
1791
- "type": "bool"
1792
- }
1793
- ],
1794
- "stateMutability": "nonpayable",
1795
- "type": "function"
1796
- },
1797
- {
1798
- "inputs": [
1799
- {
1800
- "internalType": "ObjectType",
1801
- "name": "objectType",
1802
- "type": "uint8"
1803
- }
1804
- ],
1805
- "name": "hasLifecycle",
1806
- "outputs": [
1807
- {
1808
- "internalType": "bool",
1809
- "name": "",
1810
- "type": "bool"
1811
- }
1812
- ],
1813
- "stateMutability": "view",
1814
- "type": "function"
1815
- },
1816
- {
1817
- "inputs": [
1818
- {
1819
- "internalType": "address",
1820
- "name": "accessManagerAddress",
1821
- "type": "address"
1822
- },
1823
- {
1824
- "internalType": "address",
1825
- "name": "registryAddress",
1826
- "type": "address"
1827
- },
1828
- {
1829
- "internalType": "NftId",
1830
- "name": "registryNftId",
1831
- "type": "uint96"
1832
- },
1833
- {
1834
- "internalType": "address",
1835
- "name": "initialOwner",
1836
- "type": "address"
1837
- }
1838
- ],
1839
- "name": "initialize",
1840
- "outputs": [],
1841
- "stateMutability": "nonpayable",
1842
- "type": "function"
1843
- },
1844
- {
1845
- "inputs": [],
1846
- "name": "isConsumingScheduledOp",
1847
- "outputs": [
1848
- {
1849
- "internalType": "bytes4",
1850
- "name": "",
1851
- "type": "bytes4"
1852
- }
1853
- ],
1854
- "stateMutability": "view",
1855
- "type": "function"
1856
- },
1857
- {
1858
- "inputs": [
1859
- {
1860
- "internalType": "ObjectType",
1861
- "name": "objectType",
1862
- "type": "uint8"
1863
- },
1864
- {
1865
- "internalType": "StateId",
1866
- "name": "fromId",
1867
- "type": "uint8"
1868
- },
1869
- {
1870
- "internalType": "StateId",
1871
- "name": "toId",
1872
- "type": "uint8"
1873
- }
1874
- ],
1875
- "name": "isValidTransition",
1876
- "outputs": [
1877
- {
1878
- "internalType": "bool",
1879
- "name": "",
1880
- "type": "bool"
1881
- }
1882
- ],
1883
- "stateMutability": "view",
1884
- "type": "function"
1885
- },
1886
- {
1887
- "inputs": [],
1888
- "name": "linkToRegisteredNftId",
1889
- "outputs": [],
1890
- "stateMutability": "nonpayable",
1891
- "type": "function"
1892
- },
1893
- {
1894
- "inputs": [
1895
- {
1896
- "internalType": "RoleId",
1897
- "name": "roleId",
1898
- "type": "uint64"
1899
- }
1900
- ],
1901
- "name": "renounceRole",
1902
- "outputs": [
1903
- {
1904
- "internalType": "bool",
1905
- "name": "revoked",
1906
- "type": "bool"
1907
- }
1908
- ],
1909
- "stateMutability": "nonpayable",
1910
- "type": "function"
1911
- },
1912
- {
1913
- "inputs": [
1914
- {
1915
- "internalType": "RoleId",
1916
- "name": "roleId",
1917
- "type": "uint64"
1918
- },
1919
- {
1920
- "internalType": "address",
1921
- "name": "member",
1922
- "type": "address"
1923
- }
1924
- ],
1925
- "name": "revokeRole",
1926
- "outputs": [
1927
- {
1928
- "internalType": "bool",
1929
- "name": "revoked",
1930
- "type": "bool"
1931
- }
1932
- ],
1933
- "stateMutability": "nonpayable",
1934
- "type": "function"
1935
- },
1936
- {
1937
- "inputs": [
1938
- {
1939
- "internalType": "RoleId",
1940
- "name": "roleId",
1941
- "type": "uint64"
1942
- }
1943
- ],
1944
- "name": "roleMembers",
1945
- "outputs": [
1946
- {
1947
- "internalType": "uint256",
1948
- "name": "numberOfMembers",
1949
- "type": "uint256"
1950
- }
1951
- ],
1952
- "stateMutability": "view",
1953
- "type": "function"
1954
- },
1955
- {
1956
- "inputs": [],
1957
- "name": "roles",
1958
- "outputs": [
1959
- {
1960
- "internalType": "uint256",
1961
- "name": "numberOfRoles",
1962
- "type": "uint256"
1963
- }
1964
- ],
1965
- "stateMutability": "view",
1966
- "type": "function"
1967
- },
1968
- {
1969
- "inputs": [
1970
- {
1971
- "internalType": "address",
1972
- "name": "newAuthority",
1973
- "type": "address"
1974
- }
1975
- ],
1976
- "name": "setAuthority",
1977
- "outputs": [],
1978
- "stateMutability": "nonpayable",
1979
- "type": "function"
1980
- },
1981
- {
1982
- "inputs": [
1983
- {
1984
- "internalType": "contract InstanceReader",
1985
- "name": "instanceReader",
1986
- "type": "address"
1987
- }
1988
- ],
1989
- "name": "setInstanceReader",
1990
- "outputs": [],
1991
- "stateMutability": "nonpayable",
1992
- "type": "function"
1993
- },
1994
- {
1995
- "inputs": [
1996
- {
1997
- "internalType": "address",
1998
- "name": "target",
1999
- "type": "address"
2000
- },
2001
- {
2002
- "internalType": "bool",
2003
- "name": "closed",
2004
- "type": "bool"
2005
- }
2006
- ],
2007
- "name": "setTargetClosed",
2008
- "outputs": [],
2009
- "stateMutability": "nonpayable",
2010
- "type": "function"
2011
- },
2012
- {
2013
- "inputs": [
2014
- {
2015
- "internalType": "bytes4",
2016
- "name": "interfaceId",
2017
- "type": "bytes4"
2018
- }
2019
- ],
2020
- "name": "supportsInterface",
2021
- "outputs": [
2022
- {
2023
- "internalType": "bool",
2024
- "name": "",
2025
- "type": "bool"
2026
- }
2027
- ],
2028
- "stateMutability": "view",
2029
- "type": "function"
2030
- },
2031
- {
2032
- "inputs": [
2033
- {
2034
- "internalType": "NftId",
2035
- "name": "bundleNftId",
2036
- "type": "uint96"
2037
- }
2038
- ],
2039
- "name": "toBundleKey32",
2040
- "outputs": [
2041
- {
2042
- "internalType": "Key32",
2043
- "name": "",
2044
- "type": "bytes32"
2045
- }
2046
- ],
2047
- "stateMutability": "pure",
2048
- "type": "function"
2049
- },
2050
- {
2051
- "inputs": [
2052
- {
2053
- "internalType": "ObjectType",
2054
- "name": "objectType",
2055
- "type": "uint8"
2056
- },
2057
- {
2058
- "internalType": "KeyId",
2059
- "name": "id",
2060
- "type": "bytes31"
2061
- }
2062
- ],
2063
- "name": "toKey32",
2064
- "outputs": [
2065
- {
2066
- "internalType": "Key32",
2067
- "name": "",
2068
- "type": "bytes32"
2069
- }
2070
- ],
2071
- "stateMutability": "pure",
2072
- "type": "function"
2073
- },
2074
- {
2075
- "inputs": [
2076
- {
2077
- "internalType": "NftId",
2078
- "name": "policyNftId",
2079
- "type": "uint96"
2080
- }
2081
- ],
2082
- "name": "toPolicyKey32",
2083
- "outputs": [
2084
- {
2085
- "internalType": "Key32",
2086
- "name": "",
2087
- "type": "bytes32"
2088
- }
2089
- ],
2090
- "stateMutability": "pure",
2091
- "type": "function"
2092
- },
2093
- {
2094
- "inputs": [
2095
- {
2096
- "internalType": "RoleId",
2097
- "name": "roleId",
2098
- "type": "uint64"
2099
- }
2100
- ],
2101
- "name": "toRoleKey32",
2102
- "outputs": [
2103
- {
2104
- "internalType": "Key32",
2105
- "name": "",
2106
- "type": "bytes32"
2107
- }
2108
- ],
2109
- "stateMutability": "pure",
2110
- "type": "function"
2111
- },
2112
- {
2113
- "inputs": [
2114
- {
2115
- "internalType": "address",
2116
- "name": "target",
2117
- "type": "address"
2118
- }
2119
- ],
2120
- "name": "toTargetKey32",
2121
- "outputs": [
2122
- {
2123
- "internalType": "Key32",
2124
- "name": "",
2125
- "type": "bytes32"
2126
- }
2127
- ],
2128
- "stateMutability": "pure",
2129
- "type": "function"
2130
- },
2131
- {
2132
- "inputs": [
2133
- {
2134
- "internalType": "NftId",
2135
- "name": "bundleNftId",
2136
- "type": "uint96"
2137
- },
2138
- {
2139
- "components": [
2140
- {
2141
- "internalType": "NftId",
2142
- "name": "poolNftId",
2143
- "type": "uint96"
2144
- },
2145
- {
2146
- "components": [
2147
- {
2148
- "internalType": "UFixed",
2149
- "name": "fractionalFee",
2150
- "type": "uint256"
2151
- },
2152
- {
2153
- "internalType": "uint256",
2154
- "name": "fixedFee",
2155
- "type": "uint256"
2156
- }
2157
- ],
2158
- "internalType": "struct Fee",
2159
- "name": "fee",
2160
- "type": "tuple"
2161
- },
2162
- {
2163
- "internalType": "bytes",
2164
- "name": "filter",
2165
- "type": "bytes"
2166
- },
2167
- {
2168
- "internalType": "uint256",
2169
- "name": "capitalAmount",
2170
- "type": "uint256"
2171
- },
2172
- {
2173
- "internalType": "uint256",
2174
- "name": "lockedAmount",
2175
- "type": "uint256"
2176
- },
2177
- {
2178
- "internalType": "uint256",
2179
- "name": "balanceAmount",
2180
- "type": "uint256"
2181
- },
2182
- {
2183
- "internalType": "uint256",
2184
- "name": "lifetime",
2185
- "type": "uint256"
2186
- },
2187
- {
2188
- "internalType": "Timestamp",
2189
- "name": "expiredAt",
2190
- "type": "uint40"
2191
- },
2192
- {
2193
- "internalType": "Timestamp",
2194
- "name": "closedAt",
2195
- "type": "uint40"
2196
- }
2197
- ],
2198
- "internalType": "struct IBundle.BundleInfo",
2199
- "name": "bundle",
2200
- "type": "tuple"
2201
- },
2202
- {
2203
- "internalType": "StateId",
2204
- "name": "newState",
2205
- "type": "uint8"
2206
- }
2207
- ],
2208
- "name": "updateBundle",
2209
- "outputs": [],
2210
- "stateMutability": "nonpayable",
2211
- "type": "function"
2212
- },
2213
- {
2214
- "inputs": [
2215
- {
2216
- "internalType": "NftId",
2217
- "name": "bundleNftId",
2218
- "type": "uint96"
2219
- },
2220
- {
2221
- "internalType": "StateId",
2222
- "name": "newState",
2223
- "type": "uint8"
2224
- }
2225
- ],
2226
- "name": "updateBundleState",
2227
- "outputs": [],
2228
- "stateMutability": "nonpayable",
2229
- "type": "function"
2230
- },
2231
- {
2232
- "inputs": [
2233
- {
2234
- "internalType": "NftId",
2235
- "name": "policyNftId",
2236
- "type": "uint96"
2237
- },
2238
- {
2239
- "internalType": "NumberId",
2240
- "name": "claimId",
2241
- "type": "uint32"
2242
- },
2243
- {
2244
- "components": [
2245
- {
2246
- "internalType": "uint256",
2247
- "name": "claimAmount",
2248
- "type": "uint256"
2249
- },
2250
- {
2251
- "internalType": "uint256",
2252
- "name": "paidAmount",
2253
- "type": "uint256"
2254
- },
2255
- {
2256
- "internalType": "bytes",
2257
- "name": "data",
2258
- "type": "bytes"
2259
- },
2260
- {
2261
- "internalType": "Timestamp",
2262
- "name": "closedAt",
2263
- "type": "uint40"
2264
- }
2265
- ],
2266
- "internalType": "struct IPolicy.ClaimInfo",
2267
- "name": "claim",
2268
- "type": "tuple"
2269
- },
2270
- {
2271
- "internalType": "StateId",
2272
- "name": "newState",
2273
- "type": "uint8"
2274
- }
2275
- ],
2276
- "name": "updateClaim",
2277
- "outputs": [],
2278
- "stateMutability": "nonpayable",
2279
- "type": "function"
2280
- },
2281
- {
2282
- "inputs": [
2283
- {
2284
- "internalType": "NftId",
2285
- "name": "policyNftId",
2286
- "type": "uint96"
2287
- },
2288
- {
2289
- "internalType": "NumberId",
2290
- "name": "payoutId",
2291
- "type": "uint32"
2292
- },
2293
- {
2294
- "components": [
2295
- {
2296
- "internalType": "NumberId",
2297
- "name": "claimId",
2298
- "type": "uint32"
2299
- },
2300
- {
2301
- "internalType": "uint256",
2302
- "name": "amount",
2303
- "type": "uint256"
2304
- },
2305
- {
2306
- "internalType": "bytes",
2307
- "name": "data",
2308
- "type": "bytes"
2309
- },
2310
- {
2311
- "internalType": "Timestamp",
2312
- "name": "paidAt",
2313
- "type": "uint40"
2314
- }
2315
- ],
2316
- "internalType": "struct IPolicy.PayoutInfo",
2317
- "name": "payout",
2318
- "type": "tuple"
2319
- },
2320
- {
2321
- "internalType": "StateId",
2322
- "name": "newState",
2323
- "type": "uint8"
2324
- }
2325
- ],
2326
- "name": "updateClaim",
2327
- "outputs": [],
2328
- "stateMutability": "nonpayable",
2329
- "type": "function"
2330
- },
2331
- {
2332
- "inputs": [
2333
- {
2334
- "internalType": "NftId",
2335
- "name": "policyNftId",
2336
- "type": "uint96"
2337
- },
2338
- {
2339
- "internalType": "StateId",
2340
- "name": "newState",
2341
- "type": "uint8"
2342
- }
2343
- ],
2344
- "name": "updateClaimState",
2345
- "outputs": [],
2346
- "stateMutability": "nonpayable",
2347
- "type": "function"
2348
- },
2349
- {
2350
- "inputs": [
2351
- {
2352
- "internalType": "NftId",
2353
- "name": "distributionNftId",
2354
- "type": "uint96"
2355
- },
2356
- {
2357
- "components": [
2358
- {
2359
- "internalType": "NftId",
2360
- "name": "productNftId",
2361
- "type": "uint96"
2362
- },
2363
- {
2364
- "internalType": "contract TokenHandler",
2365
- "name": "tokenHandler",
2366
- "type": "address"
2367
- },
2368
- {
2369
- "components": [
2370
- {
2371
- "internalType": "UFixed",
2372
- "name": "fractionalFee",
2373
- "type": "uint256"
2374
- },
2375
- {
2376
- "internalType": "uint256",
2377
- "name": "fixedFee",
2378
- "type": "uint256"
2379
- }
2380
- ],
2381
- "internalType": "struct Fee",
2382
- "name": "distributionFee",
2383
- "type": "tuple"
2384
- },
2385
- {
2386
- "internalType": "bool",
2387
- "name": "isIntercepting",
2388
- "type": "bool"
2389
- },
2390
- {
2391
- "internalType": "address",
2392
- "name": "wallet",
2393
- "type": "address"
2394
- }
2395
- ],
2396
- "internalType": "struct ISetup.DistributionSetupInfo",
2397
- "name": "setup",
2398
- "type": "tuple"
2399
- },
2400
- {
2401
- "internalType": "StateId",
2402
- "name": "newState",
2403
- "type": "uint8"
2404
- }
2405
- ],
2406
- "name": "updateDistributionSetup",
2407
- "outputs": [],
2408
- "stateMutability": "nonpayable",
2409
- "type": "function"
2410
- },
2411
- {
2412
- "inputs": [
2413
- {
2414
- "internalType": "NftId",
2415
- "name": "distributionNftId",
2416
- "type": "uint96"
2417
- },
2418
- {
2419
- "internalType": "StateId",
2420
- "name": "newState",
2421
- "type": "uint8"
2422
- }
2423
- ],
2424
- "name": "updateDistributionSetupState",
2425
- "outputs": [],
2426
- "stateMutability": "nonpayable",
2427
- "type": "function"
2428
- },
2429
- {
2430
- "inputs": [
2431
- {
2432
- "internalType": "NftId",
2433
- "name": "policyNftId",
2434
- "type": "uint96"
2435
- },
2436
- {
2437
- "internalType": "NumberId",
2438
- "name": "payoutId",
2439
- "type": "uint32"
2440
- },
2441
- {
2442
- "components": [
2443
- {
2444
- "internalType": "NumberId",
2445
- "name": "claimId",
2446
- "type": "uint32"
2447
- },
2448
- {
2449
- "internalType": "uint256",
2450
- "name": "amount",
2451
- "type": "uint256"
2452
- },
2453
- {
2454
- "internalType": "bytes",
2455
- "name": "data",
2456
- "type": "bytes"
2457
- },
2458
- {
2459
- "internalType": "Timestamp",
2460
- "name": "paidAt",
2461
- "type": "uint40"
2462
- }
2463
- ],
2464
- "internalType": "struct IPolicy.PayoutInfo",
2465
- "name": "payout",
2466
- "type": "tuple"
2467
- },
2468
- {
2469
- "internalType": "StateId",
2470
- "name": "newState",
2471
- "type": "uint8"
2472
- }
2473
- ],
2474
- "name": "updateDistributor",
2475
- "outputs": [],
2476
- "stateMutability": "nonpayable",
2477
- "type": "function"
2478
- },
2479
- {
2480
- "inputs": [
2481
- {
2482
- "internalType": "NftId",
2483
- "name": "policyNftId",
2484
- "type": "uint96"
2485
- },
2486
- {
2487
- "internalType": "StateId",
2488
- "name": "newState",
2489
- "type": "uint8"
2490
- }
2491
- ],
2492
- "name": "updateDistributorState",
2493
- "outputs": [],
2494
- "stateMutability": "nonpayable",
2495
- "type": "function"
2496
- },
2497
- {
2498
- "inputs": [
2499
- {
2500
- "internalType": "NftId",
2501
- "name": "policyNftId",
2502
- "type": "uint96"
2503
- },
2504
- {
2505
- "internalType": "NumberId",
2506
- "name": "payoutId",
2507
- "type": "uint32"
2508
- },
2509
- {
2510
- "components": [
2511
- {
2512
- "internalType": "NumberId",
2513
- "name": "claimId",
2514
- "type": "uint32"
2515
- },
2516
- {
2517
- "internalType": "uint256",
2518
- "name": "amount",
2519
- "type": "uint256"
2520
- },
2521
- {
2522
- "internalType": "bytes",
2523
- "name": "data",
2524
- "type": "bytes"
2525
- },
2526
- {
2527
- "internalType": "Timestamp",
2528
- "name": "paidAt",
2529
- "type": "uint40"
2530
- }
2531
- ],
2532
- "internalType": "struct IPolicy.PayoutInfo",
2533
- "name": "payout",
2534
- "type": "tuple"
2535
- },
2536
- {
2537
- "internalType": "StateId",
2538
- "name": "newState",
2539
- "type": "uint8"
2540
- }
2541
- ],
2542
- "name": "updateDistributorType",
2543
- "outputs": [],
2544
- "stateMutability": "nonpayable",
2545
- "type": "function"
2546
- },
2547
- {
2548
- "inputs": [
2549
- {
2550
- "internalType": "NftId",
2551
- "name": "policyNftId",
2552
- "type": "uint96"
2553
- },
2554
- {
2555
- "internalType": "StateId",
2556
- "name": "newState",
2557
- "type": "uint8"
2558
- }
2559
- ],
2560
- "name": "updateDistributorTypeState",
2561
- "outputs": [],
2562
- "stateMutability": "nonpayable",
2563
- "type": "function"
2564
- },
2565
- {
2566
- "inputs": [
2567
- {
2568
- "internalType": "NftId",
2569
- "name": "policyNftId",
2570
- "type": "uint96"
2571
- },
2572
- {
2573
- "internalType": "StateId",
2574
- "name": "newState",
2575
- "type": "uint8"
2576
- }
2577
- ],
2578
- "name": "updatePayoutState",
2579
- "outputs": [],
2580
- "stateMutability": "nonpayable",
2581
- "type": "function"
2582
- },
2583
- {
2584
- "inputs": [
2585
- {
2586
- "internalType": "NftId",
2587
- "name": "policyNftId",
2588
- "type": "uint96"
2589
- },
2590
- {
2591
- "components": [
2592
- {
2593
- "internalType": "NftId",
2594
- "name": "productNftId",
2595
- "type": "uint96"
2596
- },
2597
- {
2598
- "internalType": "NftId",
2599
- "name": "bundleNftId",
2600
- "type": "uint96"
2601
- },
2602
- {
2603
- "internalType": "ReferralId",
2604
- "name": "referralId",
2605
- "type": "bytes8"
2606
- },
2607
- {
2608
- "internalType": "RiskId",
2609
- "name": "riskId",
2610
- "type": "bytes8"
2611
- },
2612
- {
2613
- "internalType": "uint256",
2614
- "name": "sumInsuredAmount",
2615
- "type": "uint256"
2616
- },
2617
- {
2618
- "internalType": "uint256",
2619
- "name": "premiumAmount",
2620
- "type": "uint256"
2621
- },
2622
- {
2623
- "internalType": "uint256",
2624
- "name": "premiumPaidAmount",
2625
- "type": "uint256"
2626
- },
2627
- {
2628
- "internalType": "uint256",
2629
- "name": "lifetime",
2630
- "type": "uint256"
2631
- },
2632
- {
2633
- "internalType": "bytes",
2634
- "name": "applicationData",
2635
- "type": "bytes"
2636
- },
2637
- {
2638
- "internalType": "bytes",
2639
- "name": "policyData",
2640
- "type": "bytes"
2641
- },
2642
- {
2643
- "internalType": "uint16",
2644
- "name": "claimsCount",
2645
- "type": "uint16"
2646
- },
2647
- {
2648
- "internalType": "uint16",
2649
- "name": "openClaimsCount",
2650
- "type": "uint16"
2651
- },
2652
- {
2653
- "internalType": "uint256",
2654
- "name": "payoutAmount",
2655
- "type": "uint256"
2656
- },
2657
- {
2658
- "internalType": "Timestamp",
2659
- "name": "activatedAt",
2660
- "type": "uint40"
2661
- },
2662
- {
2663
- "internalType": "Timestamp",
2664
- "name": "expiredAt",
2665
- "type": "uint40"
2666
- },
2667
- {
2668
- "internalType": "Timestamp",
2669
- "name": "closedAt",
2670
- "type": "uint40"
2671
- }
2672
- ],
2673
- "internalType": "struct IPolicy.PolicyInfo",
2674
- "name": "policy",
2675
- "type": "tuple"
2676
- },
2677
- {
2678
- "internalType": "StateId",
2679
- "name": "newState",
2680
- "type": "uint8"
2681
- }
2682
- ],
2683
- "name": "updatePolicy",
2684
- "outputs": [],
2685
- "stateMutability": "nonpayable",
2686
- "type": "function"
2687
- },
2688
- {
2689
- "inputs": [
2690
- {
2691
- "internalType": "NftId",
2692
- "name": "policyNftId",
2693
- "type": "uint96"
2694
- },
2695
- {
2696
- "internalType": "StateId",
2697
- "name": "newState",
2698
- "type": "uint8"
2699
- }
2700
- ],
2701
- "name": "updatePolicyState",
2702
- "outputs": [],
2703
- "stateMutability": "nonpayable",
2704
- "type": "function"
2705
- },
2706
- {
2707
- "inputs": [
2708
- {
2709
- "internalType": "NftId",
2710
- "name": "poolNftId",
2711
- "type": "uint96"
2712
- },
2713
- {
2714
- "components": [
2715
- {
2716
- "internalType": "NftId",
2717
- "name": "productNftId",
2718
- "type": "uint96"
2719
- },
2720
- {
2721
- "internalType": "contract TokenHandler",
2722
- "name": "tokenHandler",
2723
- "type": "address"
2724
- },
2725
- {
2726
- "internalType": "UFixed",
2727
- "name": "collateralizationLevel",
2728
- "type": "uint256"
2729
- },
2730
- {
2731
- "components": [
2732
- {
2733
- "internalType": "UFixed",
2734
- "name": "fractionalFee",
2735
- "type": "uint256"
2736
- },
2737
- {
2738
- "internalType": "uint256",
2739
- "name": "fixedFee",
2740
- "type": "uint256"
2741
- }
2742
- ],
2743
- "internalType": "struct Fee",
2744
- "name": "poolFee",
2745
- "type": "tuple"
2746
- },
2747
- {
2748
- "components": [
2749
- {
2750
- "internalType": "UFixed",
2751
- "name": "fractionalFee",
2752
- "type": "uint256"
2753
- },
2754
- {
2755
- "internalType": "uint256",
2756
- "name": "fixedFee",
2757
- "type": "uint256"
2758
- }
2759
- ],
2760
- "internalType": "struct Fee",
2761
- "name": "stakingFee",
2762
- "type": "tuple"
2763
- },
2764
- {
2765
- "components": [
2766
- {
2767
- "internalType": "UFixed",
2768
- "name": "fractionalFee",
2769
- "type": "uint256"
2770
- },
2771
- {
2772
- "internalType": "uint256",
2773
- "name": "fixedFee",
2774
- "type": "uint256"
2775
- }
2776
- ],
2777
- "internalType": "struct Fee",
2778
- "name": "performanceFee",
2779
- "type": "tuple"
2780
- },
2781
- {
2782
- "internalType": "bool",
2783
- "name": "isIntercepting",
2784
- "type": "bool"
2785
- },
2786
- {
2787
- "internalType": "address",
2788
- "name": "wallet",
2789
- "type": "address"
2790
- }
2791
- ],
2792
- "internalType": "struct ISetup.PoolSetupInfo",
2793
- "name": "setup",
2794
- "type": "tuple"
2795
- },
2796
- {
2797
- "internalType": "StateId",
2798
- "name": "newState",
2799
- "type": "uint8"
2800
- }
2801
- ],
2802
- "name": "updatePoolSetup",
2803
- "outputs": [],
2804
- "stateMutability": "nonpayable",
2805
- "type": "function"
2806
- },
2807
- {
2808
- "inputs": [
2809
- {
2810
- "internalType": "NftId",
2811
- "name": "poolNftId",
2812
- "type": "uint96"
2813
- },
2814
- {
2815
- "internalType": "StateId",
2816
- "name": "newState",
2817
- "type": "uint8"
2818
- }
2819
- ],
2820
- "name": "updatePoolSetupState",
2821
- "outputs": [],
2822
- "stateMutability": "nonpayable",
2823
- "type": "function"
2824
- },
2825
- {
2826
- "inputs": [
2827
- {
2828
- "internalType": "NftId",
2829
- "name": "productNftId",
2830
- "type": "uint96"
2831
- },
2832
- {
2833
- "components": [
2834
- {
2835
- "internalType": "contract IERC20Metadata",
2836
- "name": "token",
2837
- "type": "address"
2838
- },
2839
- {
2840
- "internalType": "contract TokenHandler",
2841
- "name": "tokenHandler",
2842
- "type": "address"
2843
- },
2844
- {
2845
- "internalType": "NftId",
2846
- "name": "distributionNftId",
2847
- "type": "uint96"
2848
- },
2849
- {
2850
- "internalType": "NftId",
2851
- "name": "poolNftId",
2852
- "type": "uint96"
2853
- },
2854
- {
2855
- "components": [
2856
- {
2857
- "internalType": "UFixed",
2858
- "name": "fractionalFee",
2859
- "type": "uint256"
2860
- },
2861
- {
2862
- "internalType": "uint256",
2863
- "name": "fixedFee",
2864
- "type": "uint256"
2865
- }
2866
- ],
2867
- "internalType": "struct Fee",
2868
- "name": "distributionFee",
2869
- "type": "tuple"
2870
- },
2871
- {
2872
- "components": [
2873
- {
2874
- "internalType": "UFixed",
2875
- "name": "fractionalFee",
2876
- "type": "uint256"
2877
- },
2878
- {
2879
- "internalType": "uint256",
2880
- "name": "fixedFee",
2881
- "type": "uint256"
2882
- }
2883
- ],
2884
- "internalType": "struct Fee",
2885
- "name": "productFee",
2886
- "type": "tuple"
2887
- },
2888
- {
2889
- "components": [
2890
- {
2891
- "internalType": "UFixed",
2892
- "name": "fractionalFee",
2893
- "type": "uint256"
2894
- },
2895
- {
2896
- "internalType": "uint256",
2897
- "name": "fixedFee",
2898
- "type": "uint256"
2899
- }
2900
- ],
2901
- "internalType": "struct Fee",
2902
- "name": "processingFee",
2903
- "type": "tuple"
2904
- },
2905
- {
2906
- "components": [
2907
- {
2908
- "internalType": "UFixed",
2909
- "name": "fractionalFee",
2910
- "type": "uint256"
2911
- },
2912
- {
2913
- "internalType": "uint256",
2914
- "name": "fixedFee",
2915
- "type": "uint256"
2916
- }
2917
- ],
2918
- "internalType": "struct Fee",
2919
- "name": "poolFee",
2920
- "type": "tuple"
2921
- },
2922
- {
2923
- "components": [
2924
- {
2925
- "internalType": "UFixed",
2926
- "name": "fractionalFee",
2927
- "type": "uint256"
2928
- },
2929
- {
2930
- "internalType": "uint256",
2931
- "name": "fixedFee",
2932
- "type": "uint256"
2933
- }
2934
- ],
2935
- "internalType": "struct Fee",
2936
- "name": "stakingFee",
2937
- "type": "tuple"
2938
- },
2939
- {
2940
- "components": [
2941
- {
2942
- "internalType": "UFixed",
2943
- "name": "fractionalFee",
2944
- "type": "uint256"
2945
- },
2946
- {
2947
- "internalType": "uint256",
2948
- "name": "fixedFee",
2949
- "type": "uint256"
2950
- }
2951
- ],
2952
- "internalType": "struct Fee",
2953
- "name": "performanceFee",
2954
- "type": "tuple"
2955
- }
2956
- ],
2957
- "internalType": "struct ISetup.ProductSetupInfo",
2958
- "name": "setup",
2959
- "type": "tuple"
2960
- },
2961
- {
2962
- "internalType": "StateId",
2963
- "name": "newState",
2964
- "type": "uint8"
2965
- }
2966
- ],
2967
- "name": "updateProductSetup",
2968
- "outputs": [],
2969
- "stateMutability": "nonpayable",
2970
- "type": "function"
2971
- },
2972
- {
2973
- "inputs": [
2974
- {
2975
- "internalType": "NftId",
2976
- "name": "productNftId",
2977
- "type": "uint96"
2978
- },
2979
- {
2980
- "internalType": "StateId",
2981
- "name": "newState",
2982
- "type": "uint8"
2983
- }
2984
- ],
2985
- "name": "updateProductSetupState",
2986
- "outputs": [],
2987
- "stateMutability": "nonpayable",
2988
- "type": "function"
2989
- },
2990
- {
2991
- "inputs": [
2992
- {
2993
- "internalType": "NftId",
2994
- "name": "policyNftId",
2995
- "type": "uint96"
2996
- },
2997
- {
2998
- "internalType": "NumberId",
2999
- "name": "payoutId",
3000
- "type": "uint32"
3001
- },
3002
- {
3003
- "components": [
3004
- {
3005
- "internalType": "NumberId",
3006
- "name": "claimId",
3007
- "type": "uint32"
3008
- },
3009
- {
3010
- "internalType": "uint256",
3011
- "name": "amount",
3012
- "type": "uint256"
3013
- },
3014
- {
3015
- "internalType": "bytes",
3016
- "name": "data",
3017
- "type": "bytes"
3018
- },
3019
- {
3020
- "internalType": "Timestamp",
3021
- "name": "paidAt",
3022
- "type": "uint40"
3023
- }
3024
- ],
3025
- "internalType": "struct IPolicy.PayoutInfo",
3026
- "name": "payout",
3027
- "type": "tuple"
3028
- },
3029
- {
3030
- "internalType": "StateId",
3031
- "name": "newState",
3032
- "type": "uint8"
3033
- }
3034
- ],
3035
- "name": "updateReferral",
3036
- "outputs": [],
3037
- "stateMutability": "nonpayable",
3038
- "type": "function"
3039
- },
3040
- {
3041
- "inputs": [
3042
- {
3043
- "internalType": "NftId",
3044
- "name": "policyNftId",
3045
- "type": "uint96"
3046
- },
3047
- {
3048
- "internalType": "StateId",
3049
- "name": "newState",
3050
- "type": "uint8"
3051
- }
3052
- ],
3053
- "name": "updateReferralState",
3054
- "outputs": [],
3055
- "stateMutability": "nonpayable",
3056
- "type": "function"
3057
- },
3058
- {
3059
- "inputs": [
3060
- {
3061
- "internalType": "RiskId",
3062
- "name": "riskId",
3063
- "type": "bytes8"
3064
- },
3065
- {
3066
- "components": [
3067
- {
3068
- "internalType": "NftId",
3069
- "name": "productNftId",
3070
- "type": "uint96"
3071
- },
3072
- {
3073
- "internalType": "bytes",
3074
- "name": "data",
3075
- "type": "bytes"
3076
- }
3077
- ],
3078
- "internalType": "struct IRisk.RiskInfo",
3079
- "name": "risk",
3080
- "type": "tuple"
3081
- },
3082
- {
3083
- "internalType": "StateId",
3084
- "name": "newState",
3085
- "type": "uint8"
3086
- }
3087
- ],
3088
- "name": "updateRisk",
3089
- "outputs": [],
3090
- "stateMutability": "nonpayable",
3091
- "type": "function"
3092
- },
3093
- {
3094
- "inputs": [
3095
- {
3096
- "internalType": "RiskId",
3097
- "name": "riskId",
3098
- "type": "bytes8"
3099
- },
3100
- {
3101
- "internalType": "StateId",
3102
- "name": "newState",
3103
- "type": "uint8"
3104
- }
3105
- ],
3106
- "name": "updateRiskState",
3107
- "outputs": [],
3108
- "stateMutability": "nonpayable",
3109
- "type": "function"
3110
- },
3111
- {
3112
- "inputs": [
3113
- {
3114
- "internalType": "RoleId",
3115
- "name": "roleId",
3116
- "type": "uint64"
3117
- },
3118
- {
3119
- "internalType": "string",
3120
- "name": "name",
3121
- "type": "string"
3122
- },
3123
- {
3124
- "internalType": "StateId",
3125
- "name": "newState",
3126
- "type": "uint8"
3127
- }
3128
- ],
3129
- "name": "updateRole",
3130
- "outputs": [],
3131
- "stateMutability": "nonpayable",
3132
- "type": "function"
3133
- },
3134
- {
3135
- "inputs": [
3136
- {
3137
- "internalType": "RoleId",
3138
- "name": "roleId",
3139
- "type": "uint64"
3140
- },
3141
- {
3142
- "internalType": "StateId",
3143
- "name": "newState",
3144
- "type": "uint8"
3145
- }
3146
- ],
3147
- "name": "updateRoleState",
3148
- "outputs": [],
3149
- "stateMutability": "nonpayable",
3150
- "type": "function"
3151
- }
3152
- ],
3153
- "bytecode": "0x60806040523480156200001157600080fd5b50604051620073e2380380620073e2833981016040819052620000349162001867565b6200003e620000cd565b6200004862000284565b62000052620003be565b6200005c6200062b565b6200009e6301ffc9a760e01b60005260046020527f9fe05126d2d9ecf60592e254dead906a4b2e492f36cca727682c38e9008c6ac1805460ff19166001179055565b600680546001600160a01b03191633908117909155620000c49084908490849062000772565b50505062001bc6565b60dc6000908152600160208190527f81c2bf9f7c6e8ac9bd8bcd9d323e94b867d2f5054aff8759d884773c680ec1ec805460ff19166064179055906002906200011460dc90565b60ff1660ff16815260200190815260200160002060006200013a620009dc60201b60201c565b60ff1660ff168152602001908152602001600020600062000160620009e160201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200019460dc90565b60ff1660ff1681526020019081526020016000206000620001ba620009e160201b60201c565b60ff1660ff1681526020019081526020016000206000620001e0620009dc60201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200021460dc90565b60ff1660ff16815260200190815260200160002060006200023a620009e160201b60201c565b60ff1660ff168152602001908152602001600020600062000260620009e660201b60201c565b60ff1681526020810191909152604001600020805460ff1916911515919091179055565b7f1bd07f61ef326b4de236f5b68f225f46ff76ee2c375ae31a06da201c49c70c128054606460ff1991821681179092557f879b65b464eb639409179c76c21acf6fbada740970e2300d47ea857d08cacd3c8054909116600190811790915560009182526002602052907f7673bcbb3401a7cbae68f81d40eea2cf35afdaf7ecd016ebf3f02857fcc1260a9062000318606e90565b60ff1660ff16815260200190815260200160002060006200033e620009dc60201b60201c565b60ff16815260208101919091526040016000908120805460ff19169215159290921790915560019060029062000372606490565b60ff1660ff168152602001908152602001600020600062000398620009e160201b60201c565b60ff1660ff168152602001908152602001600020600062000260620009eb60201b60201c565b60d26000908152600160208190527fcfa08e49dd9e66a4af3cdf0c2ef56f411154768307cac6dc23ee77c0386825be805460ff1916600a179055906002906200040560d290565b60ff1660ff16815260200190815260200160002060006200042b620009f060201b60201c565b60ff1660ff168152602001908152602001600020600062000451620009f560201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200048560d290565b60ff1660ff1681526020019081526020016000206000620004ab620009f060201b60201c565b60ff1660ff1681526020019081526020016000206000620004d1620009fa60201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200050560d290565b60ff1660ff16815260200190815260200160002060006200052b620009f060201b60201c565b60ff1660ff168152602001908152602001600020600062000551620009ff60201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200058560d290565b60ff1660ff1681526020019081526020016000206000620005ab620009ff60201b60201c565b60ff1660ff1681526020019081526020016000206000620005d1620009dc60201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200060560d290565b60ff1660ff16815260200190815260200160002060006200023a620009dc60201b60201c565b60c86000908152600160208190527f345f7c6c888721344af4147de0834159e0b302300ba13c4e7b6c0b60d8f2314e805460ff19166064179055906002906200067260c890565b60ff1660ff168152602001908152602001600020600062000698620009dc60201b60201c565b60ff1660ff1681526020019081526020016000206000620006be620009e160201b60201c565b60ff16815260208101919091526040016000908120805460ff191692151592909217909155600190600290620006f260c890565b60ff1660ff168152602001908152602001600020600062000718620009e160201b60201c565b60ff1660ff16815260200190815260200160002060006200073e620009dc60201b60201c565b60ff16815260208101919091526040016000908120805460ff1916921515929092179091556001906002906200037260c890565b600654600160a01b900460ff1615620007e95760405162461bcd60e51b815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201526d195b881a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b620007f48462000a04565b600b80546001600160a01b0319166001600160a01b0386161790556040516368aebf7b60e01b815260006004820152620008b49073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af415801562000865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200088b9190620018c1565b60408051808201909152600981526841646d696e526f6c6560b81b602082015260008062000a7f565b6040516368aebf7b60e01b81526001600160401b036004820152620009609073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af415801562000910573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009369190620018c1565b60408051808201909152600a8152695075626c6963526f6c6560b01b602082015260008062000a7f565b62000987838360466000856040518060200160405280600081525062000b6560201b60201c565b639f07a2f160e01b60005260046020527f98b2b8de78dda36b7dee248bec98f420711551cc2fa8e29eebd0984244713eb6805460ff1916600117905550506006805460ff60a01b1916600160a01b1790555050565b606490565b606e90565b60c890565b60d290565b600a90565b601490565b601e90565b602890565b60005460ff161562000a645760405162461bcd60e51b815260206004820152602260248201527f4163636573734d616e616765643a20616c726561647920696e697469616c697a604482015261195960f21b6064820152608401620007e0565b62000a6f8162000c78565b506000805460ff19166001179055565b801562000a965762000a9384848462000cd4565b50505b600062000aa585858562000f5e565b8051600090815260076020526040812080546001600160401b0319166001600160401b038981169182179092556009805460018101825593527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af6004840401805460039094166008026101000a928302199093169102179055905062000b5e62000b2f8662000f9a565b604080518451602080830191909152850151151581830152815180820383018152606090910190915262001022565b5050505050565b62000ba76301ffc9a760e01b60005260046020527f9fe05126d2d9ecf60592e254dead906a4b2e492f36cca727682c38e9008c6ac1805460ff19166001179055565b62000bb3828762001032565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166001600160681b0319909116176c0100000000000000000000000060ff8816021760ff60681b19166d01000000000000000000000000008615150217815590506001810162000c32838262001998565b506303fb044760e21b60005260046020527f91a409085efa2cad9dad64790cb14ef1d9b61e9173e901d74242d27ef0ced4a1805460ff1916600117905550505050505050565b60008054610100600160a81b0319166101006001600160a01b038416908102919091179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6000808062000ce38662000f9a565b905062000cf081620010b0565b9250821562000d255762000d04816200113e565b80602001905181019062000d19919062001a75565b60200151915062000d29565b8391505b856001600160401b038116158062000d4957506001600160401b03818116145b1562000d745760405163981bf42160e01b81526001600160401b0388166004820152602401620007e0565b82801562000d8c57506127106001600160401b038216105b1562000db757604051633119b9df60e21b81526001600160401b0388166004820152602401620007e0565b82801562000dd057506127106001600160401b03821610155b1562000dfb5760405163094fb39160e01b81526001600160401b0388166004820152602401620007e0565b600062000e0887620011eb565b905062000e15816200122e565b60000362000e42576040516321ab17ab60e01b81526001600160401b0389166004820152602401620007e0565b60008181526007602090815260409182902054825163bc1b392d60e01b8152925162000ee9936001600160401b039092169273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9263bc1b392d92600480830193928290030181865af415801562000eb1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ed79190620018c1565b6001600160401b039081169116141590565b801562000f1057506000818152600760205260409020546001600160401b03898116911614155b1562000f535760008181526007602052604090819020549051631660fb9360e21b81526001600160401b03909116600482015260248101829052604401620007e0565b505050935093915050565b604080518082018252600080825260208201528151808301909252908062000f8685620011eb565b815260200183151581525090509392505050565b604051630f37f38f60e41b81526001600160401b038216600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063f37f38f090602401602060405180830381865af415801562000ff6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200101c919062001ace565b92915050565b6200102e828262001257565b5050565b6001600160a01b0382166200108a5760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e6572206973203000006044820152606401620007e0565b600680546001600160a01b0319166001600160a01b0384161790556200102e816200168f565b60008181526003602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024015b602060405180830381865af415801562001118573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200101c919062001ae8565b6000818152600360205260409020600101805460609190620011609062001909565b80601f01602080910402602001604051908101604052809291908181526020018280546200118e9062001909565b8015620011df5780601f10620011b357610100808354040283529160200191620011df565b820191906000526020600020905b815481529060010190602001808311620011c157829003601f168201915b50505050509050919050565b600080829050601f8151111562001219578260405163305a27a960e01b8152600401620007e0919062001b06565b8051620012268262001b56565b179392505050565b600060ff8216601f8111156200101c57604051632cd44ac360e21b815260040160405180910390fd5b604051634b00e98f60e11b81526004810183905260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015620012ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012d1919062001b7b565b60405163b2466acf60e01b815260ff8216600482015290915073__$fb4566b39bd2075cb32f600f6f40bfaef2$__9063b2466acf90602401602060405180830381865af415801562001327573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200134d919062001ae8565b6200139b5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4b56532d3031303a545950455f554e444546494e4544000000006044820152606401620007e0565b600083815260036020526040908190208054915163037c8cb160e51b815261010090920460ff1660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af415801562001405573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200142b919062001ae8565b620014795760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3031323a414c52454144595f435245415445440000006044820152606401620007e0565b334360006200148885620017fc565b62001495576064620014ab565b60ff808616600090815260016020526040902054165b845460ff87811661ffff1990921691909117610100918316919091021762010000600160d01b031916620100006001600160a01b0386160263ffffffff60b01b191617600160b01b63ffffffff85169081029190911763ffffffff60d01b1916600160d01b91909102178555600088815260036020526040902090915060010162001537878262001998565b50604051634b00e98f60e11b8152600481018890527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015620015ab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015d1919062001b7b565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af415801562001622573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001648919062001ba0565b6040805160ff938416815260ff19929092166020830152918416818301526001600160a01b038616606082015232608082015290519081900360a00190a150505050505050565b6005546001600160a01b031615620016ca5760055460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401620007e0565b6001600160a01b038116620016f25760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b6000036200172a5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401620007e0565b600580546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526376ceea7360e01b60048201526301ffc9a790602401602060405180830381865afa925050508015620017a7575060408051601f3d908101601f19168201909252620017a49181019062001ae8565b60015b620017d15760405163fdeac91f60e01b81526001600160a01b0382166004820152602401620007e0565b806200102e5760405163fdeac91f60e01b81526001600160a01b0383166004820152602401620007e0565b60ff81811660009081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401620010fa565b80516001600160a01b03811681146200186257600080fd5b919050565b6000806000606084860312156200187d57600080fd5b62001888846200184a565b925062001898602085016200184a565b60408501519092506001600160601b0381168114620018b657600080fd5b809150509250925092565b600060208284031215620018d457600080fd5b81516001600160401b0381168114620018ec57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200191e57607f821691505b6020821081036200193f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200199357600081815260208120601f850160051c810160208610156200196e5750805b601f850160051c820191505b818110156200198f578281556001016200197a565b5050505b505050565b81516001600160401b03811115620019b457620019b4620018f3565b620019cc81620019c5845462001909565b8462001945565b602080601f83116001811462001a045760008415620019eb5750858301515b600019600386901b1c1916600185901b1785556200198f565b600085815260208120601f198616915b8281101562001a355788860151825594840194600190910190840162001a14565b508582101562001a545787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b805180151581146200186257600080fd5b60006040828403121562001a8857600080fd5b604080519081016001600160401b038111828210171562001aad5762001aad620018f3565b6040528251815262001ac26020840162001a64565b60208201529392505050565b60006020828403121562001ae157600080fd5b5051919050565b60006020828403121562001afb57600080fd5b620018ec8262001a64565b600060208083528351808285015260005b8181101562001b355785810183015185820160400152820162001b17565b506000604082860101526040601f19601f8301168501019250505092915050565b805160208083015191908110156200193f5760001960209190910360031b1b16919050565b60006020828403121562001b8e57600080fd5b815160ff81168114620018ec57600080fd5b60006020828403121562001bb357600080fd5b815160ff1981168114620018ec57600080fd5b61580c8062001bd66000396000f3fe608060405234801561001057600080fd5b506004361061048b5760003560e01c80637a41580211610262578063b428b0b011610151578063cd50b97e116100ce578063e8951ee611610092578063e8951ee6146105b6578063e9e96c7014610aca578063f48016ce14610b08578063f7bc431c14610b1b578063f8b648ac1461066a578063fe1f18d614610b2e57600080fd5b8063cd50b97e14610a7e578063d2f21a2914610a91578063d5b221bd146105e4578063d78a83b114610aa4578063dee3262314610ab757600080fd5b8063bd5947e311610115578063bd5947e314610a3a578063bf1db3f914610a4d578063bf7e214f14610a60578063c2f1a2d2146105e4578063ca600b1c14610a7657600080fd5b8063b428b0b0146109ee578063b68ec1461461066a578063b7d2b16214610a01578063bc8d400014610a14578063bd4fe04e14610a2757600080fd5b80638fb36037116101df5780639df0280b116101a35780639df0280b146105b6578063a13df2ab14610904578063a5961b4c14610917578063a76ee018146109c8578063a8989675146109db57600080fd5b80638fb3603714610897578063950ad70b146108b8578063976b0a77146108cb5780639a960d52146108de5780639d7421f4146108f157600080fd5b806386f0c47b1161022657806386f0c47b1461083c5780638793a9ac1461085c578063893d20e81461086f5780638dc77f42146105b65780638eaa6ac01461087757600080fd5b80637a415802146105e45780637a9e5e4b146108035780637cef48421461081657806382f65adb1461066a578063835933c91461082957600080fd5b806338a699a41161037e5780635d4345cc116102fb5780636b9bf08b116102bf5780636b9bf08b146107c55780636fa29853146107cd57806373539127146107d557806375b238fc146107e857806375c82776146107f057600080fd5b80635d4345cc146105b65780635dfa73db1461076b5780636071a68e14610774578063644c45e01461078757806364c55d9c146107b257600080fd5b806340529b0f1161034257806340529b0f146105b6578063468a18671461071457806354f6127f1461072757806357f96805146107475780635ab1bd531461075a57600080fd5b806338a699a4146106ad578063392f5f64146106c05780633ca7c02a146106c85780633fc5ab98146106ee5780633fd855611461070157600080fd5b8063167bd3951161040c5780632f61088a116103d05780632f61088a1461064457806331d311a71461065757806333bb0a971461066a57806337f135d71461067d578063384c9a571461069a57600080fd5b8063167bd395146105d15780631c45fe7a146105e45780631e23a2f5146105f75780631eff4b221461060a57806322f46b841461063157600080fd5b80630d358181116104535780630d358181146105675780630f526f7d1461058d5780630fec111c146105a057806310203d2c146105b6578063138461e0146105c957600080fd5b806301ffc9a71461049057806302cd3071146104d257806303014974146104f757806309648a9d146105185780630b24cf5f14610552575b600080fd5b6104bd61049e366004613def565b6001600160e01b03191660009081526004602052604090205460ff1690565b60405190151581526020015b60405180910390f35b600c546001600160a01b03165b6040516001600160a01b0390911681526020016104c9565b61050a610505366004613e2e565b610b41565b6040519081526020016104c9565b610540610526366004613e4b565b600090815260036020526040902054610100900460ff1690565b60405160ff90911681526020016104c9565b610565610560366004614078565b610b68565b005b6105406105753660046140bd565b60ff9081166000908152600160205260409020541690565b61056561059b3660046140da565b610bac565b6105a8610bc9565b6040516104c9929190614163565b6105656105c43660046140da565b610d4b565b610565610d60565b6105656105df36600461420a565b610f82565b6105656105f2366004614360565b61102a565b6105656106053660046143d4565b61106b565b61050a7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b61056561063f366004614435565b611091565b6105656106523660046144ff565b6110a7565b61050a610665366004614544565b611142565b610565610678366004614561565b6111d3565b610685600081565b60405163ffffffff90911681526020016104c9565b6104bd6106a8366004613e2e565b6111fe565b6104bd6106bb366004613e4b565b611394565b60095461050a565b6106d66001600160401b0381565b6040516001600160401b0390911681526020016104c9565b6105656106fc366004614679565b61141f565b6106d661070f366004613e4b565b611445565b61050a6107223660046146dc565b61148a565b61073a610735366004613e4b565b6114e7565b6040516104c991906146f9565b6105656107553660046147af565b61158c565b6005546001600160a01b03166104df565b6106d661271081565b6105656107823660046147dd565b6115b4565b600554600160a01b90046001600160601b03166040516001600160601b0390911681526020016104c9565b6105656107c03660046148f4565b6115da565b6104df611602565b6104df61169a565b6105656107e3366004614935565b6116fa565b6106d6600081565b6105656107fe3660046149a6565b611722565b610565610811366004614544565b611748565b6105656108243660046149fe565b6117c3565b61050a610837366004613e2e565b61184d565b61084f61084a366004613e2e565b611890565b6040516104c99190614a1c565b61056561086a366004614a35565b611935565b6104df61194a565b61088a610885366004613e4b565b611a27565b6040516104c99190614a9d565b61089f611b68565b6040516001600160e01b031990911681526020016104c9565b6105656108c6366004614ad1565b611b8c565b6105656108d9366004614b18565b611bee565b6105656108ec366004614cb6565b611e16565b6105656108ff366004614cfd565b611e3c565b61050a6109123660046146dc565b611e62565b6109bb610925366004613e4b565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260036020908152604091829020825160a081018452905460ff8082168352610100820416928201929092526001600160a01b03620100008304169281019290925263ffffffff600160b01b820481166060840152600160d01b90910416608082015290565b6040516104c99190614d54565b6105656109d6366004614d62565b611e8f565b6105656109e9366004614da9565b611f2a565b6104bd6109fc366004614de9565b61201b565b6104bd610a0f366004614de9565b61220f565b610565610a22366004614e17565b61239a565b610565610a35366004614e5c565b6123c0565b610565610a48366004614e9d565b6123e8565b6104bd610a5b3660046140bd565b612410565b60005461010090046001600160a01b03166104df565b6104df61245d565b610565610a8c366004614435565b6124bb565b610565610a9f3660046140da565b6124d2565b6104df610ab2366004614edd565b6124e9565b610565610ac53660046140da565b612512565b6104bd610ad8366004614da9565b60ff9283166000908152600260209081526040808320948616835293815283822092851682529190915220541690565b61050a610b16366004614f19565b612529565b610565610b29366004614544565b6125ad565b610565610b3c3660046140da565b612629565b6001600160401b0381166000908152600860205260408120610b629061263e565b92915050565b610b75335b600036612648565b610ba8610b8383607861275b565b82604051602001610b949190614f47565b6040516020818303038152906040526127a7565b5050565b610bb533610b6d565b610ba8610bc383608c61275b565b826127b1565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e00160405280610c4c6005546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610c9461194a565b6001600160a01b03168152602001826001018054610cb190614fa7565b80601f0160208091040260200160405190810160405280929190818152602001828054610cdd90614fa7565b8015610d2a5780601f10610cff57610100808354040283529160200191610d2a565b820191906000526020600020905b815481529060010190602001808311610d0d57829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b610d5433610b6d565b610ba8610bc38361148a565b6005546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610dc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de69190614fe1565b15610e2d576005546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6005546001600160a01b0316610e565760405163cf29926160e01b815260040160405180910390fd5b60055460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec39190614fe1565b610eeb576040516372657a5160e01b81526001600160a01b0382166004820152602401610e24565b600554604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f599190614ffe565b600560146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b610f8b33610b6d565b610f976106bb83611142565b610fbf576040516325b6f39560e21b81526001600160a01b0383166004820152602401610e24565b600b5460405163167bd39560e01b81526001600160a01b03848116600483015283151560248301529091169063167bd39590604401600060405180830381600087803b15801561100e57600080fd5b505af1158015611022573d6000803e3d6000fd5b505050505050565b61103333610b6d565b61106561103f8561148a565b83604051602001611050919061501b565b604051602081830303815290604052836127bb565b50505050565b61107433610b6d565b610ba861108083611142565b82604051602001610b949190614a1c565b61109a33610b6d565b610ba882826001806127c6565b6110b033610b6d565b6040516355ee627560e01b81526001600160c01b031983166004820152610ba89073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af415801561110d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611131919061506e565b82604051602001610b949190615087565b604051637a400b6760e11b8152601e6004820152606082901b6bffffffffffffffffffffffff1916602482015260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063f48016ce906044015b602060405180830381865af41580156111af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b62919061506e565b6111dc33610b6d565b6111f96111e88461148a565b82604051602001610b94919061501b565b505050565b6000338161120b8461184d565b905061121681611394565b61123d57604051627a416f60e01b81526001600160401b0385166004820152602401610e24565b6001600160401b038416600090815260086020526040902061125f908361286f565b1561138a57600b54604051631517388760e21b81526001600160401b03861660048201526001600160a01b039091169063fe0776f59073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f591906150b5565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0385166024820152604401600060405180830381600087803b15801561134557600080fd5b505af1158015611359573d6000803e3d6000fd5b5050506001600160401b038516600090815260086020526040902061137f915083612891565b506001949350505050565b5060009392505050565b60008181526003602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024015b602060405180830381865af41580156113fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190614fe1565b61142833610b6d565b6111f961143484611e62565b8360405160200161105091906150d2565b60006009828154811061145a5761145a615186565b90600052602060002090600491828204019190066008029054906101000a90046001600160401b03169050919050565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660d25b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401611192565b600081815260036020526040902060010180546060919061150790614fa7565b80601f016020809104026020016040519081016040528092919081815260200182805461153390614fa7565b80156115805780601f1061155557610100808354040283529160200191611580565b820191906000526020600020905b81548152906001019060200180831161156357829003601f168201915b50505050509050919050565b61159533610b6d565b610ba86115a383608c61275b565b82604051602001610b94919061519c565b6115bd33610b6d565b610ba86115c983611e62565b82604051602001610b9491906150d2565b6115e333610b6d565b6111f96115f184606e61275b565b83604051602001611050919061523f565b6005546040805163a3bcd81d60e01b81526004810191909152600b60448201526a506f6f6c5365727669636560a81b6064820152600360248201526000916001600160a01b03169063a3bcd81d906084015b602060405180830381865afa158015611671573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116959190615341565b905090565b6005546040805163a3bcd81d60e01b815260048101919091526015604482015274436f6d706f6e656e744f776e65725365727669636560581b6064820152600360248201526000916001600160a01b03169063a3bcd81d90608401611654565b61170333610b6d565b610ba861171183606e61275b565b82604051602001610b94919061523f565b61172b33610b6d565b6110656117378561148a565b83604051602001611050919061535e565b600054339061010090046001600160a01b031681146117845760405162d1953b60e31b81526001600160a01b0382166004820152602401610e24565b816001600160a01b03163b6000036117ba576040516361798f2f60e11b81526001600160a01b0383166004820152602401610e24565b610ba8826128a6565b6117cc33610b6d565b6040516355ee627560e01b81526001600160c01b031983166004820152610ba89073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af4158015611829573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc3919061506e565b604051630f37f38f60e41b81526001600160401b038216600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063f37f38f090602401611192565b604080518082018252600080825260208201529051630f37f38f60e41b81526001600160401b03831660048201526119229073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063f37f38f090602401602060405180830381865af41580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610735919061506e565b806020019051810190610b62919061538e565b61193e33610b6d565b610ba8610bc38361184d565b6005546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156119af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d39190614fe1565b15611a1757600554604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401611654565b506006546001600160a01b031690565b6040805160e081018252600091810182815260608083018490526080830184905260a0830184905260c083019390935281526020810191909152600082815260036020908152604091829020825160e081018452815460ff80821695830195865261010082041660608301526001600160a01b0362010000820416608083015263ffffffff600160b01b8204811660a0840152600160d01b9091041660c08201529283526001810180549192840191611adf90614fa7565b80601f0160208091040260200160405190810160405280929190818152602001828054611b0b90614fa7565b8015611b585780601f10611b2d57610100808354040283529160200191611b58565b820191906000526020600020905b815481529060010190602001808311611b3b57829003601f168201915b5050505050815250509050919050565b60008054600160a81b900460ff16611b805750600090565b50638fb3603760e01b90565b611b9533610b6d565b6000611ba384846000612902565b5090506000611bb3858584612b6d565b9050611be7611bc18661184d565b82604051602001611bd29190614a1c565b604051602081830303815290604052856127bb565b5050505050565b600654600160a01b900460ff1615611c5f5760405162461bcd60e51b815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201526d195b881a5b9a5d1a585b1a5e995960921b6064820152608401610e24565b611c6884612ba9565b600b80546001600160a01b0319166001600160a01b0386161790556040516368aebf7b60e01b815260006004820152611d259073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af4158015611cd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfb91906150b5565b6040518060400160405280600981526020016841646d696e526f6c6560b81b8152506000806127c6565b6040516368aebf7b60e01b81526001600160401b036004820152611dce9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af4158015611d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da391906150b5565b6040518060400160405280600a8152602001695075626c6963526f6c6560b01b8152506000806127c6565b611ded8383604660008560405180602001604052806000815250612c20565b611dfd639f07a2f160e01b612cf5565b50506006805460ff60a01b1916600160a01b1790555050565b611e1f33610b6d565b6111f9611e2b8461148a565b8360405160200161105091906153c6565b611e4533610b6d565b6111f9611e518461148a565b82604051602001610b94919061535e565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660dc6114b3565b611e9833610b6d565b6040516355ee627560e01b81526001600160c01b0319841660048201526111f99073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af4158015611ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f19919061506e565b836040516020016110509190615087565b60ff8381166000908152600160205260409081902054905163037c8cb160e51b81529116600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015611f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb39190614fe1565b15611fbd57505050565b60ff8084166000908152600260209081526040808320868516845282528083208585168452909152902054166111f957604051636bb20ea760e01b815260ff8085166004830152808416602483015282166044820152606401610e24565b600061202633610b6d565b60006120318461184d565b905061203c81611394565b61206457604051636777365b60e01b81526001600160401b0385166004820152602401610e24565b60008181526003602052604090205461209390610100900460ff16612087606490565b60ff9081169116141590565b156120bc5760405163fe229d5d60e01b81526001600160401b0385166004820152602401610e24565b6001600160401b03841660009081526008602052604090206120de908461286f565b61138a57600b54604051631517388760e21b81526001600160401b03861660048201526001600160a01b03909116906325c471a09073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af415801561214f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217391906150b5565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038616602482015260006044820152606401600060405180830381600087803b1580156121ca57600080fd5b505af11580156121de573d6000803e3d6000fd5b5050506001600160401b0385166000908152600860205260409020612204915084612d1a565b506001915050610b62565b600061221a33610b6d565b60006122258461184d565b905061223081611394565b61225857604051634cee277360e11b81526001600160401b0385166004820152602401610e24565b6001600160401b038416600090815260086020526040902061227a908461286f565b1561138a57600b54604051631517388760e21b81526001600160401b03861660048201526001600160a01b039091169063b7d2b1629073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156122ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061231091906150b5565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0386166024820152604401600060405180830381600087803b15801561236057600080fd5b505af1158015612374573d6000803e3d6000fd5b5050506001600160401b0385166000908152600860205260409020612204915084612891565b6123a333610b6d565b610ba86123af8361148a565b82604051602001610b9491906153c6565b6123c933610b6d565b6111f96123d784608c61275b565b83604051602001611050919061519c565b6123f133610b6d565b6111f96123ff84607861275b565b836040516020016110509190614f47565b60ff81811660009081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024016113de565b6005546040805163a3bcd81d60e01b815260048101919091526013604482015272446973747269627574696f6e5365727669636560681b6064820152600360248201526000916001600160a01b03169063a3bcd81d90608401611654565b6124c433610b6d565b610ba88282600060016127c6565b6124db33610b6d565b610ba8610bc383607861275b565b6001600160401b038216600090815260086020526040812061250b9083612d2f565b9392505050565b61251b33610b6d565b610ba8610bc383606e61275b565b604051637a400b6760e11b815260ff8316600482015260ff198216602482015260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063f48016ce906044015b602060405180830381865af4158015612589573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250b919061506e565b6125b633610b6d565b600c546001600160a01b0316156126075760405162461bcd60e51b8152602060048201526015602482015274125b9cdd185b98d954995859195c881a5cc81cd95d605a1b6044820152606401610e24565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b61263233610b6d565b610ba8610bc383611e62565b6000610b62825490565b6000806126846126666000546001600160a01b036101009091041690565b863061267660046000898b615507565b61267f91615531565b612d3b565b9150915081611be75763ffffffff811615612738576000805460ff60a81b1916600160a81b1790556126c46000546001600160a01b036101009091041690565b6001600160a01b03166394c7d7ee8686866040518463ffffffff1660e01b81526004016126f393929190615561565b600060405180830381600087803b15801561270d57600080fd5b505af1158015612721573d6000803e3d6000fd5b50506000805460ff60a81b1916905550611be79050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610e24565b604051630711349960e31b81526001600160601b038316600482015260ff8216602482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c89060440161256c565b610ba88282612e47565b610ba88282613269565b6111f983838361359d565b80156127da576127d7848484612902565b50505b60006127e7858585612b6d565b80516000908152600760205260408120805467ffffffffffffffff19166001600160401b038981169182179092556009805460018101825593527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af6004840401805460039094166008026101000a9283021990931691021790559050611be76110808661184d565b6001600160a01b0381166000908152600183016020526040812054151561250b565b600061250b836001600160a01b038416613a38565b60008054610100600160a81b0319166101006001600160a01b038416908102919091179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b60008060006129108661184d565b905061291b81611394565b9250821561294a5761292c816114e7565b80602001905181019061293f919061538e565b60200151915061294e565b8391505b856001600160401b038116158061296d57506001600160401b03818116145b156129965760405163981bf42160e01b81526001600160401b0388166004820152602401610e24565b8280156129ad57506127106001600160401b038216105b156129d657604051633119b9df60e21b81526001600160401b0388166004820152602401610e24565b8280156129ee57506127106001600160401b03821610155b15612a175760405163094fb39160e01b81526001600160401b0388166004820152602401610e24565b6000612a2287613b32565b9050612a2d81613b70565b600003612a58576040516321ab17ab60e01b81526001600160401b0389166004820152602401610e24565b60008181526007602090815260409182902054825163bc1b392d60e01b81529251612afb936001600160401b039092169273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9263bc1b392d92600480830193928290030181865af4158015612ac5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae991906150b5565b6001600160401b039081169116141590565b8015612b2157506000818152600760205260409020546001600160401b03898116911614155b15612b625760008181526007602052604090819020549051631660fb9360e21b81526001600160401b03909116600482015260248101829052604401610e24565b505050935093915050565b60408051808201909152600080825260208201526040518060400160405280612b9585613b32565b815260200183151581525090509392505050565b60005460ff1615612c075760405162461bcd60e51b815260206004820152602260248201527f4163636573734d616e616765643a20616c726561647920696e697469616c697a604482015261195960f21b6064820152608401610e24565b612c10816128a6565b506000805460ff19166001179055565b612c616301ffc9a760e01b60005260046020527f9fe05126d2d9ecf60592e254dead906a4b2e492f36cca727682c38e9008c6ac1805460ff19166001179055565b612c6b8287613b98565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b86151502178155905060018101612cdb83826155e7565b50612cec6303fb044760e21b612cf5565b50505050505050565b6001600160e01b0319166000908152600460205260409020805460ff19166001179055565b600061250b836001600160a01b038416613c12565b600061250b8383613c61565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251612daa91906156a6565b600060405180830381855afa9150503d8060008114612de5576040519150601f19603f3d011682016040523d82523d6000602084013e612dea565b606091505b50915091508115612e3c576040815110612e1c5780806020019051810190612e1291906156c2565b9094509250612e3c565b6020815110612e3c5780806020019051810190612e399190614fe1565b93505b505094509492505050565b604051634b00e98f60e11b81526004810183905260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015612e9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ebe91906156f1565b60405163b2466acf60e01b815260ff8216600482015290915073__$fb4566b39bd2075cb32f600f6f40bfaef2$__9063b2466acf90602401602060405180830381865af4158015612f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f379190614fe1565b612f835760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4b56532d3031303a545950455f554e444546494e4544000000006044820152606401610e24565b600083815260036020526040908190208054915163037c8cb160e51b815261010090920460ff1660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015612fec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130109190614fe1565b61305c5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3031323a414c52454144595f435245415445440000006044820152606401610e24565b3343600061306985612410565b61307457606461308a565b60ff808616600090815260016020526040902054165b845460ff87811661ffff1990921691909117610100918316919091021762010000600160d01b031916620100006001600160a01b0386160263ffffffff60b01b191617600160b01b63ffffffff85169081029190911763ffffffff60d01b1916600160d01b91909102178555600088815260036020526040902090915060010161311487826155e7565b50604051634b00e98f60e11b8152600481018890527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015613187573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ab91906156f1565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af41580156131fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061321f919061570e565b6040805160ff938416815260ff199092166020830152918416918101919091526001600160a01b038516606082015232608082015260a0015b60405180910390a150505050505050565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af41580156132bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132df9190614fe1565b61332b5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3034303a53544154455f554e444546494e45440000006044820152606401610e24565b600082815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015613397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133bb9190614fe1565b6134075760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3034313a4e4f545f4558495354494e470000000000006044820152606401610e24565b8154620100003390810262010000600160b01b031960ff87166101000216610100600160b01b03198416171784559063ffffffff600160b01b9091041661344b4390565b845463ffffffff91909116600160b01b0263ffffffff60b01b19909116178455604051634b00e98f60e11b8152600481018790527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af41580156134dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061350191906156f1565b604051630713cfad60e31b81526004810189905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015613551573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613575919061570e565b878686328760405161358d979695949392919061572b565b60405180910390a1505050505050565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af41580156135ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136139190614fe1565b61365f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3032303a53544154455f554e444546494e45440000006044820152606401610e24565b600083815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af41580156136cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ef9190614fe1565b61373b5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3032313a4e4f545f4558495354494e470000000000006044820152606401610e24565b600085815260036020526040902060010161375685826155e7565b508154620100003390810262010000600160b01b031960ff87166101000216610100600160b01b03198416171784559063ffffffff600160b01b9091041661379b4390565b845463ffffffff91909116600160b01b0263ffffffff60b01b19909116178455604051634b00e98f60e11b8152600481018890527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af415801561382d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061385191906156f1565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af41580156138a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c5919061570e565b87868632876040516138dd979695949392919061572b565b60405180910390a1604051634b00e98f60e11b8152600481018890527f7bd0ab7f1746bd20a814d6705a46876c84f1aa2d35c80d8c173e268bd6d4b26c9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015613957573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061397b91906156f1565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af41580156139cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139ef919061570e565b6040805160ff938416815260ff199092166020830152918816918101919091526001600160a01b038416606082015232608082015263ffffffff831660a082015260c001613258565b60008181526001830160205260408120548015613b21576000613a5c60018361577b565b8554909150600090613a709060019061577b565b9050808214613ad5576000866000018281548110613a9057613a90615186565b9060005260206000200154905080876000018481548110613ab357613ab3615186565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613ae657613ae661579c565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b62565b6000915050610b62565b5092915050565b600080829050601f81511115613b5d578260405163305a27a960e01b8152600401610e2491906146f9565b8051613b68826157b2565b179392505050565b600060ff8216601f811115610b6257604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b038216613bee5760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e6572206973203000006044820152606401610e24565b600680546001600160a01b0319166001600160a01b038416179055610ba881613c8b565b6000818152600183016020526040812054613c5957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b62565b506000610b62565b6000826000018281548110613c7857613c78615186565b9060005260206000200154905092915050565b6005546001600160a01b031615613cc45760055460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401610e24565b6001600160a01b038116613ceb5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b600003613d215760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610e24565b600580546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526376ceea7360e01b60048201526301ffc9a790602401602060405180830381865afa925050508015613d9b575060408051601f3d908101601f19168201909252613d9891810190614fe1565b60015b613dc35760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610e24565b80610ba85760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610e24565b50565b600060208284031215613e0157600080fd5b81356001600160e01b03198116811461250b57600080fd5b6001600160401b0381168114613dec57600080fd5b600060208284031215613e4057600080fd5b813561250b81613e19565b600060208284031215613e5d57600080fd5b5035919050565b6001600160601b0381168114613dec57600080fd5b8035613e8481613e64565b919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613ec157613ec1613e89565b60405290565b604051608081016001600160401b0381118282101715613ec157613ec1613e89565b60405161012081016001600160401b0381118282101715613ec157613ec1613e89565b60405161010081016001600160401b0381118282101715613ec157613ec1613e89565b60405161014081016001600160401b0381118282101715613ec157613ec1613e89565b60405161020081016001600160401b0381118282101715613ec157613ec1613e89565b6001600160a01b0381168114613dec57600080fd5b8035613e8481613f75565b600060408284031215613fa757600080fd5b613faf613e9f565b9050813581526020820135602082015292915050565b8015158114613dec57600080fd5b8035613e8481613fc5565b600060c08284031215613ff057600080fd5b60405160a081018181106001600160401b038211171561401257614012613e89565b604052905080823561402381613e64565b8152602083013561403381613f75565b60208201526140458460408501613f95565b6040820152608083013561405881613fc5565b606082015260a083013561406b81613f75565b6080919091015292915050565b60008060e0838503121561408b57600080fd5b823561409681613e64565b91506140a58460208501613fde565b90509250929050565b60ff81168114613dec57600080fd5b6000602082840312156140cf57600080fd5b813561250b816140ae565b600080604083850312156140ed57600080fd5b82356140f881613e64565b91506020830135614108816140ae565b809150509250929050565b60005b8381101561412e578181015183820152602001614116565b50506000910152565b6000815180845261414f816020860160208601614113565b601f01601f19169290920160200192915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff604085015116608083015260608401516141a760a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e06101008401526141ed610120840182614137565b905082810360208401526142018185614137565b95945050505050565b6000806040838503121561421d57600080fd5b823561422881613f75565b9150602083013561410881613fc5565b63ffffffff81168114613dec57600080fd5b600082601f83011261425b57600080fd5b81356001600160401b038082111561427557614275613e89565b604051601f8301601f19908116603f0116810190828211818310171561429d5761429d613e89565b816040528381528660208588010111156142b657600080fd5b836020870160208301376000602085830101528094505050505092915050565b803564ffffffffff81168114613e8457600080fd5b6000608082840312156142fd57600080fd5b614305613ec7565b9050813561431281614238565b81526020828101359082015260408201356001600160401b0381111561433757600080fd5b6143438482850161424a565b604083015250614355606083016142d6565b606082015292915050565b6000806000806080858703121561437657600080fd5b843561438181613e64565b9350602085013561439181614238565b925060408501356001600160401b038111156143ac57600080fd5b6143b8878288016142eb565b92505060608501356143c9816140ae565b939692955090935050565b60008082840360608112156143e857600080fd5b83356143f381613f75565b92506040601f198201121561440757600080fd5b50614410613e9f565b60208401358152604084013561442581613fc5565b6020820152919491935090915050565b6000806040838503121561444857600080fd5b823561445381613e19565b915060208301356001600160401b0381111561446e57600080fd5b61447a8582860161424a565b9150509250929050565b6001600160c01b031981168114613dec57600080fd5b8035613e8481614484565b6000604082840312156144b757600080fd5b6144bf613e9f565b905081356144cc81613e64565b815260208201356001600160401b038111156144e757600080fd5b6144f38482850161424a565b60208301525092915050565b6000806040838503121561451257600080fd5b823561451d81614484565b915060208301356001600160401b0381111561453857600080fd5b61447a858286016144a5565b60006020828403121561455657600080fd5b813561250b81613f75565b60008060006060848603121561457657600080fd5b833561458181613e64565b9250602084013561459181614238565b915060408401356001600160401b038111156145ac57600080fd5b6145b8868287016142eb565b9150509250925092565b600061014082840312156145d557600080fd5b6145dd613ee9565b90506145e882613e79565b81526145f78360208401613f95565b602082015260608201356001600160401b0381111561461557600080fd5b6146218482850161424a565b6040830152506080820135606082015260a0820135608082015260c082013560a082015260e082013560c082015261010061465d8184016142d6565b60e083015261466f61012084016142d6565b9082015292915050565b60008060006060848603121561468e57600080fd5b833561469981613e64565b925060208401356001600160401b038111156146b457600080fd5b6146c0868287016145c2565b92505060408401356146d1816140ae565b809150509250925092565b6000602082840312156146ee57600080fd5b813561250b81613e64565b60208152600061250b6020830184614137565b6000610160828403121561471f57600080fd5b614727613f0c565b905061473282613e79565b815261474060208301613f8a565b60208201526040820135604082015261475c8360608401613f95565b606082015261476e8360a08401613f95565b60808201526147808360e08401613f95565b60a08201526147926101208301613fd3565b60c08201526147a46101408301613f8a565b60e082015292915050565b60008061018083850312156147c357600080fd5b82356147ce81613e64565b91506140a5846020850161470c565b600080604083850312156147f057600080fd5b82356147fb81613e64565b915060208301356001600160401b0381111561481657600080fd5b61447a858286016145c2565b6000610200828403121561483557600080fd5b61483d613f2f565b905061484882613f8a565b815261485660208301613f8a565b602082015261486760408301613e79565b604082015261487860608301613e79565b606082015261488a8360808401613f95565b608082015261489c8360c08401613f95565b60a08201526101006148b084828501613f95565b60c08301526148c3846101408501613f95565b60e08301526148d6846101808501613f95565b908201526148e8836101c08401613f95565b61012082015292915050565b6000806000610240848603121561490a57600080fd5b833561491581613e64565b92506149248560208601614822565b91506102208401356146d1816140ae565b600080610220838503121561494957600080fd5b823561495481613e64565b91506140a58460208501614822565b60006080828403121561497557600080fd5b61497d613ec7565b9050813581526020820135602082015260408201356001600160401b0381111561433757600080fd5b600080600080608085870312156149bc57600080fd5b84356149c781613e64565b935060208501356149d781614238565b925060408501356001600160401b038111156149f257600080fd5b6143b887828801614963565b60008060408385031215614a1157600080fd5b82356140f881614484565b8151815260208083015115159082015260408101610b62565b60008060408385031215614a4857600080fd5b82356140f881613e19565b60ff815116825260ff602082015116602083015260018060a01b036040820151166040830152606081015163ffffffff808216606085015280608084015116608085015250505050565b60208152614aaf602082018351614a53565b6000602083015160c080840152614ac960e0840182614137565b949350505050565b600080600060608486031215614ae657600080fd5b8335614af181613e19565b925060208401356001600160401b03811115614b0c57600080fd5b6146c08682870161424a565b60008060008060808587031215614b2e57600080fd5b8435614b3981613f75565b93506020850135614b4981613f75565b92506040850135614b5981613e64565b915060608501356143c981613f75565b803561ffff81168114613e8457600080fd5b60006102008284031215614b8e57600080fd5b614b96613f52565b9050614ba182613e79565b8152614baf60208301613e79565b6020820152614bc06040830161449a565b6040820152614bd16060830161449a565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301356001600160401b0380821115614c1a57600080fd5b614c268683870161424a565b83850152610120925082850135915080821115614c4257600080fd5b50614c4f8582860161424a565b828401525050610140614c63818401614b69565b90820152610160614c75838201614b69565b9082015261018082810135908201526101a0614c928184016142d6565b908201526101c0614ca48382016142d6565b908201526101e061466f8382016142d6565b600080600060608486031215614ccb57600080fd5b8335614cd681613e64565b925060208401356001600160401b03811115614cf157600080fd5b6146c086828701614b7b565b600080600060608486031215614d1257600080fd5b8335614d1d81613e64565b92506020840135614d2d81614238565b915060408401356001600160401b03811115614d4857600080fd5b6145b886828701614963565b60a08101610b628284614a53565b600080600060608486031215614d7757600080fd5b8335614d8281614484565b925060208401356001600160401b03811115614d9d57600080fd5b6146c0868287016144a5565b600080600060608486031215614dbe57600080fd5b8335614dc9816140ae565b92506020840135614dd9816140ae565b915060408401356146d1816140ae565b60008060408385031215614dfc57600080fd5b8235614e0781613e19565b9150602083013561410881613f75565b60008060408385031215614e2a57600080fd5b8235614e3581613e64565b915060208301356001600160401b03811115614e5057600080fd5b61447a85828601614b7b565b60008060006101a08486031215614e7257600080fd5b8335614e7d81613e64565b9250614e8c856020860161470c565b91506101808401356146d1816140ae565b60008060006101008486031215614eb357600080fd5b8335614ebe81613e64565b9250614ecd8560208601613fde565b915060e08401356146d1816140ae565b60008060408385031215614ef057600080fd5b8235614efb81613e19565b946020939093013593505050565b60ff1981168114613dec57600080fd5b60008060408385031215614f2c57600080fd5b8235614f37816140ae565b9150602083013561410881614f09565b81516001600160601b031681526020808301516001600160a01b039081168284015260408085015180519185019190915291820151606084015260c0830191906060850151151560808501528060808601511660a0850152505092915050565b600181811c90821680614fbb57607f821691505b602082108103614fdb57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215614ff357600080fd5b815161250b81613fc5565b60006020828403121561501057600080fd5b815161250b81613e64565b6020815263ffffffff825116602082015260208201516040820152600060408301516080606084015261505160a0840182614137565b905064ffffffffff60608501511660808401528091505092915050565b60006020828403121561508057600080fd5b5051919050565b602081526001600160601b03825116602082015260006020830151604080840152614ac96060840182614137565b6000602082840312156150c757600080fd5b815161250b81613e19565b602081526150ec6020820183516001600160601b03169052565b6000602083015161510a604084018280518252602090810151910152565b506040830151610140806080850152615127610160850183614137565b9150606085015160a0850152608085015160c085015260a085015160e085015260c0850151610100818187015260e0870151915061516f61012087018364ffffffffff169052565b9095015164ffffffffff1693019290925250919050565b634e487b7160e01b600052603260045260246000fd5b81516001600160601b031681526020808301516001600160a01b031690820152604080830151908201526060808301516101608301916151e89084018280518252602090810151910152565b506080830151805160a0840152602081015160c08401525060a0830151805160e084015260208101516101008401525060c0830151151561012083015260e08301516001600160a01b038116610140840152613b2b565b81516001600160a01b031681526102008101602083015161526b60208401826001600160a01b03169052565b50604083015161528660408401826001600160601b03169052565b5060608301516152a160608401826001600160601b03169052565b5060808301516152be608084018280518252602090810151910152565b5060a0830151805160c0840152602081015160e08401525060c08301516101006152f48185018380518252602090810151910152565b60e085015180516101408601526020908101516101608601529085015180516101808601528101516101a085015261012085015180516101c0860152908101516101e08501529050613b2b565b60006020828403121561535357600080fd5b815161250b81613f75565b602081528151602082015260208201516040820152600060408301516080606084015261505160a0840182614137565b6000604082840312156153a057600080fd5b6153a8613e9f565b8251815260208301516153ba81613fc5565b60208201529392505050565b602081526153e06020820183516001600160601b03169052565b600060208301516153fc60408401826001600160601b03169052565b5060408301516001600160c01b0319811660608401525060608301516001600160c01b03198116608084015250608083015160a083015260a083015160c083015260c083015160e083015260e08301516101008181850152808501519150506102006101208181860152615474610220860184614137565b9250808601519050610140601f1986850301818701526154948483614137565b9350808701519150506101606154af8187018361ffff169052565b86015190506101806154c68682018361ffff169052565b8601516101a08681019190915286015190506101c06154ed8187018364ffffffffff169052565b86015190506101e061516f8682018364ffffffffff169052565b6000808585111561551757600080fd5b8386111561552457600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156155595780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b601f8211156111f957600081815260208120601f850160051c810160208610156155c85750805b601f850160051c820191505b81811015611022578281556001016155d4565b81516001600160401b0381111561560057615600613e89565b6156148161560e8454614fa7565b846155a1565b602080601f83116001811461564957600084156156315750858301515b600019600386901b1c1916600185901b178555611022565b600085815260208120601f198616915b8281101561567857888601518255948401946001909101908401615659565b50858210156156965787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516156b8818460208701614113565b9190910192915050565b600080604083850312156156d557600080fd5b82516156e081613fc5565b602084015190925061410881614238565b60006020828403121561570357600080fd5b815161250b816140ae565b60006020828403121561572057600080fd5b815161250b81614f09565b60ff978816815260ff1996909616602087015293861660408601529190941660608401526001600160a01b03938416608084015290921660a082015263ffffffff9190911660c082015260e00190565b81810381811115610b6257634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b80516020808301519190811015614fdb5760001960209190910360031b1b1691905056fea2646970667358221220593f78291c97f9c783ba3c7d30b71661d77526d126123c31bc23f8e6dbd5367964736f6c63430008140033",
3154
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061048b5760003560e01c80637a41580211610262578063b428b0b011610151578063cd50b97e116100ce578063e8951ee611610092578063e8951ee6146105b6578063e9e96c7014610aca578063f48016ce14610b08578063f7bc431c14610b1b578063f8b648ac1461066a578063fe1f18d614610b2e57600080fd5b8063cd50b97e14610a7e578063d2f21a2914610a91578063d5b221bd146105e4578063d78a83b114610aa4578063dee3262314610ab757600080fd5b8063bd5947e311610115578063bd5947e314610a3a578063bf1db3f914610a4d578063bf7e214f14610a60578063c2f1a2d2146105e4578063ca600b1c14610a7657600080fd5b8063b428b0b0146109ee578063b68ec1461461066a578063b7d2b16214610a01578063bc8d400014610a14578063bd4fe04e14610a2757600080fd5b80638fb36037116101df5780639df0280b116101a35780639df0280b146105b6578063a13df2ab14610904578063a5961b4c14610917578063a76ee018146109c8578063a8989675146109db57600080fd5b80638fb3603714610897578063950ad70b146108b8578063976b0a77146108cb5780639a960d52146108de5780639d7421f4146108f157600080fd5b806386f0c47b1161022657806386f0c47b1461083c5780638793a9ac1461085c578063893d20e81461086f5780638dc77f42146105b65780638eaa6ac01461087757600080fd5b80637a415802146105e45780637a9e5e4b146108035780637cef48421461081657806382f65adb1461066a578063835933c91461082957600080fd5b806338a699a41161037e5780635d4345cc116102fb5780636b9bf08b116102bf5780636b9bf08b146107c55780636fa29853146107cd57806373539127146107d557806375b238fc146107e857806375c82776146107f057600080fd5b80635d4345cc146105b65780635dfa73db1461076b5780636071a68e14610774578063644c45e01461078757806364c55d9c146107b257600080fd5b806340529b0f1161034257806340529b0f146105b6578063468a18671461071457806354f6127f1461072757806357f96805146107475780635ab1bd531461075a57600080fd5b806338a699a4146106ad578063392f5f64146106c05780633ca7c02a146106c85780633fc5ab98146106ee5780633fd855611461070157600080fd5b8063167bd3951161040c5780632f61088a116103d05780632f61088a1461064457806331d311a71461065757806333bb0a971461066a57806337f135d71461067d578063384c9a571461069a57600080fd5b8063167bd395146105d15780631c45fe7a146105e45780631e23a2f5146105f75780631eff4b221461060a57806322f46b841461063157600080fd5b80630d358181116104535780630d358181146105675780630f526f7d1461058d5780630fec111c146105a057806310203d2c146105b6578063138461e0146105c957600080fd5b806301ffc9a71461049057806302cd3071146104d257806303014974146104f757806309648a9d146105185780630b24cf5f14610552575b600080fd5b6104bd61049e366004613def565b6001600160e01b03191660009081526004602052604090205460ff1690565b60405190151581526020015b60405180910390f35b600c546001600160a01b03165b6040516001600160a01b0390911681526020016104c9565b61050a610505366004613e2e565b610b41565b6040519081526020016104c9565b610540610526366004613e4b565b600090815260036020526040902054610100900460ff1690565b60405160ff90911681526020016104c9565b610565610560366004614078565b610b68565b005b6105406105753660046140bd565b60ff9081166000908152600160205260409020541690565b61056561059b3660046140da565b610bac565b6105a8610bc9565b6040516104c9929190614163565b6105656105c43660046140da565b610d4b565b610565610d60565b6105656105df36600461420a565b610f82565b6105656105f2366004614360565b61102a565b6105656106053660046143d4565b61106b565b61050a7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b61056561063f366004614435565b611091565b6105656106523660046144ff565b6110a7565b61050a610665366004614544565b611142565b610565610678366004614561565b6111d3565b610685600081565b60405163ffffffff90911681526020016104c9565b6104bd6106a8366004613e2e565b6111fe565b6104bd6106bb366004613e4b565b611394565b60095461050a565b6106d66001600160401b0381565b6040516001600160401b0390911681526020016104c9565b6105656106fc366004614679565b61141f565b6106d661070f366004613e4b565b611445565b61050a6107223660046146dc565b61148a565b61073a610735366004613e4b565b6114e7565b6040516104c991906146f9565b6105656107553660046147af565b61158c565b6005546001600160a01b03166104df565b6106d661271081565b6105656107823660046147dd565b6115b4565b600554600160a01b90046001600160601b03166040516001600160601b0390911681526020016104c9565b6105656107c03660046148f4565b6115da565b6104df611602565b6104df61169a565b6105656107e3366004614935565b6116fa565b6106d6600081565b6105656107fe3660046149a6565b611722565b610565610811366004614544565b611748565b6105656108243660046149fe565b6117c3565b61050a610837366004613e2e565b61184d565b61084f61084a366004613e2e565b611890565b6040516104c99190614a1c565b61056561086a366004614a35565b611935565b6104df61194a565b61088a610885366004613e4b565b611a27565b6040516104c99190614a9d565b61089f611b68565b6040516001600160e01b031990911681526020016104c9565b6105656108c6366004614ad1565b611b8c565b6105656108d9366004614b18565b611bee565b6105656108ec366004614cb6565b611e16565b6105656108ff366004614cfd565b611e3c565b61050a6109123660046146dc565b611e62565b6109bb610925366004613e4b565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260036020908152604091829020825160a081018452905460ff8082168352610100820416928201929092526001600160a01b03620100008304169281019290925263ffffffff600160b01b820481166060840152600160d01b90910416608082015290565b6040516104c99190614d54565b6105656109d6366004614d62565b611e8f565b6105656109e9366004614da9565b611f2a565b6104bd6109fc366004614de9565b61201b565b6104bd610a0f366004614de9565b61220f565b610565610a22366004614e17565b61239a565b610565610a35366004614e5c565b6123c0565b610565610a48366004614e9d565b6123e8565b6104bd610a5b3660046140bd565b612410565b60005461010090046001600160a01b03166104df565b6104df61245d565b610565610a8c366004614435565b6124bb565b610565610a9f3660046140da565b6124d2565b6104df610ab2366004614edd565b6124e9565b610565610ac53660046140da565b612512565b6104bd610ad8366004614da9565b60ff9283166000908152600260209081526040808320948616835293815283822092851682529190915220541690565b61050a610b16366004614f19565b612529565b610565610b29366004614544565b6125ad565b610565610b3c3660046140da565b612629565b6001600160401b0381166000908152600860205260408120610b629061263e565b92915050565b610b75335b600036612648565b610ba8610b8383607861275b565b82604051602001610b949190614f47565b6040516020818303038152906040526127a7565b5050565b610bb533610b6d565b610ba8610bc383608c61275b565b826127b1565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820181905290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e00160405280610c4c6005546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610c9461194a565b6001600160a01b03168152602001826001018054610cb190614fa7565b80601f0160208091040260200160405190810160405280929190818152602001828054610cdd90614fa7565b8015610d2a5780601f10610cff57610100808354040283529160200191610d2a565b820191906000526020600020905b815481529060010190602001808311610d0d57829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b610d5433610b6d565b610ba8610bc38361148a565b6005546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610dc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de69190614fe1565b15610e2d576005546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6005546001600160a01b0316610e565760405163cf29926160e01b815260040160405180910390fd5b60055460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa158015610e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec39190614fe1565b610eeb576040516372657a5160e01b81526001600160a01b0382166004820152602401610e24565b600554604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f599190614ffe565b600560146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b610f8b33610b6d565b610f976106bb83611142565b610fbf576040516325b6f39560e21b81526001600160a01b0383166004820152602401610e24565b600b5460405163167bd39560e01b81526001600160a01b03848116600483015283151560248301529091169063167bd39590604401600060405180830381600087803b15801561100e57600080fd5b505af1158015611022573d6000803e3d6000fd5b505050505050565b61103333610b6d565b61106561103f8561148a565b83604051602001611050919061501b565b604051602081830303815290604052836127bb565b50505050565b61107433610b6d565b610ba861108083611142565b82604051602001610b949190614a1c565b61109a33610b6d565b610ba882826001806127c6565b6110b033610b6d565b6040516355ee627560e01b81526001600160c01b031983166004820152610ba89073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af415801561110d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611131919061506e565b82604051602001610b949190615087565b604051637a400b6760e11b8152601e6004820152606082901b6bffffffffffffffffffffffff1916602482015260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063f48016ce906044015b602060405180830381865af41580156111af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b62919061506e565b6111dc33610b6d565b6111f96111e88461148a565b82604051602001610b94919061501b565b505050565b6000338161120b8461184d565b905061121681611394565b61123d57604051627a416f60e01b81526001600160401b0385166004820152602401610e24565b6001600160401b038416600090815260086020526040902061125f908361286f565b1561138a57600b54604051631517388760e21b81526001600160401b03861660048201526001600160a01b039091169063fe0776f59073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f591906150b5565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0385166024820152604401600060405180830381600087803b15801561134557600080fd5b505af1158015611359573d6000803e3d6000fd5b5050506001600160401b038516600090815260086020526040902061137f915083612891565b506001949350505050565b5060009392505050565b60008181526003602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024015b602060405180830381865af41580156113fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b629190614fe1565b61142833610b6d565b6111f961143484611e62565b8360405160200161105091906150d2565b60006009828154811061145a5761145a615186565b90600052602060002090600491828204019190066008029054906101000a90046001600160401b03169050919050565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660d25b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401611192565b600081815260036020526040902060010180546060919061150790614fa7565b80601f016020809104026020016040519081016040528092919081815260200182805461153390614fa7565b80156115805780601f1061155557610100808354040283529160200191611580565b820191906000526020600020905b81548152906001019060200180831161156357829003601f168201915b50505050509050919050565b61159533610b6d565b610ba86115a383608c61275b565b82604051602001610b94919061519c565b6115bd33610b6d565b610ba86115c983611e62565b82604051602001610b9491906150d2565b6115e333610b6d565b6111f96115f184606e61275b565b83604051602001611050919061523f565b6005546040805163a3bcd81d60e01b81526004810191909152600b60448201526a506f6f6c5365727669636560a81b6064820152600360248201526000916001600160a01b03169063a3bcd81d906084015b602060405180830381865afa158015611671573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116959190615341565b905090565b6005546040805163a3bcd81d60e01b815260048101919091526015604482015274436f6d706f6e656e744f776e65725365727669636560581b6064820152600360248201526000916001600160a01b03169063a3bcd81d90608401611654565b61170333610b6d565b610ba861171183606e61275b565b82604051602001610b94919061523f565b61172b33610b6d565b6110656117378561148a565b83604051602001611050919061535e565b600054339061010090046001600160a01b031681146117845760405162d1953b60e31b81526001600160a01b0382166004820152602401610e24565b816001600160a01b03163b6000036117ba576040516361798f2f60e11b81526001600160a01b0383166004820152602401610e24565b610ba8826128a6565b6117cc33610b6d565b6040516355ee627560e01b81526001600160c01b031983166004820152610ba89073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af4158015611829573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc3919061506e565b604051630f37f38f60e41b81526001600160401b038216600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063f37f38f090602401611192565b604080518082018252600080825260208201529051630f37f38f60e41b81526001600160401b03831660048201526119229073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063f37f38f090602401602060405180830381865af41580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610735919061506e565b806020019051810190610b62919061538e565b61193e33610b6d565b610ba8610bc38361184d565b6005546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156119af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d39190614fe1565b15611a1757600554604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401611654565b506006546001600160a01b031690565b6040805160e081018252600091810182815260608083018490526080830184905260a0830184905260c083019390935281526020810191909152600082815260036020908152604091829020825160e081018452815460ff80821695830195865261010082041660608301526001600160a01b0362010000820416608083015263ffffffff600160b01b8204811660a0840152600160d01b9091041660c08201529283526001810180549192840191611adf90614fa7565b80601f0160208091040260200160405190810160405280929190818152602001828054611b0b90614fa7565b8015611b585780601f10611b2d57610100808354040283529160200191611b58565b820191906000526020600020905b815481529060010190602001808311611b3b57829003601f168201915b5050505050815250509050919050565b60008054600160a81b900460ff16611b805750600090565b50638fb3603760e01b90565b611b9533610b6d565b6000611ba384846000612902565b5090506000611bb3858584612b6d565b9050611be7611bc18661184d565b82604051602001611bd29190614a1c565b604051602081830303815290604052856127bb565b5050505050565b600654600160a01b900460ff1615611c5f5760405162461bcd60e51b815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201526d195b881a5b9a5d1a585b1a5e995960921b6064820152608401610e24565b611c6884612ba9565b600b80546001600160a01b0319166001600160a01b0386161790556040516368aebf7b60e01b815260006004820152611d259073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af4158015611cd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfb91906150b5565b6040518060400160405280600981526020016841646d696e526f6c6560b81b8152506000806127c6565b6040516368aebf7b60e01b81526001600160401b036004820152611dce9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af4158015611d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da391906150b5565b6040518060400160405280600a8152602001695075626c6963526f6c6560b01b8152506000806127c6565b611ded8383604660008560405180602001604052806000815250612c20565b611dfd639f07a2f160e01b612cf5565b50506006805460ff60a01b1916600160a01b1790555050565b611e1f33610b6d565b6111f9611e2b8461148a565b8360405160200161105091906153c6565b611e4533610b6d565b6111f9611e518461148a565b82604051602001610b94919061535e565b600073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__633889a4c86001600160601b03841660dc6114b3565b611e9833610b6d565b6040516355ee627560e01b81526001600160c01b0319841660048201526111f99073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590602401602060405180830381865af4158015611ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f19919061506e565b836040516020016110509190615087565b60ff8381166000908152600160205260409081902054905163037c8cb160e51b81529116600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015611f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb39190614fe1565b15611fbd57505050565b60ff8084166000908152600260209081526040808320868516845282528083208585168452909152902054166111f957604051636bb20ea760e01b815260ff8085166004830152808416602483015282166044820152606401610e24565b600061202633610b6d565b60006120318461184d565b905061203c81611394565b61206457604051636777365b60e01b81526001600160401b0385166004820152602401610e24565b60008181526003602052604090205461209390610100900460ff16612087606490565b60ff9081169116141590565b156120bc5760405163fe229d5d60e01b81526001600160401b0385166004820152602401610e24565b6001600160401b03841660009081526008602052604090206120de908461286f565b61138a57600b54604051631517388760e21b81526001600160401b03861660048201526001600160a01b03909116906325c471a09073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af415801561214f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217391906150b5565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038616602482015260006044820152606401600060405180830381600087803b1580156121ca57600080fd5b505af11580156121de573d6000803e3d6000fd5b5050506001600160401b0385166000908152600860205260409020612204915084612d1a565b506001915050610b62565b600061221a33610b6d565b60006122258461184d565b905061223081611394565b61225857604051634cee277360e11b81526001600160401b0385166004820152602401610e24565b6001600160401b038416600090815260086020526040902061227a908461286f565b1561138a57600b54604051631517388760e21b81526001600160401b03861660048201526001600160a01b039091169063b7d2b1629073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156122ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061231091906150b5565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0386166024820152604401600060405180830381600087803b15801561236057600080fd5b505af1158015612374573d6000803e3d6000fd5b5050506001600160401b0385166000908152600860205260409020612204915084612891565b6123a333610b6d565b610ba86123af8361148a565b82604051602001610b9491906153c6565b6123c933610b6d565b6111f96123d784608c61275b565b83604051602001611050919061519c565b6123f133610b6d565b6111f96123ff84607861275b565b836040516020016110509190614f47565b60ff81811660009081526001602052604080822054905163b2466acf60e01b8152921660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024016113de565b6005546040805163a3bcd81d60e01b815260048101919091526013604482015272446973747269627574696f6e5365727669636560681b6064820152600360248201526000916001600160a01b03169063a3bcd81d90608401611654565b6124c433610b6d565b610ba88282600060016127c6565b6124db33610b6d565b610ba8610bc383607861275b565b6001600160401b038216600090815260086020526040812061250b9083612d2f565b9392505050565b61251b33610b6d565b610ba8610bc383606e61275b565b604051637a400b6760e11b815260ff8316600482015260ff198216602482015260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063f48016ce906044015b602060405180830381865af4158015612589573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250b919061506e565b6125b633610b6d565b600c546001600160a01b0316156126075760405162461bcd60e51b8152602060048201526015602482015274125b9cdd185b98d954995859195c881a5cc81cd95d605a1b6044820152606401610e24565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b61263233610b6d565b610ba8610bc383611e62565b6000610b62825490565b6000806126846126666000546001600160a01b036101009091041690565b863061267660046000898b615507565b61267f91615531565b612d3b565b9150915081611be75763ffffffff811615612738576000805460ff60a81b1916600160a81b1790556126c46000546001600160a01b036101009091041690565b6001600160a01b03166394c7d7ee8686866040518463ffffffff1660e01b81526004016126f393929190615561565b600060405180830381600087803b15801561270d57600080fd5b505af1158015612721573d6000803e3d6000fd5b50506000805460ff60a81b1916905550611be79050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610e24565b604051630711349960e31b81526001600160601b038316600482015260ff8216602482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c89060440161256c565b610ba88282612e47565b610ba88282613269565b6111f983838361359d565b80156127da576127d7848484612902565b50505b60006127e7858585612b6d565b80516000908152600760205260408120805467ffffffffffffffff19166001600160401b038981169182179092556009805460018101825593527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af6004840401805460039094166008026101000a9283021990931691021790559050611be76110808661184d565b6001600160a01b0381166000908152600183016020526040812054151561250b565b600061250b836001600160a01b038416613a38565b60008054610100600160a81b0319166101006001600160a01b038416908102919091179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b60008060006129108661184d565b905061291b81611394565b9250821561294a5761292c816114e7565b80602001905181019061293f919061538e565b60200151915061294e565b8391505b856001600160401b038116158061296d57506001600160401b03818116145b156129965760405163981bf42160e01b81526001600160401b0388166004820152602401610e24565b8280156129ad57506127106001600160401b038216105b156129d657604051633119b9df60e21b81526001600160401b0388166004820152602401610e24565b8280156129ee57506127106001600160401b03821610155b15612a175760405163094fb39160e01b81526001600160401b0388166004820152602401610e24565b6000612a2287613b32565b9050612a2d81613b70565b600003612a58576040516321ab17ab60e01b81526001600160401b0389166004820152602401610e24565b60008181526007602090815260409182902054825163bc1b392d60e01b81529251612afb936001600160401b039092169273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9263bc1b392d92600480830193928290030181865af4158015612ac5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae991906150b5565b6001600160401b039081169116141590565b8015612b2157506000818152600760205260409020546001600160401b03898116911614155b15612b625760008181526007602052604090819020549051631660fb9360e21b81526001600160401b03909116600482015260248101829052604401610e24565b505050935093915050565b60408051808201909152600080825260208201526040518060400160405280612b9585613b32565b815260200183151581525090509392505050565b60005460ff1615612c075760405162461bcd60e51b815260206004820152602260248201527f4163636573734d616e616765643a20616c726561647920696e697469616c697a604482015261195960f21b6064820152608401610e24565b612c10816128a6565b506000805460ff19166001179055565b612c616301ffc9a760e01b60005260046020527f9fe05126d2d9ecf60592e254dead906a4b2e492f36cca727682c38e9008c6ac1805460ff19166001179055565b612c6b8287613b98565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b86151502178155905060018101612cdb83826155e7565b50612cec6303fb044760e21b612cf5565b50505050505050565b6001600160e01b0319166000908152600460205260409020805460ff19166001179055565b600061250b836001600160a01b038416613c12565b600061250b8383613c61565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251612daa91906156a6565b600060405180830381855afa9150503d8060008114612de5576040519150601f19603f3d011682016040523d82523d6000602084013e612dea565b606091505b50915091508115612e3c576040815110612e1c5780806020019051810190612e1291906156c2565b9094509250612e3c565b6020815110612e3c5780806020019051810190612e399190614fe1565b93505b505094509492505050565b604051634b00e98f60e11b81526004810183905260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015612e9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ebe91906156f1565b60405163b2466acf60e01b815260ff8216600482015290915073__$fb4566b39bd2075cb32f600f6f40bfaef2$__9063b2466acf90602401602060405180830381865af4158015612f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f379190614fe1565b612f835760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4b56532d3031303a545950455f554e444546494e4544000000006044820152606401610e24565b600083815260036020526040908190208054915163037c8cb160e51b815261010090920460ff1660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015612fec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130109190614fe1565b61305c5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3031323a414c52454144595f435245415445440000006044820152606401610e24565b3343600061306985612410565b61307457606461308a565b60ff808616600090815260016020526040902054165b845460ff87811661ffff1990921691909117610100918316919091021762010000600160d01b031916620100006001600160a01b0386160263ffffffff60b01b191617600160b01b63ffffffff85169081029190911763ffffffff60d01b1916600160d01b91909102178555600088815260036020526040902090915060010161311487826155e7565b50604051634b00e98f60e11b8152600481018890527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015613187573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ab91906156f1565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af41580156131fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061321f919061570e565b6040805160ff938416815260ff199092166020830152918416918101919091526001600160a01b038516606082015232608082015260a0015b60405180910390a150505050505050565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af41580156132bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132df9190614fe1565b61332b5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3034303a53544154455f554e444546494e45440000006044820152606401610e24565b600082815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015613397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133bb9190614fe1565b6134075760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3034313a4e4f545f4558495354494e470000000000006044820152606401610e24565b8154620100003390810262010000600160b01b031960ff87166101000216610100600160b01b03198416171784559063ffffffff600160b01b9091041661344b4390565b845463ffffffff91909116600160b01b0263ffffffff60b01b19909116178455604051634b00e98f60e11b8152600481018790527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af41580156134dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061350191906156f1565b604051630713cfad60e31b81526004810189905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015613551573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613575919061570e565b878686328760405161358d979695949392919061572b565b60405180910390a1505050505050565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af41580156135ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136139190614fe1565b61365f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3032303a53544154455f554e444546494e45440000006044820152606401610e24565b600083815260036020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af41580156136cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ef9190614fe1565b61373b5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3032313a4e4f545f4558495354494e470000000000006044820152606401610e24565b600085815260036020526040902060010161375685826155e7565b508154620100003390810262010000600160b01b031960ff87166101000216610100600160b01b03198416171784559063ffffffff600160b01b9091041661379b4390565b845463ffffffff91909116600160b01b0263ffffffff60b01b19909116178455604051634b00e98f60e11b8152600481018890527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af415801561382d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061385191906156f1565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af41580156138a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c5919061570e565b87868632876040516138dd979695949392919061572b565b60405180910390a1604051634b00e98f60e11b8152600481018890527f7bd0ab7f1746bd20a814d6705a46876c84f1aa2d35c80d8c173e268bd6d4b26c9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015613957573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061397b91906156f1565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af41580156139cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139ef919061570e565b6040805160ff938416815260ff199092166020830152918816918101919091526001600160a01b038416606082015232608082015263ffffffff831660a082015260c001613258565b60008181526001830160205260408120548015613b21576000613a5c60018361577b565b8554909150600090613a709060019061577b565b9050808214613ad5576000866000018281548110613a9057613a90615186565b9060005260206000200154905080876000018481548110613ab357613ab3615186565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613ae657613ae661579c565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b62565b6000915050610b62565b5092915050565b600080829050601f81511115613b5d578260405163305a27a960e01b8152600401610e2491906146f9565b8051613b68826157b2565b179392505050565b600060ff8216601f811115610b6257604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b038216613bee5760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e6572206973203000006044820152606401610e24565b600680546001600160a01b0319166001600160a01b038416179055610ba881613c8b565b6000818152600183016020526040812054613c5957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b62565b506000610b62565b6000826000018281548110613c7857613c78615186565b9060005260206000200154905092915050565b6005546001600160a01b031615613cc45760055460405163fcdbf2d960e01b81526001600160a01b039091166004820152602401610e24565b6001600160a01b038116613ceb5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b600003613d215760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610e24565b600580546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526376ceea7360e01b60048201526301ffc9a790602401602060405180830381865afa925050508015613d9b575060408051601f3d908101601f19168201909252613d9891810190614fe1565b60015b613dc35760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610e24565b80610ba85760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610e24565b50565b600060208284031215613e0157600080fd5b81356001600160e01b03198116811461250b57600080fd5b6001600160401b0381168114613dec57600080fd5b600060208284031215613e4057600080fd5b813561250b81613e19565b600060208284031215613e5d57600080fd5b5035919050565b6001600160601b0381168114613dec57600080fd5b8035613e8481613e64565b919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613ec157613ec1613e89565b60405290565b604051608081016001600160401b0381118282101715613ec157613ec1613e89565b60405161012081016001600160401b0381118282101715613ec157613ec1613e89565b60405161010081016001600160401b0381118282101715613ec157613ec1613e89565b60405161014081016001600160401b0381118282101715613ec157613ec1613e89565b60405161020081016001600160401b0381118282101715613ec157613ec1613e89565b6001600160a01b0381168114613dec57600080fd5b8035613e8481613f75565b600060408284031215613fa757600080fd5b613faf613e9f565b9050813581526020820135602082015292915050565b8015158114613dec57600080fd5b8035613e8481613fc5565b600060c08284031215613ff057600080fd5b60405160a081018181106001600160401b038211171561401257614012613e89565b604052905080823561402381613e64565b8152602083013561403381613f75565b60208201526140458460408501613f95565b6040820152608083013561405881613fc5565b606082015260a083013561406b81613f75565b6080919091015292915050565b60008060e0838503121561408b57600080fd5b823561409681613e64565b91506140a58460208501613fde565b90509250929050565b60ff81168114613dec57600080fd5b6000602082840312156140cf57600080fd5b813561250b816140ae565b600080604083850312156140ed57600080fd5b82356140f881613e64565b91506020830135614108816140ae565b809150509250929050565b60005b8381101561412e578181015183820152602001614116565b50506000910152565b6000815180845261414f816020860160208601614113565b601f01601f19169290920160200192915050565b6040815260006001600160601b038085511660408401528060208601511660608401525060ff604085015116608083015260608401516141a760a084018215159052565b5060808401516001600160a01b03811660c08401525060a08401516001600160a01b03811660e08401525060c084015160e06101008401526141ed610120840182614137565b905082810360208401526142018185614137565b95945050505050565b6000806040838503121561421d57600080fd5b823561422881613f75565b9150602083013561410881613fc5565b63ffffffff81168114613dec57600080fd5b600082601f83011261425b57600080fd5b81356001600160401b038082111561427557614275613e89565b604051601f8301601f19908116603f0116810190828211818310171561429d5761429d613e89565b816040528381528660208588010111156142b657600080fd5b836020870160208301376000602085830101528094505050505092915050565b803564ffffffffff81168114613e8457600080fd5b6000608082840312156142fd57600080fd5b614305613ec7565b9050813561431281614238565b81526020828101359082015260408201356001600160401b0381111561433757600080fd5b6143438482850161424a565b604083015250614355606083016142d6565b606082015292915050565b6000806000806080858703121561437657600080fd5b843561438181613e64565b9350602085013561439181614238565b925060408501356001600160401b038111156143ac57600080fd5b6143b8878288016142eb565b92505060608501356143c9816140ae565b939692955090935050565b60008082840360608112156143e857600080fd5b83356143f381613f75565b92506040601f198201121561440757600080fd5b50614410613e9f565b60208401358152604084013561442581613fc5565b6020820152919491935090915050565b6000806040838503121561444857600080fd5b823561445381613e19565b915060208301356001600160401b0381111561446e57600080fd5b61447a8582860161424a565b9150509250929050565b6001600160c01b031981168114613dec57600080fd5b8035613e8481614484565b6000604082840312156144b757600080fd5b6144bf613e9f565b905081356144cc81613e64565b815260208201356001600160401b038111156144e757600080fd5b6144f38482850161424a565b60208301525092915050565b6000806040838503121561451257600080fd5b823561451d81614484565b915060208301356001600160401b0381111561453857600080fd5b61447a858286016144a5565b60006020828403121561455657600080fd5b813561250b81613f75565b60008060006060848603121561457657600080fd5b833561458181613e64565b9250602084013561459181614238565b915060408401356001600160401b038111156145ac57600080fd5b6145b8868287016142eb565b9150509250925092565b600061014082840312156145d557600080fd5b6145dd613ee9565b90506145e882613e79565b81526145f78360208401613f95565b602082015260608201356001600160401b0381111561461557600080fd5b6146218482850161424a565b6040830152506080820135606082015260a0820135608082015260c082013560a082015260e082013560c082015261010061465d8184016142d6565b60e083015261466f61012084016142d6565b9082015292915050565b60008060006060848603121561468e57600080fd5b833561469981613e64565b925060208401356001600160401b038111156146b457600080fd5b6146c0868287016145c2565b92505060408401356146d1816140ae565b809150509250925092565b6000602082840312156146ee57600080fd5b813561250b81613e64565b60208152600061250b6020830184614137565b6000610160828403121561471f57600080fd5b614727613f0c565b905061473282613e79565b815261474060208301613f8a565b60208201526040820135604082015261475c8360608401613f95565b606082015261476e8360a08401613f95565b60808201526147808360e08401613f95565b60a08201526147926101208301613fd3565b60c08201526147a46101408301613f8a565b60e082015292915050565b60008061018083850312156147c357600080fd5b82356147ce81613e64565b91506140a5846020850161470c565b600080604083850312156147f057600080fd5b82356147fb81613e64565b915060208301356001600160401b0381111561481657600080fd5b61447a858286016145c2565b6000610200828403121561483557600080fd5b61483d613f2f565b905061484882613f8a565b815261485660208301613f8a565b602082015261486760408301613e79565b604082015261487860608301613e79565b606082015261488a8360808401613f95565b608082015261489c8360c08401613f95565b60a08201526101006148b084828501613f95565b60c08301526148c3846101408501613f95565b60e08301526148d6846101808501613f95565b908201526148e8836101c08401613f95565b61012082015292915050565b6000806000610240848603121561490a57600080fd5b833561491581613e64565b92506149248560208601614822565b91506102208401356146d1816140ae565b600080610220838503121561494957600080fd5b823561495481613e64565b91506140a58460208501614822565b60006080828403121561497557600080fd5b61497d613ec7565b9050813581526020820135602082015260408201356001600160401b0381111561433757600080fd5b600080600080608085870312156149bc57600080fd5b84356149c781613e64565b935060208501356149d781614238565b925060408501356001600160401b038111156149f257600080fd5b6143b887828801614963565b60008060408385031215614a1157600080fd5b82356140f881614484565b8151815260208083015115159082015260408101610b62565b60008060408385031215614a4857600080fd5b82356140f881613e19565b60ff815116825260ff602082015116602083015260018060a01b036040820151166040830152606081015163ffffffff808216606085015280608084015116608085015250505050565b60208152614aaf602082018351614a53565b6000602083015160c080840152614ac960e0840182614137565b949350505050565b600080600060608486031215614ae657600080fd5b8335614af181613e19565b925060208401356001600160401b03811115614b0c57600080fd5b6146c08682870161424a565b60008060008060808587031215614b2e57600080fd5b8435614b3981613f75565b93506020850135614b4981613f75565b92506040850135614b5981613e64565b915060608501356143c981613f75565b803561ffff81168114613e8457600080fd5b60006102008284031215614b8e57600080fd5b614b96613f52565b9050614ba182613e79565b8152614baf60208301613e79565b6020820152614bc06040830161449a565b6040820152614bd16060830161449a565b60608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301356001600160401b0380821115614c1a57600080fd5b614c268683870161424a565b83850152610120925082850135915080821115614c4257600080fd5b50614c4f8582860161424a565b828401525050610140614c63818401614b69565b90820152610160614c75838201614b69565b9082015261018082810135908201526101a0614c928184016142d6565b908201526101c0614ca48382016142d6565b908201526101e061466f8382016142d6565b600080600060608486031215614ccb57600080fd5b8335614cd681613e64565b925060208401356001600160401b03811115614cf157600080fd5b6146c086828701614b7b565b600080600060608486031215614d1257600080fd5b8335614d1d81613e64565b92506020840135614d2d81614238565b915060408401356001600160401b03811115614d4857600080fd5b6145b886828701614963565b60a08101610b628284614a53565b600080600060608486031215614d7757600080fd5b8335614d8281614484565b925060208401356001600160401b03811115614d9d57600080fd5b6146c0868287016144a5565b600080600060608486031215614dbe57600080fd5b8335614dc9816140ae565b92506020840135614dd9816140ae565b915060408401356146d1816140ae565b60008060408385031215614dfc57600080fd5b8235614e0781613e19565b9150602083013561410881613f75565b60008060408385031215614e2a57600080fd5b8235614e3581613e64565b915060208301356001600160401b03811115614e5057600080fd5b61447a85828601614b7b565b60008060006101a08486031215614e7257600080fd5b8335614e7d81613e64565b9250614e8c856020860161470c565b91506101808401356146d1816140ae565b60008060006101008486031215614eb357600080fd5b8335614ebe81613e64565b9250614ecd8560208601613fde565b915060e08401356146d1816140ae565b60008060408385031215614ef057600080fd5b8235614efb81613e19565b946020939093013593505050565b60ff1981168114613dec57600080fd5b60008060408385031215614f2c57600080fd5b8235614f37816140ae565b9150602083013561410881614f09565b81516001600160601b031681526020808301516001600160a01b039081168284015260408085015180519185019190915291820151606084015260c0830191906060850151151560808501528060808601511660a0850152505092915050565b600181811c90821680614fbb57607f821691505b602082108103614fdb57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215614ff357600080fd5b815161250b81613fc5565b60006020828403121561501057600080fd5b815161250b81613e64565b6020815263ffffffff825116602082015260208201516040820152600060408301516080606084015261505160a0840182614137565b905064ffffffffff60608501511660808401528091505092915050565b60006020828403121561508057600080fd5b5051919050565b602081526001600160601b03825116602082015260006020830151604080840152614ac96060840182614137565b6000602082840312156150c757600080fd5b815161250b81613e19565b602081526150ec6020820183516001600160601b03169052565b6000602083015161510a604084018280518252602090810151910152565b506040830151610140806080850152615127610160850183614137565b9150606085015160a0850152608085015160c085015260a085015160e085015260c0850151610100818187015260e0870151915061516f61012087018364ffffffffff169052565b9095015164ffffffffff1693019290925250919050565b634e487b7160e01b600052603260045260246000fd5b81516001600160601b031681526020808301516001600160a01b031690820152604080830151908201526060808301516101608301916151e89084018280518252602090810151910152565b506080830151805160a0840152602081015160c08401525060a0830151805160e084015260208101516101008401525060c0830151151561012083015260e08301516001600160a01b038116610140840152613b2b565b81516001600160a01b031681526102008101602083015161526b60208401826001600160a01b03169052565b50604083015161528660408401826001600160601b03169052565b5060608301516152a160608401826001600160601b03169052565b5060808301516152be608084018280518252602090810151910152565b5060a0830151805160c0840152602081015160e08401525060c08301516101006152f48185018380518252602090810151910152565b60e085015180516101408601526020908101516101608601529085015180516101808601528101516101a085015261012085015180516101c0860152908101516101e08501529050613b2b565b60006020828403121561535357600080fd5b815161250b81613f75565b602081528151602082015260208201516040820152600060408301516080606084015261505160a0840182614137565b6000604082840312156153a057600080fd5b6153a8613e9f565b8251815260208301516153ba81613fc5565b60208201529392505050565b602081526153e06020820183516001600160601b03169052565b600060208301516153fc60408401826001600160601b03169052565b5060408301516001600160c01b0319811660608401525060608301516001600160c01b03198116608084015250608083015160a083015260a083015160c083015260c083015160e083015260e08301516101008181850152808501519150506102006101208181860152615474610220860184614137565b9250808601519050610140601f1986850301818701526154948483614137565b9350808701519150506101606154af8187018361ffff169052565b86015190506101806154c68682018361ffff169052565b8601516101a08681019190915286015190506101c06154ed8187018364ffffffffff169052565b86015190506101e061516f8682018364ffffffffff169052565b6000808585111561551757600080fd5b8386111561552457600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156155595780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b601f8211156111f957600081815260208120601f850160051c810160208610156155c85750805b601f850160051c820191505b81811015611022578281556001016155d4565b81516001600160401b0381111561560057615600613e89565b6156148161560e8454614fa7565b846155a1565b602080601f83116001811461564957600084156156315750858301515b600019600386901b1c1916600185901b178555611022565b600085815260208120601f198616915b8281101561567857888601518255948401946001909101908401615659565b50858210156156965787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516156b8818460208701614113565b9190910192915050565b600080604083850312156156d557600080fd5b82516156e081613fc5565b602084015190925061410881614238565b60006020828403121561570357600080fd5b815161250b816140ae565b60006020828403121561572057600080fd5b815161250b81614f09565b60ff978816815260ff1996909616602087015293861660408601529190941660608401526001600160a01b03938416608084015290921660a082015263ffffffff9190911660c082015260e00190565b81810381811115610b6257634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b80516020808301519190811015614fdb5760001960209190910360031b1b1691905056fea2646970667358221220593f78291c97f9c783ba3c7d30b71661d77526d126123c31bc23f8e6dbd5367964736f6c63430008140033",
3155
- "linkReferences": {
3156
- "contracts/types/Key32.sol": {
3157
- "Key32Lib": [
3158
- {
3159
- "length": 20,
3160
- "start": 4720
3161
- },
3162
- {
3163
- "length": 20,
3164
- "start": 5488
3165
- },
3166
- {
3167
- "length": 20,
3168
- "start": 5607
3169
- },
3170
- {
3171
- "length": 20,
3172
- "start": 11594
3173
- },
3174
- {
3175
- "length": 20,
3176
- "start": 16676
3177
- },
3178
- {
3179
- "length": 20,
3180
- "start": 18998
3181
- },
3182
- {
3183
- "length": 20,
3184
- "start": 19747
3185
- },
3186
- {
3187
- "length": 20,
3188
- "start": 19863
3189
- },
3190
- {
3191
- "length": 20,
3192
- "start": 20601
3193
- },
3194
- {
3195
- "length": 20,
3196
- "start": 20717
3197
- },
3198
- {
3199
- "length": 20,
3200
- "start": 21449
3201
- },
3202
- {
3203
- "length": 20,
3204
- "start": 21565
3205
- },
3206
- {
3207
- "length": 20,
3208
- "start": 21747
3209
- },
3210
- {
3211
- "length": 20,
3212
- "start": 21863
3213
- }
3214
- ]
3215
- },
3216
- "contracts/types/NftId.sol": {
3217
- "NftIdLib": [
3218
- {
3219
- "length": 20,
3220
- "start": 10590
3221
- },
3222
- {
3223
- "length": 20,
3224
- "start": 12388
3225
- },
3226
- {
3227
- "length": 20,
3228
- "start": 13643
3229
- },
3230
- {
3231
- "length": 20,
3232
- "start": 14908
3233
- },
3234
- {
3235
- "length": 20,
3236
- "start": 17243
3237
- }
3238
- ]
3239
- },
3240
- "contracts/types/ObjectType.sol": {
3241
- "ObjectTypeLib": [
3242
- {
3243
- "length": 20,
3244
- "start": 4844
3245
- },
3246
- {
3247
- "length": 20,
3248
- "start": 19119
3249
- }
3250
- ]
3251
- },
3252
- "contracts/types/RiskId.sol": {
3253
- "RiskIdLib": [
3254
- {
3255
- "length": 20,
3256
- "start": 11433
3257
- },
3258
- {
3259
- "length": 20,
3260
- "start": 13253
3261
- },
3262
- {
3263
- "length": 20,
3264
- "start": 14993
3265
- }
3266
- ]
3267
- },
3268
- "contracts/types/RoleId.sol": {
3269
- "RoleIdLib": [
3270
- {
3271
- "length": 20,
3272
- "start": 2090
3273
- },
3274
- {
3275
- "length": 20,
3276
- "start": 2261
3277
- },
3278
- {
3279
- "length": 20,
3280
- "start": 3702
3281
- },
3282
- {
3283
- "length": 20,
3284
- "start": 4027
3285
- },
3286
- {
3287
- "length": 20,
3288
- "start": 11885
3289
- },
3290
- {
3291
- "length": 20,
3292
- "start": 13380
3293
- },
3294
- {
3295
- "length": 20,
3296
- "start": 13466
3297
- },
3298
- {
3299
- "length": 20,
3300
- "start": 14451
3301
- },
3302
- {
3303
- "length": 20,
3304
- "start": 14619
3305
- },
3306
- {
3307
- "length": 20,
3308
- "start": 15595
3309
- },
3310
- {
3311
- "length": 20,
3312
- "start": 16008
3313
- },
3314
- {
3315
- "length": 20,
3316
- "start": 18017
3317
- }
3318
- ]
3319
- },
3320
- "contracts/types/StateId.sol": {
3321
- "StateIdLib": [
3322
- {
3323
- "length": 20,
3324
- "start": 4316
3325
- },
3326
- {
3327
- "length": 20,
3328
- "start": 5066
3329
- },
3330
- {
3331
- "length": 20,
3332
- "start": 6183
3333
- },
3334
- {
3335
- "length": 20,
3336
- "start": 12182
3337
- },
3338
- {
3339
- "length": 20,
3340
- "start": 15147
3341
- },
3342
- {
3343
- "length": 20,
3344
- "start": 16401
3345
- },
3346
- {
3347
- "length": 20,
3348
- "start": 19336
3349
- },
954
+ "length": 20,
955
+ "start": 4480
956
+ },
3350
957
  {
3351
958
  "length": 20,
3352
- "start": 20055
3353
- },
3354
- {
3355
- "length": 20,
3356
- "start": 20275
3357
- },
3358
- {
3359
- "length": 20,
3360
- "start": 20875
3361
- },
3362
- {
3363
- "length": 20,
3364
- "start": 21095
3365
- }
3366
- ]
3367
- }
3368
- },
3369
- "deployedLinkReferences": {
3370
- "contracts/types/Key32.sol": {
3371
- "Key32Lib": [
3372
- {
3373
- "length": 20,
3374
- "start": 4468
3375
- },
3376
- {
3377
- "length": 20,
3378
- "start": 9550
3379
- },
3380
- {
3381
- "length": 20,
3382
- "start": 11872
3383
- },
3384
- {
3385
- "length": 20,
3386
- "start": 12621
3387
- },
3388
- {
3389
- "length": 20,
3390
- "start": 12737
3391
- },
3392
- {
3393
- "length": 20,
3394
- "start": 13475
3395
- },
3396
- {
3397
- "length": 20,
3398
- "start": 13591
3399
- },
3400
- {
3401
- "length": 20,
3402
- "start": 14323
3403
- },
3404
- {
3405
- "length": 20,
3406
- "start": 14439
3407
- },
3408
- {
3409
- "length": 20,
3410
- "start": 14621
3411
- },
3412
- {
3413
- "length": 20,
3414
- "start": 14737
3415
- }
3416
- ]
3417
- },
3418
- "contracts/types/NftId.sol": {
3419
- "NftIdLib": [
3420
- {
3421
- "length": 20,
3422
- "start": 3464
3423
- },
3424
- {
3425
- "length": 20,
3426
- "start": 5262
3427
- },
3428
- {
3429
- "length": 20,
3430
- "start": 6517
3431
- },
3432
- {
3433
- "length": 20,
3434
- "start": 7782
3435
- },
3436
- {
3437
- "length": 20,
3438
- "start": 10117
959
+ "start": 4706
3439
960
  }
3440
961
  ]
3441
962
  },
3442
- "contracts/types/ObjectType.sol": {
3443
- "ObjectTypeLib": [
3444
- {
3445
- "length": 20,
3446
- "start": 11993
3447
- }
3448
- ]
3449
- },
3450
- "contracts/types/RiskId.sol": {
3451
- "RiskIdLib": [
3452
- {
3453
- "length": 20,
3454
- "start": 4307
3455
- },
3456
- {
3457
- "length": 20,
3458
- "start": 6127
3459
- },
3460
- {
3461
- "length": 20,
3462
- "start": 7867
3463
- }
3464
- ]
3465
- },
3466
- "contracts/types/RoleId.sol": {
3467
- "RoleIdLib": [
3468
- {
3469
- "length": 20,
3470
- "start": 4759
3471
- },
3472
- {
3473
- "length": 20,
3474
- "start": 6254
3475
- },
3476
- {
3477
- "length": 20,
3478
- "start": 6340
3479
- },
3480
- {
3481
- "length": 20,
3482
- "start": 7325
3483
- },
3484
- {
3485
- "length": 20,
3486
- "start": 7493
3487
- },
3488
- {
3489
- "length": 20,
3490
- "start": 8469
3491
- },
3492
- {
3493
- "length": 20,
3494
- "start": 8882
3495
- },
3496
- {
3497
- "length": 20,
3498
- "start": 10891
3499
- }
3500
- ]
3501
- },
3502
- "contracts/types/StateId.sol": {
3503
- "StateIdLib": [
3504
- {
3505
- "length": 20,
3506
- "start": 5056
3507
- },
3508
- {
3509
- "length": 20,
3510
- "start": 8021
3511
- },
3512
- {
3513
- "length": 20,
3514
- "start": 9275
3515
- },
3516
- {
3517
- "length": 20,
3518
- "start": 12210
3519
- },
3520
- {
3521
- "length": 20,
3522
- "start": 12929
3523
- },
3524
- {
3525
- "length": 20,
3526
- "start": 13149
3527
- },
3528
- {
3529
- "length": 20,
3530
- "start": 13749
3531
- },
963
+ "contracts/type/Version.sol": {
964
+ "VersionPartLib": [
3532
965
  {
3533
966
  "length": 20,
3534
- "start": 13969
967
+ "start": 5608
3535
968
  }
3536
969
  ]
3537
970
  }