@etherisc/gif-next 0.0.2-c00cf5d-513 → 0.0.2-c0457ac-280

Sign up to get free protection for your applications and to get access to all the features.
Files changed (396) hide show
  1. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +198 -177
  3. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +130 -335
  5. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +67 -96
  7. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +83 -108
  9. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +35 -48
  11. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +32 -101
  13. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +65 -66
  15. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +163 -10
  17. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  18. package/artifacts/contracts/instance/Instance.sol/Instance.json +81 -93
  19. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +56 -40
  21. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +84 -44
  23. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +458 -331
  25. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +268 -46
  27. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +74 -43
  29. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1095 -344
  31. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  33. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  35. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -71
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  42. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  45. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  46. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  47. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  48. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  49. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  50. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  51. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  52. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  53. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  54. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  55. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  56. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  57. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  58. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  59. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  60. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +91 -264
  61. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  62. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +56 -69
  63. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  64. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -51
  65. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  66. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +145 -86
  67. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  68. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +134 -133
  69. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  70. package/artifacts/contracts/pool/Pool.sol/Pool.json +242 -103
  71. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  72. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +180 -376
  73. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  74. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -83
  75. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  76. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +93 -167
  77. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  78. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +56 -45
  79. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  80. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +121 -211
  81. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +64 -61
  83. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  84. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +20 -1
  85. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  86. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +20 -1
  87. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  88. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +94 -25
  89. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  90. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +40 -1
  91. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  92. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +241 -107
  93. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  94. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -55
  95. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  96. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +180 -297
  97. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  98. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +54 -99
  99. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  100. package/artifacts/contracts/product/PricingService.sol/PricingService.json +163 -174
  101. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +81 -54
  103. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  104. package/artifacts/contracts/product/Product.sol/Product.json +337 -157
  105. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  106. package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -230
  107. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +34 -47
  109. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  111. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +65 -0
  113. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +153 -1
  115. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  116. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  117. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  118. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/Registry.sol/Registry.json +294 -15
  120. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  121. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1712 -103
  122. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  123. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +198 -28
  124. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +45 -42
  126. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +321 -161
  128. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  129. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  130. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
  132. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  133. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -136
  134. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  135. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  136. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +1 -1
  137. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +1 -1
  138. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +42 -10
  139. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +1 -1
  140. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +42 -10
  141. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +1 -1
  142. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +52 -20
  143. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +1 -1
  144. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +52 -20
  145. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  146. package/artifacts/contracts/shared/Component.sol/Component.json +100 -96
  147. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  148. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +916 -55
  149. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  150. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  151. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  152. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  153. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  154. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  155. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  156. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  157. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +1 -1
  158. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +1 -1
  159. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  160. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -81
  161. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  162. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  163. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  164. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  165. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  166. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +1 -11
  167. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  169. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  170. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  171. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
  173. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  174. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  175. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  176. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  178. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  180. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  181. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  182. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  183. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  184. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  185. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  186. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  187. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  188. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  189. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  190. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +33 -20
  191. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  192. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
  193. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +19 -32
  195. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  196. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +17 -22
  197. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  198. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  199. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  200. package/artifacts/contracts/shared/Service.sol/Service.json +16 -16
  201. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  202. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +40 -4
  203. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  204. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  205. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  206. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  207. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  208. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  209. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
  210. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  211. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  212. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  213. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  214. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  215. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  216. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  218. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  219. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +657 -100
  220. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  221. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +65 -46
  222. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  224. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  225. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  226. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  227. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  228. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  229. package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
  230. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  231. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  232. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  233. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  234. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  235. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  236. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/Fee.sol/FeeLib.json +34 -34
  238. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  239. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  240. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  241. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  242. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  243. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  244. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +96 -2
  246. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  248. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  250. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  252. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  254. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +114 -4
  256. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
  258. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  260. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  262. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  264. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  266. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  268. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  272. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  274. package/contracts/distribution/Distribution.sol +29 -53
  275. package/contracts/distribution/DistributionService.sol +61 -115
  276. package/contracts/distribution/IDistributionComponent.sol +5 -10
  277. package/contracts/distribution/IDistributionService.sol +2 -8
  278. package/contracts/instance/IInstance.sol +15 -7
  279. package/contracts/instance/IInstanceService.sol +35 -10
  280. package/contracts/instance/Instance.sol +63 -34
  281. package/contracts/instance/InstanceAdmin.sol +3 -2
  282. package/contracts/instance/InstanceAuthorizationsLib.sol +84 -27
  283. package/contracts/instance/InstanceReader.sol +64 -40
  284. package/contracts/instance/InstanceService.sol +185 -45
  285. package/contracts/instance/InstanceStore.sol +122 -64
  286. package/contracts/instance/base/BalanceStore.sol +123 -0
  287. package/contracts/instance/base/Cloneable.sol +2 -25
  288. package/contracts/instance/base/ObjectCounter.sol +21 -0
  289. package/contracts/instance/base/ObjectManager.sol +1 -3
  290. package/contracts/instance/module/IBundle.sol +1 -4
  291. package/contracts/instance/module/IComponents.sol +15 -4
  292. package/contracts/instance/module/IPolicy.sol +8 -2
  293. package/contracts/mock/Dip.sol +26 -0
  294. package/contracts/oracle/IOracle.sol +20 -0
  295. package/contracts/oracle/IOracleComponent.sol +32 -0
  296. package/contracts/oracle/IOracleService.sol +65 -0
  297. package/contracts/oracle/Oracle.sol +145 -0
  298. package/contracts/oracle/OracleService.sol +278 -0
  299. package/contracts/oracle/OracleServiceManager.sol +42 -0
  300. package/contracts/pool/BundleService.sol +79 -167
  301. package/contracts/pool/IBundleService.sol +4 -16
  302. package/contracts/pool/IPoolComponent.sol +4 -6
  303. package/contracts/pool/IPoolService.sol +45 -9
  304. package/contracts/pool/Pool.sol +39 -42
  305. package/contracts/pool/PoolService.sol +190 -142
  306. package/contracts/product/ApplicationService.sol +109 -42
  307. package/contracts/product/ClaimService.sol +18 -19
  308. package/contracts/product/IApplicationService.sol +1 -1
  309. package/contracts/product/IClaimService.sol +7 -1
  310. package/contracts/product/IPolicyService.sol +6 -8
  311. package/contracts/product/IPricingService.sol +3 -1
  312. package/contracts/product/IProductComponent.sol +7 -6
  313. package/contracts/product/IProductService.sol +1 -8
  314. package/contracts/product/PolicyService.sol +225 -128
  315. package/contracts/product/PricingService.sol +72 -48
  316. package/contracts/product/Product.sol +47 -49
  317. package/contracts/product/ProductService.sol +26 -114
  318. package/contracts/registry/ChainNft.sol +8 -1
  319. package/contracts/registry/IRegistry.sol +15 -4
  320. package/contracts/registry/IRegistryService.sol +10 -0
  321. package/contracts/registry/IServiceAuthorization.sol +35 -0
  322. package/contracts/registry/Registry.sol +164 -47
  323. package/contracts/registry/RegistryAdmin.sol +264 -72
  324. package/contracts/registry/RegistryService.sol +48 -14
  325. package/contracts/registry/RegistryServiceManager.sol +2 -9
  326. package/contracts/registry/ReleaseManager.sol +242 -177
  327. package/contracts/registry/ServiceAuthorization.sol +86 -0
  328. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  329. package/contracts/registry/TokenRegistry.sol +261 -64
  330. package/contracts/shared/AccessAdmin.sol +759 -0
  331. package/contracts/shared/AccessManagerCustom.sol +6 -1
  332. package/contracts/shared/AccessManagerExtended.sol +19 -7
  333. package/contracts/shared/Component.sol +139 -129
  334. package/contracts/shared/ComponentService.sol +563 -88
  335. package/contracts/shared/ComponentServiceManager.sol +35 -0
  336. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  337. package/contracts/shared/ERC165.sol +1 -1
  338. package/contracts/shared/IAccessAdmin.sol +168 -0
  339. package/contracts/shared/IComponent.sol +17 -37
  340. package/contracts/shared/IComponentService.sol +102 -0
  341. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  342. package/contracts/{instance/base → shared}/IKeyValueStore.sol +6 -6
  343. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  344. package/contracts/shared/INftOwnable.sol +1 -1
  345. package/contracts/shared/IPolicyHolder.sol +6 -1
  346. package/contracts/shared/IService.sol +8 -1
  347. package/contracts/shared/InitializableCustom.sol +177 -0
  348. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  349. package/contracts/{instance/base → shared}/KeyValueStore.sol +30 -72
  350. package/contracts/{instance/base → shared}/Lifecycle.sol +12 -3
  351. package/contracts/shared/NftIdSetManager.sol +65 -0
  352. package/contracts/shared/NftOwnable.sol +3 -13
  353. package/contracts/shared/PolicyHolder.sol +21 -13
  354. package/contracts/shared/ProxyManager.sol +2 -3
  355. package/contracts/shared/Registerable.sol +2 -2
  356. package/contracts/shared/Service.sol +32 -21
  357. package/contracts/shared/TokenHandler.sol +24 -1
  358. package/contracts/staking/IStaking.sol +168 -0
  359. package/contracts/staking/IStakingService.sol +98 -47
  360. package/contracts/staking/StakeManagerLib.sol +231 -0
  361. package/contracts/staking/Staking.sol +513 -0
  362. package/contracts/staking/StakingManager.sol +54 -0
  363. package/contracts/staking/StakingReader.sol +187 -0
  364. package/contracts/staking/StakingService.sol +286 -44
  365. package/contracts/staking/StakingServiceManager.sol +7 -3
  366. package/contracts/staking/StakingStore.sol +613 -0
  367. package/contracts/staking/TargetManagerLib.sol +207 -0
  368. package/contracts/type/AddressSet.sol +1 -1
  369. package/contracts/type/Amount.sol +20 -1
  370. package/contracts/type/Blocknumber.sol +20 -3
  371. package/contracts/type/Fee.sol +17 -16
  372. package/contracts/type/NftId.sol +14 -16
  373. package/contracts/type/NftIdSet.sol +1 -1
  374. package/contracts/type/ObjectType.sol +142 -63
  375. package/contracts/type/Referral.sol +1 -1
  376. package/contracts/type/RequestId.sol +75 -0
  377. package/contracts/type/RiskId.sol +1 -1
  378. package/contracts/type/RoleId.sol +82 -20
  379. package/contracts/type/Seconds.sol +27 -0
  380. package/contracts/type/Selector.sol +102 -0
  381. package/contracts/type/StateId.sol +27 -2
  382. package/contracts/type/String.sol +53 -0
  383. package/contracts/type/Timestamp.sol +6 -2
  384. package/contracts/type/Version.sol +1 -1
  385. package/package.json +3 -3
  386. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  387. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  388. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  389. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  390. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  391. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  392. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  393. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  394. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  395. package/contracts/instance/module/ISetup.sol +0 -33
  396. package/contracts/instance/module/ITreasury.sol +0 -23
@@ -95,6 +95,123 @@
95
95
  "name": "ErrorServiceNotImplemented",
96
96
  "type": "error"
97
97
  },
