@etherisc/gif-next 0.0.2-fd4931b-974 → 0.0.2-fd9539f-062

Sign up to get free protection for your applications and to get access to all the features.
Files changed (432) hide show
  1. package/README.md +20 -3
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +19 -13
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +115 -80
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +86 -59
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +11 -5
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +20 -1
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +32 -101
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +83 -71
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +121 -12
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +105 -85
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +125 -29
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +195 -64
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +206 -49
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +79 -36
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +248 -118
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  35. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -71
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  47. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  49. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +10 -0
  51. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  53. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  55. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  57. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  59. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  61. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +91 -48
  63. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +74 -43
  65. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +20 -1
  67. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -5
  69. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +35 -1
  71. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  72. package/artifacts/contracts/pool/Pool.sol/Pool.json +18 -12
  73. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +84 -42
  75. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -40
  77. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +79 -36
  79. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +68 -37
  81. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +119 -68
  83. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +88 -53
  85. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +20 -1
  87. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +20 -1
  89. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +20 -1
  91. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +20 -1
  93. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +11 -5
  95. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.json +20 -1
  97. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +97 -46
  99. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +77 -42
  101. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.json +105 -62
  103. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +81 -50
  105. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  106. package/artifacts/contracts/product/Product.sol/Product.json +18 -12
  107. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.json +61 -26
  109. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +59 -32
  111. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  113. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +82 -45
  115. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -1
  117. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  119. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  120. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/Registry.sol/Registry.json +254 -97
  122. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -15
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +51 -35
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +288 -182
  130. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  132. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
  134. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  135. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +46 -177
  136. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  138. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  140. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  144. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  148. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  149. package/artifacts/contracts/shared/Component.sol/Component.json +18 -12
  150. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  151. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +119 -69
  152. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +85 -54
  154. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  155. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +20 -1
  156. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  157. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  158. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  160. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  162. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  164. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  165. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +11 -5
  166. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  167. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -1
  168. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +11 -5
  170. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +0 -10
  172. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  173. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  174. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  175. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  176. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  178. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  180. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  181. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  182. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  183. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  184. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  185. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +18 -12
  186. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  187. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +10 -20
  188. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  189. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +6 -6
  190. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
  191. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +27 -35
  192. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
  194. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  196. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  197. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +35 -16
  198. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  199. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +15 -9
  200. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  201. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  202. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  203. package/artifacts/contracts/shared/Service.sol/Service.json +20 -1
  204. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  205. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  206. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  207. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  208. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  209. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  210. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +247 -579
  211. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  212. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +471 -62
  213. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  214. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  215. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  216. package/artifacts/contracts/staking/Staking.sol/Staking.json +303 -798
  217. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  218. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +81 -164
  219. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  220. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +368 -39
  221. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  222. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +503 -120
  223. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  224. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +67 -43
  225. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  226. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  227. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  228. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +281 -18
  229. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  230. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  231. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  232. package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
  233. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  234. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +40 -2
  235. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  236. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  237. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  239. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  241. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  242. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  243. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
  245. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  246. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  247. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +96 -2
  249. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  251. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  253. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  254. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  255. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  257. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +114 -4
  259. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +52 -2
  261. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  262. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  263. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  264. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  265. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  267. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  268. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  269. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  271. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  273. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -2
  275. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  277. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  279. package/contracts/distribution/Distribution.sol +2 -4
  280. package/contracts/distribution/DistributionService.sol +5 -6
  281. package/contracts/distribution/DistributionServiceManager.sol +1 -13
  282. package/contracts/distribution/IDistributionComponent.sol +1 -1
  283. package/contracts/distribution/IDistributionService.sol +1 -1
  284. package/contracts/instance/BundleManager.sol +1 -1
  285. package/contracts/instance/IInstance.sol +22 -12
  286. package/contracts/instance/IInstanceService.sol +27 -13
  287. package/contracts/instance/Instance.sol +85 -50
  288. package/contracts/instance/InstanceAdmin.sol +331 -0
  289. package/contracts/instance/InstanceAuthorizationsLib.sol +193 -152
  290. package/contracts/instance/InstanceReader.sol +33 -7
  291. package/contracts/instance/InstanceService.sol +120 -48
  292. package/contracts/instance/InstanceServiceManager.sol +1 -1
  293. package/contracts/instance/InstanceStore.sol +30 -21
  294. package/contracts/instance/base/BalanceStore.sol +12 -7
  295. package/contracts/instance/base/Cloneable.sol +3 -26
  296. package/contracts/instance/base/ObjectCounter.sol +21 -0
  297. package/contracts/instance/base/ObjectManager.sol +2 -4
  298. package/contracts/instance/module/IAccess.sol +3 -11
  299. package/contracts/instance/module/IBundle.sol +1 -1
  300. package/contracts/instance/module/IComponents.sol +1 -1
  301. package/contracts/instance/module/IDistribution.sol +1 -1
  302. package/contracts/instance/module/IPolicy.sol +1 -1
  303. package/contracts/instance/module/IRisk.sol +1 -1
  304. package/contracts/mock/Dip.sol +1 -1
  305. package/contracts/oracle/IOracle.sol +20 -0
  306. package/contracts/oracle/IOracleComponent.sol +32 -0
  307. package/contracts/oracle/IOracleService.sol +65 -0
  308. package/contracts/oracle/Oracle.sol +145 -0
  309. package/contracts/oracle/OracleService.sol +278 -0
  310. package/contracts/oracle/OracleServiceManager.sol +42 -0
  311. package/contracts/pool/BundleService.sol +20 -20
  312. package/contracts/pool/BundleServiceManager.sol +1 -1
  313. package/contracts/pool/IBundleService.sol +1 -1
  314. package/contracts/pool/IPoolComponent.sol +1 -1
  315. package/contracts/pool/IPoolService.sol +4 -1
  316. package/contracts/pool/Pool.sol +1 -1
  317. package/contracts/pool/PoolService.sol +38 -10
  318. package/contracts/pool/PoolServiceManager.sol +1 -1
  319. package/contracts/product/ApplicationService.sol +6 -6
  320. package/contracts/product/ApplicationServiceManager.sol +1 -1
  321. package/contracts/product/ClaimService.sol +12 -7
  322. package/contracts/product/ClaimServiceManager.sol +1 -1
  323. package/contracts/product/IApplicationService.sol +1 -1
  324. package/contracts/product/IClaimService.sol +7 -1
  325. package/contracts/product/IPolicyService.sol +1 -1
  326. package/contracts/product/IPricingService.sol +1 -1
  327. package/contracts/product/IProductComponent.sol +1 -1
  328. package/contracts/product/IProductService.sol +1 -1
  329. package/contracts/product/PolicyService.sol +9 -7
  330. package/contracts/product/PolicyServiceManager.sol +1 -1
  331. package/contracts/product/PricingService.sol +8 -9
  332. package/contracts/product/PricingServiceManager.sol +1 -1
  333. package/contracts/product/Product.sol +1 -1
  334. package/contracts/product/ProductService.sol +6 -6
  335. package/contracts/product/ProductServiceManager.sol +1 -1
  336. package/contracts/registry/ChainNft.sol +2 -1
  337. package/contracts/registry/IRegistry.sol +21 -15
  338. package/contracts/registry/IRegistryService.sol +2 -1
  339. package/contracts/registry/IServiceAuthorization.sol +35 -0
  340. package/contracts/registry/ITransferInterceptor.sol +1 -1
  341. package/contracts/registry/Registry.sol +86 -67
  342. package/contracts/registry/RegistryAdmin.sol +333 -0
  343. package/contracts/registry/RegistryService.sol +9 -71
  344. package/contracts/registry/RegistryServiceManager.sol +2 -21
  345. package/contracts/registry/ReleaseManager.sol +219 -222
  346. package/contracts/registry/ServiceAuthorization.sol +86 -0
  347. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  348. package/contracts/registry/TokenRegistry.sol +57 -61
  349. package/contracts/shared/AccessAdmin.sol +759 -0
  350. package/contracts/shared/AccessManagerCustom.sol +741 -0
  351. package/contracts/shared/AccessManagerExtended.sol +481 -0
  352. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  353. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  354. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  355. package/contracts/shared/Component.sol +9 -14
  356. package/contracts/shared/ComponentService.sol +40 -18
  357. package/contracts/shared/ComponentServiceManager.sol +1 -1
  358. package/contracts/shared/ComponentVerifyingService.sol +14 -8
  359. package/contracts/shared/ERC165.sol +1 -1
  360. package/contracts/shared/IAccessAdmin.sol +168 -0
  361. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  362. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  363. package/contracts/shared/IComponent.sol +4 -8
  364. package/contracts/shared/IComponentService.sol +12 -1
  365. package/contracts/shared/IInstanceLinkedComponent.sol +1 -1
  366. package/contracts/shared/IKeyValueStore.sol +2 -2
  367. package/contracts/shared/ILifecycle.sol +1 -1
  368. package/contracts/shared/INftOwnable.sol +2 -2
  369. package/contracts/shared/IPolicyHolder.sol +1 -1
  370. package/contracts/shared/IRegisterable.sol +1 -1
  371. package/contracts/shared/IRegistryLinked.sol +1 -1
  372. package/contracts/shared/IService.sol +8 -1
  373. package/contracts/shared/IVersionable.sol +1 -1
  374. package/contracts/shared/InitializableCustom.sol +177 -0
  375. package/contracts/shared/InstanceLinkedComponent.sol +2 -3
  376. package/contracts/shared/KeyValueStore.sol +2 -5
  377. package/contracts/shared/Lifecycle.sol +12 -3
  378. package/contracts/shared/NftIdSetManager.sol +3 -7
  379. package/contracts/shared/NftOwnable.sol +3 -14
  380. package/contracts/shared/PolicyHolder.sol +3 -2
  381. package/contracts/shared/ProxyManager.sol +7 -3
  382. package/contracts/shared/Registerable.sol +1 -1
  383. package/contracts/shared/RegistryLinked.sol +1 -1
  384. package/contracts/shared/Service.sol +28 -22
  385. package/contracts/shared/TokenHandler.sol +1 -1
  386. package/contracts/shared/UpgradableProxyWithAdmin.sol +1 -1
  387. package/contracts/shared/Versionable.sol +1 -1
  388. package/contracts/staking/IStaking.sol +94 -39
  389. package/contracts/staking/IStakingService.sol +71 -40
  390. package/contracts/staking/StakeManagerLib.sol +231 -0
  391. package/contracts/staking/Staking.sol +303 -138
  392. package/contracts/staking/StakingManager.sol +23 -21
  393. package/contracts/staking/StakingReader.sol +120 -25
  394. package/contracts/staking/StakingService.sol +194 -77
  395. package/contracts/staking/StakingServiceManager.sol +3 -3
  396. package/contracts/staking/StakingStore.sol +613 -0
  397. package/contracts/staking/TargetManagerLib.sol +77 -11
  398. package/contracts/type/AddressSet.sol +1 -1
  399. package/contracts/type/Amount.sol +16 -2
  400. package/contracts/type/Blocknumber.sol +14 -2
  401. package/contracts/type/ClaimId.sol +1 -1
  402. package/contracts/type/DistributorType.sol +1 -1
  403. package/contracts/type/Fee.sol +1 -1
  404. package/contracts/type/Key32.sol +1 -1
  405. package/contracts/type/NftId.sol +9 -9
  406. package/contracts/type/NftIdSet.sol +1 -1
  407. package/contracts/type/ObjectType.sol +140 -68
  408. package/contracts/type/PayoutId.sol +1 -1
  409. package/contracts/type/Referral.sol +1 -1
  410. package/contracts/type/RequestId.sol +75 -0
  411. package/contracts/type/RiskId.sol +1 -1
  412. package/contracts/type/RoleId.sol +79 -21
  413. package/contracts/type/Seconds.sol +19 -1
  414. package/contracts/type/Selector.sol +102 -0
  415. package/contracts/type/StateId.sol +13 -1
  416. package/contracts/type/String.sol +53 -0
  417. package/contracts/type/Timestamp.sol +7 -3
  418. package/contracts/type/UFixed.sol +1 -1
  419. package/contracts/type/Version.sol +1 -1
  420. package/package.json +6 -3
  421. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  422. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  423. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  424. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -298
  425. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  426. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  427. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  428. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  429. package/contracts/instance/InstanceAccessManager.sol +0 -543
  430. package/contracts/registry/RegistryAccessManager.sol +0 -167
  431. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  432. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -0,0 +1,1856 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "AccessManagerExtendedWithDisableInitializeable",
