@etherisc/gif-next 0.0.2-d5b7b78-706 → 0.0.2-d5fac82-078

Sign up to get free protection for your applications and to get access to all the features.
Files changed (453) hide show
  1. package/README.md +8 -84
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +90 -14
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1575 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +851 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +145 -14
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +110 -283
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +310 -2004
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +104 -55
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +420 -2725
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +746 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +188 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +366 -71
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +179 -214
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +121 -95
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2847 -0
  32. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  33. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -1
  34. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  35. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
  36. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  37. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  38. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +61 -12
  39. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  40. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +8 -8
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  42. package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +1 -130
  45. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  48. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  50. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  51. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  52. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  53. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1307 -0
  54. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +767 -0
  56. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  57. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +234 -129
  58. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  59. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +162 -21
  60. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1077 -0
  62. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  63. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +91 -21
  64. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  65. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1641 -0
  66. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +779 -0
  68. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +937 -0
  70. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +719 -0
  72. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  73. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1405 -0
  74. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +819 -0
  76. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  77. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +184 -100
  78. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
  80. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  81. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +211 -100
  82. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  83. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +120 -166
  84. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  85. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +152 -21
  86. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +86 -28
  88. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1300 -0
  90. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +811 -0
  92. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  93. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1023 -0
  94. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +759 -0
  96. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  97. package/artifacts/contracts/{components → product}/Product.sol/Product.json +82 -22
  98. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  99. package/artifacts/contracts/product/ProductService.sol/ProductService.json +883 -0
  100. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +711 -0
  102. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  104. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +110 -30
  105. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  106. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +165 -84
  107. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  108. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  109. package/artifacts/contracts/registry/Registry.sol/Registry.json +133 -45
  110. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  111. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +305 -0
  112. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  113. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +209 -104
  114. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +103 -55
  116. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  117. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +542 -86
  118. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +20 -35
  120. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  121. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  122. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  123. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  124. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  126. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1747 -0
  128. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  129. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1765 -0
  130. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  131. package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
  132. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  133. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +67 -7
  134. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/base → shared}/ComponentService.sol/ComponentService.json +133 -35
  136. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  137. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  138. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  139. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  140. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1594 -0
  141. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  142. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +138 -7
  143. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  144. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
  145. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  146. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
  147. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  148. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
  149. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  150. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  151. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  152. package/artifacts/contracts/shared/IService.sol/IService.json +85 -27
  153. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  154. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  155. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +23 -43
  156. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  157. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
  158. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  159. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +81 -33
  160. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  161. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +27 -21
  162. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  163. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  164. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  165. package/artifacts/contracts/shared/Service.sol/Service.json +110 -28
  166. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  167. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
  168. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  169. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  170. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  171. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  172. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +523 -0
  173. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  174. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +786 -0
  175. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +699 -0
  177. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  178. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  179. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  180. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  181. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  182. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
  183. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  184. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  185. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  186. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  187. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  188. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  189. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  190. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  191. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  192. package/artifacts/contracts/{types → type}/NftId.sol/NftIdLib.json +5 -5
  193. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  194. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  195. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  196. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  197. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  198. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  199. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  200. package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
  201. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  202. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  203. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  204. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  205. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  206. package/artifacts/contracts/{types → type}/Seconds.sol/SecondsLib.json +3 -3
  207. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  208. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  209. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  210. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +20 -7
  211. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  212. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  213. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  214. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  215. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  216. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  217. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  218. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  219. package/contracts/{components → distribution}/Distribution.sol +21 -16
  220. package/contracts/distribution/DistributionService.sol +351 -0
  221. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  222. package/contracts/{components → distribution}/IDistributionComponent.sol +7 -7
  223. package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -30
  224. package/contracts/instance/BundleManager.sol +8 -9
  225. package/contracts/instance/IInstance.sol +45 -66
  226. package/contracts/instance/IInstanceService.sol +21 -20
  227. package/contracts/instance/Instance.sol +121 -218
  228. package/contracts/instance/InstanceAdmin.sol +354 -0
  229. package/contracts/instance/InstanceAuthorizationsLib.sol +320 -0
  230. package/contracts/instance/InstanceReader.sol +96 -18
  231. package/contracts/instance/InstanceService.sol +120 -317
  232. package/contracts/instance/InstanceServiceManager.sol +11 -21
  233. package/contracts/instance/InstanceStore.sol +211 -0
  234. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
  235. package/contracts/instance/base/IKeyValueStore.sol +14 -10
  236. package/contracts/instance/base/ILifecycle.sol +3 -3
  237. package/contracts/instance/base/KeyValueStore.sol +39 -45
  238. package/contracts/instance/base/Lifecycle.sol +17 -5
  239. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +7 -7
  240. package/contracts/instance/module/IAccess.sol +3 -13
  241. package/contracts/instance/module/IBundle.sol +10 -8
  242. package/contracts/instance/module/IComponents.sol +11 -5
  243. package/contracts/instance/module/IDistribution.sol +7 -6
  244. package/contracts/instance/module/IPolicy.sol +22 -16
  245. package/contracts/instance/module/IRisk.sol +1 -1
  246. package/contracts/instance/module/ISetup.sol +4 -4
  247. package/contracts/instance/module/ITreasury.sol +2 -2
  248. package/contracts/pool/BundleService.sol +384 -0
  249. package/contracts/pool/BundleServiceManager.sol +42 -0
  250. package/contracts/pool/IBundleService.sol +118 -0
  251. package/contracts/{components → pool}/IPoolComponent.sol +14 -13
  252. package/contracts/pool/IPoolService.sol +114 -0
  253. package/contracts/{components → pool}/Pool.sol +25 -22
  254. package/contracts/pool/PoolService.sol +404 -0
  255. package/contracts/pool/PoolServiceManager.sol +42 -0
  256. package/contracts/product/ApplicationService.sol +187 -0
  257. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  258. package/contracts/product/ClaimService.sol +443 -0
  259. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  260. package/contracts/{instance/service → product}/IApplicationService.sol +14 -34
  261. package/contracts/product/IClaimService.sol +93 -0
  262. package/contracts/{instance/service → product}/IPolicyService.sol +34 -26
  263. package/contracts/product/IPricingService.sol +37 -0
  264. package/contracts/{components → product}/IProductComponent.sol +11 -10
  265. package/contracts/{instance/service → product}/IProductService.sol +10 -10
  266. package/contracts/product/PolicyService.sol +378 -0
  267. package/contracts/product/PolicyServiceManager.sol +42 -0
  268. package/contracts/product/PricingService.sol +276 -0
  269. package/contracts/product/PricingServiceManager.sol +42 -0
  270. package/contracts/{components → product}/Product.sol +160 -74
  271. package/contracts/product/ProductService.sol +212 -0
  272. package/contracts/product/ProductServiceManager.sol +42 -0
  273. package/contracts/registry/IRegistry.sol +28 -17
  274. package/contracts/registry/IRegistryService.sol +29 -37
  275. package/contracts/registry/Registry.sol +46 -48
  276. package/contracts/registry/RegistryAdmin.sol +143 -0
  277. package/contracts/registry/RegistryService.sol +37 -88
  278. package/contracts/registry/RegistryServiceManager.sol +21 -23
  279. package/contracts/registry/ReleaseManager.sol +318 -177
  280. package/contracts/registry/TokenRegistry.sol +6 -4
  281. package/contracts/shared/AccessManagerCustom.sol +736 -0
  282. package/contracts/shared/AccessManagerExtended.sol +469 -0
  283. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  284. package/contracts/shared/AccessManagerExtendedWithDisable.sol +125 -0
  285. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  286. package/contracts/{components → shared}/Component.sol +31 -11
  287. package/contracts/shared/ComponentService.sol +141 -0
  288. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  289. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +17 -0
  290. package/contracts/{components → shared}/IComponent.sol +22 -6
  291. package/contracts/shared/INftOwnable.sol +1 -1
  292. package/contracts/shared/IPolicyHolder.sol +24 -10
  293. package/contracts/shared/IRegistryLinked.sol +0 -1
  294. package/contracts/shared/IService.sol +6 -6
  295. package/contracts/shared/IVersionable.sol +1 -1
  296. package/contracts/shared/NftOwnable.sol +13 -16
  297. package/contracts/shared/PolicyHolder.sol +31 -18
  298. package/contracts/shared/ProxyManager.sol +34 -3
  299. package/contracts/shared/Registerable.sol +12 -11
  300. package/contracts/shared/RegistryLinked.sol +0 -5
  301. package/contracts/shared/Service.sol +23 -9
  302. package/contracts/shared/TokenHandler.sol +4 -2
  303. package/contracts/shared/Versionable.sol +1 -1
  304. package/contracts/staking/IStakingService.sol +102 -0
  305. package/contracts/staking/StakingService.sol +169 -0
  306. package/contracts/staking/StakingServiceManager.sol +40 -0
  307. package/contracts/type/Amount.sol +109 -0
  308. package/contracts/{types → type}/ClaimId.sol +25 -2
  309. package/contracts/{types → type}/Fee.sol +16 -8
  310. package/contracts/{types → type}/NftIdSet.sol +1 -1
  311. package/contracts/{types → type}/ObjectType.sol +10 -5
  312. package/contracts/{types → type}/PayoutId.sol +33 -5
  313. package/contracts/{types → type}/RoleId.sol +50 -8
  314. package/contracts/{types → type}/StateId.sol +6 -2
  315. package/contracts/{types → type}/Timestamp.sol +5 -0
  316. package/package.json +1 -1
  317. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  318. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  319. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  320. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  321. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  322. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  323. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  324. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  325. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  326. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  327. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  328. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1311
  329. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  330. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  331. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  332. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  333. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  334. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  335. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  336. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  337. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  338. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  339. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  340. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  341. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  342. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  343. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  344. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1732
  345. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  346. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  347. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  348. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  349. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  350. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  351. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  352. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  353. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -428
  354. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  355. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  356. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  357. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  358. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  359. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  360. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -824
  361. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  362. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -657
  363. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  364. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  365. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  366. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  367. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  368. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  369. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  370. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  371. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  372. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  373. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  374. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  375. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  376. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  377. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  378. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  379. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  380. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  381. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  382. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  383. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  384. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  385. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  386. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  387. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  388. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  389. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  390. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  391. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  392. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  393. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  394. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  395. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  396. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  397. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  398. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  399. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  400. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  401. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  402. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  403. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  404. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  405. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  406. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  407. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  408. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  409. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  410. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  411. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  412. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  413. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  414. package/contracts/instance/InstanceAccessManager.sol +0 -522
  415. package/contracts/instance/base/ComponentService.sol +0 -134
  416. package/contracts/instance/service/ApplicationService.sol +0 -350
  417. package/contracts/instance/service/BundleService.sol +0 -336
  418. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  419. package/contracts/instance/service/ClaimService.sol +0 -151
  420. package/contracts/instance/service/DistributionService.sol +0 -467
  421. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  422. package/contracts/instance/service/IBundleService.sol +0 -62
  423. package/contracts/instance/service/IClaimService.sol +0 -61
  424. package/contracts/instance/service/IPoolService.sol +0 -35
  425. package/contracts/instance/service/PolicyService.sol +0 -403
  426. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  427. package/contracts/instance/service/PoolService.sol +0 -220
  428. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  429. package/contracts/instance/service/ProductService.sol +0 -241
  430. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  431. package/contracts/registry/RegistryAccessManager.sol +0 -216
  432. package/contracts/shared/ContractDeployerLib.sol +0 -72
  433. package/contracts/test/TestFee.sol +0 -25
  434. package/contracts/test/TestRegisterable.sol +0 -18
  435. package/contracts/test/TestRoleId.sol +0 -14
  436. package/contracts/test/TestService.sol +0 -25
  437. package/contracts/test/TestToken.sol +0 -26
  438. package/contracts/test/TestVersion.sol +0 -44
  439. package/contracts/test/TestVersionable.sol +0 -17
  440. package/contracts/test/Usdc.sol +0 -26
  441. package/contracts/types/ChainId.sol +0 -38
  442. package/contracts/types/NumberId.sol +0 -52
  443. /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
  444. /package/contracts/{types → type}/AddressSet.sol +0 -0
  445. /package/contracts/{types → type}/Blocknumber.sol +0 -0
  446. /package/contracts/{types → type}/DistributorType.sol +0 -0
  447. /package/contracts/{types → type}/Key32.sol +0 -0
  448. /package/contracts/{types → type}/NftId.sol +0 -0
  449. /package/contracts/{types → type}/Referral.sol +0 -0
  450. /package/contracts/{types → type}/RiskId.sol +0 -0
  451. /package/contracts/{types → type}/Seconds.sol +0 -0
  452. /package/contracts/{types → type}/UFixed.sol +0 -0
  453. /package/contracts/{types → type}/Version.sol +0 -0