98
+ {
99
+ "inputs": [
100
+ {
101
+ "internalType": "NftId",
102
+ "name": "targetNftId",
103
+ "type": "uint96"
104
+ },
105
+ {
106
+ "internalType": "address",
107
+ "name": "tokenHandler",
108
+ "type": "address"
109
+ },
110
+ {
111
+ "internalType": "uint256",
112
+ "name": "amount",
113
+ "type": "uint256"
114
+ },
115
+ {
116
+ "internalType": "uint256",
117
+ "name": "allowance",
118
+ "type": "uint256"
119
+ }
120
+ ],
121
+ "name": "ErrorStakingServiceDipAllowanceInsufficient",
122
+ "type": "error"
123
+ },
124
+ {
125
+ "inputs": [
126
+ {
127
+ "internalType": "NftId",
128
+ "name": "targetNftId",
129
+ "type": "uint96"
130
+ },
131
+ {
132
+ "internalType": "uint256",
133
+ "name": "amount",
134
+ "type": "uint256"
135
+ },
136
+ {
137
+ "internalType": "uint256",
138
+ "name": "balance",
139
+ "type": "uint256"
140
+ }
141
+ ],
142
+ "name": "ErrorStakingServiceDipBalanceInsufficient",
143
+ "type": "error"
144
+ },
145
+ {
146
+ "inputs": [
147
+ {
148
+ "internalType": "NftId",
149
+ "name": "targetNftId",
150
+ "type": "uint96"
151
+ }
152
+ ],
153
+ "name": "ErrorStakingServiceNotActiveTargetNftId",
154
+ "type": "error"
155
+ },
156
+ {
157
+ "inputs": [
158
+ {
159
+ "internalType": "NftId",
160
+ "name": "nftId",
161
+ "type": "uint96"
162
+ },
163
+ {
164
+ "internalType": "address",
165
+ "name": "expectedOwner",
166
+ "type": "address"
167
+ },
168
+ {
169
+ "internalType": "address",
170
+ "name": "owner",
171
+ "type": "address"
172
+ }
173
+ ],
174
+ "name": "ErrorStakingServiceNotNftOwner",
175
+ "type": "error"
176
+ },
177
+ {
178
+ "inputs": [
179
+ {
180
+ "internalType": "address",
181
+ "name": "stakingAddress",
182
+ "type": "address"
183
+ }
184
+ ],
185
+ "name": "ErrorStakingServiceNotStaking",
186
+ "type": "error"
187
+ },
188
+ {
189
+ "inputs": [
190
+ {
191
+ "internalType": "address",
192
+ "name": "stakingAddress",
193
+ "type": "address"
194
+ }
195
+ ],
196
+ "name": "ErrorStakingServiceNotSupportingIStaking",
197
+ "type": "error"
198
+ },
199
+ {
200
+ "inputs": [
201
+ {
202
+ "internalType": "NftId",
203
+ "name": "targetNftId",
204
+ "type": "uint96"
205
+ }
206
+ ],
207
+ "name": "ErrorStakingServiceNotTargetNftId",
208
+ "type": "error"
209
+ },
210
+ {
211
+ "inputs": [],
212
+ "name": "ErrorStakingServiceZeroTargetNftId",
213
+ "type": "error"
214
+ },
98
215
  {
99
216
  "inputs": [],
100
217
  "name": "InvalidInitialization",
@@ -113,22 +230,291 @@
113
230
  "internalType": "address",
114
231
  "name": "authority",
115
232
  "type": "address"
116
- }
117
- ],
118
- "name": "AuthorityUpdated",
119
- "type": "event"
120
- },
121
- {
122
- "anonymous": false,
123
- "inputs": [
233
+ }
234
+ ],
235
+ "name": "AuthorityUpdated",
236
+ "type": "event"
237
+ },
238
+ {
239
+ "anonymous": false,
240
+ "inputs": [
241
+ {
242
+ "indexed": false,
243
+ "internalType": "uint64",
244
+ "name": "version",
245
+ "type": "uint64"
246
+ }
247
+ ],
248
+ "name": "Initialized",
249
+ "type": "event"
250
+ },
251
+ {
252
+ "anonymous": false,
253
+ "inputs": [
254
+ {
255
+ "indexed": false,
256
+ "internalType": "NftId",
257
+ "name": "instanceNftId",
258
+ "type": "uint96"
259
+ },
260
+ {
261
+ "indexed": false,
262
+ "internalType": "uint256",
263
+ "name": "chainId",
264
+ "type": "uint256"
265
+ }
266
+ ],
267
+ "name": "LogStakingServiceInstanceTargetRegistered",
268
+ "type": "event"
269
+ },
270
+ {
271
+ "anonymous": false,
272
+ "inputs": [
273
+ {
274
+ "indexed": false,
275
+ "internalType": "NftId",
276
+ "name": "targetNftId",
277
+ "type": "uint96"
278
+ },
279
+ {
280
+ "indexed": false,
281
+ "internalType": "Seconds",
282
+ "name": "oldLockingDuration",
283
+ "type": "uint40"
284
+ },
285
+ {
286
+ "indexed": false,
287
+ "internalType": "Seconds",
288
+ "name": "lockingDuration",
289
+ "type": "uint40"
290
+ }
291
+ ],
292
+ "name": "LogStakingServiceLockingPeriodSet",
293
+ "type": "event"
294
+ },
295
+ {
296
+ "anonymous": false,
297
+ "inputs": [
298
+ {
299
+ "indexed": false,
300
+ "internalType": "NftId",
301
+ "name": "protocolNftId",
302
+ "type": "uint96"
303
+ }
304
+ ],
305
+ "name": "LogStakingServiceProtocolTargetRegistered",
306
+ "type": "event"
307
+ },
308
+ {
309
+ "anonymous": false,
310
+ "inputs": [
311
+ {
312
+ "indexed": false,
313
+ "internalType": "NftId",
314
+ "name": "targetNftId",
315
+ "type": "uint96"
316
+ },
317
+ {
318
+ "indexed": false,
319
+ "internalType": "UFixed",
320
+ "name": "oldRewardRate",
321
+ "type": "uint256"
322
+ },
323
+ {
324
+ "indexed": false,
325
+ "internalType": "UFixed",
326
+ "name": "rewardRate",
327
+ "type": "uint256"
328
+ }
329
+ ],
330
+ "name": "LogStakingServiceRewardRateSet",
331
+ "type": "event"
332
+ },
333
+ {
334
+ "anonymous": false,
335
+ "inputs": [
336
+ {
337
+ "indexed": false,
338
+ "internalType": "NftId",
339
+ "name": "targetNftId",
340
+ "type": "uint96"
341
+ },
342
+ {
343
+ "indexed": false,
344
+ "internalType": "address",
345
+ "name": "targetOwner",
346
+ "type": "address"
347
+ },
348
+ {
349
+ "indexed": false,
350
+ "internalType": "Amount",
351
+ "name": "dipAmount",
352
+ "type": "uint96"
353
+ },
354
+ {
355
+ "indexed": false,
356
+ "internalType": "Amount",
357
+ "name": "newBalance",
358
+ "type": "uint96"
359
+ }
360
+ ],
361
+ "name": "LogStakingServiceRewardReservesDecreased",
362
+ "type": "event"
363
+ },
364
+ {
365
+ "anonymous": false,
366
+ "inputs": [
367
+ {
368
+ "indexed": false,
369
+ "internalType": "NftId",
370
+ "name": "targetNftId",
371
+ "type": "uint96"
372
+ },
373
+ {
374
+ "indexed": false,
375
+ "internalType": "address",
376
+ "name": "rewardProvider",
377
+ "type": "address"
378
+ },
379
+ {
380
+ "indexed": false,
381
+ "internalType": "Amount",
382
+ "name": "dipAmount",
383
+ "type": "uint96"
384
+ },
385
+ {
386
+ "indexed": false,
387
+ "internalType": "Amount",
388
+ "name": "newBalance",
389
+ "type": "uint96"
390
+ }
391
+ ],
392
+ "name": "LogStakingServiceRewardReservesIncreased",
393
+ "type": "event"
394
+ },
395
+ {
396
+ "anonymous": false,
397
+ "inputs": [
398
+ {
399
+ "indexed": false,
400
+ "internalType": "NftId",
401
+ "name": "stakeNftId",
402
+ "type": "uint96"
403
+ },
404
+ {
405
+ "indexed": false,
406
+ "internalType": "address",
407
+ "name": "stakeOwner",
408
+ "type": "address"
409
+ },
410
+ {
411
+ "indexed": false,
412
+ "internalType": "Amount",
413
+ "name": "rewardsClaimedAmount",
414
+ "type": "uint96"
415
+ }
416
+ ],
417
+ "name": "LogStakingServiceRewardsClaimed",
418
+ "type": "event"
419
+ },
420
+ {
421
+ "anonymous": false,
422
+ "inputs": [
423
+ {
424
+ "indexed": false,
425
+ "internalType": "NftId",
426
+ "name": "stakeNftId",
427
+ "type": "uint96"
428
+ }
429
+ ],
430
+ "name": "LogStakingServiceRewardsUpdated",
431
+ "type": "event"
432
+ },
433
+ {
434
+ "anonymous": false,
435
+ "inputs": [
436
+ {
437
+ "indexed": false,
438
+ "internalType": "NftId",
439
+ "name": "stakeNftId",
440
+ "type": "uint96"
441
+ },
442
+ {
443
+ "indexed": false,
444
+ "internalType": "NftId",
445
+ "name": "targetNftId",
446
+ "type": "uint96"
447
+ },
448
+ {
449
+ "indexed": false,
450
+ "internalType": "address",
451
+ "name": "owner",
452
+ "type": "address"
453
+ },
454
+ {
455
+ "indexed": false,
456
+ "internalType": "Amount",
457
+ "name": "stakedAmount",
458
+ "type": "uint96"
459
+ }
460
+ ],
461
+ "name": "LogStakingServiceStakeCreated",
462
+ "type": "event"
463
+ },
464
+ {
465
+ "anonymous": false,
466
+ "inputs": [
467
+ {
468
+ "indexed": false,
469
+ "internalType": "NftId",
470
+ "name": "stakeNftId",
471
+ "type": "uint96"
472
+ },
473
+ {
474
+ "indexed": false,
475
+ "internalType": "address",
476
+ "name": "owner",
477
+ "type": "address"
478
+ },
479
+ {
480
+ "indexed": false,
481
+ "internalType": "Amount",
482
+ "name": "stakedAmount",
483
+ "type": "uint96"
484
+ },
485
+ {
486
+ "indexed": false,
487
+ "internalType": "Amount",
488
+ "name": "stakeBalance",
489
+ "type": "uint96"
490
+ }
491
+ ],
492
+ "name": "LogStakingServiceStakeIncreased",
493
+ "type": "event"
494
+ },
495
+ {
496
+ "anonymous": false,
497
+ "inputs": [
498
+ {
499
+ "indexed": false,
500
+ "internalType": "NftId",
501
+ "name": "stakeNftId",
502
+ "type": "uint96"
503
+ },
504
+ {
505
+ "indexed": false,
506
+ "internalType": "address",
507
+ "name": "stakeOwner",
508
+ "type": "address"
509
+ },
124
510
  {
125
511
  "indexed": false,
126
- "internalType": "uint64",
127
- "name": "version",
128
- "type": "uint64"
512
+ "internalType": "Amount",
513
+ "name": "totalAmount",
514
+ "type": "uint96"
129
515
  }
130
516
  ],
131
- "name": "Initialized",
517
+ "name": "LogStakingServiceUnstaked",
132
518
  "type": "event"
133
519
  },
134
520
  {
@@ -191,7 +577,7 @@
191
577
  "type": "uint96"
192
578
  }
193
579
  ],
194
- "name": "close",
580
+ "name": "claimRewards",
195
581
  "outputs": [],
196
582
  "stateMutability": "nonpayable",
197
583
  "type": "function"
@@ -205,7 +591,7 @@
205
591
  },
206
592
  {
207
593
  "internalType": "Amount",
208
- "name": "amount",
594
+ "name": "dipAmount",
209
595
  "type": "uint96"
210
596
  }
211
597
  ],
@@ -228,22 +614,29 @@
228
614
  "type": "uint96"
229
615
  },
230
616
  {
231
- "internalType": "address",
232
- "name": "token",
233
- "type": "address"
617
+ "internalType": "Seconds",
618
+ "name": "initialLockingPeriod",
619
+ "type": "uint40"
234
620
  },
235
621
  {
236
- "internalType": "Amount",
237
- "name": "amount",
238
- "type": "uint96"
622
+ "internalType": "UFixed",
623
+ "name": "initialRewardRate",
624
+ "type": "uint256"
239
625
  }
240
626
  ],
241
- "name": "decreaseTotalValueLocked",
627
+ "name": "createInstanceTarget",
628
+ "outputs": [],
629
+ "stateMutability": "nonpayable",
630
+ "type": "function"
631
+ },
632
+ {
633
+ "inputs": [],
634
+ "name": "getDipToken",
242
635
  "outputs": [
243
636
  {
244
- "internalType": "Amount",
245
- "name": "totalValueLocked",
246
- "type": "uint96"
637
+ "internalType": "contract IERC20Metadata",
638
+ "name": "dip",
639
+ "type": "address"
247
640
  }
248
641
  ],
249
642
  "stateMutability": "nonpayable",
@@ -255,7 +648,7 @@
255
648
  "outputs": [
256
649
  {
257
650
  "internalType": "ObjectType",
258
- "name": "",
651
+ "name": "serviceDomain",
259
652
  "type": "uint8"
260
653
  }
261
654
  ],
@@ -353,46 +746,56 @@
353
746
  },
354
747
  {
355
748
  "inputs": [],
356
- "name": "getVersion",
749
+ "name": "getRoleId",
357
750
  "outputs": [
358
751
  {
359
- "internalType": "Version",
360
- "name": "",
361
- "type": "uint24"
752
+ "internalType": "RoleId",
753
+ "name": "serviceRoleId",
754
+ "type": "uint64"
362
755
  }
363
756
  ],
364
757
  "stateMutability": "pure",
365
758
  "type": "function"
366
759
  },