4
+ "sourceName": "contracts/shared/AccessManagerExtendedWithDisableInitializeable.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
+ {
850
+ "internalType": "Seconds",
851
+ "name": "delay",
852
+ "type": "uint40"
853
+ }
854
+ ],
855
+ "name": "disable",
856
+ "outputs": [],
857
+ "stateMutability": "nonpayable",
858
+ "type": "function"
859
+ },
860
+ {
861
+ "inputs": [],
862
+ "name": "enable",
863
+ "outputs": [],
864
+ "stateMutability": "nonpayable",
865
+ "type": "function"
866
+ },
867
+ {
868
+ "inputs": [
869
+ {
870
+ "internalType": "address",
871
+ "name": "target",
872
+ "type": "address"
873
+ },
874
+ {
875
+ "internalType": "bytes",
876
+ "name": "data",
877
+ "type": "bytes"
878
+ }
879
+ ],
880
+ "name": "execute",
881
+ "outputs": [
882
+ {
883
+ "internalType": "uint32",
884
+ "name": "",
885
+ "type": "uint32"
886
+ }
887
+ ],
888
+ "stateMutability": "payable",
889
+ "type": "function"
890
+ },
891
+ {
892
+ "inputs": [],
893
+ "name": "expiration",
894
+ "outputs": [
895
+ {
896
+ "internalType": "uint32",
897
+ "name": "",
898
+ "type": "uint32"
899
+ }
900
+ ],
901
+ "stateMutability": "view",
902
+ "type": "function"
903
+ },
904
+ {
905
+ "inputs": [
906
+ {
907
+ "internalType": "uint64",
908
+ "name": "roleId",
909
+ "type": "uint64"
910
+ },
911
+ {
912
+ "internalType": "address",
913
+ "name": "account",
914
+ "type": "address"
915
+ }
916
+ ],
917
+ "name": "getAccess",
918
+ "outputs": [
919
+ {
920
+ "internalType": "uint48",
921
+ "name": "since",
922
+ "type": "uint48"
923
+ },
924
+ {
925
+ "internalType": "uint32",
926
+ "name": "currentDelay",
927
+ "type": "uint32"
928
+ },
929
+ {
930
+ "internalType": "uint32",
931
+ "name": "pendingDelay",
932
+ "type": "uint32"
933
+ },
934
+ {
935
+ "internalType": "uint48",
936
+ "name": "effect",
937
+ "type": "uint48"
938
+ }
939
+ ],
940
+ "stateMutability": "view",
941
+ "type": "function"
942
+ },
943
+ {
944
+ "inputs": [
945
+ {
946
+ "internalType": "bytes32",
947
+ "name": "id",
948
+ "type": "bytes32"
949
+ }
950
+ ],
951
+ "name": "getNonce",
952
+ "outputs": [
953
+ {
954
+ "internalType": "uint32",
955
+ "name": "",
956
+ "type": "uint32"
957
+ }
958
+ ],
959
+ "stateMutability": "view",
960
+ "type": "function"
961
+ },
962
+ {
963
+ "inputs": [
964
+ {
965
+ "internalType": "uint64",
966
+ "name": "roleId",
967
+ "type": "uint64"
968
+ }
969
+ ],
970
+ "name": "getRoleAdmin",
971
+ "outputs": [
972
+ {
973
+ "internalType": "uint64",
974
+ "name": "",
975
+ "type": "uint64"
976
+ }
977
+ ],
978
+ "stateMutability": "view",
979
+ "type": "function"
980
+ },
981
+ {
982
+ "inputs": [
983
+ {
984
+ "internalType": "uint64",
985
+ "name": "roleId",
986
+ "type": "uint64"
987
+ }
988
+ ],
989
+ "name": "getRoleGrantDelay",
990
+ "outputs": [
991
+ {
992
+ "internalType": "uint32",
993
+ "name": "",
994
+ "type": "uint32"
995
+ }
996
+ ],
997
+ "stateMutability": "view",
998
+ "type": "function"
999
+ },
1000
+ {
1001
+ "inputs": [
1002
+ {
1003
+ "internalType": "uint64",
1004
+ "name": "roleId",
1005
+ "type": "uint64"
1006
+ }
1007
+ ],
1008
+ "name": "getRoleGuardian",
1009
+ "outputs": [
1010
+ {
1011
+ "internalType": "uint64",
1012
+ "name": "",
1013
+ "type": "uint64"
1014
+ }
1015
+ ],
1016
+ "stateMutability": "view",
1017
+ "type": "function"
1018
+ },
1019
+ {
1020
+ "inputs": [
1021
+ {
1022
+ "internalType": "uint256",
1023
+ "name": "idx",
1024
+ "type": "uint256"
1025
+ }
1026
+ ],
1027
+ "name": "getRoleId",
1028
+ "outputs": [
1029
+ {
1030
+ "internalType": "uint64",
1031
+ "name": "roleId",
1032
+ "type": "uint64"
1033
+ }
1034
+ ],
1035
+ "stateMutability": "view",
1036
+ "type": "function"
1037
+ },
1038
+ {
1039
+ "inputs": [
1040
+ {
1041
+ "internalType": "string",
1042
+ "name": "name",
1043
+ "type": "string"
1044
+ }
1045
+ ],
1046
+ "name": "getRoleId",
1047
+ "outputs": [
1048
+ {
1049
+ "internalType": "uint64",
1050
+ "name": "roleId",
1051
+ "type": "uint64"
1052
+ }
1053
+ ],
1054
+ "stateMutability": "view",
1055
+ "type": "function"
1056
+ },
1057
+ {
1058
+ "inputs": [
1059
+ {
1060
+ "internalType": "uint64",
1061
+ "name": "roleId",
1062
+ "type": "uint64"
1063
+ }
1064
+ ],
1065
+ "name": "getRoleInfo",
1066
+ "outputs": [
1067
+ {
1068
+ "components": [
1069
+ {
1070
+ "internalType": "uint64",
1071
+ "name": "id",
1072
+ "type": "uint64"
1073
+ },
1074
+ {
1075
+ "internalType": "string",
1076
+ "name": "name",
1077
+ "type": "string"
1078
+ },
1079
+ {
1080
+ "internalType": "Timestamp",
1081
+ "name": "createdAt",
1082
+ "type": "uint40"
1083
+ }
1084
+ ],
1085
+ "internalType": "struct IAccessManagerExtended.RoleInfo",
1086
+ "name": "",
1087
+ "type": "tuple"
1088
+ }
1089
+ ],
1090
+ "stateMutability": "view",
1091
+ "type": "function"
1092
+ },
1093
+ {
1094
+ "inputs": [
1095
+ {
1096
+ "internalType": "uint64",
1097
+ "name": "roleId",
1098
+ "type": "uint64"
1099
+ },
1100
+ {
1101
+ "internalType": "uint256",
1102
+ "name": "idx",
1103
+ "type": "uint256"
1104
+ }
1105
+ ],
1106
+ "name": "getRoleMember",
1107
+ "outputs": [
1108
+ {
1109
+ "internalType": "address",
1110
+ "name": "member",
1111
+ "type": "address"
1112
+ }
1113
+ ],
1114
+ "stateMutability": "view",
1115
+ "type": "function"
1116
+ },
1117
+ {
1118
+ "inputs": [
1119
+ {
1120
+ "internalType": "uint64",
1121
+ "name": "roleId",
1122
+ "type": "uint64"
1123
+ }
1124
+ ],
1125
+ "name": "getRoleMembers",
1126
+ "outputs": [
1127
+ {
1128
+ "internalType": "uint256",
1129
+ "name": "numberOfMembers",
1130
+ "type": "uint256"
1131
+ }
1132
+ ],
1133
+ "stateMutability": "view",
1134
+ "type": "function"
1135
+ },
1136
+ {
1137
+ "inputs": [],
1138
+ "name": "getRoles",
1139
+ "outputs": [
1140
+ {
1141
+ "internalType": "uint256",
1142
+ "name": "numberOfRoles",
1143
+ "type": "uint256"
1144
+ }
1145
+ ],
1146
+ "stateMutability": "view",
1147
+ "type": "function"
1148
+ },
1149
+ {
1150
+ "inputs": [
1151
+ {
1152
+ "internalType": "bytes32",
1153
+ "name": "id",
1154
+ "type": "bytes32"
1155
+ }
1156
+ ],
1157
+ "name": "getSchedule",
1158
+ "outputs": [
1159
+ {
1160
+ "internalType": "uint48",
1161
+ "name": "",
1162
+ "type": "uint48"
1163
+ }
1164
+ ],
1165
+ "stateMutability": "view",
1166
+ "type": "function"
1167
+ },
1168
+ {
1169
+ "inputs": [
1170
+ {
1171
+ "internalType": "uint256",
1172
+ "name": "idx",
1173
+ "type": "uint256"
1174
+ }
1175
+ ],
1176
+ "name": "getTarget",
1177
+ "outputs": [
1178
+ {
1179
+ "internalType": "address",
1180
+ "name": "target",
1181
+ "type": "address"
1182
+ }
1183
+ ],
1184
+ "stateMutability": "view",
1185
+ "type": "function"
1186
+ },
1187
+ {
1188
+ "inputs": [
1189
+ {
1190
+ "internalType": "string",
1191
+ "name": "name",
1192
+ "type": "string"
1193
+ }
1194
+ ],
1195
+ "name": "getTargetAddress",
1196
+ "outputs": [
1197
+ {
1198
+ "internalType": "address",
1199
+ "name": "targetAddress",
1200
+ "type": "address"
1201
+ }
1202
+ ],
1203
+ "stateMutability": "view",
1204
+ "type": "function"
1205
+ },
1206
+ {
1207
+ "inputs": [
1208
+ {
1209
+ "internalType": "address",
1210
+ "name": "target",
1211
+ "type": "address"
1212
+ }
1213
+ ],
1214
+ "name": "getTargetAdminDelay",
1215
+ "outputs": [
1216
+ {
1217
+ "internalType": "uint32",
1218
+ "name": "",
1219
+ "type": "uint32"
1220
+ }
1221
+ ],
1222
+ "stateMutability": "view",
1223
+ "type": "function"
1224
+ },
1225
+ {
1226
+ "inputs": [
1227
+ {
1228
+ "internalType": "address",
1229
+ "name": "target",
1230
+ "type": "address"
1231
+ },
1232
+ {
1233
+ "internalType": "bytes4",
1234
+ "name": "selector",
1235
+ "type": "bytes4"
1236
+ }
1237
+ ],
1238
+ "name": "getTargetFunctionRole",
1239
+ "outputs": [
1240
+ {
1241
+ "internalType": "uint64",
1242
+ "name": "",
1243
+ "type": "uint64"
1244
+ }
1245
+ ],
1246
+ "stateMutability": "view",
1247
+ "type": "function"
1248
+ },
1249
+ {
1250
+ "inputs": [
1251
+ {
1252
+ "internalType": "address",
1253
+ "name": "target",
1254
+ "type": "address"
1255
+ }
1256
+ ],
1257
+ "name": "getTargetInfo",
1258
+ "outputs": [
1259
+ {
1260
+ "components": [
1261
+ {
1262
+ "internalType": "address",
1263
+ "name": "taddress",
1264
+ "type": "address"
1265
+ },
1266
+ {
1267
+ "internalType": "string",
1268
+ "name": "name",
1269
+ "type": "string"
1270
+ },
1271
+ {
1272
+ "internalType": "Timestamp",
1273
+ "name": "createdAt",
1274
+ "type": "uint40"
1275
+ }
1276
+ ],
1277
+ "internalType": "struct IAccessManagerExtended.TargetInfo",
1278
+ "name": "",
1279
+ "type": "tuple"
1280
+ }
1281
+ ],
1282
+ "stateMutability": "view",
1283
+ "type": "function"
1284
+ },
1285
+ {
1286
+ "inputs": [],
1287
+ "name": "getTargets",
1288
+ "outputs": [
1289
+ {
1290
+ "internalType": "uint256",
1291
+ "name": "numberOfTargets",
1292
+ "type": "uint256"
1293
+ }
1294
+ ],
1295
+ "stateMutability": "view",
1296
+ "type": "function"
1297
+ },
1298
+ {
1299
+ "inputs": [],
1300
+ "name": "getVersion",
1301
+ "outputs": [
1302
+ {
1303
+ "internalType": "VersionPart",
1304
+ "name": "",
1305
+ "type": "uint8"
1306
+ }
1307
+ ],
1308
+ "stateMutability": "view",
1309
+ "type": "function"
1310
+ },
1311
+ {
1312
+ "inputs": [
1313
+ {
1314
+ "internalType": "uint64",
1315
+ "name": "roleId",
1316
+ "type": "uint64"
1317
+ },
1318
+ {
1319
+ "internalType": "address",
1320
+ "name": "account",
1321
+ "type": "address"
1322
+ },
1323
+ {
1324
+ "internalType": "uint32",
1325
+ "name": "executionDelay",
1326
+ "type": "uint32"
1327
+ }
1328
+ ],
1329
+ "name": "grantRole",
1330
+ "outputs": [],
1331
+ "stateMutability": "nonpayable",
1332
+ "type": "function"
1333
+ },
1334
+ {
1335
+ "inputs": [
1336
+ {
1337
+ "internalType": "uint64",
1338
+ "name": "roleId",
1339
+ "type": "uint64"
1340
+ },
1341
+ {
1342
+ "internalType": "address",
1343
+ "name": "account",
1344
+ "type": "address"
1345
+ }
1346
+ ],
1347
+ "name": "hasRole",
1348
+ "outputs": [
1349
+ {
1350
+ "internalType": "bool",
1351
+ "name": "isMember",
1352
+ "type": "bool"
1353
+ },
1354
+ {
1355
+ "internalType": "uint32",
1356
+ "name": "executionDelay",
1357
+ "type": "uint32"
1358
+ }
1359
+ ],
1360
+ "stateMutability": "view",
1361
+ "type": "function"
1362
+ },
1363
+ {
1364
+ "inputs": [
1365
+ {
1366
+ "internalType": "address",
1367
+ "name": "caller",
1368
+ "type": "address"
1369
+ },
1370
+ {
1371
+ "internalType": "address",
1372
+ "name": "target",
1373
+ "type": "address"
1374
+ },
1375
+ {
1376
+ "internalType": "bytes",
1377
+ "name": "data",
1378
+ "type": "bytes"
1379
+ }
1380
+ ],
1381
+ "name": "hashOperation",
1382
+ "outputs": [
1383
+ {
1384
+ "internalType": "bytes32",
1385
+ "name": "",
1386
+ "type": "bytes32"
1387
+ }
1388
+ ],
1389
+ "stateMutability": "view",
1390
+ "type": "function"
1391
+ },
1392
+ {
1393
+ "inputs": [
1394
+ {
1395
+ "internalType": "address",
1396
+ "name": "initialAdmin",
1397
+ "type": "address"
1398
+ },
1399
+ {
1400
+ "internalType": "VersionPart",
1401
+ "name": "version",
1402
+ "type": "uint8"
1403
+ }
1404
+ ],
1405
+ "name": "initialize",
1406
+ "outputs": [],
1407
+ "stateMutability": "nonpayable",
1408
+ "type": "function"
1409
+ },
1410
+ {
1411
+ "inputs": [],
1412
+ "name": "isDisabled",
1413
+ "outputs": [
1414
+ {
1415
+ "internalType": "bool",
1416
+ "name": "",
1417
+ "type": "bool"
1418
+ }
1419
+ ],
1420
+ "stateMutability": "view",
1421
+ "type": "function"
1422
+ },
1423
+ {
1424
+ "inputs": [
1425
+ {
1426
+ "internalType": "uint64",
1427
+ "name": "roleId",
1428
+ "type": "uint64"
1429
+ }
1430
+ ],
1431
+ "name": "isRoleExists",
1432
+ "outputs": [
1433
+ {
1434
+ "internalType": "bool",
1435
+ "name": "exists",
1436
+ "type": "bool"
1437
+ }
1438
+ ],
1439
+ "stateMutability": "view",
1440
+ "type": "function"
1441
+ },
1442
+ {
1443
+ "inputs": [
1444
+ {
1445
+ "internalType": "string",
1446
+ "name": "name",
1447
+ "type": "string"
1448
+ }
1449
+ ],
1450
+ "name": "isRoleNameExists",
1451
+ "outputs": [
1452
+ {
1453
+ "internalType": "bool",
1454
+ "name": "exists",
1455
+ "type": "bool"
1456
+ }
1457
+ ],
1458
+ "stateMutability": "view",
1459
+ "type": "function"
1460
+ },
1461
+ {
1462
+ "inputs": [
1463
+ {
1464
+ "internalType": "address",
1465
+ "name": "target",
1466
+ "type": "address"
1467
+ }
1468
+ ],
1469
+ "name": "isTargetClosed",
1470
+ "outputs": [
1471
+ {
1472
+ "internalType": "bool",
1473
+ "name": "",
1474
+ "type": "bool"
1475
+ }
1476
+ ],
1477
+ "stateMutability": "view",
1478
+ "type": "function"
1479
+ },
1480
+ {
1481
+ "inputs": [
1482
+ {
1483
+ "internalType": "address",
1484
+ "name": "target",
1485
+ "type": "address"
1486
+ }
1487
+ ],
1488
+ "name": "isTargetExists",
1489
+ "outputs": [
1490
+ {
1491
+ "internalType": "bool",
1492
+ "name": "",
1493
+ "type": "bool"
1494
+ }
1495
+ ],
1496
+ "stateMutability": "view",
1497
+ "type": "function"
1498
+ },
1499
+ {
1500
+ "inputs": [
1501
+ {
1502
+ "internalType": "string",
1503
+ "name": "name",
1504
+ "type": "string"
1505
+ }
1506
+ ],
1507
+ "name": "isTargetNameExists",
1508
+ "outputs": [
1509
+ {
1510
+ "internalType": "bool",
1511
+ "name": "",
1512
+ "type": "bool"
1513
+ }
1514
+ ],
1515
+ "stateMutability": "view",
1516
+ "type": "function"
1517
+ },
1518
+ {
1519
+ "inputs": [
1520
+ {
1521
+ "internalType": "uint64",
1522
+ "name": "roleId",
1523
+ "type": "uint64"
1524
+ },
1525
+ {
1526
+ "internalType": "string",
1527
+ "name": "label",
1528
+ "type": "string"
1529
+ }
1530
+ ],
1531
+ "name": "labelRole",
1532
+ "outputs": [],
1533
+ "stateMutability": "nonpayable",
1534
+ "type": "function"
1535
+ },
1536
+ {
1537
+ "inputs": [],
1538
+ "name": "minSetback",
1539
+ "outputs": [
1540
+ {
1541
+ "internalType": "uint32",
1542
+ "name": "",
1543
+ "type": "uint32"
1544
+ }
1545
+ ],
1546
+ "stateMutability": "view",
1547
+ "type": "function"
1548
+ },
1549
+ {
1550
+ "inputs": [
1551
+ {
1552
+ "internalType": "bytes[]",
1553
+ "name": "data",
1554
+ "type": "bytes[]"
1555
+ }
1556
+ ],
1557
+ "name": "multicall",
1558
+ "outputs": [
1559
+ {
1560
+ "internalType": "bytes[]",
1561
+ "name": "results",
1562
+ "type": "bytes[]"
1563
+ }
1564
+ ],
1565
+ "stateMutability": "nonpayable",
1566
+ "type": "function"
1567
+ },
1568
+ {
1569
+ "inputs": [
1570
+ {
1571
+ "internalType": "uint64",
1572
+ "name": "roleId",
1573
+ "type": "uint64"
1574
+ },
1575
+ {
1576
+ "internalType": "address",
1577
+ "name": "callerConfirmation",
1578
+ "type": "address"
1579
+ }
1580
+ ],
1581
+ "name": "renounceRole",
1582
+ "outputs": [],
1583
+ "stateMutability": "nonpayable",
1584
+ "type": "function"
1585
+ },
1586
+ {
1587
+ "inputs": [
1588
+ {
1589
+ "internalType": "uint64",
1590
+ "name": "roleId",
1591
+ "type": "uint64"
1592
+ },
1593
+ {
1594
+ "internalType": "address",
1595
+ "name": "account",
1596
+ "type": "address"
1597
+ }
1598
+ ],
1599
+ "name": "revokeRole",
1600
+ "outputs": [],
1601
+ "stateMutability": "nonpayable",
1602
+ "type": "function"
1603
+ },
1604
+ {
1605
+ "inputs": [
1606
+ {
1607
+ "internalType": "address",
1608
+ "name": "target",
1609
+ "type": "address"
1610
+ },
1611
+ {
1612
+ "internalType": "bytes",
1613
+ "name": "data",
1614
+ "type": "bytes"
1615
+ },
1616
+ {
1617
+ "internalType": "uint48",
1618
+ "name": "when",
1619
+ "type": "uint48"
1620
+ }
1621
+ ],
1622
+ "name": "schedule",
1623
+ "outputs": [
1624
+ {
1625
+ "internalType": "bytes32",
1626
+ "name": "operationId",
1627
+ "type": "bytes32"
1628
+ },
1629
+ {
1630
+ "internalType": "uint32",
1631
+ "name": "nonce",
1632
+ "type": "uint32"
1633
+ }
1634
+ ],
1635
+ "stateMutability": "nonpayable",
1636
+ "type": "function"
1637
+ },
1638
+ {
1639
+ "inputs": [
1640
+ {
1641
+ "internalType": "uint64",
1642
+ "name": "roleId",
1643
+ "type": "uint64"
1644
+ },
1645
+ {
1646
+ "internalType": "uint32",
1647
+ "name": "newDelay",
1648
+ "type": "uint32"
1649
+ }
1650
+ ],
1651
+ "name": "setGrantDelay",
1652
+ "outputs": [],
1653
+ "stateMutability": "nonpayable",
1654
+ "type": "function"
1655
+ },
1656
+ {
1657
+ "inputs": [
1658
+ {
1659
+ "internalType": "uint64",
1660
+ "name": "roleId",
1661
+ "type": "uint64"
1662
+ },
1663
+ {
1664
+ "internalType": "uint64",
1665
+ "name": "admin",
1666
+ "type": "uint64"
1667
+ }
1668
+ ],
1669
+ "name": "setRoleAdmin",
1670
+ "outputs": [],
1671
+ "stateMutability": "nonpayable",
1672
+ "type": "function"
1673
+ },
1674
+ {
1675
+ "inputs": [
1676
+ {
1677
+ "internalType": "uint64",
1678
+ "name": "roleId",
1679
+ "type": "uint64"
1680
+ },
1681
+ {
1682
+ "internalType": "uint64",
1683
+ "name": "guardian",
1684
+ "type": "uint64"
1685
+ }
1686
+ ],
1687
+ "name": "setRoleGuardian",
1688
+ "outputs": [],
1689
+ "stateMutability": "nonpayable",
1690
+ "type": "function"
1691
+ },
1692
+ {
1693
+ "inputs": [
1694
+ {
1695
+ "internalType": "address",
1696
+ "name": "target",
1697
+ "type": "address"
1698
+ },
1699
+ {
1700
+ "internalType": "uint32",
1701
+ "name": "newDelay",
1702
+ "type": "uint32"
1703
+ }
1704
+ ],
1705
+ "name": "setTargetAdminDelay",
1706
+ "outputs": [],
1707
+ "stateMutability": "nonpayable",
1708
+ "type": "function"
1709
+ },
1710
+ {
1711
+ "inputs": [
1712
+ {
1713
+ "internalType": "address",
1714
+ "name": "target",
1715
+ "type": "address"
1716
+ },
1717
+ {
1718
+ "internalType": "bool",
1719
+ "name": "closed",
1720
+ "type": "bool"
1721
+ }
1722
+ ],
1723
+ "name": "setTargetClosed",
1724
+ "outputs": [],
1725
+ "stateMutability": "nonpayable",
1726
+ "type": "function"
1727
+ },
1728
+ {
1729
+ "inputs": [
1730
+ {
1731
+ "internalType": "address",
1732
+ "name": "target",
1733
+ "type": "address"
1734
+ },
1735
+ {
1736
+ "internalType": "bytes4[]",
1737
+ "name": "selectors",
1738
+ "type": "bytes4[]"
1739
+ },
1740
+ {
1741
+ "internalType": "uint64",
1742
+ "name": "roleId",
1743
+ "type": "uint64"
1744
+ }
1745
+ ],
1746
+ "name": "setTargetFunctionRole",
1747
+ "outputs": [],
1748
+ "stateMutability": "nonpayable",
1749
+ "type": "function"
1750
+ },
1751
+ {
1752
+ "inputs": [
1753
+ {
1754
+ "internalType": "address",
1755
+ "name": "target",
1756
+ "type": "address"
1757
+ },
1758
+ {
1759
+ "internalType": "address",
1760
+ "name": "newAuthority",
1761
+ "type": "address"
1762
+ }
1763
+ ],
1764
+ "name": "updateAuthority",
1765
+ "outputs": [],
1766
+ "stateMutability": "nonpayable",
1767
+ "type": "function"
1768
+ }
1769
+ ],
1770
+ "bytecode": "0x608060405234801561000f575f80fd5b506148748061001d5f395ff3fe60806040526004361061030d575f3560e01c80636c57f5a9116101a3578063ac9650d8116100f2578063d22b598911610092578063e6acc7cd1161006d578063e6acc7cd146109af578063f801a698146109ce578063fa2921a414610a07578063fe0776f514610a26575f80fd5b8063d22b598914610952578063d6bb62c614610971578063d78a83b114610990575f80fd5b8063b7d2b162116100cd578063b7d2b162146108e0578063b8c51067146108ff578063cc1b6c811461091e578063d1f856ee14610933575f80fd5b8063ac9650d81461085a578063b700961314610886578063b780fedc146108c1575f80fd5b8063943b24b21161015d578063a3907d7111610138578063a3907d71146107e9578063a5808e2f146107fd578063a64d95ce1461081c578063abd9bd2a1461083b575f80fd5b8063943b24b21461078c57806394c7d7ee146107ab578063a166aa89146107ca575f80fd5b80636c57f5a9146106f45780636d5115bd14610708578063710613981461072757806375b238fc1461073b5780637f1fb07d1461074e578063853551b81461076d575f80fd5b80633ca7c02a1161025f578063530dd456116102195780635fa8aad4116101f45780635fa8aad41461067557806360d60e511461069457806363fe3b56146106b357806368ed5d2e146106d5575f80fd5b8063530dd456146105fb5780635ae86e851461061a5780635bfa502714610649575f80fd5b80633ca7c02a146105505780633fd855611461056a5780634136a33c146105895780634665096d146105a85780634c1da1e2146105bd57806352962952146105dc575f80fd5b806318ff183c116102ca5780633078f114116102a55780633078f1141461046b57806330cae187146104c45780633656481c146104e35780633adc277a1461051a575f80fd5b806318ff183c1461041a5780631cff79cd1461043957806325c471a01461044c575f80fd5b806308d6122d146103115780630b0a93ba146103325780630d8e6e2c1461036e57806312be87271461039b57806312e1ebc5146103cf578063167bd395146103fb575b5f80fd5b34801561031c575f80fd5b5061033061032b366004613cdf565b610a45565b005b34801561033d575f80fd5b5061035161034c366004613d41565b610ac2565b6040516001600160401b0390911681526020015b60405180910390f35b348015610379575f80fd5b505f8051602061481f8339815191525460405160ff9091168152602001610365565b3480156103a6575f80fd5b506103ba6103b5366004613d41565b610af9565b60405163ffffffff9091168152602001610365565b3480156103da575f80fd5b506103ee6103e9366004613d5a565b610b43565b6040516103659190613dc2565b348015610406575f80fd5b50610330610415366004613e19565b610c5b565b348015610425575f80fd5b50610330610434366004613e50565b610c9c565b6103ba610447366004613eb9565b610cd8565b348015610457575f80fd5b50610330610466366004613f1c565b610d1f565b348015610476575f80fd5b5061048a610485366004613f5e565b610d93565b604051610365949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b3480156104cf575f80fd5b506103306104de366004613f78565b610e06565b3480156104ee575f80fd5b506105026104fd366004614045565b610e7a565b6040516001600160a01b039091168152602001610365565b348015610525575f80fd5b50610539610534366004614076565b610eb8565b60405165ffffffffffff9091168152602001610365565b34801561055b575f80fd5b506103516001600160401b0381565b348015610575575f80fd5b50610351610584366004614076565b610efa565b348015610594575f80fd5b506103ba6105a3366004614076565b610f4a565b3480156105b3575f80fd5b5062093a806103ba565b3480156105c8575f80fd5b506103ba6105d7366004613d5a565b610f75565b3480156105e7575f80fd5b506103306105f6366004613f78565b610faf565b348015610606575f80fd5b50610351610615366004613d41565b610feb565b348015610625575f80fd5b50610639610634366004613d5a565b61101b565b6040519015158152602001610365565b348015610654575f80fd5b50610668610663366004613d41565b6110be565b604051610365919061408d565b348015610680575f80fd5b5061033061068f3660046140bb565b611140565b34801561069f575f80fd5b506106396106ae366004614045565b611162565b3480156106be575f80fd5b506106c76111ac565b604051908152602001610365565b3480156106e0575f80fd5b506103306106ef366004614107565b6111be565b3480156106ff575f80fd5b506106396111dc565b348015610713575f80fd5b50610351610722366004614136565b6112ff565b348015610732575f80fd5b506106c7611346565b348015610746575f80fd5b506103515f81565b348015610759575f80fd5b50610639610768366004613d41565b61135a565b348015610778575f80fd5b50610330610787366004614162565b6113c4565b348015610797575f80fd5b506103306107a636600461417d565b611401565b3480156107b6575f80fd5b506103306107c5366004613eb9565b61150f565b3480156107d5575f80fd5b506106396107e4366004613d5a565b61154c565b3480156107f4575f80fd5b50610330611583565b348015610808575f80fd5b506106c7610817366004613d41565b6115ce565b348015610827575f80fd5b506103306108363660046141ae565b6115fd565b348015610846575f80fd5b506106c76108553660046141d6565b611639565b348015610865575f80fd5b50610879610874366004614236565b611671565b6040516103659190614274565b348015610891575f80fd5b506108a56108a03660046142d6565b611758565b60408051921515835263ffffffff909116602083015201610365565b3480156108cc575f80fd5b506103306108db366004614330565b6117a7565b3480156108eb575f80fd5b506103306108fa366004613f5e565b61196b565b34801561090a575f80fd5b50610351610919366004614045565b6119d7565b348015610929575f80fd5b50620697806103ba565b34801561093e575f80fd5b506108a561094d366004613f5e565b611a15565b34801561095d575f80fd5b5061033061096c36600461434b565b611a8e565b34801561097c575f80fd5b506103ba61098b3660046141d6565b611aca565b34801561099b575f80fd5b506105026109aa366004614367565b611b13565b3480156109ba575f80fd5b506105026109c9366004614076565b611b43565b3480156109d9575f80fd5b506109ed6109e836600461438f565b611b7a565b6040805192835263ffffffff909116602083015201610365565b348015610a12575f80fd5b50610639610a21366004614045565b611bc8565b348015610a31575f80fd5b50610330610a40366004613f5e565b611c08565b83610a4f8161101b565b610a7c57604051632eae37fb60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b81610a868161135a565b610aae57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b610aba86868686611c73565b505050505050565b5f80610acc611cbe565b6001600160401b039384165f9081526001918201602052604090200154600160401b900490921692915050565b5f80610b03611cbe565b6001600160401b0384165f908152600182810160205260409091200154909150610b3c90600160801b90046001600160701b0316611ce2565b9392505050565b610b7560405180606001604052805f6001600160a01b03168152602001606081526020015f64ffffffffff1681525090565b5f610b7e611d00565b6001600160a01b038085165f90815260208381526040918290208251606081019093528054909316825260018301805494955091939084019190610bc1906143fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610bed906143fc565b8015610c385780601f10610c0f57610100808354040283529160200191610c38565b820191905f5260205f20905b815481529060010190602001808311610c1b57829003601f168201915b50505091835250506002919091015464ffffffffff166020909101529392505050565b81610c658161101b565b610c8d57604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b610c978383611d24565b505050565b81610ca68161101b565b610cce57604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b610c978383611d36565b5f83610ce38161101b565b610d0b57604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b610d16858585611d90565b95945050505050565b82610d298161135a565b610d5157604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b5f610d5a611d00565b6001600160401b0386165f9081526004820160205260409020909150610d809085611ecc565b50610d8c858585611ee0565b5050505050565b5f805f805f610da0611cbe565b6001600160401b0388165f90815260018201602090815260408083206001600160a01b038b1684529091529020805465ffffffffffff8116975091925090610df790600160301b90046001600160701b0316611efc565b979a9199509750945050505050565b81610e108161135a565b610e3857604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b81610e428161135a565b610e6a57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b610e748484611f1d565b50505050565b5f80610e84611d00565b90508060010183604051610e98919061442e565b908152604051908190036020019020546001600160a01b03169392505050565b5f80610ec2611cbe565b5f84815260028201602052604090205490915065ffffffffffff16610ee681611f2f565b610ef05780610ef2565b5f5b949350505050565b5f80610f04611d00565b9050806006018381548110610f1b57610f1b614449565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b0316915050919050565b5f80610f54611cbe565b5f93845260020160205250506040902054600160301b900463ffffffff1690565b5f80610f7f611cbe565b6001600160a01b0384165f90815260208290526040902060010154909150610b3c906001600160701b0316611ce2565b81610fb98161135a565b610fe157604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b610c978383611f5d565b5f80610ff5611cbe565b6001600160401b039384165f908152600191820160205260409020015490921692915050565b5f80611025611d00565b6001600160a01b0384165f9081526020829052604090819020600201549051638d38cd4b60e01b815264ffffffffff909116600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b906024015b602060405180830381865af415801561109a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3c919061445d565b6110f060405180606001604052805f6001600160401b03168152602001606081526020015f64ffffffffff1681525090565b5f6110f9611d00565b6001600160401b038085165f9081526003830160209081526040918290208251606081019093528054909316825260018301805494955091939084019190610bc1906143fc565b611148611f6f565b6111528282611feb565b905061115e8282612046565b5050565b5f8061116c611d00565b90505f6001600160a01b0316816001018460405161118a919061442e565b908152604051908190036020019020546001600160a01b031614159392505050565b5f6111b5611d00565b60020154919050565b6111c6611f6f565b6111d08282612274565b905061115e82826122cb565b5f805f8051602061481f8339815191528054604051638d38cd4b60e01b815261010090910464ffffffffff16600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af415801561124a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126e919061445d565b80156112f957506112f973__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156112bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e39190614478565b825464ffffffffff610100909104811691161190565b91505090565b5f80611309611cbe565b6001600160a01b0385165f908152602091825260408082206001600160e01b03198716835290925220546001600160401b03169150505b92915050565b5f80611350611d00565b6006015492915050565b5f80611364611d00565b6001600160401b0384165f90815260038201602052604090819020600201549051638d38cd4b60e01b815264ffffffffff909116600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b9060240161107f565b826113ce8161135a565b6113f657604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b610e748484846124e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f811580156114455750825b90505f826001600160401b031660011480156114605750303b155b90508115801561146e575080155b1561148c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156114b657845460ff60401b1916600160401b1785555b6114c0878761257b565b831561150657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b336115198161101b565b61154157604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b610e748484846125a7565b5f80611556611cbe565b6001600160a01b039093165f9081526020939093525050604090206001015460ff600160701b9091041690565b61158b611f6f565b5f8051602061481f8339815191526115a16111dc565b156115bf57604051632695f8ad60e01b815260040160405180910390fd5b805465ffffffffff0019169055565b5f806115d8611d00565b6001600160401b0384165f9081526004820160205260409020909150610b3c9061264c565b816116078161135a565b61162f57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b610c978383612655565b5f8484848460405160200161165194939291906144bb565b604051602081830303815290604052805190602001209050949350505050565b6060816001600160401b0381111561168b5761168b613fa9565b6040519080825280602002602001820160405280156116be57816020015b60608152602001906001900390816116a95790505b5090505f5b828110156117515761172c308585848181106116e1576116e1614449565b90506020028101906116f391906144e7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061266792505050565b82828151811061173e5761173e614449565b60209081029190910101526001016116c3565b5092915050565b5f805f8051602061481f8339815191526117706111dc565b1561178e57604051632695f8ad60e01b815260040160405180910390fd5b6117998686866126d0565b92509250505b935093915050565b6117af611f6f565b5f5f8051602061481f8339815191528054604051638d38cd4b60e01b815261010090910464ffffffffff16600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af415801561181c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611840919061445d565b1561185e57604051632695f8ad60e01b815260040160405180910390fd5b73__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156118a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c99190614478565b6040516352bcc5a760e11b815264ffffffffff9182166004820152908316602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af4158015611926573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194a9190614478565b815464ffffffffff919091166101000265ffffffffff001990911617905550565b816119758161135a565b61199d57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b5f6119a6611d00565b6001600160401b0385165f90815260048201602052604090209091506119cc908461274d565b50610e748484612761565b5f806119e1611d00565b905080600501836040516119f5919061442e565b908152604051908190036020019020546001600160401b03169392505050565b5f8067fffffffffffffffe196001600160401b03851601611a3b5750600190505f611a87565b5f80611a478686610d93565b5050915091508165ffffffffffff165f14158015611a7c5750611a68612773565b65ffffffffffff168265ffffffffffff1611155b93509150611a879050565b9250929050565b81611a988161101b565b611ac057604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b610c978383612782565b5f83611ad58161101b565b611afd57604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b611b0986868686612794565b9695505050505050565b5f80611b1d611d00565b6001600160401b0385165f9081526004820160205260409020909150610ef290846128f7565b5f611b4c611d00565b6002018281548110611b6057611b60614449565b5f918252602090912001546001600160a01b031692915050565b5f8085611b868161101b565b611bae57604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b611bba87878787612902565b909890975095505050505050565b5f80611bd2611d00565b90508060050183604051611be6919061442e565b908152604051908190036020019020546001600160401b031615159392505050565b81611c128161135a565b611c3a57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b5f611c43611d00565b9050611c68336001600160401b0386165f90815260048401602052604090209061274d565b50610e748484612a9e565b611c7b611f6f565b5f5b82811015610d8c57611cb685858584818110611c9b57611c9b614449565b9050602002016020810190611cb09190614529565b84612ac7565b600101611c7d565b7f77301bc69e8248c80abb894217605b71fa89ea6a9e8bdf359d9e8aa1dd62bf0090565b5f80611cf6836001600160701b0316611efc565b5090949350505050565b7f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a6287690090565b611d2c611f6f565b61115e8282612b53565b611d3e611f6f565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b906024015f604051808303815f87803b158015611d7e575f80fd5b505af1158015610aba573d5f803e3d5ffd5b5f80611d9a611cbe565b9050335f80611dab83898989612bf7565b9150915081158015611dc1575063ffffffff8116155b15611e0f578288611dd28989612c48565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b0319166044820152606401610a73565b5f611e1c848a8a8a611639565b90505f63ffffffff8316151580611e425750611e3782610eb8565b65ffffffffffff1615155b15611e5357611e5082612c5f565b90505b6003860154611e6b8b611e668c8c612c48565b612d70565b8760030181905550611eb48b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250349250612db2915050565b50600390960195909555509293505050509392505050565b5f610b3c836001600160a01b038416612e41565b611ee8611f6f565b610e748383611ef686610af9565b84612e8d565b5f805f611f1084611f0b612773565b6130e7565b9250925092509193909250565b611f25611f6f565b61115e828261313a565b5f611f38612773565b65ffffffffffff16611f4d62093a8084614558565b65ffffffffffff16111592915050565b611f65611f6f565b61115e82826131ea565b335f80611f7d8382366132a8565b9150915081610c97578063ffffffff165f03611fd7575f611f9e8136613359565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b03821660248201529092506044019050610a73565b610e74611fe684305f36611639565b612c5f565b60606001600160a01b0383166120145760405163d2b391f360e01b815260040160405180910390fd5b81515f0361204057604051636ff4782560e11b81526001600160a01b0384166004820152602401610a73565b50919050565b5f61204f611d00565b905061205a8361101b565b15612083576040516372f0861b60e01b81526001600160a01b0384166004820152602401610a73565b61208c82611162565b156120d9578281600101836040516120a4919061442e565b908152604051908190036020018120546351a5c05760e11b8252610a7392916001600160a01b03909116908590600401614577565b6040518060600160405280846001600160a01b0316815260200183815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612140573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121649190614478565b64ffffffffff1690526001600160a01b038481165f90815260208481526040909120835181546001600160a01b031916931692909217825582015160018201906121ae90826145e6565b50604091820151600291909101805464ffffffffff191664ffffffffff90921691909117905551839060018301906121e790859061442e565b9081526040516020918190038201812080546001600160a01b03199081166001600160a01b03958616179091556002850180546001810182555f91825293902090920180549092169286169290921790557fea8d4576c164e98cc7596bbd6e8153189eb76d8c3c5854bf48543e363e4ffd3e9061226790859085906146a1565b60405180910390a1505050565b6060826001600160401b03165f0361229f57604051633aa1be8f60e21b815260040160405180910390fd5b81515f036120405760405163d47728d760e01b81526001600160401b0384166004820152602401610a73565b5f6122d4611d00565b90506122df8361135a565b15612308576040516310ed2a9160e11b81526001600160401b0384166004820152602401610a73565b61231182611bc8565b1561233d5782612320836119d7565b8360405163e6fbd51760e01b8152600401610a73939291906146c4565b6040518060600160405280846001600160401b0316815260200183815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156123a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123c89190614478565b64ffffffffff1690526001600160401b038481165f90815260038401602090815260409091208351815467ffffffffffffffff19169316929092178255820151600182019061241790826145e6565b50604091820151600291909101805464ffffffffff191664ffffffffff909216919091179055518390600583019061245090859061442e565b90815260405160209181900382018120805467ffffffffffffffff19166001600160401b039485161790556006840180546001810182555f9182529290206004830401805460039093166008026101000a80850219909316938716929092029290921790557f0d24585326fa11eab3f4335f6413408017bd28072a57f6fbcc65c6606612204d9061226790859085906146ef565b6124ec611f6f565b6001600160401b038316158061250a57506001600160401b03838116145b156125335760405163061c6a4360e21b81526001600160401b0384166004820152602401610a73565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a450838360405161256e929190614710565b60405180910390a2505050565b612583613583565b5f8051602061481f833981519152805460ff191660ff8316178155610c97836135ce565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa1580156125e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061260a9190614723565b6001600160e01b0319161461263d57604051630641fee960e31b81526001600160a01b0382166004820152602401610a73565b610d8c611fe685838686611639565b5f611340825490565b61265d611f6f565b61115e8282613638565b60605f80846001600160a01b031684604051612683919061442e565b5f60405180830381855af49150503d805f81146126bb576040519150601f19603f3d011682016040523d82523d5f602084013e6126c0565b606091505b5091509150610d16858383613762565b5f806126db8461154c565b156126ea57505f90508061179f565b306001600160a01b0386160361270e5761270484846137be565b5f9150915061179f565b5f61271985856112ff565b90505f806127278389611a15565b9150915081612737575f80612741565b63ffffffff811615815b9450945050505061179f565b5f610b3c836001600160a01b0384166137e2565b612769611f6f565b610c9782826138c5565b5f61277d426139c0565b905090565b61278a611f6f565b61115e82826139f6565b5f8061279e611cbe565b9050335f6127ac8686612c48565b90505f6127bb89898989611639565b5f81815260028601602052604081205491925065ffffffffffff90911690036127fa5760405163060a299b60e41b815260048101829052602401610a73565b826001600160a01b0316896001600160a01b031614612893575f61281e5f85611a15565b5090505f61283861283261034c8c876112ff565b86611a15565b50905081158015612847575080155b1561289057604051630ff89d4760e21b81526001600160a01b038087166004830152808d1660248301528b1660448201526001600160e01b031985166064820152608401610a73565b50505b5f818152600285016020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a39998505050505050505050565b5f610b3c8383613abe565b5f805f61290d611cbe565b9050335f61291d828a8a8a612bf7565b9150505f8163ffffffff16612930612773565b61293a9190614558565b905063ffffffff8216158061297057505f8765ffffffffffff1611801561297057508065ffffffffffff168765ffffffffffff16105b1561298157828a611dd28b8b612c48565b61299b8765ffffffffffff168265ffffffffffff16613ae4565b96506129a9838b8b8b611639565b95506129b486613af9565b836002015f8781526020019081526020015f205f0160069054906101000a900463ffffffff16600101945086846002015f8881526020019081526020015f205f015f6101000a81548165ffffffffffff021916908365ffffffffffff16021790555084846002015f8881526020019081526020015f205f0160066101000a81548163ffffffff021916908363ffffffff1602179055508463ffffffff16867f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b489868e8e8e604051612a8995949392919061473e565b60405180910390a35050505094509492505050565b6001600160a01b038116331461276957604051635f159e6360e01b815260040160405180910390fd5b5f612ad0611cbe565b6001600160a01b0385165f818152602083815260408083206001600160e01b0319891680855290835292819020805467ffffffffffffffff19166001600160401b03891690811790915590519283529394507f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a350505050565b5f612b5c611cbe565b9050306001600160a01b03841603612b9257604051630b40d17960e31b81526001600160a01b0384166004820152602401610a73565b6001600160a01b0383165f81815260208390526040908190206001018054851515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb1389061256e90851515815260200190565b5f80306001600160a01b03861603612c1d57612c148685856132a8565b91509150612c3f565b60048310612c3957612c3486866108a08787612c48565b612c14565b505f9050805b94509492505050565b5f612c566004828486614783565b610b3c916147aa565b5f80612c69611cbe565b5f84815260028201602052604081205491925065ffffffffffff821691600160301b900463ffffffff1690829003612cb75760405163060a299b60e41b815260048101869052602401610a73565b612cbf612773565b65ffffffffffff168265ffffffffffff161115612cf257604051630c65b5bd60e11b815260048101869052602401610a73565b612cfb82611f2f565b15612d1c57604051631e2975b960e21b815260048101869052602401610a73565b5f858152600284016020526040808220805465ffffffffffff191690555163ffffffff83169187917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a3949350505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b606081471015612dd75760405163cd78605960e01b8152306004820152602401610a73565b5f80856001600160a01b03168486604051612df2919061442e565b5f6040518083038185875af1925050503d805f8114612e2c576040519150601f19603f3d011682016040523d82523d5f602084013e612e31565b606091505b5091509150611b09868383613762565b5f818152600183016020526040812054612e8657508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155611340565b505f611340565b5f80612e97611cbe565b905067fffffffffffffffe196001600160401b03871601612ed65760405163061c6a4360e21b81526001600160401b0387166004820152602401610a73565b6001600160401b0386165f90815260018201602090815260408083206001600160a01b038916845290915281205465ffffffffffff1615908115612fca578563ffffffff16612f23612773565b612f2d9190614558565b905060405180604001604052808265ffffffffffff168152602001612f5b8763ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b038a165f90815260018601602090815260408083206001600160a01b038d1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff90911617919091179055613078565b6001600160401b0388165f90815260018401602090815260408083206001600160a01b038b16845290915281205461301591600160301b9091046001600160701b0316908790613b53565b6001600160401b038a165f90815260018601602090815260408083206001600160a01b038d168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8716815265ffffffffffff831660208201528315158183015290516001600160a01b038916916001600160401b038b16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a3509695505050505050565b5f808069ffffffffffffffffffff602086901c166001600160701b03861665ffffffffffff604088901c811690871681111561312557828282613129565b815f805b9550955095505050505b9250925092565b5f613143611cbe565b90506001600160401b038316158061316357506001600160401b03838116145b1561318c5760405163061c6a4360e21b81526001600160401b0384166004820152602401610a73565b6001600160401b038381165f81815260018481016020526040808320909101805467ffffffffffffffff19169487169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a3505050565b5f6131f3611cbe565b90506001600160401b038316158061321357506001600160401b03838116145b1561323c5760405163061c6a4360e21b81526001600160401b0384166004820152602401610a73565b6001600160401b038381165f8181526001848101602052604080832090910180546fffffffffffffffff00000000000000001916600160401b958816958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a3505050565b5f8060048310156132bd57505f90508061179f565b306001600160a01b038616036132e057612704306132db8686612c48565b6137be565b5f805f6132ed8787613359565b92509250925082613306575f809450945050505061179f565b5f80613312848b611a15565b915091508161332b575f8096509650505050505061179f565b6133418363ffffffff168263ffffffff16613ae4565b63ffffffff8116159b909a5098505050505050505050565b5f8080600484101561337257505f915081905080613133565b5f61337d8686612c48565b90506001600160e01b031981166310a6aa3760e31b14806133ae57506001600160e01b031981166330cae18760e01b145b806133c957506001600160e01b0319811663294b14a960e11b145b806133e457506001600160e01b03198116635326cae760e11b145b806133ff57506001600160e01b0319811663d22b598960e01b145b8061341a57506001600160e01b03198116633476ae9760e11b145b8061343557506001600160e01b031981166317ea2ab560e21b145b8061345057506001600160e01b0319811663a3907d7160e01b145b8061346b57506001600160e01b03198116632de03fb760e21b145b156134805760015f8093509350935050613133565b6001600160e01b0319811663063fc60f60e21b14806134af57506001600160e01b0319811663167bd39560e01b145b806134ca57506001600160e01b031981166308d6122d60e01b145b15613509575f6134de60246004888a614783565b8101906134eb9190613d5a565b90505f6134f782610f75565b600196505f9550935061313392505050565b6001600160e01b0319811663012e238d60e51b148061353857506001600160e01b03198116635be958b160e11b145b15613574575f61354c60246004888a614783565b8101906135599190613d41565b9050600161356682610feb565b5f9450945094505050613133565b505f9586955085945092505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166135cc57604051631afcd79f60e31b815260040160405180910390fd5b565b6135d6613583565b6135fd5f6040518060400160405280600581526020016420b236b4b760d91b8152506122cb565b61362c6001600160401b03604051806040016040528060068152602001655075626c696360d01b8152506122cb565b61363581613bf9565b50565b5f613641611cbe565b905067fffffffffffffffe196001600160401b038416016136805760405163061c6a4360e21b81526001600160401b0384166004820152602401610a73565b6001600160401b0383165f90815260018281016020526040822001546136ba90600160801b90046001600160701b03168462069780613b53565b6001600160401b0386165f81815260018087016020526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b4890613754908690859063ffffffff92909216825265ffffffffffff16602082015260400190565b60405180910390a250505050565b6060826137775761377282613c0a565b610b3c565b815115801561378e57506001600160a01b0384163b155b156137b757604051639996b31560e01b81526001600160a01b0385166004820152602401610a73565b5080610b3c565b5f806137c8611cbe565b90506137d48484612d70565b600390910154149392505050565b5f81815260018301602052604081205480156138bc575f6138046001836147da565b85549091505f90613817906001906147da565b9050808214613876575f865f01828154811061383557613835614449565b905f5260205f200154905080875f01848154811061385557613855614449565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080613887576138876147ed565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050611340565b5f915050611340565b5f806138cf611cbe565b905067fffffffffffffffe196001600160401b0385160161390e5760405163061c6a4360e21b81526001600160401b0385166004820152602401610a73565b6001600160401b0384165f90815260018201602090815260408083206001600160a01b038716845290915281205465ffffffffffff169003613953575f915050611340565b6001600160401b0384165f81815260018301602090815260408083206001600160a01b038816808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a35060019392505050565b5f65ffffffffffff8211156139f2576040516306dfcc6560e41b81526030600482015260248101839052604401610a73565b5090565b5f6139ff611cbe565b90505f613a3583620697806001600160a01b0387165f908152602086905260409020600101546001600160701b03169190613b53565b6001600160a01b0386165f818152602086815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8816815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c9101613754565b5f825f018281548110613ad357613ad3614449565b905f5260205f200154905092915050565b5f818311613af25781610b3c565b5090919050565b5f613b02611cbe565b5f83815260028201602052604090205490915065ffffffffffff168015801590613b325750613b3081611f2f565b155b15610c975760405163813e945960e01b815260048101849052602401610a73565b5f805f613b68866001600160701b0316611ce2565b90505f613ba38563ffffffff168763ffffffff168463ffffffff1611613b8e575f613b98565b613b988885614801565b63ffffffff16613ae4565b90508063ffffffff16613bb4612773565b613bbe9190614558565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b613c01613583565b61363581613c33565b805115613c1a5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b613c3b613583565b6001600160a01b038116613c6457604051630409d6d160e11b81525f6004820152602401610a73565b61115e5f825f80612e8d565b6001600160a01b0381168114613635575f80fd5b5f8083601f840112613c94575f80fd5b5081356001600160401b03811115613caa575f80fd5b6020830191508360208260051b8501011115611a87575f80fd5b80356001600160401b0381168114613cda575f80fd5b919050565b5f805f8060608587031215613cf2575f80fd5b8435613cfd81613c70565b935060208501356001600160401b03811115613d17575f80fd5b613d2387828801613c84565b9094509250613d36905060408601613cc4565b905092959194509250565b5f60208284031215613d51575f80fd5b610b3c82613cc4565b5f60208284031215613d6a575f80fd5b8135610b3c81613c70565b5f5b83811015613d8f578181015183820152602001613d77565b50505f910152565b5f8151808452613dae816020860160208601613d75565b601f01601f19169290920160200192915050565b602080825282516001600160a01b031682820152820151606060408301525f90613def6080840182613d97565b905064ffffffffff60408501511660608401528091505092915050565b8015158114613635575f80fd5b5f8060408385031215613e2a575f80fd5b8235613e3581613c70565b91506020830135613e4581613e0c565b809150509250929050565b5f8060408385031215613e61575f80fd5b8235613e6c81613c70565b91506020830135613e4581613c70565b5f8083601f840112613e8c575f80fd5b5081356001600160401b03811115613ea2575f80fd5b602083019150836020828501011115611a87575f80fd5b5f805f60408486031215613ecb575f80fd5b8335613ed681613c70565b925060208401356001600160401b03811115613ef0575f80fd5b613efc86828701613e7c565b9497909650939450505050565b803563ffffffff81168114613cda575f80fd5b5f805f60608486031215613f2e575f80fd5b613f3784613cc4565b92506020840135613f4781613c70565b9150613f5560408501613f09565b90509250925092565b5f8060408385031215613f6f575f80fd5b613e6c83613cc4565b5f8060408385031215613f89575f80fd5b613f9283613cc4565b9150613fa060208401613cc4565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112613fcc575f80fd5b81356001600160401b0380821115613fe657613fe6613fa9565b604051601f8301601f19908116603f0116810190828211818310171561400e5761400e613fa9565b81604052838152866020858801011115614026575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f60208284031215614055575f80fd5b81356001600160401b0381111561406a575f80fd5b610ef284828501613fbd565b5f60208284031215614086575f80fd5b5035919050565b602081526001600160401b0382511660208201525f602083015160606040840152613def6080840182613d97565b5f80604083850312156140cc575f80fd5b82356140d781613c70565b915060208301356001600160401b038111156140f1575f80fd5b6140fd85828601613fbd565b9150509250929050565b5f8060408385031215614118575f80fd5b6140d783613cc4565b6001600160e01b031981168114613635575f80fd5b5f8060408385031215614147575f80fd5b823561415281613c70565b91506020830135613e4581614121565b5f805f60408486031215614174575f80fd5b613ed684613cc4565b5f806040838503121561418e575f80fd5b823561419981613c70565b9150602083013560ff81168114613e45575f80fd5b5f80604083850312156141bf575f80fd5b6141c883613cc4565b9150613fa060208401613f09565b5f805f80606085870312156141e9575f80fd5b84356141f481613c70565b9350602085013561420481613c70565b925060408501356001600160401b0381111561421e575f80fd5b61422a87828801613e7c565b95989497509550505050565b5f8060208385031215614247575f80fd5b82356001600160401b0381111561425c575f80fd5b61426885828601613c84565b90969095509350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156142c957603f198886030184526142b7858351613d97565b9450928501929085019060010161429b565b5092979650505050505050565b5f805f606084860312156142e8575f80fd5b83356142f381613c70565b9250602084013561430381613c70565b9150604084013561431381614121565b809150509250925092565b64ffffffffff81168114613635575f80fd5b5f60208284031215614340575f80fd5b8135610b3c8161431e565b5f806040838503121561435c575f80fd5b82356141c881613c70565b5f8060408385031215614378575f80fd5b61438183613cc4565b946020939093013593505050565b5f805f80606085870312156143a2575f80fd5b84356143ad81613c70565b935060208501356001600160401b038111156143c7575f80fd5b6143d387828801613e7c565b909450925050604085013565ffffffffffff811681146143f1575f80fd5b939692955090935050565b600181811c9082168061441057607f821691505b60208210810361204057634e487b7160e01b5f52602260045260245ffd5b5f825161443f818460208701613d75565b9190910192915050565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561446d575f80fd5b8151610b3c81613e0c565b5f60208284031215614488575f80fd5b8151610b3c8161431e565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b038581168252841660208201526060604082018190525f90611b099083018486614493565b5f808335601e198436030181126144fc575f80fd5b8301803591506001600160401b03821115614515575f80fd5b602001915036819003821315611a87575f80fd5b5f60208284031215614539575f80fd5b8135610b3c81614121565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff81811683821601908082111561175157611751614544565b6001600160a01b038481168252831660208201526060604082018190525f90610d1690830184613d97565b601f821115610c9757805f5260205f20601f840160051c810160208510156145c75750805b601f840160051c820191505b81811015610d8c575f81556001016145d3565b81516001600160401b038111156145ff576145ff613fa9565b6146138161460d84546143fc565b846145a2565b602080601f831160018114614646575f841561462f5750858301515b5f19600386901b1c1916600185901b178555610aba565b5f85815260208120601f198616915b8281101561467457888601518255948401946001909101908401614655565b508582101561469157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03831681526040602082018190525f90610ef290830184613d97565b5f6001600160401b03808616835280851660208401525060606040830152610d166060830184613d97565b6001600160401b0383168152604060208201525f610ef26040830184613d97565b602081525f610ef2602083018486614493565b5f60208284031215614733575f80fd5b8151610b3c81614121565b65ffffffffffff861681526001600160a01b038581166020830152841660408201526080606082018190525f906147789083018486614493565b979650505050505050565b5f8085851115614791575f80fd5b8386111561479d575f80fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156147d25780818660040360031b1b83161692505b505092915050565b8181038181111561134057611340614544565b634e487b7160e01b5f52603160045260245ffd5b63ffffffff8281168282160390808211156117515761175161454456fe6eab09faeebddf4f4430139353ec193aaa0bd7382b47d6e52082f5add274e600a264697066735822122004f21081f45b6d8ebc6464f80733b5c051d48e9d27b05736e0988bc5cf8fad5264736f6c63430008180033",
1771
+ "deployedBytecode": "0x60806040526004361061030d575f3560e01c80636c57f5a9116101a3578063ac9650d8116100f2578063d22b598911610092578063e6acc7cd1161006d578063e6acc7cd146109af578063f801a698146109ce578063fa2921a414610a07578063fe0776f514610a26575f80fd5b8063d22b598914610952578063d6bb62c614610971578063d78a83b114610990575f80fd5b8063b7d2b162116100cd578063b7d2b162146108e0578063b8c51067146108ff578063cc1b6c811461091e578063d1f856ee14610933575f80fd5b8063ac9650d81461085a578063b700961314610886578063b780fedc146108c1575f80fd5b8063943b24b21161015d578063a3907d7111610138578063a3907d71146107e9578063a5808e2f146107fd578063a64d95ce1461081c578063abd9bd2a1461083b575f80fd5b8063943b24b21461078c57806394c7d7ee146107ab578063a166aa89146107ca575f80fd5b80636c57f5a9146106f45780636d5115bd14610708578063710613981461072757806375b238fc1461073b5780637f1fb07d1461074e578063853551b81461076d575f80fd5b80633ca7c02a1161025f578063530dd456116102195780635fa8aad4116101f45780635fa8aad41461067557806360d60e511461069457806363fe3b56146106b357806368ed5d2e146106d5575f80fd5b8063530dd456146105fb5780635ae86e851461061a5780635bfa502714610649575f80fd5b80633ca7c02a146105505780633fd855611461056a5780634136a33c146105895780634665096d146105a85780634c1da1e2146105bd57806352962952146105dc575f80fd5b806318ff183c116102ca5780633078f114116102a55780633078f1141461046b57806330cae187146104c45780633656481c146104e35780633adc277a1461051a575f80fd5b806318ff183c1461041a5780631cff79cd1461043957806325c471a01461044c575f80fd5b806308d6122d146103115780630b0a93ba146103325780630d8e6e2c1461036e57806312be87271461039b57806312e1ebc5146103cf578063167bd395146103fb575b5f80fd5b34801561031c575f80fd5b5061033061032b366004613cdf565b610a45565b005b34801561033d575f80fd5b5061035161034c366004613d41565b610ac2565b6040516001600160401b0390911681526020015b60405180910390f35b348015610379575f80fd5b505f8051602061481f8339815191525460405160ff9091168152602001610365565b3480156103a6575f80fd5b506103ba6103b5366004613d41565b610af9565b60405163ffffffff9091168152602001610365565b3480156103da575f80fd5b506103ee6103e9366004613d5a565b610b43565b6040516103659190613dc2565b348015610406575f80fd5b50610330610415366004613e19565b610c5b565b348015610425575f80fd5b50610330610434366004613e50565b610c9c565b6103ba610447366004613eb9565b610cd8565b348015610457575f80fd5b50610330610466366004613f1c565b610d1f565b348015610476575f80fd5b5061048a610485366004613f5e565b610d93565b604051610365949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b3480156104cf575f80fd5b506103306104de366004613f78565b610e06565b3480156104ee575f80fd5b506105026104fd366004614045565b610e7a565b6040516001600160a01b039091168152602001610365565b348015610525575f80fd5b50610539610534366004614076565b610eb8565b60405165ffffffffffff9091168152602001610365565b34801561055b575f80fd5b506103516001600160401b0381565b348015610575575f80fd5b50610351610584366004614076565b610efa565b348015610594575f80fd5b506103ba6105a3366004614076565b610f4a565b3480156105b3575f80fd5b5062093a806103ba565b3480156105c8575f80fd5b506103ba6105d7366004613d5a565b610f75565b3480156105e7575f80fd5b506103306105f6366004613f78565b610faf565b348015610606575f80fd5b50610351610615366004613d41565b610feb565b348015610625575f80fd5b50610639610634366004613d5a565b61101b565b6040519015158152602001610365565b348015610654575f80fd5b50610668610663366004613d41565b6110be565b604051610365919061408d565b348015610680575f80fd5b5061033061068f3660046140bb565b611140565b34801561069f575f80fd5b506106396106ae366004614045565b611162565b3480156106be575f80fd5b506106c76111ac565b604051908152602001610365565b3480156106e0575f80fd5b506103306106ef366004614107565b6111be565b3480156106ff575f80fd5b506106396111dc565b348015610713575f80fd5b50610351610722366004614136565b6112ff565b348015610732575f80fd5b506106c7611346565b348015610746575f80fd5b506103515f81565b348015610759575f80fd5b50610639610768366004613d41565b61135a565b348015610778575f80fd5b50610330610787366004614162565b6113c4565b348015610797575f80fd5b506103306107a636600461417d565b611401565b3480156107b6575f80fd5b506103306107c5366004613eb9565b61150f565b3480156107d5575f80fd5b506106396107e4366004613d5a565b61154c565b3480156107f4575f80fd5b50610330611583565b348015610808575f80fd5b506106c7610817366004613d41565b6115ce565b348015610827575f80fd5b506103306108363660046141ae565b6115fd565b348015610846575f80fd5b506106c76108553660046141d6565b611639565b348015610865575f80fd5b50610879610874366004614236565b611671565b6040516103659190614274565b348015610891575f80fd5b506108a56108a03660046142d6565b611758565b60408051921515835263ffffffff909116602083015201610365565b3480156108cc575f80fd5b506103306108db366004614330565b6117a7565b3480156108eb575f80fd5b506103306108fa366004613f5e565b61196b565b34801561090a575f80fd5b50610351610919366004614045565b6119d7565b348015610929575f80fd5b50620697806103ba565b34801561093e575f80fd5b506108a561094d366004613f5e565b611a15565b34801561095d575f80fd5b5061033061096c36600461434b565b611a8e565b34801561097c575f80fd5b506103ba61098b3660046141d6565b611aca565b34801561099b575f80fd5b506105026109aa366004614367565b611b13565b3480156109ba575f80fd5b506105026109c9366004614076565b611b43565b3480156109d9575f80fd5b506109ed6109e836600461438f565b611b7a565b6040805192835263ffffffff909116602083015201610365565b348015610a12575f80fd5b50610639610a21366004614045565b611bc8565b348015610a31575f80fd5b50610330610a40366004613f5e565b611c08565b83610a4f8161101b565b610a7c57604051632eae37fb60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b81610a868161135a565b610aae57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b610aba86868686611c73565b505050505050565b5f80610acc611cbe565b6001600160401b039384165f9081526001918201602052604090200154600160401b900490921692915050565b5f80610b03611cbe565b6001600160401b0384165f908152600182810160205260409091200154909150610b3c90600160801b90046001600160701b0316611ce2565b9392505050565b610b7560405180606001604052805f6001600160a01b03168152602001606081526020015f64ffffffffff1681525090565b5f610b7e611d00565b6001600160a01b038085165f90815260208381526040918290208251606081019093528054909316825260018301805494955091939084019190610bc1906143fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610bed906143fc565b8015610c385780601f10610c0f57610100808354040283529160200191610c38565b820191905f5260205f20905b815481529060010190602001808311610c1b57829003601f168201915b50505091835250506002919091015464ffffffffff166020909101529392505050565b81610c658161101b565b610c8d57604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b610c978383611d24565b505050565b81610ca68161101b565b610cce57604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b610c978383611d36565b5f83610ce38161101b565b610d0b57604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b610d16858585611d90565b95945050505050565b82610d298161135a565b610d5157604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b5f610d5a611d00565b6001600160401b0386165f9081526004820160205260409020909150610d809085611ecc565b50610d8c858585611ee0565b5050505050565b5f805f805f610da0611cbe565b6001600160401b0388165f90815260018201602090815260408083206001600160a01b038b1684529091529020805465ffffffffffff8116975091925090610df790600160301b90046001600160701b0316611efc565b979a9199509750945050505050565b81610e108161135a565b610e3857604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b81610e428161135a565b610e6a57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b610e748484611f1d565b50505050565b5f80610e84611d00565b90508060010183604051610e98919061442e565b908152604051908190036020019020546001600160a01b03169392505050565b5f80610ec2611cbe565b5f84815260028201602052604090205490915065ffffffffffff16610ee681611f2f565b610ef05780610ef2565b5f5b949350505050565b5f80610f04611d00565b9050806006018381548110610f1b57610f1b614449565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b0316915050919050565b5f80610f54611cbe565b5f93845260020160205250506040902054600160301b900463ffffffff1690565b5f80610f7f611cbe565b6001600160a01b0384165f90815260208290526040902060010154909150610b3c906001600160701b0316611ce2565b81610fb98161135a565b610fe157604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b610c978383611f5d565b5f80610ff5611cbe565b6001600160401b039384165f908152600191820160205260409020015490921692915050565b5f80611025611d00565b6001600160a01b0384165f9081526020829052604090819020600201549051638d38cd4b60e01b815264ffffffffff909116600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b906024015b602060405180830381865af415801561109a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3c919061445d565b6110f060405180606001604052805f6001600160401b03168152602001606081526020015f64ffffffffff1681525090565b5f6110f9611d00565b6001600160401b038085165f9081526003830160209081526040918290208251606081019093528054909316825260018301805494955091939084019190610bc1906143fc565b611148611f6f565b6111528282611feb565b905061115e8282612046565b5050565b5f8061116c611d00565b90505f6001600160a01b0316816001018460405161118a919061442e565b908152604051908190036020019020546001600160a01b031614159392505050565b5f6111b5611d00565b60020154919050565b6111c6611f6f565b6111d08282612274565b905061115e82826122cb565b5f805f8051602061481f8339815191528054604051638d38cd4b60e01b815261010090910464ffffffffff16600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af415801561124a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126e919061445d565b80156112f957506112f973__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156112bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112e39190614478565b825464ffffffffff610100909104811691161190565b91505090565b5f80611309611cbe565b6001600160a01b0385165f908152602091825260408082206001600160e01b03198716835290925220546001600160401b03169150505b92915050565b5f80611350611d00565b6006015492915050565b5f80611364611d00565b6001600160401b0384165f90815260038201602052604090819020600201549051638d38cd4b60e01b815264ffffffffff909116600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b9060240161107f565b826113ce8161135a565b6113f657604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b610e748484846124e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03165f811580156114455750825b90505f826001600160401b031660011480156114605750303b155b90508115801561146e575080155b1561148c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156114b657845460ff60401b1916600160401b1785555b6114c0878761257b565b831561150657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b336115198161101b565b61154157604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b610e748484846125a7565b5f80611556611cbe565b6001600160a01b039093165f9081526020939093525050604090206001015460ff600160701b9091041690565b61158b611f6f565b5f8051602061481f8339815191526115a16111dc565b156115bf57604051632695f8ad60e01b815260040160405180910390fd5b805465ffffffffff0019169055565b5f806115d8611d00565b6001600160401b0384165f9081526004820160205260409020909150610b3c9061264c565b816116078161135a565b61162f57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b610c978383612655565b5f8484848460405160200161165194939291906144bb565b604051602081830303815290604052805190602001209050949350505050565b6060816001600160401b0381111561168b5761168b613fa9565b6040519080825280602002602001820160405280156116be57816020015b60608152602001906001900390816116a95790505b5090505f5b828110156117515761172c308585848181106116e1576116e1614449565b90506020028101906116f391906144e7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061266792505050565b82828151811061173e5761173e614449565b60209081029190910101526001016116c3565b5092915050565b5f805f8051602061481f8339815191526117706111dc565b1561178e57604051632695f8ad60e01b815260040160405180910390fd5b6117998686866126d0565b92509250505b935093915050565b6117af611f6f565b5f5f8051602061481f8339815191528054604051638d38cd4b60e01b815261010090910464ffffffffff16600482015290915073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af415801561181c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611840919061445d565b1561185e57604051632695f8ad60e01b815260040160405180910390fd5b73__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156118a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118c99190614478565b6040516352bcc5a760e11b815264ffffffffff9182166004820152908316602482015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e90604401602060405180830381865af4158015611926573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194a9190614478565b815464ffffffffff919091166101000265ffffffffff001990911617905550565b816119758161135a565b61199d57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b5f6119a6611d00565b6001600160401b0385165f90815260048201602052604090209091506119cc908461274d565b50610e748484612761565b5f806119e1611d00565b905080600501836040516119f5919061442e565b908152604051908190036020019020546001600160401b03169392505050565b5f8067fffffffffffffffe196001600160401b03851601611a3b5750600190505f611a87565b5f80611a478686610d93565b5050915091508165ffffffffffff165f14158015611a7c5750611a68612773565b65ffffffffffff168265ffffffffffff1611155b93509150611a879050565b9250929050565b81611a988161101b565b611ac057604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b610c978383612782565b5f83611ad58161101b565b611afd57604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b611b0986868686612794565b9695505050505050565b5f80611b1d611d00565b6001600160401b0385165f9081526004820160205260409020909150610ef290846128f7565b5f611b4c611d00565b6002018281548110611b6057611b60614449565b5f918252602090912001546001600160a01b031692915050565b5f8085611b868161101b565b611bae57604051632eae37fb60e01b81526001600160a01b0382166004820152602401610a73565b611bba87878787612902565b909890975095505050505050565b5f80611bd2611d00565b90508060050183604051611be6919061442e565b908152604051908190036020019020546001600160401b031615159392505050565b81611c128161135a565b611c3a57604051632a9def6d60e01b81526001600160401b0382166004820152602401610a73565b5f611c43611d00565b9050611c68336001600160401b0386165f90815260048401602052604090209061274d565b50610e748484612a9e565b611c7b611f6f565b5f5b82811015610d8c57611cb685858584818110611c9b57611c9b614449565b9050602002016020810190611cb09190614529565b84612ac7565b600101611c7d565b7f77301bc69e8248c80abb894217605b71fa89ea6a9e8bdf359d9e8aa1dd62bf0090565b5f80611cf6836001600160701b0316611efc565b5090949350505050565b7f5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a6287690090565b611d2c611f6f565b61115e8282612b53565b611d3e611f6f565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b906024015f604051808303815f87803b158015611d7e575f80fd5b505af1158015610aba573d5f803e3d5ffd5b5f80611d9a611cbe565b9050335f80611dab83898989612bf7565b9150915081158015611dc1575063ffffffff8116155b15611e0f578288611dd28989612c48565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b0319166044820152606401610a73565b5f611e1c848a8a8a611639565b90505f63ffffffff8316151580611e425750611e3782610eb8565b65ffffffffffff1615155b15611e5357611e5082612c5f565b90505b6003860154611e6b8b611e668c8c612c48565b612d70565b8760030181905550611eb48b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250349250612db2915050565b50600390960195909555509293505050509392505050565b5f610b3c836001600160a01b038416612e41565b611ee8611f6f565b610e748383611ef686610af9565b84612e8d565b5f805f611f1084611f0b612773565b6130e7565b9250925092509193909250565b611f25611f6f565b61115e828261313a565b5f611f38612773565b65ffffffffffff16611f4d62093a8084614558565b65ffffffffffff16111592915050565b611f65611f6f565b61115e82826131ea565b335f80611f7d8382366132a8565b9150915081610c97578063ffffffff165f03611fd7575f611f9e8136613359565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b03821660248201529092506044019050610a73565b610e74611fe684305f36611639565b612c5f565b60606001600160a01b0383166120145760405163d2b391f360e01b815260040160405180910390fd5b81515f0361204057604051636ff4782560e11b81526001600160a01b0384166004820152602401610a73565b50919050565b5f61204f611d00565b905061205a8361101b565b15612083576040516372f0861b60e01b81526001600160a01b0384166004820152602401610a73565b61208c82611162565b156120d9578281600101836040516120a4919061442e565b908152604051908190036020018120546351a5c05760e11b8252610a7392916001600160a01b03909116908590600401614577565b6040518060600160405280846001600160a01b0316815260200183815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612140573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121649190614478565b64ffffffffff1690526001600160a01b038481165f90815260208481526040909120835181546001600160a01b031916931692909217825582015160018201906121ae90826145e6565b50604091820151600291909101805464ffffffffff191664ffffffffff90921691909117905551839060018301906121e790859061442e565b9081526040516020918190038201812080546001600160a01b03199081166001600160a01b03958616179091556002850180546001810182555f91825293902090920180549092169286169290921790557fea8d4576c164e98cc7596bbd6e8153189eb76d8c3c5854bf48543e363e4ffd3e9061226790859085906146a1565b60405180910390a1505050565b6060826001600160401b03165f0361229f57604051633aa1be8f60e21b815260040160405180910390fd5b81515f036120405760405163d47728d760e01b81526001600160401b0384166004820152602401610a73565b5f6122d4611d00565b90506122df8361135a565b15612308576040516310ed2a9160e11b81526001600160401b0384166004820152602401610a73565b61231182611bc8565b1561233d5782612320836119d7565b8360405163e6fbd51760e01b8152600401610a73939291906146c4565b6040518060600160405280846001600160401b0316815260200183815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156123a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123c89190614478565b64ffffffffff1690526001600160401b038481165f90815260038401602090815260409091208351815467ffffffffffffffff19169316929092178255820151600182019061241790826145e6565b50604091820151600291909101805464ffffffffff191664ffffffffff909216919091179055518390600583019061245090859061442e565b90815260405160209181900382018120805467ffffffffffffffff19166001600160401b039485161790556006840180546001810182555f9182529290206004830401805460039093166008026101000a80850219909316938716929092029290921790557f0d24585326fa11eab3f4335f6413408017bd28072a57f6fbcc65c6606612204d9061226790859085906146ef565b6124ec611f6f565b6001600160401b038316158061250a57506001600160401b03838116145b156125335760405163061c6a4360e21b81526001600160401b0384166004820152602401610a73565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a450838360405161256e929190614710565b60405180910390a2505050565b612583613583565b5f8051602061481f833981519152805460ff191660ff8316178155610c97836135ce565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa1580156125e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061260a9190614723565b6001600160e01b0319161461263d57604051630641fee960e31b81526001600160a01b0382166004820152602401610a73565b610d8c611fe685838686611639565b5f611340825490565b61265d611f6f565b61115e8282613638565b60605f80846001600160a01b031684604051612683919061442e565b5f60405180830381855af49150503d805f81146126bb576040519150601f19603f3d011682016040523d82523d5f602084013e6126c0565b606091505b5091509150610d16858383613762565b5f806126db8461154c565b156126ea57505f90508061179f565b306001600160a01b0386160361270e5761270484846137be565b5f9150915061179f565b5f61271985856112ff565b90505f806127278389611a15565b9150915081612737575f80612741565b63ffffffff811615815b9450945050505061179f565b5f610b3c836001600160a01b0384166137e2565b612769611f6f565b610c9782826138c5565b5f61277d426139c0565b905090565b61278a611f6f565b61115e82826139f6565b5f8061279e611cbe565b9050335f6127ac8686612c48565b90505f6127bb89898989611639565b5f81815260028601602052604081205491925065ffffffffffff90911690036127fa5760405163060a299b60e41b815260048101829052602401610a73565b826001600160a01b0316896001600160a01b031614612893575f61281e5f85611a15565b5090505f61283861283261034c8c876112ff565b86611a15565b50905081158015612847575080155b1561289057604051630ff89d4760e21b81526001600160a01b038087166004830152808d1660248301528b1660448201526001600160e01b031985166064820152608401610a73565b50505b5f818152600285016020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a39998505050505050505050565b5f610b3c8383613abe565b5f805f61290d611cbe565b9050335f61291d828a8a8a612bf7565b9150505f8163ffffffff16612930612773565b61293a9190614558565b905063ffffffff8216158061297057505f8765ffffffffffff1611801561297057508065ffffffffffff168765ffffffffffff16105b1561298157828a611dd28b8b612c48565b61299b8765ffffffffffff168265ffffffffffff16613ae4565b96506129a9838b8b8b611639565b95506129b486613af9565b836002015f8781526020019081526020015f205f0160069054906101000a900463ffffffff16600101945086846002015f8881526020019081526020015f205f015f6101000a81548165ffffffffffff021916908365ffffffffffff16021790555084846002015f8881526020019081526020015f205f0160066101000a81548163ffffffff021916908363ffffffff1602179055508463ffffffff16867f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b489868e8e8e604051612a8995949392919061473e565b60405180910390a35050505094509492505050565b6001600160a01b038116331461276957604051635f159e6360e01b815260040160405180910390fd5b5f612ad0611cbe565b6001600160a01b0385165f818152602083815260408083206001600160e01b0319891680855290835292819020805467ffffffffffffffff19166001600160401b03891690811790915590519283529394507f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a350505050565b5f612b5c611cbe565b9050306001600160a01b03841603612b9257604051630b40d17960e31b81526001600160a01b0384166004820152602401610a73565b6001600160a01b0383165f81815260208390526040908190206001018054851515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb1389061256e90851515815260200190565b5f80306001600160a01b03861603612c1d57612c148685856132a8565b91509150612c3f565b60048310612c3957612c3486866108a08787612c48565b612c14565b505f9050805b94509492505050565b5f612c566004828486614783565b610b3c916147aa565b5f80612c69611cbe565b5f84815260028201602052604081205491925065ffffffffffff821691600160301b900463ffffffff1690829003612cb75760405163060a299b60e41b815260048101869052602401610a73565b612cbf612773565b65ffffffffffff168265ffffffffffff161115612cf257604051630c65b5bd60e11b815260048101869052602401610a73565b612cfb82611f2f565b15612d1c57604051631e2975b960e21b815260048101869052602401610a73565b5f858152600284016020526040808220805465ffffffffffff191690555163ffffffff83169187917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a3949350505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b606081471015612dd75760405163cd78605960e01b8152306004820152602401610a73565b5f80856001600160a01b03168486604051612df2919061442e565b5f6040518083038185875af1925050503d805f8114612e2c576040519150601f19603f3d011682016040523d82523d5f602084013e612e31565b606091505b5091509150611b09868383613762565b5f818152600183016020526040812054612e8657508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155611340565b505f611340565b5f80612e97611cbe565b905067fffffffffffffffe196001600160401b03871601612ed65760405163061c6a4360e21b81526001600160401b0387166004820152602401610a73565b6001600160401b0386165f90815260018201602090815260408083206001600160a01b038916845290915281205465ffffffffffff1615908115612fca578563ffffffff16612f23612773565b612f2d9190614558565b905060405180604001604052808265ffffffffffff168152602001612f5b8763ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b038a165f90815260018601602090815260408083206001600160a01b038d1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff90911617919091179055613078565b6001600160401b0388165f90815260018401602090815260408083206001600160a01b038b16845290915281205461301591600160301b9091046001600160701b0316908790613b53565b6001600160401b038a165f90815260018601602090815260408083206001600160a01b038d168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8716815265ffffffffffff831660208201528315158183015290516001600160a01b038916916001600160401b038b16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a3509695505050505050565b5f808069ffffffffffffffffffff602086901c166001600160701b03861665ffffffffffff604088901c811690871681111561312557828282613129565b815f805b9550955095505050505b9250925092565b5f613143611cbe565b90506001600160401b038316158061316357506001600160401b03838116145b1561318c5760405163061c6a4360e21b81526001600160401b0384166004820152602401610a73565b6001600160401b038381165f81815260018481016020526040808320909101805467ffffffffffffffff19169487169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a3505050565b5f6131f3611cbe565b90506001600160401b038316158061321357506001600160401b03838116145b1561323c5760405163061c6a4360e21b81526001600160401b0384166004820152602401610a73565b6001600160401b038381165f8181526001848101602052604080832090910180546fffffffffffffffff00000000000000001916600160401b958816958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a3505050565b5f8060048310156132bd57505f90508061179f565b306001600160a01b038616036132e057612704306132db8686612c48565b6137be565b5f805f6132ed8787613359565b92509250925082613306575f809450945050505061179f565b5f80613312848b611a15565b915091508161332b575f8096509650505050505061179f565b6133418363ffffffff168263ffffffff16613ae4565b63ffffffff8116159b909a5098505050505050505050565b5f8080600484101561337257505f915081905080613133565b5f61337d8686612c48565b90506001600160e01b031981166310a6aa3760e31b14806133ae57506001600160e01b031981166330cae18760e01b145b806133c957506001600160e01b0319811663294b14a960e11b145b806133e457506001600160e01b03198116635326cae760e11b145b806133ff57506001600160e01b0319811663d22b598960e01b145b8061341a57506001600160e01b03198116633476ae9760e11b145b8061343557506001600160e01b031981166317ea2ab560e21b145b8061345057506001600160e01b0319811663a3907d7160e01b145b8061346b57506001600160e01b03198116632de03fb760e21b145b156134805760015f8093509350935050613133565b6001600160e01b0319811663063fc60f60e21b14806134af57506001600160e01b0319811663167bd39560e01b145b806134ca57506001600160e01b031981166308d6122d60e01b145b15613509575f6134de60246004888a614783565b8101906134eb9190613d5a565b90505f6134f782610f75565b600196505f9550935061313392505050565b6001600160e01b0319811663012e238d60e51b148061353857506001600160e01b03198116635be958b160e11b145b15613574575f61354c60246004888a614783565b8101906135599190613d41565b9050600161356682610feb565b5f9450945094505050613133565b505f9586955085945092505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166135cc57604051631afcd79f60e31b815260040160405180910390fd5b565b6135d6613583565b6135fd5f6040518060400160405280600581526020016420b236b4b760d91b8152506122cb565b61362c6001600160401b03604051806040016040528060068152602001655075626c696360d01b8152506122cb565b61363581613bf9565b50565b5f613641611cbe565b905067fffffffffffffffe196001600160401b038416016136805760405163061c6a4360e21b81526001600160401b0384166004820152602401610a73565b6001600160401b0383165f90815260018281016020526040822001546136ba90600160801b90046001600160701b03168462069780613b53565b6001600160401b0386165f81815260018087016020526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b4890613754908690859063ffffffff92909216825265ffffffffffff16602082015260400190565b60405180910390a250505050565b6060826137775761377282613c0a565b610b3c565b815115801561378e57506001600160a01b0384163b155b156137b757604051639996b31560e01b81526001600160a01b0385166004820152602401610a73565b5080610b3c565b5f806137c8611cbe565b90506137d48484612d70565b600390910154149392505050565b5f81815260018301602052604081205480156138bc575f6138046001836147da565b85549091505f90613817906001906147da565b9050808214613876575f865f01828154811061383557613835614449565b905f5260205f200154905080875f01848154811061385557613855614449565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080613887576138876147ed565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050611340565b5f915050611340565b5f806138cf611cbe565b905067fffffffffffffffe196001600160401b0385160161390e5760405163061c6a4360e21b81526001600160401b0385166004820152602401610a73565b6001600160401b0384165f90815260018201602090815260408083206001600160a01b038716845290915281205465ffffffffffff169003613953575f915050611340565b6001600160401b0384165f81815260018301602090815260408083206001600160a01b038816808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a35060019392505050565b5f65ffffffffffff8211156139f2576040516306dfcc6560e41b81526030600482015260248101839052604401610a73565b5090565b5f6139ff611cbe565b90505f613a3583620697806001600160a01b0387165f908152602086905260409020600101546001600160701b03169190613b53565b6001600160a01b0386165f818152602086815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8816815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c9101613754565b5f825f018281548110613ad357613ad3614449565b905f5260205f200154905092915050565b5f818311613af25781610b3c565b5090919050565b5f613b02611cbe565b5f83815260028201602052604090205490915065ffffffffffff168015801590613b325750613b3081611f2f565b155b15610c975760405163813e945960e01b815260048101849052602401610a73565b5f805f613b68866001600160701b0316611ce2565b90505f613ba38563ffffffff168763ffffffff168463ffffffff1611613b8e575f613b98565b613b988885614801565b63ffffffff16613ae4565b90508063ffffffff16613bb4612773565b613bbe9190614558565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b613c01613583565b61363581613c33565b805115613c1a5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b613c3b613583565b6001600160a01b038116613c6457604051630409d6d160e11b81525f6004820152602401610a73565b61115e5f825f80612e8d565b6001600160a01b0381168114613635575f80fd5b5f8083601f840112613c94575f80fd5b5081356001600160401b03811115613caa575f80fd5b6020830191508360208260051b8501011115611a87575f80fd5b80356001600160401b0381168114613cda575f80fd5b919050565b5f805f8060608587031215613cf2575f80fd5b8435613cfd81613c70565b935060208501356001600160401b03811115613d17575f80fd5b613d2387828801613c84565b9094509250613d36905060408601613cc4565b905092959194509250565b5f60208284031215613d51575f80fd5b610b3c82613cc4565b5f60208284031215613d6a575f80fd5b8135610b3c81613c70565b5f5b83811015613d8f578181015183820152602001613d77565b50505f910152565b5f8151808452613dae816020860160208601613d75565b601f01601f19169290920160200192915050565b602080825282516001600160a01b031682820152820151606060408301525f90613def6080840182613d97565b905064ffffffffff60408501511660608401528091505092915050565b8015158114613635575f80fd5b5f8060408385031215613e2a575f80fd5b8235613e3581613c70565b91506020830135613e4581613e0c565b809150509250929050565b5f8060408385031215613e61575f80fd5b8235613e6c81613c70565b91506020830135613e4581613c70565b5f8083601f840112613e8c575f80fd5b5081356001600160401b03811115613ea2575f80fd5b602083019150836020828501011115611a87575f80fd5b5f805f60408486031215613ecb575f80fd5b8335613ed681613c70565b925060208401356001600160401b03811115613ef0575f80fd5b613efc86828701613e7c565b9497909650939450505050565b803563ffffffff81168114613cda575f80fd5b5f805f60608486031215613f2e575f80fd5b613f3784613cc4565b92506020840135613f4781613c70565b9150613f5560408501613f09565b90509250925092565b5f8060408385031215613f6f575f80fd5b613e6c83613cc4565b5f8060408385031215613f89575f80fd5b613f9283613cc4565b9150613fa060208401613cc4565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112613fcc575f80fd5b81356001600160401b0380821115613fe657613fe6613fa9565b604051601f8301601f19908116603f0116810190828211818310171561400e5761400e613fa9565b81604052838152866020858801011115614026575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f60208284031215614055575f80fd5b81356001600160401b0381111561406a575f80fd5b610ef284828501613fbd565b5f60208284031215614086575f80fd5b5035919050565b602081526001600160401b0382511660208201525f602083015160606040840152613def6080840182613d97565b5f80604083850312156140cc575f80fd5b82356140d781613c70565b915060208301356001600160401b038111156140f1575f80fd5b6140fd85828601613fbd565b9150509250929050565b5f8060408385031215614118575f80fd5b6140d783613cc4565b6001600160e01b031981168114613635575f80fd5b5f8060408385031215614147575f80fd5b823561415281613c70565b91506020830135613e4581614121565b5f805f60408486031215614174575f80fd5b613ed684613cc4565b5f806040838503121561418e575f80fd5b823561419981613c70565b9150602083013560ff81168114613e45575f80fd5b5f80604083850312156141bf575f80fd5b6141c883613cc4565b9150613fa060208401613f09565b5f805f80606085870312156141e9575f80fd5b84356141f481613c70565b9350602085013561420481613c70565b925060408501356001600160401b0381111561421e575f80fd5b61422a87828801613e7c565b95989497509550505050565b5f8060208385031215614247575f80fd5b82356001600160401b0381111561425c575f80fd5b61426885828601613c84565b90969095509350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156142c957603f198886030184526142b7858351613d97565b9450928501929085019060010161429b565b5092979650505050505050565b5f805f606084860312156142e8575f80fd5b83356142f381613c70565b9250602084013561430381613c70565b9150604084013561431381614121565b809150509250925092565b64ffffffffff81168114613635575f80fd5b5f60208284031215614340575f80fd5b8135610b3c8161431e565b5f806040838503121561435c575f80fd5b82356141c881613c70565b5f8060408385031215614378575f80fd5b61438183613cc4565b946020939093013593505050565b5f805f80606085870312156143a2575f80fd5b84356143ad81613c70565b935060208501356001600160401b038111156143c7575f80fd5b6143d387828801613e7c565b909450925050604085013565ffffffffffff811681146143f1575f80fd5b939692955090935050565b600181811c9082168061441057607f821691505b60208210810361204057634e487b7160e01b5f52602260045260245ffd5b5f825161443f818460208701613d75565b9190910192915050565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561446d575f80fd5b8151610b3c81613e0c565b5f60208284031215614488575f80fd5b8151610b3c8161431e565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b038581168252841660208201526060604082018190525f90611b099083018486614493565b5f808335601e198436030181126144fc575f80fd5b8301803591506001600160401b03821115614515575f80fd5b602001915036819003821315611a87575f80fd5b5f60208284031215614539575f80fd5b8135610b3c81614121565b634e487b7160e01b5f52601160045260245ffd5b65ffffffffffff81811683821601908082111561175157611751614544565b6001600160a01b038481168252831660208201526060604082018190525f90610d1690830184613d97565b601f821115610c9757805f5260205f20601f840160051c810160208510156145c75750805b601f840160051c820191505b81811015610d8c575f81556001016145d3565b81516001600160401b038111156145ff576145ff613fa9565b6146138161460d84546143fc565b846145a2565b602080601f831160018114614646575f841561462f5750858301515b5f19600386901b1c1916600185901b178555610aba565b5f85815260208120601f198616915b8281101561467457888601518255948401946001909101908401614655565b508582101561469157878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03831681526040602082018190525f90610ef290830184613d97565b5f6001600160401b03808616835280851660208401525060606040830152610d166060830184613d97565b6001600160401b0383168152604060208201525f610ef26040830184613d97565b602081525f610ef2602083018486614493565b5f60208284031215614733575f80fd5b8151610b3c81614121565b65ffffffffffff861681526001600160a01b038581166020830152841660408201526080606082018190525f906147789083018486614493565b979650505050505050565b5f8085851115614791575f80fd5b8386111561479d575f80fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156147d25780818660040360031b1b83161692505b505092915050565b8181038181111561134057611340614544565b634e487b7160e01b5f52603160045260245ffd5b63ffffffff8281168282160390808211156117515761175161454456fe6eab09faeebddf4f4430139353ec193aaa0bd7382b47d6e52082f5add274e600a264697066735822122004f21081f45b6d8ebc6464f80733b5c051d48e9d27b05736e0988bc5cf8fad5264736f6c63430008180033",
1772
+ "linkReferences": {
1773
+ "contracts/type/Timestamp.sol": {
1774
+ "TimestampLib": [
1775
+ {
1776
+ "length": 20,
1777
+ "start": 4222
1778
+ },
1779
+ {
1780
+ "length": 20,
1781
+ "start": 4655
1782
+ },
1783
+ {
1784
+ "length": 20,
1785
+ "start": 4759
1786
+ },
1787
+ {
1788
+ "length": 20,
1789
+ "start": 5055
1790
+ },
1791
+ {
1792
+ "length": 20,
1793
+ "start": 6145
1794
+ },
1795
+ {
1796
+ "length": 20,
1797
+ "start": 6269
1798
+ },
1799
+ {
1800
+ "length": 20,
1801
+ "start": 6411
1802
+ },
1803
+ {
1804
+ "length": 20,
1805
+ "start": 8472
1806
+ },
1807
+ {
1808
+ "length": 20,
1809
+ "start": 9084
1810
+ }
1811
+ ]
1812
+ }
1813
+ },
1814
+ "deployedLinkReferences": {
1815
+ "contracts/type/Timestamp.sol": {
1816
+ "TimestampLib": [
1817
+ {
1818
+ "length": 20,
1819
+ "start": 4193
1820
+ },
1821
+ {
1822
+ "length": 20,
1823
+ "start": 4626
1824
+ },
1825
+ {
1826
+ "length": 20,
1827
+ "start": 4730
1828
+ },
1829
+ {
1830
+ "length": 20,
1831
+ "start": 5026
1832
+ },
1833
+ {
1834
+ "length": 20,
1835
+ "start": 6116
1836
+ },
1837
+ {
1838
+ "length": 20,
1839
+ "start": 6240
1840
+ },
1841
+ {
1842
+ "length": 20,
1843
+ "start": 6382
1844
+ },
1845
+ {
1846
+ "length": 20,
1847
+ "start": 8443
1848
+ },
1849
+ {
1850
+ "length": 20,
1851
+ "start": 9055
1852
+ }
1853
+ ]
1854
+ }
1855
+ }
1856
+ }