@etherisc/gif-next 0.0.2-7f39e38-904 → 0.0.2-804cdbf-724

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/README.md +32 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +36 -255
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +147 -96
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +86 -59
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +82 -151
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +52 -17
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +77 -78
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +149 -52
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +91 -132
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +230 -65
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +216 -119
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +70 -51
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +260 -137
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -59
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +74 -43
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +20 -1
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +18 -207
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +35 -1
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +25 -315
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +84 -42
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -40
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +79 -36
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +68 -37
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +119 -68
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +88 -53
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +20 -1
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +20 -1
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +20 -1
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +20 -1
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +24 -47
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.json +20 -1
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +97 -46
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +77 -42
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +105 -62
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +81 -50
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  144. package/artifacts/contracts/product/Product.sol/Product.json +31 -165
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +61 -26
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +59 -32
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +86 -74
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -184
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.json +255 -112
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -15
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +51 -35
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +19 -11
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  173. package/artifacts/contracts/shared/Component.sol/Component.json +18 -12
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +96 -70
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +73 -54
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  179. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +20 -1
  180. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  181. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +11 -5
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -1
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +24 -5
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  189. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  191. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  197. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  200. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  202. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  203. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  204. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +31 -65
  205. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
  207. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  208. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  209. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  210. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  211. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
  213. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  215. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +35 -16
  217. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +14 -8
  219. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  221. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  222. package/artifacts/contracts/shared/Service.sol/Service.json +20 -1
  223. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  225. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  226. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  227. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  228. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  229. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +121 -118
  230. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  231. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +222 -71
  232. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  233. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +102 -44
  234. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  235. package/artifacts/contracts/staking/Staking.sol/Staking.json +186 -183
  236. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  238. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  239. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +71 -58
  240. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  241. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +263 -39
  242. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  243. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +271 -135
  244. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  245. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +67 -47
  246. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  247. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +734 -187
  248. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  249. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -18
  250. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  251. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  252. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
  254. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  256. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  258. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  260. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  262. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  263. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  264. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
  266. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  267. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  268. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  270. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  272. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  274. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  276. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  278. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  280. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  282. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  284. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  286. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  288. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  290. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  292. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  294. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  296. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  298. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  300. package/contracts/authorization/AccessAdmin.sol +591 -0
  301. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  302. package/contracts/authorization/Authorization.sol +218 -0
  303. package/contracts/authorization/IAccess.sol +48 -0
  304. package/contracts/authorization/IAccessAdmin.sol +136 -0
  305. package/contracts/authorization/IAuthorization.sol +54 -0
  306. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  307. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  308. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  309. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  310. package/contracts/distribution/BasicDistribution.sol +149 -0
  311. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  312. package/contracts/distribution/Distribution.sol +126 -106
  313. package/contracts/distribution/DistributionService.sol +13 -9
  314. package/contracts/distribution/DistributionServiceManager.sol +0 -12
  315. package/contracts/distribution/IDistributionComponent.sol +17 -35
  316. package/contracts/distribution/IDistributionService.sol +5 -1
  317. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  318. package/contracts/instance/IInstance.sol +25 -16
  319. package/contracts/instance/IInstanceService.sol +36 -27
  320. package/contracts/instance/Instance.sol +113 -87
  321. package/contracts/instance/InstanceAdmin.sol +266 -0
  322. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  323. package/contracts/instance/InstanceReader.sol +52 -13
  324. package/contracts/instance/InstanceService.sol +175 -99
  325. package/contracts/instance/InstanceStore.sol +38 -22
  326. package/contracts/instance/base/BalanceStore.sol +11 -6
  327. package/contracts/instance/base/Cloneable.sol +2 -25
  328. package/contracts/instance/base/ObjectCounter.sol +21 -0
  329. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  330. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  331. package/contracts/instance/module/IAccess.sol +2 -10
  332. package/contracts/oracle/BasicOracle.sol +48 -0
  333. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  334. package/contracts/oracle/IOracle.sol +36 -0
  335. package/contracts/oracle/IOracleComponent.sol +32 -0
  336. package/contracts/oracle/IOracleService.sol +65 -0
  337. package/contracts/oracle/Oracle.sol +157 -0
  338. package/contracts/oracle/OracleService.sol +278 -0
  339. package/contracts/oracle/OracleServiceManager.sol +42 -0
  340. package/contracts/pool/BasicPool.sol +164 -0
  341. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  342. package/contracts/pool/BundleService.sol +26 -26
  343. package/contracts/pool/IPoolComponent.sol +0 -60
  344. package/contracts/pool/IPoolService.sol +3 -0
  345. package/contracts/pool/Pool.sol +143 -131
  346. package/contracts/pool/PoolService.sol +38 -11
  347. package/contracts/product/ApplicationService.sol +5 -5
  348. package/contracts/product/BasicProduct.sol +82 -0
  349. package/contracts/product/BasicProductAuthorization.sol +40 -0
  350. package/contracts/product/ClaimService.sol +11 -6
  351. package/contracts/product/IClaimService.sol +6 -0
  352. package/contracts/product/IProductComponent.sol +6 -9
  353. package/contracts/product/PolicyService.sol +8 -6
  354. package/contracts/product/PricingService.sol +7 -8
  355. package/contracts/product/Product.sol +103 -88
  356. package/contracts/product/ProductService.sol +5 -5
  357. package/contracts/registry/ChainNft.sol +1 -0
  358. package/contracts/registry/IRegistry.sol +33 -24
  359. package/contracts/registry/IRegistryService.sol +7 -6
  360. package/contracts/registry/Registry.sol +146 -148
  361. package/contracts/registry/RegistryAdmin.sol +365 -0
  362. package/contracts/registry/RegistryService.sol +8 -8
  363. package/contracts/registry/RegistryServiceManager.sol +0 -19
  364. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  365. package/contracts/registry/ReleaseRegistry.sol +487 -0
  366. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  367. package/contracts/registry/TokenRegistry.sol +22 -61
  368. package/contracts/shared/Component.sol +8 -13
  369. package/contracts/shared/ComponentService.sol +50 -64
  370. package/contracts/shared/ComponentVerifyingService.sol +13 -7
  371. package/contracts/shared/IComponent.sol +3 -7
  372. package/contracts/shared/IComponentService.sol +11 -0
  373. package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
  374. package/contracts/shared/IKeyValueStore.sol +2 -1
  375. package/contracts/shared/ILifecycle.sol +1 -2
  376. package/contracts/shared/INftOwnable.sol +1 -1
  377. package/contracts/shared/IService.sol +7 -0
  378. package/contracts/shared/InitializableCustom.sol +177 -0
  379. package/contracts/shared/InstanceLinkedComponent.sol +26 -20
  380. package/contracts/shared/KeyValueStore.sol +7 -6
  381. package/contracts/shared/Lifecycle.sol +16 -60
  382. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  383. package/contracts/shared/NftOwnable.sol +2 -13
  384. package/contracts/shared/PolicyHolder.sol +2 -1
  385. package/contracts/shared/ProxyManager.sol +6 -3
  386. package/contracts/shared/Service.sol +27 -21
  387. package/contracts/shared/UpgradableProxyWithAdmin.sol +1 -3
  388. package/contracts/staking/IStaking.sol +40 -25
  389. package/contracts/staking/IStakingService.sol +42 -44
  390. package/contracts/staking/StakeManagerLib.sol +101 -26
  391. package/contracts/staking/Staking.sol +136 -127
  392. package/contracts/staking/StakingLifecycle.sol +23 -0
  393. package/contracts/staking/StakingManager.sol +10 -22
  394. package/contracts/staking/StakingReader.sol +75 -36
  395. package/contracts/staking/StakingService.sol +124 -88
  396. package/contracts/staking/StakingServiceManager.sol +2 -2
  397. package/contracts/staking/StakingStore.sol +401 -115
  398. package/contracts/staking/TargetManagerLib.sol +28 -0
  399. package/contracts/type/Amount.sol +15 -1
  400. package/contracts/type/NftId.sol +8 -8
  401. package/contracts/type/ObjectType.sol +171 -69
  402. package/contracts/type/RequestId.sol +75 -0
  403. package/contracts/type/RoleId.sol +103 -72
  404. package/contracts/type/Seconds.sol +10 -0
  405. package/contracts/type/Selector.sol +102 -0
  406. package/contracts/type/StateId.sol +12 -0
  407. package/contracts/type/String.sol +53 -0
  408. package/contracts/type/Timestamp.sol +6 -2
  409. package/contracts/type/UFixed.sol +6 -0
  410. package/contracts/type/Version.sol +3 -1
  411. package/package.json +8 -5
  412. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  413. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  414. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  415. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  416. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  417. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -132
  418. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  419. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  420. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  421. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -322
  422. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  423. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1151
  424. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  425. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  426. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  427. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  428. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  429. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  430. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +0 -4
  431. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
  432. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
  433. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
  434. package/contracts/instance/InstanceAccessManager.sol +0 -543
  435. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -336
  436. package/contracts/registry/RegistryAccessManager.sol +0 -196
  437. package/contracts/registry/ReleaseManager.sol +0 -563
  438. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  439. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  440. package/contracts/staking/IStakingManager.sol +0 -15
  441. package/contracts/staking/IStakingStore.sol +0 -130