367
760
  {
368
- "inputs": [
369
- {
370
- "internalType": "NftId",
371
- "name": "targetNftId",
372
- "type": "uint96"
373
- },
761
+ "inputs": [],
762
+ "name": "getStaking",
763
+ "outputs": [
374
764
  {
375
- "internalType": "address",
376
- "name": "token",
765
+ "internalType": "contract IStaking",
766
+ "name": "staking",
377
767
  "type": "address"
378
- },
379
- {
380
- "internalType": "Amount",
381
- "name": "amount",
382
- "type": "uint96"
383
768
  }
384
769
  ],
385
- "name": "increaseTotalValueLocked",
770
+ "stateMutability": "nonpayable",
771
+ "type": "function"
772
+ },
773
+ {
774
+ "inputs": [],
775
+ "name": "getTokenHandler",
386
776
  "outputs": [
387
777
  {
388
- "internalType": "Amount",
389
- "name": "totalValueLocked",
390
- "type": "uint96"
778
+ "internalType": "contract TokenHandler",
779
+ "name": "tokenHandler",
780
+ "type": "address"
391
781
  }
392
782
  ],
393
783
  "stateMutability": "nonpayable",
394
784
  "type": "function"
395
785
  },
786
+ {
787
+ "inputs": [],
788
+ "name": "getVersion",
789
+ "outputs": [
790
+ {
791
+ "internalType": "Version",
792
+ "name": "",
793
+ "type": "uint24"
794
+ }
795
+ ],
796
+ "stateMutability": "pure",
797
+ "type": "function"
798
+ },
396
799
  {
397
800
  "inputs": [],
398
801
  "name": "initializeERC165",
@@ -523,19 +926,66 @@
523
926
  "stateMutability": "view",
524
927
  "type": "function"
525
928
  },
929
+ {
930
+ "inputs": [],
931
+ "name": "linkToRegisteredNftId",
932
+ "outputs": [
933
+ {
934
+ "internalType": "NftId",
935
+ "name": "nftId",
936
+ "type": "uint96"
937
+ }
938
+ ],
939
+ "stateMutability": "nonpayable",
940
+ "type": "function"
941
+ },
526
942
  {
527
943
  "inputs": [
944
+ {
945
+ "internalType": "NftId",
946
+ "name": "instanceNftId",
947
+ "type": "uint96"
948
+ },
528
949
  {
529
950
  "internalType": "address",
530
- "name": "nftOwnableAddress",
951
+ "name": "rewardProvider",
531
952
  "type": "address"
953
+ },
954
+ {
955
+ "internalType": "Amount",
956
+ "name": "dipAmount",
957
+ "type": "uint96"
532
958
  }
533
959
  ],
534
- "name": "linkToNftOwnable",
960
+ "name": "refillInstanceRewardReserves",
535
961
  "outputs": [
962
+ {
963
+ "internalType": "Amount",
964
+ "name": "newBalance",
965
+ "type": "uint96"
966
+ }
967
+ ],
968
+ "stateMutability": "nonpayable",
969
+ "type": "function"
970
+ },
971
+ {
972
+ "inputs": [
536
973
  {
537
974
  "internalType": "NftId",
538
- "name": "",
975
+ "name": "targetNftId",
976
+ "type": "uint96"
977
+ },
978
+ {
979
+ "internalType": "Amount",
980
+ "name": "dipAmount",
981
+ "type": "uint96"
982
+ }
983
+ ],
984
+ "name": "refillRewardReservesBySender",
985
+ "outputs": [
986
+ {
987
+ "internalType": "Amount",
988
+ "name": "newBalance",
539
989
  "type": "uint96"
540
990
  }
541
991
  ],
@@ -543,8 +993,14 @@
543
993
  "type": "function"
544
994
  },
545
995
  {
546
- "inputs": [],
547
- "name": "linkToRegisteredNftId",
996
+ "inputs": [
997
+ {
998
+ "internalType": "bytes4",
999
+ "name": "interfaceId",
1000
+ "type": "bytes4"
1001
+ }
1002
+ ],
1003
+ "name": "registerInterface",
548
1004
  "outputs": [],
549
1005
  "stateMutability": "nonpayable",
550
1006
  "type": "function"
@@ -562,17 +1018,12 @@
562
1018
  "type": "uint96"
563
1019
  }
564
1020
  ],
565
- "name": "reStake",
1021
+ "name": "restakeToNewTarget",
566
1022
  "outputs": [
567
1023
  {
568
1024
  "internalType": "NftId",
569
1025
  "name": "newStakeNftId",
570
1026
  "type": "uint96"
571
- },
572
- {
573
- "internalType": "Timestamp",
574
- "name": "unlockedAt",
575
- "type": "uint40"
576
1027
  }
577
1028
  ],
578
1029
  "stateMutability": "nonpayable",
@@ -580,18 +1031,13 @@
580
1031
  },
581
1032
  {
582
1033
  "inputs": [
583
- {
584
- "internalType": "NftId",
585
- "name": "targetNftId",
586
- "type": "uint96"
587
- },
588
1034
  {
589
1035
  "internalType": "address",
590
- "name": "token",
1036
+ "name": "newAuthority",
591
1037
  "type": "address"
592
1038
  }
593
1039
  ],
594
- "name": "receiveTotalValueLockedData",
1040
+ "name": "setAuthority",
595
1041
  "outputs": [],
596
1042
  "stateMutability": "nonpayable",
597
1043
  "type": "function"
@@ -599,12 +1045,17 @@
599
1045
  {
600
1046
  "inputs": [
601
1047
  {
602
- "internalType": "bytes4",
603
- "name": "interfaceId",
604
- "type": "bytes4"
1048
+ "internalType": "NftId",
1049
+ "name": "instanceNftId",
1050
+ "type": "uint96"
1051
+ },
1052
+ {
1053
+ "internalType": "Seconds",
1054
+ "name": "lockingPeriod",
1055
+ "type": "uint40"
605
1056
  }
606
1057
  ],
607
- "name": "registerInterface",
1058
+ "name": "setInstanceLockingPeriod",
608
1059
  "outputs": [],
609
1060
  "stateMutability": "nonpayable",
610
1061
  "type": "function"
@@ -613,29 +1064,39 @@
613
1064
  "inputs": [
614
1065
  {
615
1066
  "internalType": "NftId",
616
- "name": "targetNftId",
1067
+ "name": "instanceNftId",
617
1068
  "type": "uint96"
618
1069
  },
619
1070
  {
620
- "internalType": "address",
621
- "name": "token",
622
- "type": "address"
1071
+ "internalType": "UFixed",
1072
+ "name": "rewardRate",
1073
+ "type": "uint256"
623
1074
  }
624
1075
  ],
625
- "name": "sendTotalValueLockedData",
1076
+ "name": "setInstanceRewardRate",
626
1077
  "outputs": [],
627
1078
  "stateMutability": "nonpayable",
628
1079
  "type": "function"
629
1080
  },
630
1081
  {
631
1082
  "inputs": [
1083
+ {
1084
+ "internalType": "NftId",
1085
+ "name": "targetNftId",
1086
+ "type": "uint96"
1087
+ },
632
1088
  {
633
1089
  "internalType": "address",
634
- "name": "newAuthority",
1090
+ "name": "token",
635
1091
  "type": "address"
1092
+ },
1093
+ {
1094
+ "internalType": "Amount",
1095
+ "name": "amount",
1096
+ "type": "uint96"
636
1097
  }
637
1098
  ],
638
- "name": "setAuthority",
1099
+ "name": "setTotalValueLocked",
639
1100
  "outputs": [],
640
1101
  "stateMutability": "nonpayable",
641
1102
  "type": "function"
@@ -649,7 +1110,7 @@
649
1110
  },
650
1111
  {
651
1112
  "internalType": "Amount",
652
- "name": "amount",
1113
+ "name": "dipAmount",
653
1114
  "type": "uint96"
654
1115
  }
655
1116
  ],
@@ -683,14 +1144,22 @@
683
1144
  "internalType": "NftId",
684
1145
  "name": "stakeNftId",
685
1146
  "type": "uint96"
686
- },
1147
+ }
1148
+ ],
1149
+ "name": "unstake",
1150
+ "outputs": [],
1151
+ "stateMutability": "nonpayable",
1152
+ "type": "function"
1153
+ },
1154
+ {
1155
+ "inputs": [
687
1156
  {
688
- "internalType": "Amount",
689
- "name": "amount",
1157
+ "internalType": "NftId",
1158
+ "name": "stakeNftId",
690
1159
  "type": "uint96"
691
1160
  }
692
1161
  ],
693
- "name": "unstake",
1162
+ "name": "updateRewards",
694
1163
  "outputs": [],
695
1164
  "stateMutability": "nonpayable",
696
1165
  "type": "function"
@@ -707,78 +1176,166 @@
707
1176
  "outputs": [],
708
1177
  "stateMutability": "nonpayable",
709
1178
  "type": "function"
1179
+ },
1180
+ {
1181
+ "inputs": [
1182
+ {
1183
+ "internalType": "NftId",
1184
+ "name": "instanceNftId",
1185
+ "type": "uint96"
1186
+ },
1187
+ {
1188
+ "internalType": "Amount",
1189
+ "name": "dipAmount",
1190
+ "type": "uint96"
1191
+ }
1192
+ ],
1193
+ "name": "withdrawInstanceRewardReserves",
1194
+ "outputs": [
1195
+ {
1196
+ "internalType": "Amount",
1197
+ "name": "newBalance",
1198
+ "type": "uint96"
1199
+ }
1200
+ ],
1201
+ "stateMutability": "nonpayable",
1202
+ "type": "function"
710
1203
  }
711
1204
  ],
