@etherisc/gif-next 0.0.2-96b5b72-170 → 0.0.2-97a9fc1-165

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 (584) hide show
  1. package/README.md +77 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1494 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  19. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1224 -0
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1230 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +156 -592
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +471 -447
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +200 -112
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +170 -331
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  41. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +340 -109
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1431 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +261 -83
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +274 -88
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +273 -196
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1389 -500
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +308 -239
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +161 -83
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1419 -528
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +333 -360
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +196 -92
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +215 -70
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +219 -418
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +509 -356
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  140. package/artifacts/contracts/pool/Pool.sol/Pool.json +227 -618
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +639 -695
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +200 -104
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +205 -244
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +170 -78
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +442 -332
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +204 -104
  159. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +155 -9
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +327 -16
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +399 -69
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +195 -82
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +372 -226
  169. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  170. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +100 -62
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +446 -394
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +183 -115
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.json +265 -318
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +193 -97
  181. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  182. package/artifacts/contracts/product/Product.sol/Product.json +404 -494
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +462 -56
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +251 -127
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  197. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  198. package/artifacts/contracts/registry/Registry.sol/Registry.json +905 -121
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +303 -245
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +159 -81
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +315 -139
  217. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  218. package/artifacts/contracts/shared/Component.sol/Component.json +178 -194
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1146 -245
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
  223. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +209 -40
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1180 -0
  237. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +172 -110
  239. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  240. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -14
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  242. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +154 -0
  249. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IService.sol/IService.json +74 -2
  252. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  254. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  255. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +173 -260
  256. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  257. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  258. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  259. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  260. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  261. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  262. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +26 -55
  264. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  265. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  266. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -90
  268. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  269. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  270. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  271. package/artifacts/contracts/shared/Service.sol/Service.json +67 -102
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  276. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  278. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  279. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1186 -181
  280. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  281. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +684 -62
  282. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  283. package/artifacts/contracts/staking/Staking.sol/Staking.json +1356 -293
  284. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  286. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  288. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +222 -66
  290. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  292. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +762 -179
  294. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  295. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +177 -73
  296. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  298. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  300. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  302. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.json +121 -4
  304. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  306. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  308. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  310. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Fee.sol/FeeLib.json +39 -34
  312. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  314. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  315. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  316. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +66 -4
  318. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  319. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  320. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +153 -4
  322. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  324. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  326. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  328. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  330. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +283 -6
  332. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
  334. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  338. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  340. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  342. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  344. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  346. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  348. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  350. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  351. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  352. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  354. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  356. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  357. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  358. package/contracts/accounting/AccountingService.sol +262 -0
  359. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  360. package/contracts/accounting/IAccountingService.sol +45 -0
  361. package/contracts/authorization/AccessAdmin.sol +704 -0
  362. package/contracts/authorization/AccessAdminLib.sol +183 -0
  363. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  364. package/contracts/authorization/Authorization.sol +365 -0
  365. package/contracts/authorization/IAccess.sol +49 -0
  366. package/contracts/authorization/IAccessAdmin.sol +170 -0
  367. package/contracts/authorization/IAuthorization.sol +80 -0
  368. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  369. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  370. package/contracts/distribution/BasicDistribution.sol +143 -0
  371. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  372. package/contracts/distribution/Distribution.sol +133 -172
  373. package/contracts/distribution/DistributionService.sol +233 -197
  374. package/contracts/distribution/DistributionServiceManager.sol +13 -25
  375. package/contracts/distribution/IDistributionComponent.sol +20 -48
  376. package/contracts/distribution/IDistributionService.sol +45 -29
  377. package/contracts/examples/fire/DamageLevel.sol +59 -0
  378. package/contracts/examples/fire/FirePool.sol +90 -0
  379. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  380. package/contracts/examples/fire/FireProduct.sol +437 -0
  381. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  382. package/contracts/examples/fire/FireUSD.sol +26 -0
  383. package/contracts/examples/unpermissioned/SimpleDistribution.sol +85 -0
  384. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  385. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  386. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  387. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  388. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  389. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  390. package/contracts/instance/BundleSet.sol +130 -0
  391. package/contracts/instance/IInstance.sol +76 -48
  392. package/contracts/instance/IInstanceService.sol +48 -37
  393. package/contracts/instance/Instance.sol +195 -128
  394. package/contracts/instance/InstanceAdmin.sol +450 -0
  395. package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
  396. package/contracts/instance/InstanceReader.sol +358 -76
  397. package/contracts/instance/InstanceService.sol +327 -173
  398. package/contracts/instance/InstanceServiceManager.sol +14 -29
  399. package/contracts/instance/InstanceStore.sol +151 -64
  400. package/contracts/instance/RiskSet.sol +118 -0
  401. package/contracts/instance/base/BalanceStore.sol +123 -0
  402. package/contracts/instance/base/Cloneable.sol +2 -25
  403. package/contracts/instance/base/ObjectCounter.sol +20 -0
  404. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  405. package/contracts/instance/base/ObjectSet.sol +77 -0
  406. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  407. package/contracts/instance/module/IBundle.sol +1 -4
  408. package/contracts/instance/module/IComponents.sol +24 -14
  409. package/contracts/instance/module/IDistribution.sol +5 -3
  410. package/contracts/instance/module/IPolicy.sol +33 -26
  411. package/contracts/instance/module/IRisk.sol +3 -0
  412. package/contracts/mock/Dip.sol +26 -0
  413. package/contracts/oracle/BasicOracle.sol +47 -0
  414. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  415. package/contracts/oracle/IOracle.sol +36 -0
  416. package/contracts/oracle/IOracleComponent.sol +33 -0
  417. package/contracts/oracle/IOracleService.sol +66 -0
  418. package/contracts/oracle/Oracle.sol +156 -0
  419. package/contracts/oracle/OracleService.sol +310 -0
  420. package/contracts/oracle/OracleServiceManager.sol +39 -0
  421. package/contracts/pool/BasicPool.sol +175 -0
  422. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  423. package/contracts/pool/BundleService.sol +237 -224
  424. package/contracts/pool/BundleServiceManager.sol +13 -25
  425. package/contracts/pool/IBundleService.sol +35 -38
  426. package/contracts/pool/IPoolComponent.sol +21 -73
  427. package/contracts/pool/IPoolService.sol +107 -56
  428. package/contracts/pool/Pool.sol +210 -167
  429. package/contracts/pool/PoolLib.sol +216 -0
  430. package/contracts/pool/PoolService.sol +610 -256
  431. package/contracts/pool/PoolServiceManager.sol +12 -24
  432. package/contracts/product/ApplicationService.sol +173 -85
  433. package/contracts/product/ApplicationServiceManager.sol +12 -9
  434. package/contracts/product/BasicProduct.sol +51 -0
  435. package/contracts/product/BasicProductAuthorization.sol +56 -0
  436. package/contracts/product/ClaimService.sol +373 -183
  437. package/contracts/product/ClaimServiceManager.sol +12 -9
  438. package/contracts/product/IApplicationService.sol +10 -3
  439. package/contracts/product/IClaimService.sol +48 -6
  440. package/contracts/product/IPolicyService.sol +54 -39
  441. package/contracts/product/IPricingService.sol +14 -11
  442. package/contracts/product/IProductComponent.sol +30 -9
  443. package/contracts/product/IRiskService.sol +33 -0
  444. package/contracts/product/PolicyService.sol +522 -234
  445. package/contracts/product/PolicyServiceLib.sol +65 -0
  446. package/contracts/product/PolicyServiceManager.sol +12 -27
  447. package/contracts/product/PricingService.sol +117 -83
  448. package/contracts/product/PricingServiceManager.sol +12 -24
  449. package/contracts/product/Product.sol +236 -146
  450. package/contracts/product/RiskService.sol +154 -0
  451. package/contracts/product/RiskServiceManager.sol +39 -0
  452. package/contracts/registry/ChainNft.sol +72 -39
  453. package/contracts/registry/IRegistry.sol +90 -34
  454. package/contracts/registry/IRegistryService.sol +28 -35
  455. package/contracts/registry/IRelease.sol +26 -0
  456. package/contracts/registry/ITransferInterceptor.sol +1 -2
  457. package/contracts/registry/Registry.sol +444 -219
  458. package/contracts/registry/RegistryAdmin.sol +258 -0
  459. package/contracts/registry/RegistryAuthorization.sol +267 -0
  460. package/contracts/registry/RegistryService.sol +74 -137
  461. package/contracts/registry/RegistryServiceManager.sol +23 -30
  462. package/contracts/registry/ReleaseAdmin.sol +253 -0
  463. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  464. package/contracts/registry/ReleaseRegistry.sol +517 -0
  465. package/contracts/registry/ServiceAuthorizationV3.sol +331 -0
  466. package/contracts/registry/TokenRegistry.sol +261 -64
  467. package/contracts/shared/Component.sol +144 -94
  468. package/contracts/shared/ComponentService.sol +634 -95
  469. package/contracts/shared/ComponentServiceManager.sol +38 -0
  470. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  471. package/contracts/shared/ContractLib.sol +281 -0
  472. package/contracts/shared/IComponent.sol +24 -21
  473. package/contracts/shared/IComponentService.sol +110 -0
  474. package/contracts/shared/IInstanceLinkedComponent.sol +10 -32
  475. package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
  476. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  477. package/contracts/shared/INftOwnable.sol +3 -1
  478. package/contracts/shared/IPolicyHolder.sol +12 -17
  479. package/contracts/shared/IRegisterable.sol +23 -1
  480. package/contracts/shared/IService.sol +11 -6
  481. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  482. package/contracts/shared/InstanceLinkedComponent.sol +117 -191
  483. package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
  484. package/contracts/shared/Lifecycle.sol +88 -0
  485. package/contracts/shared/NftIdSet.sol +65 -0
  486. package/contracts/shared/NftOwnable.sol +33 -24
  487. package/contracts/shared/PolicyHolder.sol +18 -50
  488. package/contracts/shared/Registerable.sol +54 -23
  489. package/contracts/shared/RegistryLinked.sol +9 -14
  490. package/contracts/shared/Service.sol +33 -40
  491. package/contracts/shared/TokenHandler.sol +310 -26
  492. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  493. package/contracts/staking/IStaking.sol +154 -9
  494. package/contracts/staking/IStakingService.sol +107 -40
  495. package/contracts/staking/Staking.sol +506 -25
  496. package/contracts/staking/StakingLib.sol +281 -0
  497. package/contracts/staking/StakingLifecycle.sol +23 -0
  498. package/contracts/staking/StakingManager.sol +24 -18
  499. package/contracts/staking/StakingReader.sol +180 -0
  500. package/contracts/staking/StakingService.sol +308 -48
  501. package/contracts/staking/StakingServiceManager.sol +12 -8
  502. package/contracts/staking/StakingStore.sol +606 -0
  503. package/contracts/staking/TargetManagerLib.sol +211 -0
  504. package/contracts/type/AddressSet.sol +1 -1
  505. package/contracts/type/Amount.sol +44 -3
  506. package/contracts/type/Blocknumber.sol +26 -3
  507. package/contracts/type/ClaimId.sol +6 -1
  508. package/contracts/type/Fee.sol +17 -16
  509. package/contracts/type/Key32.sol +2 -2
  510. package/contracts/type/Key32Set.sol +62 -0
  511. package/contracts/type/NftId.sol +21 -16
  512. package/contracts/type/NftIdSet.sol +1 -1
  513. package/contracts/type/ObjectType.sol +191 -63
  514. package/contracts/type/PayoutId.sol +10 -10
  515. package/contracts/type/Referral.sol +2 -1
  516. package/contracts/type/RequestId.sol +75 -0
  517. package/contracts/type/RiskId.sol +39 -7
  518. package/contracts/type/RoleId.sol +118 -68
  519. package/contracts/type/Seconds.sol +48 -1
  520. package/contracts/type/Selector.sol +107 -0
  521. package/contracts/type/StateId.sol +41 -2
  522. package/contracts/type/String.sol +53 -0
  523. package/contracts/type/Timestamp.sol +16 -7
  524. package/contracts/type/UFixed.sol +40 -121
  525. package/contracts/type/Version.sol +58 -7
  526. package/contracts/{shared → upgradeability}/ProxyManager.sol +90 -27
  527. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  528. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  529. package/package.json +12 -8
  530. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  531. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  532. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  533. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  534. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  535. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  536. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  537. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  538. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  539. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  540. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  542. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  543. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  544. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  545. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  546. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  547. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  548. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  549. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  550. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  551. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
  552. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  553. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  554. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  555. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  556. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  557. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -620
  558. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  559. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  560. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  561. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  562. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  563. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  564. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  565. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  566. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  567. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  568. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  569. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  570. package/contracts/instance/BundleManager.sol +0 -126
  571. package/contracts/instance/InstanceAccessManager.sol +0 -543
  572. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  573. package/contracts/instance/base/Lifecycle.sol +0 -121
  574. package/contracts/instance/base/ObjectManager.sol +0 -82
  575. package/contracts/instance/module/IAccess.sol +0 -54
  576. package/contracts/instance/module/ISetup.sol +0 -33
  577. package/contracts/instance/module/ITreasury.sol +0 -23
  578. package/contracts/product/IProductService.sol +0 -40
  579. package/contracts/product/ProductService.sol +0 -210
  580. package/contracts/product/ProductServiceManager.sol +0 -54
  581. package/contracts/registry/RegistryAccessManager.sol +0 -207
  582. package/contracts/registry/ReleaseManager.sol +0 -360
  583. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  584. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -45,22 +45,16 @@
45
45
  "inputs": [
46
46
  {
47
47
  "internalType": "address",
48
- "name": "target",
48
+ "name": "authority",
49
49
  "type": "address"
50
50
  }
51
51
  ],
52
- "name": "AddressEmptyCode",
52
+ "name": "ErrorAuthorityInvalid",
53
53
  "type": "error"
54
54
  },
55
55
  {
56
- "inputs": [
57
- {
58
- "internalType": "address",
59
- "name": "account",
60
- "type": "address"
61
- }
62
- ],
63
- "name": "AddressInsufficientBalance",
56
+ "inputs": [],
57
+ "name": "ErrorComponentNameLengthZero",
64
58
  "type": "error"
65
59
  },
66
60
  {
@@ -76,43 +70,33 @@
76
70
  },
77
71
  {
78
72
  "inputs": [],
79
- "name": "ErrorComponentTokenAddressZero",
80
- "type": "error"
81
- },
82
- {
83
- "inputs": [],
84
- "name": "ErrorComponentWalletAddressIsSameAsCurrent",
73
+ "name": "ErrorComponentProductNftIdNonzero",
85
74
  "type": "error"
86
75
  },
87
76
  {
88
77
  "inputs": [],
89
- "name": "ErrorComponentWalletAddressZero",
78
+ "name": "ErrorComponentProductNftIdZero",
90
79
  "type": "error"
91
80
  },
92
81
  {
93
82
  "inputs": [
94
83
  {
95
84
  "internalType": "address",
96
- "name": "oldWallet",
97
- "type": "address"
98
- },
99
- {
100
- "internalType": "address",
101
- "name": "newWallet",
85
+ "name": "token",
102
86
  "type": "address"
103
- },
104
- {
105
- "internalType": "uint256",
106
- "name": "allowance",
107
- "type": "uint256"
108
- },
109
- {
110
- "internalType": "uint256",
111
- "name": "balance",
112
- "type": "uint256"
113
87
  }
114
88
  ],
115
- "name": "ErrorComponentWalletAllowanceTooSmall",
89
+ "name": "ErrorComponentTokenInvalid",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [],
94
+ "name": "ErrorComponentWalletAddressIsSameAsCurrent",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "inputs": [],
99
+ "name": "ErrorComponentWalletAddressZero",
116
100
  "type": "error"
117
101
  },
118
102
  {
@@ -147,6 +131,22 @@
147
131
  "name": "ErrorNftOwnableInitialOwnerZero",
148
132
  "type": "error"
149
133
  },
134
+ {
135
+ "inputs": [
136
+ {
137
+ "internalType": "NftId",
138
+ "name": "nftId",
139
+ "type": "uint96"
140
+ },
141
+ {
142
+ "internalType": "ObjectType",
143
+ "name": "expectedObjectType",
144
+ "type": "uint8"
145
+ }
146
+ ],
147
+ "name": "ErrorNftOwnableInvalidType",
148
+ "type": "error"
149
+ },
150
150
  {
151
151
  "inputs": [
152
152
  {
@@ -171,232 +171,793 @@
171
171
  },
172
172
  {
173
173
  "inputs": [],
174
- "name": "FailedInnerCall",
175
- "type": "error"
176
- },
177
- {
178
- "inputs": [],
179
- "name": "InvalidInitialization",
180
- "type": "error"
181
- },
182
- {
183
- "inputs": [],
184
- "name": "NotInitializing",
174
+ "name": "ErrorRegisterableNotActive",
185
175
  "type": "error"
186
176
  },
187
177
  {
188
178
  "inputs": [
189
179
  {
190
180
  "internalType": "address",
191
- "name": "token",
181
+ "name": "owner",
192
182
  "type": "address"
193
- }
194
- ],
195
- "name": "SafeERC20FailedOperation",
196
- "type": "error"
197
- },
198
- {
199
- "anonymous": false,
200
- "inputs": [
183
+ },
201
184
  {
202
- "indexed": false,
203
185
  "internalType": "address",
204
- "name": "authority",
186
+ "name": "tokenHandler",
205
187
  "type": "address"
206
- }
207
- ],
208
- "name": "AuthorityUpdated",
209
- "type": "event"
210
- },
211
- {
212
- "anonymous": false,
213
- "inputs": [
188
+ },
214
189
  {
215
- "indexed": false,
216
- "internalType": "uint64",
217
- "name": "version",
218
- "type": "uint64"
190
+ "internalType": "uint256",
191
+ "name": "amount",
192
+ "type": "uint256"
193
+ },
194
+ {
195
+ "internalType": "uint256",
196
+ "name": "dipAllowance",
197
+ "type": "uint256"
219
198
  }
220
199
  ],
221
- "name": "Initialized",
222
- "type": "event"
200
+ "name": "ErrorStakingDipAllowanceInsufficient",
201
+ "type": "error"
223
202
  },
224
203
  {
225
- "anonymous": false,
226
204
  "inputs": [
227
205
  {
228
- "indexed": false,
229
206
  "internalType": "address",
230
- "name": "token",
207
+ "name": "owner",
231
208
  "type": "address"
232
209
  },
233
210
  {
234
- "indexed": false,
235
211
  "internalType": "uint256",
236
- "name": "limit",
212
+ "name": "amount",
213
+ "type": "uint256"
214
+ },
215
+ {
216
+ "internalType": "uint256",
217
+ "name": "dipBalance",
237
218
  "type": "uint256"
238
219
  }
239
220
  ],
240
- "name": "LogComponentTokenHandlerApproved",
241
- "type": "event"
221
+ "name": "ErrorStakingDipBalanceInsufficient",
222
+ "type": "error"
242
223
  },
243
224
  {
244
- "anonymous": false,
245
225
  "inputs": [
246
226
  {
247
- "indexed": false,
248
- "internalType": "address",
249
- "name": "oldWallet",
250
- "type": "address"
227
+ "internalType": "NftId",
228
+ "name": "targetNftId",
229
+ "type": "uint96"
251
230
  },
252
231
  {
253
- "indexed": false,
254
- "internalType": "address",
255
- "name": "newWallet",
256
- "type": "address"
232
+ "internalType": "Seconds",
233
+ "name": "maxLockingPeriod",
234
+ "type": "uint40"
235
+ },
236
+ {
237
+ "internalType": "Seconds",
238
+ "name": "lockingPeriod",
239
+ "type": "uint40"
257
240
  }
258
241
  ],
259
- "name": "LogComponentWalletAddressChanged",
260
- "type": "event"
242
+ "name": "ErrorStakingLockingPeriodTooLong",
243
+ "type": "error"
261
244
  },
262
245
  {
263
- "anonymous": false,
264
246
  "inputs": [
265
247
  {
266
- "indexed": false,
267
- "internalType": "address",
268
- "name": "from",
269
- "type": "address"
248
+ "internalType": "NftId",
249
+ "name": "targetNftId",
250
+ "type": "uint96"
270
251
  },
271
252
  {
272
- "indexed": false,
273
- "internalType": "address",
274
- "name": "to",
275
- "type": "address"
253
+ "internalType": "Seconds",
254
+ "name": "minLockingPeriod",
255
+ "type": "uint40"
276
256
  },
277
257
  {
278
- "indexed": false,
279
- "internalType": "uint256",
280
- "name": "amount",
281
- "type": "uint256"
258
+ "internalType": "Seconds",
259
+ "name": "lockingPeriod",
260
+ "type": "uint40"
282
261
  }
283
262
  ],
284
- "name": "LogComponentWalletTokensTransferred",
285
- "type": "event"
263
+ "name": "ErrorStakingLockingPeriodTooShort",
264
+ "type": "error"
286
265
  },