@@ -1,1151 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "ReleaseManager",
4
- "sourceName": "contracts/registry/ReleaseManager.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "address",
10
- "name": "gifAdmin",
11
- "type": "address"
12
- },
13
- {
14
- "internalType": "address",
15
- "name": "gifManager",
16
- "type": "address"
17
- },
18
- {
19
- "internalType": "address",
20
- "name": "registry",
21
- "type": "address"
22
- }
23
- ],
24
- "stateMutability": "nonpayable",
25
- "type": "constructor"
26
- },
27
- {
28
- "inputs": [
29
- {
30
- "internalType": "address",
31
- "name": "authority",
32
- "type": "address"
33
- }
34
- ],
35
- "name": "AccessManagedInvalidAuthority",
36
- "type": "error"
37
- },
38
- {
39
- "inputs": [
40
- {
41
- "internalType": "address",
42
- "name": "caller",
43
- "type": "address"
44
- },
45
- {
46
- "internalType": "uint32",
47
- "name": "delay",
48
- "type": "uint32"
49
- }
50
- ],
51
- "name": "AccessManagedRequiredDelay",
52
- "type": "error"
53
- },
54
- {
55
- "inputs": [
56
- {
57
- "internalType": "address",
58
- "name": "caller",
59
- "type": "address"
60
- }
61
- ],
62
- "name": "AccessManagedUnauthorized",
63
- "type": "error"
64
- },
65
- {
66
- "inputs": [],
67
- "name": "ERC1167FailedCreateClone",
68
- "type": "error"
69
- },
70
- {
71
- "inputs": [
72
- {
73
- "internalType": "ObjectType",
74
- "name": "objectType",
75
- "type": "uint8"
76
- },
77
- {
78
- "internalType": "StateId",
79
- "name": "fromStateId",
80
- "type": "uint8"
81
- },
82
- {
83
- "internalType": "StateId",
84
- "name": "toStateId",
85
- "type": "uint8"
86
- }
87
- ],
88
- "name": "ErrorInvalidStateTransition",
89
- "type": "error"
90
- },
91
- {
92
- "inputs": [
93
- {
94
- "internalType": "NftId",
95
- "name": "nftId",
96
- "type": "uint96"
97
- },
98
- {
99
- "internalType": "ObjectType",
100
- "name": "objectType",
101
- "type": "uint8"
102
- }
103
- ],
104
- "name": "ErrorNoLifecycle",
105
- "type": "error"
106
- },
107
- {
108
- "inputs": [
109
- {
110
- "internalType": "StateId",
111
- "name": "currentStateId",
112
- "type": "uint8"
113
- }
114
- ],
115
- "name": "ErrorReleaseManagerActivationDisallowed",
116
- "type": "error"
117
- },
118
- {
119
- "inputs": [],
120
- "name": "ErrorReleaseManagerNoServiceRegistrationExpected",
121
- "type": "error"
122
- },
123
- {
124
- "inputs": [
125
- {
126
- "internalType": "address",
127
- "name": "registry",
128
- "type": "address"
129
- }
130
- ],
131
- "name": "ErrorReleaseManagerNotRegistry",
132
- "type": "error"
133
- },
134
- {
135
- "inputs": [
136
- {
137
- "internalType": "contract IService",
138
- "name": "service",
139
- "type": "address"
140
- }
141
- ],
142
- "name": "ErrorReleaseManagerNotService",
143
- "type": "error"
144
- },
145
- {
146
- "inputs": [
147
- {
148
- "internalType": "VersionPart",
149
- "name": "releaseVersion",
150
- "type": "uint8"
151
- }
152
- ],
153
- "name": "ErrorReleaseManagerReleaseAlreadyActivated",
154
- "type": "error"
155
- },
156
- {
157
- "inputs": [
158
- {
159
- "internalType": "VersionPart",
160
- "name": "version",
161
- "type": "uint8"
162
- }
163
- ],
164
- "name": "ErrorReleaseManagerReleaseAlreadyCreated",
165
- "type": "error"
166
- },
167
- {
168
- "inputs": [
169
- {
170
- "internalType": "StateId",
171
- "name": "currentStateId",
172
- "type": "uint8"
173
- }
174
- ],
175
- "name": "ErrorReleaseManagerReleaseCreationDisallowed",
176
- "type": "error"
177
- },
178
- {
179
- "inputs": [],
180
- "name": "ErrorReleaseManagerReleaseEmpty",
181
- "type": "error"
182
- },
183
- {
184
- "inputs": [
185
- {
186
- "internalType": "VersionPart",
187
- "name": "releaseVersion",
188
- "type": "uint8"
189
- }
190
- ],
191
- "name": "ErrorReleaseManagerReleaseNotCreated",
192
- "type": "error"
193
- },
194
- {
195
- "inputs": [
196
- {
197
- "internalType": "StateId",
198
- "name": "currentStateId",
199
- "type": "uint8"
200
- }
201
- ],
202
- "name": "ErrorReleaseManagerReleasePreparationDisallowed",
203
- "type": "error"
204
- },
205
- {
206
- "inputs": [
207
- {
208
- "internalType": "VersionPart",
209
- "name": "releaseVersion",
210
- "type": "uint8"
211
- },
212
- {
213
- "internalType": "uint256",
214
- "name": "awaitingRegistration",
215
- "type": "uint256"
216
- }
217
- ],
218
- "name": "ErrorReleaseManagerReleaseRegistrationNotFinished",
219
- "type": "error"
220
- },
221
- {
222
- "inputs": [
223
- {
224
- "internalType": "contract IService",
225
- "name": "given",
226
- "type": "address"
227
- },
228
- {
229
- "internalType": "address",
230
- "name": "expected",
231
- "type": "address"
232
- }
233
- ],
234
- "name": "ErrorReleaseManagerServiceAddressInvalid",
235
- "type": "error"
236
- },
237
- {
238
- "inputs": [
239
- {
240
- "internalType": "contract IService",
241
- "name": "service",
242
- "type": "address"
243
- },
244
- {
245
- "internalType": "address",
246
- "name": "expected",
247
- "type": "address"
248
- }
249
- ],
250
- "name": "ErrorReleaseManagerServiceInfoAddressInvalid",
251
- "type": "error"
252
- },
253
- {
254
- "inputs": [
255
- {
256
- "internalType": "contract IService",
257
- "name": "service",
258
- "type": "address"
259
- },
260
- {
261
- "internalType": "bool",
262
- "name": "isInterceptor",
263
- "type": "bool"
264
- }
265
- ],
266
- "name": "ErrorReleaseManagerServiceInfoInterceptorInvalid",
267
- "type": "error"
268
- },
269
- {
270
- "inputs": [
271
- {
272
- "internalType": "contract IService",
273
- "name": "service",
274
- "type": "address"
275
- },
276
- {
277
- "internalType": "address",
278
- "name": "expected",
279
- "type": "address"
280
- },
281
- {
282
- "internalType": "address",
283
- "name": "found",
284
- "type": "address"
285
- }
286
- ],
287
- "name": "ErrorReleaseManagerServiceInfoOwnerInvalid",
288
- "type": "error"
289
- },
290
- {
291
- "inputs": [
292
- {
293
- "internalType": "contract IService",
294
- "name": "service",
295
- "type": "address"
296
- },
297
- {
298
- "internalType": "ObjectType",
299
- "name": "expected",
300
- "type": "uint8"
301
- },
302
- {
303
- "internalType": "ObjectType",
304
- "name": "found",
305
- "type": "uint8"
306
- }
307
- ],
308
- "name": "ErrorReleaseManagerServiceInfoTypeInvalid",
309
- "type": "error"
310
- },
311
- {
312
- "inputs": [
313
- {
314
- "internalType": "contract IService",
315
- "name": "service",
316
- "type": "address"
317
- },
318
- {
319
- "internalType": "address",
320
- "name": "owner",
321
- "type": "address"
322
- }
323
- ],
324
- "name": "ErrorReleaseManagerServiceOwnerRegistered",
325
- "type": "error"
326
- },
327
- {
328
- "inputs": [
329
- {
330
- "internalType": "StateId",
331
- "name": "currentStateId",
332
- "type": "uint8"
333
- }
334
- ],
335
- "name": "ErrorReleaseManagerServiceRegistrationDisallowed",
336
- "type": "error"
337
- },
338
- {
339
- "inputs": [
340
- {
341
- "internalType": "contract IService",
342
- "name": "service",
343
- "type": "address"
344
- },
345
- {
346
- "internalType": "address",
347
- "name": "serviceAuthority",
348
- "type": "address"
349
- },
350
- {
351
- "internalType": "address",
352
- "name": "releaseAuthority",
353
- "type": "address"
354
- }
355
- ],
356
- "name": "ErrorReleaseManagerServiceReleaseAuthorityMismatch",
357
- "type": "error"
358
- },
359
- {
360
- "inputs": [
361
- {
362
- "internalType": "contract IService",
363
- "name": "service",
364
- "type": "address"
365
- },
366
- {
367
- "internalType": "VersionPart",
368
- "name": "serviceVersion",
369
- "type": "uint8"
370
- },
371
- {
372
- "internalType": "VersionPart",
373
- "name": "releaseVersion",
374
- "type": "uint8"
375
- }
376
- ],
377
- "name": "ErrorReleaseManagerServiceReleaseVersionMismatch",
378
- "type": "error"
379
- },
380
- {
381
- "inputs": [
382
- {
383
- "internalType": "address",
384
- "name": "service",
385
- "type": "address"
386
- },
387
- {
388
- "internalType": "RoleId",
389
- "name": "role",
390
- "type": "uint64"
391
- }
392
- ],
393
- "name": "ErrorReleaseManagerServiceRoleInvalid",
394
- "type": "error"
395
- },
396
- {
397
- "inputs": [
398
- {
399
- "internalType": "contract IService",
400
- "name": "service",
401
- "type": "address"
402
- }
403
- ],
404
- "name": "ErrorReleaseManagerServiceSelfRegistration",
405
- "type": "error"
406
- },
407
- {
408
- "inputs": [
409
- {
410
- "internalType": "address",
411
- "name": "stakingAddress",
412
- "type": "address"
413
- }
414
- ],
415
- "name": "ErrorReleaseManagerStakingAlreadySet",
416
- "type": "error"
417
- },
418
- {
419
- "inputs": [],
420
- "name": "InvalidInitialization",
421
- "type": "error"
422
- },
423
- {
424
- "inputs": [],
425
- "name": "NotInitializing",
426
- "type": "error"
427
- },
428
- {
429
- "anonymous": false,
430
- "inputs": [
431
- {
432
- "indexed": false,
433
- "internalType": "address",
434
- "name": "authority",
435
- "type": "address"
436
- }
437
- ],
438
- "name": "AuthorityUpdated",
439
- "type": "event"
440
- },
441
- {
442
- "anonymous": false,
443
- "inputs": [
444
- {
445
- "indexed": false,
446
- "internalType": "uint64",
447
- "name": "version",
448
- "type": "uint64"
449
- }
450
- ],
451
- "name": "Initialized",
452
- "type": "event"
453
- },
454
- {
455
- "anonymous": false,
456
- "inputs": [
457
- {
458
- "indexed": false,
459
- "internalType": "VersionPart",
460
- "name": "version",
461
- "type": "uint8"
462
- }
463
- ],
464
- "name": "LogReleaseActivation",
465
- "type": "event"
466
- },
467
- {
468
- "anonymous": false,
469
- "inputs": [
470
- {
471
- "indexed": false,
472
- "internalType": "VersionPart",
473
- "name": "version",
474
- "type": "uint8"
475
- },
476
- {
477
- "indexed": false,
478
- "internalType": "bytes32",
479
- "name": "salt",
480
- "type": "bytes32"
481
- },
482
- {
483
- "indexed": false,
484
- "internalType": "contract AccessManagerUpgradeableInitializeable",
485
- "name": "accessManager",
486
- "type": "address"
487
- }
488
- ],
489
- "name": "LogReleaseCreation",
490
- "type": "event"
491
- },
492
- {
493
- "inputs": [],
494
- "name": "INITIAL_GIF_VERSION",
495
- "outputs": [
496
- {
497
- "internalType": "uint256",
498
- "name": "",
499
- "type": "uint256"
500
- }
501
- ],
502
- "stateMutability": "view",
503
- "type": "function"
504
- },
505
- {
506
- "inputs": [],
507
- "name": "_accessManager",
508
- "outputs": [
509
- {
510
- "internalType": "contract RegistryAccessManager",
511
- "name": "",
512
- "type": "address"
513
- }
514
- ],
515
- "stateMutability": "view",
516
- "type": "function"
517
- },
518
- {
519
- "inputs": [],
520
- "name": "_registry",
521
- "outputs": [
522
- {
523
- "internalType": "contract Registry",
524
- "name": "",
525
- "type": "address"
526
- }
527
- ],
528
- "stateMutability": "view",
529
- "type": "function"
530
- },
531
- {
532
- "inputs": [],
533
- "name": "activateNextRelease",
534
- "outputs": [],
535
- "stateMutability": "nonpayable",
536
- "type": "function"
537
- },
538
- {
539
- "inputs": [],
540
- "name": "authority",
541
- "outputs": [
542
- {
543
- "internalType": "address",
544
- "name": "",
545
- "type": "address"
546
- }
547
- ],
548
- "stateMutability": "view",
549
- "type": "function"
550
- },
551
- {
552
- "inputs": [],
553
- "name": "createNextRelease",
554
- "outputs": [
555
- {
556
- "internalType": "VersionPart",
557
- "name": "version",
558
- "type": "uint8"
559
- }
560
- ],
561
- "stateMutability": "nonpayable",
562
- "type": "function"
563
- },
564
- {
565
- "inputs": [
566
- {
567
- "internalType": "ObjectType",
568
- "name": "objectType",
569
- "type": "uint8"
570
- }
571
- ],
572
- "name": "getInitialState",
573
- "outputs": [
574
- {
575
- "internalType": "StateId",
576
- "name": "stateId",
577
- "type": "uint8"
578
- }
579
- ],
580
- "stateMutability": "view",
581
- "type": "function"
582
- },
583
- {
584
- "inputs": [],
585
- "name": "getInitialVersion",
586
- "outputs": [
587
- {
588
- "internalType": "VersionPart",
589
- "name": "",
590
- "type": "uint8"
591
- }
592
- ],
593
- "stateMutability": "view",
594
- "type": "function"
595
- },
596
- {
597
- "inputs": [],
598
- "name": "getLatestVersion",
599
- "outputs": [
600
- {
601
- "internalType": "VersionPart",
602
- "name": "",
603
- "type": "uint8"
604
- }
605
- ],
606
- "stateMutability": "view",
607
- "type": "function"
608
- },
609
- {
610
- "inputs": [],
611
- "name": "getNextVersion",
612
- "outputs": [
613
- {
614
- "internalType": "VersionPart",
615
- "name": "",
616
- "type": "uint8"
617
- }
618
- ],
619
- "stateMutability": "view",
620
- "type": "function"
621
- },
622
- {
623
- "inputs": [],
624
- "name": "getRegistry",
625
- "outputs": [
626
- {
627
- "internalType": "contract IRegistry",
628
- "name": "",
629
- "type": "address"
630
- }
631
- ],
632
- "stateMutability": "view",
633
- "type": "function"
634
- },
635
- {
636
- "inputs": [],
637
- "name": "getRegistryAccessManager",
638
- "outputs": [
639
- {
640
- "internalType": "contract RegistryAccessManager",
641
- "name": "",
642
- "type": "address"
643
- }
644
- ],
645
- "stateMutability": "view",
646
- "type": "function"
647
- },
648
- {
649
- "inputs": [],
650
- "name": "getRegistryAddress",
651
- "outputs": [
652
- {
653
- "internalType": "address",
654
- "name": "",
655
- "type": "address"
656
- }
657
- ],
658
- "stateMutability": "view",
659
- "type": "function"
660
- },
661
- {
662
- "inputs": [
663
- {
664
- "internalType": "VersionPart",
665
- "name": "version",
666
- "type": "uint8"
667
- }
668
- ],
669
- "name": "getReleaseAccessManager",
670
- "outputs": [
671
- {
672
- "internalType": "contract AccessManagerUpgradeableInitializeable",
673
- "name": "",
674
- "type": "address"
675
- }
676
- ],
677
- "stateMutability": "view",
678
- "type": "function"
679
- },
680
- {
681
- "inputs": [
682
- {
683
- "internalType": "VersionPart",
684
- "name": "version",
685
- "type": "uint8"
686
- }
687
- ],
688
- "name": "getReleaseInfo",
689
- "outputs": [
690
- {
691
- "components": [
692
- {
693
- "internalType": "VersionPart",
694
- "name": "version",
695
- "type": "uint8"
696
- },
697
- {
698
- "internalType": "address[]",
699
- "name": "addresses",
700
- "type": "address[]"
701
- },
702
- {
703
- "internalType": "RoleId[][]",
704
- "name": "serviceRoles",
705
- "type": "uint64[][]"
706
- },
707
- {
708
- "internalType": "RoleId[][]",
709
- "name": "functionRoles",
710
- "type": "uint64[][]"
711
- },
712
- {
713
- "internalType": "bytes4[][][]",
714
- "name": "selectors",
715
- "type": "bytes4[][][]"
716
- },
717
- {
718
- "internalType": "ObjectType[]",
719
- "name": "domains",
720
- "type": "uint8[]"
721
- },
722
- {
723
- "internalType": "Timestamp",
724
- "name": "activatedAt",
725
- "type": "uint40"
726
- }
727
- ],
728
- "internalType": "struct IRegistry.ReleaseInfo",
729
- "name": "",
730
- "type": "tuple"
731
- }
732
- ],
733
- "stateMutability": "view",
734
- "type": "function"
735
- },
736
- {
737
- "inputs": [],
738
- "name": "getRemainingServicesToRegister",
739
- "outputs": [
740
- {
741
- "internalType": "uint256",
742
- "name": "services",
743
- "type": "uint256"
744
- }
745
- ],
746
- "stateMutability": "view",
747
- "type": "function"
748
- },
749
- {
750
- "inputs": [],
751
- "name": "getState",
752
- "outputs": [
753
- {
754
- "internalType": "StateId",
755
- "name": "stateId",
756
- "type": "uint8"
757
- }
758
- ],
759
- "stateMutability": "view",
760
- "type": "function"
761
- },
762
- {
763
- "inputs": [
764
- {
765
- "internalType": "ObjectType",
766
- "name": "objectType",
767
- "type": "uint8"
768
- }
769
- ],
770
- "name": "hasLifecycle",
771
- "outputs": [
772
- {
773
- "internalType": "bool",
774
- "name": "",
775
- "type": "bool"
776
- }
777
- ],
778
- "stateMutability": "view",
779
- "type": "function"
780
- },
781
- {
782
- "inputs": [
783
- {
784
- "internalType": "address",
785
- "name": "service",
786
- "type": "address"
787
- }
788
- ],
789
- "name": "isActiveRegistryService",
790
- "outputs": [
791
- {
792
- "internalType": "bool",
793
- "name": "",
794
- "type": "bool"
795
- }
796
- ],
797
- "stateMutability": "view",
798
- "type": "function"
799
- },
800
- {
801
- "inputs": [],
802
- "name": "isConsumingScheduledOp",
803
- "outputs": [
804
- {
805
- "internalType": "bytes4",
806
- "name": "",
807
- "type": "bytes4"
808
- }
809
- ],
810
- "stateMutability": "view",
811
- "type": "function"
812
- },
813
- {
814
- "inputs": [
815
- {
816
- "internalType": "VersionPart",
817
- "name": "version",
818
- "type": "uint8"
819
- }
820
- ],
821
- "name": "isValidRelease",
822
- "outputs": [
823
- {
824
- "internalType": "bool",
825
- "name": "",
826
- "type": "bool"
827
- }
828
- ],
829
- "stateMutability": "view",
830
- "type": "function"
831
- },
832
- {
833
- "inputs": [
834
- {
835
- "internalType": "ObjectType",
836
- "name": "objectType",
837
- "type": "uint8"
838
- },
839
- {
840
- "internalType": "StateId",
841
- "name": "fromId",
842
- "type": "uint8"
843
- },
844
- {
845
- "internalType": "StateId",
846
- "name": "toId",
847
- "type": "uint8"
848
- }
849
- ],
850
- "name": "isValidTransition",
851
- "outputs": [
852
- {
853
- "internalType": "bool",
854
- "name": "isValid",
855
- "type": "bool"
856
- }
857
- ],
858
- "stateMutability": "view",
859
- "type": "function"
860
- },
861
- {
862
- "inputs": [
863
- {
864
- "internalType": "address",
865
- "name": "implementation",
866
- "type": "address"
867
- },
868
- {
869
- "internalType": "bytes32",
870
- "name": "salt",
871
- "type": "bytes32"
872
- },
873
- {
874
- "internalType": "address",
875
- "name": "deployer",
876
- "type": "address"
877
- }
878
- ],
879
- "name": "predictDeterministicAddress",
880
- "outputs": [
881
- {
882
- "internalType": "address",
883
- "name": "predicted",
884
- "type": "address"
885
- }
886
- ],
887
- "stateMutability": "pure",
888
- "type": "function"
889
- },
890
- {
891
- "inputs": [
892
- {
893
- "internalType": "address[]",
894
- "name": "addresses",
895
- "type": "address[]"
896
- },
897
- {
898
- "internalType": "RoleId[][]",
899
- "name": "serviceRoles",
900
- "type": "uint64[][]"
901
- },
902
- {
903
- "internalType": "RoleId[][]",
904
- "name": "functionRoles",
905
- "type": "uint64[][]"
906
- },
907
- {
908
- "internalType": "bytes4[][][]",
909
- "name": "selectors",
910
- "type": "bytes4[][][]"
911
- },
912
- {
913
- "internalType": "bytes32",
914
- "name": "salt",
915
- "type": "bytes32"
916
- }
917
- ],
918
- "name": "prepareNextRelease",
919
- "outputs": [
920
- {
921
- "internalType": "address",
922
- "name": "releaseAccessManagerAddress",
923
- "type": "address"
924
- },
925
- {
926
- "internalType": "VersionPart",
927
- "name": "version",
928
- "type": "uint8"
929
- },
930
- {
931
- "internalType": "bytes32",
932
- "name": "releaseSalt",
933
- "type": "bytes32"
934
- }
935
- ],
936
- "stateMutability": "nonpayable",
937
- "type": "function"
938
- },
939
- {
940
- "inputs": [
941
- {
942
- "internalType": "contract IService",
943
- "name": "service",
944
- "type": "address"
945
- }
946
- ],
947
- "name": "registerService",
948
- "outputs": [
949
- {
950
- "internalType": "NftId",
951
- "name": "nftId",
952
- "type": "uint96"
953
- }
954
- ],
955
- "stateMutability": "nonpayable",
956
- "type": "function"
957
- },
958
- {
959
- "inputs": [
960
- {
961
- "internalType": "address",
962
- "name": "stakingAddress",
963
- "type": "address"
964
- }
965
- ],
966
- "name": "registerStaking",
967
- "outputs": [],
968
- "stateMutability": "nonpayable",
969
- "type": "function"
970
- },
971
- {
972
- "inputs": [
973
- {
974
- "internalType": "address",
975
- "name": "newAuthority",
976
- "type": "address"
977
- }
978
- ],
979
- "name": "setAuthority",
980
- "outputs": [],
981
- "stateMutability": "nonpayable",
982
- "type": "function"
983
- }
984
- ],
985
- "bytecode": "0x60e06040523480156200001157600080fd5b50604051620081dc380380620081dc8339810160408190526200003491620004e5565b336200004081620002a2565b506200004c81620002f6565b6200007a576040516358374b4160e11b81526001600160a01b03821660048201526024015b60405180910390fd5b6001600160a01b03811660a052604051839083906200009990620004bf565b6001600160a01b03928316815291166020820152604001604051809103906000f080158015620000cd573d6000803e3d6000fd5b506001600160a01b031660808190526040805163bf7e214f60e01b8152905162000149929163bf7e214f9160048083019260209291908290030181865afa1580156200011d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014391906200052f565b62000411565b604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af41580156200019a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c0919062000554565b60ff1660c05273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__638e4ad86c620001ee6001600362000579565b6040518263ffffffff1660e01b81526004016200020d91815260200190565b602060405180830381865af41580156200022b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000251919062000554565b6006805460ff929092166101000261ff00199092169190911790556200027f62000279600190565b62000491565b600660026101000a81548160ff021916908360ff160217905550505050620005ea565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b60006001600160a01b0382166200030f57506000919050565b604051636939560f60e11b81526001600160a01b038316600482018190529063d272ac1e90602401602060405180830381865afa15801562000355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037b91906200059b565b604051630a4d29dd60e31b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af4158015620003d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fb9190620005c6565b156200040957506000919050565b506001919050565b60005433906001600160a01b031681146200044a5760405162d1953b60e31b81526001600160a01b038216600482015260240162000071565b816001600160a01b03163b60000362000482576040516361798f2f60e11b81526001600160a01b038316600482015260240162000071565b6200048d82620002a2565b5050565b6000620004a0826001620004af565b15620004aa575060015b919050565b60ff828116908216145b92915050565b6145928062003c4a83390190565b80516001600160a01b0381168114620004aa57600080fd5b600080600060608486031215620004fb57600080fd5b6200050684620004cd565b92506200051660208501620004cd565b91506200052660408501620004cd565b90509250925092565b6000602082840312156200054257600080fd5b6200054d82620004cd565b9392505050565b6000602082840312156200056757600080fd5b815160ff811681146200054d57600080fd5b81810381811115620004b957634e487b7160e01b600052601160045260246000fd5b600060208284031215620005ae57600080fd5b81516001600160601b03811681146200054d57600080fd5b600060208284031215620005d957600080fd5b815180151581146200054d57600080fd5b60805160a05160c0516135ff6200064b60003960006101e20152600081816102a4015281816102df0152818161066d0152818161087f0152818161184a01526125060152600081816102800152818161034a015261123a01526135ff6000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806393a7e711116100f9578063bf7e214f11610097578063e9e96c7011610071578063e9e96c701461044b578063f21de1e8146102a2578063f40d7c301461045e578063fdd9ec7d1461046e57600080fd5b8063bf7e214f146103e0578063d2213b5b146103f1578063d5264d7a1461041157600080fd5b80639ef6ddc9116100d35780639ef6ddc914610376578063a2844824146103b2578063a52ec529146103ba578063bf1db3f9146103cd57600080fd5b806393a7e711146103355780639941314e1461034857806399a228e51461036e57600080fd5b806319d1478b1161016657806371ed16e41161014057806371ed16e4146102c857806379cbc5fa146102da5780637a9e5e4b146103015780638fb360371461031457600080fd5b806319d1478b146102375780632892cd3a1461027b5780635ab1bd53146102a257600080fd5b80630af43fe1146101ae5780630d358181146101cd5780630e41142e146101e05780630e6d1de9146102065780631865c57d14610211578063186664d814610222575b600080fd5b6101b6610499565b60405160ff90911681526020015b60405180910390f35b6101b66101db36600461294b565b610626565b7f00000000000000000000000000000000000000000000000000000000000000006101b6565b60065460ff166101b6565b60065462010000900460ff166101b6565b61023561023036600461297d565b610643565b005b61026361024536600461294b565b60ff166000908152600360205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101c4565b6102637f000000000000000000000000000000000000000000000000000000000000000081565b7f0000000000000000000000000000000000000000000000000000000000000000610263565b6007545b6040519081526020016101c4565b6102637f000000000000000000000000000000000000000000000000000000000000000081565b61023561030f36600461297d565b610722565b61031c61079c565b6040516001600160e01b031990911681526020016101c4565b61026361034336600461299a565b6107c2565b7f0000000000000000000000000000000000000000000000000000000000000000610263565b6102cc600381565b6103a261038436600461297d565b6001600160a01b031660009081526005602052604090205460ff1690565b60405190151581526020016101c4565b610235610823565b6103a26103c836600461294b565b610b64565b6103a26103db36600461294b565b610bf9565b6000546001600160a01b0316610263565b6104046103ff36600461294b565b610c06565b6040516101c49190612baa565b61042461041f366004612f7e565b611008565b604080516001600160a01b03909416845260ff9092166020840152908201526060016101c4565b6103a2610459366004613090565b61139a565b600654610100900460ff166101b6565b61048161047c36600461297d565b611498565b6040516001600160601b0390911681526020016101c4565b60006104a8335b60003661192b565b6104c1600160065462010000900460ff16610459600290565b6104f1576006546040516319ddc69560e21b81526201000090910460ff1660048201526024015b60405180910390fd5b600654604051632b10f60d60e21b815261010090910460ff16600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90829063ac43d83490602401602060405180830381865af4158015610553573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057791906130d0565b6105829060016130ff565b6040518263ffffffff1660e01b81526004016105a091815260200190565b602060405180830381865af41580156105bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e1919061311d565b6006805460ff929092166101000261ff00199092169190911790556000600755610609600290565b600660026101000a81548160ff021916908360ff16021790555090565b6000610633826001611a2b565b1561063e5760015b90505b919050565b61064c336104a0565b60405163030ccc9b60e31b81526001600160a01b03808316600483015282917f00000000000000000000000000000000000000000000000000000000000000009091169063186664d890602401600060405180830381600087803b1580156106b357600080fd5b505af11580156106c7573d6000803e3d6000fd5b50505050806001600160a01b031663138461e06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561070657600080fd5b505af115801561071a573d6000803e3d6000fd5b505050505050565b60005433906001600160a01b031681146107595760405162d1953b60e31b81526001600160a01b03821660048201526024016104e8565b816001600160a01b03163b60000361078f576040516361798f2f60e11b81526001600160a01b03831660048201526024016104e8565b61079882611a3b565b5050565b60008054600160a01b900460ff166107b45750600090565b638fb3603760e01b5b905090565b604051603881018290526f5af43d82803e903d91602b57fd5bf3ff602482015260148101849052733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018390526037600c820120607882015260556043909101205b9392505050565b61082c336104a0565b610845600160065462010000900460ff16610459600490565b6108705760065460405163efcc379960e01b81526201000090910460ff1660048201526024016104e8565b600654610100900460ff1660007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d39e60436108b4602890565b6040516001600160e01b031960e084901b16815260ff91821660048201529085166024820152604401602060405180830381865afa1580156108fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091e9190613145565b90506001600160a01b03811661094c57604051638047661960e01b815260ff831660048201526024016104e8565b6007541561097d5760075460405163c90aac6160e01b815260ff8416600482015260248101919091526044016104e8565b60ff8216600090815260046020819052604091829020600601549151638d38cd4b60e01b815264ffffffffff9092169082015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af41580156109ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a109190613172565b15610a3357604051630e5e66b360e21b815260ff831660048201526024016104e8565b6006805460ff191660ff8416179055610a4a600490565b6006805460ff92909216620100000262ff0000199092169190911790556001600160a01b038116600090815260056020908152604091829020805460ff1916600117905581516356db0c1960e11b8152915173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb618329260048083019391928290030181865af4158015610ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afd919061318d565b60ff8316600081815260046020908152604091829020600601805464ffffffffff191664ffffffffff9590951694909417909355519081527fb7defc6b4b34e4db6f0265bb8cc2606e513beda1e68095b668932471417561d4910160405180910390a15050565b60ff81166000908152600460208190526040808320600601549051638d38cd4b60e01b815264ffffffffff9091169181019190915273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af4158015610bd5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063b9190613172565b600061063b826001611a2b565b610c506040518060e00160405280600060ff1681526020016060815260200160608152602001606081526020016060815260200160608152602001600064ffffffffff1681525090565b60ff808316600090815260046020908152604091829020825160e08101845281549094168452600181018054845181850281018501909552808552919385840193909290830182828015610ccd57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610caf575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015610d9957600084815260209081902083018054604080518285028101850190915281815292830182828015610d8557602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b031681526020019060080190602082600701049283019260010382029150808411610d425790505b505050505081526020019060010190610cfb565b50505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b82821015610e6457600084815260209081902083018054604080518285028101850190915281815292830182828015610e5057602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b031681526020019060080190602082600701049283019260010382029150808411610e0d5790505b505050505081526020019060010190610dc6565b50505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610f7157838290600052602060002001805480602002602001604051908101604052809291908181526020016000905b82821015610f5e57600084815260209081902083018054604080518285028101850190915281815292830182828015610f4a57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411610f0c5790505b505050505081526020019060010190610ec5565b5050505081526020019060010190610e91565b50505050815260200160058201805480602002602001604051908101604052809291908181526020018280548015610fe657602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610fb75790505b50505091835250506006919091015464ffffffffff1660209091015292915050565b60008080611015336104a0565b61102f60015b60065462010000900460ff16610459600390565b61105a576006546040516313e3076760e31b81526201000090910460ff1660048201526024016104e8565b875160000361107c576040516357e3390360e01b815260040160405180910390fd5b600754156110a257604051638a25989560e01b815260ff831660048201526024016104e8565b6110ae88888888611a8f565b600654610100900460ff166000818152600460209081526040909120805460ff1916831781558a519294506110eb926001909101918b01906125a8565b5060ff821660009081526004602090815260409091208851611115926002909201918a019061260d565b5060ff82166000908152600460209081526040909120875161113f9260039092019189019061260d565b5060ff82166000908152600460208181526040909220875161116993919092019190880190612666565b50875160075560036006805462ff000019166201000060ff938416021790819055610100900416604051632b10f60d60e21b815260ff8216600482015290925073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af41580156111e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120991906130d0565b60408051602081019290925281018590526060016040516020818303038152906040528051906020012090506112c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ba9190613145565b82611b90565b60ff83166000908152600360205260409081902080546001600160a01b0319166001600160a01b038416908117909155905163189acdbd60e31b8152306004820152919450849163c4d66de890602401600060405180830381600087803b15801561132a57600080fd5b505af115801561133e573d6000803e3d6000fd5b50506040805160ff87168152602081018690526001600160a01b0385168183015290517f6529cb4b9a24b8de97cbd0802b1c3d02a8c8aed37388204e2f5bc3013793977e9350908190036060019150a150955095509592505050565b60006113af8460015b60ff9081169116141590565b156113bc5750600061081c565b6113c7836001611a2b565b80156113d957506113d9826002611a2b565b156113e65750600161081c565b6113f1836002611a2b565b80156114035750611403826003611a2b565b156114105750600161081c565b61141b836003611a2b565b801561142d575061142d826002611a2b565b1561143a5750600161081c565b611445836003611a2b565b80156114575750611457826003611a2b565b156114645750600161081c565b61146f836003611a2b565b80156114815750611481826004611a2b565b1561148e5750600161081c565b5060009392505050565b60006114a3336104a0565b6114ad600161101b565b6114d8576006546040516316997edd60e11b81526201000090910460ff1660048201526024016104e8565b60008060006114e685611bfe565b92509250925060075460000361150f57604051630a7d531760e31b815260040160405180910390fd5b6000600160075461152091906131b4565b60ff83166000908152600460205260408120600101805492935090918390811061154c5761154c6131c7565b600091825260208083209091015460ff8616835260038252604080842054600490935290922060020180546001600160a01b0393841694506117d89392909216918a9190869081106115a0576115a06131c7565b9060005260206000200180548060200260200160405190810160405280929190818152602001828054801561162657602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b0316815260200190600801906020826007010492830192600103820291508084116115e35790505b50505060ff8916600090815260046020526040902060030180549092508891508110611654576116546131c7565b906000526020600020018054806020026020016040519081016040528092919081815260200182805480156116da57602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b0316815260200190600801906020826007010492830192600103820291508084116116975790505b5050505050600460008960ff1660ff168152602001908152602001600020600401878154811061170c5761170c6131c7565b90600052602060002001805480602002602001604051908101604052809291908181526020016000905b828210156117cf576000848152602090819020830180546040805182850281018501909152818152928301828280156117bb57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161177d5790505b505050505081526020019060010190611736565b50505050611f9e565b60078290556006805462ff000019166203000017905560ff83811660009081526004602081815260408084206005018054600181018255908552938290209184049091018054601f9094166101000a8086021990941694891693909302939093179091559051635382852b60e11b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169163a7050a569161188991899188918a910161322d565b6020604051808303816000875af11580156118a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cc91906132eb565b9550866001600160a01b031663138461e06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561190957600080fd5b505af115801561191d573d6000803e3d6000fd5b505050505050505050919050565b6000806119616119436000546001600160a01b031690565b863061195360046000898b613306565b61195c91613330565b612209565b9150915081611a245763ffffffff811615611a01576000805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee906119bc90889088908890600401613360565b600060405180830381600087803b1580156119d657600080fd5b505af11580156119ea573d6000803e3d6000fd5b50506000805460ff60a01b1916905550611a249050565b60405162d1953b60e31b81526001600160a01b03861660048201526024016104e8565b5050505050565b60ff828116908216145b92915050565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b60005b8451811015611a245760005b848281518110611ab057611ab06131c7565b602002602001015151811015611b7d576000858381518110611ad457611ad46131c7565b60200260200101518281518110611aed57611aed6131c7565b60200260200101519050611b1481611b03612315565b6001600160401b0390811691161490565b15611b6a57868381518110611b2b57611b2b6131c7565b60209081029190910101516040516313f9006960e01b81526001600160a01b0390911660048201526001600160401b03821660248201526044016104e8565b5080611b75816133a0565b915050611a9e565b5080611b88816133a0565b915050611a92565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116611a35576040516330be1a3d60e21b815260040160405180910390fd5b6040805160e08101825260008082526020820181905281830181905260608083018290526080830182905260a0830182905260c083015291516301ffc9a760e01b815263b68d180960e01b600482015290919081906001600160a01b038516906301ffc9a790602401602060405180830381865afa158015611c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca89190613172565b611cd057604051631fdf992160e01b81526001600160a01b03851660048201526024016104e8565b60003390506000856001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d399190613145565b9050856001600160a01b0316630d8e6e2c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9d91906133b9565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af4158015611df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e16919061311d565b9250856001600160a01b031663b68d18096040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7a919061311d565b9350856001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611eba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee29190810190613441565b9450611eef86868461238c565b600654610100900460ff166000818152600360205260409020546001600160a01b039081169083168114611f515760405163179dce5160e11b81526001600160a01b03808a1660048301528085166024830152821660448201526064016104e8565b60ff80861690831614611f9357604051632dd6635560e21b81526001600160a01b038916600482015260ff8087166024830152831660448201526064016104e8565b505050509193909250565b60005b82518110156120d157856001600160a01b03166308d6122d86848481518110611fcc57611fcc6131c7565b6020026020010151868581518110611fe657611fe66131c7565b6020908102919091010151604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561204a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206e9190613513565b6040518463ffffffff1660e01b815260040161208c93929190613530565b600060405180830381600087803b1580156120a657600080fd5b505af11580156120ba573d6000803e3d6000fd5b5050505080806120c9906133a0565b915050611fa1565b5060005b835181101561071a57856001600160a01b03166325c471a08583815181106120ff576120ff6131c7565b6020908102919091010151604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015612163573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121879190613513565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038816602482015260006044820152606401600060405180830381600087803b1580156121de57600080fd5b505af11580156121f2573d6000803e3d6000fd5b505050508080612201906133a0565b9150506120d5565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251612278919061356d565b600060405180830381855afa9150503d80600081146122b3576040519150601f19603f3d011682016040523d82523d6000602084013e6122b8565b606091505b5091509150811561230a5760408151106122ea57808060200190518101906122e09190613589565b909450925061230a565b602081511061230a57808060200190518101906123079190613172565b93505b505094509492505050565b6040516368aebf7b60e01b81526000600482018190529073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401602060405180830381865af4158015612368573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bd9190613513565b826001600160a01b031682608001516001600160a01b0316146123d45760405163396d48c960e11b81526001600160a01b0384166004820181905260248201526044016104e8565b60608201511561240f5760608201516040516376d381b160e01b81526001600160a01b038516600482015290151560248201526044016104e8565b61241f82604001516113a3603c90565b1561245e576040828101519051630c6c87c560e41b81526001600160a01b0385166004820152603c602482015260ff90911660448201526064016104e8565b60a08201516001600160a01b03808216908316146124aa576040516314cc941d60e01b81526001600160a01b0380861660048301528084166024830152821660448201526064016104e8565b836001600160a01b0316816001600160a01b0316036124e75760405163f80468a760e01b81526001600160a01b03851660048201526024016104e8565b60405163c3c5a54760e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c3c5a54790602401602060405180830381865afa15801561254d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125719190613172565b156125a25760405163976310fb60e01b81526001600160a01b038086166004830152821660248201526044016104e8565b50505050565b8280548282559060005260206000209081019282156125fd579160200282015b828111156125fd57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906125c8565b506126099291506126bf565b5090565b82805482825590600052602060002090810192821561265a579160200282015b8281111561265a578251805161264a9184916020909101906126d4565b509160200191906001019061262d565b50612609929150612787565b8280548282559060005260206000209081019282156126b3579160200282015b828111156126b357825180516126a39184916020909101906127a4565b5091602001919060010190612686565b506126099291506127fd565b5b8082111561260957600081556001016126c0565b828054828255906000526020600020906003016004900481019282156125fd5791602002820160005b8382111561274757835183826101000a8154816001600160401b0302191690836001600160401b0316021790555092602001926008016020816007010492830192600103026126fd565b801561277a5782816101000a8154906001600160401b030219169055600801602081600701049283019260010302612747565b50506126099291506126bf565b8082111561260957600061279b828261281a565b50600101612787565b8280548282559060005260206000209081019282156127f1579160200282015b828111156127f157825180516127e1918491602090910190612842565b50916020019190600101906127c4565b506126099291506128dc565b8082111561260957600061281182826128f9565b506001016127fd565b50805460008255600301600490049060005260206000209081019061283f91906126bf565b50565b828054828255906000526020600020906007016008900481019282156125fd5791602002820160005b838211156128ac57835183826101000a81548163ffffffff021916908360e01c0217905550926020019260040160208160030104928301926001030261286b565b801561277a5782816101000a81549063ffffffff02191690556004016020816003010492830192600103026128ac565b808211156126095760006128f08282612917565b506001016128dc565b508054600082559060005260206000209081019061283f91906128dc565b50805460008255600701600890049060005260206000209081019061283f91906126bf565b60ff8116811461283f57600080fd5b60006020828403121561295d57600080fd5b813561081c8161293c565b6001600160a01b038116811461283f57600080fd5b60006020828403121561298f57600080fd5b813561081c81612968565b6000806000606084860312156129af57600080fd5b83356129ba81612968565b92506020840135915060408401356129d181612968565b809150509250925092565b600081518084526020808501945080840160005b83811015612a155781516001600160a01b0316875295820195908201906001016129f0565b509495945050505050565b600081518084526020808501808196508360051b810191508286016000805b86811015612a97578385038a52825180518087529087019087870190845b81811015612a825783516001600160401b031683529289019291890191600101612a5d565b50509a87019a95505091850191600101612a3f565b509298975050505050505050565b600081518084526020808501945080840160005b83811015612a155781516001600160e01b03191687529582019590820190600101612ab9565b600081518084526020808501808196506005915083821b81018387016000805b87811015612b68578484038b5282518051808652908801908886019080891b87018a01855b82811015612b5257601f19898303018452612b40828651612aa5565b948c0194938c01939150600101612b24565b509d8a019d965050509287019250600101612aff565b50919998505050505050505050565b600081518084526020808501945080840160005b83811015612a1557815160ff1687529582019590820190600101612b8b565b6020815260ff82511660208201526000602083015160e06040840152612bd46101008401826129dc565b90506040840151601f1980858403016060860152612bf28383612a20565b92506060860151915080858403016080860152612c0f8383612a20565b925060808601519150808584030160a0860152612c2c8383612adf565b925060a08601519150808584030160c086015250612c4a8282612b77565b91505060c0840151612c6560e085018264ffffffffff169052565b509392505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715612ca557612ca5612c6d565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612cd357612cd3612c6d565b604052919050565b60006001600160401b03821115612cf457612cf4612c6d565b5060051b60200190565b6001600160401b038116811461283f57600080fd5b600082601f830112612d2457600080fd5b81356020612d39612d3483612cdb565b612cab565b828152600592831b8501820192828201919087851115612d5857600080fd5b8387015b85811015612df75780356001600160401b03811115612d7b5760008081fd5b8801603f81018a13612d8d5760008081fd5b858101356040612d9f612d3483612cdb565b82815291851b8301810191888101908d841115612dbc5760008081fd5b938201935b83851015612de65784359250612dd683612cfe565b8282529389019390890190612dc1565b885250505093850193508401612d5c565b5090979650505050505050565b600082601f830112612e1557600080fd5b612e22612d348335612cdb565b82358082526020808301929160051b85010185811115612e4157600080fd5b602085015b81811015612f73576001600160401b0381351115612e6357600080fd5b8035860187603f820112612e7657600080fd5b6020810135612e87612d3482612cdb565b81815260059190911b82016040019060208101908a831115612ea857600080fd5b604084015b83811015612f5d576001600160401b0381351115612eca57600080fd5b803585018c605f820112612edd57600080fd5b6040810135612eee612d3482612cdb565b81815260059190911b82016060019060208101908f831115612f0f57600080fd5b6060840193505b82841015612f485783356001600160e01b0319811614612f3557600080fd5b8335825260209384019390910190612f16565b86525050602093840193919091019050612ead565b5087525050602094850194919091019050612e46565b509095945050505050565b600080600080600060a08688031215612f9657600080fd5b85356001600160401b0380821115612fad57600080fd5b818801915088601f830112612fc157600080fd5b81356020612fd1612d3483612cdb565b82815260059290921b8401810191818101908c841115612ff057600080fd5b948201945b8386101561301757853561300881612968565b82529482019490820190612ff5565b9950508901359250508082111561302d57600080fd5b61303989838a01612d13565b9550604088013591508082111561304f57600080fd5b61305b89838a01612d13565b9450606088013591508082111561307157600080fd5b5061307e88828901612e04565b95989497509295608001359392505050565b6000806000606084860312156130a557600080fd5b83356130b08161293c565b925060208401356130c08161293c565b915060408401356129d18161293c565b6000602082840312156130e257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115611a3557611a356130e9565b805161063e8161293c565b60006020828403121561312f57600080fd5b815161081c8161293c565b805161063e81612968565b60006020828403121561315757600080fd5b815161081c81612968565b8051801515811461063e57600080fd5b60006020828403121561318457600080fd5b61081c82613162565b60006020828403121561319f57600080fd5b815164ffffffffff8116811461081c57600080fd5b81810381811115611a3557611a356130e9565b634e487b7160e01b600052603260045260246000fd5b60005b838110156131f85781810151838201526020016131e0565b50506000910152565b600081518084526132198160208601602086016131dd565b601f01601f19169290920160200192915050565b606080825284516001600160601b03908116838301526020860151166080830152604085015160ff1660a083015284015180151560c08301526000905060808501516001600160a01b03811660e08401525060a08501516001600160a01b0381166101008401525060c085015160e06101208401526132b0610140840182613201565b9150506132c2602083018560ff169052565b60ff831660408301525b949350505050565b80516001600160601b038116811461063e57600080fd5b6000602082840312156132fd57600080fd5b61081c826132d4565b6000808585111561331657600080fd5b8386111561332357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156133585780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000600182016133b2576133b26130e9565b5060010190565b6000602082840312156133cb57600080fd5b815162ffffff8116811461081c57600080fd5b600082601f8301126133ef57600080fd5b81516001600160401b0381111561340857613408612c6d565b61341b601f8201601f1916602001612cab565b81815284602083860101111561343057600080fd5b6132cc8260208301602087016131dd565b60006020828403121561345357600080fd5b81516001600160401b038082111561346a57600080fd5b9083019060e0828603121561347e57600080fd5b613486612c83565b61348f836132d4565b815261349d602084016132d4565b60208201526134ae60408401613112565b60408201526134bf60608401613162565b60608201526134d06080840161313a565b60808201526134e160a0840161313a565b60a082015260c0830151828111156134f857600080fd5b613504878286016133de565b60c08301525095945050505050565b60006020828403121561352557600080fd5b815161081c81612cfe565b6001600160a01b038416815260606020820181905260009061355490830185612aa5565b90506001600160401b0383166040830152949350505050565b6000825161357f8184602087016131dd565b9190910192915050565b6000806040838503121561359c57600080fd5b6135a583613162565b9150602083015163ffffffff811681146135be57600080fd5b80915050925092905056fea2646970667358221220e24c11cc253e098b2f78fad6d6e40e3360323a854a5b0236174747c2ed84582a64736f6c6343000814003360806040523480156200001157600080fd5b50604051620045923803806200459283398101604081905262000034916200089e565b33620000408162000174565b50600180546001600160a01b03191633179055604051600090620000649062000873565b604051809103906000f08015801562000081573d6000803e3d6000fd5b5060405163189acdbd60e31b81523060048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b158015620000c757600080fd5b505af1158015620000dc573d6000803e3d6000fd5b50505050620000f181620001c860201b60201c565b60018054600160a01b600160e01b031916613d0960a61b179055620001156200024c565b6200011f620003a5565b620001366200012d62000456565b846000620004d7565b6200014d62000144620005f1565b836000620004d7565b6200016b6200015b620005f1565b6200016562000456565b6200062e565b505050620009a0565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b60005433906001600160a01b03168114620002055760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b6000036200023d576040516361798f2f60e11b81526001600160a01b0383166004820152602401620001fc565b620002488262000174565b5050565b604080516001808252818301909252600091602080830190803683370190505090506335a5af9260e01b816000815181106200028c576200028c620008d6565b6001600160e01b031990921660209283029190910190910152620002bb3082620002b562000456565b620007b1565b604080516003808252608082019092526000916020820160608036833701905050905063186664d860e01b81600081518110620002fc57620002fc620008d6565b6001600160e01b0319909216602092830291909101909101528051630af43fe160e01b9082906001908110620003365762000336620008d6565b6001600160e01b03199092166020928302919091019091015280516328a1120960e21b9082906002908110620003705762000370620008d6565b6001600160e01b03199092166020928302919091019091015260015462000248906001600160a01b031682620002b562000456565b60408051600280825260608201835260009260208301908036833701905050905063fdd9ec7d60e01b81600081518110620003e457620003e4620008d6565b6001600160e01b0319909216602092830291909101909101528051636a9326bd60e11b90829060019081106200041e576200041e620008d6565b6001600160e01b03199092166020928302919091019091015260015462000453906001600160a01b031682620002b5620005f1565b50565b6040516368aebf7b60e01b81526105dc600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b906024015b602060405180830381865af4158015620004ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004d2919062000902565b905090565b6000546001600160a01b0316604051631517388760e21b81526001600160401b03851660048201526001600160a01b0391909116906325c471a09073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156200054f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000575919062000902565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038516602482015263ffffffff841660448201526064015b600060405180830381600087803b158015620005d357600080fd5b505af1158015620005e8573d6000803e3d6000fd5b50505050505050565b6040516368aebf7b60e01b8152610640600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b906024016200048e565b6000546001600160a01b0316604051631517388760e21b81526001600160401b03841660048201526001600160a01b0391909116906330cae1879073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015620006a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006cc919062000902565b604051631517388760e21b81526001600160401b038516600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801562000725573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200074b919062000902565b6040516001600160e01b031960e085901b1681526001600160401b03928316600482015291166024820152604401600060405180830381600087803b1580156200079457600080fd5b505af1158015620007a9573d6000803e3d6000fd5b505050505050565b6000546001600160a01b0316604051631517388760e21b81526001600160401b03831660048201526001600160a01b0391909116906308d6122d908590859073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156200082d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000853919062000902565b6040518463ffffffff1660e01b8152600401620005b89392919062000929565b612cfc806200189683390190565b80516001600160a01b03811681146200089957600080fd5b919050565b60008060408385031215620008b257600080fd5b620008bd8362000881565b9150620008cd6020840162000881565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b6001600160401b03811681146200045357600080fd5b6000602082840312156200091557600080fd5b81516200092281620008ec565b9392505050565b6001600160a01b038416815260606020808301829052845191830182905260009185820191906080850190845b818110156200097e5784516001600160e01b0319168352938301939183019160010162000956565b50506001600160401b0395909516604094909401939093525091949350505050565b610ee680620009b06000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637a9e5e4b116100665780637a9e5e4b1461011357806384d34938146101265780638fb3603714610130578063b700961314610151578063bf7e214f1461016457600080fd5b806308d6122d1461009857806335a5af92146100ad57806361bc3b41146100c057806364fc3142146100f0575b600080fd5b6100ab6100a6366004610b54565b61017f565b005b6100ab6100bb366004610bb5565b61019c565b6100d36100ce366004610bd7565b6102ee565b6040516001600160401b0390911681526020015b60405180910390f35b6101036100fe366004610c34565b610324565b60405190151581526020016100e7565b6100ab610121366004610bb5565b610447565b6100d3620f424081565b6101386104c2565b6040516001600160e01b031990911681526020016100e7565b61010361015f366004610c6b565b6104e8565b6000546040516001600160a01b0390911681526020016100e7565b61018c335b600036610512565b610197838383610612565b505050565b6101a533610184565b60408051600580825260c082019092526000916020820160a0803683370190505090506309824a8060e01b816000815181106101e3576101e3610cae565b6001600160e01b0319909216602092830291909101909101528051635fa4428d60e01b908290600190811061021a5761021a610cae565b6001600160e01b0319909216602092830291909101909101528051630965fad760e11b908290600290811061025157610251610cae565b6001600160e01b031990921660209283029190910190910152805163378afb8760e11b908290600390811061028857610288610cae565b6001600160e01b031990921660209283029190910190910152805163f16ddea160e01b90829060049081106102bf576102bf610cae565b6001600160e01b0319909216602092830291909101909101526102ea82826102e5610706565b610612565b5050565b60006102f933610184565b600061030361077f565b9050610310848483610612565b61031c8186600061080f565b509392505050565b6000806103396000546001600160a01b031690565b604051631517388760e21b81526001600160401b03851660048201526001600160a01b03919091169063d1f856ee9073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af41580156103a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c89190610cc4565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b03871660248201526044016040805180830381865afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e9190610cf1565b50949350505050565b60005433906001600160a01b031681146104835760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b6000036104b9576040516361798f2f60e11b81526001600160a01b038316600482015260240161047a565b6102ea826108f1565b60008054600160a01b900460ff166104da5750600090565b638fb3603760e01b5b905090565b6000806105086105006000546001600160a01b031690565b868686610945565b5095945050505050565b60008061054861052a6000546001600160a01b031690565b863061053a60046000898b610d26565b61054391610d50565b610945565b915091508161060b5763ffffffff8116156105e8576000805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee906105a390889088908890600401610d80565b600060405180830381600087803b1580156105bd57600080fd5b505af11580156105d1573d6000803e3d6000fd5b50506000805460ff60a01b191690555061060b9050565b60405162d1953b60e31b81526001600160a01b038616600482015260240161047a565b5050505050565b6000546001600160a01b0316604051631517388760e21b81526001600160401b03831660048201526001600160a01b0391909116906308d6122d908590859073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561068d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b19190610cc4565b6040518463ffffffff1660e01b81526004016106cf93929190610dc0565b600060405180830381600087803b1580156106e957600080fd5b505af11580156106fd573d6000803e3d6000fd5b50505050505050565b6040516368aebf7b60e01b8152610640600482015260009073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b906024015b602060405180830381865af415801561075b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e39190610cc4565b600073__$1d92393fa9ccd763988368ce8a1cb90d26$__6368aebf7b6001601481819054906101000a90046001600160401b0316809291906107c090610e32565b91906101000a8154816001600160401b0302191690836001600160401b031602179055506040518263ffffffff1660e01b815260040161073e91906001600160401b0391909116815260200190565b6000546001600160a01b0316604051631517388760e21b81526001600160401b03851660048201526001600160a01b0391909116906325c471a09073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015610886573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108aa9190610cc4565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038516602482015263ffffffff841660448201526064016106cf565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516109b49190610e66565b600060405180830381855afa9150503d80600081146109ef576040519150601f19603f3d011682016040523d82523d6000602084013e6109f4565b606091505b50915091508115610a46576040815110610a265780806020019051810190610a1c9190610cf1565b9094509250610a46565b6020815110610a465780806020019051810190610a439190610e95565b93505b505094509492505050565b80356001600160a01b0381168114610a6857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b80356001600160e01b031981168114610a6857600080fd5b600082601f830112610aac57600080fd5b813560206001600160401b0380831115610ac857610ac8610a6d565b8260051b604051601f19603f83011681018181108482111715610aed57610aed610a6d565b604052938452858101830193838101925087851115610b0b57600080fd5b83870191505b84821015610b3157610b2282610a83565b83529183019190830190610b11565b979650505050505050565b6001600160401b0381168114610b5157600080fd5b50565b600080600060608486031215610b6957600080fd5b610b7284610a51565b925060208401356001600160401b03811115610b8d57600080fd5b610b9986828701610a9b565b9250506040840135610baa81610b3c565b809150509250925092565b600060208284031215610bc757600080fd5b610bd082610a51565b9392505050565b600080600060608486031215610bec57600080fd5b610bf584610a51565b9250610c0360208501610a51565b915060408401356001600160401b03811115610c1e57600080fd5b610c2a86828701610a9b565b9150509250925092565b60008060408385031215610c4757600080fd5b610c5083610a51565b91506020830135610c6081610b3c565b809150509250929050565b600080600060608486031215610c8057600080fd5b610c8984610a51565b9250610c9760208501610a51565b9150610ca560408501610a83565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610cd657600080fd5b8151610bd081610b3c565b80518015158114610a6857600080fd5b60008060408385031215610d0457600080fd5b610d0d83610ce1565b9150602083015163ffffffff81168114610c6057600080fd5b60008085851115610d3657600080fd5b83861115610d4357600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610d785780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6001600160a01b038416815260606020808301829052845191830182905260009185820191906080850190845b81811015610e135784516001600160e01b03191683529383019391830191600101610ded565b50508093505050506001600160401b0383166040830152949350505050565b60006001600160401b03808316818103610e5c57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6000825160005b81811015610e875760208186018101518583015201610e6d565b506000920191825250919050565b600060208284031215610ea757600080fd5b610bd082610ce156fea26469706673582212204b408ab4e9fa4fd3e56edd3891bb7d406e99daf4d5871cbeb34fb76fca517f0d64736f6c63430008140033608060405234801561001057600080fd5b50612cdc806100206000396000f3fe6080604052600436106101ee5760003560e01c80636d5115bd1161010d578063b7009613116100a0578063d1f856ee1161006f578063d1f856ee1461060e578063d22b59891461062e578063d6bb62c61461064e578063f801a6981461066e578063fe0776f5146106a857600080fd5b8063b70096131461057c578063b7d2b162146105b8578063c4d66de8146105d8578063cc1b6c81146105f857600080fd5b8063a166aa89116100dc578063a166aa89146104d1578063a64d95ce14610501578063abd9bd2a14610521578063ac9650d81461054f57600080fd5b80636d5115bd1461045c57806375b238fc1461047c578063853551b81461049157806394c7d7ee146104b157600080fd5b806330cae187116101855780634665096d116101545780634665096d146103e65780634c1da1e2146103fc578063529629521461041c578063530dd4561461043c57600080fd5b806330cae187146103545780633adc277a146103745780633ca7c02a146103ab5780634136a33c146103c657600080fd5b806318ff183c116101c157806318ff183c146102a75780631cff79cd146102c757806325c471a0146102da5780633078f114146102fa57600080fd5b806308d6122d146101f35780630b0a93ba1461021557806312be872714610252578063167bd39514610287575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461255f565b6106c8565b005b34801561022157600080fd5b506102356102303660046125c5565b610723565b6040516001600160401b0390911681526020015b60405180910390f35b34801561025e57600080fd5b5061027261026d3660046125c5565b61075c565b60405163ffffffff9091168152602001610249565b34801561029357600080fd5b506102136102a23660046125e0565b6107a8565b3480156102b357600080fd5b506102136102c236600461261e565b6107be565b6102726102d536600461268d565b610825565b3480156102e657600080fd5b506102136102f53660046126f5565b61096b565b34801561030657600080fd5b5061031a61031536600461273a565b61098d565b604051610249949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561036057600080fd5b5061021361036f366004612756565b610a04565b34801561038057600080fd5b5061039461038f366004612789565b610a16565b60405165ffffffffffff9091168152602001610249565b3480156103b757600080fd5b506102356001600160401b0381565b3480156103d257600080fd5b506102726103e1366004612789565b610a5b565b3480156103f257600080fd5b5062093a80610272565b34801561040857600080fd5b506102726104173660046127a2565b610a88565b34801561042857600080fd5b50610213610437366004612756565b610ac4565b34801561044857600080fd5b506102356104573660046125c5565b610ad6565b34801561046857600080fd5b506102356104773660046127d5565b610b08565b34801561048857600080fd5b50610235600081565b34801561049d57600080fd5b506102136104ac366004612803565b610b51565b3480156104bd57600080fd5b506102136104cc36600461268d565b610be8565b3480156104dd57600080fd5b506104f16104ec3660046127a2565b610c94565b6040519015158152602001610249565b34801561050d57600080fd5b5061021361051c366004612821565b610ccd565b34801561052d57600080fd5b5061054161053c36600461284b565b610cdf565b604051908152602001610249565b34801561055b57600080fd5b5061056f61056a3660046128af565b610d18565b6040516102499190612914565b34801561058857600080fd5b5061059c61059736600461298e565b610e0c565b60408051921515835263ffffffff909116602083015201610249565b3480156105c457600080fd5b506102136105d336600461273a565b610e93565b3480156105e457600080fd5b506102136105f33660046127a2565b610eaa565b34801561060457600080fd5b5062069780610272565b34801561061a57600080fd5b5061059c61062936600461273a565b610fb7565b34801561063a57600080fd5b506102136106493660046129d9565b611034565b34801561065a57600080fd5b5061027261066936600461284b565b611046565b34801561067a57600080fd5b5061068e6106893660046129f7565b6111b1565b6040805192835263ffffffff909116602083015201610249565b3480156106b457600080fd5b506102136106c336600461273a565b61135c565b6106d0611385565b60005b8281101561071c5761070c858585848181106106f1576106f1612a69565b90506020020160208101906107069190612a7f565b84611400565b61071581612ab2565b90506106d3565b5050505050565b60008061072e61148e565b6001600160401b0393841660009081526001918201602052604090200154600160401b900490921692915050565b60008061076761148e565b6001600160401b03841660009081526001828101602052604090912001549091506107a190600160801b90046001600160701b03166114b2565b9392505050565b6107b0611385565b6107ba82826114d1565b5050565b6107c6611385565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b505050505050565b60008061083061148e565b90503360008061084283898989611577565b9150915081158015610858575063ffffffff8116155b156108ab57828861086989896115ca565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b03191660448201526064015b60405180910390fd5b60006108b9848a8a8a610cdf565b9050600063ffffffff83161515806108e057506108d582610a16565b65ffffffffffff1615155b156108f1576108ee826115e2565b90505b60038601546109098b6109048c8c6115ca565b6116f6565b87600301819055506109538b8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250349250611738915050565b50600390960195909555509293505050509392505050565b610973611385565b61098783836109818661075c565b846117d5565b50505050565b600080600080600061099d61148e565b6001600160401b038816600090815260018201602090815260408083206001600160a01b038b1684529091529020805465ffffffffffff81169750919250906109f590600160301b90046001600160701b0316611a34565b979a9199509750945050505050565b610a0c611385565b6107ba8282611a57565b600080610a2161148e565b600084815260028201602052604090205490915065ffffffffffff16610a4681611b09565b610a505780610a53565b60005b949350505050565b600080610a6661148e565b600093845260020160205250506040902054600160301b900463ffffffff1690565b600080610a9361148e565b6001600160a01b0384166000908152602082905260409020600101549091506107a1906001600160701b03166114b2565b610acc611385565b6107ba8282611b38565b600080610ae161148e565b6001600160401b039384166000908152600191820160205260409020015490921692915050565b600080610b1361148e565b6001600160a01b0385166000908152602091825260408082206001600160e01b03198716835290925220546001600160401b03169150505b92915050565b610b59611385565b6001600160401b0383161580610b7757506001600160401b03838116145b15610ba05760405163061c6a4360e21b81526001600160401b03841660048201526024016108a2565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a4508383604051610bdb929190612af4565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4d9190612b08565b6001600160e01b03191614610c8057604051630641fee960e31b81526001600160a01b03821660048201526024016108a2565b61071c610c8f85838686610cdf565b6115e2565b600080610c9f61148e565b6001600160a01b0390931660009081526020939093525050604090206001015460ff600160701b9091041690565b610cd5611385565b6107ba8282611bf8565b600084848484604051602001610cf89493929190612b25565b604051602081830303815290604052805190602001209050949350505050565b6060816001600160401b03811115610d3257610d32612b52565b604051908082528060200260200182016040528015610d6557816020015b6060815260200190600190039081610d505790505b50905060005b82811015610e0557610dd530858584818110610d8957610d89612a69565b9050602002810190610d9b9190612b68565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d2592505050565b828281518110610de757610de7612a69565b60200260200101819052508080610dfd90612ab2565b915050610d6b565b5092915050565b600080610e1884610c94565b15610e2857506000905080610e8b565b306001600160a01b03861603610e4d57610e428484611d9b565b600091509150610e8b565b6000610e598585610b08565b9050600080610e688389610fb7565b9150915081610e7957600080610e83565b63ffffffff811615815b945094505050505b935093915050565b610e9b611385565b610ea58282611dc0565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610eef5750825b90506000826001600160401b03166001148015610f0b5750303b155b905081158015610f19575080155b15610f375760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f6157845460ff60401b1916600160401b1785555b610f6a86611ebf565b831561081d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050505050565b60008067fffffffffffffffe196001600160401b03851601610fdf575060019050600061102d565b600080610fec868661098d565b5050915091508165ffffffffffff16600014158015611022575061100e611ed3565b65ffffffffffff168265ffffffffffff1611155b9350915061102d9050565b9250929050565b61103c611385565b6107ba8282611ee3565b60008061105161148e565b905033600061106086866115ca565b9050600061107089898989610cdf565b600081815260028601602052604081205491925065ffffffffffff90911690036110b05760405163060a299b60e41b8152600481018290526024016108a2565b826001600160a01b0316896001600160a01b03161461114c5760006110d6600085610fb7565b50905060006110f16110eb6102308c87610b08565b86610fb7565b50905081158015611100575080155b1561114957604051630ff89d4760e21b81526001600160a01b038087166004830152808d1660248301528b1660448201526001600160e01b0319851660648201526084016108a2565b50505b6000818152600285016020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a39998505050505050505050565b60008060006111be61148e565b90503360006111cf828a8a8a611577565b91505060008163ffffffff166111e3611ed3565b6111ed9190612bae565b905063ffffffff82161580611224575060008765ffffffffffff1611801561122457508065ffffffffffff168765ffffffffffff16105b1561123557828a6108698b8b6115ca565b61124f8765ffffffffffff168265ffffffffffff16611faf565b965061125d838b8b8b610cdf565b955061126886611fc5565b83600201600087815260200190815260200160002060000160069054906101000a900463ffffffff1660010194508684600201600088815260200190815260200160002060000160006101000a81548165ffffffffffff021916908365ffffffffffff1602179055508484600201600088815260200190815260200160002060000160066101000a81548163ffffffff021916908363ffffffff1602179055508463ffffffff16867f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b489868e8e8e604051611347959493929190612bcd565b60405180910390a35050505094509492505050565b6001600160a01b0381163314610e9b57604051635f159e6360e01b815260040160405180910390fd5b33600080611394838236612021565b9150915081610ea5578063ffffffff166000036113f05760006113b781366120d9565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b038216602482015290925060440190506108a2565b610987610c8f8430600036610cdf565b600061140a61148e565b6001600160a01b0385166000818152602083815260408083206001600160e01b0319891680855290835292819020805467ffffffffffffffff19166001600160401b03891690811790915590519283529394507f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a350505050565b7f40c6c8c28789853c7efd823ab20824bbd71718a8a5915e855f6f288c9a26ad0090565b6000806114c7836001600160701b0316611a34565b5090949350505050565b60006114db61148e565b9050306001600160a01b0384160361151157604051630b40d17960e31b81526001600160a01b03841660048201526024016108a2565b6001600160a01b038316600081815260208390526040908190206001018054851515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb13890610bdb90851515815260200190565b600080306001600160a01b0386160361159e57611595868585612021565b915091506115c1565b600483106115ba576115b5868661059787876115ca565b611595565b5060009050805b94509492505050565b60006115d96004828486612c13565b6107a191612c3d565b6000806115ed61148e565b600084815260028201602052604081205491925065ffffffffffff821691600160301b900463ffffffff169082900361163c5760405163060a299b60e41b8152600481018690526024016108a2565b611644611ed3565b65ffffffffffff168265ffffffffffff16111561167757604051630c65b5bd60e11b8152600481018690526024016108a2565b61168082611b09565b156116a157604051631e2975b960e21b8152600481018690526024016108a2565b6000858152600284016020526040808220805465ffffffffffff191690555163ffffffff83169187917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a3949350505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b60608147101561175d5760405163cd78605960e01b81523060048201526024016108a2565b600080856001600160a01b031684866040516117799190612c6d565b60006040518083038185875af1925050503d80600081146117b6576040519150601f19603f3d011682016040523d82523d6000602084013e6117bb565b606091505b50915091506117cb8683836122a5565b9695505050505050565b6000806117e061148e565b905067fffffffffffffffe196001600160401b0387160161181f5760405163061c6a4360e21b81526001600160401b03871660048201526024016108a2565b6001600160401b038616600090815260018201602090815260408083206001600160a01b038916845290915281205465ffffffffffff1615908115611915578563ffffffff1661186d611ed3565b6118779190612bae565b905060405180604001604052808265ffffffffffff1681526020016118a58763ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b038a16600090815260018601602090815260408083206001600160a01b038d1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff909116179190911790556119c5565b6001600160401b038816600090815260018401602090815260408083206001600160a01b038b16845290915281205461196191600160301b9091046001600160701b0316908790612301565b6001600160401b038a16600090815260018601602090815260408083206001600160a01b038d168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8716815265ffffffffffff831660208201528315158183015290516001600160a01b038916916001600160401b038b16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a3509695505050505050565b6000806000611a4a84611a45611ed3565b6123ab565b9250925092509193909250565b6000611a6161148e565b90506001600160401b0383161580611a8157506001600160401b03838116145b15611aaa5760405163061c6a4360e21b81526001600160401b03841660048201526024016108a2565b6001600160401b03838116600081815260018481016020526040808320909101805467ffffffffffffffff19169487169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a3505050565b6000611b13611ed3565b65ffffffffffff16611b2862093a8084612bae565b65ffffffffffff16111592915050565b6000611b4261148e565b90506001600160401b0383161580611b6257506001600160401b03838116145b15611b8b5760405163061c6a4360e21b81526001600160401b03841660048201526024016108a2565b6001600160401b0383811660008181526001848101602052604080832090910180546fffffffffffffffff00000000000000001916600160401b958816958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a3505050565b6000611c0261148e565b905067fffffffffffffffe196001600160401b03841601611c415760405163061c6a4360e21b81526001600160401b03841660048201526024016108a2565b6001600160401b03831660009081526001828101602052604082200154611c7c90600160801b90046001600160701b03168462069780612301565b6001600160401b038616600081815260018087016020526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b4890611d17908690859063ffffffff92909216825265ffffffffffff16602082015260400190565b60405180910390a250505050565b6060600080846001600160a01b031684604051611d429190612c6d565b600060405180830381855af49150503d8060008114611d7d576040519150601f19603f3d011682016040523d82523d6000602084013e611d82565b606091505b5091509150611d928583836122a5565b95945050505050565b600080611da661148e565b9050611db284846116f6565b600390910154149392505050565b600080611dcb61148e565b905067fffffffffffffffe196001600160401b03851601611e0a5760405163061c6a4360e21b81526001600160401b03851660048201526024016108a2565b6001600160401b038416600090815260018201602090815260408083206001600160a01b038716845290915281205465ffffffffffff169003611e51576000915050610b4b565b6001600160401b038416600081815260018301602090815260408083206001600160a01b038816808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a35060019392505050565b611ec76123ff565b611ed08161244a565b50565b6000611ede4261248a565b905090565b6000611eed61148e565b90506000611f2583620697806001600160a01b0387166000908152602086905260409020600101546001600160701b03169190612301565b6001600160a01b0386166000818152602086815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8816815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c9101611d17565b6000818311611fbe57816107a1565b5090919050565b6000611fcf61148e565b600083815260028201602052604090205490915065ffffffffffff1680158015906120005750611ffe81611b09565b155b15610ea55760405163813e945960e01b8152600481018490526024016108a2565b600080600483101561203857506000905080610e8b565b306001600160a01b0386160361205b57610e423061205686866115ca565b611d9b565b600080600061206a87876120d9565b925092509250826120845760008094509450505050610e8b565b600080612091848b610fb7565b91509150816120ab57600080965096505050505050610e8b565b6120c18363ffffffff168263ffffffff16611faf565b63ffffffff8116159b909a5098505050505050505050565b6000808060048410156120f45750600091508190508061229e565b600061210086866115ca565b90506001600160e01b031981166310a6aa3760e31b148061213157506001600160e01b031981166330cae18760e01b145b8061214c57506001600160e01b0319811663294b14a960e11b145b8061216757506001600160e01b03198116635326cae760e11b145b8061218257506001600160e01b0319811663d22b598960e01b145b156121985760016000809350935093505061229e565b6001600160e01b0319811663063fc60f60e21b14806121c757506001600160e01b0319811663167bd39560e01b145b806121e257506001600160e01b031981166308d6122d60e01b145b156122245760006121f760246004888a612c13565b81019061220491906127a2565b9050600061221182610a88565b6001965060009550935061229e92505050565b6001600160e01b0319811663012e238d60e51b148061225357506001600160e01b03198116635be958b160e11b145b1561229157600061226860246004888a612c13565b81019061227591906125c5565b9050600161228282610ad6565b6000945094509450505061229e565b6000806000935093509350505b9250925092565b6060826122ba576122b5826124c1565b6107a1565b81511580156122d157506001600160a01b0384163b155b156122fa57604051639996b31560e01b81526001600160a01b03851660048201526024016108a2565b50806107a1565b6000806000612318866001600160701b03166114b2565b905060006123558563ffffffff168763ffffffff168463ffffffff161161234057600061234a565b61234a8885612c89565b63ffffffff16611faf565b90508063ffffffff16612366611ed3565b6123709190612bae565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b6000808069ffffffffffffffffffff602086901c166001600160701b03861665ffffffffffff604088901c81169087168111156123ea578282826123ef565b816000805b9550955095505050509250925092565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661244857604051631afcd79f60e31b815260040160405180910390fd5b565b6124526123ff565b6001600160a01b03811661247c57604051630409d6d160e11b8152600060048201526024016108a2565b6107ba6000826000806117d5565b600065ffffffffffff8211156124bd576040516306dfcc6560e41b815260306004820152602481018390526044016108a2565b5090565b8051156124d15780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6001600160a01b0381168114611ed057600080fd5b60008083601f84011261251157600080fd5b5081356001600160401b0381111561252857600080fd5b6020830191508360208260051b850101111561102d57600080fd5b80356001600160401b038116811461255a57600080fd5b919050565b6000806000806060858703121561257557600080fd5b8435612580816124ea565b935060208501356001600160401b0381111561259b57600080fd5b6125a7878288016124ff565b90945092506125ba905060408601612543565b905092959194509250565b6000602082840312156125d757600080fd5b6107a182612543565b600080604083850312156125f357600080fd5b82356125fe816124ea565b91506020830135801515811461261357600080fd5b809150509250929050565b6000806040838503121561263157600080fd5b823561263c816124ea565b91506020830135612613816124ea565b60008083601f84011261265e57600080fd5b5081356001600160401b0381111561267557600080fd5b60208301915083602082850101111561102d57600080fd5b6000806000604084860312156126a257600080fd5b83356126ad816124ea565b925060208401356001600160401b038111156126c857600080fd5b6126d48682870161264c565b9497909650939450505050565b803563ffffffff8116811461255a57600080fd5b60008060006060848603121561270a57600080fd5b61271384612543565b92506020840135612723816124ea565b9150612731604085016126e1565b90509250925092565b6000806040838503121561274d57600080fd5b61263c83612543565b6000806040838503121561276957600080fd5b61277283612543565b915061278060208401612543565b90509250929050565b60006020828403121561279b57600080fd5b5035919050565b6000602082840312156127b457600080fd5b81356107a1816124ea565b6001600160e01b031981168114611ed057600080fd5b600080604083850312156127e857600080fd5b82356127f3816124ea565b91506020830135612613816127bf565b60008060006040848603121561281857600080fd5b6126ad84612543565b6000806040838503121561283457600080fd5b61283d83612543565b9150612780602084016126e1565b6000806000806060858703121561286157600080fd5b843561286c816124ea565b9350602085013561287c816124ea565b925060408501356001600160401b0381111561289757600080fd5b6128a38782880161264c565b95989497509550505050565b600080602083850312156128c257600080fd5b82356001600160401b038111156128d857600080fd5b6128e4858286016124ff565b90969095509350505050565b60005b8381101561290b5781810151838201526020016128f3565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561298157878503603f1901845281518051808752612962818989018a85016128f0565b601f01601f19169590950186019450928501929085019060010161293b565b5092979650505050505050565b6000806000606084860312156129a357600080fd5b83356129ae816124ea565b925060208401356129be816124ea565b915060408401356129ce816127bf565b809150509250925092565b600080604083850312156129ec57600080fd5b823561283d816124ea565b60008060008060608587031215612a0d57600080fd5b8435612a18816124ea565b935060208501356001600160401b03811115612a3357600080fd5b612a3f8782880161264c565b909450925050604085013565ffffffffffff81168114612a5e57600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612a9157600080fd5b81356107a1816127bf565b634e487b7160e01b600052601160045260246000fd5b600060018201612ac457612ac4612a9c565b5060010190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000610a53602083018486612acb565b600060208284031215612b1a57600080fd5b81516107a1816127bf565b6001600160a01b038581168252841660208201526060604082018190526000906117cb9083018486612acb565b634e487b7160e01b600052604160045260246000fd5b6000808335601e19843603018112612b7f57600080fd5b8301803591506001600160401b03821115612b9957600080fd5b60200191503681900382131561102d57600080fd5b65ffffffffffff818116838216019080821115610e0557610e05612a9c565b65ffffffffffff861681526001600160a01b03858116602083015284166040820152608060608201819052600090612c089083018486612acb565b979650505050505050565b60008085851115612c2357600080fd5b83861115612c3057600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015612c655780818660040360031b1b83161692505b505092915050565b60008251612c7f8184602087016128f0565b9190910192915050565b63ffffffff828116828216039080821115610e0557610e05612a9c56fea26469706673582212200ae6538f089bb3e9b144e45d48a18927c3aebce616ac1218eef43b59c1b3631464736f6c63430008140033",
986
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806393a7e711116100f9578063bf7e214f11610097578063e9e96c7011610071578063e9e96c701461044b578063f21de1e8146102a2578063f40d7c301461045e578063fdd9ec7d1461046e57600080fd5b8063bf7e214f146103e0578063d2213b5b146103f1578063d5264d7a1461041157600080fd5b80639ef6ddc9116100d35780639ef6ddc914610376578063a2844824146103b2578063a52ec529146103ba578063bf1db3f9146103cd57600080fd5b806393a7e711146103355780639941314e1461034857806399a228e51461036e57600080fd5b806319d1478b1161016657806371ed16e41161014057806371ed16e4146102c857806379cbc5fa146102da5780637a9e5e4b146103015780638fb360371461031457600080fd5b806319d1478b146102375780632892cd3a1461027b5780635ab1bd53146102a257600080fd5b80630af43fe1146101ae5780630d358181146101cd5780630e41142e146101e05780630e6d1de9146102065780631865c57d14610211578063186664d814610222575b600080fd5b6101b6610499565b60405160ff90911681526020015b60405180910390f35b6101b66101db36600461294b565b610626565b7f00000000000000000000000000000000000000000000000000000000000000006101b6565b60065460ff166101b6565b60065462010000900460ff166101b6565b61023561023036600461297d565b610643565b005b61026361024536600461294b565b60ff166000908152600360205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101c4565b6102637f000000000000000000000000000000000000000000000000000000000000000081565b7f0000000000000000000000000000000000000000000000000000000000000000610263565b6007545b6040519081526020016101c4565b6102637f000000000000000000000000000000000000000000000000000000000000000081565b61023561030f36600461297d565b610722565b61031c61079c565b6040516001600160e01b031990911681526020016101c4565b61026361034336600461299a565b6107c2565b7f0000000000000000000000000000000000000000000000000000000000000000610263565b6102cc600381565b6103a261038436600461297d565b6001600160a01b031660009081526005602052604090205460ff1690565b60405190151581526020016101c4565b610235610823565b6103a26103c836600461294b565b610b64565b6103a26103db36600461294b565b610bf9565b6000546001600160a01b0316610263565b6104046103ff36600461294b565b610c06565b6040516101c49190612baa565b61042461041f366004612f7e565b611008565b604080516001600160a01b03909416845260ff9092166020840152908201526060016101c4565b6103a2610459366004613090565b61139a565b600654610100900460ff166101b6565b61048161047c36600461297d565b611498565b6040516001600160601b0390911681526020016101c4565b60006104a8335b60003661192b565b6104c1600160065462010000900460ff16610459600290565b6104f1576006546040516319ddc69560e21b81526201000090910460ff1660048201526024015b60405180910390fd5b600654604051632b10f60d60e21b815261010090910460ff16600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90829063ac43d83490602401602060405180830381865af4158015610553573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057791906130d0565b6105829060016130ff565b6040518263ffffffff1660e01b81526004016105a091815260200190565b602060405180830381865af41580156105bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e1919061311d565b6006805460ff929092166101000261ff00199092169190911790556000600755610609600290565b600660026101000a81548160ff021916908360ff16021790555090565b6000610633826001611a2b565b1561063e5760015b90505b919050565b61064c336104a0565b60405163030ccc9b60e31b81526001600160a01b03808316600483015282917f00000000000000000000000000000000000000000000000000000000000000009091169063186664d890602401600060405180830381600087803b1580156106b357600080fd5b505af11580156106c7573d6000803e3d6000fd5b50505050806001600160a01b031663138461e06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561070657600080fd5b505af115801561071a573d6000803e3d6000fd5b505050505050565b60005433906001600160a01b031681146107595760405162d1953b60e31b81526001600160a01b03821660048201526024016104e8565b816001600160a01b03163b60000361078f576040516361798f2f60e11b81526001600160a01b03831660048201526024016104e8565b61079882611a3b565b5050565b60008054600160a01b900460ff166107b45750600090565b638fb3603760e01b5b905090565b604051603881018290526f5af43d82803e903d91602b57fd5bf3ff602482015260148101849052733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018390526037600c820120607882015260556043909101205b9392505050565b61082c336104a0565b610845600160065462010000900460ff16610459600490565b6108705760065460405163efcc379960e01b81526201000090910460ff1660048201526024016104e8565b600654610100900460ff1660007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d39e60436108b4602890565b6040516001600160e01b031960e084901b16815260ff91821660048201529085166024820152604401602060405180830381865afa1580156108fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091e9190613145565b90506001600160a01b03811661094c57604051638047661960e01b815260ff831660048201526024016104e8565b6007541561097d5760075460405163c90aac6160e01b815260ff8416600482015260248101919091526044016104e8565b60ff8216600090815260046020819052604091829020600601549151638d38cd4b60e01b815264ffffffffff9092169082015273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af41580156109ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a109190613172565b15610a3357604051630e5e66b360e21b815260ff831660048201526024016104e8565b6006805460ff191660ff8416179055610a4a600490565b6006805460ff92909216620100000262ff0000199092169190911790556001600160a01b038116600090815260056020908152604091829020805460ff1916600117905581516356db0c1960e11b8152915173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9263adb618329260048083019391928290030181865af4158015610ad9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afd919061318d565b60ff8316600081815260046020908152604091829020600601805464ffffffffff191664ffffffffff9590951694909417909355519081527fb7defc6b4b34e4db6f0265bb8cc2606e513beda1e68095b668932471417561d4910160405180910390a15050565b60ff81166000908152600460208190526040808320600601549051638d38cd4b60e01b815264ffffffffff9091169181019190915273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__90638d38cd4b90602401602060405180830381865af4158015610bd5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063b9190613172565b600061063b826001611a2b565b610c506040518060e00160405280600060ff1681526020016060815260200160608152602001606081526020016060815260200160608152602001600064ffffffffff1681525090565b60ff808316600090815260046020908152604091829020825160e08101845281549094168452600181018054845181850281018501909552808552919385840193909290830182828015610ccd57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610caf575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015610d9957600084815260209081902083018054604080518285028101850190915281815292830182828015610d8557602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b031681526020019060080190602082600701049283019260010382029150808411610d425790505b505050505081526020019060010190610cfb565b50505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b82821015610e6457600084815260209081902083018054604080518285028101850190915281815292830182828015610e5057602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b031681526020019060080190602082600701049283019260010382029150808411610e0d5790505b505050505081526020019060010190610dc6565b50505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610f7157838290600052602060002001805480602002602001604051908101604052809291908181526020016000905b82821015610f5e57600084815260209081902083018054604080518285028101850190915281815292830182828015610f4a57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411610f0c5790505b505050505081526020019060010190610ec5565b5050505081526020019060010190610e91565b50505050815260200160058201805480602002602001604051908101604052809291908181526020018280548015610fe657602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610fb75790505b50505091835250506006919091015464ffffffffff1660209091015292915050565b60008080611015336104a0565b61102f60015b60065462010000900460ff16610459600390565b61105a576006546040516313e3076760e31b81526201000090910460ff1660048201526024016104e8565b875160000361107c576040516357e3390360e01b815260040160405180910390fd5b600754156110a257604051638a25989560e01b815260ff831660048201526024016104e8565b6110ae88888888611a8f565b600654610100900460ff166000818152600460209081526040909120805460ff1916831781558a519294506110eb926001909101918b01906125a8565b5060ff821660009081526004602090815260409091208851611115926002909201918a019061260d565b5060ff82166000908152600460209081526040909120875161113f9260039092019189019061260d565b5060ff82166000908152600460208181526040909220875161116993919092019190880190612666565b50875160075560036006805462ff000019166201000060ff938416021790819055610100900416604051632b10f60d60e21b815260ff8216600482015290925073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af41580156111e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120991906130d0565b60408051602081019290925281018590526060016040516020818303038152906040528051906020012090506112c07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ba9190613145565b82611b90565b60ff83166000908152600360205260409081902080546001600160a01b0319166001600160a01b038416908117909155905163189acdbd60e31b8152306004820152919450849163c4d66de890602401600060405180830381600087803b15801561132a57600080fd5b505af115801561133e573d6000803e3d6000fd5b50506040805160ff87168152602081018690526001600160a01b0385168183015290517f6529cb4b9a24b8de97cbd0802b1c3d02a8c8aed37388204e2f5bc3013793977e9350908190036060019150a150955095509592505050565b60006113af8460015b60ff9081169116141590565b156113bc5750600061081c565b6113c7836001611a2b565b80156113d957506113d9826002611a2b565b156113e65750600161081c565b6113f1836002611a2b565b80156114035750611403826003611a2b565b156114105750600161081c565b61141b836003611a2b565b801561142d575061142d826002611a2b565b1561143a5750600161081c565b611445836003611a2b565b80156114575750611457826003611a2b565b156114645750600161081c565b61146f836003611a2b565b80156114815750611481826004611a2b565b1561148e5750600161081c565b5060009392505050565b60006114a3336104a0565b6114ad600161101b565b6114d8576006546040516316997edd60e11b81526201000090910460ff1660048201526024016104e8565b60008060006114e685611bfe565b92509250925060075460000361150f57604051630a7d531760e31b815260040160405180910390fd5b6000600160075461152091906131b4565b60ff83166000908152600460205260408120600101805492935090918390811061154c5761154c6131c7565b600091825260208083209091015460ff8616835260038252604080842054600490935290922060020180546001600160a01b0393841694506117d89392909216918a9190869081106115a0576115a06131c7565b9060005260206000200180548060200260200160405190810160405280929190818152602001828054801561162657602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b0316815260200190600801906020826007010492830192600103820291508084116115e35790505b50505060ff8916600090815260046020526040902060030180549092508891508110611654576116546131c7565b906000526020600020018054806020026020016040519081016040528092919081815260200182805480156116da57602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b0316815260200190600801906020826007010492830192600103820291508084116116975790505b5050505050600460008960ff1660ff168152602001908152602001600020600401878154811061170c5761170c6131c7565b90600052602060002001805480602002602001604051908101604052809291908181526020016000905b828210156117cf576000848152602090819020830180546040805182850281018501909152818152928301828280156117bb57602002820191906000526020600020906000905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841161177d5790505b505050505081526020019060010190611736565b50505050611f9e565b60078290556006805462ff000019166203000017905560ff83811660009081526004602081815260408084206005018054600181018255908552938290209184049091018054601f9094166101000a8086021990941694891693909302939093179091559051635382852b60e11b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169163a7050a569161188991899188918a910161322d565b6020604051808303816000875af11580156118a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cc91906132eb565b9550866001600160a01b031663138461e06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561190957600080fd5b505af115801561191d573d6000803e3d6000fd5b505050505050505050919050565b6000806119616119436000546001600160a01b031690565b863061195360046000898b613306565b61195c91613330565b612209565b9150915081611a245763ffffffff811615611a01576000805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee906119bc90889088908890600401613360565b600060405180830381600087803b1580156119d657600080fd5b505af11580156119ea573d6000803e3d6000fd5b50506000805460ff60a01b1916905550611a249050565b60405162d1953b60e31b81526001600160a01b03861660048201526024016104e8565b5050505050565b60ff828116908216145b92915050565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b60005b8451811015611a245760005b848281518110611ab057611ab06131c7565b602002602001015151811015611b7d576000858381518110611ad457611ad46131c7565b60200260200101518281518110611aed57611aed6131c7565b60200260200101519050611b1481611b03612315565b6001600160401b0390811691161490565b15611b6a57868381518110611b2b57611b2b6131c7565b60209081029190910101516040516313f9006960e01b81526001600160a01b0390911660048201526001600160401b03821660248201526044016104e8565b5080611b75816133a0565b915050611a9e565b5080611b88816133a0565b915050611a92565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116611a35576040516330be1a3d60e21b815260040160405180910390fd5b6040805160e08101825260008082526020820181905281830181905260608083018290526080830182905260a0830182905260c083015291516301ffc9a760e01b815263b68d180960e01b600482015290919081906001600160a01b038516906301ffc9a790602401602060405180830381865afa158015611c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca89190613172565b611cd057604051631fdf992160e01b81526001600160a01b03851660048201526024016104e8565b60003390506000856001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d399190613145565b9050856001600160a01b0316630d8e6e2c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9d91906133b9565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af4158015611df2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e16919061311d565b9250856001600160a01b031663b68d18096040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7a919061311d565b9350856001600160a01b0316630fec111c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611eba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee29190810190613441565b9450611eef86868461238c565b600654610100900460ff166000818152600360205260409020546001600160a01b039081169083168114611f515760405163179dce5160e11b81526001600160a01b03808a1660048301528085166024830152821660448201526064016104e8565b60ff80861690831614611f9357604051632dd6635560e21b81526001600160a01b038916600482015260ff8087166024830152831660448201526064016104e8565b505050509193909250565b60005b82518110156120d157856001600160a01b03166308d6122d86848481518110611fcc57611fcc6131c7565b6020026020010151868581518110611fe657611fe66131c7565b6020908102919091010151604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561204a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206e9190613513565b6040518463ffffffff1660e01b815260040161208c93929190613530565b600060405180830381600087803b1580156120a657600080fd5b505af11580156120ba573d6000803e3d6000fd5b5050505080806120c9906133a0565b915050611fa1565b5060005b835181101561071a57856001600160a01b03166325c471a08583815181106120ff576120ff6131c7565b6020908102919091010151604051631517388760e21b81526001600160401b03909116600482015273__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af4158015612163573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121879190613513565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038816602482015260006044820152606401600060405180830381600087803b1580156121de57600080fd5b505af11580156121f2573d6000803e3d6000fd5b505050508080612201906133a0565b9150506120d5565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251612278919061356d565b600060405180830381855afa9150503d80600081146122b3576040519150601f19603f3d011682016040523d82523d6000602084013e6122b8565b606091505b5091509150811561230a5760408151106122ea57808060200190518101906122e09190613589565b909450925061230a565b602081511061230a57808060200190518101906123079190613172565b93505b505094509492505050565b6040516368aebf7b60e01b81526000600482018190529073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b90602401602060405180830381865af4158015612368573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bd9190613513565b826001600160a01b031682608001516001600160a01b0316146123d45760405163396d48c960e11b81526001600160a01b0384166004820181905260248201526044016104e8565b60608201511561240f5760608201516040516376d381b160e01b81526001600160a01b038516600482015290151560248201526044016104e8565b61241f82604001516113a3603c90565b1561245e576040828101519051630c6c87c560e41b81526001600160a01b0385166004820152603c602482015260ff90911660448201526064016104e8565b60a08201516001600160a01b03808216908316146124aa576040516314cc941d60e01b81526001600160a01b0380861660048301528084166024830152821660448201526064016104e8565b836001600160a01b0316816001600160a01b0316036124e75760405163f80468a760e01b81526001600160a01b03851660048201526024016104e8565b60405163c3c5a54760e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c3c5a54790602401602060405180830381865afa15801561254d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125719190613172565b156125a25760405163976310fb60e01b81526001600160a01b038086166004830152821660248201526044016104e8565b50505050565b8280548282559060005260206000209081019282156125fd579160200282015b828111156125fd57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906125c8565b506126099291506126bf565b5090565b82805482825590600052602060002090810192821561265a579160200282015b8281111561265a578251805161264a9184916020909101906126d4565b509160200191906001019061262d565b50612609929150612787565b8280548282559060005260206000209081019282156126b3579160200282015b828111156126b357825180516126a39184916020909101906127a4565b5091602001919060010190612686565b506126099291506127fd565b5b8082111561260957600081556001016126c0565b828054828255906000526020600020906003016004900481019282156125fd5791602002820160005b8382111561274757835183826101000a8154816001600160401b0302191690836001600160401b0316021790555092602001926008016020816007010492830192600103026126fd565b801561277a5782816101000a8154906001600160401b030219169055600801602081600701049283019260010302612747565b50506126099291506126bf565b8082111561260957600061279b828261281a565b50600101612787565b8280548282559060005260206000209081019282156127f1579160200282015b828111156127f157825180516127e1918491602090910190612842565b50916020019190600101906127c4565b506126099291506128dc565b8082111561260957600061281182826128f9565b506001016127fd565b50805460008255600301600490049060005260206000209081019061283f91906126bf565b50565b828054828255906000526020600020906007016008900481019282156125fd5791602002820160005b838211156128ac57835183826101000a81548163ffffffff021916908360e01c0217905550926020019260040160208160030104928301926001030261286b565b801561277a5782816101000a81549063ffffffff02191690556004016020816003010492830192600103026128ac565b808211156126095760006128f08282612917565b506001016128dc565b508054600082559060005260206000209081019061283f91906128dc565b50805460008255600701600890049060005260206000209081019061283f91906126bf565b60ff8116811461283f57600080fd5b60006020828403121561295d57600080fd5b813561081c8161293c565b6001600160a01b038116811461283f57600080fd5b60006020828403121561298f57600080fd5b813561081c81612968565b6000806000606084860312156129af57600080fd5b83356129ba81612968565b92506020840135915060408401356129d181612968565b809150509250925092565b600081518084526020808501945080840160005b83811015612a155781516001600160a01b0316875295820195908201906001016129f0565b509495945050505050565b600081518084526020808501808196508360051b810191508286016000805b86811015612a97578385038a52825180518087529087019087870190845b81811015612a825783516001600160401b031683529289019291890191600101612a5d565b50509a87019a95505091850191600101612a3f565b509298975050505050505050565b600081518084526020808501945080840160005b83811015612a155781516001600160e01b03191687529582019590820190600101612ab9565b600081518084526020808501808196506005915083821b81018387016000805b87811015612b68578484038b5282518051808652908801908886019080891b87018a01855b82811015612b5257601f19898303018452612b40828651612aa5565b948c0194938c01939150600101612b24565b509d8a019d965050509287019250600101612aff565b50919998505050505050505050565b600081518084526020808501945080840160005b83811015612a1557815160ff1687529582019590820190600101612b8b565b6020815260ff82511660208201526000602083015160e06040840152612bd46101008401826129dc565b90506040840151601f1980858403016060860152612bf28383612a20565b92506060860151915080858403016080860152612c0f8383612a20565b925060808601519150808584030160a0860152612c2c8383612adf565b925060a08601519150808584030160c086015250612c4a8282612b77565b91505060c0840151612c6560e085018264ffffffffff169052565b509392505050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715612ca557612ca5612c6d565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612cd357612cd3612c6d565b604052919050565b60006001600160401b03821115612cf457612cf4612c6d565b5060051b60200190565b6001600160401b038116811461283f57600080fd5b600082601f830112612d2457600080fd5b81356020612d39612d3483612cdb565b612cab565b828152600592831b8501820192828201919087851115612d5857600080fd5b8387015b85811015612df75780356001600160401b03811115612d7b5760008081fd5b8801603f81018a13612d8d5760008081fd5b858101356040612d9f612d3483612cdb565b82815291851b8301810191888101908d841115612dbc5760008081fd5b938201935b83851015612de65784359250612dd683612cfe565b8282529389019390890190612dc1565b885250505093850193508401612d5c565b5090979650505050505050565b600082601f830112612e1557600080fd5b612e22612d348335612cdb565b82358082526020808301929160051b85010185811115612e4157600080fd5b602085015b81811015612f73576001600160401b0381351115612e6357600080fd5b8035860187603f820112612e7657600080fd5b6020810135612e87612d3482612cdb565b81815260059190911b82016040019060208101908a831115612ea857600080fd5b604084015b83811015612f5d576001600160401b0381351115612eca57600080fd5b803585018c605f820112612edd57600080fd5b6040810135612eee612d3482612cdb565b81815260059190911b82016060019060208101908f831115612f0f57600080fd5b6060840193505b82841015612f485783356001600160e01b0319811614612f3557600080fd5b8335825260209384019390910190612f16565b86525050602093840193919091019050612ead565b5087525050602094850194919091019050612e46565b509095945050505050565b600080600080600060a08688031215612f9657600080fd5b85356001600160401b0380821115612fad57600080fd5b818801915088601f830112612fc157600080fd5b81356020612fd1612d3483612cdb565b82815260059290921b8401810191818101908c841115612ff057600080fd5b948201945b8386101561301757853561300881612968565b82529482019490820190612ff5565b9950508901359250508082111561302d57600080fd5b61303989838a01612d13565b9550604088013591508082111561304f57600080fd5b61305b89838a01612d13565b9450606088013591508082111561307157600080fd5b5061307e88828901612e04565b95989497509295608001359392505050565b6000806000606084860312156130a557600080fd5b83356130b08161293c565b925060208401356130c08161293c565b915060408401356129d18161293c565b6000602082840312156130e257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115611a3557611a356130e9565b805161063e8161293c565b60006020828403121561312f57600080fd5b815161081c8161293c565b805161063e81612968565b60006020828403121561315757600080fd5b815161081c81612968565b8051801515811461063e57600080fd5b60006020828403121561318457600080fd5b61081c82613162565b60006020828403121561319f57600080fd5b815164ffffffffff8116811461081c57600080fd5b81810381811115611a3557611a356130e9565b634e487b7160e01b600052603260045260246000fd5b60005b838110156131f85781810151838201526020016131e0565b50506000910152565b600081518084526132198160208601602086016131dd565b601f01601f19169290920160200192915050565b606080825284516001600160601b03908116838301526020860151166080830152604085015160ff1660a083015284015180151560c08301526000905060808501516001600160a01b03811660e08401525060a08501516001600160a01b0381166101008401525060c085015160e06101208401526132b0610140840182613201565b9150506132c2602083018560ff169052565b60ff831660408301525b949350505050565b80516001600160601b038116811461063e57600080fd5b6000602082840312156132fd57600080fd5b61081c826132d4565b6000808585111561331657600080fd5b8386111561332357600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156133585780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000600182016133b2576133b26130e9565b5060010190565b6000602082840312156133cb57600080fd5b815162ffffff8116811461081c57600080fd5b600082601f8301126133ef57600080fd5b81516001600160401b0381111561340857613408612c6d565b61341b601f8201601f1916602001612cab565b81815284602083860101111561343057600080fd5b6132cc8260208301602087016131dd565b60006020828403121561345357600080fd5b81516001600160401b038082111561346a57600080fd5b9083019060e0828603121561347e57600080fd5b613486612c83565b61348f836132d4565b815261349d602084016132d4565b60208201526134ae60408401613112565b60408201526134bf60608401613162565b60608201526134d06080840161313a565b60808201526134e160a0840161313a565b60a082015260c0830151828111156134f857600080fd5b613504878286016133de565b60c08301525095945050505050565b60006020828403121561352557600080fd5b815161081c81612cfe565b6001600160a01b038416815260606020820181905260009061355490830185612aa5565b90506001600160401b0383166040830152949350505050565b6000825161357f8184602087016131dd565b9190910192915050565b6000806040838503121561359c57600080fd5b6135a583613162565b9150602083015163ffffffff811681146135be57600080fd5b80915050925092905056fea2646970667358221220e24c11cc253e098b2f78fad6d6e40e3360323a854a5b0236174747c2ed84582a64736f6c63430008140033",
987
- "linkReferences": {
988
- "contracts/type/NftId.sol": {
989
- "NftIdLib": [
990
- {
991
- "length": 20,
992
- "start": 922
993
- }
994
- ]
995
- },
996
- "contracts/type/RoleId.sol": {
997
- "RoleIdLib": [
998
- {
999
- "length": 20,
1000
- "start": 9819
1001
- },
1002
- {
1003
- "length": 20,
1004
- "start": 10100
1005
- },
1006
- {
1007
- "length": 20,
1008
- "start": 10617
1009
- },
1010
- {
1011
- "length": 20,
1012
- "start": 16570
1013
- },
1014
- {
1015
- "length": 20,
1016
- "start": 16734
1017
- },
1018
- {
1019
- "length": 20,
1020
- "start": 16981
1021
- },
1022
- {
1023
- "length": 20,
1024
- "start": 17077
1025
- },
1026
- {
1027
- "length": 20,
1028
- "start": 17204
1029
- },
1030
- {
1031
- "length": 20,
1032
- "start": 17468
1033
- },
1034
- {
1035
- "length": 20,
1036
- "start": 18788
1037
- },
1038
- {
1039
- "length": 20,
1040
- "start": 19533
1041
- },
1042
- {
1043
- "length": 20,
1044
- "start": 19738
1045
- },
1046
- {
1047
- "length": 20,
1048
- "start": 19837
1049
- },
1050
- {
1051
- "length": 20,
1052
- "start": 20038
1053
- }
1054
- ]
1055
- },
1056
- "contracts/type/Timestamp.sol": {
1057
- "TimestampLib": [
1058
- {
1059
- "length": 20,
1060
- "start": 4093
1061
- },
1062
- {
1063
- "length": 20,
1064
- "start": 4329
1065
- },
1066
- {
1067
- "length": 20,
1068
- "start": 4582
1069
- }
1070
- ]
1071
- },
1072
- "contracts/type/Version.sol": {
1073
- "VersionLib": [
1074
- {
1075
- "length": 20,
1076
- "start": 9219
1077
- }
1078
- ],
1079
- "VersionPartLib": [
1080
- {
1081
- "length": 20,
1082
- "start": 351
1083
- },
1084
- {
1085
- "length": 20,
1086
- "start": 456
1087
- },
1088
- {
1089
- "length": 20,
1090
- "start": 2908
1091
- },
1092
- {
1093
- "length": 20,
1094
- "start": 6134
1095
- }
1096
- ]
1097
- }
1098
- },
1099
- "deployedLinkReferences": {
1100
- "contracts/type/RoleId.sol": {
1101
- "RoleIdLib": [
1102
- {
1103
- "length": 20,
1104
- "start": 8208
1105
- },
1106
- {
1107
- "length": 20,
1108
- "start": 8489
1109
- },
1110
- {
1111
- "length": 20,
1112
- "start": 9006
1113
- }
1114
- ]
1115
- },
1116
- "contracts/type/Timestamp.sol": {
1117
- "TimestampLib": [
1118
- {
1119
- "length": 20,
1120
- "start": 2482
1121
- },
1122
- {
1123
- "length": 20,
1124
- "start": 2718
1125
- },
1126
- {
1127
- "length": 20,
1128
- "start": 2971
1129
- }
1130
- ]
1131
- },
1132
- "contracts/type/Version.sol": {
1133
- "VersionLib": [
1134
- {
1135
- "length": 20,
1136
- "start": 7608
1137
- }
1138
- ],
1139
- "VersionPartLib": [
1140
- {
1141
- "length": 20,
1142
- "start": 1297
1143
- },
1144
- {
1145
- "length": 20,
1146
- "start": 4523
1147
- }
1148
- ]
1149
- }
1150
- }
1151
- }