712
- "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611ca8806100df6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063675393bf1161010f578063ada9652e116100a2578063d44f8a4b11610071578063d44f8a4b146104b7578063e61f8820146102f0578063ea48ce9b146104b7578063f7c34ee0146104ce57600080fd5b8063ada9652e14610439578063b68d18091461044e578063bf7e214f1461045d578063d1c0d10d1461047b57600080fd5b8063893d20e8116100de578063893d20e8146103d65780638cf81e46146103de5780638e32e979146104055780638fb360371461041857600080fd5b8063675393bf1461039a5780636c1e9dff146102cb578063756b30de146103ad5780637a9e5e4b146103c357600080fd5b806327bb7a331161018757806340be23761161015657806340be23761461031957806349bb9e4b146103445780635ab1bd5314610357578063644c45e01461037c57600080fd5b806327bb7a33146102dd5780632b911ead146102f0578063329d6e74146102fe57806336fc697e1461031157600080fd5b8063138461e0116101c3578063138461e01461027b5780631eff4b2214610283578063214cdb80146102b857806326889b09146102cb57600080fd5b806301ffc9a7146101f55780630aaba8e8146102375780630d8e6e2c1461024a5780630fec111c14610266575b600080fd5b610222610203366004611577565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102486102453660046115bd565b50565b005b6102526104e1565b60405162ffffff909116815260200161022e565b61026e61056b565b60405161022e9190611620565b6102486106be565b6102aa7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161022e565b6102486102c6366004611577565b6106c7565b6102486102d93660046116ab565b5050565b6102486102eb3660046117b8565b6106f4565b6102486102d9366004611850565b61024861030c36600461187e565b610799565b6102486108e6565b61032c6103273660046118b2565b61092c565b6040516001600160601b03909116815260200161022e565b6102486103523660046118cf565b61097d565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161022e565b600080516020611c13833981519152546001600160601b031661032c565b6102486103a83660046118b2565b610a7c565b61032c6103bb3660046116ab565b600092915050565b6102486103d13660046118b2565b610b85565b610364610c1f565b6102aa7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa30081565b61024861041336600461191e565b610d56565b610420610f8f565b6040516001600160e01b0319909116815260200161022e565b6102aa600080516020611c1383398151915281565b6040516050815260200161022e565b600080516020611c33833981519152546001600160a01b0316610364565b6104926104893660046116ab565b50600091829150565b604080516001600160601b03909316835264ffffffffff90911660208301520161022e565b61032c6104c5366004611969565b60009392505050565b6102486104dc3660046119a9565b610fc7565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610542573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056691906119c7565b905090565b6040805160e0808201835260008083526020830181905282840181905260608084018290526080840182905260a0840182905260c0840152835191820190935290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa300919081906001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00161061a610c1f565b6001600160a01b03168152602001826001018054610637906119ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610663906119ec565b80156106b05780601f10610685576101008083540402835291602001916106b0565b820191906000526020600020905b81548152906001019060200180831161069357829003601f168201915b505050505081525091505090565b6102453061103e565b6106cf61123f565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6106fc61123f565b6107068287610fc7565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30161078f8382611a74565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c6107bb6104e1565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af41580156107fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081f9190611b33565b600080516020611c538339815191528054600160401b900460ff1680610852575080546001600160401b03808416911610155b156108705760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561089a83611278565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b6108ee61123f565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6000610936610c1f565b6001600160a01b0316336001600160a01b03161461096e5760405163086391f760e31b81523360048201526024015b60405180910390fd5b6109778261103e565b92915050565b600080516020611c538339815191528054600160401b810460ff1615906001600160401b03166000811580156109b05750825b90506000826001600160401b031660011480156109cc5750303b155b9050811580156109da575080155b156109f85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a2257845460ff60401b1916600160401b1785555b610a2c8787611280565b8315610a7357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b610a8461123f565b806001600160a01b03163b600003610aba5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610965565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526312da491160e01b60048201526301ffc9a790602401602060405180830381865afa925050508015610b34575060408051601f3d908101601f19168201909252610b3191810190611b5c565b60015b610b5c5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610965565b806102d95760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610965565b33610ba5600080516020611c33833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610be05760405162d1953b60e31b81526001600160a01b0382166004820152602401610965565b816001600160a01b03163b600003610c16576040516361798f2f60e11b81526001600160a01b0383166004820152602401610965565b6102d9826113e7565b600080600080516020611c1383398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb39190611b5c565b15610d40576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3a9190611b79565b91505090565b54600160601b90046001600160a01b0316919050565b610d5e61123f565b610dde83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc49190611b96565b603c600085604051806020016040528060008152506106f4565b6001600160a01b03821615610dfb57610df682611448565b610f6a565b6000610e0f6001546001600160a01b031690565b6001600160a01b031663d39e60436028604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015610e6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e939190611bb3565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015610ed8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efc9190611b79565b9050610f68816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f639190611b79565b611448565b505b610f7a634a531f3360e01b6106c7565b610f8a63b68d180960e01b6106c7565b505050565b600080516020611c33833981519152805460009190600160a01b900460ff16610fb9576000610d3a565b638fb3603760e01b91505090565b610fcf61123f565b610fd881610a7c565b610fe06108e6565b6001600160a01b0382166110075760405163f17ef42d60e01b815260040160405180910390fd5b50600080516020611c1383398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b600080600080516020611c1383398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d29190611b5c565b156110fe5780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610965565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111769190611b5c565b61119e5760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610965565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa1580156111f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112169190611b96565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b600080516020611c5383398151915254600160401b900460ff1661127657604051631afcd79f60e31b815260040160405180910390fd5b565b6101f061123f565b600080516020611c538339815191528054600160401b810460ff1615906001600160401b03166000811580156112b35750825b90506000826001600160401b031660011480156112cf5750303b155b9050811580156112dd575080155b156112fb5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561132557845460ff60401b1916600160401b1785555b6000808780602001905181019061133c9190611bd0565b925050915061134c82828b610d56565b7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300611377608c611459565b81546001600160a01b0319166001600160a01b03919091161781556113a2630171f9d960e41b6106c7565b5050508315610a7357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610a6a565b600080516020611c3383398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b61145061123f565b61024581611566565b600061146d6001546001600160a01b031690565b6001600160a01b031663d39e6043836114846104e1565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af41580156114d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fd9190611bb3565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109779190611b79565b61156e61123f565b610245816113e7565b60006020828403121561158957600080fd5b81356001600160e01b0319811681146115a157600080fd5b9392505050565b6001600160601b038116811461024557600080fd5b6000602082840312156115cf57600080fd5b81356115a1816115a8565b6000815180845260005b81811015611600576020818501810151868301820152016115e4565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015161168960c08401826001600160a01b03169052565b5060c083015160e0808401526116a36101008401826115da565b949350505050565b600080604083850312156116be57600080fd5b82356116c9816115a8565b915060208301356116d9816115a8565b809150509250929050565b6001600160a01b038116811461024557600080fd5b60ff8116811461024557600080fd5b801515811461024557600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261173d57600080fd5b81356001600160401b038082111561175757611757611716565b604051601f8301601f19908116603f0116810190828211818310171561177f5761177f611716565b8160405283815286602085880101111561179857600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c087890312156117d157600080fd5b86356117dc816116e4565b955060208701356117ec816115a8565b945060408701356117fc816116f9565b9350606087013561180c81611708565b9250608087013561181c816116e4565b915060a08701356001600160401b0381111561183757600080fd5b61184389828a0161172c565b9150509295509295509295565b6000806040838503121561186357600080fd5b823561186e816115a8565b915060208301356116d9816116e4565b60006020828403121561189057600080fd5b81356001600160401b038111156118a657600080fd5b6116a38482850161172c565b6000602082840312156118c457600080fd5b81356115a1816116e4565b600080604083850312156118e257600080fd5b82356118ed816116e4565b915060208301356001600160401b0381111561190857600080fd5b6119148582860161172c565b9150509250929050565b60008060006060848603121561193357600080fd5b833561193e816116e4565b9250602084013561194e816116e4565b9150604084013561195e816116e4565b809150509250925092565b60008060006060848603121561197e57600080fd5b8335611989816115a8565b92506020840135611999816116e4565b9150604084013561195e816115a8565b600080604083850312156119bc57600080fd5b823561186e816116e4565b6000602082840312156119d957600080fd5b815162ffffff811681146115a157600080fd5b600181811c90821680611a0057607f821691505b602082108103611a2057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f8a57600081815260208120601f850160051c81016020861015611a4d5750805b601f850160051c820191505b81811015611a6c57828155600101611a59565b505050505050565b81516001600160401b03811115611a8d57611a8d611716565b611aa181611a9b84546119ec565b84611a26565b602080601f831160018114611ad65760008415611abe5750858301515b600019600386901b1c1916600185901b178555611a6c565b600085815260208120601f198616915b82811015611b0557888601518255948401946001909101908401611ae6565b5085821015611b235787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215611b4557600080fd5b81516001600160401b03811681146115a157600080fd5b600060208284031215611b6e57600080fd5b81516115a181611708565b600060208284031215611b8b57600080fd5b81516115a1816116e4565b600060208284031215611ba857600080fd5b81516115a1816115a8565b600060208284031215611bc557600080fd5b81516115a1816116f9565b600080600060608486031215611be557600080fd5b8351611bf0816116e4565b6020850151909350611c01816116e4565b604085015190925061195e816116e456fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212209104ac7a7b1d8382d069e4126db9f52681c618e1b54de5eca5b1958ac5c1636664736f6c63430008140033",
713
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c8063675393bf1161010f578063ada9652e116100a2578063d44f8a4b11610071578063d44f8a4b146104b7578063e61f8820146102f0578063ea48ce9b146104b7578063f7c34ee0146104ce57600080fd5b8063ada9652e14610439578063b68d18091461044e578063bf7e214f1461045d578063d1c0d10d1461047b57600080fd5b8063893d20e8116100de578063893d20e8146103d65780638cf81e46146103de5780638e32e979146104055780638fb360371461041857600080fd5b8063675393bf1461039a5780636c1e9dff146102cb578063756b30de146103ad5780637a9e5e4b146103c357600080fd5b806327bb7a331161018757806340be23761161015657806340be23761461031957806349bb9e4b146103445780635ab1bd5314610357578063644c45e01461037c57600080fd5b806327bb7a33146102dd5780632b911ead146102f0578063329d6e74146102fe57806336fc697e1461031157600080fd5b8063138461e0116101c3578063138461e01461027b5780631eff4b2214610283578063214cdb80146102b857806326889b09146102cb57600080fd5b806301ffc9a7146101f55780630aaba8e8146102375780630d8e6e2c1461024a5780630fec111c14610266575b600080fd5b610222610203366004611577565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102486102453660046115bd565b50565b005b6102526104e1565b60405162ffffff909116815260200161022e565b61026e61056b565b60405161022e9190611620565b6102486106be565b6102aa7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161022e565b6102486102c6366004611577565b6106c7565b6102486102d93660046116ab565b5050565b6102486102eb3660046117b8565b6106f4565b6102486102d9366004611850565b61024861030c36600461187e565b610799565b6102486108e6565b61032c6103273660046118b2565b61092c565b6040516001600160601b03909116815260200161022e565b6102486103523660046118cf565b61097d565b6001546001600160a01b03165b6040516001600160a01b03909116815260200161022e565b600080516020611c13833981519152546001600160601b031661032c565b6102486103a83660046118b2565b610a7c565b61032c6103bb3660046116ab565b600092915050565b6102486103d13660046118b2565b610b85565b610364610c1f565b6102aa7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa30081565b61024861041336600461191e565b610d56565b610420610f8f565b6040516001600160e01b0319909116815260200161022e565b6102aa600080516020611c1383398151915281565b6040516050815260200161022e565b600080516020611c33833981519152546001600160a01b0316610364565b6104926104893660046116ab565b50600091829150565b604080516001600160601b03909316835264ffffffffff90911660208301520161022e565b61032c6104c5366004611969565b60009392505050565b6102486104dc3660046119a9565b610fc7565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610542573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056691906119c7565b905090565b6040805160e0808201835260008083526020830181905282840181905260608084018290526080840182905260a0840182905260c0840152835191820190935290917f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa300919081906001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a00161061a610c1f565b6001600160a01b03168152602001826001018054610637906119ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610663906119ec565b80156106b05780601f10610685576101008083540402835291602001916106b0565b820191906000526020600020905b81548152906001019060200180831161069357829003601f168201915b505050505081525091505090565b6102453061103e565b6106cf61123f565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b6106fc61123f565b6107068287610fc7565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30161078f8382611a74565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c6107bb6104e1565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af41580156107fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081f9190611b33565b600080516020611c538339815191528054600160401b900460ff1680610852575080546001600160401b03808416911610155b156108705760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561089a83611278565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b6108ee61123f565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6000610936610c1f565b6001600160a01b0316336001600160a01b03161461096e5760405163086391f760e31b81523360048201526024015b60405180910390fd5b6109778261103e565b92915050565b600080516020611c538339815191528054600160401b810460ff1615906001600160401b03166000811580156109b05750825b90506000826001600160401b031660011480156109cc5750303b155b9050811580156109da575080155b156109f85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a2257845460ff60401b1916600160401b1785555b610a2c8787611280565b8315610a7357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b610a8461123f565b806001600160a01b03163b600003610aba5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610965565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b81526312da491160e01b60048201526301ffc9a790602401602060405180830381865afa925050508015610b34575060408051601f3d908101601f19168201909252610b3191810190611b5c565b60015b610b5c5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610965565b806102d95760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610965565b33610ba5600080516020611c33833981519152546001600160a01b031690565b6001600160a01b0316816001600160a01b031614610be05760405162d1953b60e31b81526001600160a01b0382166004820152602401610965565b816001600160a01b03163b600003610c16576040516361798f2f60e11b81526001600160a01b0383166004820152602401610965565b6102d9826113e7565b600080600080516020611c1383398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015610c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb39190611b5c565b15610d40576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3a9190611b79565b91505090565b54600160601b90046001600160a01b0316919050565b610d5e61123f565b610dde83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc49190611b96565b603c600085604051806020016040528060008152506106f4565b6001600160a01b03821615610dfb57610df682611448565b610f6a565b6000610e0f6001546001600160a01b031690565b6001600160a01b031663d39e60436028604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015610e6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e939190611bb3565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015610ed8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efc9190611b79565b9050610f68816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f639190611b79565b611448565b505b610f7a634a531f3360e01b6106c7565b610f8a63b68d180960e01b6106c7565b505050565b600080516020611c33833981519152805460009190600160a01b900460ff16610fb9576000610d3a565b638fb3603760e01b91505090565b610fcf61123f565b610fd881610a7c565b610fe06108e6565b6001600160a01b0382166110075760405163f17ef42d60e01b815260040160405180910390fd5b50600080516020611c1383398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b600080600080516020611c1383398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156110ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d29190611b5c565b156110fe5780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610965565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa158015611152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111769190611b5c565b61119e5760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610965565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa1580156111f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112169190611b96565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b600080516020611c5383398151915254600160401b900460ff1661127657604051631afcd79f60e31b815260040160405180910390fd5b565b6101f061123f565b600080516020611c538339815191528054600160401b810460ff1615906001600160401b03166000811580156112b35750825b90506000826001600160401b031660011480156112cf5750303b155b9050811580156112dd575080155b156112fb5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561132557845460ff60401b1916600160401b1785555b6000808780602001905181019061133c9190611bd0565b925050915061134c82828b610d56565b7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300611377608c611459565b81546001600160a01b0319166001600160a01b03919091161781556113a2630171f9d960e41b6106c7565b5050508315610a7357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610a6a565b600080516020611c3383398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b61145061123f565b61024581611566565b600061146d6001546001600160a01b031690565b6001600160a01b031663d39e6043836114846104e1565b60405163c9e66e2960e01b815262ffffff909116600482015273__$8eede297b65ed5a56eb3f84d8232ae93f5$__9063c9e66e2990602401602060405180830381865af41580156114d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fd9190611bb3565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109779190611b79565b61156e61123f565b610245816113e7565b60006020828403121561158957600080fd5b81356001600160e01b0319811681146115a157600080fd5b9392505050565b6001600160601b038116811461024557600080fd5b6000602082840312156115cf57600080fd5b81356115a1816115a8565b6000815180845260005b81811015611600576020818501810151868301820152016115e4565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a083015161168960c08401826001600160a01b03169052565b5060c083015160e0808401526116a36101008401826115da565b949350505050565b600080604083850312156116be57600080fd5b82356116c9816115a8565b915060208301356116d9816115a8565b809150509250929050565b6001600160a01b038116811461024557600080fd5b60ff8116811461024557600080fd5b801515811461024557600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f83011261173d57600080fd5b81356001600160401b038082111561175757611757611716565b604051601f8301601f19908116603f0116810190828211818310171561177f5761177f611716565b8160405283815286602085880101111561179857600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c087890312156117d157600080fd5b86356117dc816116e4565b955060208701356117ec816115a8565b945060408701356117fc816116f9565b9350606087013561180c81611708565b9250608087013561181c816116e4565b915060a08701356001600160401b0381111561183757600080fd5b61184389828a0161172c565b9150509295509295509295565b6000806040838503121561186357600080fd5b823561186e816115a8565b915060208301356116d9816116e4565b60006020828403121561189057600080fd5b81356001600160401b038111156118a657600080fd5b6116a38482850161172c565b6000602082840312156118c457600080fd5b81356115a1816116e4565b600080604083850312156118e257600080fd5b82356118ed816116e4565b915060208301356001600160401b0381111561190857600080fd5b6119148582860161172c565b9150509250929050565b60008060006060848603121561193357600080fd5b833561193e816116e4565b9250602084013561194e816116e4565b9150604084013561195e816116e4565b809150509250925092565b60008060006060848603121561197e57600080fd5b8335611989816115a8565b92506020840135611999816116e4565b9150604084013561195e816115a8565b600080604083850312156119bc57600080fd5b823561186e816116e4565b6000602082840312156119d957600080fd5b815162ffffff811681146115a157600080fd5b600181811c90821680611a0057607f821691505b602082108103611a2057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f8a57600081815260208120601f850160051c81016020861015611a4d5750805b601f850160051c820191505b81811015611a6c57828155600101611a59565b505050505050565b81516001600160401b03811115611a8d57611a8d611716565b611aa181611a9b84546119ec565b84611a26565b602080601f831160018114611ad65760008415611abe5750858301515b600019600386901b1c1916600185901b178555611a6c565b600085815260208120601f198616915b82811015611b0557888601518255948401946001909101908401611ae6565b5085821015611b235787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215611b4557600080fd5b81516001600160401b03811681146115a157600080fd5b600060208284031215611b6e57600080fd5b81516115a181611708565b600060208284031215611b8b57600080fd5b81516115a1816116e4565b600060208284031215611ba857600080fd5b81516115a1816115a8565b600060208284031215611bc557600080fd5b81516115a1816116f9565b600080600060608486031215611be557600080fd5b8351611bf0816116e4565b6020850151909350611c01816116e4565b604085015190925061195e816116e456fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212209104ac7a7b1d8382d069e4126db9f52681c618e1b54de5eca5b1958ac5c1636664736f6c63430008140033",
1205
+ "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6138bd80620000e66000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c8063756b30de1161013b578063a8b9328a116100b8578063dea4ccf21161007c578063dea4ccf214610584578063dec3bdde14610597578063f11bcbe7146105aa578063f67fef6d146105da578063f7c34ee0146105ed57600080fd5b8063a8b9328a14610532578063ada9652e14610545578063b68d18091461055a578063bf7e214f14610569578063db1e36e71461057157600080fd5b8063893d20e8116100ff578063893d20e8146104ce5780638cf81e46146104d65780638e32e979146104eb5780638fb36037146104fe578063943bd1971461051f57600080fd5b8063756b30de146104525780637a9e5e4b146104655780637b1391a61461047857806381d9b45f146104a857806386b0e019146104bb57600080fd5b8063329d6e74116101c9578063644c45e01161018d578063644c45e0146103db578063675393bf146103f95780636c1e9dff1461040c5780636c741e781461041f578063719f761a1461043f57600080fd5b8063329d6e741461035857806336fc697e1461036b57806343d752d31461037357806349bb9e4b146103b75780635ab1bd53146103ca57600080fd5b8063138461e011610210578063138461e0146102ca5780631eff4b22146102ea578063214cdb801461031f57806321ece6571461033257806327bb7a331461034557600080fd5b806301ffc9a7146102425780630d8e6e2c146102845780630fec111c146102a057806310a0638a146102b5575b600080fd5b61026f610250366004612dd6565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61028c610600565b60405162ffffff909116815260200161027b565b6102a861068a565b60405161027b9190612e50565b6102c86102c3366004612ee8565b61084e565b005b6102d2610917565b6040516001600160601b03909116815260200161027b565b6103117f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161027b565b6102c861032d366004612dd6565b610922565b6102d2610340366004612f05565b61094f565b6102c861035336600461305b565b610b22565b6102c86103663660046130f3565b610bc7565b6102c8610d14565b7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa303546001600160a01b03165b6040516001600160a01b03909116815260200161027b565b6102c86103c5366004613127565b610d5a565b6001546001600160a01b031661039f565b600080516020613808833981519152546001600160601b03166102d2565b6102c8610407366004613176565b610e59565b6102c861041a366004612f05565b610f6c565b610427611299565b6040516001600160401b03909116815260200161027b565b6102c861044d366004612ee8565b611394565b6102d2610460366004612f05565b61159f565b6102c8610473366004613176565b61184b565b7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa301546001600160a01b031661039f565b6102c86104b63660046131ad565b6118ce565b6102d26104c9366004612f05565b6119c1565b61039f6119e0565b61031160008051602061384883398151915281565b6102c86104f93660046131eb565b611b17565b610506611c5b565b6040516001600160e01b0319909116815260200161027b565b6102c861052d366004613236565b611c93565b6102c8610540366004613276565b611c9c565b61031160008051602061380883398151915281565b6040516003815260200161027b565b61039f611d36565b6102c861057f3660046132a2565b611d52565b6102c8610592366004612ee8565b611dc0565b6102d26105a5366004613236565b611fd8565b7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa302546001600160a01b031661039f565b6102d26105e8366004612f05565b611fee565b6102c86105fb3660046132d7565b6120b1565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610661573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106859190613305565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561073e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107629190613335565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016107aa6119e0565b6001600160a01b031681526020018260010180546107c790613352565b80601f01602080910402602001604051908101604052809291908181526020018280546107f390613352565b80156108405780601f1061081557610100808354040283529160200191610840565b820191906000526020600020905b81548152906001019060200180831161082357829003601f168201915b505050505081525091505090565b61085b335b600036612128565b6000600080516020613848833981519152600181015460405163085031c560e11b81526001600160601b03851660048201529192506001600160a01b0316906310a0638a90602401600060405180830381600087803b1580156108bd57600080fd5b505af11580156108d1573d6000803e3d6000fd5b50506040516001600160601b03851681527ff154111adc6084a644ef1d75dc89b5549b77bd22f0ceb8607501175f6cf3da35925060200190505b60405180910390a15050565b600061068530612226565b61092a612427565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b600061095a33610853565b6000600080516020613848833981519152600181015460405163e8ce883d60e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063e8ce883d906044016020604051808303816000875af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed9190613335565b91506000610a036001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03871660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190613397565b60018301546040516331449be960e11b81529192506001600160a01b03169063628937d290610aab90849088906004016133b4565b600060405180830381600087803b158015610ac557600080fd5b505af1158015610ad9573d6000803e3d6000fd5b505050507f1cbf8b37af4df8c27db081983bda17400796238db4d1edf44edacf559b3a25d785828686604051610b1294939291906133d6565b60405180910390a1505092915050565b610b2a612427565b610b3482876120b1565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa301610bbd8382613450565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c610be9610600565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4d9190613524565b6000805160206138688339815191528054600160401b900460ff1680610c80575080546001600160401b03808416911610155b15610c9e5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610cc883612460565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b610d1c612427565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6000805160206138688339815191528054600160401b810460ff1615906001600160401b0316600081158015610d8d5750825b90506000826001600160401b03166001148015610da95750303b155b905081158015610db7575080155b15610dd55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610dff57845460ff60401b1916600160401b1785555b610e098787612468565b8315610e5057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b610e61612427565b806001600160a01b03163b600003610e9c5760405163fdeac91f60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e607072160e01b60048201526301ffc9a790602401602060405180830381865afa925050508015610f16575060408051601f3d908101601f19168201909252610f139181019061354c565b60015b610f3e5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610e93565b80610f675760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610e93565b505b50565b610f7533610853565b81610f886001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03831660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb9190613397565b6001600160a01b0316336001600160a01b0316146110d157806110266001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03841660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015611075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110999190613397565b604051620d652560ea1b81526001600160601b0390921660048301526001600160a01b03166024820152336044820152606401610e93565b60006000805160206138488339815191526001810154604051636c1e9dff60e01b81526001600160601b0380881660048301528616602482015291925033916000916001600160a01b031690636c1e9dff906044016020604051808303816000875af1158015611145573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111699190613335565b6040516330b8415f60e01b81526001600160601b038716600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af41580156111c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e8919061354c565b1561125457600183015460405163e3a817cd60e01b81526001600160a01b039091169063e3a817cd9061122190859089906004016133b4565b600060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050505b7f51bb449f96e2d4d2c1cbcba003bf8c0e4859c17581ce0bc7542fd6d6279e9b9d8683878460405161128994939291906133d6565b60405180910390a1505050505050565b600073__$1d92393fa9ccd763988368ce8a1cb90d26$__63dda777d36003604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015611307573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132b9190613574565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865af4158015611370573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106859190613524565b61139d33610853565b806113b06001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03831660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156113ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114239190613397565b6001600160a01b0316336001600160a01b03161461144e57806110266001546001600160a01b031690565b600060008051602061384883398151915260018101546040516338cfbb0d60e11b81526001600160601b038616600482015291925033916000916001600160a01b03169063719f761a906024016020604051808303816000875af11580156114ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114de9190613335565b60018401546040516331449be960e11b81529192506001600160a01b03169063628937d29061151390859085906004016133b4565b600060405180830381600087803b15801561152d57600080fd5b505af1158015611541573d6000803e3d6000fd5b5050604080516001600160601b0389811682526001600160a01b038716602083015285168183015290517f560ee8c0a69c814defd43602fe8eb63663bc8df678239a581d560f7ed67afda89350908190036060019150a15050505050565b60006115aa33610853565b60008051602061384883398151915280546040805160e0810180835263bc1b392d60e01b9052905133926001600160a01b031691638105cc7f91819073__$94a2c899be079b00d952d0d84fffaa5c34$__9063bc1b392d9060e4808501916020918187030181865af4158015611624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116489190613335565b6001600160601b03168152602001886001600160601b0316815260200161166d602090565b60ff16815260200160001515815260200160006001600160a01b03168152602001846001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b81526004016116cc9190612e50565b6020604051808303816000875af11580156116eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170f9190613335565b6001830154604051630c7b317360e21b81526001600160601b0380841660048301528089166024830152871660448201529194506001600160a01b0316906331ecc5cc90606401600060405180830381600087803b15801561177057600080fd5b505af1158015611784573d6000803e3d6000fd5b505050600183015460405163e3a817cd60e01b81526001600160a01b03909116915063e3a817cd906117bc90849088906004016133b4565b600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b5050604080516001600160601b038088168252808a1660208301526001600160a01b0386169282019290925290871660608201527fbba1f5229b1626c1685c27c3604dd3296a6a69391e1ed009f8c176aa63b8e1d792506080019050610b12565b33611854611d36565b6001600160a01b0316816001600160a01b03161461188f5760405162d1953b60e31b81526001600160a01b0382166004820152602401610e93565b816001600160a01b03163b6000036118c5576040516361798f2f60e11b81526001600160a01b0383166004820152602401610e93565b610f67826126f2565b6118d733610853565b46600080516020613848833981519152600101546001600160a01b031663562119ee85600a6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044810184905264ffffffffff861660648201526084810185905260a401600060405180830381600087803b15801561196057600080fd5b505af1158015611974573d6000803e3d6000fd5b5050604080516001600160601b0388168152602081018590527f471a2845289928aa76c379fe01dc0310ebf5000e7a977935811e173bdda224bd935001905060405180910390a150505050565b60006119cc33610853565b336119d884828561274c565b949350505050565b60008060008051602061380883398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611a50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a74919061354c565b15611b01576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015611ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afb9190613397565b91505090565b54600160601b90046001600160a01b0316919050565b611b1f612427565b611b9f83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b859190613335565b600960008560405180602001604052806000815250610b22565b6001600160a01b03821615611bbc57611bb78261288c565b611c36565b6000611bc8600261289d565b9050611c34816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2f9190613397565b61288c565b505b611c46634a531f3360e01b610922565b611c5663daf9067160e01b610922565b505050565b600080516020613828833981519152805460009190600160a01b900460ff16611c85576000611afb565b638fb3603760e01b91505090565b611c5633610853565b611ca533610853565b7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa30154604051632a80f67360e01b81526001600160601b0384166004820152602481018390526001600160a01b0390911690632a80f673906044015b600060405180830381600087803b158015611d1a57600080fd5b505af1158015611d2e573d6000803e3d6000fd5b505050505050565b600080516020613828833981519152546001600160a01b031690565b611d5b33610853565b7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa30154604051635ecf260f60e01b81526001600160601b038416600482015264ffffffffff831660248201526001600160a01b0390911690635ecf260f90604401611d00565b611dc933610853565b80611ddc6001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03831660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015611e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4f9190613397565b6001600160a01b0316336001600160a01b031614611e7a57806110266001546001600160a01b031690565b60006000805160206138488339815191526001810154604051636f52667960e11b81526001600160601b0386166004820152919250339160009182916001600160a01b039091169063dea4ccf29060240160408051808303816000875af1158015611ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0d9190613591565b915091506000611f1d83836129a9565b60018601546040516331449be960e11b81529192506001600160a01b03169063628937d290611f5290879085906004016133b4565b600060405180830381600087803b158015611f6c57600080fd5b505af1158015611f80573d6000803e3d6000fd5b5050604080516001600160601b03808c1682526001600160a01b03891660208301528516918101919091527fce678d95d8c12c4b7d7089c8f7db920fe5cc49352696a601b9e41f65ea3fd23992506060019050610e47565b6000611fe333610853565b6119d884848461274c565b6000611ff933610853565b8261200c6001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03831660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa15801561205b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207f9190613397565b6001600160a01b0316336001600160a01b0316146120aa57806110266001546001600160a01b031690565b5092915050565b6120b9612427565b6120c281610e59565b6120ca610d14565b6001600160a01b0382166120f15760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061380883398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b600080516020613828833981519152600080612163612145611d36565b8730612155600460008a8c6135c0565b61215e916135ea565b612a37565b9150915081611d2e5763ffffffff81161561220357825460ff60a01b1916600160a01b178355612191611d36565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b81526004016121c09392919061361a565b600060405180830381600087803b1580156121da57600080fd5b505af11580156121ee573d6000803e3d6000fd5b5050845460ff60a01b1916855550611d2e9050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610e93565b60008060008051602061380883398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015612296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ba919061354c565b156122e65780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610e93565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa15801561233a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235e919061354c565b6123865760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610e93565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa1580156123da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123fe9190613335565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b60008051602061386883398151915254600160401b900460ff1661245e57604051631afcd79f60e31b815260040160405180910390fd5b565b61023d612427565b6000805160206138688339815191528054600160401b810460ff1615906001600160401b031660008115801561249b5750825b90506000826001600160401b031660011480156124b75750303b155b9050811580156124c5575080155b156124e35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561250d57845460ff60401b1916600160401b1785555b600080600088806020019051810190612526919061365a565b92509250925061253782848c611b17565b600080516020613848833981519152612550600261289d565b81546001600160a01b0319166001600160a01b039190911617815561257482612b43565b6001820180546001600160a01b0319166001600160a01b03929092169182179055604080516321df0da760e01b815290516321df0da7916004808201926020929091908290030181865afa1580156125d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f49190613397565b6002820180546001600160a01b0319166001600160a01b039283161790556001820154604080516343d752d360e01b8152905191909216916343d752d39160048083019260209291908290030181865afa158015612656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267a9190613397565b6003820180546001600160a01b0319166001600160a01b03929092169190911790556126ac638694498960e01b610922565b505050508315610e5057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610e47565b60008051602061382883398151915280546001600160a01b0319166001600160a01b03831690811782556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200161090b565b600080600080516020613848833981519152600181015460405163de0eb85f60e01b81526001600160601b038089166004830152861660248201529192506001600160a01b03169063de0eb85f906044016020604051808303816000875af11580156127bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e09190613335565b600182015460405163e3a817cd60e01b81529193506001600160a01b03169063e3a817cd9061281590879087906004016133b4565b600060405180830381600087803b15801561282f57600080fd5b505af1158015612843573d6000803e3d6000fd5b505050507fcf86366087b008a90b57f4e7b955b94599f589d7267649942abfd34305fe5b2f8585858560405161287c94939291906133d6565b60405180910390a1509392505050565b612894612427565b610f6981612dc5565b60006128b16001546001600160a01b031690565b604051632392b61b60e21b8152600360048201526001600160a01b03919091169063d39e604390849073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015612916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061293a9190613574565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a39190613397565b92915050565b60405163274acb3560e01b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb3590604401602060405180830381865af4158015612a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a309190613335565b9392505050565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251612aa6919061369c565b600060405180830381855afa9150503d8060008114612ae1576040519150601f19603f3d011682016040523d82523d6000602084013e612ae6565b606091505b50915091508115612b38576040815110612b185780806020019051810190612b0e91906136b8565b9094509250612b38565b6020815110612b385780806020019051810190612b35919061354c565b93505b505094509492505050565b600080612b586001546001600160a01b031690565b6040516308b09a5f60e41b81526001600160a01b0385811660048301529190911690638b09a5f090602401600060405180830381865afa158015612ba0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bc89190810190613735565b80516040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015612c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4a919061354c565b15612c9b57612c6b8160400151612c5f600390565b60ff9081169116141590565b15612c9457604051637dbf3cff60e11b81526001600160a01b0384166004820152602401610e93565b5090919050565b6040516301ffc9a760e01b815263fef8804160e01b60048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa158015612ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d0a919061354c565b612d3257604051632bf4d8e560e21b81526001600160a01b0384166004820152602401610e93565b336000805160206138488339815191525460405163c4c79d8b60e01b81526001600160a01b03868116600483015283811660248301529091169063c4c79d8b906044016000604051808303816000875af1158015612d94573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612dbc9190810190613735565b50929392505050565b612dcd612427565b610f69816126f2565b600060208284031215612de857600080fd5b81356001600160e01b031981168114612a3057600080fd5b60005b83811015612e1b578181015183820152602001612e03565b50506000910152565b60008151808452612e3c816020860160208601612e00565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a0830151612eb960c08401826001600160a01b03169052565b5060c083015160e0808401526119d8610100840182612e24565b6001600160601b0381168114610f6957600080fd5b600060208284031215612efa57600080fd5b8135612a3081612ed3565b60008060408385031215612f1857600080fd5b8235612f2381612ed3565b91506020830135612f3381612ed3565b809150509250929050565b6001600160a01b0381168114610f6957600080fd5b60ff81168114610f6957600080fd5b8015158114610f6957600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715612fa857612fa8612f70565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612fd657612fd6612f70565b604052919050565b60006001600160401b03821115612ff757612ff7612f70565b50601f01601f191660200190565b600082601f83011261301657600080fd5b813561302961302482612fde565b612fae565b81815284602083860101111561303e57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c0878903121561307457600080fd5b863561307f81612f3e565b9550602087013561308f81612ed3565b9450604087013561309f81612f53565b935060608701356130af81612f62565b925060808701356130bf81612f3e565b915060a08701356001600160401b038111156130da57600080fd5b6130e689828a01613005565b9150509295509295509295565b60006020828403121561310557600080fd5b81356001600160401b0381111561311b57600080fd5b6119d884828501613005565b6000806040838503121561313a57600080fd5b823561314581612f3e565b915060208301356001600160401b0381111561316057600080fd5b61316c85828601613005565b9150509250929050565b60006020828403121561318857600080fd5b8135612a3081612f3e565b803564ffffffffff811681146131a857600080fd5b919050565b6000806000606084860312156131c257600080fd5b83356131cd81612ed3565b92506131db60208501613193565b9150604084013590509250925092565b60008060006060848603121561320057600080fd5b833561320b81612f3e565b9250602084013561321b81612f3e565b9150604084013561322b81612f3e565b809150509250925092565b60008060006060848603121561324b57600080fd5b833561325681612ed3565b9250602084013561326681612f3e565b9150604084013561322b81612ed3565b6000806040838503121561328957600080fd5b823561329481612ed3565b946020939093013593505050565b600080604083850312156132b557600080fd5b82356132c081612ed3565b91506132ce60208401613193565b90509250929050565b600080604083850312156132ea57600080fd5b82356132f581612f3e565b91506020830135612f3381612f3e565b60006020828403121561331757600080fd5b815162ffffff81168114612a3057600080fd5b80516131a881612ed3565b60006020828403121561334757600080fd5b8151612a3081612ed3565b600181811c9082168061336657607f821691505b60208210810361338657634e487b7160e01b600052602260045260246000fd5b50919050565b80516131a881612f3e565b6000602082840312156133a957600080fd5b8151612a3081612f3e565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160601b0394851681526001600160a01b039390931660208401529083166040830152909116606082015260800190565b601f821115611c5657600081815260208120601f850160051c810160208610156134315750805b601f850160051c820191505b81811015611d2e5782815560010161343d565b81516001600160401b0381111561346957613469612f70565b61347d816134778454613352565b8461340a565b602080601f8311600181146134b2576000841561349a5750858301515b600019600386901b1c1916600185901b178555611d2e565b600085815260208120601f198616915b828110156134e1578886015182559484019460019091019084016134c2565b50858210156134ff5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b0381168114610f6957600080fd5b60006020828403121561353657600080fd5b8151612a308161350f565b80516131a881612f62565b60006020828403121561355e57600080fd5b8151612a3081612f62565b80516131a881612f53565b60006020828403121561358657600080fd5b8151612a3081612f53565b600080604083850312156135a457600080fd5b82516135af81612ed3565b6020840151909250612f3381612ed3565b600080858511156135d057600080fd5b838611156135dd57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156136125780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008060006060848603121561366f57600080fd5b835161367a81612f3e565b602085015190935061368b81612f3e565b604085015190925061322b81612f3e565b600082516136ae818460208701612e00565b9190910192915050565b600080604083850312156136cb57600080fd5b82516136d681612f62565b602084015190925063ffffffff81168114612f3357600080fd5b600082601f83011261370157600080fd5b815161370f61302482612fde565b81815284602083860101111561372457600080fd5b6119d8826020830160208701612e00565b60006020828403121561374757600080fd5b81516001600160401b038082111561375e57600080fd5b9083019060e0828603121561377257600080fd5b61377a612f86565b6137838361332a565b81526137916020840161332a565b60208201526137a260408401613569565b60408201526137b360608401613541565b60608201526137c46080840161338c565b60808201526137d560a0840161338c565b60a082015260c0830151828111156137ec57600080fd5b6137f8878286016136f0565b60c0830152509594505050505056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a006548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122034a7db5ebf0cad75e8ddce4e06acad03dd12fa1d8ad1b6672590f122181e530364736f6c63430008140033",
1206
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061023d5760003560e01c8063756b30de1161013b578063a8b9328a116100b8578063dea4ccf21161007c578063dea4ccf214610584578063dec3bdde14610597578063f11bcbe7146105aa578063f67fef6d146105da578063f7c34ee0146105ed57600080fd5b8063a8b9328a14610532578063ada9652e14610545578063b68d18091461055a578063bf7e214f14610569578063db1e36e71461057157600080fd5b8063893d20e8116100ff578063893d20e8146104ce5780638cf81e46146104d65780638e32e979146104eb5780638fb36037146104fe578063943bd1971461051f57600080fd5b8063756b30de146104525780637a9e5e4b146104655780637b1391a61461047857806381d9b45f146104a857806386b0e019146104bb57600080fd5b8063329d6e74116101c9578063644c45e01161018d578063644c45e0146103db578063675393bf146103f95780636c1e9dff1461040c5780636c741e781461041f578063719f761a1461043f57600080fd5b8063329d6e741461035857806336fc697e1461036b57806343d752d31461037357806349bb9e4b146103b75780635ab1bd53146103ca57600080fd5b8063138461e011610210578063138461e0146102ca5780631eff4b22146102ea578063214cdb801461031f57806321ece6571461033257806327bb7a331461034557600080fd5b806301ffc9a7146102425780630d8e6e2c146102845780630fec111c146102a057806310a0638a146102b5575b600080fd5b61026f610250366004612dd6565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b61028c610600565b60405162ffffff909116815260200161027b565b6102a861068a565b60405161027b9190612e50565b6102c86102c3366004612ee8565b61084e565b005b6102d2610917565b6040516001600160601b03909116815260200161027b565b6103117f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b60405190815260200161027b565b6102c861032d366004612dd6565b610922565b6102d2610340366004612f05565b61094f565b6102c861035336600461305b565b610b22565b6102c86103663660046130f3565b610bc7565b6102c8610d14565b7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa303546001600160a01b03165b6040516001600160a01b03909116815260200161027b565b6102c86103c5366004613127565b610d5a565b6001546001600160a01b031661039f565b600080516020613808833981519152546001600160601b03166102d2565b6102c8610407366004613176565b610e59565b6102c861041a366004612f05565b610f6c565b610427611299565b6040516001600160401b03909116815260200161027b565b6102c861044d366004612ee8565b611394565b6102d2610460366004612f05565b61159f565b6102c8610473366004613176565b61184b565b7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa301546001600160a01b031661039f565b6102c86104b63660046131ad565b6118ce565b6102d26104c9366004612f05565b6119c1565b61039f6119e0565b61031160008051602061384883398151915281565b6102c86104f93660046131eb565b611b17565b610506611c5b565b6040516001600160e01b0319909116815260200161027b565b6102c861052d366004613236565b611c93565b6102c8610540366004613276565b611c9c565b61031160008051602061380883398151915281565b6040516003815260200161027b565b61039f611d36565b6102c861057f3660046132a2565b611d52565b6102c8610592366004612ee8565b611dc0565b6102d26105a5366004613236565b611fd8565b7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa302546001600160a01b031661039f565b6102d26105e8366004612f05565b611fee565b6102c86105fb3660046132d7565b6120b1565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610661573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106859190613305565b905090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915260007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af415801561073e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107629190613335565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a0016107aa6119e0565b6001600160a01b031681526020018260010180546107c790613352565b80601f01602080910402602001604051908101604052809291908181526020018280546107f390613352565b80156108405780601f1061081557610100808354040283529160200191610840565b820191906000526020600020905b81548152906001019060200180831161082357829003601f168201915b505050505081525091505090565b61085b335b600036612128565b6000600080516020613848833981519152600181015460405163085031c560e11b81526001600160601b03851660048201529192506001600160a01b0316906310a0638a90602401600060405180830381600087803b1580156108bd57600080fd5b505af11580156108d1573d6000803e3d6000fd5b50506040516001600160601b03851681527ff154111adc6084a644ef1d75dc89b5549b77bd22f0ceb8607501175f6cf3da35925060200190505b60405180910390a15050565b600061068530612226565b61092a612427565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b600061095a33610853565b6000600080516020613848833981519152600181015460405163e8ce883d60e01b81526001600160601b038088166004830152861660248201529192506001600160a01b03169063e8ce883d906044016020604051808303816000875af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed9190613335565b91506000610a036001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03871660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190613397565b60018301546040516331449be960e11b81529192506001600160a01b03169063628937d290610aab90849088906004016133b4565b600060405180830381600087803b158015610ac557600080fd5b505af1158015610ad9573d6000803e3d6000fd5b505050507f1cbf8b37af4df8c27db081983bda17400796238db4d1edf44edacf559b3a25d785828686604051610b1294939291906133d6565b60405180910390a1505092915050565b610b2a612427565b610b3482876120b1565b7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0387166cffffffffffffffffffffffffff1990911617600160601b60ff8716021760ff60681b1916600160681b851515021781557f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa301610bbd8382613450565b5050505050505050565b73__$8eede297b65ed5a56eb3f84d8232ae93f5$__63a123b37c610be9610600565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4d9190613524565b6000805160206138688339815191528054600160401b900460ff1680610c80575080546001600160401b03808416911610155b15610c9e5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155610cc883612460565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b610d1c612427565b6301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6000805160206138688339815191528054600160401b810460ff1615906001600160401b0316600081158015610d8d5750825b90506000826001600160401b03166001148015610da95750303b155b905081158015610db7575080155b15610dd55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610dff57845460ff60401b1916600160401b1785555b610e098787612468565b8315610e5057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b50505050505050565b610e61612427565b806001600160a01b03163b600003610e9c5760405163fdeac91f60e01b81526001600160a01b03821660048201526024015b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263e607072160e01b60048201526301ffc9a790602401602060405180830381865afa925050508015610f16575060408051601f3d908101601f19168201909252610f139181019061354c565b60015b610f3e5760405163fdeac91f60e01b81526001600160a01b0382166004820152602401610e93565b80610f675760405163fdeac91f60e01b81526001600160a01b0383166004820152602401610e93565b505b50565b610f7533610853565b81610f886001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03831660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb9190613397565b6001600160a01b0316336001600160a01b0316146110d157806110266001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03841660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015611075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110999190613397565b604051620d652560ea1b81526001600160601b0390921660048301526001600160a01b03166024820152336044820152606401610e93565b60006000805160206138488339815191526001810154604051636c1e9dff60e01b81526001600160601b0380881660048301528616602482015291925033916000916001600160a01b031690636c1e9dff906044016020604051808303816000875af1158015611145573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111699190613335565b6040516330b8415f60e01b81526001600160601b038716600482015290915073__$3bac17678db7ae928afa209f2f44deec9c$__906330b8415f90602401602060405180830381865af41580156111c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e8919061354c565b1561125457600183015460405163e3a817cd60e01b81526001600160a01b039091169063e3a817cd9061122190859089906004016133b4565b600060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050505b7f51bb449f96e2d4d2c1cbcba003bf8c0e4859c17581ce0bc7542fd6d6279e9b9d8683878460405161128994939291906133d6565b60405180910390a1505050505050565b600073__$1d92393fa9ccd763988368ce8a1cb90d26$__63dda777d36003604051632392b61b60e21b81526003600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015611307573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132b9190613574565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865af4158015611370573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106859190613524565b61139d33610853565b806113b06001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03831660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156113ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114239190613397565b6001600160a01b0316336001600160a01b03161461144e57806110266001546001600160a01b031690565b600060008051602061384883398151915260018101546040516338cfbb0d60e11b81526001600160601b038616600482015291925033916000916001600160a01b03169063719f761a906024016020604051808303816000875af11580156114ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114de9190613335565b60018401546040516331449be960e11b81529192506001600160a01b03169063628937d29061151390859085906004016133b4565b600060405180830381600087803b15801561152d57600080fd5b505af1158015611541573d6000803e3d6000fd5b5050604080516001600160601b0389811682526001600160a01b038716602083015285168183015290517f560ee8c0a69c814defd43602fe8eb63663bc8df678239a581d560f7ed67afda89350908190036060019150a15050505050565b60006115aa33610853565b60008051602061384883398151915280546040805160e0810180835263bc1b392d60e01b9052905133926001600160a01b031691638105cc7f91819073__$94a2c899be079b00d952d0d84fffaa5c34$__9063bc1b392d9060e4808501916020918187030181865af4158015611624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116489190613335565b6001600160601b03168152602001886001600160601b0316815260200161166d602090565b60ff16815260200160001515815260200160006001600160a01b03168152602001846001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b81526004016116cc9190612e50565b6020604051808303816000875af11580156116eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170f9190613335565b6001830154604051630c7b317360e21b81526001600160601b0380841660048301528089166024830152871660448201529194506001600160a01b0316906331ecc5cc90606401600060405180830381600087803b15801561177057600080fd5b505af1158015611784573d6000803e3d6000fd5b505050600183015460405163e3a817cd60e01b81526001600160a01b03909116915063e3a817cd906117bc90849088906004016133b4565b600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b5050604080516001600160601b038088168252808a1660208301526001600160a01b0386169282019290925290871660608201527fbba1f5229b1626c1685c27c3604dd3296a6a69391e1ed009f8c176aa63b8e1d792506080019050610b12565b33611854611d36565b6001600160a01b0316816001600160a01b03161461188f5760405162d1953b60e31b81526001600160a01b0382166004820152602401610e93565b816001600160a01b03163b6000036118c5576040516361798f2f60e11b81526001600160a01b0383166004820152602401610e93565b610f67826126f2565b6118d733610853565b46600080516020613848833981519152600101546001600160a01b031663562119ee85600a6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff1660248201526044810184905264ffffffffff861660648201526084810185905260a401600060405180830381600087803b15801561196057600080fd5b505af1158015611974573d6000803e3d6000fd5b5050604080516001600160601b0388168152602081018590527f471a2845289928aa76c379fe01dc0310ebf5000e7a977935811e173bdda224bd935001905060405180910390a150505050565b60006119cc33610853565b336119d884828561274c565b949350505050565b60008060008051602061380883398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611a50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a74919061354c565b15611b01576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015611ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afb9190613397565b91505090565b54600160601b90046001600160a01b0316919050565b611b1f612427565b611b9f83846001600160a01b031663644c45e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b859190613335565b600960008560405180602001604052806000815250610b22565b6001600160a01b03821615611bbc57611bb78261288c565b611c36565b6000611bc8600261289d565b9050611c34816001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2f9190613397565b61288c565b505b611c46634a531f3360e01b610922565b611c5663daf9067160e01b610922565b505050565b600080516020613828833981519152805460009190600160a01b900460ff16611c85576000611afb565b638fb3603760e01b91505090565b611c5633610853565b611ca533610853565b7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa30154604051632a80f67360e01b81526001600160601b0384166004820152602481018390526001600160a01b0390911690632a80f673906044015b600060405180830381600087803b158015611d1a57600080fd5b505af1158015611d2e573d6000803e3d6000fd5b505050505050565b600080516020613828833981519152546001600160a01b031690565b611d5b33610853565b7f6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa30154604051635ecf260f60e01b81526001600160601b038416600482015264ffffffffff831660248201526001600160a01b0390911690635ecf260f90604401611d00565b611dc933610853565b80611ddc6001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03831660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015611e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4f9190613397565b6001600160a01b0316336001600160a01b031614611e7a57806110266001546001600160a01b031690565b60006000805160206138488339815191526001810154604051636f52667960e11b81526001600160601b0386166004820152919250339160009182916001600160a01b039091169063dea4ccf29060240160408051808303816000875af1158015611ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0d9190613591565b915091506000611f1d83836129a9565b60018601546040516331449be960e11b81529192506001600160a01b03169063628937d290611f5290879085906004016133b4565b600060405180830381600087803b158015611f6c57600080fd5b505af1158015611f80573d6000803e3d6000fd5b5050604080516001600160601b03808c1682526001600160a01b03891660208301528516918101919091527fce678d95d8c12c4b7d7089c8f7db920fe5cc49352696a601b9e41f65ea3fd23992506060019050610e47565b6000611fe333610853565b6119d884848461274c565b6000611ff933610853565b8261200c6001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03831660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa15801561205b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207f9190613397565b6001600160a01b0316336001600160a01b0316146120aa57806110266001546001600160a01b031690565b5092915050565b6120b9612427565b6120c281610e59565b6120ca610d14565b6001600160a01b0382166120f15760405163f17ef42d60e01b815260040160405180910390fd5b5060008051602061380883398151915280546001600160601b0316600160601b6001600160a01b0390931692909202919091179055565b600080516020613828833981519152600080612163612145611d36565b8730612155600460008a8c6135c0565b61215e916135ea565b612a37565b9150915081611d2e5763ffffffff81161561220357825460ff60a01b1916600160a01b178355612191611d36565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b81526004016121c09392919061361a565b600060405180830381600087803b1580156121da57600080fd5b505af11580156121ee573d6000803e3d6000fd5b5050845460ff60a01b1916855550611d2e9050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610e93565b60008060008051602061380883398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015612296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ba919061354c565b156122e65780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610e93565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa15801561233a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235e919061354c565b6123865760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610e93565b6001546001600160a01b0316604051636939560f60e11b81526001600160a01b038581166004830152919091169063d272ac1e90602401602060405180830381865afa1580156123da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123fe9190613335565b81546bffffffffffffffffffffffff19166001600160601b039190911690811790915592915050565b60008051602061386883398151915254600160401b900460ff1661245e57604051631afcd79f60e31b815260040160405180910390fd5b565b61023d612427565b6000805160206138688339815191528054600160401b810460ff1615906001600160401b031660008115801561249b5750825b90506000826001600160401b031660011480156124b75750303b155b9050811580156124c5575080155b156124e35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561250d57845460ff60401b1916600160401b1785555b600080600088806020019051810190612526919061365a565b92509250925061253782848c611b17565b600080516020613848833981519152612550600261289d565b81546001600160a01b0319166001600160a01b039190911617815561257482612b43565b6001820180546001600160a01b0319166001600160a01b03929092169182179055604080516321df0da760e01b815290516321df0da7916004808201926020929091908290030181865afa1580156125d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f49190613397565b6002820180546001600160a01b0319166001600160a01b039283161790556001820154604080516343d752d360e01b8152905191909216916343d752d39160048083019260209291908290030181865afa158015612656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267a9190613397565b6003820180546001600160a01b0319166001600160a01b03929092169190911790556126ac638694498960e01b610922565b505050508315610e5057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610e47565b60008051602061382883398151915280546001600160a01b0319166001600160a01b03831690811782556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200161090b565b600080600080516020613848833981519152600181015460405163de0eb85f60e01b81526001600160601b038089166004830152861660248201529192506001600160a01b03169063de0eb85f906044016020604051808303816000875af11580156127bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e09190613335565b600182015460405163e3a817cd60e01b81529193506001600160a01b03169063e3a817cd9061281590879087906004016133b4565b600060405180830381600087803b15801561282f57600080fd5b505af1158015612843573d6000803e3d6000fd5b505050507fcf86366087b008a90b57f4e7b955b94599f589d7267649942abfd34305fe5b2f8585858560405161287c94939291906133d6565b60405180910390a1509392505050565b612894612427565b610f6981612dc5565b60006128b16001546001600160a01b031690565b604051632392b61b60e21b8152600360048201526001600160a01b03919091169063d39e604390849073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__90638e4ad86c90602401602060405180830381865af4158015612916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061293a9190613574565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa15801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a39190613397565b92915050565b60405163274acb3560e01b81526001600160601b0380841660048301528216602482015260009073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb3590604401602060405180830381865af4158015612a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a309190613335565b9392505050565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251612aa6919061369c565b600060405180830381855afa9150503d8060008114612ae1576040519150601f19603f3d011682016040523d82523d6000602084013e612ae6565b606091505b50915091508115612b38576040815110612b185780806020019051810190612b0e91906136b8565b9094509250612b38565b6020815110612b385780806020019051810190612b35919061354c565b93505b505094509492505050565b600080612b586001546001600160a01b031690565b6040516308b09a5f60e41b81526001600160a01b0385811660048301529190911690638b09a5f090602401600060405180830381865afa158015612ba0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bc89190810190613735565b80516040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015612c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c4a919061354c565b15612c9b57612c6b8160400151612c5f600390565b60ff9081169116141590565b15612c9457604051637dbf3cff60e11b81526001600160a01b0384166004820152602401610e93565b5090919050565b6040516301ffc9a760e01b815263fef8804160e01b60048201526001600160a01b038416906301ffc9a790602401602060405180830381865afa158015612ce6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d0a919061354c565b612d3257604051632bf4d8e560e21b81526001600160a01b0384166004820152602401610e93565b336000805160206138488339815191525460405163c4c79d8b60e01b81526001600160a01b03868116600483015283811660248301529091169063c4c79d8b906044016000604051808303816000875af1158015612d94573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612dbc9190810190613735565b50929392505050565b612dcd612427565b610f69816126f2565b600060208284031215612de857600080fd5b81356001600160e01b031981168114612a3057600080fd5b60005b83811015612e1b578181015183820152602001612e03565b50506000910152565b60008151808452612e3c816020860160208601612e00565b601f01601f19169290920160200192915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260608301511515608083015260018060a01b0360808401511660a083015260a0830151612eb960c08401826001600160a01b03169052565b5060c083015160e0808401526119d8610100840182612e24565b6001600160601b0381168114610f6957600080fd5b600060208284031215612efa57600080fd5b8135612a3081612ed3565b60008060408385031215612f1857600080fd5b8235612f2381612ed3565b91506020830135612f3381612ed3565b809150509250929050565b6001600160a01b0381168114610f6957600080fd5b60ff81168114610f6957600080fd5b8015158114610f6957600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715612fa857612fa8612f70565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612fd657612fd6612f70565b604052919050565b60006001600160401b03821115612ff757612ff7612f70565b50601f01601f191660200190565b600082601f83011261301657600080fd5b813561302961302482612fde565b612fae565b81815284602083860101111561303e57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c0878903121561307457600080fd5b863561307f81612f3e565b9550602087013561308f81612ed3565b9450604087013561309f81612f53565b935060608701356130af81612f62565b925060808701356130bf81612f3e565b915060a08701356001600160401b038111156130da57600080fd5b6130e689828a01613005565b9150509295509295509295565b60006020828403121561310557600080fd5b81356001600160401b0381111561311b57600080fd5b6119d884828501613005565b6000806040838503121561313a57600080fd5b823561314581612f3e565b915060208301356001600160401b0381111561316057600080fd5b61316c85828601613005565b9150509250929050565b60006020828403121561318857600080fd5b8135612a3081612f3e565b803564ffffffffff811681146131a857600080fd5b919050565b6000806000606084860312156131c257600080fd5b83356131cd81612ed3565b92506131db60208501613193565b9150604084013590509250925092565b60008060006060848603121561320057600080fd5b833561320b81612f3e565b9250602084013561321b81612f3e565b9150604084013561322b81612f3e565b809150509250925092565b60008060006060848603121561324b57600080fd5b833561325681612ed3565b9250602084013561326681612f3e565b9150604084013561322b81612ed3565b6000806040838503121561328957600080fd5b823561329481612ed3565b946020939093013593505050565b600080604083850312156132b557600080fd5b82356132c081612ed3565b91506132ce60208401613193565b90509250929050565b600080604083850312156132ea57600080fd5b82356132f581612f3e565b91506020830135612f3381612f3e565b60006020828403121561331757600080fd5b815162ffffff81168114612a3057600080fd5b80516131a881612ed3565b60006020828403121561334757600080fd5b8151612a3081612ed3565b600181811c9082168061336657607f821691505b60208210810361338657634e487b7160e01b600052602260045260246000fd5b50919050565b80516131a881612f3e565b6000602082840312156133a957600080fd5b8151612a3081612f3e565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160601b0394851681526001600160a01b039390931660208401529083166040830152909116606082015260800190565b601f821115611c5657600081815260208120601f850160051c810160208610156134315750805b601f850160051c820191505b81811015611d2e5782815560010161343d565b81516001600160401b0381111561346957613469612f70565b61347d816134778454613352565b8461340a565b602080601f8311600181146134b2576000841561349a5750858301515b600019600386901b1c1916600185901b178555611d2e565b600085815260208120601f198616915b828110156134e1578886015182559484019460019091019084016134c2565b50858210156134ff5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160401b0381168114610f6957600080fd5b60006020828403121561353657600080fd5b8151612a308161350f565b80516131a881612f62565b60006020828403121561355e57600080fd5b8151612a3081612f62565b80516131a881612f53565b60006020828403121561358657600080fd5b8151612a3081612f53565b600080604083850312156135a457600080fd5b82516135af81612ed3565b6020840151909250612f3381612ed3565b600080858511156135d057600080fd5b838611156135dd57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156136125780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008060006060848603121561366f57600080fd5b835161367a81612f3e565b602085015190935061368b81612f3e565b604085015190925061322b81612f3e565b600082516136ae818460208701612e00565b9190910192915050565b600080604083850312156136cb57600080fd5b82516136d681612f62565b602084015190925063ffffffff81168114612f3357600080fd5b600082601f83011261370157600080fd5b815161370f61302482612fde565b81815284602083860101111561372457600080fd5b6119d8826020830160208701612e00565b60006020828403121561374757600080fd5b81516001600160401b038082111561375e57600080fd5b9083019060e0828603121561377257600080fd5b61377a612f86565b6137838361332a565b81526137916020840161332a565b60208201526137a260408401613569565b60408201526137b360608401613541565b60608201526137c46080840161338c565b60808201526137d560a0840161338c565b60a082015260c0830151828111156137ec57600080fd5b6137f8878286016136f0565b60c0830152509594505050505056fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a006548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122034a7db5ebf0cad75e8ddce4e06acad03dd12fa1d8ad1b6672590f122181e530364736f6c63430008140033",
714
1207
  "linkReferences": {
1208
+ "contracts/type/Amount.sol": {
1209
+ "AmountLib": [
1210
+ {
1211
+ "length": 20,
1212
+ "start": 4720
1213
+ },
1214
+ {
1215
+ "length": 20,
1216
+ "start": 10936
1217
+ }
1218
+ ]
1219
+ },
715
1220
  "contracts/type/NftId.sol": {
716
1221
  "NftIdLib": [
717
1222
  {
718
1223
  "length": 20,
719
- "start": 3380
1224
+ "start": 2013
720
1225
  },
721
1226
  {
722
1227
  "length": 20,
723
- "start": 4435
1228
+ "start": 5838
1229
+ },
1230
+ {
1231
+ "length": 20,
1232
+ "start": 6908
1233
+ },
1234
+ {
1235
+ "length": 20,
1236
+ "start": 9026
1237
+ },
1238
+ {
1239
+ "length": 20,
1240
+ "start": 11474
724
1241
  }
725
1242
  ]
726
1243
  },
727
- "contracts/type/Version.sol": {
728
- "VersionLib": [
1244
+ "contracts/type/RoleId.sol": {
1245
+ "RoleIdLib": [
729
1246
  {
730
1247
  "length": 20,
731
- "start": 1511
732
- },
1248
+ "start": 4995
1249
+ }
1250
+ ]
1251
+ },
1252
+ "contracts/type/Version.sol": {
1253
+ "VersionLib": [
733
1254
  {
734
1255
  "length": 20,
735
- "start": 2170
1256
+ "start": 1805
736
1257
  },
737
1258
  {
738
1259
  "length": 20,
739
- "start": 5502
1260
+ "start": 3247
740
1261
  }
741
1262
  ],
742
1263
  "VersionPartLib": [
743
1264
  {
744
1265
  "length": 20,
745
- "start": 3860
1266
+ "start": 5043
1267
+ },
1268
+ {
1269
+ "length": 20,
1270
+ "start": 10690
746
1271
  }
747
1272
  ]
748
1273
  }
749
1274
  },
750
1275
  "deployedLinkReferences": {
1276
+ "contracts/type/Amount.sol": {
1277
+ "AmountLib": [
1278
+ {
1279
+ "length": 20,
1280
+ "start": 4490
1281
+ },
1282
+ {
1283
+ "length": 20,
1284
+ "start": 10706
1285
+ }
1286
+ ]
1287
+ },
751
1288
  "contracts/type/NftId.sol": {
752
1289
  "NftIdLib": [
753
1290
  {
754
1291
  "length": 20,
755
- "start": 3157
1292
+ "start": 1783
1293
+ },
1294
+ {
1295
+ "length": 20,
1296
+ "start": 5608
1297
+ },
1298
+ {
1299
+ "length": 20,
1300
+ "start": 6678
1301
+ },
1302
+ {
1303
+ "length": 20,
1304
+ "start": 8796
756
1305
  },
757
1306
  {
758
1307
  "length": 20,
759
- "start": 4212
1308
+ "start": 11244
760
1309
  }
761
1310
  ]
762
1311
  },
763
- "contracts/type/Version.sol": {
764
- "VersionLib": [
1312
+ "contracts/type/RoleId.sol": {
1313
+ "RoleIdLib": [
765
1314
  {
766
1315
  "length": 20,
767
- "start": 1288
768
- },
1316
+ "start": 4765
1317
+ }
1318
+ ]
1319
+ },
1320
+ "contracts/type/Version.sol": {
1321
+ "VersionLib": [
769
1322
  {
770
1323
  "length": 20,
771
- "start": 1947
1324
+ "start": 1575
772
1325
  },
773
1326
  {
774
1327
  "length": 20,
775
- "start": 5279
1328
+ "start": 3017
776
1329
  }
777
1330
  ],
778
1331
  "VersionPartLib": [
779
1332
  {
780
1333
  "length": 20,
781
- "start": 3637
1334
+ "start": 4813
1335
+ },
1336
+ {
1337
+ "length": 20,
1338
+ "start": 10460
782
1339
  }
783
1340
  ]
784
1341
  }