287
266
  {
288
- "inputs": [],
289
- "name": "COMPONENT_LOCATION_V1",
290
- "outputs": [
267
+ "inputs": [
291
268
  {
292
- "internalType": "bytes32",
293
- "name": "",
294
- "type": "bytes32"
269
+ "internalType": "NftId",
270
+ "name": "nftId",
271
+ "type": "uint96"
295
272
  }
296
273
  ],
297
- "stateMutability": "view",
298
- "type": "function"
274
+ "name": "ErrorStakingNotNftOwner",
275
+ "type": "error"
299
276
  },
300
277
  {
301
- "inputs": [],
302
- "name": "CONTRACT_NAME",
303
- "outputs": [
278
+ "inputs": [
304
279
  {
305
- "internalType": "string",
306
- "name": "",
307
- "type": "string"
280
+ "internalType": "address",
281
+ "name": "registry",
282
+ "type": "address"
308
283
  }
309
284
  ],
310
- "stateMutability": "view",
311
- "type": "function"
285
+ "name": "ErrorStakingNotRegistry",
286
+ "type": "error"
312
287
  },
313
288
  {
314
- "inputs": [],
315
- "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
316
- "outputs": [
289
+ "inputs": [
317
290
  {
318
- "internalType": "bytes32",
319
- "name": "",
320
- "type": "bytes32"
291
+ "internalType": "NftId",
292
+ "name": "stakeNftId",
293
+ "type": "uint96"
321
294
  }
322
295
  ],
323
- "stateMutability": "view",
324
- "type": "function"
296
+ "name": "ErrorStakingNotStake",
297
+ "type": "error"
325
298
  },
326
299
  {
327
300
  "inputs": [],
328
- "name": "REGISTERABLE_LOCATION_V1",
329
- "outputs": [
301
+ "name": "ErrorStakingNotStakingOwner",
302
+ "type": "error"
303
+ },
304
+ {
305
+ "inputs": [
330
306
  {
331
- "internalType": "bytes32",
332
- "name": "",
333
- "type": "bytes32"
307
+ "internalType": "NftId",
308
+ "name": "targetNftId",
309
+ "type": "uint96"
334
310
  }
335
311
  ],
336
- "stateMutability": "view",
337
- "type": "function"
312
+ "name": "ErrorStakingNotTarget",
313
+ "type": "error"
338
314
  },
339
315
  {
340
316
  "inputs": [
341
317
  {
342
- "internalType": "uint256",
343
- "name": "spendingLimitAmount",
318
+ "internalType": "NftId",
319
+ "name": "targetNftId",
320
+ "type": "uint96"
321
+ },
322
+ {
323
+ "internalType": "UFixed",
324
+ "name": "maxRewardRate",
325
+ "type": "uint256"
326
+ },
327
+ {
328
+ "internalType": "UFixed",
329
+ "name": "rewardRate",
344
330
  "type": "uint256"
345
331
  }
346
332
  ],
347
- "name": "approveTokenHandler",
348
- "outputs": [],
349
- "stateMutability": "nonpayable",
350
- "type": "function"
333
+ "name": "ErrorStakingRewardRateTooHigh",
334
+ "type": "error"
351
335
  },
352
336
  {
353
337
  "inputs": [
354
338
  {
355
- "internalType": "address",
356
- "name": "token",
357
- "type": "address"
339
+ "internalType": "NftId",
340
+ "name": "targetNftId",
341
+ "type": "uint96"
342
+ }
343
+ ],
344
+ "name": "ErrorStakingStakeAmountZero",
345
+ "type": "error"
346
+ },
347
+ {
348
+ "inputs": [
349
+ {
350
+ "internalType": "NftId",
351
+ "name": "stakeNftId",
352
+ "type": "uint96"
358
353
  },
359
354
  {
360
- "internalType": "uint256",
361
- "name": "spendingLimitAmount",
362
- "type": "uint256"
355
+ "internalType": "Timestamp",
356
+ "name": "lockedUntil",
357
+ "type": "uint40"
363
358
  }
364
359
  ],
365
- "name": "approveTokenHandler",
366
- "outputs": [],
367
- "stateMutability": "nonpayable",
368
- "type": "function"
360
+ "name": "ErrorStakingStakeLocked",
361
+ "type": "error"
369
362
  },
370
363
  {
371
- "inputs": [],
372
- "name": "authority",
373
- "outputs": [
364
+ "inputs": [
374
365
  {
375
366
  "internalType": "address",
376
- "name": "",
367
+ "name": "stakingByStakingReader",
377
368
  "type": "address"
378
369
  }
379
370
  ],
380
- "stateMutability": "view",
381
- "type": "function"
371
+ "name": "ErrorStakingStakingReaderStakingMismatch",
372
+ "type": "error"
382
373
  },
383
374
  {
384
- "inputs": [],
385
- "name": "getInitialInfo",
386
- "outputs": [
375
+ "inputs": [
387
376
  {
388
- "components": [
389
- {
390
- "internalType": "NftId",
391
- "name": "nftId",
392
- "type": "uint96"
393
- },
394
- {
395
- "internalType": "NftId",
396
- "name": "parentNftId",
397
- "type": "uint96"
398
- },
399
- {
377
+ "internalType": "NftId",
378
+ "name": "targetNftId",
379
+ "type": "uint96"
380
+ }
381
+ ],
382
+ "name": "ErrorStakingTargetAlreadyRegistered",
383
+ "type": "error"
384
+ },
385
+ {
386
+ "inputs": [
387
+ {
388
+ "internalType": "NftId",
389
+ "name": "targetNftId",
390
+ "type": "uint96"
391
+ },
392
+ {
393
+ "internalType": "Amount",
394
+ "name": "maxStakedAmount",
395
+ "type": "uint96"
396
+ },
397
+ {
398
+ "internalType": "Amount",
399
+ "name": "stakedAmount",
400
+ "type": "uint96"
401
+ }
402
+ ],
403
+ "name": "ErrorStakingTargetMaxStakedAmountExceeded",
404
+ "type": "error"
405
+ },
406
+ {
407
+ "inputs": [],
408
+ "name": "ErrorStakingTargetNftIdZero",
409
+ "type": "error"
410
+ },
411
+ {
412
+ "inputs": [
413
+ {
414
+ "internalType": "NftId",
415
+ "name": "targetNftId",
416
+ "type": "uint96"
417
+ }
418
+ ],
419
+ "name": "ErrorStakingTargetNotFound",
420
+ "type": "error"
421
+ },
422
+ {
423
+ "inputs": [
424
+ {
425
+ "internalType": "NftId",
426
+ "name": "targetNftId",
427
+ "type": "uint96"
428
+ },
429
+ {
430
+ "internalType": "uint256",
431
+ "name": "chainId",
432
+ "type": "uint256"
433
+ },
434
+ {
435
+ "internalType": "address",
436
+ "name": "token",
437
+ "type": "address"
438
+ }
439
+ ],
440
+ "name": "ErrorStakingTargetTokenNotFound",
441
+ "type": "error"
442
+ },
443
+ {
444
+ "inputs": [
445
+ {
446
+ "internalType": "NftId",
447
+ "name": "targetNftId",
448
+ "type": "uint96"
449
+ },
450
+ {
451
+ "internalType": "ObjectType",
452
+ "name": "objectType",
453
+ "type": "uint8"
454
+ }
455
+ ],
456
+ "name": "ErrorStakingTargetTypeNotSupported",
457
+ "type": "error"
458
+ },
459
+ {
460
+ "inputs": [
461
+ {
462
+ "internalType": "NftId",
463
+ "name": "targetNftId",
464
+ "type": "uint96"
465
+ },
466
+ {
467
+ "internalType": "ObjectType",
468
+ "name": "expectedObjectType",
469
+ "type": "uint8"
470
+ },
471
+ {
472
+ "internalType": "ObjectType",
473
+ "name": "actualObjectType",
474
+ "type": "uint8"
475
+ }
476
+ ],
477
+ "name": "ErrorStakingTargetUnexpectedObjectType",
478
+ "type": "error"
479
+ },
480
+ {
481
+ "inputs": [
482
+ {
483
+ "internalType": "uint256",
484
+ "name": "chainId",
485
+ "type": "uint256"
486
+ },
487
+ {
488
+ "internalType": "address",
489
+ "name": "token",
490
+ "type": "address"
491
+ }
492
+ ],
493
+ "name": "ErrorStakingTokenNotRegistered",
494
+ "type": "error"
495
+ },
496
+ {
497
+ "inputs": [],
498
+ "name": "InvalidInitialization",
499
+ "type": "error"
500
+ },
501
+ {
502
+ "inputs": [],
503
+ "name": "NotInitializing",
504
+ "type": "error"
505
+ },
506
+ {
507
+ "anonymous": false,
508
+ "inputs": [
509
+ {
510
+ "indexed": false,
511
+ "internalType": "address",
512
+ "name": "authority",
513
+ "type": "address"
514
+ }
515
+ ],
516
+ "name": "AuthorityUpdated",
517
+ "type": "event"
518
+ },
519
+ {
520
+ "anonymous": false,
521
+ "inputs": [
522
+ {
523
+ "indexed": false,
524
+ "internalType": "uint64",
525
+ "name": "version",
526
+ "type": "uint64"
527
+ }
528
+ ],
529
+ "name": "Initialized",
530
+ "type": "event"
531
+ },
532
+ {
533
+ "anonymous": false,
534
+ "inputs": [
535
+ {
536
+ "indexed": false,
537
+ "internalType": "address",
538
+ "name": "tokenHandler",
539
+ "type": "address"
540
+ },
541
+ {
542
+ "indexed": false,
543
+ "internalType": "address",
544
+ "name": "token",
545
+ "type": "address"
546
+ },
547
+ {
548
+ "indexed": false,
549
+ "internalType": "Amount",
550
+ "name": "limit",
551
+ "type": "uint96"
552
+ },
553
+ {
554
+ "indexed": false,
555
+ "internalType": "bool",
556
+ "name": "isMaxAmount",
557
+ "type": "bool"
558
+ }
559
+ ],
560
+ "name": "LogComponentTokenHandlerApproved",
561
+ "type": "event"
562
+ },
563
+ {
564
+ "anonymous": false,
565
+ "inputs": [
566
+ {
567
+ "indexed": false,
568
+ "internalType": "address",
569
+ "name": "oldWallet",
570
+ "type": "address"
571
+ },
572
+ {
573
+ "indexed": false,
574
+ "internalType": "address",
575
+ "name": "newWallet",
576
+ "type": "address"
577
+ }
578
+ ],
579
+ "name": "LogComponentWalletAddressChanged",
580
+ "type": "event"
581
+ },
582
+ {
583
+ "anonymous": false,
584
+ "inputs": [
585
+ {
586
+ "indexed": false,
587
+ "internalType": "address",
588
+ "name": "from",
589
+ "type": "address"
590
+ },
591
+ {
592
+ "indexed": false,
593
+ "internalType": "address",
594
+ "name": "to",
595
+ "type": "address"
596
+ },
597
+ {
598
+ "indexed": false,
599
+ "internalType": "uint256",
600
+ "name": "amount",
601
+ "type": "uint256"
602
+ }
603
+ ],
604
+ "name": "LogComponentWalletTokensTransferred",
605
+ "type": "event"
606
+ },
607
+ {
608
+ "anonymous": false,
609
+ "inputs": [
610
+ {
611
+ "indexed": false,
612
+ "internalType": "NftId",
613
+ "name": "targetNftId",
614
+ "type": "uint96"
615
+ },
616
+ {
617
+ "indexed": false,
618
+ "internalType": "Seconds",
619
+ "name": "oldLockingPeriod",
620
+ "type": "uint40"
621
+ },
622
+ {
623
+ "indexed": false,
624
+ "internalType": "Seconds",
625
+ "name": "lockingPeriod",
626
+ "type": "uint40"
627
+ }
628
+ ],
629
+ "name": "LogStakingLockingPeriodSet",
630
+ "type": "event"
631
+ },
632
+ {
633
+ "anonymous": false,
634
+ "inputs": [
635
+ {
636
+ "indexed": false,
637
+ "internalType": "NftId",
638
+ "name": "targetNftId",
639
+ "type": "uint96"
640
+ },
641
+ {
642
+ "indexed": false,
643
+ "internalType": "Amount",
644
+ "name": "maxStakedAmount",
645
+ "type": "uint96"
646
+ }
647
+ ],
648
+ "name": "LogStakingMaxStakedAmountSet",
649
+ "type": "event"
650
+ },
651
+ {
652
+ "anonymous": false,
653
+ "inputs": [
654
+ {
655
+ "indexed": false,
656
+ "internalType": "NftId",
657
+ "name": "targetNftId",
658
+ "type": "uint96"
659
+ },
660
+ {
661
+ "indexed": false,
662
+ "internalType": "UFixed",
663
+ "name": "oldRewardRate",
664
+ "type": "uint256"
665
+ },
666
+ {
667
+ "indexed": false,
668
+ "internalType": "UFixed",
669
+ "name": "rewardRate",
670
+ "type": "uint256"
671
+ }
672
+ ],
673
+ "name": "LogStakingRewardRateSet",
674
+ "type": "event"
675
+ },
676
+ {
677
+ "anonymous": false,
678
+ "inputs": [
679
+ {
680
+ "indexed": false,
681
+ "internalType": "uint256",
682
+ "name": "chainId",
683
+ "type": "uint256"
684
+ },
685
+ {
686
+ "indexed": false,
687
+ "internalType": "address",
688
+ "name": "token",
689
+ "type": "address"
690
+ },
691
+ {
692
+ "indexed": false,
693
+ "internalType": "UFixed",
694
+ "name": "oldStakingRate",
695
+ "type": "uint256"
696
+ },
697
+ {
698
+ "indexed": false,
699
+ "internalType": "UFixed",
700
+ "name": "newStakingRate",
701
+ "type": "uint256"
702
+ }
703
+ ],
704
+ "name": "LogStakingStakingRateSet",
705
+ "type": "event"
706
+ },
707
+ {
708
+ "inputs": [],
709
+ "name": "COMPONENT_LOCATION_V1",
710
+ "outputs": [
711
+ {
712
+ "internalType": "bytes32",
713
+ "name": "",
714
+ "type": "bytes32"
715
+ }
716
+ ],
717
+ "stateMutability": "view",
718
+ "type": "function"
719
+ },
720
+ {
721
+ "inputs": [],
722
+ "name": "CONTRACT_NAME",
723
+ "outputs": [
724
+ {
725
+ "internalType": "string",
726
+ "name": "",
727
+ "type": "string"
728
+ }
729
+ ],
730
+ "stateMutability": "view",
731
+ "type": "function"
732
+ },
733
+ {
734
+ "inputs": [],
735
+ "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
736
+ "outputs": [
737
+ {
738
+ "internalType": "bytes32",
739
+ "name": "",
740
+ "type": "bytes32"
741
+ }
742
+ ],
743
+ "stateMutability": "view",
744
+ "type": "function"
745
+ },
746
+ {
747
+ "inputs": [],
748
+ "name": "REGISTERABLE_LOCATION_V1",
749
+ "outputs": [
750
+ {
751
+ "internalType": "bytes32",
752
+ "name": "",
753
+ "type": "bytes32"
754
+ }
755
+ ],
756
+ "stateMutability": "view",
757
+ "type": "function"
758
+ },
759
+ {
760
+ "inputs": [],
761
+ "name": "STAKING_LOCATION_V1",
762
+ "outputs": [
763
+ {
764
+ "internalType": "bytes32",
765
+ "name": "",
766
+ "type": "bytes32"
767
+ }
768
+ ],
769
+ "stateMutability": "view",
770
+ "type": "function"
771
+ },
772
+ {
773
+ "inputs": [
774
+ {
775
+ "internalType": "contract IERC20Metadata",
776
+ "name": "token",
777
+ "type": "address"
778
+ },
779
+ {
780
+ "internalType": "Amount",
781
+ "name": "amount",
782
+ "type": "uint96"
783
+ }
784
+ ],
785
+ "name": "approveTokenHandler",
786
+ "outputs": [],
787
+ "stateMutability": "nonpayable",
788
+ "type": "function"
789
+ },
790
+ {
791
+ "inputs": [],
792
+ "name": "authority",
793
+ "outputs": [
794
+ {
795
+ "internalType": "address",
796
+ "name": "",
797
+ "type": "address"
798
+ }
799
+ ],
800
+ "stateMutability": "view",
801
+ "type": "function"
802
+ },
803
+ {
804
+ "inputs": [
805
+ {
806
+ "internalType": "NftId",
807
+ "name": "stakeNftId",
808
+ "type": "uint96"
809
+ }
810
+ ],
811
+ "name": "claimRewards",
812
+ "outputs": [
813
+ {
814
+ "internalType": "Amount",
815
+ "name": "rewardsClaimedAmount",
816
+ "type": "uint96"
817
+ }
818
+ ],
819
+ "stateMutability": "nonpayable",
820
+ "type": "function"
821
+ },
822
+ {
823
+ "inputs": [
824
+ {
825
+ "internalType": "NftId",
826
+ "name": "stakeNftId",
827
+ "type": "uint96"
828
+ },
829
+ {
830
+ "internalType": "NftId",
831
+ "name": "targetNftId",
832
+ "type": "uint96"
833
+ },
834
+ {
835
+ "internalType": "Amount",
836
+ "name": "stakeAmount",
837
+ "type": "uint96"
838
+ }
839
+ ],
840
+ "name": "createStake",
841
+ "outputs": [],
842
+ "stateMutability": "nonpayable",
843
+ "type": "function"
844
+ },
845
+ {
846
+ "inputs": [
847
+ {
848
+ "internalType": "NftId",
849
+ "name": "targetNftId",
850
+ "type": "uint96"
851
+ },
852
+ {
853
+ "internalType": "address",
854
+ "name": "token",
855
+ "type": "address"
856
+ },
857
+ {
858
+ "internalType": "Amount",
859
+ "name": "amount",
860
+ "type": "uint96"
861
+ }
862
+ ],
863
+ "name": "decreaseTotalValueLocked",
864
+ "outputs": [
865
+ {
866
+ "internalType": "Amount",
867
+ "name": "newBalance",
868
+ "type": "uint96"
869
+ }
870
+ ],
871
+ "stateMutability": "nonpayable",
872
+ "type": "function"
873
+ },
874
+ {
875
+ "inputs": [],
876
+ "name": "getComponentInfo",
877
+ "outputs": [
878
+ {
879
+ "components": [
880
+ {
881
+ "internalType": "string",
882
+ "name": "name",
883
+ "type": "string"
884
+ },
885
+ {
886
+ "internalType": "contract IERC20Metadata",
887
+ "name": "token",
888
+ "type": "address"
889
+ },
890
+ {
891
+ "internalType": "contract TokenHandler",
892
+ "name": "tokenHandler",
893
+ "type": "address"
894
+ },
895
+ {
896
+ "internalType": "bytes",
897
+ "name": "data",
898
+ "type": "bytes"
899
+ }
900
+ ],
901
+ "internalType": "struct IComponents.ComponentInfo",
902
+ "name": "info",
903
+ "type": "tuple"
904
+ }
905
+ ],
906
+ "stateMutability": "view",
907
+ "type": "function"
908
+ },
909
+ {
910
+ "inputs": [],
911
+ "name": "getInitialComponentInfo",
912
+ "outputs": [
913
+ {
914
+ "components": [
915
+ {
916
+ "internalType": "string",
917
+ "name": "name",
918
+ "type": "string"
919
+ },
920
+ {
921
+ "internalType": "contract IERC20Metadata",
922
+ "name": "token",
923
+ "type": "address"
924
+ },
925
+ {
926
+ "internalType": "contract TokenHandler",
927
+ "name": "tokenHandler",
928
+ "type": "address"
929
+ },
930
+ {
931
+ "internalType": "bytes",
932
+ "name": "data",
933
+ "type": "bytes"
934
+ }
935
+ ],
936
+ "internalType": "struct IComponents.ComponentInfo",
937
+ "name": "info",
938
+ "type": "tuple"
939
+ }
940
+ ],
941
+ "stateMutability": "view",
942
+ "type": "function"
943
+ },
944
+ {
945
+ "inputs": [],
946
+ "name": "getInitialInfo",
947
+ "outputs": [
948
+ {
949
+ "components": [
950
+ {
951
+ "internalType": "NftId",
952
+ "name": "nftId",
953
+ "type": "uint96"
954
+ },
955
+ {
956
+ "internalType": "NftId",
957
+ "name": "parentNftId",
958
+ "type": "uint96"
959
+ },
960
+ {
400
961
  "internalType": "ObjectType",
401
962
  "name": "objectType",
402
963
  "type": "uint8"
@@ -432,12 +993,51 @@
432
993
  },
433
994
  {
434
995
  "inputs": [],
435
- "name": "getName",
996
+ "name": "getName",
997
+ "outputs": [
998
+ {
999
+ "internalType": "string",
1000
+ "name": "name",
1001
+ "type": "string"
1002
+ }
1003
+ ],
1004
+ "stateMutability": "view",
1005
+ "type": "function"
1006
+ },
1007
+ {
1008
+ "inputs": [],
1009
+ "name": "getNftId",
1010
+ "outputs": [
1011
+ {
1012
+ "internalType": "NftId",
1013
+ "name": "",
1014
+ "type": "uint96"
1015
+ }
1016
+ ],
1017
+ "stateMutability": "view",
1018
+ "type": "function"
1019
+ },
1020
+ {
1021
+ "inputs": [],
1022
+ "name": "getOwner",
1023
+ "outputs": [
1024
+ {
1025
+ "internalType": "address",
1026
+ "name": "",
1027
+ "type": "address"
1028
+ }
1029
+ ],
1030
+ "stateMutability": "view",
1031
+ "type": "function"
1032
+ },
1033
+ {
1034
+ "inputs": [],
1035
+ "name": "getRegistry",
436
1036
  "outputs": [
437
1037
  {
438
- "internalType": "string",
439
- "name": "name",
440
- "type": "string"
1038
+ "internalType": "contract IRegistry",
1039
+ "name": "",
1040
+ "type": "address"
441
1041
  }
442
1042
  ],
443
1043
  "stateMutability": "view",
@@ -445,24 +1045,24 @@
445
1045
  },
446
1046
  {
447
1047
  "inputs": [],
448
- "name": "getNftId",
1048
+ "name": "getRelease",
449
1049
  "outputs": [
450
1050
  {
451
- "internalType": "NftId",
1051
+ "internalType": "VersionPart",
452
1052
  "name": "",
453
- "type": "uint96"
1053
+ "type": "uint8"
454
1054
  }
455
1055
  ],
456
- "stateMutability": "view",
1056
+ "stateMutability": "pure",
457
1057
  "type": "function"
458
1058
  },
459
1059
  {
460
1060
  "inputs": [],
461
- "name": "getOwner",
1061
+ "name": "getStakingReader",
462
1062
  "outputs": [
463
1063
  {
464
- "internalType": "address",
465
- "name": "",
1064
+ "internalType": "contract StakingReader",
1065
+ "name": "reader",
466
1066
  "type": "address"
467
1067
  }
468
1068
  ],
@@ -471,11 +1071,11 @@
471
1071
  },
472
1072
  {
473
1073
  "inputs": [],
474
- "name": "getRegistry",
1074
+ "name": "getStakingStore",
475
1075
  "outputs": [
476
1076
  {
477
- "internalType": "contract IRegistry",
478
- "name": "",
1077
+ "internalType": "contract StakingStore",
1078
+ "name": "stakingStore",
479
1079
  "type": "address"
480
1080
  }
481
1081
  ],
@@ -508,6 +1108,19 @@
508
1108
  "stateMutability": "view",
509
1109
  "type": "function"
510
1110
  },
1111
+ {
1112
+ "inputs": [],
1113
+ "name": "getTokenRegistryAddress",
1114
+ "outputs": [
1115
+ {
1116
+ "internalType": "address",
1117
+ "name": "tokenRegistry",
1118
+ "type": "address"
1119
+ }
1120
+ ],
1121
+ "stateMutability": "view",
1122
+ "type": "function"
1123
+ },
511
1124
  {
512
1125
  "inputs": [],
513
1126
  "name": "getVersion",
@@ -536,60 +1149,304 @@
536
1149
  },
537
1150
  {
538
1151
  "inputs": [
1152
+ {
1153
+ "internalType": "NftId",
1154
+ "name": "targetNftId",
1155
+ "type": "uint96"
1156
+ },
539
1157
  {
540
1158
  "internalType": "address",
541
- "name": "authority",
1159
+ "name": "token",
542
1160
  "type": "address"
543
1161
  },
1162
+ {
1163
+ "internalType": "Amount",
1164
+ "name": "amount",
1165
+ "type": "uint96"
1166
+ }
1167
+ ],
1168
+ "name": "increaseTotalValueLocked",
1169
+ "outputs": [
1170
+ {
1171
+ "internalType": "Amount",
1172
+ "name": "newBalance",
1173
+ "type": "uint96"
1174
+ }
1175
+ ],
1176
+ "stateMutability": "nonpayable",
1177
+ "type": "function"
1178
+ },
1179
+ {
1180
+ "inputs": [],
1181
+ "name": "initializeTokenHandler",
1182
+ "outputs": [],
1183
+ "stateMutability": "nonpayable",
1184
+ "type": "function"
1185
+ },
1186
+ {
1187
+ "inputs": [
544
1188
  {
545
1189
  "internalType": "address",
546
- "name": "registry",
1190
+ "name": "activatedBy",
547
1191
  "type": "address"
548
1192
  },
1193
+ {
1194
+ "internalType": "bytes",
1195
+ "name": "data",
1196
+ "type": "bytes"
1197
+ }
1198
+ ],
1199
+ "name": "initializeVersionable",
1200
+ "outputs": [],
1201
+ "stateMutability": "nonpayable",
1202
+ "type": "function"
1203
+ },
1204
+ {
1205
+ "inputs": [],
1206
+ "name": "isActive",
1207
+ "outputs": [
1208
+ {
1209
+ "internalType": "bool",
1210
+ "name": "active",
1211
+ "type": "bool"
1212
+ }
1213
+ ],
1214
+ "stateMutability": "view",
1215
+ "type": "function"
1216
+ },
1217
+ {
1218
+ "inputs": [],
1219
+ "name": "isConsumingScheduledOp",
1220
+ "outputs": [
1221
+ {
1222
+ "internalType": "bytes4",
1223
+ "name": "",
1224
+ "type": "bytes4"
1225
+ }
1226
+ ],
1227
+ "stateMutability": "view",
1228
+ "type": "function"
1229
+ },
1230
+ {
1231
+ "inputs": [],
1232
+ "name": "isNftInterceptor",
1233
+ "outputs": [
1234
+ {
1235
+ "internalType": "bool",
1236
+ "name": "isInterceptor",
1237
+ "type": "bool"
1238
+ }
1239
+ ],
1240
+ "stateMutability": "view",
1241
+ "type": "function"
1242
+ },
1243
+ {
1244
+ "inputs": [],
1245
+ "name": "isRegistered",
1246
+ "outputs": [
1247
+ {
1248
+ "internalType": "bool",
1249
+ "name": "",
1250
+ "type": "bool"
1251
+ }
1252
+ ],
1253
+ "stateMutability": "view",
1254
+ "type": "function"
1255
+ },
1256
+ {
1257
+ "inputs": [],
1258
+ "name": "linkToRegisteredNftId",
1259
+ "outputs": [
549
1260
  {
550
1261
  "internalType": "NftId",
551
- "name": "parentNftId",
1262
+ "name": "nftId",
552
1263
  "type": "uint96"
1264
+ }
1265
+ ],
1266
+ "stateMutability": "nonpayable",
1267
+ "type": "function"
1268
+ },
1269
+ {
1270
+ "inputs": [
1271
+ {
1272
+ "internalType": "address",
1273
+ "name": "from",
1274
+ "type": "address"
553
1275
  },
554
1276
  {
555
- "internalType": "string",
556
- "name": "name",
557
- "type": "string"
1277
+ "internalType": "address",
1278
+ "name": "to",
1279
+ "type": "address"
1280
+ },
1281
+ {
1282
+ "internalType": "uint256",
1283
+ "name": "tokenId",
1284
+ "type": "uint256"
558
1285
  },
559
1286
  {
560
1287
  "internalType": "address",
561
- "name": "token",
1288
+ "name": "operator",
562
1289
  "type": "address"
1290
+ }
1291
+ ],
1292
+ "name": "nftTransferFrom",
1293
+ "outputs": [],
1294
+ "stateMutability": "nonpayable",
1295
+ "type": "function"
1296
+ },
1297
+ {
1298
+ "inputs": [
1299
+ {
1300
+ "internalType": "NftId",
1301
+ "name": "targetNftId",
1302
+ "type": "uint96"
1303
+ },
1304
+ {
1305
+ "internalType": "Amount",
1306
+ "name": "dipAmount",
1307
+ "type": "uint96"
1308
+ }
1309
+ ],
1310
+ "name": "refillRewardReserves",
1311
+ "outputs": [
1312
+ {
1313
+ "internalType": "Amount",
1314
+ "name": "newBalance",
1315
+ "type": "uint96"
1316
+ }
1317
+ ],
1318
+ "stateMutability": "nonpayable",
1319
+ "type": "function"
1320
+ },
1321
+ {
1322
+ "inputs": [
1323
+ {
1324
+ "internalType": "NftId",
1325
+ "name": "targetNftId",
1326
+ "type": "uint96"
1327
+ },
1328
+ {
1329
+ "components": [
1330
+ {
1331
+ "internalType": "ObjectType",
1332
+ "name": "objectType",
1333
+ "type": "uint8"
1334
+ },
1335
+ {
1336
+ "internalType": "uint256",
1337
+ "name": "chainId",
1338
+ "type": "uint256"
1339
+ },
1340
+ {
1341
+ "internalType": "Seconds",
1342
+ "name": "lockingPeriod",
1343
+ "type": "uint40"
1344
+ },
1345
+ {
1346
+ "internalType": "UFixed",
1347
+ "name": "rewardRate",
1348
+ "type": "uint256"
1349
+ },
1350
+ {
1351
+ "internalType": "Amount",
1352
+ "name": "maxStakedAmount",
1353
+ "type": "uint96"
1354
+ }
1355
+ ],
1356
+ "internalType": "struct IStaking.TargetInfo",
1357
+ "name": "targetInfo",
1358
+ "type": "tuple"
1359
+ }
1360
+ ],
1361
+ "name": "registerRemoteTarget",
1362
+ "outputs": [],
1363
+ "stateMutability": "nonpayable",
1364
+ "type": "function"
1365
+ },
1366
+ {
1367
+ "inputs": [
1368
+ {
1369
+ "internalType": "NftId",
1370
+ "name": "targetNftId",
1371
+ "type": "uint96"
563
1372
  },
564
1373
  {
565
1374
  "internalType": "ObjectType",
566
- "name": "componentType",
1375
+ "name": "expectedObjectType",
567
1376
  "type": "uint8"
568
1377
  },
569
1378
  {
570
- "internalType": "bool",
571
- "name": "isInterceptor",
572
- "type": "bool"
1379
+ "internalType": "uint256",
1380
+ "name": "chainId",
1381
+ "type": "uint256"
573
1382
  },
574
1383
  {
575
- "internalType": "address",
576
- "name": "initialOwner",
577
- "type": "address"
1384
+ "internalType": "Seconds",
1385
+ "name": "initialLockingPeriod",
1386
+ "type": "uint40"
578
1387
  },
579
1388
  {
580
- "internalType": "bytes",
581
- "name": "registryData",
582
- "type": "bytes"
1389
+ "internalType": "UFixed",
1390
+ "name": "initialRewardRate",
1391
+ "type": "uint256"
583
1392
  }
584
1393
  ],
585
- "name": "initializeComponent",
1394
+ "name": "registerTarget",
586
1395
  "outputs": [],
587
1396
  "stateMutability": "nonpayable",
588
1397
  "type": "function"
589
1398
  },
590
1399
  {
591
- "inputs": [],
592
- "name": "initializeERC165",
1400
+ "inputs": [
1401
+ {
1402
+ "internalType": "NftId",
1403
+ "name": "stakeNftId",
1404
+ "type": "uint96"
1405
+ },
1406
+ {
1407
+ "internalType": "NftId",
1408
+ "name": "newStakeNftId",
1409
+ "type": "uint96"
1410
+ }
1411
+ ],
1412
+ "name": "restake",
1413
+ "outputs": [
1414
+ {
1415
+ "internalType": "Amount",
1416
+ "name": "newStakeBalance",
1417
+ "type": "uint96"
1418
+ }
1419
+ ],
1420
+ "stateMutability": "nonpayable",
1421
+ "type": "function"
1422
+ },
1423
+ {
1424
+ "inputs": [
1425
+ {
1426
+ "internalType": "address",
1427
+ "name": "newAuthority",
1428
+ "type": "address"
1429
+ }
1430
+ ],
1431
+ "name": "setAuthority",
1432
+ "outputs": [],
1433
+ "stateMutability": "nonpayable",
1434
+ "type": "function"
1435
+ },
1436
+ {
1437
+ "inputs": [
1438
+ {
1439
+ "internalType": "NftId",
1440
+ "name": "targetNftId",
1441
+ "type": "uint96"
1442
+ },
1443
+ {
1444
+ "internalType": "Seconds",
1445
+ "name": "lockingPeriod",
1446
+ "type": "uint40"
1447
+ }
1448
+ ],
1449
+ "name": "setLockingPeriod",
593
1450
  "outputs": [],
594
1451
  "stateMutability": "nonpayable",
595
1452
  "type": "function"
@@ -597,55 +1454,58 @@
597
1454
  {
598
1455
  "inputs": [
599
1456
  {
600
- "internalType": "address",
601
- "name": "initialOwner",
602
- "type": "address"
1457
+ "internalType": "NftId",
1458
+ "name": "targetNftId",
1459
+ "type": "uint96"
603
1460
  },
604
1461
  {
605
- "internalType": "address",
606
- "name": "registryAddress",
607
- "type": "address"
1462
+ "internalType": "Amount",
1463
+ "name": "maxStakedAmount",
1464
+ "type": "uint96"
608
1465
  }
609
1466
  ],
610
- "name": "initializeNftOwnable",
1467
+ "name": "setMaxStakedAmount",
611
1468
  "outputs": [],
612
1469
  "stateMutability": "nonpayable",
613
1470
  "type": "function"
614
1471
  },
615
1472
  {
616
1473
  "inputs": [
617
- {
618
- "internalType": "address",
619
- "name": "registryAddress",
620
- "type": "address"
621
- },
622
1474
  {
623
1475
  "internalType": "NftId",
624
- "name": "parentNftId",
1476
+ "name": "targetNftId",
625
1477
  "type": "uint96"
626
1478
  },
627
1479
  {
628
- "internalType": "ObjectType",
629
- "name": "objectType",
630
- "type": "uint8"
631
- },
1480
+ "internalType": "UFixed",
1481
+ "name": "rewardRate",
1482
+ "type": "uint256"
1483
+ }
1484
+ ],
1485
+ "name": "setRewardRate",
1486
+ "outputs": [],
1487
+ "stateMutability": "nonpayable",
1488
+ "type": "function"
1489
+ },
1490
+ {
1491
+ "inputs": [
632
1492
  {
633
- "internalType": "bool",
634
- "name": "isInterceptor",
635
- "type": "bool"
1493
+ "internalType": "uint256",
1494
+ "name": "chainId",
1495
+ "type": "uint256"
636
1496
  },
637
1497
  {
638
1498
  "internalType": "address",
639
- "name": "initialOwner",
1499
+ "name": "token",
640
1500
  "type": "address"
641
1501
  },
642
1502
  {
643
- "internalType": "bytes",
644
- "name": "registryData",
645
- "type": "bytes"
1503
+ "internalType": "UFixed",
1504
+ "name": "stakingRate",
1505
+ "type": "uint256"
646
1506
  }
647
1507
  ],
648
- "name": "initializeRegisterable",
1508
+ "name": "setStakingRate",
649
1509
  "outputs": [],
650
1510
  "stateMutability": "nonpayable",
651
1511
  "type": "function"
@@ -653,12 +1513,12 @@
653
1513
  {
654
1514
  "inputs": [
655
1515
  {
656
- "internalType": "address",
657
- "name": "registryAddress",
1516
+ "internalType": "contract StakingReader",
1517
+ "name": "stakingReader",
658
1518
  "type": "address"
659
1519
  }
660
1520
  ],
661
- "name": "initializeRegistryLinked",
1521
+ "name": "setStakingReader",
662
1522
  "outputs": [],
663
1523
  "stateMutability": "nonpayable",
664
1524
  "type": "function"
@@ -666,38 +1526,24 @@
666
1526
  {
667
1527
  "inputs": [
668
1528
  {
669
- "internalType": "address",
670
- "name": "activatedBy",
671
- "type": "address"
1529
+ "internalType": "NftId",
1530
+ "name": "stakeNftId",
1531
+ "type": "uint96"
672
1532
  },
673
1533
  {
674
- "internalType": "bytes",
675
- "name": "data",
676
- "type": "bytes"
1534
+ "internalType": "Amount",
1535
+ "name": "stakeAmount",
1536
+ "type": "uint96"
677
1537
  }
678
1538
  ],
679
- "name": "initializeVersionable",
680
- "outputs": [],
681
- "stateMutability": "nonpayable",
682
- "type": "function"
683
- },
684
- {
685
- "inputs": [],
686
- "name": "isConsumingScheduledOp",
1539
+ "name": "stake",
687
1540
  "outputs": [
688
1541
  {
689
- "internalType": "bytes4",
690
- "name": "",
691
- "type": "bytes4"
1542
+ "internalType": "Amount",
1543
+ "name": "stakeBalance",
1544
+ "type": "uint96"
692
1545
  }
693
1546
  ],
694
- "stateMutability": "view",
695
- "type": "function"
696
- },
697
- {
698
- "inputs": [],
699
- "name": "linkToRegisteredNftId",
700
- "outputs": [],
701
1547
  "stateMutability": "nonpayable",
702
1548
  "type": "function"
703
1549
  },
@@ -709,33 +1555,60 @@
709
1555
  "type": "bytes4"
710
1556
  }
711
1557
  ],
712
- "name": "registerInterface",
713
- "outputs": [],
714
- "stateMutability": "nonpayable",
1558
+ "name": "supportsInterface",
1559
+ "outputs": [
1560
+ {
1561
+ "internalType": "bool",
1562
+ "name": "",
1563
+ "type": "bool"
1564
+ }
1565
+ ],
1566
+ "stateMutability": "view",
715
1567
  "type": "function"
716
1568
  },
717
1569
  {
718
1570
  "inputs": [
719
1571
  {
720
- "internalType": "address",
721
- "name": "newAuthority",
722
- "type": "address"
1572
+ "internalType": "NftId",
1573
+ "name": "stakeNftId",
1574
+ "type": "uint96"
1575
+ }
1576
+ ],
1577
+ "name": "unstake",
1578
+ "outputs": [
1579
+ {
1580
+ "internalType": "Amount",
1581
+ "name": "unstakedAmount",
1582
+ "type": "uint96"
1583
+ },
1584
+ {
1585
+ "internalType": "Amount",
1586
+ "name": "rewardsClaimedAmount",
1587
+ "type": "uint96"
723
1588
  }
724
1589
  ],
725
- "name": "setAuthority",
726
- "outputs": [],
727
1590
  "stateMutability": "nonpayable",
728
1591
  "type": "function"
729
1592
  },
730
1593
  {
731
1594
  "inputs": [
1595
+ {
1596
+ "internalType": "NftId",
1597
+ "name": "targetNftId",
1598
+ "type": "uint96"
1599
+ },
732
1600
  {
733
1601
  "internalType": "address",
734
- "name": "newWallet",
1602
+ "name": "token",
735
1603
  "type": "address"
1604
+ },
1605
+ {
1606
+ "internalType": "Amount",
1607
+ "name": "amount",
1608
+ "type": "uint96"
736
1609
  }
737
1610
  ],
738
- "name": "setWallet",
1611
+ "name": "updateRemoteTvl",
739
1612
  "outputs": [],
740
1613
  "stateMutability": "nonpayable",
741
1614
  "type": "function"
@@ -743,20 +1616,14 @@
743
1616
  {
744
1617
  "inputs": [
745
1618
  {
746
- "internalType": "bytes4",
747
- "name": "interfaceId",
748
- "type": "bytes4"
749
- }
750
- ],
751
- "name": "supportsInterface",
752
- "outputs": [
753
- {
754
- "internalType": "bool",
755
- "name": "",
756
- "type": "bool"
1619
+ "internalType": "NftId",
1620
+ "name": "stakeNftId",
1621
+ "type": "uint96"
757
1622
  }
758
1623
  ],
759
- "stateMutability": "view",
1624
+ "name": "updateRewards",
1625
+ "outputs": [],
1626
+ "stateMutability": "nonpayable",
760
1627
  "type": "function"
761
1628
  },
762
1629
  {
@@ -771,20 +1638,116 @@
771
1638
  "outputs": [],
772
1639
  "stateMutability": "nonpayable",
773
1640
  "type": "function"
1641
+ },
1642
+ {
1643
+ "inputs": [
1644
+ {
1645
+ "internalType": "NftId",
1646
+ "name": "targetNftId",
1647
+ "type": "uint96"
1648
+ },
1649
+ {
1650
+ "internalType": "Amount",
1651
+ "name": "dipAmount",
1652
+ "type": "uint96"
1653
+ }
1654
+ ],
1655
+ "name": "withdrawRewardReserves",
1656
+ "outputs": [
1657
+ {
1658
+ "internalType": "Amount",
1659
+ "name": "newBalance",
1660
+ "type": "uint96"
1661
+ }
1662
+ ],
1663
+ "stateMutability": "nonpayable",
1664
+ "type": "function"
774
1665
  }
775
1666
  ],
776
- "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b612a3e80620000e06000396000f3fe60806040523480156200001157600080fd5b5060043610620001f55760003560e01c80635ab1bd5311620001195780638fb3603711620000af578063deaa59df116200007a578063deaa59df1462000504578063e904ec66146200051b578063ea15869f1462000532578063f7c34ee0146200054957600080fd5b80638fb360371462000492578063ada9652e14620004b6578063bf7e214f14620004cd578063c574141014620004ed57600080fd5b8063675393bf11620000f0578063675393bf146200044357806369aff9af146200045a5780637a9e5e4b1462000471578063893d20e8146200048857600080fd5b80635ab1bd5314620003e0578063614d08f814620003f2578063644c45e0146200041957600080fd5b8063214cdb80116200018f578063329d6e741162000166578063329d6e74146200037757806336fc697e146200038e57806343d752d3146200039857806349bb9e4b14620003c957600080fd5b8063214cdb80146200031857806321df0da7146200032f57806327bb7a33146200036057600080fd5b80631329960411620001d0578063132996041462000277578063138461e014620002bc57806317d7de7c14620002c85780631eff4b2214620002e157600080fd5b806301ffc9a714620001fa5780630d8e6e2c146200023f5780630fec111c146200025e575b600080fd5b6200022a6200020b36600462001c67565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6200024962000560565b60405162ffffff909116815260200162000236565b62000268620005ed565b60405162000236919062001ce7565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f03546001600160a01b03165b6040516001600160a01b03909116815260200162000236565b620002c66200074a565b005b620002d26200095f565b60405162000236919062001d75565b620003097f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200162000236565b620002c66200032936600462001c67565b62000a07565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f01546001600160a01b0316620002a3565b620002c66200037136600462001ead565b62000a36565b620002c66200038836600462001f51565b62000ae1565b620002c662000c39565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f02546001600160a01b0316620002a3565b620002c6620003da36600462001f89565b62000c81565b6001546001600160a01b0316620002a3565b620002d2604051806040016040528060078152602001665374616b696e6760c81b81525081565b60008051602062002989833981519152546040516001600160601b03909116815260200162000236565b620002c66200045436600462001fde565b62000d89565b620002c66200046b36600462001ffe565b62000ea2565b620002c66200048236600462001fde565b62000f29565b620002a362000fcb565b6200049c6200110a565b6040516001600160e01b0319909116815260200162000236565b620003096000805160206200298983398151915281565b600080516020620029c9833981519152546001600160a01b0316620002a3565b620002c6620004fe36600462002018565b62001145565b620002c66200051536600462001fde565b6200126d565b620002c66200052c36600462002109565b620015d4565b62000309600080516020620029a983398151915281565b620002c66200055a36600462002138565b6200172c565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015620005c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005e8919062002176565b905090565b6040805160e0808201835260008083526020830181905282840181905260608084018290526080840182905260a0840182905260c0840152835191820190935290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa300919081906001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016200069e62000fcb565b6001600160a01b03168152602001826001018054620006bd906200219d565b80601f0160208091040260200160405190810160405280929190818152602001828054620006eb906200219d565b80156200073c5780601f1062000710576101008083540402835291602001916200073c565b820191906000526020600020905b8154815290600101906020018083116200071e57829003601f168201915b505050505081525091505090565b60006000805160206200298983398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015620007bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007e19190620021d9565b15620008135780546040516301ab8b6760e21b81526001600160601b0390911660048201526024015b60405180910390fd5b30620008276001546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa15801562000870573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008969190620021d9565b620008c05760405163b9304b0d60e01b81526001600160a01b03821660048201526024016200080a565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa15801562000915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200093b9190620021f9565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b6060600080516020620029a983398151915280546200097e906200219d565b80601f0160208091040260200160405190810160405280929190818152602001828054620009ac906200219d565b8015620009fd5780601f10620009d157610100808354040283529160200191620009fd565b820191906000526020600020905b815481529060010190602001808311620009df57829003601f168201915b5050505050905090565b62000a11620017ab565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b62000a40620017ab565b62000a4c82876200172c565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30162000ad783826200226b565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c62000b0562000560565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801562000b46573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b6c919062002337565b600080516020620029e98339815191528054600160401b900460ff168062000ba1575080546001600160401b03808416911610155b1562000bc05760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815562000bec83620017e6565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a1505050565b62000c43620017ab565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b600080516020620029e98339815191528054600160401b810460ff1615906001600160401b031660008115801562000cb65750825b90506000826001600160401b0316600114801562000cd35750303b155b90508115801562000ce2575080155b1562000d015760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562000d2c57845460ff60401b1916600160401b1785555b62000d388787620017f0565b831562000d8057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b62000d93620017ab565b806001600160a01b03163b60000362000dcb5760405163fdeac91f60e01b81526001600160a01b03821660048201526024016200080a565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152631373a18560e31b60048201526301ffc9a790602401602060405180830381865afa92505050801562000e48575060408051601f3d908101601f1916820190925262000e4591810190620021d9565b60015b62000e725760405163fdeac91f60e01b81526001600160a01b03821660048201526024016200080a565b8062000e9d5760405163fdeac91f60e01b81526001600160a01b03831660048201526024016200080a565b505b50565b62000eac62000fcb565b6001600160a01b0316336001600160a01b03161462000ee15760405163086391f760e31b81523360048201526024016200080a565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0154600080516020620029a98339815191529062000e9d906001600160a01b031683620015d4565b3362000f4b600080516020620029c9833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b03161462000f885760405162d1953b60e31b81526001600160a01b03821660048201526024016200080a565b816001600160a01b03163b60000362000fc0576040516361798f2f60e11b81526001600160a01b03831660048201526024016200080a565b62000e9d82620019b8565b6000806000805160206200298983398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156200103d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010639190620021d9565b15620010f4576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015620010c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010ee919062002362565b91505090565b54600160601b90046001600160a01b0316919050565b600080516020620029c9833981519152805460009190600160a01b900460ff1662001137576000620010ee565b638fb3603760e01b91505090565b6200114f620017ab565b6200115f88888686868662000a36565b6200116a8962001a1a565b6001600160a01b03851662001192576040516327eab2e360e11b815260040160405180910390fd5b600080516020620029a983398151915280620011af88826200226b565b50600381018054306001600160a01b0319918216179091556001820180549091166001600160a01b0388161790556040518690620011ed9062001c59565b6001600160a01b039091168152602001604051809103906000f0801580156200121a573d6000803e3d6000fd5b506002820180546001600160a01b0319166001600160a01b03929092169190911790556200124f634a531f3360e01b62000a07565b6200126163347ceddf60e21b62000a07565b50505050505050505050565b6200127762000fcb565b6001600160a01b0316336001600160a01b031614620012ac5760405163086391f760e31b81523360048201526024016200080a565b6000600080516020620029a9833981519152600381015460018201546040516370a0823160e01b81526001600160a01b0392831660048201819052939450600092909116906370a0823190602401602060405180830381865afa15801562001318573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200133e919062002382565b90506001600160a01b038416620013685760405163185a690f60e11b815260040160405180910390fd5b816001600160a01b0316846001600160a01b0316036200139b5760405163ade4578160e01b815260040160405180910390fd5b801562001475576001600160a01b038216301462001475576001830154604051636eb1769f60e11b81526001600160a01b038481166004830152306024830152600092169063dd62ed3e90604401602060405180830381865afa15801562001407573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200142d919062002382565b90508181101562001473576040516372c963b360e11b81526001600160a01b0380851660048301528616602482015260448101829052606481018390526084016200080a565b505b6003830180546001600160a01b0319166001600160a01b0386811691821790925560408051928516835260208301919091527f610ad1290dceadae2c5ce18bae2eb495be595083a257fac7414e50686f7c2650910160405180910390a18015620015ce57306001600160a01b038316036200156657600183015460405163095ea7b360e01b8152306004820152602481018390526001600160a01b039091169063095ea7b3906044016020604051808303816000875af11580156200153e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015649190620021d9565b505b600183015462001582906001600160a01b031683868462001a2f565b604080516001600160a01b038085168252861660208201529081018290527f8f925ed35e36754081a3353f30c5686c405280f94d1cfe322ee5707833d898679060600160405180910390a15b50505050565b620015de62000fcb565b6001600160a01b0316336001600160a01b031614620016135760405163086391f760e31b81523360048201526024016200080a565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0354600080516020620029a9833981519152906001600160a01b031630146200166f5760405163b6d7537f60e01b815260040160405180910390fd5b600281015460405163095ea7b360e01b81526001600160a01b039182166004820152602481018490529084169063095ea7b3906044016020604051808303816000875af1158015620016c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016eb9190620021d9565b50604080516001600160a01b0385168152602081018490527f2384a42fdaabc7c18091b047d32d817d2ead07cae899963c6bcf9ab42aff85d4910162000c2c565b62001736620017ab565b620017418162000d89565b6200174b62000c39565b6001600160a01b038216620017735760405163f17ef42d60e01b815260040160405180910390fd5b506000805160206200298983398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b600080516020620029e983398151915254600160401b900460ff16620017e457604051631afcd79f60e31b815260040160405180910390fd5b565b620001f5620017ab565b600080516020620029e98339815191528054600160401b810460ff1615906001600160401b0316600081158015620018255750825b90506000826001600160401b03166001148015620018425750303b155b90508115801562001851575080155b15620018705760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156200189b57845460ff60401b1916600160401b1785555b60008060008089806020019051810190620018b791906200239c565b9350935093509350620019648484856001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200192a9190620021f9565b6040805180820190915260078152665374616b696e6760c81b602082015286602d6000886040518060200160405280600081525062001145565b62001970600062000a07565b50505050831562000d8057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200162000d77565b600080516020620029c983398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b62001a24620017ab565b62000e9f8162001a8b565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052620015ce90859062001aa0565b62001a95620017ab565b62000e9f81620019b8565b600062001ab76001600160a01b0384168362001b0f565b9050805160001415801562001adf57508080602001905181019062001add9190620021d9565b155b1562001b0a57604051635274afe760e01b81526001600160a01b03841660048201526024016200080a565b505050565b606062001b1f8383600062001b26565b9392505050565b60608147101562001b4d5760405163cd78605960e01b81523060048201526024016200080a565b600080856001600160a01b0316848660405162001b6b919062002404565b60006040518083038185875af1925050503d806000811462001baa576040519150601f19603f3d011682016040523d82523d6000602084013e62001baf565b606091505b509150915062001bc186838362001bcb565b9695505050505050565b60608262001be45762001bde8262001c2f565b62001b1f565b815115801562001bfc57506001600160a01b0384163b155b1562001c2757604051639996b31560e01b81526001600160a01b03851660048201526024016200080a565b508062001b1f565b80511562001c405780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b610566806200242383390190565b60006020828403121562001c7a57600080fd5b81356001600160e01b03198116811462001b1f57600080fd5b60005b8381101562001cb057818101518382015260200162001c96565b50506000910152565b6000815180845262001cd381602086016020860162001c93565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015162001d5160c08401826001600160a01b03169052565b5060c083015160e08084015262001d6d61010084018262001cb9565b949350505050565b60208152600062001b1f602083018462001cb9565b6001600160a01b038116811462000e9f57600080fd5b803562001dad8162001d8a565b919050565b6001600160601b038116811462000e9f57600080fd5b803562001dad8162001db2565b803560ff8116811462001dad57600080fd5b801515811462000e9f57600080fd5b803562001dad8162001de7565b634e487b7160e01b600052604160045260246000fd5b600082601f83011262001e2b57600080fd5b81356001600160401b038082111562001e485762001e4862001e03565b604051601f8301601f19908116603f0116810190828211818310171562001e735762001e7362001e03565b8160405283815286602085880101111562001e8d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c0878903121562001ec757600080fd5b863562001ed48162001d8a565b9550602087013562001ee68162001db2565b945062001ef66040880162001dd5565b9350606087013562001f088162001de7565b9250608087013562001f1a8162001d8a565b915060a08701356001600160401b0381111562001f3657600080fd5b62001f4489828a0162001e19565b9150509295509295509295565b60006020828403121562001f6457600080fd5b81356001600160401b0381111562001f7b57600080fd5b62001d6d8482850162001e19565b6000806040838503121562001f9d57600080fd5b823562001faa8162001d8a565b915060208301356001600160401b0381111562001fc657600080fd5b62001fd48582860162001e19565b9150509250929050565b60006020828403121562001ff157600080fd5b813562001b1f8162001d8a565b6000602082840312156200201157600080fd5b5035919050565b60008060008060008060008060006101208a8c0312156200203857600080fd5b8935620020458162001d8a565b985060208a0135620020578162001d8a565b97506200206760408b0162001dc8565b965060608a01356001600160401b03808211156200208457600080fd5b620020928d838e0162001e19565b9750620020a260808d0162001da0565b9650620020b260a08d0162001dd5565b9550620020c260c08d0162001df6565b9450620020d260e08d0162001da0565b93506101008c0135915080821115620020ea57600080fd5b50620020f98c828d0162001e19565b9150509295985092959850929598565b600080604083850312156200211d57600080fd5b82356200212a8162001d8a565b946020939093013593505050565b600080604083850312156200214c57600080fd5b8235620021598162001d8a565b915060208301356200216b8162001d8a565b809150509250929050565b6000602082840312156200218957600080fd5b815162ffffff8116811462001b1f57600080fd5b600181811c90821680620021b257607f821691505b602082108103620021d357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215620021ec57600080fd5b815162001b1f8162001de7565b6000602082840312156200220c57600080fd5b815162001b1f8162001db2565b601f82111562001b0a57600081815260208120601f850160051c81016020861015620022425750805b601f850160051c820191505b8181101562002263578281556001016200224e565b505050505050565b81516001600160401b0381111562002287576200228762001e03565b6200229f816200229884546200219d565b8462002219565b602080601f831160018114620022d75760008415620022be5750858301515b600019600386901b1c1916600185901b17855562002263565b600085815260208120601f198616915b828110156200230857888601518255948401946001909101908401620022e7565b5085821015620023275787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200234a57600080fd5b81516001600160401b038116811462001b1f57600080fd5b6000602082840312156200237557600080fd5b815162001b1f8162001d8a565b6000602082840312156200239557600080fd5b5051919050565b60008060008060808587031215620023b357600080fd5b8451620023c08162001d8a565b6020860151909450620023d38162001d8a565b6040860151909350620023e68162001d8a565b6060860151909250620023f98162001d8a565b939692955090935050565b600082516200241881846020870162001c93565b919091019291505056fe608060405234801561001057600080fd5b5060405161056638038061056683398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6104d3806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806321df0da7146100465780638d7271c314610065578063c661667d1461007a575b600080fd5b600054604080516001600160a01b039092168252519081900360200190f35b61007861007336600461039c565b61008d565b005b6100786100883660046103f0565b61011f565b60405163046e44af60e11b81526001600160601b03821660048201526101199085908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024015b602060405180830381865af41580156100f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101149190610433565b610179565b50505050565b60005460405163046e44af60e11b81526001600160601b0383166004820152610174916001600160a01b0316908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024016100d3565b505050565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b179052610119918691906000906101df90841683610232565b90508051600014158015610204575080806020019051810190610202919061044c565b155b1561017457604051635274afe760e01b81526001600160a01b03841660048201526024015b60405180910390fd5b606061024083836000610247565b9392505050565b60608147101561026c5760405163cd78605960e01b8152306004820152602401610229565b600080856001600160a01b03168486604051610288919061046e565b60006040518083038185875af1925050503d80600081146102c5576040519150601f19603f3d011682016040523d82523d6000602084013e6102ca565b606091505b50915091506102da8683836102e4565b9695505050505050565b6060826102f9576102f482610340565b610240565b815115801561031057506001600160a01b0384163b155b1561033957604051639996b31560e01b81526001600160a01b0385166004820152602401610229565b5080610240565b8051156103505780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461038057600080fd5b919050565b80356001600160601b038116811461038057600080fd5b600080600080608085870312156103b257600080fd5b6103bb85610369565b93506103c960208601610369565b92506103d760408601610369565b91506103e560608601610385565b905092959194509250565b60008060006060848603121561040557600080fd5b61040e84610369565b925061041c60208501610369565b915061042a60408501610385565b90509250925092565b60006020828403121561044557600080fd5b5051919050565b60006020828403121561045e57600080fd5b8151801515811461024057600080fd5b6000825160005b8181101561048f5760208186018101518583015201610475565b50600092019182525091905056fea264697066735822122025579a2602fa5db2550453304515e7c60de378dfd4563e6ffc1cf0a0a01ff5d264736f6c6343000814003307ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00ffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212209e424968791870c6608699f457b67a009d281b9066eefdfca3bbb2397c3e5f8f64736f6c63430008140033",
777
- "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620001f55760003560e01c80635ab1bd5311620001195780638fb3603711620000af578063deaa59df116200007a578063deaa59df1462000504578063e904ec66146200051b578063ea15869f1462000532578063f7c34ee0146200054957600080fd5b80638fb360371462000492578063ada9652e14620004b6578063bf7e214f14620004cd578063c574141014620004ed57600080fd5b8063675393bf11620000f0578063675393bf146200044357806369aff9af146200045a5780637a9e5e4b1462000471578063893d20e8146200048857600080fd5b80635ab1bd5314620003e0578063614d08f814620003f2578063644c45e0146200041957600080fd5b8063214cdb80116200018f578063329d6e741162000166578063329d6e74146200037757806336fc697e146200038e57806343d752d3146200039857806349bb9e4b14620003c957600080fd5b8063214cdb80146200031857806321df0da7146200032f57806327bb7a33146200036057600080fd5b80631329960411620001d0578063132996041462000277578063138461e014620002bc57806317d7de7c14620002c85780631eff4b2214620002e157600080fd5b806301ffc9a714620001fa5780630d8e6e2c146200023f5780630fec111c146200025e575b600080fd5b6200022a6200020b36600462001c67565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6200024962000560565b60405162ffffff909116815260200162000236565b62000268620005ed565b60405162000236919062001ce7565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f03546001600160a01b03165b6040516001600160a01b03909116815260200162000236565b620002c66200074a565b005b620002d26200095f565b60405162000236919062001d75565b620003097f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200162000236565b620002c66200032936600462001c67565b62000a07565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f01546001600160a01b0316620002a3565b620002c66200037136600462001ead565b62000a36565b620002c66200038836600462001f51565b62000ae1565b620002c662000c39565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f02546001600160a01b0316620002a3565b620002c6620003da36600462001f89565b62000c81565b6001546001600160a01b0316620002a3565b620002d2604051806040016040528060078152602001665374616b696e6760c81b81525081565b60008051602062002989833981519152546040516001600160601b03909116815260200162000236565b620002c66200045436600462001fde565b62000d89565b620002c66200046b36600462001ffe565b62000ea2565b620002c66200048236600462001fde565b62000f29565b620002a362000fcb565b6200049c6200110a565b6040516001600160e01b0319909116815260200162000236565b620003096000805160206200298983398151915281565b600080516020620029c9833981519152546001600160a01b0316620002a3565b620002c6620004fe36600462002018565b62001145565b620002c66200051536600462001fde565b6200126d565b620002c66200052c36600462002109565b620015d4565b62000309600080516020620029a983398151915281565b620002c66200055a36600462002138565b6200172c565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015620005c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005e8919062002176565b905090565b6040805160e0808201835260008083526020830181905282840181905260608084018290526080840182905260a0840182905260c0840152835191820190935290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa300919081906001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016200069e62000fcb565b6001600160a01b03168152602001826001018054620006bd906200219d565b80601f0160208091040260200160405190810160405280929190818152602001828054620006eb906200219d565b80156200073c5780601f1062000710576101008083540402835291602001916200073c565b820191906000526020600020905b8154815290600101906020018083116200071e57829003601f168201915b505050505081525091505090565b60006000805160206200298983398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015620007bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007e19190620021d9565b15620008135780546040516301ab8b6760e21b81526001600160601b0390911660048201526024015b60405180910390fd5b30620008276001546001600160a01b031690565b60405163c3c5a54760e01b81526001600160a01b038381166004830152919091169063c3c5a54790602401602060405180830381865afa15801562000870573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008969190620021d9565b620008c05760405163b9304b0d60e01b81526001600160a01b03821660048201526024016200080a565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038381166004830152919091169063d272ac1e90602401602060405180830381865afa15801562000915573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200093b9190620021f9565b82546bffffffffffffffffffffffff19166001600160601b03919091161790915550565b6060600080516020620029a983398151915280546200097e906200219d565b80601f0160208091040260200160405190810160405280929190818152602001828054620009ac906200219d565b8015620009fd5780601f10620009d157610100808354040283529160200191620009fd565b820191906000526020600020905b815481529060010190602001808311620009df57829003601f168201915b5050505050905090565b62000a11620017ab565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b62000a40620017ab565b62000a4c82876200172c565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30162000ad783826200226b565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c62000b0562000560565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801562000b46573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b6c919062002337565b600080516020620029e98339815191528054600160401b900460ff168062000ba1575080546001600160401b03808416911610155b1562000bc05760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815562000bec83620017e6565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a1505050565b62000c43620017ab565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b600080516020620029e98339815191528054600160401b810460ff1615906001600160401b031660008115801562000cb65750825b90506000826001600160401b0316600114801562000cd35750303b155b90508115801562000ce2575080155b1562000d015760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562000d2c57845460ff60401b1916600160401b1785555b62000d388787620017f0565b831562000d8057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b62000d93620017ab565b806001600160a01b03163b60000362000dcb5760405163fdeac91f60e01b81526001600160a01b03821660048201526024016200080a565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b8152631373a18560e31b60048201526301ffc9a790602401602060405180830381865afa92505050801562000e48575060408051601f3d908101601f1916820190925262000e4591810190620021d9565b60015b62000e725760405163fdeac91f60e01b81526001600160a01b03821660048201526024016200080a565b8062000e9d5760405163fdeac91f60e01b81526001600160a01b03831660048201526024016200080a565b505b50565b62000eac62000fcb565b6001600160a01b0316336001600160a01b03161462000ee15760405163086391f760e31b81523360048201526024016200080a565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0154600080516020620029a98339815191529062000e9d906001600160a01b031683620015d4565b3362000f4b600080516020620029c9833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b03161462000f885760405162d1953b60e31b81526001600160a01b03821660048201526024016200080a565b816001600160a01b03163b60000362000fc0576040516361798f2f60e11b81526001600160a01b03831660048201526024016200080a565b62000e9d82620019b8565b6000806000805160206200298983398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156200103d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010639190620021d9565b15620010f4576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015620010c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010ee919062002362565b91505090565b54600160601b90046001600160a01b0316919050565b600080516020620029c9833981519152805460009190600160a01b900460ff1662001137576000620010ee565b638fb3603760e01b91505090565b6200114f620017ab565b6200115f88888686868662000a36565b6200116a8962001a1a565b6001600160a01b03851662001192576040516327eab2e360e11b815260040160405180910390fd5b600080516020620029a983398151915280620011af88826200226b565b50600381018054306001600160a01b0319918216179091556001820180549091166001600160a01b0388161790556040518690620011ed9062001c59565b6001600160a01b039091168152602001604051809103906000f0801580156200121a573d6000803e3d6000fd5b506002820180546001600160a01b0319166001600160a01b03929092169190911790556200124f634a531f3360e01b62000a07565b6200126163347ceddf60e21b62000a07565b50505050505050505050565b6200127762000fcb565b6001600160a01b0316336001600160a01b031614620012ac5760405163086391f760e31b81523360048201526024016200080a565b6000600080516020620029a9833981519152600381015460018201546040516370a0823160e01b81526001600160a01b0392831660048201819052939450600092909116906370a0823190602401602060405180830381865afa15801562001318573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200133e919062002382565b90506001600160a01b038416620013685760405163185a690f60e11b815260040160405180910390fd5b816001600160a01b0316846001600160a01b0316036200139b5760405163ade4578160e01b815260040160405180910390fd5b801562001475576001600160a01b038216301462001475576001830154604051636eb1769f60e11b81526001600160a01b038481166004830152306024830152600092169063dd62ed3e90604401602060405180830381865afa15801562001407573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200142d919062002382565b90508181101562001473576040516372c963b360e11b81526001600160a01b0380851660048301528616602482015260448101829052606481018390526084016200080a565b505b6003830180546001600160a01b0319166001600160a01b0386811691821790925560408051928516835260208301919091527f610ad1290dceadae2c5ce18bae2eb495be595083a257fac7414e50686f7c2650910160405180910390a18015620015ce57306001600160a01b038316036200156657600183015460405163095ea7b360e01b8152306004820152602481018390526001600160a01b039091169063095ea7b3906044016020604051808303816000875af11580156200153e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620015649190620021d9565b505b600183015462001582906001600160a01b031683868462001a2f565b604080516001600160a01b038085168252861660208201529081018290527f8f925ed35e36754081a3353f30c5686c405280f94d1cfe322ee5707833d898679060600160405180910390a15b50505050565b620015de62000fcb565b6001600160a01b0316336001600160a01b031614620016135760405163086391f760e31b81523360048201526024016200080a565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0354600080516020620029a9833981519152906001600160a01b031630146200166f5760405163b6d7537f60e01b815260040160405180910390fd5b600281015460405163095ea7b360e01b81526001600160a01b039182166004820152602481018490529084169063095ea7b3906044016020604051808303816000875af1158015620016c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016eb9190620021d9565b50604080516001600160a01b0385168152602081018490527f2384a42fdaabc7c18091b047d32d817d2ead07cae899963c6bcf9ab42aff85d4910162000c2c565b62001736620017ab565b620017418162000d89565b6200174b62000c39565b6001600160a01b038216620017735760405163f17ef42d60e01b815260040160405180910390fd5b506000805160206200298983398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b600080516020620029e983398151915254600160401b900460ff16620017e457604051631afcd79f60e31b815260040160405180910390fd5b565b620001f5620017ab565b600080516020620029e98339815191528054600160401b810460ff1615906001600160401b0316600081158015620018255750825b90506000826001600160401b03166001148015620018425750303b155b90508115801562001851575080155b15620018705760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156200189b57845460ff60401b1916600160401b1785555b60008060008089806020019051810190620018b791906200239c565b9350935093509350620019648484856001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001904573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200192a9190620021f9565b6040805180820190915260078152665374616b696e6760c81b602082015286602d6000886040518060200160405280600081525062001145565b62001970600062000a07565b50505050831562000d8057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200162000d77565b600080516020620029c983398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b62001a24620017ab565b62000e9f8162001a8b565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052620015ce90859062001aa0565b62001a95620017ab565b62000e9f81620019b8565b600062001ab76001600160a01b0384168362001b0f565b9050805160001415801562001adf57508080602001905181019062001add9190620021d9565b155b1562001b0a57604051635274afe760e01b81526001600160a01b03841660048201526024016200080a565b505050565b606062001b1f8383600062001b26565b9392505050565b60608147101562001b4d5760405163cd78605960e01b81523060048201526024016200080a565b600080856001600160a01b0316848660405162001b6b919062002404565b60006040518083038185875af1925050503d806000811462001baa576040519150601f19603f3d011682016040523d82523d6000602084013e62001baf565b606091505b509150915062001bc186838362001bcb565b9695505050505050565b60608262001be45762001bde8262001c2f565b62001b1f565b815115801562001bfc57506001600160a01b0384163b155b1562001c2757604051639996b31560e01b81526001600160a01b03851660048201526024016200080a565b508062001b1f565b80511562001c405780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b610566806200242383390190565b60006020828403121562001c7a57600080fd5b81356001600160e01b03198116811462001b1f57600080fd5b60005b8381101562001cb057818101518382015260200162001c96565b50506000910152565b6000815180845262001cd381602086016020860162001c93565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015162001d5160c08401826001600160a01b03169052565b5060c083015160e08084015262001d6d61010084018262001cb9565b949350505050565b60208152600062001b1f602083018462001cb9565b6001600160a01b038116811462000e9f57600080fd5b803562001dad8162001d8a565b919050565b6001600160601b038116811462000e9f57600080fd5b803562001dad8162001db2565b803560ff8116811462001dad57600080fd5b801515811462000e9f57600080fd5b803562001dad8162001de7565b634e487b7160e01b600052604160045260246000fd5b600082601f83011262001e2b57600080fd5b81356001600160401b038082111562001e485762001e4862001e03565b604051601f8301601f19908116603f0116810190828211818310171562001e735762001e7362001e03565b8160405283815286602085880101111562001e8d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c0878903121562001ec757600080fd5b863562001ed48162001d8a565b9550602087013562001ee68162001db2565b945062001ef66040880162001dd5565b9350606087013562001f088162001de7565b9250608087013562001f1a8162001d8a565b915060a08701356001600160401b0381111562001f3657600080fd5b62001f4489828a0162001e19565b9150509295509295509295565b60006020828403121562001f6457600080fd5b81356001600160401b0381111562001f7b57600080fd5b62001d6d8482850162001e19565b6000806040838503121562001f9d57600080fd5b823562001faa8162001d8a565b915060208301356001600160401b0381111562001fc657600080fd5b62001fd48582860162001e19565b9150509250929050565b60006020828403121562001ff157600080fd5b813562001b1f8162001d8a565b6000602082840312156200201157600080fd5b5035919050565b60008060008060008060008060006101208a8c0312156200203857600080fd5b8935620020458162001d8a565b985060208a0135620020578162001d8a565b97506200206760408b0162001dc8565b965060608a01356001600160401b03808211156200208457600080fd5b620020928d838e0162001e19565b9750620020a260808d0162001da0565b9650620020b260a08d0162001dd5565b9550620020c260c08d0162001df6565b9450620020d260e08d0162001da0565b93506101008c0135915080821115620020ea57600080fd5b50620020f98c828d0162001e19565b9150509295985092959850929598565b600080604083850312156200211d57600080fd5b82356200212a8162001d8a565b946020939093013593505050565b600080604083850312156200214c57600080fd5b8235620021598162001d8a565b915060208301356200216b8162001d8a565b809150509250929050565b6000602082840312156200218957600080fd5b815162ffffff8116811462001b1f57600080fd5b600181811c90821680620021b257607f821691505b602082108103620021d357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215620021ec57600080fd5b815162001b1f8162001de7565b6000602082840312156200220c57600080fd5b815162001b1f8162001db2565b601f82111562001b0a57600081815260208120601f850160051c81016020861015620022425750805b601f850160051c820191505b8181101562002263578281556001016200224e565b505050505050565b81516001600160401b0381111562002287576200228762001e03565b6200229f816200229884546200219d565b8462002219565b602080601f831160018114620022d75760008415620022be5750858301515b600019600386901b1c1916600185901b17855562002263565b600085815260208120601f198616915b828110156200230857888601518255948401946001909101908401620022e7565b5085821015620023275787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200234a57600080fd5b81516001600160401b038116811462001b1f57600080fd5b6000602082840312156200237557600080fd5b815162001b1f8162001d8a565b6000602082840312156200239557600080fd5b5051919050565b60008060008060808587031215620023b357600080fd5b8451620023c08162001d8a565b6020860151909450620023d38162001d8a565b6040860151909350620023e68162001d8a565b6060860151909250620023f98162001d8a565b939692955090935050565b600082516200241881846020870162001c93565b919091019291505056fe608060405234801561001057600080fd5b5060405161056638038061056683398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6104d3806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806321df0da7146100465780638d7271c314610065578063c661667d1461007a575b600080fd5b600054604080516001600160a01b039092168252519081900360200190f35b61007861007336600461039c565b61008d565b005b6100786100883660046103f0565b61011f565b60405163046e44af60e11b81526001600160601b03821660048201526101199085908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024015b602060405180830381865af41580156100f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101149190610433565b610179565b50505050565b60005460405163046e44af60e11b81526001600160601b0383166004820152610174916001600160a01b0316908590859073__$3bac17678db7ae928afa209f2f44deec9c$__906308dc895e906024016100d3565b505050565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092019092526020810180516001600160e01b03166323b872dd60e01b179052610119918691906000906101df90841683610232565b90508051600014158015610204575080806020019051810190610202919061044c565b155b1561017457604051635274afe760e01b81526001600160a01b03841660048201526024015b60405180910390fd5b606061024083836000610247565b9392505050565b60608147101561026c5760405163cd78605960e01b8152306004820152602401610229565b600080856001600160a01b03168486604051610288919061046e565b60006040518083038185875af1925050503d80600081146102c5576040519150601f19603f3d011682016040523d82523d6000602084013e6102ca565b606091505b50915091506102da8683836102e4565b9695505050505050565b6060826102f9576102f482610340565b610240565b815115801561031057506001600160a01b0384163b155b1561033957604051639996b31560e01b81526001600160a01b0385166004820152602401610229565b5080610240565b8051156103505780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461038057600080fd5b919050565b80356001600160601b038116811461038057600080fd5b600080600080608085870312156103b257600080fd5b6103bb85610369565b93506103c960208601610369565b92506103d760408601610369565b91506103e560608601610385565b905092959194509250565b60008060006060848603121561040557600080fd5b61040e84610369565b925061041c60208501610369565b915061042a60408501610385565b90509250925092565b60006020828403121561044557600080fd5b5051919050565b60006020828403121561045e57600080fd5b8151801515811461024057600080fd5b6000825160005b8181101561048f5760208186018101518583015201610475565b50600092019182525091905056fea264697066735822122025579a2602fa5db2550453304515e7c60de378dfd4563e6ffc1cf0a0a01ff5d264736f6c6343000814003307ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00ffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212209e424968791870c6608699f457b67a009d281b9066eefdfca3bbb2397c3e5f8f64736f6c63430008140033",
1667
+ "bytecode": "0x6080604052348015600e575f80fd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b614f5f806100d65f395ff3fe608060405234801561000f575f80fd5b50600436106102e5575f3560e01c8063614d08f811610195578063958697a0116100e4578063caed98971161009e578063dea4ccf211610079578063dea4ccf2146106a2578063e8ce883d146106d5578063ea15869f146106e8578063ea48ce9b1461070f575f80fd5b8063caed989714610674578063d44f8a4b1461067c578063de0eb85f1461068f575f80fd5b8063958697a0146106175780639a7263641461062a578063ad12ad601461063d578063ada9652e14610650578063b423086c14610664578063bf7e214f1461066c575f80fd5b806376b707b71161014f57806386c757541161012a57806386c75754146105d1578063893d20e8146105d95780638fb36037146105e157806390edbd3514610602575f80fd5b806376b707b7146105915780637a9e5e4b146105ab5780637e24ce54146105be575f80fd5b8063614d08f81461050d5780636291423a14610533578063644c45e01461053b5780636c1e9dff146105585780636d387fe41461056b578063719f761a1461057e575f80fd5b806322f3e2d41161025157806349bb9e4b1161020b5780635ab1bd53116101e65780635ab1bd53146104c35780635cbb7d85146104d45780635ecf260f146104e75780635fd1efec146104fa575f80fd5b806349bb9e4b14610495578063562119ee146104a85780635741e5e9146104bb575f80fd5b806322f3e2d4146104395780632a80f6731461044157806331ecc5cc14610454578063329d6e7414610467578063419197fe1461047a57806343d752d31461048d575f80fd5b806313299604116102a257806313299604146103ad578063138461e0146103cd57806317d7de7c146103ed5780631eff4b221461040257806321df0da7146104295780632236684414610431575f80fd5b806301ffc9a7146102e9578063062c9cdf1461032a57806309980bfd1461035f5780630d8e6e2c146103695780630fec111c1461038557806310a0638a1461039a575b5f80fd5b6103156102f736600461427f565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6103517fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0081565b604051908152602001610321565b610367610722565b005b6103716108a2565b60405162ffffff9091168152602001610321565b61038d610929565b60405161032191906142db565b6103676103a836600461437b565b610ae3565b6103b5610bc7565b6040516001600160a01b039091168152602001610321565b6103d5610c2f565b6040516001600160601b039091168152602001610321565b6103f5610c39565b6040516103219190614396565b6103517f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6103b5610c49565b610315610c5b565b610315610d51565b61036761044f3660046143a8565b610dc8565b6103676104623660046143d2565b611032565b610367610475366004614520565b6111dd565b610367610488366004614565565b611327565b6103b5611379565b6103676104a336600461459c565b611394565b6103676104b6366004614608565b611490565b610315611645565b6001546001600160a01b03166103b5565b6103d56104e236600461465f565b611702565b6103676104f536600461467b565b611880565b6103676105083660046146a7565b611aef565b6103f5604051806040016040528060078152602001665374616b696e6760c81b81525081565b6103b5611c54565b5f80516020614eca833981519152546001600160601b03166103d5565b6103d561056636600461465f565b611c6f565b61036761057936600461465f565b611db3565b6103d561058c36600461437b565b612010565b610599612281565b60405160ff9091168152602001610321565b6103676105b93660046146a7565b6122f5565b6103676105cc3660046146c2565b612377565b6103b56123bb565b6103b56123d6565b6105e9612507565b6040516001600160e01b03199091168152602001610321565b61060a61253c565b6040516103219190614750565b6103676106253660046147ad565b612561565b6103676106383660046147da565b6125aa565b61036761064b36600461480f565b6127c0565b6103515f80516020614eca83398151915281565b61060a612862565b6103b5612872565b6103b561288d565b6103d561068a3660046147ad565b6128a5565b6103d561069d36600461465f565b612a34565b6106b56106b036600461437b565b612acf565b604080516001600160601b03938416815292909116602083015201610321565b6103d56106e336600461465f565b612e46565b6103517fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0081565b6103d561071d3660046147ad565b612e9d565b6001546001600160a01b0316331461075457604051632a6e1a8960e01b81523360048201526024015b60405180910390fd5b5f61075d612fe1565b905073__$51089c37ca0df1177a910c640c8c5f8165$__6350c6470d61078b6001546001600160a01b031690565b30610794610c49565b6001546001600160a01b03166001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ff919061486f565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152928416602484015290831660448301529091166064820152608401602060405180830381865af4158015610859573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087d919061486f565b60019190910180546001600160a01b0319166001600160a01b03909216919091179055565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610900573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610924919061488a565b905090565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156109d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f991906148b7565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610a416123d6565b6001600160a01b03168152602001826001018054610a5e906148d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8a906148d2565b8015610ad55780601f10610aac57610100808354040283529160200191610ad5565b820191905f5260205f20905b815481529060010190602001808311610ab857829003601f168201915b505050505081525091505090565b610aef335b5f36613005565b80610af8612fe1565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015610b48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6c9190614919565b610b9457604051632ab4595b60e11b81526001600160601b038216600482015260240161074b565b5f610b9d612fe1565b60038101546002820154919250610bc1916001600160a01b03918216911685613103565b50505050565b5f610bd0611379565b6001600160a01b031663132996046040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610924919061486f565b5f61092430613285565b6060610c4361253c565b51919050565b5f610c5261253c565b60200151905090565b5f610c6e6001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015610cb2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd691906148b7565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610d2d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109249190614919565b5f610d5a612872565b60405163a166aa8960e01b81523060048201526001600160a01b03919091169063a166aa8990602401602060405180830381865afa158015610d9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc29190614919565b15905090565b610dd133610ae8565b81610dda612fe1565b6002015f9054906101000a90046001600160a01b03166001600160a01b0316635cce3fa16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e4f919061486f565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa158015610e9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec09190614919565b610ee8576040516396cff01560e01b81526001600160601b038216600482015260240161074b565b604051633a39e8ad60e21b81523060048201526001600160601b0384166024820152604481018390525f90819073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063e8e7a2b49060640160c060405180830381865af4158015610f4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7391906149a4565b91509150610f7f612fe1565b60020154604051635af7b19b60e01b81526001600160a01b0390911690635af7b19b90610fb290889085906004016149cf565b5f604051808303815f87803b158015610fc9575f80fd5b505af1158015610fdb573d5f803e3d5ffd5b5050604080516001600160601b0389168152602081018690529081018790527f3e76c26439d1ec3386e26dfeebf955ea11f5f5f30459052b70e061ade8c9554f925060600190505b60405180910390a15050505050565b61103b33610ae8565b5f611044612fe1565b6003810154604051630e8d845760e31b81526001600160a01b0390911660048201526001600160601b038086166024830152841660448201529091505f9073__$f048dbd5170c0ac319fa0222065b281d84$__9063746c22b890606401602060405180830381865af41580156110bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e09190614a2b565b60028301546040805160208101825264ffffffffff848116825291516331420df160e11b81526001600160601b038a166004820152905190911660248201529192506001600160a01b0316906362841be2906044015f604051808303815f87803b15801561114c575f80fd5b505af115801561115e573d5f803e3d5ffd5b505050506002820154604051633861317f60e01b81526001600160601b0380881660048301528087166024830152851660448201526001600160a01b0390911690633861317f906064015b5f604051808303815f87803b1580156111c0575f80fd5b505af11580156111d2573d5f803e3d5ffd5b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c6111ff6108a2565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190614a46565b5f80516020614f0a8339815191528054600160401b900460ff1680611293575080546001600160401b03808416911610155b156112b15760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556112db8361347e565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b61133033610ae8565b6113386123d6565b6001600160a01b0316336001600160a01b03161461136b5760405163086391f760e31b815233600482015260240161074b565b6113758282613486565b5050565b5f611382612fe1565b600101546001600160a01b0316919050565b5f80516020614f0a8339815191528054600160401b810460ff1615906001600160401b03165f811580156113c55750825b90505f826001600160401b031660011480156113e05750303b155b9050811580156113ee575080155b1561140c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561143657845460ff60401b1916600160401b1785555b61144087876134f3565b831561148757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b61149933610ae8565b73__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__639ed616cd6114c56001546001600160a01b031690565b6114cd612fe1565b6003015460405160e084901b6001600160e01b03191681526001600160a01b039283166004820152911660248201526001600160601b038816604482015260ff8716606482015264ffffffffff8516608482015260a4810184905260c4015f6040518083038186803b158015611541575f80fd5b505af4158015611553573d5f803e3d5ffd5b5050505061155f612fe1565b6002015f9054906101000a90046001600160a01b03166001600160a01b031663525615b6866040518060a001604052808860ff1681526020018781526020018664ffffffffff16815260200185815260200173__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156115f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161c91906148b7565b6001600160601b03168152506040518363ffffffff1660e01b81526004016111a99291906149cf565b5f61164e610c5b565b156116d2576001546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f0906024015f60405180830381865afa1580156116a2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116c99190810190614ab9565b60600151905090565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0154600160a01b900460ff1690565b5f61170c33610ae8565b82611715612fe1565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015611765573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117899190614919565b6117b157604051632ab4595b60e11b81526001600160601b038216600482015260240161074b565b6117bc84601e6138bf565b6117c783601e6138bf565b5f6117d0612fe1565b6003810154600282015460405163060550e560e41b81526001600160a01b039283166004820152911660248201526001600160601b0380881660448301528616606482015290915073__$f048dbd5170c0ac319fa0222065b281d84$__906360550e50906084015b602060405180830381865af4158015611853573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187791906148b7565b95945050505050565b61188933610ae8565b81611892612fe1565b6002015f9054906101000a90046001600160a01b03166001600160a01b0316635cce3fa16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611907919061486f565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa158015611954573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119789190614919565b6119a0576040516396cff01560e01b81526001600160601b038216600482015260240161074b565b604051635f9c0df360e11b81523060048201526001600160601b038416602482015264ffffffffff831660448201525f90819073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063bf381be69060640160c060405180830381865af4158015611a0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a319190614b89565b91509150611a3d612fe1565b60020154604051635af7b19b60e01b81526001600160a01b0390911690635af7b19b90611a7090889085906004016149cf565b5f604051808303815f87803b158015611a87575f80fd5b505af1158015611a99573d5f803e3d5ffd5b5050604080516001600160601b038916815264ffffffffff80871660208301528816918101919091527fb847665302c1d8b6f507e07b17145514cea04af84e1665d629d82246992311e792506060019050611023565b611af76123d6565b6001600160a01b0316336001600160a01b031614611b2a5760405163086391f760e31b815233600482015260240161074b565b306001600160a01b0316816001600160a01b0316637b1391a66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b94919061486f565b6001600160a01b031614611c2757806001600160a01b0316637b1391a66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bde573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c02919061486f565b604051631641c88f60e11b81526001600160a01b03909116600482015260240161074b565b80611c30612fe1565b60030180546001600160a01b0319166001600160a01b039290921691909117905550565b5f611c5d612fe1565b600301546001600160a01b0316919050565b5f611c7933610ae8565b82611c82612fe1565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015611cd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf69190614919565b611d1e57604051632ab4595b60e11b81526001600160601b038216600482015260240161074b565b5f611d27612fe1565b905073__$f048dbd5170c0ac319fa0222065b281d84$__630fcf5d08611d556001546001600160a01b031690565b6003840154600285015460405160e085901b6001600160e01b03191681526001600160a01b03938416600482015291831660248301529190911660448201526001600160601b0380891660648301528716608482015260a401611838565b611dbc33610ae8565b81611dc5612fe1565b6002015f9054906101000a90046001600160a01b03166001600160a01b0316635cce3fa16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e3a919061486f565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa158015611e87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eab9190614919565b611ed3576040516396cff01560e01b81526001600160601b038216600482015260240161074b565b5f611edc611c54565b60405163153d412560e31b81526001600160601b03861660048201526001600160a01b03919091169063a9ea09289060240160a060405180830381865afa158015611f29573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f4d9190614bb4565b6001600160601b03841660808201529050611f66612fe1565b60020154604051635af7b19b60e01b81526001600160a01b0390911690635af7b19b90611f9990879085906004016149cf565b5f604051808303815f87803b158015611fb0575f80fd5b505af1158015611fc2573d5f803e3d5ffd5b5050604080516001600160601b038089168252871660208201527fad500c174503de7381b30d4ef78eace9ae22e817b4843b07b9b0522a231a75d7935001905060405180910390a150505050565b5f61201a33610ae8565b81612023612fe1565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015612073573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120979190614919565b6120bf57604051632ab4595b60e11b81526001600160601b038216600482015260240161074b565b5f6120c8612fe1565b600381015460028201549192505f916120ee916001600160a01b03908116911687613103565b9050816002015f9054906101000a90046001600160a01b03166001600160a01b0316633fbdfe32868373__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801561215e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061218291906148b7565b60405160e085901b6001600160e01b03191681526001600160601b039384166004820152918316602483015290911660448201526064016020604051808303815f875af11580156121d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f991906148b7565b600283015460405163136cfef760e01b81526001600160601b038085166004830152831660248201529195506001600160a01b03169063136cfef7906044016020604051808303815f875af1158015612254573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061227891906148b7565b50505050919050565b604051632392b61b60e21b8152600360048201525f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af41580156122d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109249190614bce565b336122fe612872565b6001600160a01b0316816001600160a01b0316146123395760405162d1953b60e31b81526001600160a01b038216600482015260240161074b565b816001600160a01b03163b5f0361236e576040516361798f2f60e11b81526001600160a01b038316600482015260240161074b565b61137582613976565b61238033610ae8565b6123886123d6565b6001600160a01b0316336001600160a01b0316146113755760405163086391f760e31b815233600482015260240161074b565b5f6123c4612fe1565b600201546001600160a01b0316919050565b5f805f80516020614eca83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015612442573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124669190614919565b156124f1576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156124c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124eb919061486f565b91505090565b54600160601b90046001600160a01b0316919050565b5f80516020614eea83398151915280545f9190600160a01b900460ff1661252e575f6124eb565b638fb3603760e01b91505090565b612544614247565b61254c610c5b565b15612559576109246139d6565b610924612862565b61256a33610ae8565b6125726123d6565b6001600160a01b0316336001600160a01b0316146125a55760405163086391f760e31b815233600482015260240161074b565b505050565b6125b26123d6565b6001600160a01b0316336001600160a01b0316146125e55760405163086391f760e31b815233600482015260240161074b565b5f6125ee612fe1565b8054604051631703edc360e31b8152600481018790526001600160a01b03868116602483015292935091169063b81f6e1890604401602060405180830381865afa15801561263e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126629190614919565b612691576040516374ddbd6960e01b8152600481018590526001600160a01b038416602482015260440161074b565b6002810154604051637b21556160e01b8152600481018690526001600160a01b0385811660248301525f921690637b21556190604401602060405180830381865afa1580156126e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127069190614be9565b600283015460405163269c98d960e21b8152600481018890526001600160a01b03878116602483015260448201879052929350911690639a726364906064015f604051808303815f87803b15801561275c575f80fd5b505af115801561276e573d5f803e3d5ffd5b5050604080518881526001600160a01b0388166020820152908101849052606081018690527f8075f599388073d04550222731e9c7e00c284a4f858d8a0ffc0657164981c76e92506080019050611023565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015612807573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061282b919061486f565b6001600160a01b0316336001600160a01b03161461285d5760405162f0630960e01b815233600482015260240161074b565b610bc1565b61286a614247565b6109246139d6565b5f80516020614eea833981519152546001600160a01b031690565b5f612896612fe1565b546001600160a01b0316919050565b5f6128af33610ae8565b5f6128b8612fe1565b600381015460405163153d412560e31b81526001600160601b03881660048201529192505f916001600160a01b039091169063a9ea09289060240160a060405180830381865afa15801561290e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129329190614bb4565b602001516003830154604051637b21556160e01b8152600481018390526001600160a01b0388811660248301529293505f9290911690637b21556190604401602060405180830381865afa15801561298c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129b09190614be9565b6002840154604051633ece552760e21b81529192506001600160a01b03169063fb39549c906129e9908a9085908b908b90600401614c00565b6020604051808303815f875af1158015612a05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a2991906148b7565b979650505050505050565b5f612a3e33610ae8565b5f612a47612fe1565b600281015460405163d7537c3760e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063d7537c37906044015b6020604051808303815f875af1158015612aa3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ac791906148b7565b949350505050565b5f80612ada33610ae8565b82612ae3612fe1565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015612b33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b579190614919565b612b7f57604051632ab4595b60e11b81526001600160601b038216600482015260240161074b565b5f612b88612fe1565b600381015460405163b3eff9e160e01b81526001600160a01b0390911660048201526001600160601b038716602482015290915073__$f048dbd5170c0ac319fa0222065b281d84$__9063b3eff9e190604401602060405180830381865af4158015612bf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1a9190614a2b565b50600381015460028201545f91612c3e916001600160a01b03918216911688613103565b9050816002015f9054906101000a90046001600160a01b03166001600160a01b031663eb98e8a0878373__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015612cae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cd291906148b7565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015612d19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d3d91906148b7565b60405160e086901b6001600160e01b03191681526001600160601b03948516600482015292841660248401529083166044830152909116606482015260840160408051808303815f875af1158015612d97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dbb9190614c34565b600284015460405163136cfef760e01b81526001600160601b038086166004830152831660248201529297509095506001600160a01b03169063136cfef7906044016020604051808303815f875af1158015612e19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e3d91906148b7565b50505050915091565b5f612e5033610ae8565b5f612e59612fe1565b600281015460405163136cfef760e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063136cfef790604401612a87565b5f612ea733610ae8565b5f612eb0612fe1565b600381015460405163153d412560e31b81526001600160601b03881660048201529192505f916001600160a01b039091169063a9ea09289060240160a060405180830381865afa158015612f06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f2a9190614bb4565b602001516003830154604051637b21556160e01b8152600481018390526001600160a01b0388811660248301529293505f9290911690637b21556190604401602060405180830381865afa158015612f84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fa89190614be9565b60028401546040516377f9185160e01b81529192506001600160a01b0316906377f91851906129e9908a9085908b908b90600401614c00565b7fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0090565b5f80516020614eea8339815191525f8061303d613020612872565b873061302f60045f8a8c614c61565b61303891614c88565b613ac8565b91509150816130fb5763ffffffff8116156130d857825460ff60a01b1916600160a01b17835561306b612872565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161309a93929190614cc0565b5f604051808303815f87803b1580156130b1575f80fd5b505af11580156130c3573d5f803e3d5ffd5b5050845460ff60a01b19168555506130fb9050565b60405162d1953b60e31b81526001600160a01b038716600482015260240161074b565b505050505050565b6040516312b9a5c960e01b81526001600160601b03821660048201525f9081906001600160a01b038616906312b9a5c9906024016040805180830381865afa158015613151573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131759190614cff565b60405163e048754d60e01b81526001600160a01b03881660048201526001600160601b03861660248201526044810182905291935091505f9073__$f048dbd5170c0ac319fa0222065b281d84$__9063e048754d906064016040805180830381865af41580156131e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061320b9190614c34565b50604051634a2101d160e01b81526001600160601b0380871660048301528086166024830152821660448201529091506001600160a01b03861690634a2101d1906064015f604051808303815f87803b158015613266575f80fd5b505af1158015613278573d5f803e3d5ffd5b5050505050509392505050565b5f805f80516020614eca83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156132f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133159190614919565b156133415780546040516301ab8b6760e21b81526001600160601b03909116600482015260240161074b565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015613393573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133b79190614919565b6133df5760405163b9304b0d60e01b81526001600160a01b038416600482015260240161074b565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015613431573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061345591906148b7565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b6102e5613bd0565b6134906003613c08565b6040516320c8cbff60e11b81526001600160a01b0384811660048301526001600160601b0384166024830152919091169063419197fe906044015f604051808303815f87803b1580156134e1575f80fd5b505af11580156130fb573d5f803e3d5ffd5b5f80516020614f0a8339815191528054600160401b810460ff1615906001600160401b03165f811580156135245750825b90505f826001600160401b0316600114801561353f5750303b155b90508115801561354d575080155b1561356b5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561359557845460ff60401b1916600160401b1785555b5f805f80898060200190518101906135ad9190614d2b565b93509350935093505f8490505f816001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061361a919061486f565b90505f8590505f816001600160a01b031663b201f7096040518163ffffffff1660e01b8152600401602060405180830381865afa15801561365d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613681919061486f565b90505f61368c612fe1565b9050846001600160a01b031663fff74f6c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136ee91906148b7565b6003820180546001600160601b0392909216600160a01b026001600160a01b039283161790556002820180549189166001600160a01b0319929092168217905560408051633148a11d60e11b81529051636291423a916004808201926020929091908290030181865afa158015613767573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061378b919061486f565b6003820180546001600160a01b03199081166001600160a01b039384161790915582541689821617825560408051630322622f60e51b815290516138649287928d92918a169163644c45e0916004808201926020929091908290030181865afa1580156137fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061381e91906148b7565b6040805180820190915260078152665374616b696e6760c81b60208201528660035f8d60405180602001604052805f81525060405180602001604052805f815250613c9f565b613874635ae843b960e01b613f21565b505050505050505050831561148757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200161147e565b6001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa158015613921573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139459190614919565b6113755760405163d711af7560e01b81526001600160601b038316600482015260ff8216602482015260440161074b565b5f80516020614eea83398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6139de614247565b5f7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0090506040518060800160405280825f018054613a1b906148d2565b80601f0160208091040260200160405190810160405280929190818152602001828054613a47906148d2565b8015613a925780601f10613a6957610100808354040283529160200191613a92565b820191905f5260205f20905b815481529060010190602001808311613a7557829003601f168201915b505050918352505060018301546001600160a01b031660208201525f6040820152600283018054606090920191610a5e906148d2565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251613b369190614d7c565b5f60405180830381855afa9150503d805f8114613b6e576040519150601f19603f3d011682016040523d82523d5f602084013e613b73565b606091505b50915091508115613bc5576040815110613ba55780806020019051810190613b9b9190614d92565b9094509250613bc5565b6020815110613bc55780806020019051810190613bc29190614919565b93505b505094509492505050565b5f80516020614f0a83398151915254600160401b900460ff16613c0657604051631afcd79f60e31b815260040160405180910390fd5b565b5f613c1b6001546001600160a01b031690565b6001600160a01b031663d39e604383613c32612281565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613c75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c99919061486f565b92915050565b613ca7613bd0565b5f896001600160a01b031663caed98976040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ce4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d08919061486f565b90505f8b6001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d6b9190614bce565b905060ff8716600314613e3157604051637d482da160e01b81526001600160a01b0380841660048301528916602482015246604482015260ff8216606482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90637d482da190608401602060405180830381865af4158015613de5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e099190614919565b613e3157604051638071294b60e01b81526001600160a01b038916600482015260240161074b565b88515f03613e525760405163591eebf360e11b815260040160405180910390fd5b613e618c8c8c8a8a8a8a613f54565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0080613e8d8b82614e0f565b50600181018054881515600160a01b026001600160a81b03199091166001600160a01b038c161717905560028101613ec58582614e0f565b50613ed0600b613c08565b6003820180546001600160a01b0319166001600160a01b0392909216919091179055613f02634a531f3360e01b613f21565b613f126306e9e5ff60e31b613f21565b50505050505050505050505050565b613f29613bd0565b613f51816001600160e01b0319165f908152602081905260409020805460ff19166001179055565b50565b613f5c613bd0565b604051632330f24760e01b81526001600160a01b038816600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90632330f24790602401602060405180830381865af4158015613fb2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fd69190614919565b613ffe5760405163cf6935e560e01b81526001600160a01b038816600482015260240161074b565b6140078761409b565b61401186836140ac565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b861515021781559050600181016140808382614e0f565b50614091634a531f3360e01b613f21565b5050505050505050565b6140a3613bd0565b613f5181614122565b6140b4613bd0565b6140bc614133565b6140c58261417b565b6001600160a01b0381166140ec5760405163f17ef42d60e01b815260040160405180910390fd5b5f80516020614eca83398151915280546001600160601b0316600160601b6001600160a01b039093169290920291909117905550565b61412a613bd0565b613f5181613976565b61413b613bd0565b613c066301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b614183613bd0565b604051633334d16b60e01b81526001600160a01b038216600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90633334d16b90602401602060405180830381865af41580156141d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141fd9190614919565b6142255760405163fdeac91f60e01b81526001600160a01b038216600482015260240161074b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6040518060800160405280606081526020015f6001600160a01b031681526020015f6001600160a01b03168152602001606081525090565b5f6020828403121561428f575f80fd5b81356001600160e01b0319811681146142a6575f80fd5b9392505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151614323608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612ac76101008401826142ad565b6001600160601b0381168114613f51575f80fd5b5f6020828403121561438b575f80fd5b81356142a681614367565b602081525f6142a660208301846142ad565b5f80604083850312156143b9575f80fd5b82356143c481614367565b946020939093013593505050565b5f805f606084860312156143e4575f80fd5b83356143ef81614367565b925060208401356143ff81614367565b9150604084013561440f81614367565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b03811182821017156144505761445061441a565b60405290565b60405160e081016001600160401b03811182821017156144505761445061441a565b604051601f8201601f191681016001600160401b03811182821017156144a0576144a061441a565b604052919050565b5f6001600160401b038211156144c0576144c061441a565b50601f01601f191660200190565b5f82601f8301126144dd575f80fd5b81356144f06144eb826144a8565b614478565b818152846020838601011115614504575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215614530575f80fd5b81356001600160401b03811115614545575f80fd5b612ac7848285016144ce565b6001600160a01b0381168114613f51575f80fd5b5f8060408385031215614576575f80fd5b823561458181614551565b9150602083013561459181614367565b809150509250929050565b5f80604083850312156145ad575f80fd5b82356145b881614551565b915060208301356001600160401b038111156145d2575f80fd5b6145de858286016144ce565b9150509250929050565b60ff81168114613f51575f80fd5b64ffffffffff81168114613f51575f80fd5b5f805f805f60a0868803121561461c575f80fd5b853561462781614367565b94506020860135614637816145e8565b935060408601359250606086013561464e816145f6565b949793965091946080013592915050565b5f8060408385031215614670575f80fd5b823561458181614367565b5f806040838503121561468c575f80fd5b823561469781614367565b91506020830135614591816145f6565b5f602082840312156146b7575f80fd5b81356142a681614551565b5f8082840360c08112156146d4575f80fd5b83356146df81614367565b925060a0601f19820112156146f2575f80fd5b506146fb61442e565b6020840135614709816145e8565b8152604084013560208201526060840135614723816145f6565b60408201526080840135606082015260a084013561474081614367565b6080820152919491935090915050565b602081525f82516080602084015261476b60a08401826142ad565b60208501516001600160a01b0390811660408681019190915286015116606080860191909152850151848203601f1901608086015290915061187782826142ad565b5f805f606084860312156147bf575f80fd5b83356147ca81614367565b925060208401356143ff81614551565b5f805f606084860312156147ec575f80fd5b8335925060208401356147fe81614551565b929592945050506040919091013590565b5f805f8060808587031215614822575f80fd5b843561482d81614551565b9350602085013561483d81614551565b925060408501359150606085013561485481614551565b939692955090935050565b805161486a81614551565b919050565b5f6020828403121561487f575f80fd5b81516142a681614551565b5f6020828403121561489a575f80fd5b815162ffffff811681146142a6575f80fd5b805161486a81614367565b5f602082840312156148c7575f80fd5b81516142a681614367565b600181811c908216806148e657607f821691505b60208210810361490457634e487b7160e01b5f52602260045260245ffd5b50919050565b8051801515811461486a575f80fd5b5f60208284031215614929575f80fd5b6142a68261490a565b805161486a816145e8565b5f60a0828403121561494d575f80fd5b61495561442e565b90508151614962816145e8565b815260208281015190820152604082015161497c816145f6565b604082015260608281015190820152608082015161499981614367565b608082015292915050565b5f8060c083850312156149b5575f80fd5b825191506149c6846020850161493d565b90509250929050565b5f60c0820190506001600160601b038416825260ff83511660208301526020830151604083015264ffffffffff6040840151166060830152606083015160808301526001600160601b0360808401511660a08301529392505050565b5f60208284031215614a3b575f80fd5b81516142a6816145f6565b5f60208284031215614a56575f80fd5b81516001600160401b03811681146142a6575f80fd5b5f82601f830112614a7b575f80fd5b8151614a896144eb826144a8565b818152846020838601011115614a9d575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215614ac9575f80fd5b81516001600160401b03811115614ade575f80fd5b820160e08185031215614aef575f80fd5b614af7614456565b614b00826148ac565b8152614b0e602083016148ac565b6020820152614b1f60408301614932565b6040820152614b306060830161490a565b6060820152614b416080830161485f565b6080820152614b5260a0830161485f565b60a082015260c08201516001600160401b03811115614b6f575f80fd5b614b7b86828501614a6c565b60c083015250949350505050565b5f8060c08385031215614b9a575f80fd5b8251614ba5816145f6565b91506149c6846020850161493d565b5f60a08284031215614bc4575f80fd5b6142a6838361493d565b5f60208284031215614bde575f80fd5b81516142a6816145e8565b5f60208284031215614bf9575f80fd5b5051919050565b6001600160601b03948516815260208101939093526001600160a01b03919091166040830152909116606082015260800190565b5f8060408385031215614c45575f80fd5b8251614c5081614367565b602084015190925061459181614367565b5f8085851115614c6f575f80fd5b83861115614c7b575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015614cb9576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f8060408385031215614d10575f80fd5b8251614d1b81614367565b6020939093015192949293505050565b5f805f8060808587031215614d3e575f80fd5b8451614d4981614551565b6020860151909450614d5a81614551565b6040860151909350614d6b81614551565b606086015190925061485481614551565b5f82518060208501845e5f920191825250919050565b5f8060408385031215614da3575f80fd5b614dac8361490a565b9150602083015163ffffffff81168114614591575f80fd5b601f8211156125a557805f5260205f20601f840160051c81016020851015614de95750805b601f840160051c820191505b81811015614e08575f8155600101614df5565b5050505050565b81516001600160401b03811115614e2857614e2861441a565b614e3c81614e3684546148d2565b84614dc4565b6020601f821160018114614e6e575f8315614e575750848201515b5f19600385901b1c1916600184901b178455614e08565b5f84815260208120601f198516915b82811015614e9d5787850151825560209485019460019092019101614e7d565b5084821015614eba57868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122058f66c86eaef9102cb69cc38e1b7344574c321ca9815659f7c31335939463acb64736f6c634300081a0033",
1668
+ "deployedBytecode": "0x608060405234801561000f575f80fd5b50600436106102e5575f3560e01c8063614d08f811610195578063958697a0116100e4578063caed98971161009e578063dea4ccf211610079578063dea4ccf2146106a2578063e8ce883d146106d5578063ea15869f146106e8578063ea48ce9b1461070f575f80fd5b8063caed989714610674578063d44f8a4b1461067c578063de0eb85f1461068f575f80fd5b8063958697a0146106175780639a7263641461062a578063ad12ad601461063d578063ada9652e14610650578063b423086c14610664578063bf7e214f1461066c575f80fd5b806376b707b71161014f57806386c757541161012a57806386c75754146105d1578063893d20e8146105d95780638fb36037146105e157806390edbd3514610602575f80fd5b806376b707b7146105915780637a9e5e4b146105ab5780637e24ce54146105be575f80fd5b8063614d08f81461050d5780636291423a14610533578063644c45e01461053b5780636c1e9dff146105585780636d387fe41461056b578063719f761a1461057e575f80fd5b806322f3e2d41161025157806349bb9e4b1161020b5780635ab1bd53116101e65780635ab1bd53146104c35780635cbb7d85146104d45780635ecf260f146104e75780635fd1efec146104fa575f80fd5b806349bb9e4b14610495578063562119ee146104a85780635741e5e9146104bb575f80fd5b806322f3e2d4146104395780632a80f6731461044157806331ecc5cc14610454578063329d6e7414610467578063419197fe1461047a57806343d752d31461048d575f80fd5b806313299604116102a257806313299604146103ad578063138461e0146103cd57806317d7de7c146103ed5780631eff4b221461040257806321df0da7146104295780632236684414610431575f80fd5b806301ffc9a7146102e9578063062c9cdf1461032a57806309980bfd1461035f5780630d8e6e2c146103695780630fec111c1461038557806310a0638a1461039a575b5f80fd5b6103156102f736600461427f565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6103517fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0081565b604051908152602001610321565b610367610722565b005b6103716108a2565b60405162ffffff9091168152602001610321565b61038d610929565b60405161032191906142db565b6103676103a836600461437b565b610ae3565b6103b5610bc7565b6040516001600160a01b039091168152602001610321565b6103d5610c2f565b6040516001600160601b039091168152602001610321565b6103f5610c39565b6040516103219190614396565b6103517f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6103b5610c49565b610315610c5b565b610315610d51565b61036761044f3660046143a8565b610dc8565b6103676104623660046143d2565b611032565b610367610475366004614520565b6111dd565b610367610488366004614565565b611327565b6103b5611379565b6103676104a336600461459c565b611394565b6103676104b6366004614608565b611490565b610315611645565b6001546001600160a01b03166103b5565b6103d56104e236600461465f565b611702565b6103676104f536600461467b565b611880565b6103676105083660046146a7565b611aef565b6103f5604051806040016040528060078152602001665374616b696e6760c81b81525081565b6103b5611c54565b5f80516020614eca833981519152546001600160601b03166103d5565b6103d561056636600461465f565b611c6f565b61036761057936600461465f565b611db3565b6103d561058c36600461437b565b612010565b610599612281565b60405160ff9091168152602001610321565b6103676105b93660046146a7565b6122f5565b6103676105cc3660046146c2565b612377565b6103b56123bb565b6103b56123d6565b6105e9612507565b6040516001600160e01b03199091168152602001610321565b61060a61253c565b6040516103219190614750565b6103676106253660046147ad565b612561565b6103676106383660046147da565b6125aa565b61036761064b36600461480f565b6127c0565b6103515f80516020614eca83398151915281565b61060a612862565b6103b5612872565b6103b561288d565b6103d561068a3660046147ad565b6128a5565b6103d561069d36600461465f565b612a34565b6106b56106b036600461437b565b612acf565b604080516001600160601b03938416815292909116602083015201610321565b6103d56106e336600461465f565b612e46565b6103517fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0081565b6103d561071d3660046147ad565b612e9d565b6001546001600160a01b0316331461075457604051632a6e1a8960e01b81523360048201526024015b60405180910390fd5b5f61075d612fe1565b905073__$51089c37ca0df1177a910c640c8c5f8165$__6350c6470d61078b6001546001600160a01b031690565b30610794610c49565b6001546001600160a01b03166001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ff919061486f565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152928416602484015290831660448301529091166064820152608401602060405180830381865af4158015610859573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087d919061486f565b60019190910180546001600160a01b0319166001600160a01b03909216919091179055565b604051632efe011360e01b8152600360048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610900573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610924919061488a565b905090565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156109d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f991906148b7565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610a416123d6565b6001600160a01b03168152602001826001018054610a5e906148d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8a906148d2565b8015610ad55780601f10610aac57610100808354040283529160200191610ad5565b820191905f5260205f20905b815481529060010190602001808311610ab857829003601f168201915b505050505081525091505090565b610aef335b5f36613005565b80610af8612fe1565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015610b48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6c9190614919565b610b9457604051632ab4595b60e11b81526001600160601b038216600482015260240161074b565b5f610b9d612fe1565b60038101546002820154919250610bc1916001600160a01b03918216911685613103565b50505050565b5f610bd0611379565b6001600160a01b031663132996046040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610924919061486f565b5f61092430613285565b6060610c4361253c565b51919050565b5f610c5261253c565b60200151905090565b5f610c6e6001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa158015610cb2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd691906148b7565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610d2d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109249190614919565b5f610d5a612872565b60405163a166aa8960e01b81523060048201526001600160a01b03919091169063a166aa8990602401602060405180830381865afa158015610d9e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc29190614919565b15905090565b610dd133610ae8565b81610dda612fe1565b6002015f9054906101000a90046001600160a01b03166001600160a01b0316635cce3fa16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e4f919061486f565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa158015610e9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec09190614919565b610ee8576040516396cff01560e01b81526001600160601b038216600482015260240161074b565b604051633a39e8ad60e21b81523060048201526001600160601b0384166024820152604481018390525f90819073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063e8e7a2b49060640160c060405180830381865af4158015610f4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7391906149a4565b91509150610f7f612fe1565b60020154604051635af7b19b60e01b81526001600160a01b0390911690635af7b19b90610fb290889085906004016149cf565b5f604051808303815f87803b158015610fc9575f80fd5b505af1158015610fdb573d5f803e3d5ffd5b5050604080516001600160601b0389168152602081018690529081018790527f3e76c26439d1ec3386e26dfeebf955ea11f5f5f30459052b70e061ade8c9554f925060600190505b60405180910390a15050505050565b61103b33610ae8565b5f611044612fe1565b6003810154604051630e8d845760e31b81526001600160a01b0390911660048201526001600160601b038086166024830152841660448201529091505f9073__$f048dbd5170c0ac319fa0222065b281d84$__9063746c22b890606401602060405180830381865af41580156110bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e09190614a2b565b60028301546040805160208101825264ffffffffff848116825291516331420df160e11b81526001600160601b038a166004820152905190911660248201529192506001600160a01b0316906362841be2906044015f604051808303815f87803b15801561114c575f80fd5b505af115801561115e573d5f803e3d5ffd5b505050506002820154604051633861317f60e01b81526001600160601b0380881660048301528087166024830152851660448201526001600160a01b0390911690633861317f906064015b5f604051808303815f87803b1580156111c0575f80fd5b505af11580156111d2573d5f803e3d5ffd5b505050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c6111ff6108a2565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af415801561123d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112619190614a46565b5f80516020614f0a8339815191528054600160401b900460ff1680611293575080546001600160401b03808416911610155b156112b15760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556112db8361347e565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b61133033610ae8565b6113386123d6565b6001600160a01b0316336001600160a01b03161461136b5760405163086391f760e31b815233600482015260240161074b565b6113758282613486565b5050565b5f611382612fe1565b600101546001600160a01b0316919050565b5f80516020614f0a8339815191528054600160401b810460ff1615906001600160401b03165f811580156113c55750825b90505f826001600160401b031660011480156113e05750303b155b9050811580156113ee575080155b1561140c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561143657845460ff60401b1916600160401b1785555b61144087876134f3565b831561148757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b61149933610ae8565b73__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__639ed616cd6114c56001546001600160a01b031690565b6114cd612fe1565b6003015460405160e084901b6001600160e01b03191681526001600160a01b039283166004820152911660248201526001600160601b038816604482015260ff8716606482015264ffffffffff8516608482015260a4810184905260c4015f6040518083038186803b158015611541575f80fd5b505af4158015611553573d5f803e3d5ffd5b5050505061155f612fe1565b6002015f9054906101000a90046001600160a01b03166001600160a01b031663525615b6866040518060a001604052808860ff1681526020018781526020018664ffffffffff16815260200185815260200173__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156115f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161c91906148b7565b6001600160601b03168152506040518363ffffffff1660e01b81526004016111a99291906149cf565b5f61164e610c5b565b156116d2576001546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f0906024015f60405180830381865afa1580156116a2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116c99190810190614ab9565b60600151905090565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0154600160a01b900460ff1690565b5f61170c33610ae8565b82611715612fe1565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015611765573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117899190614919565b6117b157604051632ab4595b60e11b81526001600160601b038216600482015260240161074b565b6117bc84601e6138bf565b6117c783601e6138bf565b5f6117d0612fe1565b6003810154600282015460405163060550e560e41b81526001600160a01b039283166004820152911660248201526001600160601b0380881660448301528616606482015290915073__$f048dbd5170c0ac319fa0222065b281d84$__906360550e50906084015b602060405180830381865af4158015611853573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187791906148b7565b95945050505050565b61188933610ae8565b81611892612fe1565b6002015f9054906101000a90046001600160a01b03166001600160a01b0316635cce3fa16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118e3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611907919061486f565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa158015611954573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119789190614919565b6119a0576040516396cff01560e01b81526001600160601b038216600482015260240161074b565b604051635f9c0df360e11b81523060048201526001600160601b038416602482015264ffffffffff831660448201525f90819073__$fb6c7635e3c1acf7e7d82c7d43e7a24671$__9063bf381be69060640160c060405180830381865af4158015611a0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a319190614b89565b91509150611a3d612fe1565b60020154604051635af7b19b60e01b81526001600160a01b0390911690635af7b19b90611a7090889085906004016149cf565b5f604051808303815f87803b158015611a87575f80fd5b505af1158015611a99573d5f803e3d5ffd5b5050604080516001600160601b038916815264ffffffffff80871660208301528816918101919091527fb847665302c1d8b6f507e07b17145514cea04af84e1665d629d82246992311e792506060019050611023565b611af76123d6565b6001600160a01b0316336001600160a01b031614611b2a5760405163086391f760e31b815233600482015260240161074b565b306001600160a01b0316816001600160a01b0316637b1391a66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b94919061486f565b6001600160a01b031614611c2757806001600160a01b0316637b1391a66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bde573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c02919061486f565b604051631641c88f60e11b81526001600160a01b03909116600482015260240161074b565b80611c30612fe1565b60030180546001600160a01b0319166001600160a01b039290921691909117905550565b5f611c5d612fe1565b600301546001600160a01b0316919050565b5f611c7933610ae8565b82611c82612fe1565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015611cd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf69190614919565b611d1e57604051632ab4595b60e11b81526001600160601b038216600482015260240161074b565b5f611d27612fe1565b905073__$f048dbd5170c0ac319fa0222065b281d84$__630fcf5d08611d556001546001600160a01b031690565b6003840154600285015460405160e085901b6001600160e01b03191681526001600160a01b03938416600482015291831660248301529190911660448201526001600160601b0380891660648301528716608482015260a401611838565b611dbc33610ae8565b81611dc5612fe1565b6002015f9054906101000a90046001600160a01b03166001600160a01b0316635cce3fa16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e16573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e3a919061486f565b604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b039190911690634f9c1c0990602401602060405180830381865afa158015611e87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eab9190614919565b611ed3576040516396cff01560e01b81526001600160601b038216600482015260240161074b565b5f611edc611c54565b60405163153d412560e31b81526001600160601b03861660048201526001600160a01b03919091169063a9ea09289060240160a060405180830381865afa158015611f29573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f4d9190614bb4565b6001600160601b03841660808201529050611f66612fe1565b60020154604051635af7b19b60e01b81526001600160a01b0390911690635af7b19b90611f9990879085906004016149cf565b5f604051808303815f87803b158015611fb0575f80fd5b505af1158015611fc2573d5f803e3d5ffd5b5050604080516001600160601b038089168252871660208201527fad500c174503de7381b30d4ef78eace9ae22e817b4843b07b9b0522a231a75d7935001905060405180910390a150505050565b5f61201a33610ae8565b81612023612fe1565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015612073573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120979190614919565b6120bf57604051632ab4595b60e11b81526001600160601b038216600482015260240161074b565b5f6120c8612fe1565b600381015460028201549192505f916120ee916001600160a01b03908116911687613103565b9050816002015f9054906101000a90046001600160a01b03166001600160a01b0316633fbdfe32868373__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af415801561215e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061218291906148b7565b60405160e085901b6001600160e01b03191681526001600160601b039384166004820152918316602483015290911660448201526064016020604051808303815f875af11580156121d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121f991906148b7565b600283015460405163136cfef760e01b81526001600160601b038085166004830152831660248201529195506001600160a01b03169063136cfef7906044016020604051808303815f875af1158015612254573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061227891906148b7565b50505050919050565b604051632392b61b60e21b8152600360048201525f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af41580156122d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109249190614bce565b336122fe612872565b6001600160a01b0316816001600160a01b0316146123395760405162d1953b60e31b81526001600160a01b038216600482015260240161074b565b816001600160a01b03163b5f0361236e576040516361798f2f60e11b81526001600160a01b038316600482015260240161074b565b61137582613976565b61238033610ae8565b6123886123d6565b6001600160a01b0316336001600160a01b0316146113755760405163086391f760e31b815233600482015260240161074b565b5f6123c4612fe1565b600201546001600160a01b0316919050565b5f805f80516020614eca83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015612442573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124669190614919565b156124f1576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156124c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124eb919061486f565b91505090565b54600160601b90046001600160a01b0316919050565b5f80516020614eea83398151915280545f9190600160a01b900460ff1661252e575f6124eb565b638fb3603760e01b91505090565b612544614247565b61254c610c5b565b15612559576109246139d6565b610924612862565b61256a33610ae8565b6125726123d6565b6001600160a01b0316336001600160a01b0316146125a55760405163086391f760e31b815233600482015260240161074b565b505050565b6125b26123d6565b6001600160a01b0316336001600160a01b0316146125e55760405163086391f760e31b815233600482015260240161074b565b5f6125ee612fe1565b8054604051631703edc360e31b8152600481018790526001600160a01b03868116602483015292935091169063b81f6e1890604401602060405180830381865afa15801561263e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126629190614919565b612691576040516374ddbd6960e01b8152600481018590526001600160a01b038416602482015260440161074b565b6002810154604051637b21556160e01b8152600481018690526001600160a01b0385811660248301525f921690637b21556190604401602060405180830381865afa1580156126e2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127069190614be9565b600283015460405163269c98d960e21b8152600481018890526001600160a01b03878116602483015260448201879052929350911690639a726364906064015f604051808303815f87803b15801561275c575f80fd5b505af115801561276e573d5f803e3d5ffd5b5050604080518881526001600160a01b0388166020820152908101849052606081018690527f8075f599388073d04550222731e9c7e00c284a4f858d8a0ffc0657164981c76e92506080019050611023565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015612807573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061282b919061486f565b6001600160a01b0316336001600160a01b03161461285d5760405162f0630960e01b815233600482015260240161074b565b610bc1565b61286a614247565b6109246139d6565b5f80516020614eea833981519152546001600160a01b031690565b5f612896612fe1565b546001600160a01b0316919050565b5f6128af33610ae8565b5f6128b8612fe1565b600381015460405163153d412560e31b81526001600160601b03881660048201529192505f916001600160a01b039091169063a9ea09289060240160a060405180830381865afa15801561290e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129329190614bb4565b602001516003830154604051637b21556160e01b8152600481018390526001600160a01b0388811660248301529293505f9290911690637b21556190604401602060405180830381865afa15801561298c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129b09190614be9565b6002840154604051633ece552760e21b81529192506001600160a01b03169063fb39549c906129e9908a9085908b908b90600401614c00565b6020604051808303815f875af1158015612a05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a2991906148b7565b979650505050505050565b5f612a3e33610ae8565b5f612a47612fe1565b600281015460405163d7537c3760e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063d7537c37906044015b6020604051808303815f875af1158015612aa3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ac791906148b7565b949350505050565b5f80612ada33610ae8565b82612ae3612fe1565b60020154604051634f9c1c0960e01b81526001600160601b03831660048201526001600160a01b0390911690634f9c1c0990602401602060405180830381865afa158015612b33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b579190614919565b612b7f57604051632ab4595b60e11b81526001600160601b038216600482015260240161074b565b5f612b88612fe1565b600381015460405163b3eff9e160e01b81526001600160a01b0390911660048201526001600160601b038716602482015290915073__$f048dbd5170c0ac319fa0222065b281d84$__9063b3eff9e190604401602060405180830381865af4158015612bf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c1a9190614a2b565b50600381015460028201545f91612c3e916001600160a01b03918216911688613103565b9050816002015f9054906101000a90046001600160a01b03166001600160a01b031663eb98e8a0878373__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015612cae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cd291906148b7565b73__$3bac17678db7ae928afa209f2f44deec9c$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af4158015612d19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d3d91906148b7565b60405160e086901b6001600160e01b03191681526001600160601b03948516600482015292841660248401529083166044830152909116606482015260840160408051808303815f875af1158015612d97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dbb9190614c34565b600284015460405163136cfef760e01b81526001600160601b038086166004830152831660248201529297509095506001600160a01b03169063136cfef7906044016020604051808303815f875af1158015612e19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e3d91906148b7565b50505050915091565b5f612e5033610ae8565b5f612e59612fe1565b600281015460405163136cfef760e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063136cfef790604401612a87565b5f612ea733610ae8565b5f612eb0612fe1565b600381015460405163153d412560e31b81526001600160601b03881660048201529192505f916001600160a01b039091169063a9ea09289060240160a060405180830381865afa158015612f06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f2a9190614bb4565b602001516003830154604051637b21556160e01b8152600481018390526001600160a01b0388811660248301529293505f9290911690637b21556190604401602060405180830381865afa158015612f84573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fa89190614be9565b60028401546040516377f9185160e01b81529192506001600160a01b0316906377f91851906129e9908a9085908b908b90600401614c00565b7fafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f0090565b5f80516020614eea8339815191525f8061303d613020612872565b873061302f60045f8a8c614c61565b61303891614c88565b613ac8565b91509150816130fb5763ffffffff8116156130d857825460ff60a01b1916600160a01b17835561306b612872565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161309a93929190614cc0565b5f604051808303815f87803b1580156130b1575f80fd5b505af11580156130c3573d5f803e3d5ffd5b5050845460ff60a01b19168555506130fb9050565b60405162d1953b60e31b81526001600160a01b038716600482015260240161074b565b505050505050565b6040516312b9a5c960e01b81526001600160601b03821660048201525f9081906001600160a01b038616906312b9a5c9906024016040805180830381865afa158015613151573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131759190614cff565b60405163e048754d60e01b81526001600160a01b03881660048201526001600160601b03861660248201526044810182905291935091505f9073__$f048dbd5170c0ac319fa0222065b281d84$__9063e048754d906064016040805180830381865af41580156131e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061320b9190614c34565b50604051634a2101d160e01b81526001600160601b0380871660048301528086166024830152821660448201529091506001600160a01b03861690634a2101d1906064015f604051808303815f87803b158015613266575f80fd5b505af1158015613278573d5f803e3d5ffd5b5050505050509392505050565b5f805f80516020614eca83398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156132f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133159190614919565b156133415780546040516301ab8b6760e21b81526001600160601b03909116600482015260240161074b565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015613393573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133b79190614919565b6133df5760405163b9304b0d60e01b81526001600160a01b038416600482015260240161074b565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015613431573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061345591906148b7565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b6102e5613bd0565b6134906003613c08565b6040516320c8cbff60e11b81526001600160a01b0384811660048301526001600160601b0384166024830152919091169063419197fe906044015f604051808303815f87803b1580156134e1575f80fd5b505af11580156130fb573d5f803e3d5ffd5b5f80516020614f0a8339815191528054600160401b810460ff1615906001600160401b03165f811580156135245750825b90505f826001600160401b0316600114801561353f5750303b155b90508115801561354d575080155b1561356b5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561359557845460ff60401b1916600160401b1785555b5f805f80898060200190518101906135ad9190614d2b565b93509350935093505f8490505f816001600160a01b031663e2b178a06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156135f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061361a919061486f565b90505f8590505f816001600160a01b031663b201f7096040518163ffffffff1660e01b8152600401602060405180830381865afa15801561365d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613681919061486f565b90505f61368c612fe1565b9050846001600160a01b031663fff74f6c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136ee91906148b7565b6003820180546001600160601b0392909216600160a01b026001600160a01b039283161790556002820180549189166001600160a01b0319929092168217905560408051633148a11d60e11b81529051636291423a916004808201926020929091908290030181865afa158015613767573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061378b919061486f565b6003820180546001600160a01b03199081166001600160a01b039384161790915582541689821617825560408051630322622f60e51b815290516138649287928d92918a169163644c45e0916004808201926020929091908290030181865afa1580156137fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061381e91906148b7565b6040805180820190915260078152665374616b696e6760c81b60208201528660035f8d60405180602001604052805f81525060405180602001604052805f815250613c9f565b613874635ae843b960e01b613f21565b505050505050505050831561148757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200161147e565b6001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa158015613921573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139459190614919565b6113755760405163d711af7560e01b81526001600160601b038316600482015260ff8216602482015260440161074b565b5f80516020614eea83398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6139de614247565b5f7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0090506040518060800160405280825f018054613a1b906148d2565b80601f0160208091040260200160405190810160405280929190818152602001828054613a47906148d2565b8015613a925780601f10613a6957610100808354040283529160200191613a92565b820191905f5260205f20905b815481529060010190602001808311613a7557829003601f168201915b505050918352505060018301546001600160a01b031660208201525f6040820152600283018054606090920191610a5e906148d2565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251613b369190614d7c565b5f60405180830381855afa9150503d805f8114613b6e576040519150601f19603f3d011682016040523d82523d5f602084013e613b73565b606091505b50915091508115613bc5576040815110613ba55780806020019051810190613b9b9190614d92565b9094509250613bc5565b6020815110613bc55780806020019051810190613bc29190614919565b93505b505094509492505050565b5f80516020614f0a83398151915254600160401b900460ff16613c0657604051631afcd79f60e31b815260040160405180910390fd5b565b5f613c1b6001546001600160a01b031690565b6001600160a01b031663d39e604383613c32612281565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613c75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c99919061486f565b92915050565b613ca7613bd0565b5f896001600160a01b031663caed98976040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ce4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d08919061486f565b90505f8b6001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d6b9190614bce565b905060ff8716600314613e3157604051637d482da160e01b81526001600160a01b0380841660048301528916602482015246604482015260ff8216606482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90637d482da190608401602060405180830381865af4158015613de5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e099190614919565b613e3157604051638071294b60e01b81526001600160a01b038916600482015260240161074b565b88515f03613e525760405163591eebf360e11b815260040160405180910390fd5b613e618c8c8c8a8a8a8a613f54565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f0080613e8d8b82614e0f565b50600181018054881515600160a01b026001600160a81b03199091166001600160a01b038c161717905560028101613ec58582614e0f565b50613ed0600b613c08565b6003820180546001600160a01b0319166001600160a01b0392909216919091179055613f02634a531f3360e01b613f21565b613f126306e9e5ff60e31b613f21565b50505050505050505050505050565b613f29613bd0565b613f51816001600160e01b0319165f908152602081905260409020805460ff19166001179055565b50565b613f5c613bd0565b604051632330f24760e01b81526001600160a01b038816600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90632330f24790602401602060405180830381865af4158015613fb2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fd69190614919565b613ffe5760405163cf6935e560e01b81526001600160a01b038816600482015260240161074b565b6140078761409b565b61401186836140ac565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b861515021781559050600181016140808382614e0f565b50614091634a531f3360e01b613f21565b5050505050505050565b6140a3613bd0565b613f5181614122565b6140b4613bd0565b6140bc614133565b6140c58261417b565b6001600160a01b0381166140ec5760405163f17ef42d60e01b815260040160405180910390fd5b5f80516020614eca83398151915280546001600160601b0316600160601b6001600160a01b039093169290920291909117905550565b61412a613bd0565b613f5181613976565b61413b613bd0565b613c066301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b614183613bd0565b604051633334d16b60e01b81526001600160a01b038216600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90633334d16b90602401602060405180830381865af41580156141d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141fd9190614919565b6142255760405163fdeac91f60e01b81526001600160a01b038216600482015260240161074b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6040518060800160405280606081526020015f6001600160a01b031681526020015f6001600160a01b03168152602001606081525090565b5f6020828403121561428f575f80fd5b81356001600160e01b0319811681146142a6575f80fd5b9392505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f6060830151614323608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612ac76101008401826142ad565b6001600160601b0381168114613f51575f80fd5b5f6020828403121561438b575f80fd5b81356142a681614367565b602081525f6142a660208301846142ad565b5f80604083850312156143b9575f80fd5b82356143c481614367565b946020939093013593505050565b5f805f606084860312156143e4575f80fd5b83356143ef81614367565b925060208401356143ff81614367565b9150604084013561440f81614367565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b03811182821017156144505761445061441a565b60405290565b60405160e081016001600160401b03811182821017156144505761445061441a565b604051601f8201601f191681016001600160401b03811182821017156144a0576144a061441a565b604052919050565b5f6001600160401b038211156144c0576144c061441a565b50601f01601f191660200190565b5f82601f8301126144dd575f80fd5b81356144f06144eb826144a8565b614478565b818152846020838601011115614504575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215614530575f80fd5b81356001600160401b03811115614545575f80fd5b612ac7848285016144ce565b6001600160a01b0381168114613f51575f80fd5b5f8060408385031215614576575f80fd5b823561458181614551565b9150602083013561459181614367565b809150509250929050565b5f80604083850312156145ad575f80fd5b82356145b881614551565b915060208301356001600160401b038111156145d2575f80fd5b6145de858286016144ce565b9150509250929050565b60ff81168114613f51575f80fd5b64ffffffffff81168114613f51575f80fd5b5f805f805f60a0868803121561461c575f80fd5b853561462781614367565b94506020860135614637816145e8565b935060408601359250606086013561464e816145f6565b949793965091946080013592915050565b5f8060408385031215614670575f80fd5b823561458181614367565b5f806040838503121561468c575f80fd5b823561469781614367565b91506020830135614591816145f6565b5f602082840312156146b7575f80fd5b81356142a681614551565b5f8082840360c08112156146d4575f80fd5b83356146df81614367565b925060a0601f19820112156146f2575f80fd5b506146fb61442e565b6020840135614709816145e8565b8152604084013560208201526060840135614723816145f6565b60408201526080840135606082015260a084013561474081614367565b6080820152919491935090915050565b602081525f82516080602084015261476b60a08401826142ad565b60208501516001600160a01b0390811660408681019190915286015116606080860191909152850151848203601f1901608086015290915061187782826142ad565b5f805f606084860312156147bf575f80fd5b83356147ca81614367565b925060208401356143ff81614551565b5f805f606084860312156147ec575f80fd5b8335925060208401356147fe81614551565b929592945050506040919091013590565b5f805f8060808587031215614822575f80fd5b843561482d81614551565b9350602085013561483d81614551565b925060408501359150606085013561485481614551565b939692955090935050565b805161486a81614551565b919050565b5f6020828403121561487f575f80fd5b81516142a681614551565b5f6020828403121561489a575f80fd5b815162ffffff811681146142a6575f80fd5b805161486a81614367565b5f602082840312156148c7575f80fd5b81516142a681614367565b600181811c908216806148e657607f821691505b60208210810361490457634e487b7160e01b5f52602260045260245ffd5b50919050565b8051801515811461486a575f80fd5b5f60208284031215614929575f80fd5b6142a68261490a565b805161486a816145e8565b5f60a0828403121561494d575f80fd5b61495561442e565b90508151614962816145e8565b815260208281015190820152604082015161497c816145f6565b604082015260608281015190820152608082015161499981614367565b608082015292915050565b5f8060c083850312156149b5575f80fd5b825191506149c6846020850161493d565b90509250929050565b5f60c0820190506001600160601b038416825260ff83511660208301526020830151604083015264ffffffffff6040840151166060830152606083015160808301526001600160601b0360808401511660a08301529392505050565b5f60208284031215614a3b575f80fd5b81516142a6816145f6565b5f60208284031215614a56575f80fd5b81516001600160401b03811681146142a6575f80fd5b5f82601f830112614a7b575f80fd5b8151614a896144eb826144a8565b818152846020838601011115614a9d575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f60208284031215614ac9575f80fd5b81516001600160401b03811115614ade575f80fd5b820160e08185031215614aef575f80fd5b614af7614456565b614b00826148ac565b8152614b0e602083016148ac565b6020820152614b1f60408301614932565b6040820152614b306060830161490a565b6060820152614b416080830161485f565b6080820152614b5260a0830161485f565b60a082015260c08201516001600160401b03811115614b6f575f80fd5b614b7b86828501614a6c565b60c083015250949350505050565b5f8060c08385031215614b9a575f80fd5b8251614ba5816145f6565b91506149c6846020850161493d565b5f60a08284031215614bc4575f80fd5b6142a6838361493d565b5f60208284031215614bde575f80fd5b81516142a6816145e8565b5f60208284031215614bf9575f80fd5b5051919050565b6001600160601b03948516815260208101939093526001600160a01b03919091166040830152909116606082015260800190565b5f8060408385031215614c45575f80fd5b8251614c5081614367565b602084015190925061459181614367565b5f8085851115614c6f575f80fd5b83861115614c7b575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015614cb9576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f8060408385031215614d10575f80fd5b8251614d1b81614367565b6020939093015192949293505050565b5f805f8060808587031215614d3e575f80fd5b8451614d4981614551565b6020860151909450614d5a81614551565b6040860151909350614d6b81614551565b606086015190925061485481614551565b5f82518060208501845e5f920191825250919050565b5f8060408385031215614da3575f80fd5b614dac8361490a565b9150602083015163ffffffff81168114614591575f80fd5b601f8211156125a557805f5260205f20601f840160051c81016020851015614de95750805b601f840160051c820191505b81811015614e08575f8155600101614df5565b5050505050565b81516001600160401b03811115614e2857614e2861441a565b614e3c81614e3684546148d2565b84614dc4565b6020601f821160018114614e6e575f8315614e575750848201515b5f19600385901b1c1916600184901b178455614e08565b5f84815260208120601f198516915b82811015614e9d5787850151825560209485019460019092019101614e7d565b5084821015614eba57868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122058f66c86eaef9102cb69cc38e1b7344574c321ca9815659f7c31335939463acb64736f6c634300081a0033",
778
1669
  "linkReferences": {
1670
+ "contracts/shared/ContractLib.sol": {
1671
+ "ContractLib": [
1672
+ {
1673
+ "length": 20,
1674
+ "start": 16003
1675
+ },
1676
+ {
1677
+ "length": 20,
1678
+ "start": 16464
1679
+ },
1680
+ {
1681
+ "length": 20,
1682
+ "start": 17015
1683
+ }
1684
+ ]
1685
+ },
1686
+ "contracts/shared/TokenHandlerDeployerLib.sol": {
1687
+ "TokenHandlerDeployerLib": [
1688
+ {
1689
+ "length": 20,
1690
+ "start": 2103
1691
+ }
1692
+ ]
1693
+ },
1694
+ "contracts/staking/StakingLib.sol": {
1695
+ "StakingLib": [
1696
+ {
1697
+ "length": 20,
1698
+ "start": 4442
1699
+ },
1700
+ {
1701
+ "length": 20,
1702
+ "start": 6384
1703
+ },
1704
+ {
1705
+ "length": 20,
1706
+ "start": 7681
1707
+ },
1708
+ {
1709
+ "length": 20,
1710
+ "start": 11412
1711
+ },
1712
+ {
1713
+ "length": 20,
1714
+ "start": 12934
1715
+ }
1716
+ ]
1717
+ },
1718
+ "contracts/staking/TargetManagerLib.sol": {
1719
+ "TargetManagerLib": [
1720
+ {
1721
+ "length": 20,
1722
+ "start": 4077
1723
+ },
1724
+ {
1725
+ "length": 20,
1726
+ "start": 5489
1727
+ },
1728
+ {
1729
+ "length": 20,
1730
+ "start": 6827
1731
+ }
1732
+ ]
1733
+ },
779
1734
  "contracts/type/Amount.sol": {
780
1735
  "AmountLib": [
781
1736
  {
782
1737
  "length": 20,
783
- "start": 9803
1738
+ "start": 5769
1739
+ },
1740
+ {
1741
+ "length": 20,
1742
+ "start": 8687
1743
+ },
1744
+ {
1745
+ "length": 20,
1746
+ "start": 11583
784
1747
  },
785
1748
  {
786
1749
  "length": 20,
787
- "start": 9960
1750
+ "start": 11690
788
1751
  }
789
1752
  ]
790
1753
  },
@@ -792,11 +1755,19 @@
792
1755
  "NftIdLib": [
793
1756
  {
794
1757
  "length": 20,
795
- "start": 2144
1758
+ "start": 2662
1759
+ },
1760
+ {
1761
+ "length": 20,
1762
+ "start": 3531
1763
+ },
1764
+ {
1765
+ "length": 20,
1766
+ "start": 9440
796
1767
  },
797
1768
  {
798
1769
  "length": 20,
799
- "start": 4322
1770
+ "start": 13199
800
1771
  }
801
1772
  ]
802
1773
  },
@@ -804,25 +1775,103 @@
804
1775
  "VersionLib": [
805
1776
  {
806
1777
  "length": 20,
807
- "start": 1639
1778
+ "start": 2462
808
1779
  },
809
1780
  {
810
1781
  "length": 20,
811
- "start": 3011
1782
+ "start": 4789
1783
+ }
1784
+ ],
1785
+ "VersionPartLib": [
1786
+ {
1787
+ "length": 20,
1788
+ "start": 9071
812
1789
  }
813
1790
  ]
814
1791
  }
815
1792
  },
816
1793
  "deployedLinkReferences": {
1794
+ "contracts/shared/ContractLib.sol": {
1795
+ "ContractLib": [
1796
+ {
1797
+ "length": 20,
1798
+ "start": 15789
1799
+ },
1800
+ {
1801
+ "length": 20,
1802
+ "start": 16250
1803
+ },
1804
+ {
1805
+ "length": 20,
1806
+ "start": 16801
1807
+ }
1808
+ ]
1809
+ },
1810
+ "contracts/shared/TokenHandlerDeployerLib.sol": {
1811
+ "TokenHandlerDeployerLib": [
1812
+ {
1813
+ "length": 20,
1814
+ "start": 1889
1815
+ }
1816
+ ]
1817
+ },
1818
+ "contracts/staking/StakingLib.sol": {
1819
+ "StakingLib": [
1820
+ {
1821
+ "length": 20,
1822
+ "start": 4228
1823
+ },
1824
+ {
1825
+ "length": 20,
1826
+ "start": 6170
1827
+ },
1828
+ {
1829
+ "length": 20,
1830
+ "start": 7467
1831
+ },
1832
+ {
1833
+ "length": 20,
1834
+ "start": 11198
1835
+ },
1836
+ {
1837
+ "length": 20,
1838
+ "start": 12720
1839
+ }
1840
+ ]
1841
+ },
1842
+ "contracts/staking/TargetManagerLib.sol": {
1843
+ "TargetManagerLib": [
1844
+ {
1845
+ "length": 20,
1846
+ "start": 3863
1847
+ },
1848
+ {
1849
+ "length": 20,
1850
+ "start": 5275
1851
+ },
1852
+ {
1853
+ "length": 20,
1854
+ "start": 6613
1855
+ }
1856
+ ]
1857
+ },
817
1858
  "contracts/type/Amount.sol": {
818
1859
  "AmountLib": [
819
1860
  {
820
1861
  "length": 20,
821
- "start": 9579
1862
+ "start": 5555
822
1863
  },
823
1864
  {
824
1865
  "length": 20,
825
- "start": 9736
1866
+ "start": 8473
1867
+ },
1868
+ {
1869
+ "length": 20,
1870
+ "start": 11369
1871
+ },
1872
+ {
1873
+ "length": 20,
1874
+ "start": 11476
826
1875
  }
827
1876
  ]
828
1877
  },
@@ -830,11 +1879,19 @@
830
1879
  "NftIdLib": [
831
1880
  {
832
1881
  "length": 20,
833
- "start": 1920
1882
+ "start": 2448
1883
+ },
1884
+ {
1885
+ "length": 20,
1886
+ "start": 3317
1887
+ },
1888
+ {
1889
+ "length": 20,
1890
+ "start": 9226
834
1891
  },
835
1892
  {
836
1893
  "length": 20,
837
- "start": 4098
1894
+ "start": 12985
838
1895
  }
839
1896
  ]
840
1897
  },
@@ -842,11 +1899,17 @@
842
1899
  "VersionLib": [
843
1900
  {
844
1901
  "length": 20,
845
- "start": 1415
1902
+ "start": 2248
846
1903
  },
847
1904
  {
848
1905
  "length": 20,
849
- "start": 2787
1906
+ "start": 4575
1907
+ }
1908
+ ],
1909
+ "VersionPartLib": [
1910
+ {
1911
+ "length": 20,
1912
+ "start": 8857
850
1913
  }
851
1914
  ]
852
1915
  }