@@ -0,0 +1,1747 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "AccessManagerExtendedWithDisable",
4
+ "sourceName": "contracts/shared/AccessManagerExtendedWithDisable.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "bytes32",
10
+ "name": "operationId",
11
+ "type": "bytes32"
12
+ }
13
+ ],
14
+ "name": "AccessManagerAlreadyScheduled",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [],
19
+ "name": "AccessManagerBadConfirmation",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "AccessManagerDisabled",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "bytes32",
31
+ "name": "operationId",
32
+ "type": "bytes32"
33
+ }
34
+ ],
35
+ "name": "AccessManagerExpired",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [
40
+ {
41
+ "internalType": "address",
42
+ "name": "initialAdmin",
43
+ "type": "address"
44
+ }
45
+ ],
46
+ "name": "AccessManagerInvalidInitialAdmin",
47
+ "type": "error"
48
+ },
49
+ {
50
+ "inputs": [
51
+ {
52
+ "internalType": "address",
53
+ "name": "account",
54
+ "type": "address"
55
+ }
56
+ ],
57
+ "name": "AccessManagerLockedAccount",
58
+ "type": "error"
59
+ },
60
+ {
61
+ "inputs": [
62
+ {
63
+ "internalType": "uint64",
64
+ "name": "roleId",
65
+ "type": "uint64"
66
+ }
67
+ ],
68
+ "name": "AccessManagerLockedRole",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "bytes32",
75
+ "name": "operationId",
76
+ "type": "bytes32"
77
+ }
78
+ ],
79
+ "name": "AccessManagerNotReady",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "inputs": [
84
+ {
85
+ "internalType": "bytes32",
86
+ "name": "operationId",
87
+ "type": "bytes32"
88
+ }
89
+ ],
90
+ "name": "AccessManagerNotScheduled",
91
+ "type": "error"
92
+ },
93
+ {
94
+ "inputs": [
95
+ {
96
+ "internalType": "uint64",
97
+ "name": "roleId",
98
+ "type": "uint64"
99
+ }
100
+ ],
101
+ "name": "AccessManagerRoleIdAlreadyExists",
102
+ "type": "error"
103
+ },
104
+ {
105
+ "inputs": [
106
+ {
107
+ "internalType": "uint64",
108
+ "name": "roleId",
109
+ "type": "uint64"
110
+ }
111
+ ],
112
+ "name": "AccessManagerRoleIdNotExists",
113
+ "type": "error"
114
+ },
115
+ {
116
+ "inputs": [
117
+ {
118
+ "internalType": "uint64",
119
+ "name": "roleId",
120
+ "type": "uint64"
121
+ }
122
+ ],
123
+ "name": "AccessManagerRoleIdTooBig",
124
+ "type": "error"
125
+ },
126
+ {
127
+ "inputs": [],
128
+ "name": "AccessManagerRoleIdZero",
129
+ "type": "error"
130
+ },
131
+ {
132
+ "inputs": [
133
+ {
134
+ "internalType": "uint64",
135
+ "name": "newRoleId",
136
+ "type": "uint64"
137
+ },
138
+ {
139
+ "internalType": "uint64",
140
+ "name": "existingRoleId",
141
+ "type": "uint64"
142
+ },
143
+ {
144
+ "internalType": "string",
145
+ "name": "duplicateName",
146
+ "type": "string"
147
+ }
148
+ ],
149
+ "name": "AccessManagerRoleNameAlreadyExists",
150
+ "type": "error"
151
+ },
152
+ {
153
+ "inputs": [
154
+ {
155
+ "internalType": "uint64",
156
+ "name": "roleId",
157
+ "type": "uint64"
158
+ }
159
+ ],
160
+ "name": "AccessManagerRoleNameEmpty",
161
+ "type": "error"
162
+ },
163
+ {
164
+ "inputs": [],
165
+ "name": "AccessManagerTargetAddressZero",
166
+ "type": "error"
167
+ },
168
+ {
169
+ "inputs": [
170
+ {
171
+ "internalType": "address",
172
+ "name": "target",
173
+ "type": "address"
174
+ }
175
+ ],
176
+ "name": "AccessManagerTargetAlreadyExists",
177
+ "type": "error"
178
+ },
179
+ {
180
+ "inputs": [
181
+ {
182
+ "internalType": "address",
183
+ "name": "target",
184
+ "type": "address"
185
+ },
186
+ {
187
+ "internalType": "address",
188
+ "name": "targetAuthority",
189
+ "type": "address"
190
+ }
191
+ ],
192
+ "name": "AccessManagerTargetAuthorityInvalid",
193
+ "type": "error"
194
+ },
195
+ {
196
+ "inputs": [
197
+ {
198
+ "internalType": "address",
199
+ "name": "newTarget",
200
+ "type": "address"
201
+ },
202
+ {
203
+ "internalType": "address",
204
+ "name": "existingTarget",
205
+ "type": "address"
206
+ },
207
+ {
208
+ "internalType": "string",
209
+ "name": "duplicateName",
210
+ "type": "string"
211
+ }
212
+ ],
213
+ "name": "AccessManagerTargetNameAlreadyExists",
214
+ "type": "error"
215
+ },
216
+ {
217
+ "inputs": [
218
+ {
219
+ "internalType": "address",
220
+ "name": "target",
221
+ "type": "address"
222
+ }
223
+ ],
224
+ "name": "AccessManagerTargetNameEmpty",
225
+ "type": "error"
226
+ },
227
+ {
228
+ "inputs": [
229
+ {
230
+ "internalType": "address",
231
+ "name": "target",
232
+ "type": "address"
233
+ }
234
+ ],
235
+ "name": "AccessManagerTargetNotExists",
236
+ "type": "error"
237
+ },
238
+ {
239
+ "inputs": [
240
+ {
241
+ "internalType": "address",
242
+ "name": "msgsender",
243
+ "type": "address"
244
+ },
245
+ {
246
+ "internalType": "uint64",
247
+ "name": "roleId",
248
+ "type": "uint64"
249
+ }
250
+ ],
251
+ "name": "AccessManagerUnauthorizedAccount",
252
+ "type": "error"
253
+ },
254
+ {
255
+ "inputs": [
256
+ {
257
+ "internalType": "address",
258
+ "name": "caller",
259
+ "type": "address"
260
+ },
261
+ {
262
+ "internalType": "address",
263
+ "name": "target",
264
+ "type": "address"
265
+ },
266
+ {
267
+ "internalType": "bytes4",
268
+ "name": "selector",
269
+ "type": "bytes4"
270
+ }
271
+ ],
272
+ "name": "AccessManagerUnauthorizedCall",
273
+ "type": "error"
274
+ },
275
+ {
276
+ "inputs": [
277
+ {
278
+ "internalType": "address",
279
+ "name": "msgsender",
280
+ "type": "address"
281
+ },
282
+ {
283
+ "internalType": "address",
284
+ "name": "caller",
285
+ "type": "address"
286
+ },
287
+ {
288
+ "internalType": "address",
289
+ "name": "target",
290
+ "type": "address"
291
+ },
292
+ {
293
+ "internalType": "bytes4",
294
+ "name": "selector",
295
+ "type": "bytes4"
296
+ }
297
+ ],
298
+ "name": "AccessManagerUnauthorizedCancel",
299
+ "type": "error"
300
+ },
301
+ {
302
+ "inputs": [
303
+ {
304
+ "internalType": "address",
305
+ "name": "target",
306
+ "type": "address"
307
+ }
308
+ ],
309
+ "name": "AccessManagerUnauthorizedConsume",
310
+ "type": "error"
311
+ },
312
+ {
313
+ "inputs": [
314
+ {
315
+ "internalType": "address",
316
+ "name": "target",
317
+ "type": "address"
318
+ }
319
+ ],
320
+ "name": "AddressEmptyCode",
321
+ "type": "error"
322
+ },
323
+ {
324
+ "inputs": [
325
+ {
326
+ "internalType": "address",
327
+ "name": "account",
328
+ "type": "address"
329
+ }
330
+ ],
331
+ "name": "AddressInsufficientBalance",
332
+ "type": "error"
333
+ },
334
+ {
335
+ "inputs": [],
336
+ "name": "FailedInnerCall",
337
+ "type": "error"
338
+ },
339
+ {
340
+ "inputs": [],
341
+ "name": "InvalidInitialization",
342
+ "type": "error"
343
+ },
344
+ {
345
+ "inputs": [],
346
+ "name": "NotInitializing",
347
+ "type": "error"
348
+ },
349
+ {
350
+ "inputs": [
351
+ {
352
+ "internalType": "uint8",
353
+ "name": "bits",
354
+ "type": "uint8"
355
+ },
356
+ {
357
+ "internalType": "uint256",
358
+ "name": "value",
359
+ "type": "uint256"
360
+ }
361
+ ],
362
+ "name": "SafeCastOverflowedUintDowncast",
363
+ "type": "error"
364
+ },
365
+ {
366
+ "anonymous": false,
367
+ "inputs": [
368
+ {
369
+ "indexed": false,
370
+ "internalType": "uint64",
371
+ "name": "version",
372
+ "type": "uint64"
373
+ }
374
+ ],
375
+ "name": "Initialized",
376
+ "type": "event"
377
+ },
378
+ {
379
+ "anonymous": false,
380
+ "inputs": [
381
+ {
382
+ "indexed": false,
383
+ "internalType": "uint64",
384
+ "name": "roleId",
385
+ "type": "uint64"
386
+ },
387
+ {
388
+ "indexed": false,
389
+ "internalType": "string",
390
+ "name": "name",
391
+ "type": "string"
392
+ }
393
+ ],
394
+ "name": "LogRoleCreation",
395
+ "type": "event"
396
+ },
397
+ {
398
+ "anonymous": false,
399
+ "inputs": [
400
+ {
401
+ "indexed": false,
402
+ "internalType": "address",
403
+ "name": "target",
404
+ "type": "address"
405
+ },
406
+ {
407
+ "indexed": false,
408
+ "internalType": "string",
409
+ "name": "name",
410
+ "type": "string"
411
+ }
412
+ ],
413
+ "name": "LogTargetCreation",
414
+ "type": "event"
415
+ },
416
+ {
417
+ "anonymous": false,
418
+ "inputs": [
419
+ {
420
+ "indexed": true,
421
+ "internalType": "bytes32",
422
+ "name": "operationId",
423
+ "type": "bytes32"
424
+ },
425
+ {
426
+ "indexed": true,
427
+ "internalType": "uint32",
428
+ "name": "nonce",
429
+ "type": "uint32"
430
+ }
431
+ ],
432
+ "name": "OperationCanceled",
433
+ "type": "event"
434
+ },
435
+ {
436
+ "anonymous": false,
437
+ "inputs": [
438
+ {
439
+ "indexed": true,
440
+ "internalType": "bytes32",
441
+ "name": "operationId",
442
+ "type": "bytes32"
443
+ },
444
+ {
445
+ "indexed": true,
446
+ "internalType": "uint32",
447
+ "name": "nonce",
448
+ "type": "uint32"
449
+ }
450
+ ],
451
+ "name": "OperationExecuted",
452
+ "type": "event"
453
+ },
454
+ {
455
+ "anonymous": false,
456
+ "inputs": [
457
+ {
458
+ "indexed": true,
459
+ "internalType": "bytes32",
460
+ "name": "operationId",
461
+ "type": "bytes32"
462
+ },
463
+ {
464
+ "indexed": true,
465
+ "internalType": "uint32",
466
+ "name": "nonce",
467
+ "type": "uint32"
468
+ },
469
+ {
470
+ "indexed": false,
471
+ "internalType": "uint48",
472
+ "name": "schedule",
473
+ "type": "uint48"
474
+ },
475
+ {
476
+ "indexed": false,
477
+ "internalType": "address",
478
+ "name": "caller",
479
+ "type": "address"
480
+ },
481
+ {
482
+ "indexed": false,
483
+ "internalType": "address",
484
+ "name": "target",
485
+ "type": "address"
486
+ },
487
+ {
488
+ "indexed": false,
489
+ "internalType": "bytes",
490
+ "name": "data",
491
+ "type": "bytes"
492
+ }
493
+ ],
494
+ "name": "OperationScheduled",
495
+ "type": "event"
496
+ },
497
+ {
498
+ "anonymous": false,
499
+ "inputs": [
500
+ {
501
+ "indexed": true,
502
+ "internalType": "uint64",
503
+ "name": "roleId",
504
+ "type": "uint64"
505
+ },
506
+ {
507
+ "indexed": true,
508
+ "internalType": "uint64",
509
+ "name": "admin",
510
+ "type": "uint64"
511
+ }
512
+ ],
513
+ "name": "RoleAdminChanged",
514
+ "type": "event"
515
+ },
516
+ {
517
+ "anonymous": false,
518
+ "inputs": [
519
+ {
520
+ "indexed": true,
521
+ "internalType": "uint64",
522
+ "name": "roleId",
523
+ "type": "uint64"
524
+ },
525
+ {
526
+ "indexed": false,
527
+ "internalType": "uint32",
528
+ "name": "delay",
529
+ "type": "uint32"
530
+ },
531
+ {
532
+ "indexed": false,
533
+ "internalType": "uint48",
534
+ "name": "since",
535
+ "type": "uint48"
536
+ }
537
+ ],
538
+ "name": "RoleGrantDelayChanged",
539
+ "type": "event"
540
+ },
541
+ {
542
+ "anonymous": false,
543
+ "inputs": [
544
+ {
545
+ "indexed": true,
546
+ "internalType": "uint64",
547
+ "name": "roleId",
548
+ "type": "uint64"
549
+ },
550
+ {
551
+ "indexed": true,
552
+ "internalType": "address",
553
+ "name": "account",
554
+ "type": "address"
555
+ },
556
+ {
557
+ "indexed": false,
558
+ "internalType": "uint32",
559
+ "name": "delay",
560
+ "type": "uint32"
561
+ },
562
+ {
563
+ "indexed": false,
564
+ "internalType": "uint48",
565
+ "name": "since",
566
+ "type": "uint48"
567
+ },
568
+ {
569
+ "indexed": false,
570
+ "internalType": "bool",
571
+ "name": "newMember",
572
+ "type": "bool"
573
+ }
574
+ ],
575
+ "name": "RoleGranted",
576
+ "type": "event"
577
+ },
578
+ {
579
+ "anonymous": false,
580
+ "inputs": [
581
+ {
582
+ "indexed": true,
583
+ "internalType": "uint64",
584
+ "name": "roleId",
585
+ "type": "uint64"
586
+ },
587
+ {
588
+ "indexed": true,
589
+ "internalType": "uint64",
590
+ "name": "guardian",
591
+ "type": "uint64"
592
+ }
593
+ ],
594
+ "name": "RoleGuardianChanged",
595
+ "type": "event"
596
+ },
597
+ {
598
+ "anonymous": false,
599
+ "inputs": [
600
+ {
601
+ "indexed": true,
602
+ "internalType": "uint64",
603
+ "name": "roleId",
604
+ "type": "uint64"
605
+ },
606
+ {
607
+ "indexed": false,
608
+ "internalType": "string",
609
+ "name": "label",
610
+ "type": "string"
611
+ }
612
+ ],
613
+ "name": "RoleLabel",
614
+ "type": "event"
615
+ },
616
+ {
617
+ "anonymous": false,
618
+ "inputs": [
619
+ {
620
+ "indexed": true,
621
+ "internalType": "uint64",
622
+ "name": "roleId",
623
+ "type": "uint64"
624
+ },
625
+ {
626
+ "indexed": true,
627
+ "internalType": "address",
628
+ "name": "account",
629
+ "type": "address"
630
+ }
631
+ ],
632
+ "name": "RoleRevoked",
633
+ "type": "event"
634
+ },
635
+ {
636
+ "anonymous": false,
637
+ "inputs": [
638
+ {
639
+ "indexed": true,
640
+ "internalType": "address",
641
+ "name": "target",
642
+ "type": "address"
643
+ },
644
+ {
645
+ "indexed": false,
646
+ "internalType": "uint32",
647
+ "name": "delay",
648
+ "type": "uint32"
649
+ },
650
+ {
651
+ "indexed": false,
652
+ "internalType": "uint48",
653
+ "name": "since",
654
+ "type": "uint48"
655
+ }
656
+ ],
657
+ "name": "TargetAdminDelayUpdated",
658
+ "type": "event"
659
+ },
660
+ {
661
+ "anonymous": false,
662
+ "inputs": [
663
+ {
664
+ "indexed": true,
665
+ "internalType": "address",
666
+ "name": "target",
667
+ "type": "address"
668
+ },
669
+ {
670
+ "indexed": false,
671
+ "internalType": "bool",
672
+ "name": "closed",
673
+ "type": "bool"
674
+ }
675
+ ],
676
+ "name": "TargetClosed",
677
+ "type": "event"
678
+ },
679
+ {
680
+ "anonymous": false,
681
+ "inputs": [
682
+ {
683
+ "indexed": true,
684
+ "internalType": "address",
685
+ "name": "target",
686
+ "type": "address"
687
+ },
688
+ {
689
+ "indexed": false,
690
+ "internalType": "bytes4",
691
+ "name": "selector",
692
+ "type": "bytes4"
693
+ },
694
+ {
695
+ "indexed": true,
696
+ "internalType": "uint64",
697
+ "name": "roleId",
698
+ "type": "uint64"
699
+ }
700
+ ],
701
+ "name": "TargetFunctionRoleUpdated",
702
+ "type": "event"
703
+ },
704
+ {
705
+ "inputs": [],
706
+ "name": "ADMIN_ROLE",
707
+ "outputs": [
708
+ {
709
+ "internalType": "uint64",
710
+ "name": "",
711
+ "type": "uint64"
712
+ }
713
+ ],
714
+ "stateMutability": "view",
715
+ "type": "function"
716
+ },
717
+ {
718
+ "inputs": [],
719
+ "name": "PUBLIC_ROLE",
720
+ "outputs": [
721
+ {
722
+ "internalType": "uint64",
723
+ "name": "",
724
+ "type": "uint64"
725
+ }
726
+ ],
727
+ "stateMutability": "view",
728
+ "type": "function"
729
+ },
730
+ {
731
+ "inputs": [
732
+ {
733
+ "internalType": "address",
734
+ "name": "caller",
735
+ "type": "address"
736
+ },
737
+ {
738
+ "internalType": "address",
739
+ "name": "target",
740
+ "type": "address"
741
+ },
742
+ {
743
+ "internalType": "bytes4",
744
+ "name": "selector",
745
+ "type": "bytes4"
746
+ }
747
+ ],
748
+ "name": "canCall",
749
+ "outputs": [
750
+ {
751
+ "internalType": "bool",
752
+ "name": "immediate",
753
+ "type": "bool"
754
+ },
755
+ {
756
+ "internalType": "uint32",
757
+ "name": "delay",
758
+ "type": "uint32"
759
+ }
760
+ ],
761
+ "stateMutability": "view",
762
+ "type": "function"
763
+ },
764
+ {
765
+ "inputs": [
766
+ {
767
+ "internalType": "address",
768
+ "name": "caller",
769
+ "type": "address"
770
+ },
771
+ {
772
+ "internalType": "address",
773
+ "name": "target",
774
+ "type": "address"
775
+ },
776
+ {
777
+ "internalType": "bytes",
778
+ "name": "data",
779
+ "type": "bytes"
780
+ }
781
+ ],
782
+ "name": "cancel",
783
+ "outputs": [
784
+ {
785
+ "internalType": "uint32",
786
+ "name": "",
787
+ "type": "uint32"
788
+ }
789
+ ],
790
+ "stateMutability": "nonpayable",
791
+ "type": "function"
792
+ },
793
+ {
794
+ "inputs": [
795
+ {
796
+ "internalType": "address",
797
+ "name": "caller",
798
+ "type": "address"
799
+ },
800
+ {
801
+ "internalType": "bytes",
802
+ "name": "data",
803
+ "type": "bytes"
804
+ }
805
+ ],
806
+ "name": "consumeScheduledOp",
807
+ "outputs": [],
808
+ "stateMutability": "nonpayable",
809
+ "type": "function"
810
+ },
811
+ {
812
+ "inputs": [
813
+ {
814
+ "internalType": "uint64",
815
+ "name": "roleId",
816
+ "type": "uint64"
817
+ },
818
+ {
819
+ "internalType": "string",
820
+ "name": "name",
821
+ "type": "string"
822
+ }
823
+ ],
824
+ "name": "createRole",
825
+ "outputs": [],
826
+ "stateMutability": "nonpayable",
827
+ "type": "function"
828
+ },
829
+ {
830
+ "inputs": [
831
+ {
832
+ "internalType": "address",
833
+ "name": "target",
834
+ "type": "address"
835
+ },
836
+ {
837
+ "internalType": "string",
838
+ "name": "name",
839
+ "type": "string"
840
+ }
841
+ ],
842
+ "name": "createTarget",
843
+ "outputs": [],
844
+ "stateMutability": "nonpayable",
845
+ "type": "function"
846
+ },
847
+ {
848
+ "inputs": [],
849
+ "name": "disable",
850
+ "outputs": [],
851
+ "stateMutability": "nonpayable",
852
+ "type": "function"
853
+ },
854
+ {
855
+ "inputs": [],
856
+ "name": "enable",
857
+ "outputs": [],
858
+ "stateMutability": "nonpayable",
859
+ "type": "function"
860
+ },
861
+ {
862
+ "inputs": [
863
+ {
864
+ "internalType": "address",
865
+ "name": "target",
866
+ "type": "address"
867
+ },
868
+ {
869
+ "internalType": "bytes",
870
+ "name": "data",
871
+ "type": "bytes"
872
+ }
873
+ ],
874
+ "name": "execute",
875
+ "outputs": [
876
+ {
877
+ "internalType": "uint32",
878
+ "name": "",
879
+ "type": "uint32"
880
+ }
881
+ ],
882
+ "stateMutability": "payable",
883
+ "type": "function"
884
+ },
885
+ {
886
+ "inputs": [],
887
+ "name": "expiration",
888
+ "outputs": [
889
+ {
890
+ "internalType": "uint32",
891
+ "name": "",
892
+ "type": "uint32"
893
+ }
894
+ ],
895
+ "stateMutability": "view",
896
+ "type": "function"
897
+ },
898
+ {
899
+ "inputs": [
900
+ {
901
+ "internalType": "uint64",
902
+ "name": "roleId",
903
+ "type": "uint64"
904
+ },
905
+ {
906
+ "internalType": "address",
907
+ "name": "account",
908
+ "type": "address"
909
+ }
910
+ ],
911
+ "name": "getAccess",
912
+ "outputs": [
913
+ {
914
+ "internalType": "uint48",
915
+ "name": "since",
916
+ "type": "uint48"
917
+ },
918
+ {
919
+ "internalType": "uint32",
920
+ "name": "currentDelay",
921
+ "type": "uint32"
922
+ },
923
+ {
924
+ "internalType": "uint32",
925
+ "name": "pendingDelay",
926
+ "type": "uint32"
927
+ },
928
+ {
929
+ "internalType": "uint48",
930
+ "name": "effect",
931
+ "type": "uint48"
932
+ }
933
+ ],
934
+ "stateMutability": "view",
935
+ "type": "function"
936
+ },
937
+ {
938
+ "inputs": [
939
+ {
940
+ "internalType": "bytes32",
941
+ "name": "id",
942
+ "type": "bytes32"
943
+ }
944
+ ],
945
+ "name": "getNonce",
946
+ "outputs": [
947
+ {
948
+ "internalType": "uint32",
949
+ "name": "",
950
+ "type": "uint32"
951
+ }
952
+ ],
953
+ "stateMutability": "view",
954
+ "type": "function"
955
+ },
956
+ {
957
+ "inputs": [
958
+ {
959
+ "internalType": "uint64",
960
+ "name": "roleId",
961
+ "type": "uint64"
962
+ }
963
+ ],
964
+ "name": "getRoleAdmin",
965
+ "outputs": [
966
+ {
967
+ "internalType": "uint64",
968
+ "name": "",
969
+ "type": "uint64"
970
+ }
971
+ ],
972
+ "stateMutability": "view",
973
+ "type": "function"
974
+ },
975
+ {
976
+ "inputs": [
977
+ {
978
+ "internalType": "uint64",
979
+ "name": "roleId",
980
+ "type": "uint64"
981
+ }
982
+ ],
983
+ "name": "getRoleGrantDelay",
984
+ "outputs": [
985
+ {
986
+ "internalType": "uint32",
987
+ "name": "",
988
+ "type": "uint32"
989
+ }
990
+ ],
991
+ "stateMutability": "view",
992
+ "type": "function"
993
+ },
994
+ {
995
+ "inputs": [
996
+ {
997
+ "internalType": "uint64",
998
+ "name": "roleId",
999
+ "type": "uint64"
1000
+ }
1001
+ ],
1002
+ "name": "getRoleGuardian",
1003
+ "outputs": [
1004
+ {
1005
+ "internalType": "uint64",
1006
+ "name": "",
1007
+ "type": "uint64"
1008
+ }
1009
+ ],
1010
+ "stateMutability": "view",
1011
+ "type": "function"
1012
+ },
1013
+ {
1014
+ "inputs": [
1015
+ {
1016
+ "internalType": "uint256",
1017
+ "name": "idx",
1018
+ "type": "uint256"
1019
+ }
1020
+ ],
1021
+ "name": "getRoleId",
1022
+ "outputs": [
1023
+ {
1024
+ "internalType": "uint64",
1025
+ "name": "roleId",
1026
+ "type": "uint64"
1027
+ }
1028
+ ],
1029
+ "stateMutability": "view",
1030
+ "type": "function"
1031
+ },
1032
+ {
1033
+ "inputs": [
1034
+ {
1035
+ "internalType": "string",
1036
+ "name": "name",
1037
+ "type": "string"
1038
+ }
1039
+ ],
1040
+ "name": "getRoleId",
1041
+ "outputs": [
1042
+ {
1043
+ "internalType": "uint64",
1044
+ "name": "roleId",
1045
+ "type": "uint64"
1046
+ }
1047
+ ],
1048
+ "stateMutability": "view",
1049
+ "type": "function"
1050
+ },
1051
+ {
1052
+ "inputs": [
1053
+ {
1054
+ "internalType": "uint64",
1055
+ "name": "roleId",
1056
+ "type": "uint64"
1057
+ }
1058
+ ],
1059
+ "name": "getRoleInfo",
1060
+ "outputs": [
1061
+ {
1062
+ "components": [
1063
+ {
1064
+ "internalType": "uint64",
1065
+ "name": "id",
1066
+ "type": "uint64"
1067
+ },
1068
+ {
1069
+ "internalType": "string",
1070
+ "name": "name",
1071
+ "type": "string"
1072
+ },
1073
+ {
1074
+ "internalType": "Timestamp",
1075
+ "name": "createdAt",
1076
+ "type": "uint40"
1077
+ }
1078
+ ],
1079
+ "internalType": "struct IAccessManagerExtended.RoleInfo",
1080
+ "name": "",
1081
+ "type": "tuple"
1082
+ }
1083
+ ],
1084
+ "stateMutability": "view",
1085
+ "type": "function"
1086
+ },
1087
+ {
1088
+ "inputs": [
1089
+ {
1090
+ "internalType": "uint64",
1091
+ "name": "roleId",
1092
+ "type": "uint64"
1093
+ },
1094
+ {
1095
+ "internalType": "uint256",
1096
+ "name": "idx",
1097
+ "type": "uint256"
1098
+ }
1099
+ ],
1100
+ "name": "getRoleMember",
1101
+ "outputs": [
1102
+ {
1103
+ "internalType": "address",
1104
+ "name": "member",
1105
+ "type": "address"
1106
+ }
1107
+ ],
1108
+ "stateMutability": "view",
1109
+ "type": "function"
1110
+ },
1111
+ {
1112
+ "inputs": [
1113
+ {
1114
+ "internalType": "uint64",
1115
+ "name": "roleId",
1116
+ "type": "uint64"
1117
+ }
1118
+ ],
1119
+ "name": "getRoleMembers",
1120
+ "outputs": [
1121
+ {
1122
+ "internalType": "uint256",
1123
+ "name": "numberOfMembers",
1124
+ "type": "uint256"
1125
+ }
1126
+ ],
1127
+ "stateMutability": "view",
1128
+ "type": "function"
1129
+ },
1130
+ {
1131
+ "inputs": [],
1132
+ "name": "getRoles",
1133
+ "outputs": [
1134
+ {
1135
+ "internalType": "uint256",
1136
+ "name": "numberOfRoles",
1137
+ "type": "uint256"
1138
+ }
1139
+ ],
1140
+ "stateMutability": "view",
1141
+ "type": "function"
1142
+ },
1143
+ {
1144
+ "inputs": [
1145
+ {
1146
+ "internalType": "bytes32",
1147
+ "name": "id",
1148
+ "type": "bytes32"
1149
+ }
1150
+ ],
1151
+ "name": "getSchedule",
1152
+ "outputs": [
1153
+ {
1154
+ "internalType": "uint48",
1155
+ "name": "",
1156
+ "type": "uint48"
1157
+ }
1158
+ ],
1159
+ "stateMutability": "view",
1160
+ "type": "function"
1161
+ },
1162
+ {
1163
+ "inputs": [
1164
+ {
1165
+ "internalType": "string",
1166
+ "name": "name",
1167
+ "type": "string"
1168
+ }
1169
+ ],
1170
+ "name": "getTargetAddress",
1171
+ "outputs": [
1172
+ {
1173
+ "internalType": "address",
1174
+ "name": "targetAddress",
1175
+ "type": "address"
1176
+ }
1177
+ ],
1178
+ "stateMutability": "view",
1179
+ "type": "function"
1180
+ },
1181
+ {
1182
+ "inputs": [
1183
+ {
1184
+ "internalType": "address",
1185
+ "name": "target",
1186
+ "type": "address"
1187
+ }
1188
+ ],
1189
+ "name": "getTargetAdminDelay",
1190
+ "outputs": [
1191
+ {
1192
+ "internalType": "uint32",
1193
+ "name": "",
1194
+ "type": "uint32"
1195
+ }
1196
+ ],
1197
+ "stateMutability": "view",
1198
+ "type": "function"
1199
+ },
1200
+ {
1201
+ "inputs": [
1202
+ {
1203
+ "internalType": "address",
1204
+ "name": "target",
1205
+ "type": "address"
1206
+ },
1207
+ {
1208
+ "internalType": "bytes4",
1209
+ "name": "selector",
1210
+ "type": "bytes4"
1211
+ }
1212
+ ],
1213
+ "name": "getTargetFunctionRole",
1214
+ "outputs": [
1215
+ {
1216
+ "internalType": "uint64",
1217
+ "name": "",
1218
+ "type": "uint64"
1219
+ }
1220
+ ],
1221
+ "stateMutability": "view",
1222
+ "type": "function"
1223
+ },
1224
+ {
1225
+ "inputs": [
1226
+ {
1227
+ "internalType": "address",
1228
+ "name": "target",
1229
+ "type": "address"
1230
+ }
1231
+ ],
1232
+ "name": "getTargetInfo",
1233
+ "outputs": [
1234
+ {
1235
+ "components": [
1236
+ {
1237
+ "internalType": "address",
1238
+ "name": "taddress",
1239
+ "type": "address"
1240
+ },
1241
+ {
1242
+ "internalType": "string",
1243
+ "name": "name",
1244
+ "type": "string"
1245
+ },
1246
+ {
1247
+ "internalType": "Timestamp",
1248
+ "name": "createdAt",
1249
+ "type": "uint40"
1250
+ }
1251
+ ],
1252
+ "internalType": "struct IAccessManagerExtended.TargetInfo",
1253
+ "name": "",
1254
+ "type": "tuple"
1255
+ }
1256
+ ],
1257
+ "stateMutability": "view",
1258
+ "type": "function"
1259
+ },
1260
+ {
1261
+ "inputs": [],
1262
+ "name": "getVersion",
1263
+ "outputs": [
1264
+ {
1265
+ "internalType": "VersionPart",
1266
+ "name": "",
1267
+ "type": "uint8"
1268
+ }
1269
+ ],
1270
+ "stateMutability": "view",
1271
+ "type": "function"
1272
+ },
1273
+ {
1274
+ "inputs": [
1275
+ {
1276
+ "internalType": "uint64",
1277
+ "name": "roleId",
1278
+ "type": "uint64"
1279
+ },
1280
+ {
1281
+ "internalType": "address",
1282
+ "name": "account",
1283
+ "type": "address"
1284
+ },
1285
+ {
1286
+ "internalType": "uint32",
1287
+ "name": "executionDelay",
1288
+ "type": "uint32"
1289
+ }
1290
+ ],
1291
+ "name": "grantRole",
1292
+ "outputs": [],
1293
+ "stateMutability": "nonpayable",
1294
+ "type": "function"
1295
+ },
1296
+ {
1297
+ "inputs": [
1298
+ {
1299
+ "internalType": "uint64",
1300
+ "name": "roleId",
1301
+ "type": "uint64"
1302
+ },
1303
+ {
1304
+ "internalType": "address",
1305
+ "name": "account",
1306
+ "type": "address"
1307
+ }
1308
+ ],
1309
+ "name": "hasRole",
1310
+ "outputs": [
1311
+ {
1312
+ "internalType": "bool",
1313
+ "name": "isMember",
1314
+ "type": "bool"
1315
+ },
1316
+ {
1317
+ "internalType": "uint32",
1318
+ "name": "executionDelay",
1319
+ "type": "uint32"
1320
+ }
1321
+ ],
1322
+ "stateMutability": "view",
1323
+ "type": "function"
1324
+ },
1325
+ {
1326
+ "inputs": [
1327
+ {
1328
+ "internalType": "address",
1329
+ "name": "caller",
1330
+ "type": "address"
1331
+ },
1332
+ {
1333
+ "internalType": "address",
1334
+ "name": "target",
1335
+ "type": "address"
1336
+ },
1337
+ {
1338
+ "internalType": "bytes",
1339
+ "name": "data",
1340
+ "type": "bytes"
1341
+ }
1342
+ ],
1343
+ "name": "hashOperation",
1344
+ "outputs": [
1345
+ {
1346
+ "internalType": "bytes32",
1347
+ "name": "",
1348
+ "type": "bytes32"
1349
+ }
1350
+ ],
1351
+ "stateMutability": "view",
1352
+ "type": "function"
1353
+ },
1354
+ {
1355
+ "inputs": [
1356
+ {
1357
+ "internalType": "uint64",
1358
+ "name": "roleId",
1359
+ "type": "uint64"
1360
+ }
1361
+ ],
1362
+ "name": "isRoleExists",
1363
+ "outputs": [
1364
+ {
1365
+ "internalType": "bool",
1366
+ "name": "exists",
1367
+ "type": "bool"
1368
+ }
1369
+ ],
1370
+ "stateMutability": "view",
1371
+ "type": "function"
1372
+ },
1373
+ {
1374
+ "inputs": [
1375
+ {
1376
+ "internalType": "string",
1377
+ "name": "name",
1378
+ "type": "string"
1379
+ }
1380
+ ],
1381
+ "name": "isRoleNameExists",
1382
+ "outputs": [
1383
+ {
1384
+ "internalType": "bool",
1385
+ "name": "exists",
1386
+ "type": "bool"
1387
+ }
1388
+ ],
1389
+ "stateMutability": "view",
1390
+ "type": "function"
1391
+ },
1392
+ {
1393
+ "inputs": [
1394
+ {
1395
+ "internalType": "address",
1396
+ "name": "target",
1397
+ "type": "address"
1398
+ }
1399
+ ],
1400
+ "name": "isTargetClosed",
1401
+ "outputs": [
1402
+ {
1403
+ "internalType": "bool",
1404
+ "name": "",
1405
+ "type": "bool"
1406
+ }
1407
+ ],
1408
+ "stateMutability": "view",
1409
+ "type": "function"
1410
+ },
1411
+ {
1412
+ "inputs": [
1413
+ {
1414
+ "internalType": "address",
1415
+ "name": "target",
1416
+ "type": "address"
1417
+ }
1418
+ ],
1419
+ "name": "isTargetExists",
1420
+ "outputs": [
1421
+ {
1422
+ "internalType": "bool",
1423
+ "name": "",
1424
+ "type": "bool"
1425
+ }
1426
+ ],
1427
+ "stateMutability": "view",
1428
+ "type": "function"
1429
+ },
1430
+ {
1431
+ "inputs": [
1432
+ {
1433
+ "internalType": "string",
1434
+ "name": "name",
1435
+ "type": "string"
1436
+ }
1437
+ ],
1438
+ "name": "isTargetNameExists",
1439
+ "outputs": [
1440
+ {
1441
+ "internalType": "bool",
1442
+ "name": "",
1443
+ "type": "bool"
1444
+ }
1445
+ ],
1446
+ "stateMutability": "view",
1447
+ "type": "function"
1448
+ },
1449
+ {
1450
+ "inputs": [
1451
+ {
1452
+ "internalType": "uint64",
1453
+ "name": "roleId",
1454
+ "type": "uint64"
1455
+ },
1456
+ {
1457
+ "internalType": "string",
1458
+ "name": "label",
1459
+ "type": "string"
1460
+ }
1461
+ ],
1462
+ "name": "labelRole",
1463
+ "outputs": [],
1464
+ "stateMutability": "nonpayable",
1465
+ "type": "function"
1466
+ },
1467
+ {
1468
+ "inputs": [],
1469
+ "name": "minSetback",
1470
+ "outputs": [
1471
+ {
1472
+ "internalType": "uint32",
1473
+ "name": "",
1474
+ "type": "uint32"
1475
+ }
1476
+ ],
1477
+ "stateMutability": "view",
1478
+ "type": "function"
1479
+ },
1480
+ {
1481
+ "inputs": [
1482
+ {
1483
+ "internalType": "bytes[]",
1484
+ "name": "data",
1485
+ "type": "bytes[]"
1486
+ }
1487
+ ],
1488
+ "name": "multicall",
1489
+ "outputs": [
1490
+ {
1491
+ "internalType": "bytes[]",
1492
+ "name": "results",
1493
+ "type": "bytes[]"
1494
+ }
1495
+ ],
1496
+ "stateMutability": "nonpayable",
1497
+ "type": "function"
1498
+ },
1499
+ {
1500
+ "inputs": [
1501
+ {
1502
+ "internalType": "uint64",
1503
+ "name": "roleId",
1504
+ "type": "uint64"
1505
+ },
1506
+ {
1507
+ "internalType": "address",
1508
+ "name": "callerConfirmation",
1509
+ "type": "address"
1510
+ }
1511
+ ],
1512
+ "name": "renounceRole",
1513
+ "outputs": [],
1514
+ "stateMutability": "nonpayable",
1515
+ "type": "function"
1516
+ },
1517
+ {
1518
+ "inputs": [
1519
+ {
1520
+ "internalType": "uint64",
1521
+ "name": "roleId",
1522
+ "type": "uint64"
1523
+ },
1524
+ {
1525
+ "internalType": "address",
1526
+ "name": "account",
1527
+ "type": "address"
1528
+ }
1529
+ ],
1530
+ "name": "revokeRole",
1531
+ "outputs": [],
1532
+ "stateMutability": "nonpayable",
1533
+ "type": "function"
1534
+ },
1535
+ {
1536
+ "inputs": [
1537
+ {
1538
+ "internalType": "address",
1539
+ "name": "target",
1540
+ "type": "address"
1541
+ },
1542
+ {
1543
+ "internalType": "bytes",
1544
+ "name": "data",
1545
+ "type": "bytes"
1546
+ },
1547
+ {
1548
+ "internalType": "uint48",
1549
+ "name": "when",
1550
+ "type": "uint48"
1551
+ }
1552
+ ],
1553
+ "name": "schedule",
1554
+ "outputs": [
1555
+ {
1556
+ "internalType": "bytes32",
1557
+ "name": "operationId",
1558
+ "type": "bytes32"
1559
+ },
1560
+ {
1561
+ "internalType": "uint32",
1562
+ "name": "nonce",
1563
+ "type": "uint32"
1564
+ }
1565
+ ],
1566
+ "stateMutability": "nonpayable",
1567
+ "type": "function"
1568
+ },
1569
+ {
1570
+ "inputs": [
1571
+ {
1572
+ "internalType": "uint64",
1573
+ "name": "roleId",
1574
+ "type": "uint64"
1575
+ },
1576
+ {
1577
+ "internalType": "uint32",
1578
+ "name": "newDelay",
1579
+ "type": "uint32"
1580
+ }
1581
+ ],
1582
+ "name": "setGrantDelay",
1583
+ "outputs": [],
1584
+ "stateMutability": "nonpayable",
1585
+ "type": "function"
1586
+ },
1587
+ {
1588
+ "inputs": [
1589
+ {
1590
+ "internalType": "uint64",
1591
+ "name": "roleId",
1592
+ "type": "uint64"
1593
+ },
1594
+ {
1595
+ "internalType": "uint64",
1596
+ "name": "admin",
1597
+ "type": "uint64"
1598
+ }
1599
+ ],
1600
+ "name": "setRoleAdmin",
1601
+ "outputs": [],
1602
+ "stateMutability": "nonpayable",
1603
+ "type": "function"
1604
+ },
1605
+ {
1606
+ "inputs": [
1607
+ {
1608
+ "internalType": "uint64",
1609
+ "name": "roleId",
1610
+ "type": "uint64"
1611
+ },
1612
+ {
1613
+ "internalType": "uint64",
1614
+ "name": "guardian",
1615
+ "type": "uint64"
1616
+ }
1617
+ ],
1618
+ "name": "setRoleGuardian",
1619
+ "outputs": [],
1620
+ "stateMutability": "nonpayable",
1621
+ "type": "function"
1622
+ },
1623
+ {
1624
+ "inputs": [
1625
+ {
1626
+ "internalType": "address",
1627
+ "name": "target",
1628
+ "type": "address"
1629
+ },
1630
+ {
1631
+ "internalType": "uint32",
1632
+ "name": "newDelay",
1633
+ "type": "uint32"
1634
+ }
1635
+ ],
1636
+ "name": "setTargetAdminDelay",
1637
+ "outputs": [],
1638
+ "stateMutability": "nonpayable",
1639
+ "type": "function"
1640
+ },
1641
+ {
1642
+ "inputs": [
1643
+ {
1644
+ "internalType": "address",
1645
+ "name": "target",
1646
+ "type": "address"
1647
+ },
1648
+ {
1649
+ "internalType": "bool",
1650
+ "name": "closed",
1651
+ "type": "bool"
1652
+ }
1653
+ ],
1654
+ "name": "setTargetClosed",
1655
+ "outputs": [],
1656
+ "stateMutability": "nonpayable",
1657
+ "type": "function"
1658
+ },
1659
+ {
1660
+ "inputs": [
1661
+ {
1662
+ "internalType": "address",
1663
+ "name": "target",
1664
+ "type": "address"
1665
+ },
1666
+ {
1667
+ "internalType": "bytes4[]",
1668
+ "name": "selectors",
1669
+ "type": "bytes4[]"
1670
+ },
1671
+ {
1672
+ "internalType": "uint64",
1673
+ "name": "roleId",
1674
+ "type": "uint64"
1675
+ }
1676
+ ],
1677
+ "name": "setTargetFunctionRole",
1678
+ "outputs": [],
1679
+ "stateMutability": "nonpayable",
1680
+ "type": "function"
1681
+ },
1682
+ {
1683
+ "inputs": [
1684
+ {
1685
+ "internalType": "address",
1686
+ "name": "target",
1687
+ "type": "address"
1688
+ },
1689
+ {
1690
+ "internalType": "address",
1691
+ "name": "newAuthority",
1692
+ "type": "address"
1693
+ }
1694
+ ],
1695
+ "name": "updateAuthority",
1696
+ "outputs": [],
1697
+ "stateMutability": "nonpayable",
1698
+ "type": "function"
1699
+ }
1700
+ ],
1701
+ "bytecode": "0x608060405234801561001057600080fd5b506145c3806100206000396000f3fe6080604052600436106102ae5760003560e01c806360d60e5111610175578063abd9bd2a116100dc578063d1f856ee11610095578063d78a83b11161006f578063d78a83b114610929578063f801a69814610949578063fa2921a414610983578063fe0776f5146109a357600080fd5b8063d1f856ee146108c9578063d22b5989146108e9578063d6bb62c61461090957600080fd5b8063abd9bd2a146107ea578063ac9650d81461080a578063b700961314610837578063b7d2b16214610873578063b8c5106714610893578063cc1b6c81146108b357600080fd5b8063853551b81161012e578063853551b81461073557806394c7d7ee14610755578063a166aa8914610775578063a3907d7114610795578063a5808e2f146107aa578063a64d95ce146107ca57600080fd5b806360d60e511461066257806368ed5d2e146106825780636d5115bd146106a257806371061398146106c257806375b238fc146107005780637f1fb07d1461071557600080fd5b80633656481c116102195780634c1da1e2116101d25780634c1da1e21461058557806352962952146105a5578063530dd456146105c55780635ae86e85146105e55780635bfa5027146106155780635fa8aad41461064257600080fd5b80633656481c146104a55780633adc277a146104dd5780633ca7c02a146105145780633fd855611461052f5780634136a33c1461054f5780634665096d1461056f57600080fd5b806318ff183c1161026b57806318ff183c146103c35780631cff79cd146103e357806325c471a0146103f65780632f2770db146104165780633078f1141461042b57806330cae1871461048557600080fd5b806308d6122d146102b35780630b0a93ba146102d55780630d8e6e2c1461031257806312be87271461034157806312e1ebc514610376578063167bd395146103a3575b600080fd5b3480156102bf57600080fd5b506102d36102ce366004613999565b6109c3565b005b3480156102e157600080fd5b506102f56102f03660046139ff565b610a40565b6040516001600160401b0390911681526020015b60405180910390f35b34801561031e57600080fd5b5060008051602061454e8339815191525460405160ff9091168152602001610309565b34801561034d57600080fd5b5061036161035c3660046139ff565b610a79565b60405163ffffffff9091168152602001610309565b34801561038257600080fd5b50610396610391366004613a1a565b610ac5565b6040516103099190613a87565b3480156103af57600080fd5b506102d36103be366004613ae0565b610be5565b3480156103cf57600080fd5b506102d36103de366004613b19565b610c26565b6103616103f1366004613b88565b610c62565b34801561040257600080fd5b506102d3610411366004613bf0565b610caa565b34801561042257600080fd5b506102d3610d2e565b34801561043757600080fd5b5061044b610446366004613c35565b610d57565b604051610309949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561049157600080fd5b506102d36104a0366004613c51565b610dce565b3480156104b157600080fd5b506104c56104c0366004613d26565b610e42565b6040516001600160a01b039091168152602001610309565b3480156104e957600080fd5b506104fd6104f8366004613d5a565b610ea5565b60405165ffffffffffff9091168152602001610309565b34801561052057600080fd5b506102f56001600160401b0381565b34801561053b57600080fd5b506102f561054a366004613d5a565b610eea565b34801561055b57600080fd5b5061036161056a366004613d5a565b610f61565b34801561057b57600080fd5b5062093a80610361565b34801561059157600080fd5b506103616105a0366004613a1a565b610f8e565b3480156105b157600080fd5b506102d36105c0366004613c51565b610fca565b3480156105d157600080fd5b506102f56105e03660046139ff565b611006565b3480156105f157600080fd5b50610605610600366004613a1a565b611038565b6040519015158152602001610309565b34801561062157600080fd5b506106356106303660046139ff565b6110df565b6040516103099190613d73565b34801561064e57600080fd5b506102d361065d366004613da2565b611183565b34801561066e57600080fd5b5061060561067d366004613d26565b6111a5565b34801561068e57600080fd5b506102d361069d366004613df1565b61120c565b3480156106ae57600080fd5b506102f56106bd366004613e23565b61122a565b3480156106ce57600080fd5b507f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876906545b604051908152602001610309565b34801561070c57600080fd5b506102f5600081565b34801561072157600080fd5b506106056107303660046139ff565b611273565b34801561074157600080fd5b506102d3610750366004613e51565b6112fd565b34801561076157600080fd5b506102d3610770366004613b88565b61133a565b34801561078157600080fd5b50610605610790366004613a1a565b611377565b3480156107a157600080fd5b506102d36113b0565b3480156107b657600080fd5b506106f26107c53660046139ff565b6113d2565b3480156107d657600080fd5b506102d36107e5366004613e6f565b611410565b3480156107f657600080fd5b506106f2610805366004613e99565b61144c565b34801561081657600080fd5b5061082a610825366004613efd565b611485565b6040516103099190613f3e565b34801561084357600080fd5b50610857610852366004613fa0565b611579565b60408051921515835263ffffffff909116602083015201610309565b34801561087f57600080fd5b506102d361088e366004613c35565b6115ce565b34801561089f57600080fd5b506102f56108ae366004613d26565b61164a565b3480156108bf57600080fd5b5062069780610361565b3480156108d557600080fd5b506108576108e4366004613c35565b6116ad565b3480156108f557600080fd5b506102d3610904366004613feb565b61172a565b34801561091557600080fd5b50610361610924366004613e99565b611766565b34801561093557600080fd5b506104c5610944366004614009565b6117b0565b34801561095557600080fd5b50610969610964366004614033565b6117ef565b6040805192835263ffffffff909116602083015201610309565b34801561098f57600080fd5b5061060561099e366004613d26565b61183e565b3480156109af57600080fd5b506102d36109be366004613c35565b6118a3565b836109cd81611038565b6109fa57604051632eae37fb60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b81610a0481611273565b610a2c57604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b610a388686868661191f565b505050505050565b600080610a4b611973565b6001600160401b0393841660009081526001918201602052604090200154600160401b900490921692915050565b600080610a84611973565b6001600160401b0384166000908152600182810160205260409091200154909150610abe90600160801b90046001600160701b0316611997565b9392505050565b610af9604051806060016040528060006001600160a01b0316815260200160608152602001600064ffffffffff1681525090565b6001600160a01b03828116600090815260008051602061452e83398151915260208181526040928390208351606081019094528054909416835260018401805492949291840191610b49906140a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610b75906140a5565b8015610bc25780601f10610b9757610100808354040283529160200191610bc2565b820191906000526020600020905b815481529060010190602001808311610ba557829003601f168201915b50505091835250506002919091015464ffffffffff166020909101529392505050565b81610bef81611038565b610c1757604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b610c2183836119b6565b505050565b81610c3081611038565b610c5857604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b610c2183836119c8565b600083610c6e81611038565b610c9657604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b610ca1858585611a27565b95945050505050565b82610cb481611273565b610cdc57604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b6001600160401b038416600090815260008051602061456e8339815191526020526040902060008051602061452e83398151915290610d1b9085611b68565b50610d27858585611b7d565b5050505050565b610d36611b99565b600060008051602061454e833981519152805461ff00191661010017905550565b6000806000806000610d67611973565b6001600160401b038816600090815260018201602090815260408083206001600160a01b038b1684529091529020805465ffffffffffff8116975091925090610dbf90600160301b90046001600160701b0316611c19565b979a9199509750945050505050565b81610dd881611273565b610e0057604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b81610e0a81611273565b610e3257604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b610e3c8484611c3c565b50505050565b60405160009060008051602061452e833981519152907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a6287690190610e859085906140d9565b908152604051908190036020019020546001600160a01b03169392505050565b600080610eb0611973565b600084815260028201602052604090205490915065ffffffffffff16610ed581611c4e565b610edf5780610ee2565b60005b949350505050565b7f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876906805460009160008051602061452e8339815191529184908110610f3057610f306140f5565b90600052602060002090600491828204019190066008029054906101000a90046001600160401b0316915050919050565b600080610f6c611973565b600093845260020160205250506040902054600160301b900463ffffffff1690565b600080610f99611973565b6001600160a01b038416600090815260208290526040902060010154909150610abe906001600160701b0316611997565b81610fd481611273565b610ffc57604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b610c218383611c7d565b600080611011611973565b6001600160401b039384166000908152600191820160205260409020015490921692915050565b6001600160a01b038116600090815260008051602061452e83398151915260208190526040808320600201549051638d38cd4b60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b906024015b602060405180830381865af41580156110bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abe919061410b565b611113604051806060016040528060006001600160401b0316815260200160608152602001600064ffffffffff1681525090565b6001600160401b0382811660009081527f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a6287690360209081526040918290208251606081019093528054909316825260018301805460008051602061452e833981519152949284019190610b49906140a5565b61118b611b99565b6111958282611c8f565b90506111a18282611d8f565b5050565b60405160009060008051602061452e8339815191529082907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876901906111ea9086906140d9565b908152604051908190036020019020546001600160a01b031614159392505050565b611214611b99565b61121e8282611fc5565b90506111a18282612024565b600080611235611973565b6001600160a01b0385166000908152602091825260408082206001600160e01b03198716835290925220546001600160401b03169150505b92915050565b6001600160401b03811660009081527f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a628769036020526040808220600201549051638d38cd4b60e01b815264ffffffffff909116600482015260008051602061452e8339815191529073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b9060240161109e565b8261130781611273565b61132f57604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b610e3c848484612245565b3361134481611038565b61136c57604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b610e3c8484846122dc565b600080611382611973565b6001600160a01b0390931660009081526020939093525050604090206001015460ff600160701b9091041690565b6113b8611b99565b60008051602061454e833981519152805461ff0019169055565b6001600160401b038116600090815260008051602061456e8339815191526020526040812060008051602061452e83398151915290610abe90612383565b8161141a81611273565b61144257604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b610c21838361238d565b6000848484846040516020016114659493929190614151565b604051602081830303815290604052805190602001209050949350505050565b6060816001600160401b0381111561149f5761149f613c84565b6040519080825280602002602001820160405280156114d257816020015b60608152602001906001900390816114bd5790505b50905060005b8281101561157257611542308585848181106114f6576114f66140f5565b9050602002810190611508919061417e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061239f92505050565b828281518110611554576115546140f5565b6020026020010181905250808061156a906141da565b9150506114d8565b5092915050565b60008051602061454e83398151915280546000918291610100900460ff16156115b557604051632695f8ad60e01b815260040160405180910390fd5b6115c086868661240c565b92509250505b935093915050565b816115d881611273565b61160057604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b6001600160401b038316600090815260008051602061456e8339815191526020526040902060008051602061452e8339815191529061163f908461248f565b50610e3c84846124a4565b60405160009060008051602061452e833981519152907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a628769059061168d9085906140d9565b908152604051908190036020019020546001600160401b03169392505050565b60008067fffffffffffffffe196001600160401b038516016116d55750600190506000611723565b6000806116e28686610d57565b5050915091508165ffffffffffff1660001415801561171857506117046124b6565b65ffffffffffff168265ffffffffffff1611155b935091506117239050565b9250929050565b8161173481611038565b61175c57604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b610c2183836124c6565b60008361177281611038565b61179a57604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b6117a6868686866124d8565b9695505050505050565b6001600160401b038216600090815260008051602061456e8339815191526020526040812060008051602061452e83398151915290610ee29084612643565b600080856117fc81611038565b61182457604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b6118308787878761264f565b909890975095505050505050565b60405160009060008051602061452e833981519152907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876905906118819085906140d9565b908152604051908190036020019020546001600160401b031615159392505050565b816118ad81611273565b6118d557604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b6001600160401b038316600090815260008051602061456e8339815191526020526040902060008051602061452e83398151915290611914903361248f565b50610e3c84846127fa565b611927611b99565b60005b82811015610d275761196385858584818110611948576119486140f5565b905060200201602081019061195d91906141f3565b84612823565b61196c816141da565b905061192a565b7f77301bc69e8248c80abb894217605b71fa89ea6a9e8bdf359d9e8aa1dd62bf0090565b6000806119ac836001600160701b0316611c19565b5090949350505050565b6119be611b99565b6111a182826128b1565b6119d0611b99565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b158015611a1357600080fd5b505af1158015610a38573d6000803e3d6000fd5b600080611a32611973565b905033600080611a4483898989612957565b9150915081158015611a5a575063ffffffff8116155b15611aa8578288611a6b89896129aa565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b03191660448201526064016109f1565b6000611ab6848a8a8a61144c565b9050600063ffffffff8316151580611add5750611ad282610ea5565b65ffffffffffff1615155b15611aee57611aeb826129c2565b90505b6003860154611b068b611b018c8c6129aa565b612ad6565b8760030181905550611b508b8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250349250612b18915050565b50600390960195909555509293505050509392505050565b6000610abe836001600160a01b038416612bab565b611b85611b99565b610e3c8383611b9386610a79565b84612bfa565b33600080611ba8838236612e59565b9150915081610c21578063ffffffff16600003611c04576000611bcb8136612f11565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b038216602482015290925060440190506109f1565b610e3c611c14843060003661144c565b6129c2565b6000806000611c2f84611c2a6124b6565b613149565b9250925092509193909250565b611c44611b99565b6111a1828261319d565b6000611c586124b6565b65ffffffffffff16611c6d62093a8084614210565b65ffffffffffff16111592915050565b611c85611b99565b6111a1828261324f565b60606000836001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf5919061422f565b90506001600160a01b038416611d1e5760405163d2b391f360e01b815260040160405180910390fd5b6001600160a01b0381163014611d5a57604051630fbfff8960e41b81526001600160a01b038086166004830152821660248201526044016109f1565b8251600003611d8757604051636ff4782560e11b81526001600160a01b03851660048201526024016109f1565b509092915050565b60008051602061452e833981519152611da783611038565b15611dd0576040516372f0861b60e01b81526001600160a01b03841660048201526024016109f1565b611dd9826111a5565b15611e2657828160010183604051611df191906140d9565b908152604051908190036020018120546351a5c05760e11b82526109f192916001600160a01b0390911690859060040161424c565b6040518060600160405280846001600160a01b0316815260200183815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb39190614278565b64ffffffffff1690526001600160a01b03848116600090815260208481526040909120835181546001600160a01b03191693169290921782558201516001820190611efe90826142e5565b50604091820151600291909101805464ffffffffff191664ffffffffff9092169190911790555183906001830190611f379085906140d9565b9081526040516020918190038201812080546001600160a01b03199081166001600160a01b0395861617909155600285018054600181018255600091825293902090920180549092169286169290921790557fea8d4576c164e98cc7596bbd6e8153189eb76d8c3c5854bf48543e363e4ffd3e90611fb890859085906143a4565b60405180910390a1505050565b6060826001600160401b0316600003611ff157604051633aa1be8f60e21b815260040160405180910390fd5b815160000361201e5760405163d47728d760e01b81526001600160401b03841660048201526024016109f1565b50919050565b60008051602061452e83398151915261203c83611273565b15612065576040516310ed2a9160e11b81526001600160401b03841660048201526024016109f1565b61206e8261183e565b1561209a578261207d8361164a565b8360405163e6fbd51760e01b81526004016109f1939291906143c8565b6040518060600160405280846001600160401b0316815260200183815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121279190614278565b64ffffffffff1690526001600160401b03848116600090815260038401602090815260409091208351815467ffffffffffffffff19169316929092178255820151600182019061217790826142e5565b50604091820151600291909101805464ffffffffff191664ffffffffff90921691909117905551839060058301906121b09085906140d9565b90815260405160209181900382018120805467ffffffffffffffff19166001600160401b0394851617905560068401805460018101825560009182529290206004830401805460039093166008026101000a80850219909316938716929092029290921790557f0d24585326fa11eab3f4335f6413408017bd28072a57f6fbcc65c6606612204d90611fb890859085906143f4565b61224d611b99565b6001600160401b038316158061226b57506001600160401b03838116145b156122945760405163061c6a4360e21b81526001600160401b03841660048201526024016109f1565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a45083836040516122cf929190614416565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa15801561231d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612341919061442a565b6001600160e01b0319161461237457604051630641fee960e31b81526001600160a01b03821660048201526024016109f1565b610d27611c148583868661144c565b600061126d825490565b612395611b99565b6111a1828261330f565b6060600080846001600160a01b0316846040516123bc91906140d9565b600060405180830381855af49150503d80600081146123f7576040519150601f19603f3d011682016040523d82523d6000602084013e6123fc565b606091505b5091509150610ca185838361343c565b60008061241884611377565b15612428575060009050806115c6565b306001600160a01b0386160361244d576124428484613498565b6000915091506115c6565b6000612459858561122a565b905060008061246883896116ad565b915091508161247957600080612483565b63ffffffff811615815b945094505050506115c6565b6000610abe836001600160a01b0384166134bd565b6124ac611b99565b610c2182826135b0565b60006124c1426136af565b905090565b6124ce611b99565b6111a182826136e6565b6000806124e3611973565b90503360006124f286866129aa565b905060006125028989898961144c565b600081815260028601602052604081205491925065ffffffffffff90911690036125425760405163060a299b60e41b8152600481018290526024016109f1565b826001600160a01b0316896001600160a01b0316146125de5760006125686000856116ad565b509050600061258361257d6102f08c8761122a565b866116ad565b50905081158015612592575080155b156125db57604051630ff89d4760e21b81526001600160a01b038087166004830152808d1660248301528b1660448201526001600160e01b0319851660648201526084016109f1565b50505b6000818152600285016020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a39998505050505050505050565b6000610abe83836137b2565b600080600061265c611973565b905033600061266d828a8a8a612957565b91505060008163ffffffff166126816124b6565b61268b9190614210565b905063ffffffff821615806126c2575060008765ffffffffffff161180156126c257508065ffffffffffff168765ffffffffffff16105b156126d357828a611a6b8b8b6129aa565b6126ed8765ffffffffffff168265ffffffffffff166137dc565b96506126fb838b8b8b61144c565b9550612706866137f2565b83600201600087815260200190815260200160002060000160069054906101000a900463ffffffff1660010194508684600201600088815260200190815260200160002060000160006101000a81548165ffffffffffff021916908365ffffffffffff1602179055508484600201600088815260200190815260200160002060000160066101000a81548163ffffffff021916908363ffffffff1602179055508463ffffffff16867f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b489868e8e8e6040516127e5959493929190614447565b60405180910390a35050505094509492505050565b6001600160a01b03811633146124ac57604051635f159e6360e01b815260040160405180910390fd5b600061282d611973565b6001600160a01b0385166000818152602083815260408083206001600160e01b0319891680855290835292819020805467ffffffffffffffff19166001600160401b03891690811790915590519283529394507f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a350505050565b60006128bb611973565b9050306001600160a01b038416036128f157604051630b40d17960e31b81526001600160a01b03841660048201526024016109f1565b6001600160a01b038316600081815260208390526040908190206001018054851515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb138906122cf90851515815260200190565b600080306001600160a01b0386160361297e57612975868585612e59565b915091506129a1565b6004831061299a57612995868661085287876129aa565b612975565b5060009050805b94509492505050565b60006129b9600482848661448d565b610abe916144b7565b6000806129cd611973565b600084815260028201602052604081205491925065ffffffffffff821691600160301b900463ffffffff1690829003612a1c5760405163060a299b60e41b8152600481018690526024016109f1565b612a246124b6565b65ffffffffffff168265ffffffffffff161115612a5757604051630c65b5bd60e11b8152600481018690526024016109f1565b612a6082611c4e565b15612a8157604051631e2975b960e21b8152600481018690526024016109f1565b6000858152600284016020526040808220805465ffffffffffff191690555163ffffffff83169187917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a3949350505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b606081471015612b3d5760405163cd78605960e01b81523060048201526024016109f1565b600080856001600160a01b03168486604051612b5991906140d9565b60006040518083038185875af1925050503d8060008114612b96576040519150601f19603f3d011682016040523d82523d6000602084013e612b9b565b606091505b50915091506117a686838361343c565b6000818152600183016020526040812054612bf25750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561126d565b50600061126d565b600080612c05611973565b905067fffffffffffffffe196001600160401b03871601612c445760405163061c6a4360e21b81526001600160401b03871660048201526024016109f1565b6001600160401b038616600090815260018201602090815260408083206001600160a01b038916845290915281205465ffffffffffff1615908115612d3a578563ffffffff16612c926124b6565b612c9c9190614210565b905060405180604001604052808265ffffffffffff168152602001612cca8763ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b038a16600090815260018601602090815260408083206001600160a01b038d1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff90911617919091179055612dea565b6001600160401b038816600090815260018401602090815260408083206001600160a01b038b168452909152812054612d8691600160301b9091046001600160701b031690879061384e565b6001600160401b038a16600090815260018601602090815260408083206001600160a01b038d168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8716815265ffffffffffff831660208201528315158183015290516001600160a01b038916916001600160401b038b16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a3509695505050505050565b6000806004831015612e70575060009050806115c6565b306001600160a01b03861603612e935761244230612e8e86866129aa565b613498565b6000806000612ea28787612f11565b92509250925082612ebc57600080945094505050506115c6565b600080612ec9848b6116ad565b9150915081612ee3576000809650965050505050506115c6565b612ef98363ffffffff168263ffffffff166137dc565b63ffffffff8116159b909a5098505050505050505050565b600080806004841015612f2c57506000915081905080613142565b6000612f3886866129aa565b90506001600160e01b03198116633476ae9760e11b1480612f6957506001600160e01b031981166310a6aa3760e31b145b80612f8457506001600160e01b031981166330cae18760e01b145b80612f9f57506001600160e01b0319811663294b14a960e11b145b80612fba57506001600160e01b03198116635326cae760e11b145b80612fd557506001600160e01b031981166317ea2ab560e21b145b80612ff057506001600160e01b0319811663d22b598960e01b145b8061300b57506001600160e01b0319811663a3907d7160e01b145b8061302657506001600160e01b03198116632f2770db60e01b145b1561303c57600160008093509350935050613142565b6001600160e01b0319811663063fc60f60e21b148061306b57506001600160e01b0319811663167bd39560e01b145b8061308657506001600160e01b031981166308d6122d60e01b145b156130c857600061309b60246004888a61448d565b8101906130a89190613a1a565b905060006130b582610f8e565b6001965060009550935061314292505050565b6001600160e01b0319811663012e238d60e51b14806130f757506001600160e01b03198116635be958b160e11b145b1561313557600061310c60246004888a61448d565b81019061311991906139ff565b9050600161312682611006565b60009450945094505050613142565b6000806000935093509350505b9250925092565b6000808069ffffffffffffffffffff602086901c166001600160701b03861665ffffffffffff604088901c81169087168111156131885782828261318d565b816000805b9550955095505050509250925092565b60006131a7611973565b90506001600160401b03831615806131c757506001600160401b03838116145b156131f05760405163061c6a4360e21b81526001600160401b03841660048201526024016109f1565b6001600160401b03838116600081815260018481016020526040808320909101805467ffffffffffffffff19169487169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a3505050565b6000613259611973565b90506001600160401b038316158061327957506001600160401b03838116145b156132a25760405163061c6a4360e21b81526001600160401b03841660048201526024016109f1565b6001600160401b0383811660008181526001848101602052604080832090910180546fffffffffffffffff00000000000000001916600160401b958816958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a3505050565b6000613319611973565b905067fffffffffffffffe196001600160401b038416016133585760405163061c6a4360e21b81526001600160401b03841660048201526024016109f1565b6001600160401b0383166000908152600182810160205260408220015461339390600160801b90046001600160701b0316846206978061384e565b6001600160401b038616600081815260018087016020526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b489061342e908690859063ffffffff92909216825265ffffffffffff16602082015260400190565b60405180910390a250505050565b6060826134515761344c826138f8565b610abe565b815115801561346857506001600160a01b0384163b155b1561349157604051639996b31560e01b81526001600160a01b03851660048201526024016109f1565b5080610abe565b6000806134a3611973565b90506134af8484612ad6565b600390910154149392505050565b600081815260018301602052604081205480156135a65760006134e16001836144e7565b85549091506000906134f5906001906144e7565b905080821461355a576000866000018281548110613515576135156140f5565b9060005260206000200154905080876000018481548110613538576135386140f5565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061356b5761356b6144fa565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061126d565b600091505061126d565b6000806135bb611973565b905067fffffffffffffffe196001600160401b038516016135fa5760405163061c6a4360e21b81526001600160401b03851660048201526024016109f1565b6001600160401b038416600090815260018201602090815260408083206001600160a01b038716845290915281205465ffffffffffff16900361364157600091505061126d565b6001600160401b038416600081815260018301602090815260408083206001600160a01b038816808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a35060019392505050565b600065ffffffffffff8211156136e2576040516306dfcc6560e41b815260306004820152602481018390526044016109f1565b5090565b60006136f0611973565b9050600061372883620697806001600160a01b0387166000908152602086905260409020600101546001600160701b0316919061384e565b6001600160a01b0386166000818152602086815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8816815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c910161342e565b60008260000182815481106137c9576137c96140f5565b9060005260206000200154905092915050565b60008183116137eb5781610abe565b5090919050565b60006137fc611973565b600083815260028201602052604090205490915065ffffffffffff16801580159061382d575061382b81611c4e565b155b15610c215760405163813e945960e01b8152600481018490526024016109f1565b6000806000613865866001600160701b0316611997565b905060006138a28563ffffffff168763ffffffff168463ffffffff161161388d576000613897565b6138978885614510565b63ffffffff166137dc565b90508063ffffffff166138b36124b6565b6138bd9190614210565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b8051156139085780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b038116811461392157600080fd5b60008083601f84011261394b57600080fd5b5081356001600160401b0381111561396257600080fd5b6020830191508360208260051b850101111561172357600080fd5b80356001600160401b038116811461399457600080fd5b919050565b600080600080606085870312156139af57600080fd5b84356139ba81613924565b935060208501356001600160401b038111156139d557600080fd5b6139e187828801613939565b90945092506139f490506040860161397d565b905092959194509250565b600060208284031215613a1157600080fd5b610abe8261397d565b600060208284031215613a2c57600080fd5b8135610abe81613924565b60005b83811015613a52578181015183820152602001613a3a565b50506000910152565b60008151808452613a73816020860160208601613a37565b601f01601f19169290920160200192915050565b602080825282516001600160a01b03168282015282015160606040830152600090613ab56080840182613a5b565b905064ffffffffff60408501511660608401528091505092915050565b801515811461392157600080fd5b60008060408385031215613af357600080fd5b8235613afe81613924565b91506020830135613b0e81613ad2565b809150509250929050565b60008060408385031215613b2c57600080fd5b8235613b3781613924565b91506020830135613b0e81613924565b60008083601f840112613b5957600080fd5b5081356001600160401b03811115613b7057600080fd5b60208301915083602082850101111561172357600080fd5b600080600060408486031215613b9d57600080fd5b8335613ba881613924565b925060208401356001600160401b03811115613bc357600080fd5b613bcf86828701613b47565b9497909650939450505050565b803563ffffffff8116811461399457600080fd5b600080600060608486031215613c0557600080fd5b613c0e8461397d565b92506020840135613c1e81613924565b9150613c2c60408501613bdc565b90509250925092565b60008060408385031215613c4857600080fd5b613b378361397d565b60008060408385031215613c6457600080fd5b613c6d8361397d565b9150613c7b6020840161397d565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613cab57600080fd5b81356001600160401b0380821115613cc557613cc5613c84565b604051601f8301601f19908116603f01168101908282118183101715613ced57613ced613c84565b81604052838152866020858801011115613d0657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215613d3857600080fd5b81356001600160401b03811115613d4e57600080fd5b610ee284828501613c9a565b600060208284031215613d6c57600080fd5b5035919050565b602081526001600160401b0382511660208201526000602083015160606040840152613ab56080840182613a5b565b60008060408385031215613db557600080fd5b8235613dc081613924565b915060208301356001600160401b03811115613ddb57600080fd5b613de785828601613c9a565b9150509250929050565b60008060408385031215613e0457600080fd5b613dc08361397d565b6001600160e01b03198116811461392157600080fd5b60008060408385031215613e3657600080fd5b8235613e4181613924565b91506020830135613b0e81613e0d565b600080600060408486031215613e6657600080fd5b613ba88461397d565b60008060408385031215613e8257600080fd5b613e8b8361397d565b9150613c7b60208401613bdc565b60008060008060608587031215613eaf57600080fd5b8435613eba81613924565b93506020850135613eca81613924565b925060408501356001600160401b03811115613ee557600080fd5b613ef187828801613b47565b95989497509550505050565b60008060208385031215613f1057600080fd5b82356001600160401b03811115613f2657600080fd5b613f3285828601613939565b90969095509350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613f9357603f19888603018452613f81858351613a5b565b94509285019290850190600101613f65565b5092979650505050505050565b600080600060608486031215613fb557600080fd5b8335613fc081613924565b92506020840135613fd081613924565b91506040840135613fe081613e0d565b809150509250925092565b60008060408385031215613ffe57600080fd5b8235613e8b81613924565b6000806040838503121561401c57600080fd5b6140258361397d565b946020939093013593505050565b6000806000806060858703121561404957600080fd5b843561405481613924565b935060208501356001600160401b0381111561406f57600080fd5b61407b87828801613b47565b909450925050604085013565ffffffffffff8116811461409a57600080fd5b939692955090935050565b600181811c908216806140b957607f821691505b60208210810361201e57634e487b7160e01b600052602260045260246000fd5b600082516140eb818460208701613a37565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561411d57600080fd5b8151610abe81613ad2565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038581168252841660208201526060604082018190526000906117a69083018486614128565b6000808335601e1984360301811261419557600080fd5b8301803591506001600160401b038211156141af57600080fd5b60200191503681900382131561172357600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016141ec576141ec6141c4565b5060010190565b60006020828403121561420557600080fd5b8135610abe81613e0d565b65ffffffffffff818116838216019080821115611572576115726141c4565b60006020828403121561424157600080fd5b8151610abe81613924565b6001600160a01b03848116825283166020820152606060408201819052600090610ca190830184613a5b565b60006020828403121561428a57600080fd5b815164ffffffffff81168114610abe57600080fd5b601f821115610c2157600081815260208120601f850160051c810160208610156142c65750805b601f850160051c820191505b81811015610a38578281556001016142d2565b81516001600160401b038111156142fe576142fe613c84565b6143128161430c84546140a5565b8461429f565b602080601f831160018114614347576000841561432f5750858301515b600019600386901b1c1916600185901b178555610a38565b600085815260208120601f198616915b8281101561437657888601518255948401946001909101908401614357565b50858210156143945787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0383168152604060208201819052600090610ee290830184613a5b565b60006001600160401b03808616835280851660208401525060606040830152610ca16060830184613a5b565b6001600160401b0383168152604060208201526000610ee26040830184613a5b565b602081526000610ee2602083018486614128565b60006020828403121561443c57600080fd5b8151610abe81613e0d565b65ffffffffffff861681526001600160a01b038581166020830152841660408201526080606082018190526000906144829083018486614128565b979650505050505050565b6000808585111561449d57600080fd5b838611156144aa57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156144df5780818660040360031b1b83161692505b505092915050565b8181038181111561126d5761126d6141c4565b634e487b7160e01b600052603160045260246000fd5b63ffffffff828116828216039080821115611572576115726141c456fe5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a628769006eab09faeebddf4f4430139353ec193aaa0bd7382b47d6e52082f5add274e6005bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876904a2646970667358221220c75e51bcffecbb5e3c5cf69b5c16bcc41cbd86bd7f2f98e3b74d7c755c295a9764736f6c63430008140033",
1702
+ "deployedBytecode": "0x6080604052600436106102ae5760003560e01c806360d60e5111610175578063abd9bd2a116100dc578063d1f856ee11610095578063d78a83b11161006f578063d78a83b114610929578063f801a69814610949578063fa2921a414610983578063fe0776f5146109a357600080fd5b8063d1f856ee146108c9578063d22b5989146108e9578063d6bb62c61461090957600080fd5b8063abd9bd2a146107ea578063ac9650d81461080a578063b700961314610837578063b7d2b16214610873578063b8c5106714610893578063cc1b6c81146108b357600080fd5b8063853551b81161012e578063853551b81461073557806394c7d7ee14610755578063a166aa8914610775578063a3907d7114610795578063a5808e2f146107aa578063a64d95ce146107ca57600080fd5b806360d60e511461066257806368ed5d2e146106825780636d5115bd146106a257806371061398146106c257806375b238fc146107005780637f1fb07d1461071557600080fd5b80633656481c116102195780634c1da1e2116101d25780634c1da1e21461058557806352962952146105a5578063530dd456146105c55780635ae86e85146105e55780635bfa5027146106155780635fa8aad41461064257600080fd5b80633656481c146104a55780633adc277a146104dd5780633ca7c02a146105145780633fd855611461052f5780634136a33c1461054f5780634665096d1461056f57600080fd5b806318ff183c1161026b57806318ff183c146103c35780631cff79cd146103e357806325c471a0146103f65780632f2770db146104165780633078f1141461042b57806330cae1871461048557600080fd5b806308d6122d146102b35780630b0a93ba146102d55780630d8e6e2c1461031257806312be87271461034157806312e1ebc514610376578063167bd395146103a3575b600080fd5b3480156102bf57600080fd5b506102d36102ce366004613999565b6109c3565b005b3480156102e157600080fd5b506102f56102f03660046139ff565b610a40565b6040516001600160401b0390911681526020015b60405180910390f35b34801561031e57600080fd5b5060008051602061454e8339815191525460405160ff9091168152602001610309565b34801561034d57600080fd5b5061036161035c3660046139ff565b610a79565b60405163ffffffff9091168152602001610309565b34801561038257600080fd5b50610396610391366004613a1a565b610ac5565b6040516103099190613a87565b3480156103af57600080fd5b506102d36103be366004613ae0565b610be5565b3480156103cf57600080fd5b506102d36103de366004613b19565b610c26565b6103616103f1366004613b88565b610c62565b34801561040257600080fd5b506102d3610411366004613bf0565b610caa565b34801561042257600080fd5b506102d3610d2e565b34801561043757600080fd5b5061044b610446366004613c35565b610d57565b604051610309949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561049157600080fd5b506102d36104a0366004613c51565b610dce565b3480156104b157600080fd5b506104c56104c0366004613d26565b610e42565b6040516001600160a01b039091168152602001610309565b3480156104e957600080fd5b506104fd6104f8366004613d5a565b610ea5565b60405165ffffffffffff9091168152602001610309565b34801561052057600080fd5b506102f56001600160401b0381565b34801561053b57600080fd5b506102f561054a366004613d5a565b610eea565b34801561055b57600080fd5b5061036161056a366004613d5a565b610f61565b34801561057b57600080fd5b5062093a80610361565b34801561059157600080fd5b506103616105a0366004613a1a565b610f8e565b3480156105b157600080fd5b506102d36105c0366004613c51565b610fca565b3480156105d157600080fd5b506102f56105e03660046139ff565b611006565b3480156105f157600080fd5b50610605610600366004613a1a565b611038565b6040519015158152602001610309565b34801561062157600080fd5b506106356106303660046139ff565b6110df565b6040516103099190613d73565b34801561064e57600080fd5b506102d361065d366004613da2565b611183565b34801561066e57600080fd5b5061060561067d366004613d26565b6111a5565b34801561068e57600080fd5b506102d361069d366004613df1565b61120c565b3480156106ae57600080fd5b506102f56106bd366004613e23565b61122a565b3480156106ce57600080fd5b507f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876906545b604051908152602001610309565b34801561070c57600080fd5b506102f5600081565b34801561072157600080fd5b506106056107303660046139ff565b611273565b34801561074157600080fd5b506102d3610750366004613e51565b6112fd565b34801561076157600080fd5b506102d3610770366004613b88565b61133a565b34801561078157600080fd5b50610605610790366004613a1a565b611377565b3480156107a157600080fd5b506102d36113b0565b3480156107b657600080fd5b506106f26107c53660046139ff565b6113d2565b3480156107d657600080fd5b506102d36107e5366004613e6f565b611410565b3480156107f657600080fd5b506106f2610805366004613e99565b61144c565b34801561081657600080fd5b5061082a610825366004613efd565b611485565b6040516103099190613f3e565b34801561084357600080fd5b50610857610852366004613fa0565b611579565b60408051921515835263ffffffff909116602083015201610309565b34801561087f57600080fd5b506102d361088e366004613c35565b6115ce565b34801561089f57600080fd5b506102f56108ae366004613d26565b61164a565b3480156108bf57600080fd5b5062069780610361565b3480156108d557600080fd5b506108576108e4366004613c35565b6116ad565b3480156108f557600080fd5b506102d3610904366004613feb565b61172a565b34801561091557600080fd5b50610361610924366004613e99565b611766565b34801561093557600080fd5b506104c5610944366004614009565b6117b0565b34801561095557600080fd5b50610969610964366004614033565b6117ef565b6040805192835263ffffffff909116602083015201610309565b34801561098f57600080fd5b5061060561099e366004613d26565b61183e565b3480156109af57600080fd5b506102d36109be366004613c35565b6118a3565b836109cd81611038565b6109fa57604051632eae37fb60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b81610a0481611273565b610a2c57604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b610a388686868661191f565b505050505050565b600080610a4b611973565b6001600160401b0393841660009081526001918201602052604090200154600160401b900490921692915050565b600080610a84611973565b6001600160401b0384166000908152600182810160205260409091200154909150610abe90600160801b90046001600160701b0316611997565b9392505050565b610af9604051806060016040528060006001600160a01b0316815260200160608152602001600064ffffffffff1681525090565b6001600160a01b03828116600090815260008051602061452e83398151915260208181526040928390208351606081019094528054909416835260018401805492949291840191610b49906140a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610b75906140a5565b8015610bc25780601f10610b9757610100808354040283529160200191610bc2565b820191906000526020600020905b815481529060010190602001808311610ba557829003601f168201915b50505091835250506002919091015464ffffffffff166020909101529392505050565b81610bef81611038565b610c1757604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b610c2183836119b6565b505050565b81610c3081611038565b610c5857604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b610c2183836119c8565b600083610c6e81611038565b610c9657604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b610ca1858585611a27565b95945050505050565b82610cb481611273565b610cdc57604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b6001600160401b038416600090815260008051602061456e8339815191526020526040902060008051602061452e83398151915290610d1b9085611b68565b50610d27858585611b7d565b5050505050565b610d36611b99565b600060008051602061454e833981519152805461ff00191661010017905550565b6000806000806000610d67611973565b6001600160401b038816600090815260018201602090815260408083206001600160a01b038b1684529091529020805465ffffffffffff8116975091925090610dbf90600160301b90046001600160701b0316611c19565b979a9199509750945050505050565b81610dd881611273565b610e0057604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b81610e0a81611273565b610e3257604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b610e3c8484611c3c565b50505050565b60405160009060008051602061452e833981519152907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a6287690190610e859085906140d9565b908152604051908190036020019020546001600160a01b03169392505050565b600080610eb0611973565b600084815260028201602052604090205490915065ffffffffffff16610ed581611c4e565b610edf5780610ee2565b60005b949350505050565b7f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876906805460009160008051602061452e8339815191529184908110610f3057610f306140f5565b90600052602060002090600491828204019190066008029054906101000a90046001600160401b0316915050919050565b600080610f6c611973565b600093845260020160205250506040902054600160301b900463ffffffff1690565b600080610f99611973565b6001600160a01b038416600090815260208290526040902060010154909150610abe906001600160701b0316611997565b81610fd481611273565b610ffc57604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b610c218383611c7d565b600080611011611973565b6001600160401b039384166000908152600191820160205260409020015490921692915050565b6001600160a01b038116600090815260008051602061452e83398151915260208190526040808320600201549051638d38cd4b60e01b815264ffffffffff909116600482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b906024015b602060405180830381865af41580156110bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abe919061410b565b611113604051806060016040528060006001600160401b0316815260200160608152602001600064ffffffffff1681525090565b6001600160401b0382811660009081527f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a6287690360209081526040918290208251606081019093528054909316825260018301805460008051602061452e833981519152949284019190610b49906140a5565b61118b611b99565b6111958282611c8f565b90506111a18282611d8f565b5050565b60405160009060008051602061452e8339815191529082907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876901906111ea9086906140d9565b908152604051908190036020019020546001600160a01b031614159392505050565b611214611b99565b61121e8282611fc5565b90506111a18282612024565b600080611235611973565b6001600160a01b0385166000908152602091825260408082206001600160e01b03198716835290925220546001600160401b03169150505b92915050565b6001600160401b03811660009081527f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a628769036020526040808220600201549051638d38cd4b60e01b815264ffffffffff909116600482015260008051602061452e8339815191529073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b9060240161109e565b8261130781611273565b61132f57604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b610e3c848484612245565b3361134481611038565b61136c57604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b610e3c8484846122dc565b600080611382611973565b6001600160a01b0390931660009081526020939093525050604090206001015460ff600160701b9091041690565b6113b8611b99565b60008051602061454e833981519152805461ff0019169055565b6001600160401b038116600090815260008051602061456e8339815191526020526040812060008051602061452e83398151915290610abe90612383565b8161141a81611273565b61144257604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b610c21838361238d565b6000848484846040516020016114659493929190614151565b604051602081830303815290604052805190602001209050949350505050565b6060816001600160401b0381111561149f5761149f613c84565b6040519080825280602002602001820160405280156114d257816020015b60608152602001906001900390816114bd5790505b50905060005b8281101561157257611542308585848181106114f6576114f66140f5565b9050602002810190611508919061417e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061239f92505050565b828281518110611554576115546140f5565b6020026020010181905250808061156a906141da565b9150506114d8565b5092915050565b60008051602061454e83398151915280546000918291610100900460ff16156115b557604051632695f8ad60e01b815260040160405180910390fd5b6115c086868661240c565b92509250505b935093915050565b816115d881611273565b61160057604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b6001600160401b038316600090815260008051602061456e8339815191526020526040902060008051602061452e8339815191529061163f908461248f565b50610e3c84846124a4565b60405160009060008051602061452e833981519152907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a628769059061168d9085906140d9565b908152604051908190036020019020546001600160401b03169392505050565b60008067fffffffffffffffe196001600160401b038516016116d55750600190506000611723565b6000806116e28686610d57565b5050915091508165ffffffffffff1660001415801561171857506117046124b6565b65ffffffffffff168265ffffffffffff1611155b935091506117239050565b9250929050565b8161173481611038565b61175c57604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b610c2183836124c6565b60008361177281611038565b61179a57604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b6117a6868686866124d8565b9695505050505050565b6001600160401b038216600090815260008051602061456e8339815191526020526040812060008051602061452e83398151915290610ee29084612643565b600080856117fc81611038565b61182457604051632eae37fb60e01b81526001600160a01b03821660048201526024016109f1565b6118308787878761264f565b909890975095505050505050565b60405160009060008051602061452e833981519152907f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876905906118819085906140d9565b908152604051908190036020019020546001600160401b031615159392505050565b816118ad81611273565b6118d557604051632a9def6d60e01b81526001600160401b03821660048201526024016109f1565b6001600160401b038316600090815260008051602061456e8339815191526020526040902060008051602061452e83398151915290611914903361248f565b50610e3c84846127fa565b611927611b99565b60005b82811015610d275761196385858584818110611948576119486140f5565b905060200201602081019061195d91906141f3565b84612823565b61196c816141da565b905061192a565b7f77301bc69e8248c80abb894217605b71fa89ea6a9e8bdf359d9e8aa1dd62bf0090565b6000806119ac836001600160701b0316611c19565b5090949350505050565b6119be611b99565b6111a182826128b1565b6119d0611b99565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b158015611a1357600080fd5b505af1158015610a38573d6000803e3d6000fd5b600080611a32611973565b905033600080611a4483898989612957565b9150915081158015611a5a575063ffffffff8116155b15611aa8578288611a6b89896129aa565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b03191660448201526064016109f1565b6000611ab6848a8a8a61144c565b9050600063ffffffff8316151580611add5750611ad282610ea5565b65ffffffffffff1615155b15611aee57611aeb826129c2565b90505b6003860154611b068b611b018c8c6129aa565b612ad6565b8760030181905550611b508b8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250349250612b18915050565b50600390960195909555509293505050509392505050565b6000610abe836001600160a01b038416612bab565b611b85611b99565b610e3c8383611b9386610a79565b84612bfa565b33600080611ba8838236612e59565b9150915081610c21578063ffffffff16600003611c04576000611bcb8136612f11565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b038216602482015290925060440190506109f1565b610e3c611c14843060003661144c565b6129c2565b6000806000611c2f84611c2a6124b6565b613149565b9250925092509193909250565b611c44611b99565b6111a1828261319d565b6000611c586124b6565b65ffffffffffff16611c6d62093a8084614210565b65ffffffffffff16111592915050565b611c85611b99565b6111a1828261324f565b60606000836001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf5919061422f565b90506001600160a01b038416611d1e5760405163d2b391f360e01b815260040160405180910390fd5b6001600160a01b0381163014611d5a57604051630fbfff8960e41b81526001600160a01b038086166004830152821660248201526044016109f1565b8251600003611d8757604051636ff4782560e11b81526001600160a01b03851660048201526024016109f1565b509092915050565b60008051602061452e833981519152611da783611038565b15611dd0576040516372f0861b60e01b81526001600160a01b03841660048201526024016109f1565b611dd9826111a5565b15611e2657828160010183604051611df191906140d9565b908152604051908190036020018120546351a5c05760e11b82526109f192916001600160a01b0390911690859060040161424c565b6040518060600160405280846001600160a01b0316815260200183815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb39190614278565b64ffffffffff1690526001600160a01b03848116600090815260208481526040909120835181546001600160a01b03191693169290921782558201516001820190611efe90826142e5565b50604091820151600291909101805464ffffffffff191664ffffffffff9092169190911790555183906001830190611f379085906140d9565b9081526040516020918190038201812080546001600160a01b03199081166001600160a01b0395861617909155600285018054600181018255600091825293902090920180549092169286169290921790557fea8d4576c164e98cc7596bbd6e8153189eb76d8c3c5854bf48543e363e4ffd3e90611fb890859085906143a4565b60405180910390a1505050565b6060826001600160401b0316600003611ff157604051633aa1be8f60e21b815260040160405180910390fd5b815160000361201e5760405163d47728d760e01b81526001600160401b03841660048201526024016109f1565b50919050565b60008051602061452e83398151915261203c83611273565b15612065576040516310ed2a9160e11b81526001600160401b03841660048201526024016109f1565b61206e8261183e565b1561209a578261207d8361164a565b8360405163e6fbd51760e01b81526004016109f1939291906143c8565b6040518060600160405280846001600160401b0316815260200183815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121279190614278565b64ffffffffff1690526001600160401b03848116600090815260038401602090815260409091208351815467ffffffffffffffff19169316929092178255820151600182019061217790826142e5565b50604091820151600291909101805464ffffffffff191664ffffffffff90921691909117905551839060058301906121b09085906140d9565b90815260405160209181900382018120805467ffffffffffffffff19166001600160401b0394851617905560068401805460018101825560009182529290206004830401805460039093166008026101000a80850219909316938716929092029290921790557f0d24585326fa11eab3f4335f6413408017bd28072a57f6fbcc65c6606612204d90611fb890859085906143f4565b61224d611b99565b6001600160401b038316158061226b57506001600160401b03838116145b156122945760405163061c6a4360e21b81526001600160401b03841660048201526024016109f1565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a45083836040516122cf929190614416565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa15801561231d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612341919061442a565b6001600160e01b0319161461237457604051630641fee960e31b81526001600160a01b03821660048201526024016109f1565b610d27611c148583868661144c565b600061126d825490565b612395611b99565b6111a1828261330f565b6060600080846001600160a01b0316846040516123bc91906140d9565b600060405180830381855af49150503d80600081146123f7576040519150601f19603f3d011682016040523d82523d6000602084013e6123fc565b606091505b5091509150610ca185838361343c565b60008061241884611377565b15612428575060009050806115c6565b306001600160a01b0386160361244d576124428484613498565b6000915091506115c6565b6000612459858561122a565b905060008061246883896116ad565b915091508161247957600080612483565b63ffffffff811615815b945094505050506115c6565b6000610abe836001600160a01b0384166134bd565b6124ac611b99565b610c2182826135b0565b60006124c1426136af565b905090565b6124ce611b99565b6111a182826136e6565b6000806124e3611973565b90503360006124f286866129aa565b905060006125028989898961144c565b600081815260028601602052604081205491925065ffffffffffff90911690036125425760405163060a299b60e41b8152600481018290526024016109f1565b826001600160a01b0316896001600160a01b0316146125de5760006125686000856116ad565b509050600061258361257d6102f08c8761122a565b866116ad565b50905081158015612592575080155b156125db57604051630ff89d4760e21b81526001600160a01b038087166004830152808d1660248301528b1660448201526001600160e01b0319851660648201526084016109f1565b50505b6000818152600285016020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a39998505050505050505050565b6000610abe83836137b2565b600080600061265c611973565b905033600061266d828a8a8a612957565b91505060008163ffffffff166126816124b6565b61268b9190614210565b905063ffffffff821615806126c2575060008765ffffffffffff161180156126c257508065ffffffffffff168765ffffffffffff16105b156126d357828a611a6b8b8b6129aa565b6126ed8765ffffffffffff168265ffffffffffff166137dc565b96506126fb838b8b8b61144c565b9550612706866137f2565b83600201600087815260200190815260200160002060000160069054906101000a900463ffffffff1660010194508684600201600088815260200190815260200160002060000160006101000a81548165ffffffffffff021916908365ffffffffffff1602179055508484600201600088815260200190815260200160002060000160066101000a81548163ffffffff021916908363ffffffff1602179055508463ffffffff16867f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b489868e8e8e6040516127e5959493929190614447565b60405180910390a35050505094509492505050565b6001600160a01b03811633146124ac57604051635f159e6360e01b815260040160405180910390fd5b600061282d611973565b6001600160a01b0385166000818152602083815260408083206001600160e01b0319891680855290835292819020805467ffffffffffffffff19166001600160401b03891690811790915590519283529394507f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a350505050565b60006128bb611973565b9050306001600160a01b038416036128f157604051630b40d17960e31b81526001600160a01b03841660048201526024016109f1565b6001600160a01b038316600081815260208390526040908190206001018054851515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb138906122cf90851515815260200190565b600080306001600160a01b0386160361297e57612975868585612e59565b915091506129a1565b6004831061299a57612995868661085287876129aa565b612975565b5060009050805b94509492505050565b60006129b9600482848661448d565b610abe916144b7565b6000806129cd611973565b600084815260028201602052604081205491925065ffffffffffff821691600160301b900463ffffffff1690829003612a1c5760405163060a299b60e41b8152600481018690526024016109f1565b612a246124b6565b65ffffffffffff168265ffffffffffff161115612a5757604051630c65b5bd60e11b8152600481018690526024016109f1565b612a6082611c4e565b15612a8157604051631e2975b960e21b8152600481018690526024016109f1565b6000858152600284016020526040808220805465ffffffffffff191690555163ffffffff83169187917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a3949350505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b606081471015612b3d5760405163cd78605960e01b81523060048201526024016109f1565b600080856001600160a01b03168486604051612b5991906140d9565b60006040518083038185875af1925050503d8060008114612b96576040519150601f19603f3d011682016040523d82523d6000602084013e612b9b565b606091505b50915091506117a686838361343c565b6000818152600183016020526040812054612bf25750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561126d565b50600061126d565b600080612c05611973565b905067fffffffffffffffe196001600160401b03871601612c445760405163061c6a4360e21b81526001600160401b03871660048201526024016109f1565b6001600160401b038616600090815260018201602090815260408083206001600160a01b038916845290915281205465ffffffffffff1615908115612d3a578563ffffffff16612c926124b6565b612c9c9190614210565b905060405180604001604052808265ffffffffffff168152602001612cca8763ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b038a16600090815260018601602090815260408083206001600160a01b038d1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff90911617919091179055612dea565b6001600160401b038816600090815260018401602090815260408083206001600160a01b038b168452909152812054612d8691600160301b9091046001600160701b031690879061384e565b6001600160401b038a16600090815260018601602090815260408083206001600160a01b038d168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8716815265ffffffffffff831660208201528315158183015290516001600160a01b038916916001600160401b038b16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a3509695505050505050565b6000806004831015612e70575060009050806115c6565b306001600160a01b03861603612e935761244230612e8e86866129aa565b613498565b6000806000612ea28787612f11565b92509250925082612ebc57600080945094505050506115c6565b600080612ec9848b6116ad565b9150915081612ee3576000809650965050505050506115c6565b612ef98363ffffffff168263ffffffff166137dc565b63ffffffff8116159b909a5098505050505050505050565b600080806004841015612f2c57506000915081905080613142565b6000612f3886866129aa565b90506001600160e01b03198116633476ae9760e11b1480612f6957506001600160e01b031981166310a6aa3760e31b145b80612f8457506001600160e01b031981166330cae18760e01b145b80612f9f57506001600160e01b0319811663294b14a960e11b145b80612fba57506001600160e01b03198116635326cae760e11b145b80612fd557506001600160e01b031981166317ea2ab560e21b145b80612ff057506001600160e01b0319811663d22b598960e01b145b8061300b57506001600160e01b0319811663a3907d7160e01b145b8061302657506001600160e01b03198116632f2770db60e01b145b1561303c57600160008093509350935050613142565b6001600160e01b0319811663063fc60f60e21b148061306b57506001600160e01b0319811663167bd39560e01b145b8061308657506001600160e01b031981166308d6122d60e01b145b156130c857600061309b60246004888a61448d565b8101906130a89190613a1a565b905060006130b582610f8e565b6001965060009550935061314292505050565b6001600160e01b0319811663012e238d60e51b14806130f757506001600160e01b03198116635be958b160e11b145b1561313557600061310c60246004888a61448d565b81019061311991906139ff565b9050600161312682611006565b60009450945094505050613142565b6000806000935093509350505b9250925092565b6000808069ffffffffffffffffffff602086901c166001600160701b03861665ffffffffffff604088901c81169087168111156131885782828261318d565b816000805b9550955095505050509250925092565b60006131a7611973565b90506001600160401b03831615806131c757506001600160401b03838116145b156131f05760405163061c6a4360e21b81526001600160401b03841660048201526024016109f1565b6001600160401b03838116600081815260018481016020526040808320909101805467ffffffffffffffff19169487169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a3505050565b6000613259611973565b90506001600160401b038316158061327957506001600160401b03838116145b156132a25760405163061c6a4360e21b81526001600160401b03841660048201526024016109f1565b6001600160401b0383811660008181526001848101602052604080832090910180546fffffffffffffffff00000000000000001916600160401b958816958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a3505050565b6000613319611973565b905067fffffffffffffffe196001600160401b038416016133585760405163061c6a4360e21b81526001600160401b03841660048201526024016109f1565b6001600160401b0383166000908152600182810160205260408220015461339390600160801b90046001600160701b0316846206978061384e565b6001600160401b038616600081815260018087016020526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b489061342e908690859063ffffffff92909216825265ffffffffffff16602082015260400190565b60405180910390a250505050565b6060826134515761344c826138f8565b610abe565b815115801561346857506001600160a01b0384163b155b1561349157604051639996b31560e01b81526001600160a01b03851660048201526024016109f1565b5080610abe565b6000806134a3611973565b90506134af8484612ad6565b600390910154149392505050565b600081815260018301602052604081205480156135a65760006134e16001836144e7565b85549091506000906134f5906001906144e7565b905080821461355a576000866000018281548110613515576135156140f5565b9060005260206000200154905080876000018481548110613538576135386140f5565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061356b5761356b6144fa565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061126d565b600091505061126d565b6000806135bb611973565b905067fffffffffffffffe196001600160401b038516016135fa5760405163061c6a4360e21b81526001600160401b03851660048201526024016109f1565b6001600160401b038416600090815260018201602090815260408083206001600160a01b038716845290915281205465ffffffffffff16900361364157600091505061126d565b6001600160401b038416600081815260018301602090815260408083206001600160a01b038816808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a35060019392505050565b600065ffffffffffff8211156136e2576040516306dfcc6560e41b815260306004820152602481018390526044016109f1565b5090565b60006136f0611973565b9050600061372883620697806001600160a01b0387166000908152602086905260409020600101546001600160701b0316919061384e565b6001600160a01b0386166000818152602086815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8816815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c910161342e565b60008260000182815481106137c9576137c96140f5565b9060005260206000200154905092915050565b60008183116137eb5781610abe565b5090919050565b60006137fc611973565b600083815260028201602052604090205490915065ffffffffffff16801580159061382d575061382b81611c4e565b155b15610c215760405163813e945960e01b8152600481018490526024016109f1565b6000806000613865866001600160701b0316611997565b905060006138a28563ffffffff168763ffffffff168463ffffffff161161388d576000613897565b6138978885614510565b63ffffffff166137dc565b90508063ffffffff166138b36124b6565b6138bd9190614210565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b8051156139085780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b038116811461392157600080fd5b60008083601f84011261394b57600080fd5b5081356001600160401b0381111561396257600080fd5b6020830191508360208260051b850101111561172357600080fd5b80356001600160401b038116811461399457600080fd5b919050565b600080600080606085870312156139af57600080fd5b84356139ba81613924565b935060208501356001600160401b038111156139d557600080fd5b6139e187828801613939565b90945092506139f490506040860161397d565b905092959194509250565b600060208284031215613a1157600080fd5b610abe8261397d565b600060208284031215613a2c57600080fd5b8135610abe81613924565b60005b83811015613a52578181015183820152602001613a3a565b50506000910152565b60008151808452613a73816020860160208601613a37565b601f01601f19169290920160200192915050565b602080825282516001600160a01b03168282015282015160606040830152600090613ab56080840182613a5b565b905064ffffffffff60408501511660608401528091505092915050565b801515811461392157600080fd5b60008060408385031215613af357600080fd5b8235613afe81613924565b91506020830135613b0e81613ad2565b809150509250929050565b60008060408385031215613b2c57600080fd5b8235613b3781613924565b91506020830135613b0e81613924565b60008083601f840112613b5957600080fd5b5081356001600160401b03811115613b7057600080fd5b60208301915083602082850101111561172357600080fd5b600080600060408486031215613b9d57600080fd5b8335613ba881613924565b925060208401356001600160401b03811115613bc357600080fd5b613bcf86828701613b47565b9497909650939450505050565b803563ffffffff8116811461399457600080fd5b600080600060608486031215613c0557600080fd5b613c0e8461397d565b92506020840135613c1e81613924565b9150613c2c60408501613bdc565b90509250925092565b60008060408385031215613c4857600080fd5b613b378361397d565b60008060408385031215613c6457600080fd5b613c6d8361397d565b9150613c7b6020840161397d565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613cab57600080fd5b81356001600160401b0380821115613cc557613cc5613c84565b604051601f8301601f19908116603f01168101908282118183101715613ced57613ced613c84565b81604052838152866020858801011115613d0657600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215613d3857600080fd5b81356001600160401b03811115613d4e57600080fd5b610ee284828501613c9a565b600060208284031215613d6c57600080fd5b5035919050565b602081526001600160401b0382511660208201526000602083015160606040840152613ab56080840182613a5b565b60008060408385031215613db557600080fd5b8235613dc081613924565b915060208301356001600160401b03811115613ddb57600080fd5b613de785828601613c9a565b9150509250929050565b60008060408385031215613e0457600080fd5b613dc08361397d565b6001600160e01b03198116811461392157600080fd5b60008060408385031215613e3657600080fd5b8235613e4181613924565b91506020830135613b0e81613e0d565b600080600060408486031215613e6657600080fd5b613ba88461397d565b60008060408385031215613e8257600080fd5b613e8b8361397d565b9150613c7b60208401613bdc565b60008060008060608587031215613eaf57600080fd5b8435613eba81613924565b93506020850135613eca81613924565b925060408501356001600160401b03811115613ee557600080fd5b613ef187828801613b47565b95989497509550505050565b60008060208385031215613f1057600080fd5b82356001600160401b03811115613f2657600080fd5b613f3285828601613939565b90969095509350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613f9357603f19888603018452613f81858351613a5b565b94509285019290850190600101613f65565b5092979650505050505050565b600080600060608486031215613fb557600080fd5b8335613fc081613924565b92506020840135613fd081613924565b91506040840135613fe081613e0d565b809150509250925092565b60008060408385031215613ffe57600080fd5b8235613e8b81613924565b6000806040838503121561401c57600080fd5b6140258361397d565b946020939093013593505050565b6000806000806060858703121561404957600080fd5b843561405481613924565b935060208501356001600160401b0381111561406f57600080fd5b61407b87828801613b47565b909450925050604085013565ffffffffffff8116811461409a57600080fd5b939692955090935050565b600181811c908216806140b957607f821691505b60208210810361201e57634e487b7160e01b600052602260045260246000fd5b600082516140eb818460208701613a37565b9190910192915050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561411d57600080fd5b8151610abe81613ad2565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038581168252841660208201526060604082018190526000906117a69083018486614128565b6000808335601e1984360301811261419557600080fd5b8301803591506001600160401b038211156141af57600080fd5b60200191503681900382131561172357600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016141ec576141ec6141c4565b5060010190565b60006020828403121561420557600080fd5b8135610abe81613e0d565b65ffffffffffff818116838216019080821115611572576115726141c4565b60006020828403121561424157600080fd5b8151610abe81613924565b6001600160a01b03848116825283166020820152606060408201819052600090610ca190830184613a5b565b60006020828403121561428a57600080fd5b815164ffffffffff81168114610abe57600080fd5b601f821115610c2157600081815260208120601f850160051c810160208610156142c65750805b601f850160051c820191505b81811015610a38578281556001016142d2565b81516001600160401b038111156142fe576142fe613c84565b6143128161430c84546140a5565b8461429f565b602080601f831160018114614347576000841561432f5750858301515b600019600386901b1c1916600185901b178555610a38565b600085815260208120601f198616915b8281101561437657888601518255948401946001909101908401614357565b50858210156143945787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0383168152604060208201819052600090610ee290830184613a5b565b60006001600160401b03808616835280851660208401525060606040830152610ca16060830184613a5b565b6001600160401b0383168152604060208201526000610ee26040830184613a5b565b602081526000610ee2602083018486614128565b60006020828403121561443c57600080fd5b8151610abe81613e0d565b65ffffffffffff861681526001600160a01b038581166020830152841660408201526080606082018190526000906144829083018486614128565b979650505050505050565b6000808585111561449d57600080fd5b838611156144aa57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156144df5780818660040360031b1b83161692505b505092915050565b8181038181111561126d5761126d6141c4565b634e487b7160e01b600052603160045260246000fd5b63ffffffff828116828216039080821115611572576115726141c456fe5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a628769006eab09faeebddf4f4430139353ec193aaa0bd7382b47d6e52082f5add274e6005bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876904a2646970667358221220c75e51bcffecbb5e3c5cf69b5c16bcc41cbd86bd7f2f98e3b74d7c755c295a9764736f6c63430008140033",
1703
+ "linkReferences": {
1704
+ "contracts/type/Timestamp.sol": {
1705
+ "TimestampLib": [
1706
+ {
1707
+ "length": 20,
1708
+ "start": 4256
1709
+ },
1710
+ {
1711
+ "length": 20,
1712
+ "start": 4859
1713
+ },
1714
+ {
1715
+ "length": 20,
1716
+ "start": 7784
1717
+ },
1718
+ {
1719
+ "length": 20,
1720
+ "start": 8412
1721
+ }
1722
+ ]
1723
+ }
1724
+ },
1725
+ "deployedLinkReferences": {
1726
+ "contracts/type/Timestamp.sol": {
1727
+ "TimestampLib": [
1728
+ {
1729
+ "length": 20,
1730
+ "start": 4224
1731
+ },
1732
+ {
1733
+ "length": 20,
1734
+ "start": 4827
1735
+ },
1736
+ {
1737
+ "length": 20,
1738
+ "start": 7752
1739
+ },
1740
+ {
1741
+ "length": 20,
1742
+ "start": 8380
1743
+ }
1744
+ ]
1745
+ }
1746
+ }
1747
+ }