@etherisc/gif-next 3.0.0-9a6ca4b-922 → 3.0.0-a511887-523

Sign up to get free protection for your applications and to get access to all the features.
Files changed (414) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +168 -53
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +154 -63
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +107 -20
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +114 -59
  9. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +96 -96
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +20 -65
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +31 -55
  15. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +45 -3
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +18 -42
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +158 -67
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +41 -65
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +112 -49
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +227 -112
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +184 -93
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +124 -48
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +106 -19
  38. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +187 -76
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +41 -65
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +224 -113
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +41 -65
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +193 -74
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +41 -65
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +192 -73
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +200 -81
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +41 -65
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +200 -81
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +41 -65
  62. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  65. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +117 -17
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +118 -31
  70. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/Instance.sol/Instance.json +180 -33
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +192 -146
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +43 -67
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2 -2
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +167 -56
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +148 -59
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  84. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  99. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +158 -67
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +41 -65
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +128 -52
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +113 -26
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +116 -53
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +184 -69
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +159 -68
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +119 -56
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +41 -65
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +199 -84
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +171 -80
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +106 -19
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +131 -55
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +113 -26
  134. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  135. package/artifacts/contracts/pool/Pool.sol/Pool.json +119 -56
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +25 -20
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +210 -95
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +172 -81
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +165 -50
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +153 -62
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +112 -49
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +41 -65
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +211 -96
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +176 -85
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +106 -19
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +106 -19
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +113 -26
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +113 -26
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +124 -48
  164. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  165. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +106 -19
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +204 -89
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  169. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +169 -78
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.json +186 -71
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +160 -69
  176. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  177. package/artifacts/contracts/product/Product.sol/Product.json +112 -49
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.json +161 -46
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +151 -60
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  183. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +155 -56
  185. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +219 -185
  187. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +1 -15
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/Registry.sol/Registry.json +314 -96
  192. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +192 -142
  194. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +57 -77
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +302 -213
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +162 -55
  200. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +192 -146
  202. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  204. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +173 -144
  206. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +32 -56
  208. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +46 -4
  210. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  211. package/artifacts/contracts/shared/Component.sol/Component.json +124 -31
  212. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +198 -298
  214. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +166 -91
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +24 -44
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +136 -30
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +113 -209
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +124 -48
  227. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  228. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +44 -2
  230. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +44 -2
  232. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -17
  234. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +44 -2
  236. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.json +106 -19
  238. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +74 -0
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -49
  243. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  246. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +46 -4
  248. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +46 -4
  250. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +116 -16
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +46 -4
  254. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Service.sol/Service.json +105 -18
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -29
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -17
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  262. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  263. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +74 -0
  264. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  265. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +132 -39
  266. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +106 -19
  268. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  269. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  270. package/artifacts/contracts/staking/Staking.sol/Staking.json +195 -86
  271. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +156 -71
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +46 -4
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +157 -42
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +149 -58
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +274 -200
  283. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  284. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
  285. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  287. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  288. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +4 -4
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  317. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  326. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +19 -6
  328. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +4 -0
  329. package/artifacts/contracts/upgradeability/{IVersionable.sol/IVersionable.json → IUpgradeable.sol/IUpgradeable.json} +54 -4
  330. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  331. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +109 -40
  332. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +4 -0
  334. package/artifacts/contracts/upgradeability/{Versionable.sol/Versionable.json → Upgradeable.sol/Upgradeable.json} +54 -4
  335. package/contracts/accounting/AccountingService.sol +2 -2
  336. package/contracts/accounting/AccountingServiceManager.sol +3 -3
  337. package/contracts/accounting/IAccountingService.sol +1 -1
  338. package/contracts/authorization/AccessAdmin.sol +19 -16
  339. package/contracts/authorization/AccessManagerCloneable.sol +24 -48
  340. package/contracts/authorization/Authorization.sol +2 -2
  341. package/contracts/authorization/IAccessAdmin.sol +2 -3
  342. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  343. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  344. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -4
  345. package/contracts/distribution/DistributionService.sol +11 -8
  346. package/contracts/distribution/DistributionServiceManager.sol +3 -3
  347. package/contracts/instance/Instance.sol +2 -5
  348. package/contracts/instance/InstanceAdmin.sol +9 -14
  349. package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
  350. package/contracts/instance/InstanceService.sol +4 -4
  351. package/contracts/instance/InstanceServiceManager.sol +3 -3
  352. package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
  353. package/contracts/oracle/Oracle.sol +3 -2
  354. package/contracts/oracle/OracleService.sol +1 -1
  355. package/contracts/oracle/OracleServiceManager.sol +3 -3
  356. package/contracts/pool/BasicPoolAuthorization.sol +5 -4
  357. package/contracts/pool/BundleService.sol +5 -5
  358. package/contracts/pool/BundleServiceManager.sol +3 -3
  359. package/contracts/pool/PoolLib.sol +7 -4
  360. package/contracts/pool/PoolService.sol +3 -3
  361. package/contracts/pool/PoolServiceManager.sol +3 -3
  362. package/contracts/product/ApplicationService.sol +4 -5
  363. package/contracts/product/ApplicationServiceManager.sol +3 -3
  364. package/contracts/product/BasicProductAuthorization.sol +5 -4
  365. package/contracts/product/ClaimService.sol +1 -1
  366. package/contracts/product/ClaimServiceManager.sol +3 -3
  367. package/contracts/product/PolicyService.sol +1 -1
  368. package/contracts/product/PolicyServiceManager.sol +3 -3
  369. package/contracts/product/PricingService.sol +1 -1
  370. package/contracts/product/PricingServiceManager.sol +3 -3
  371. package/contracts/product/RiskService.sol +1 -1
  372. package/contracts/product/RiskServiceManager.sol +3 -3
  373. package/contracts/registry/IRegistry.sol +20 -14
  374. package/contracts/registry/IRegistryService.sol +10 -14
  375. package/contracts/registry/IRelease.sol +0 -3
  376. package/contracts/registry/Registry.sol +124 -78
  377. package/contracts/registry/RegistryAdmin.sol +9 -15
  378. package/contracts/registry/RegistryAuthorization.sol +2 -1
  379. package/contracts/registry/RegistryService.sol +96 -78
  380. package/contracts/registry/RegistryServiceManager.sol +3 -3
  381. package/contracts/registry/ReleaseAdmin.sol +14 -12
  382. package/contracts/registry/ReleaseRegistry.sol +52 -50
  383. package/contracts/registry/ServiceAuthorizationV3.sol +4 -3
  384. package/contracts/shared/Component.sol +24 -17
  385. package/contracts/shared/ComponentService.sol +28 -101
  386. package/contracts/shared/ComponentServiceManager.sol +3 -3
  387. package/contracts/shared/IComponent.sol +5 -3
  388. package/contracts/shared/IComponentService.sol +0 -14
  389. package/contracts/shared/IInstanceLinkedComponent.sol +4 -7
  390. package/contracts/shared/IRegisterable.sol +8 -3
  391. package/contracts/shared/IRegistryLinked.sol +3 -1
  392. package/contracts/shared/IService.sol +2 -2
  393. package/contracts/shared/IVersionable.sol +19 -0
  394. package/contracts/shared/InstanceLinkedComponent.sol +33 -78
  395. package/contracts/shared/NftOwnable.sol +1 -14
  396. package/contracts/shared/PolicyHolder.sol +2 -2
  397. package/contracts/shared/Registerable.sol +36 -18
  398. package/contracts/shared/RegistryLinked.sol +11 -4
  399. package/contracts/shared/Service.sol +6 -5
  400. package/contracts/shared/TokenHandler.sol +4 -1
  401. package/contracts/shared/Versionable.sol +47 -0
  402. package/contracts/staking/IStaking.sol +2 -2
  403. package/contracts/staking/Staking.sol +7 -17
  404. package/contracts/staking/StakingManager.sol +3 -3
  405. package/contracts/staking/StakingService.sol +10 -7
  406. package/contracts/staking/StakingServiceManager.sol +3 -4
  407. package/contracts/staking/StakingStore.sol +10 -8
  408. package/contracts/type/Version.sol +15 -16
  409. package/contracts/upgradeability/{IVersionable.sol → IUpgradeable.sol} +13 -19
  410. package/contracts/upgradeability/ProxyManager.sol +46 -50
  411. package/contracts/upgradeability/{Versionable.sol → Upgradeable.sol} +25 -14
  412. package/package.json +1 -1
  413. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
  414. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
@@ -61,11 +61,53 @@
61
61
  "inputs": [
62
62
  {
63
63
  "internalType": "address",
64
- "name": "registryAddress",
64
+ "name": "target",
65
+ "type": "address"
66
+ },
67
+ {
68
+ "internalType": "address",
69
+ "name": "notRegistry",
70
+ "type": "address"
71
+ }
72
+ ],
73
+ "name": "ErrorRegistryLinkedNotRegistry",
74
+ "type": "error"
75
+ },
76
+ {
77
+ "inputs": [
78
+ {
79
+ "internalType": "address",
80
+ "name": "target",
81
+ "type": "address"
82
+ },
83
+ {
84
+ "internalType": "address",
85
+ "name": "registry",
86
+ "type": "address"
87
+ }
88
+ ],
89
+ "name": "ErrorRegistryLinkedRegistryAlreadyInitialized",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [
94
+ {
95
+ "internalType": "address",
96
+ "name": "target",
97
+ "type": "address"
98
+ },
99
+ {
100
+ "internalType": "address",
101
+ "name": "givenRegistry",
102
+ "type": "address"
103
+ },
104
+ {
105
+ "internalType": "address",
106
+ "name": "pureRegistry",
65
107
  "type": "address"
66
108
  }
67
109
  ],
68
- "name": "ErrorNotRegistry",
110
+ "name": "ErrorRegistryLinkedRegistryMismatch",
69
111
  "type": "error"
70
112
  },
71
113
  {
@@ -636,8 +678,8 @@
636
678
  "type": "function"
637
679
  }
638
680
  ],
639
- "bytecode": "0x60806040819052639fa6a6e360e01b815273__$dacf551d137a232f87fa09e79113e25430$__90639fa6a6e390608490602090600481865af4158015610047573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061006b91906109d3565b600460146101000a8154816001600160601b0302191690836001600160601b0316021790555034801561009c575f80fd5b506040516126d93803806126d98339810160408190526100bb91610a10565b336100c5816102cb565b505f826001600160a01b0316632de837e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610103573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101279190610a48565b6001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610162573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101869190610a48565b90506101918161031e565b600480546001600160a01b0319166001600160a01b0385161790556101b58261039b565b600580546001600160a01b0319166001600160a01b03929092169182179055600480546040805163313ce56760e01b815290516102c394600160a01b9093046001600160601b031693839263313ce56792818301926020928290030181865afa158015610224573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102489190610a63565b60055f9054906101000a90046001600160a01b03166001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610297573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102be9190810190610a97565b6104fd565b505050610d18565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b5f5433906001600160a01b031681146103595760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f0361038e576040516361798f2f60e11b81526001600160a01b0383166004820152602401610350565b610397826102cb565b5050565b806001600160a01b0381163b5f0361044c5773__$dacf551d137a232f87fa09e79113e25430$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156103f4573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061041891906109d3565b604051630a0cb36b60e31b81526001600160601b0390911660048201526001600160a01b0383166024820152604401610350565b610455816107dc565b6104f85773__$dacf551d137a232f87fa09e79113e25430$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156104a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c491906109d3565b60405163bcd20b3b60e01b81526001600160601b0390911660048201526001600160a01b0383166024820152604401610350565b919050565b610507848461092c565b1561053f57604051637cd757c960e01b81526001600160601b03851660048201526001600160a01b0384166024820152604401610350565b604051630a4d29dd60e31b81526001600160601b038516600482015273__$dacf551d137a232f87fa09e79113e25430$__906352694ee890602401602060405180830381865af4158015610595573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b99190610b47565b156105d757604051634998330760e01b815260040160405180910390fd5b6001600160a01b0383166105fe5760405163dad20a1560e01b815260040160405180910390fd5b6040805160a0810182526001600160601b038087168083526001600160a01b03808816602080860182815260ff808b16888a01908152600160608a0181815260808b018d81525f998a528287528c8a20978a529690955299909620885192519095166c01000000000000000000000000029190961617835592519582018054935115156101000261ffff1990941696909416959095179190911790915591519091829160028201906106b09082610bea565b5050600380546001810182555f829052835160208501516001600160a01b03166c01000000000000000000000000026001600160601b039091161791027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b810191825560408401517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c82018054606087015115156101000261ffff1990911660ff9093169290921791909117905560808401518493507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d909101906107959082610bea565b5050507ffd0995f0018ce5282fc02eabca02e90b4eadd96ad13f1cdd63dafef4efeef777858585856040516107cd9493929190610ca4565b60405180910390a15050505050565b5f816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610837575060408051601f3d908101601f1916820190925261083491810190610d01565b60015b61084257505f919050565b506040516370a0823160e01b8152600160048201526001600160a01b038316906370a0823190602401602060405180830381865afa9250505080156108a4575060408051601f3d908101601f191682019092526108a191810190610d01565b60015b6108af57505f919050565b50604051636eb1769f60e11b815260016004820152600260248201526001600160a01b0383169063dd62ed3e90604401602060405180830381865afa925050508015610918575060408051601f3d908101601f1916820190925261091591810190610d01565b60015b61092357505f919050565b50506001919050565b6001600160601b038281165f9081526001602090815260408083206001600160a01b03861684529091528082205490516330b8415f60e01b8152921660048301529073__$dacf551d137a232f87fa09e79113e25430$__906330b8415f90602401602060405180830381865af41580156109a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109cc9190610b47565b9392505050565b5f602082840312156109e3575f80fd5b81516001600160601b03811681146109cc575f80fd5b6001600160a01b0381168114610a0d575f80fd5b50565b5f8060408385031215610a21575f80fd5b8251610a2c816109f9565b6020840151909250610a3d816109f9565b809150509250929050565b5f60208284031215610a58575f80fd5b81516109cc816109f9565b5f60208284031215610a73575f80fd5b815160ff811681146109cc575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610aa7575f80fd5b81516001600160401b03811115610abc575f80fd5b8201601f81018413610acc575f80fd5b80516001600160401b03811115610ae557610ae5610a83565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610b1357610b13610a83565b604052818152828201602001861015610b2a575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b5f60208284031215610b57575f80fd5b815180151581146109cc575f80fd5b600181811c90821680610b7a57607f821691505b602082108103610b9857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610be557805f5260205f20601f840160051c81016020851015610bc35750805b601f840160051c820191505b81811015610be2575f8155600101610bcf565b50505b505050565b81516001600160401b03811115610c0357610c03610a83565b610c1781610c118454610b66565b84610b9e565b6020601f821160018114610c49575f8315610c325750848201515b5f19600385901b1c1916600184901b178455610be2565b5f84815260208120601f198516915b82811015610c785787850151825560209485019460019092019101610c58565b5084821015610c9557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60018060601b038516815260018060a01b038416602082015260ff83166040820152608060608201525f8251806080840152806020850160a085015e5f60a0828501015260a0601f19601f83011684010191505095945050505050565b5f60208284031215610d11575f80fd5b5051919050565b6119b480610d255f395ff3fe608060405234801561000f575f80fd5b50600436106100fb575f3560e01c80639159eeae11610093578063cf44b1eb11610063578063cf44b1eb14610214578063d40c08d514610237578063f11bcbe7146101f3578063fa87e9761461024a575f80fd5b80639159eeae146101cf5780639d63848a146101e2578063b201f709146101f3578063bf7e214f14610204575f80fd5b80637a9e5e4b116100ce5780637a9e5e4b146101755780637f480903146101885780638c7a63ae1461019b5780638fb36037146101ae575f80fd5b806309824a80146100ff5780635809c85d146101145780635ab1bd531461013d5780637681f14a14610162575b5f80fd5b61011261010d366004611275565b61025d565b005b6101276101223660046112a5565b61035a565b6040516101349190611306565b60405180910390f35b6004546001600160a01b03165b6040516001600160a01b039091168152602001610134565b610112610170366004611381565b610490565b610112610183366004611275565b6104e5565b610112610196366004611458565b610559565b6101276101a9366004611507565b6105ad565b6101b66106eb565b6040516001600160e01b03199091168152602001610134565b6101126101dd36600461151e565b61070d565b600354604051908152602001610134565b6005546001600160a01b031661014a565b5f546001600160a01b031661014a565b610227610222366004611575565b610759565b6040519015158152602001610134565b6102276102453660046112a5565b6107db565b6101126102583660046115bb565b61087b565b610269335b5f3661093d565b5f61027382610a33565b9050610356600460149054906101000a90046001600160601b031683836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906115f6565b846001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa15801561032a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103519190810190611611565b610b65565b5050565b6040805160a0810182525f8082526020820181905291810182905260608082019290925260808101919091526001600160601b038084165f9081526001602081815260408084206001600160a01b03808916865290835293819020815160a08101835281549687168152600160601b909604909416918501919091529082015460ff808216928501929092526101009004161515606083015260028101805460808401919061040890611686565b80601f016020809104026020016040519081016040528092919081815260200182805461043490611686565b801561047f5780601f106104565761010080835404028352916020019161047f565b820191905f5260205f20905b81548152906001019060200180831161046257829003601f168201915b505050505081525050905092915050565b61049933610262565b84846104a582826107db565b6104cf578181604051636426588560e01b81526004016104c69291906116be565b60405180910390fd5b6104dc8787878787610e0d565b50505050505050565b5f5433906001600160a01b0316811461051b5760405162d1953b60e31b81526001600160a01b03821660048201526024016104c6565b816001600160a01b03163b5f03610550576040516361798f2f60e11b81526001600160a01b03831660048201526024016104c6565b61035682610fb4565b61056233610262565b6004546001600160601b03808616600160a01b909204160361059b578383604051635d1d46df60e11b81526004016104c69291906116be565b6105a784848484610b65565b50505050565b6040805160a0810182525f808252602082018190529181018290526060808201929092526080810191909152600382815481106105ec576105ec6116e0565b5f9182526020918290206040805160a081018252600390930290910180546001600160601b03811684526001600160a01b03600160601b9091041693830193909352600183015460ff808216928401929092526101009004161515606082015260028201805491929160808401919061066490611686565b80601f016020809104026020016040519081016040528092919081815260200182805461069090611686565b80156106db5780601f106106b2576101008083540402835291602001916106db565b820191905f5260205f20905b8154815290600101906020018083116106be57829003601f168201915b5050505050815250509050919050565b5f8054600160a01b900460ff1661070157505f90565b50638fb3603760e01b90565b61071633610262565b838361072282826107db565b610743578181604051636426588560e01b81526004016104c69291906116be565b610751868686866001610e0d565b505050505050565b6001600160601b0383165f9081526001602081815260408084206001600160a01b038716855290915282200154610100900460ff1661079957505f6107d4565b506001600160601b0383165f9081526002602090815260408083206001600160a01b0386168452825280832060ff8086168552925290912054165b9392505050565b6001600160601b038281165f9081526001602090815260408083206001600160a01b03861684529091528082205490516330b8415f60e01b8152921660048301529073__$dacf551d137a232f87fa09e79113e25430$__906330b8415f90602401602060405180830381865af4158015610857573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d491906116f4565b61088433610262565b828261089082826107db565b6108b1578181604051636426588560e01b81526004016104c69291906116be565b6001600160601b0385165f8181526001602081815260408084206001600160a01b038a1680865290835293819020909201805461ff001916610100891515908102919091179091558251948552908401929092528201527f1b6da2069e5d2bc17e239ebaae07bf1e3076d259390dca82f5b778b05921c8c1906060015b60405180910390a15050505050565b5f806109706109535f546001600160a01b031690565b863061096260045f898b61170f565b61096b91611736565b611007565b9150915081610a2c5763ffffffff811615610a09575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee906109ca9088908890889060040161176e565b5f604051808303815f87803b1580156109e1575f80fd5b505af11580156109f3573d5f803e3d5ffd5b50505f805460ff60a01b1916905550610a2c9050565b60405162d1953b60e31b81526001600160a01b03861660048201526024016104c6565b5050505050565b806001600160a01b0381163b5f03610acc5773__$dacf551d137a232f87fa09e79113e25430$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610a8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab091906117ad565b82604051630a0cb36b60e31b81526004016104c69291906116be565b610ad58161110f565b610b605773__$dacf551d137a232f87fa09e79113e25430$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610b20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4491906117ad565b8260405163bcd20b3b60e01b81526004016104c69291906116be565b919050565b610b6f84846107db565b15610b91578383604051637cd757c960e01b81526004016104c69291906116be565b604051630a4d29dd60e31b81526001600160601b038516600482015273__$dacf551d137a232f87fa09e79113e25430$__906352694ee890602401602060405180830381865af4158015610be7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0b91906116f4565b15610c2957604051634998330760e01b815260040160405180910390fd5b6001600160a01b038316610c505760405163dad20a1560e01b815260040160405180910390fd5b6040805160a0810182526001600160601b038087168083526001600160a01b03808816602080860182815260ff808b16888a01908152600160608a0181815260808b018d81525f998a528287528c8a20978a52969095529990962088519251909516600160601b029190961617835592519582018054935115156101000261ffff199094169690941695909517919091179091559151909182916002820190610cf99082611811565b5050600380546001810182555f829052835160208501516001600160a01b0316600160601b026001600160601b039091161791027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b810191825560408401517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c82018054606087015115156101000261ffff1990911660ff9093169290921791909117905560808401518493507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d90910190610dd59082611811565b5050507ffd0995f0018ce5282fc02eabca02e90b4eadd96ad13f1cdd63dafef4efeef7778585858560405161092e94939291906118cc565b8015610f2c57604051632b10f60d60e21b815260ff841660048201525f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015610e65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e899190611911565b9050610e9d6004546001600160a01b031690565b6040516308f6e75560e11b815260ff861660048201526001600160a01b0391909116906311edceaa90602401602060405180830381865afa158015610ee4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0891906116f4565b610f2a57604051639d56678360e01b815260ff851660048201526024016104c6565b505b6001600160601b0385165f8181526002602090815260408083206001600160a01b03891680855290835281842060ff891680865290845293829020805460ff191688151590811790915582519586529285015283019190915260608201527f87b54cef13dc402843e917a6faeaae0a69fe24d79c6f28761d7e4b6f0787de159060800161092e565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516110759190611928565b5f60405180830381855afa9150503d805f81146110ad576040519150601f19603f3d011682016040523d82523d5f602084013e6110b2565b606091505b509150915081156111045760408151106110e457808060200190518101906110da919061193e565b9094509250611104565b6020815110611104578080602001905181019061110191906116f4565b93505b505094509492505050565b5f816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561116a575060408051601f3d908101601f1916820190925261116791810190611911565b60015b61117557505f919050565b506040516370a0823160e01b8152600160048201526001600160a01b038316906370a0823190602401602060405180830381865afa9250505080156111d7575060408051601f3d908101601f191682019092526111d491810190611911565b60015b6111e257505f919050565b50604051636eb1769f60e11b815260016004820152600260248201526001600160a01b0383169063dd62ed3e90604401602060405180830381865afa92505050801561124b575060408051601f3d908101601f1916820190925261124891810190611911565b60015b61125657505f919050565b50506001919050565b80356001600160a01b0381168114610b60575f80fd5b5f60208284031215611285575f80fd5b6107d48261125f565b6001600160601b03811681146112a2575f80fd5b50565b5f80604083850312156112b6575f80fd5b82356112c18161128e565b91506112cf6020840161125f565b90509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b03825116602082015260018060a01b03602083015116604082015260ff60408301511660608201526060820151151560808201525f608083015160a08084015261135e60c08401826112d8565b949350505050565b60ff811681146112a2575f80fd5b80151581146112a2575f80fd5b5f805f805f60a08688031215611395575f80fd5b85356113a08161128e565b94506113ae6020870161125f565b935060408601356113be81611366565b925060608601356113ce81611374565b915060808601356113de81611374565b809150509295509295909350565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611429576114296113ec565b604052919050565b5f67ffffffffffffffff82111561144a5761144a6113ec565b50601f01601f191660200190565b5f805f806080858703121561146b575f80fd5b84356114768161128e565b93506114846020860161125f565b9250604085013561149481611366565b9150606085013567ffffffffffffffff8111156114af575f80fd5b8501601f810187136114bf575f80fd5b80356114d26114cd82611431565b611400565b8181528860208385010111156114e6575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f60208284031215611517575f80fd5b5035919050565b5f805f8060808587031215611531575f80fd5b843561153c8161128e565b935061154a6020860161125f565b9250604085013561155a81611366565b9150606085013561156a81611374565b939692955090935050565b5f805f60608486031215611587575f80fd5b83356115928161128e565b92506115a06020850161125f565b915060408401356115b081611366565b809150509250925092565b5f805f606084860312156115cd575f80fd5b83356115d88161128e565b92506115e66020850161125f565b915060408401356115b081611374565b5f60208284031215611606575f80fd5b81516107d481611366565b5f60208284031215611621575f80fd5b815167ffffffffffffffff811115611637575f80fd5b8201601f81018413611647575f80fd5b80516116556114cd82611431565b818152856020838501011115611669575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b600181811c9082168061169a57607f821691505b6020821081036116b857634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160601b039290921682526001600160a01b0316602082015260400190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611704575f80fd5b81516107d481611374565b5f808585111561171d575f80fd5b83861115611729575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015611767576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f602082840312156117bd575f80fd5b81516107d48161128e565b601f82111561180c57805f5260205f20601f840160051c810160208510156117ed5750805b601f840160051c820191505b81811015610a2c575f81556001016117f9565b505050565b815167ffffffffffffffff81111561182b5761182b6113ec565b61183f816118398454611686565b846117c8565b6020601f821160018114611871575f831561185a5750848201515b5f19600385901b1c1916600184901b178455610a2c565b5f84815260208120601f198516915b828110156118a05787850151825560209485019460019092019101611880565b50848210156118bd57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160601b03851681526001600160a01b038416602082015260ff831660408201526080606082018190525f90611907908301846112d8565b9695505050505050565b5f60208284031215611921575f80fd5b5051919050565b5f82518060208501845e5f920191825250919050565b5f806040838503121561194f575f80fd5b825161195a81611374565b602084015190925063ffffffff81168114611973575f80fd5b80915050925092905056fea26469706673582212208a3a78dd1aa9bb5fb10f1d3330a2227472107a0d5ccbec154182933f7628e73464736f6c634300081a0033",
640
- "deployedBytecode": "0x608060405234801561000f575f80fd5b50600436106100fb575f3560e01c80639159eeae11610093578063cf44b1eb11610063578063cf44b1eb14610214578063d40c08d514610237578063f11bcbe7146101f3578063fa87e9761461024a575f80fd5b80639159eeae146101cf5780639d63848a146101e2578063b201f709146101f3578063bf7e214f14610204575f80fd5b80637a9e5e4b116100ce5780637a9e5e4b146101755780637f480903146101885780638c7a63ae1461019b5780638fb36037146101ae575f80fd5b806309824a80146100ff5780635809c85d146101145780635ab1bd531461013d5780637681f14a14610162575b5f80fd5b61011261010d366004611275565b61025d565b005b6101276101223660046112a5565b61035a565b6040516101349190611306565b60405180910390f35b6004546001600160a01b03165b6040516001600160a01b039091168152602001610134565b610112610170366004611381565b610490565b610112610183366004611275565b6104e5565b610112610196366004611458565b610559565b6101276101a9366004611507565b6105ad565b6101b66106eb565b6040516001600160e01b03199091168152602001610134565b6101126101dd36600461151e565b61070d565b600354604051908152602001610134565b6005546001600160a01b031661014a565b5f546001600160a01b031661014a565b610227610222366004611575565b610759565b6040519015158152602001610134565b6102276102453660046112a5565b6107db565b6101126102583660046115bb565b61087b565b610269335b5f3661093d565b5f61027382610a33565b9050610356600460149054906101000a90046001600160601b031683836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906115f6565b846001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa15801561032a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103519190810190611611565b610b65565b5050565b6040805160a0810182525f8082526020820181905291810182905260608082019290925260808101919091526001600160601b038084165f9081526001602081815260408084206001600160a01b03808916865290835293819020815160a08101835281549687168152600160601b909604909416918501919091529082015460ff808216928501929092526101009004161515606083015260028101805460808401919061040890611686565b80601f016020809104026020016040519081016040528092919081815260200182805461043490611686565b801561047f5780601f106104565761010080835404028352916020019161047f565b820191905f5260205f20905b81548152906001019060200180831161046257829003601f168201915b505050505081525050905092915050565b61049933610262565b84846104a582826107db565b6104cf578181604051636426588560e01b81526004016104c69291906116be565b60405180910390fd5b6104dc8787878787610e0d565b50505050505050565b5f5433906001600160a01b0316811461051b5760405162d1953b60e31b81526001600160a01b03821660048201526024016104c6565b816001600160a01b03163b5f03610550576040516361798f2f60e11b81526001600160a01b03831660048201526024016104c6565b61035682610fb4565b61056233610262565b6004546001600160601b03808616600160a01b909204160361059b578383604051635d1d46df60e11b81526004016104c69291906116be565b6105a784848484610b65565b50505050565b6040805160a0810182525f808252602082018190529181018290526060808201929092526080810191909152600382815481106105ec576105ec6116e0565b5f9182526020918290206040805160a081018252600390930290910180546001600160601b03811684526001600160a01b03600160601b9091041693830193909352600183015460ff808216928401929092526101009004161515606082015260028201805491929160808401919061066490611686565b80601f016020809104026020016040519081016040528092919081815260200182805461069090611686565b80156106db5780601f106106b2576101008083540402835291602001916106db565b820191905f5260205f20905b8154815290600101906020018083116106be57829003601f168201915b5050505050815250509050919050565b5f8054600160a01b900460ff1661070157505f90565b50638fb3603760e01b90565b61071633610262565b838361072282826107db565b610743578181604051636426588560e01b81526004016104c69291906116be565b610751868686866001610e0d565b505050505050565b6001600160601b0383165f9081526001602081815260408084206001600160a01b038716855290915282200154610100900460ff1661079957505f6107d4565b506001600160601b0383165f9081526002602090815260408083206001600160a01b0386168452825280832060ff8086168552925290912054165b9392505050565b6001600160601b038281165f9081526001602090815260408083206001600160a01b03861684529091528082205490516330b8415f60e01b8152921660048301529073__$dacf551d137a232f87fa09e79113e25430$__906330b8415f90602401602060405180830381865af4158015610857573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d491906116f4565b61088433610262565b828261089082826107db565b6108b1578181604051636426588560e01b81526004016104c69291906116be565b6001600160601b0385165f8181526001602081815260408084206001600160a01b038a1680865290835293819020909201805461ff001916610100891515908102919091179091558251948552908401929092528201527f1b6da2069e5d2bc17e239ebaae07bf1e3076d259390dca82f5b778b05921c8c1906060015b60405180910390a15050505050565b5f806109706109535f546001600160a01b031690565b863061096260045f898b61170f565b61096b91611736565b611007565b9150915081610a2c5763ffffffff811615610a09575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee906109ca9088908890889060040161176e565b5f604051808303815f87803b1580156109e1575f80fd5b505af11580156109f3573d5f803e3d5ffd5b50505f805460ff60a01b1916905550610a2c9050565b60405162d1953b60e31b81526001600160a01b03861660048201526024016104c6565b5050505050565b806001600160a01b0381163b5f03610acc5773__$dacf551d137a232f87fa09e79113e25430$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610a8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab091906117ad565b82604051630a0cb36b60e31b81526004016104c69291906116be565b610ad58161110f565b610b605773__$dacf551d137a232f87fa09e79113e25430$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610b20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4491906117ad565b8260405163bcd20b3b60e01b81526004016104c69291906116be565b919050565b610b6f84846107db565b15610b91578383604051637cd757c960e01b81526004016104c69291906116be565b604051630a4d29dd60e31b81526001600160601b038516600482015273__$dacf551d137a232f87fa09e79113e25430$__906352694ee890602401602060405180830381865af4158015610be7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0b91906116f4565b15610c2957604051634998330760e01b815260040160405180910390fd5b6001600160a01b038316610c505760405163dad20a1560e01b815260040160405180910390fd5b6040805160a0810182526001600160601b038087168083526001600160a01b03808816602080860182815260ff808b16888a01908152600160608a0181815260808b018d81525f998a528287528c8a20978a52969095529990962088519251909516600160601b029190961617835592519582018054935115156101000261ffff199094169690941695909517919091179091559151909182916002820190610cf99082611811565b5050600380546001810182555f829052835160208501516001600160a01b0316600160601b026001600160601b039091161791027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b810191825560408401517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c82018054606087015115156101000261ffff1990911660ff9093169290921791909117905560808401518493507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d90910190610dd59082611811565b5050507ffd0995f0018ce5282fc02eabca02e90b4eadd96ad13f1cdd63dafef4efeef7778585858560405161092e94939291906118cc565b8015610f2c57604051632b10f60d60e21b815260ff841660048201525f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015610e65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e899190611911565b9050610e9d6004546001600160a01b031690565b6040516308f6e75560e11b815260ff861660048201526001600160a01b0391909116906311edceaa90602401602060405180830381865afa158015610ee4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0891906116f4565b610f2a57604051639d56678360e01b815260ff851660048201526024016104c6565b505b6001600160601b0385165f8181526002602090815260408083206001600160a01b03891680855290835281842060ff891680865290845293829020805460ff191688151590811790915582519586529285015283019190915260608201527f87b54cef13dc402843e917a6faeaae0a69fe24d79c6f28761d7e4b6f0787de159060800161092e565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516110759190611928565b5f60405180830381855afa9150503d805f81146110ad576040519150601f19603f3d011682016040523d82523d5f602084013e6110b2565b606091505b509150915081156111045760408151106110e457808060200190518101906110da919061193e565b9094509250611104565b6020815110611104578080602001905181019061110191906116f4565b93505b505094509492505050565b5f816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561116a575060408051601f3d908101601f1916820190925261116791810190611911565b60015b61117557505f919050565b506040516370a0823160e01b8152600160048201526001600160a01b038316906370a0823190602401602060405180830381865afa9250505080156111d7575060408051601f3d908101601f191682019092526111d491810190611911565b60015b6111e257505f919050565b50604051636eb1769f60e11b815260016004820152600260248201526001600160a01b0383169063dd62ed3e90604401602060405180830381865afa92505050801561124b575060408051601f3d908101601f1916820190925261124891810190611911565b60015b61125657505f919050565b50506001919050565b80356001600160a01b0381168114610b60575f80fd5b5f60208284031215611285575f80fd5b6107d48261125f565b6001600160601b03811681146112a2575f80fd5b50565b5f80604083850312156112b6575f80fd5b82356112c18161128e565b91506112cf6020840161125f565b90509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b03825116602082015260018060a01b03602083015116604082015260ff60408301511660608201526060820151151560808201525f608083015160a08084015261135e60c08401826112d8565b949350505050565b60ff811681146112a2575f80fd5b80151581146112a2575f80fd5b5f805f805f60a08688031215611395575f80fd5b85356113a08161128e565b94506113ae6020870161125f565b935060408601356113be81611366565b925060608601356113ce81611374565b915060808601356113de81611374565b809150509295509295909350565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611429576114296113ec565b604052919050565b5f67ffffffffffffffff82111561144a5761144a6113ec565b50601f01601f191660200190565b5f805f806080858703121561146b575f80fd5b84356114768161128e565b93506114846020860161125f565b9250604085013561149481611366565b9150606085013567ffffffffffffffff8111156114af575f80fd5b8501601f810187136114bf575f80fd5b80356114d26114cd82611431565b611400565b8181528860208385010111156114e6575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f60208284031215611517575f80fd5b5035919050565b5f805f8060808587031215611531575f80fd5b843561153c8161128e565b935061154a6020860161125f565b9250604085013561155a81611366565b9150606085013561156a81611374565b939692955090935050565b5f805f60608486031215611587575f80fd5b83356115928161128e565b92506115a06020850161125f565b915060408401356115b081611366565b809150509250925092565b5f805f606084860312156115cd575f80fd5b83356115d88161128e565b92506115e66020850161125f565b915060408401356115b081611374565b5f60208284031215611606575f80fd5b81516107d481611366565b5f60208284031215611621575f80fd5b815167ffffffffffffffff811115611637575f80fd5b8201601f81018413611647575f80fd5b80516116556114cd82611431565b818152856020838501011115611669575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b600181811c9082168061169a57607f821691505b6020821081036116b857634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160601b039290921682526001600160a01b0316602082015260400190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611704575f80fd5b81516107d481611374565b5f808585111561171d575f80fd5b83861115611729575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015611767576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f602082840312156117bd575f80fd5b81516107d48161128e565b601f82111561180c57805f5260205f20601f840160051c810160208510156117ed5750805b601f840160051c820191505b81811015610a2c575f81556001016117f9565b505050565b815167ffffffffffffffff81111561182b5761182b6113ec565b61183f816118398454611686565b846117c8565b6020601f821160018114611871575f831561185a5750848201515b5f19600385901b1c1916600184901b178455610a2c565b5f84815260208120601f198516915b828110156118a05787850151825560209485019460019092019101611880565b50848210156118bd57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160601b03851681526001600160a01b038416602082015260ff831660408201526080606082018190525f90611907908301846112d8565b9695505050505050565b5f60208284031215611921575f80fd5b5051919050565b5f82518060208501845e5f920191825250919050565b5f806040838503121561194f575f80fd5b825161195a81611374565b602084015190925063ffffffff81168114611973575f80fd5b80915050925092905056fea26469706673582212208a3a78dd1aa9bb5fb10f1d3330a2227472107a0d5ccbec154182933f7628e73464736f6c634300081a0033",
681
+ "bytecode": "0x60806040819052639fa6a6e360e01b815273__$dacf551d137a232f87fa09e79113e25430$__90639fa6a6e390608490602090600481865af4158015610047573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061006b91906109d3565b600460146101000a8154816001600160601b0302191690836001600160601b0316021790555034801561009c575f80fd5b506040516126dc3803806126dc8339810160408190526100bb91610a10565b336100c5816102cb565b505f826001600160a01b0316632de837e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610103573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101279190610a48565b6001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610162573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101869190610a48565b90506101918161031e565b600480546001600160a01b0319166001600160a01b0385161790556101b58261039b565b600580546001600160a01b0319166001600160a01b03929092169182179055600480546040805163313ce56760e01b815290516102c394600160a01b9093046001600160601b031693839263313ce56792818301926020928290030181865afa158015610224573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102489190610a63565b60055f9054906101000a90046001600160a01b03166001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa158015610297573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102be9190810190610a97565b6104fd565b505050610d18565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b5f5433906001600160a01b031681146103595760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f0361038e576040516361798f2f60e11b81526001600160a01b0383166004820152602401610350565b610397826102cb565b5050565b806001600160a01b0381163b5f0361044c5773__$dacf551d137a232f87fa09e79113e25430$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156103f4573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061041891906109d3565b604051630a0cb36b60e31b81526001600160601b0390911660048201526001600160a01b0383166024820152604401610350565b610455816107dc565b6104f85773__$dacf551d137a232f87fa09e79113e25430$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af41580156104a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c491906109d3565b60405163bcd20b3b60e01b81526001600160601b0390911660048201526001600160a01b0383166024820152604401610350565b919050565b610507848461092c565b1561053f57604051637cd757c960e01b81526001600160601b03851660048201526001600160a01b0384166024820152604401610350565b604051630a4d29dd60e31b81526001600160601b038516600482015273__$dacf551d137a232f87fa09e79113e25430$__906352694ee890602401602060405180830381865af4158015610595573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b99190610b47565b156105d757604051634998330760e01b815260040160405180910390fd5b6001600160a01b0383166105fe5760405163dad20a1560e01b815260040160405180910390fd5b6040805160a0810182526001600160601b038087168083526001600160a01b03808816602080860182815260ff808b16888a01908152600160608a0181815260808b018d81525f998a528287528c8a20978a529690955299909620885192519095166c01000000000000000000000000029190961617835592519582018054935115156101000261ffff1990941696909416959095179190911790915591519091829160028201906106b09082610bea565b5050600380546001810182555f829052835160208501516001600160a01b03166c01000000000000000000000000026001600160601b039091161791027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b810191825560408401517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c82018054606087015115156101000261ffff1990911660ff9093169290921791909117905560808401518493507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d909101906107959082610bea565b5050507ffd0995f0018ce5282fc02eabca02e90b4eadd96ad13f1cdd63dafef4efeef777858585856040516107cd9493929190610ca4565b60405180910390a15050505050565b5f816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610837575060408051601f3d908101601f1916820190925261083491810190610d01565b60015b61084257505f919050565b506040516370a0823160e01b8152600160048201526001600160a01b038316906370a0823190602401602060405180830381865afa9250505080156108a4575060408051601f3d908101601f191682019092526108a191810190610d01565b60015b6108af57505f919050565b50604051636eb1769f60e11b815260016004820152600260248201526001600160a01b0383169063dd62ed3e90604401602060405180830381865afa925050508015610918575060408051601f3d908101601f1916820190925261091591810190610d01565b60015b61092357505f919050565b50506001919050565b6001600160601b038281165f9081526001602090815260408083206001600160a01b03861684529091528082205490516330b8415f60e01b8152921660048301529073__$dacf551d137a232f87fa09e79113e25430$__906330b8415f90602401602060405180830381865af41580156109a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109cc9190610b47565b9392505050565b5f602082840312156109e3575f80fd5b81516001600160601b03811681146109cc575f80fd5b6001600160a01b0381168114610a0d575f80fd5b50565b5f8060408385031215610a21575f80fd5b8251610a2c816109f9565b6020840151909250610a3d816109f9565b809150509250929050565b5f60208284031215610a58575f80fd5b81516109cc816109f9565b5f60208284031215610a73575f80fd5b815160ff811681146109cc575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610aa7575f80fd5b81516001600160401b03811115610abc575f80fd5b8201601f81018413610acc575f80fd5b80516001600160401b03811115610ae557610ae5610a83565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610b1357610b13610a83565b604052818152828201602001861015610b2a575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b5f60208284031215610b57575f80fd5b815180151581146109cc575f80fd5b600181811c90821680610b7a57607f821691505b602082108103610b9857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610be557805f5260205f20601f840160051c81016020851015610bc35750805b601f840160051c820191505b81811015610be2575f8155600101610bcf565b50505b505050565b81516001600160401b03811115610c0357610c03610a83565b610c1781610c118454610b66565b84610b9e565b6020601f821160018114610c49575f8315610c325750848201515b5f19600385901b1c1916600184901b178455610be2565b5f84815260208120601f198516915b82811015610c785787850151825560209485019460019092019101610c58565b5084821015610c9557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60018060601b038516815260018060a01b038416602082015260ff83166040820152608060608201525f8251806080840152806020850160a085015e5f60a0828501015260a0601f19601f83011684010191505095945050505050565b5f60208284031215610d11575f80fd5b5051919050565b6119b780610d255f395ff3fe608060405234801561000f575f80fd5b50600436106100fb575f3560e01c80639159eeae11610093578063cf44b1eb11610063578063cf44b1eb14610214578063d40c08d514610237578063f11bcbe7146101f3578063fa87e9761461024a575f80fd5b80639159eeae146101cf5780639d63848a146101e2578063b201f709146101f3578063bf7e214f14610204575f80fd5b80637a9e5e4b116100ce5780637a9e5e4b146101755780637f480903146101885780638c7a63ae1461019b5780638fb36037146101ae575f80fd5b806309824a80146100ff5780635809c85d146101145780635ab1bd531461013d5780637681f14a14610162575b5f80fd5b61011261010d366004611278565b61025d565b005b6101276101223660046112a8565b61035a565b6040516101349190611309565b60405180910390f35b6004546001600160a01b03165b6040516001600160a01b039091168152602001610134565b610112610170366004611384565b610490565b610112610183366004611278565b6104e5565b61011261019636600461145b565b610559565b6101276101a936600461150a565b6105ad565b6101b66106eb565b6040516001600160e01b03199091168152602001610134565b6101126101dd366004611521565b61070d565b600354604051908152602001610134565b6005546001600160a01b031661014a565b5f546001600160a01b031661014a565b610227610222366004611578565b610759565b6040519015158152602001610134565b6102276102453660046112a8565b6107db565b6101126102583660046115be565b61087b565b610269335b5f3661093d565b5f61027382610a33565b9050610356600460149054906101000a90046001600160601b031683836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906115f9565b846001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa15801561032a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103519190810190611614565b610b65565b5050565b6040805160a0810182525f8082526020820181905291810182905260608082019290925260808101919091526001600160601b038084165f9081526001602081815260408084206001600160a01b03808916865290835293819020815160a08101835281549687168152600160601b909604909416918501919091529082015460ff808216928501929092526101009004161515606083015260028101805460808401919061040890611689565b80601f016020809104026020016040519081016040528092919081815260200182805461043490611689565b801561047f5780601f106104565761010080835404028352916020019161047f565b820191905f5260205f20905b81548152906001019060200180831161046257829003601f168201915b505050505081525050905092915050565b61049933610262565b84846104a582826107db565b6104cf578181604051636426588560e01b81526004016104c69291906116c1565b60405180910390fd5b6104dc8787878787610e0d565b50505050505050565b5f5433906001600160a01b0316811461051b5760405162d1953b60e31b81526001600160a01b03821660048201526024016104c6565b816001600160a01b03163b5f03610550576040516361798f2f60e11b81526001600160a01b03831660048201526024016104c6565b61035682610fb7565b61056233610262565b6004546001600160601b03808616600160a01b909204160361059b578383604051635d1d46df60e11b81526004016104c69291906116c1565b6105a784848484610b65565b50505050565b6040805160a0810182525f808252602082018190529181018290526060808201929092526080810191909152600382815481106105ec576105ec6116e3565b5f9182526020918290206040805160a081018252600390930290910180546001600160601b03811684526001600160a01b03600160601b9091041693830193909352600183015460ff808216928401929092526101009004161515606082015260028201805491929160808401919061066490611689565b80601f016020809104026020016040519081016040528092919081815260200182805461069090611689565b80156106db5780601f106106b2576101008083540402835291602001916106db565b820191905f5260205f20905b8154815290600101906020018083116106be57829003601f168201915b5050505050815250509050919050565b5f8054600160a01b900460ff1661070157505f90565b50638fb3603760e01b90565b61071633610262565b838361072282826107db565b610743578181604051636426588560e01b81526004016104c69291906116c1565b610751868686866001610e0d565b505050505050565b6001600160601b0383165f9081526001602081815260408084206001600160a01b038716855290915282200154610100900460ff1661079957505f6107d4565b506001600160601b0383165f9081526002602090815260408083206001600160a01b0386168452825280832060ff8086168552925290912054165b9392505050565b6001600160601b038281165f9081526001602090815260408083206001600160a01b03861684529091528082205490516330b8415f60e01b8152921660048301529073__$dacf551d137a232f87fa09e79113e25430$__906330b8415f90602401602060405180830381865af4158015610857573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d491906116f7565b61088433610262565b828261089082826107db565b6108b1578181604051636426588560e01b81526004016104c69291906116c1565b6001600160601b0385165f8181526001602081815260408084206001600160a01b038a1680865290835293819020909201805461ff001916610100891515908102919091179091558251948552908401929092528201527f1b6da2069e5d2bc17e239ebaae07bf1e3076d259390dca82f5b778b05921c8c1906060015b60405180910390a15050505050565b5f806109706109535f546001600160a01b031690565b863061096260045f898b611712565b61096b91611739565b61100a565b9150915081610a2c5763ffffffff811615610a09575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee906109ca90889088908890600401611771565b5f604051808303815f87803b1580156109e1575f80fd5b505af11580156109f3573d5f803e3d5ffd5b50505f805460ff60a01b1916905550610a2c9050565b60405162d1953b60e31b81526001600160a01b03861660048201526024016104c6565b5050505050565b806001600160a01b0381163b5f03610acc5773__$dacf551d137a232f87fa09e79113e25430$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610a8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab091906117b0565b82604051630a0cb36b60e31b81526004016104c69291906116c1565b610ad581611112565b610b605773__$dacf551d137a232f87fa09e79113e25430$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610b20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4491906117b0565b8260405163bcd20b3b60e01b81526004016104c69291906116c1565b919050565b610b6f84846107db565b15610b91578383604051637cd757c960e01b81526004016104c69291906116c1565b604051630a4d29dd60e31b81526001600160601b038516600482015273__$dacf551d137a232f87fa09e79113e25430$__906352694ee890602401602060405180830381865af4158015610be7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0b91906116f7565b15610c2957604051634998330760e01b815260040160405180910390fd5b6001600160a01b038316610c505760405163dad20a1560e01b815260040160405180910390fd5b6040805160a0810182526001600160601b038087168083526001600160a01b03808816602080860182815260ff808b16888a01908152600160608a0181815260808b018d81525f998a528287528c8a20978a52969095529990962088519251909516600160601b029190961617835592519582018054935115156101000261ffff199094169690941695909517919091179091559151909182916002820190610cf99082611814565b5050600380546001810182555f829052835160208501516001600160a01b0316600160601b026001600160601b039091161791027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b810191825560408401517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c82018054606087015115156101000261ffff1990911660ff9093169290921791909117905560808401518493507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d90910190610dd59082611814565b5050507ffd0995f0018ce5282fc02eabca02e90b4eadd96ad13f1cdd63dafef4efeef7778585858560405161092e94939291906118cf565b8015610f2f57604051632b10f60d60e21b815260ff841660048201525f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015610e65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8991906115f9565b60ff169050610ea06004546001600160a01b031690565b6040516308f6e75560e11b815260ff861660048201526001600160a01b0391909116906311edceaa90602401602060405180830381865afa158015610ee7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0b91906116f7565b610f2d57604051639d56678360e01b815260ff851660048201526024016104c6565b505b6001600160601b0385165f8181526002602090815260408083206001600160a01b03891680855290835281842060ff891680865290845293829020805460ff191688151590811790915582519586529285015283019190915260608201527f87b54cef13dc402843e917a6faeaae0a69fe24d79c6f28761d7e4b6f0787de159060800161092e565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516110789190611914565b5f60405180830381855afa9150503d805f81146110b0576040519150601f19603f3d011682016040523d82523d5f602084013e6110b5565b606091505b509150915081156111075760408151106110e757808060200190518101906110dd919061192a565b9094509250611107565b6020815110611107578080602001905181019061110491906116f7565b93505b505094509492505050565b5f816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561116d575060408051601f3d908101601f1916820190925261116a9181019061196a565b60015b61117857505f919050565b506040516370a0823160e01b8152600160048201526001600160a01b038316906370a0823190602401602060405180830381865afa9250505080156111da575060408051601f3d908101601f191682019092526111d79181019061196a565b60015b6111e557505f919050565b50604051636eb1769f60e11b815260016004820152600260248201526001600160a01b0383169063dd62ed3e90604401602060405180830381865afa92505050801561124e575060408051601f3d908101601f1916820190925261124b9181019061196a565b60015b61125957505f919050565b50506001919050565b80356001600160a01b0381168114610b60575f80fd5b5f60208284031215611288575f80fd5b6107d482611262565b6001600160601b03811681146112a5575f80fd5b50565b5f80604083850312156112b9575f80fd5b82356112c481611291565b91506112d260208401611262565b90509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b03825116602082015260018060a01b03602083015116604082015260ff60408301511660608201526060820151151560808201525f608083015160a08084015261136160c08401826112db565b949350505050565b60ff811681146112a5575f80fd5b80151581146112a5575f80fd5b5f805f805f60a08688031215611398575f80fd5b85356113a381611291565b94506113b160208701611262565b935060408601356113c181611369565b925060608601356113d181611377565b915060808601356113e181611377565b809150509295509295909350565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561142c5761142c6113ef565b604052919050565b5f67ffffffffffffffff82111561144d5761144d6113ef565b50601f01601f191660200190565b5f805f806080858703121561146e575f80fd5b843561147981611291565b935061148760208601611262565b9250604085013561149781611369565b9150606085013567ffffffffffffffff8111156114b2575f80fd5b8501601f810187136114c2575f80fd5b80356114d56114d082611434565b611403565b8181528860208385010111156114e9575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f6020828403121561151a575f80fd5b5035919050565b5f805f8060808587031215611534575f80fd5b843561153f81611291565b935061154d60208601611262565b9250604085013561155d81611369565b9150606085013561156d81611377565b939692955090935050565b5f805f6060848603121561158a575f80fd5b833561159581611291565b92506115a360208501611262565b915060408401356115b381611369565b809150509250925092565b5f805f606084860312156115d0575f80fd5b83356115db81611291565b92506115e960208501611262565b915060408401356115b381611377565b5f60208284031215611609575f80fd5b81516107d481611369565b5f60208284031215611624575f80fd5b815167ffffffffffffffff81111561163a575f80fd5b8201601f8101841361164a575f80fd5b80516116586114d082611434565b81815285602083850101111561166c575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b600181811c9082168061169d57607f821691505b6020821081036116bb57634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160601b039290921682526001600160a01b0316602082015260400190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611707575f80fd5b81516107d481611377565b5f8085851115611720575f80fd5b8386111561172c575f80fd5b5050820193919092039150565b80356001600160e01b0319811690600484101561176a576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f602082840312156117c0575f80fd5b81516107d481611291565b601f82111561180f57805f5260205f20601f840160051c810160208510156117f05750805b601f840160051c820191505b81811015610a2c575f81556001016117fc565b505050565b815167ffffffffffffffff81111561182e5761182e6113ef565b6118428161183c8454611689565b846117cb565b6020601f821160018114611874575f831561185d5750848201515b5f19600385901b1c1916600184901b178455610a2c565b5f84815260208120601f198516915b828110156118a35787850151825560209485019460019092019101611883565b50848210156118c057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160601b03851681526001600160a01b038416602082015260ff831660408201526080606082018190525f9061190a908301846112db565b9695505050505050565b5f82518060208501845e5f920191825250919050565b5f806040838503121561193b575f80fd5b825161194681611377565b602084015190925063ffffffff8116811461195f575f80fd5b809150509250929050565b5f6020828403121561197a575f80fd5b505191905056fea264697066735822122087baab8322bf9afeec1861179ea968b374394b9ffc65bbcef69c7fedccacab2064736f6c634300081a0033",
682
+ "deployedBytecode": "0x608060405234801561000f575f80fd5b50600436106100fb575f3560e01c80639159eeae11610093578063cf44b1eb11610063578063cf44b1eb14610214578063d40c08d514610237578063f11bcbe7146101f3578063fa87e9761461024a575f80fd5b80639159eeae146101cf5780639d63848a146101e2578063b201f709146101f3578063bf7e214f14610204575f80fd5b80637a9e5e4b116100ce5780637a9e5e4b146101755780637f480903146101885780638c7a63ae1461019b5780638fb36037146101ae575f80fd5b806309824a80146100ff5780635809c85d146101145780635ab1bd531461013d5780637681f14a14610162575b5f80fd5b61011261010d366004611278565b61025d565b005b6101276101223660046112a8565b61035a565b6040516101349190611309565b60405180910390f35b6004546001600160a01b03165b6040516001600160a01b039091168152602001610134565b610112610170366004611384565b610490565b610112610183366004611278565b6104e5565b61011261019636600461145b565b610559565b6101276101a936600461150a565b6105ad565b6101b66106eb565b6040516001600160e01b03199091168152602001610134565b6101126101dd366004611521565b61070d565b600354604051908152602001610134565b6005546001600160a01b031661014a565b5f546001600160a01b031661014a565b610227610222366004611578565b610759565b6040519015158152602001610134565b6102276102453660046112a8565b6107db565b6101126102583660046115be565b61087b565b610269335b5f3661093d565b5f61027382610a33565b9050610356600460149054906101000a90046001600160601b031683836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ef91906115f9565b846001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa15801561032a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103519190810190611614565b610b65565b5050565b6040805160a0810182525f8082526020820181905291810182905260608082019290925260808101919091526001600160601b038084165f9081526001602081815260408084206001600160a01b03808916865290835293819020815160a08101835281549687168152600160601b909604909416918501919091529082015460ff808216928501929092526101009004161515606083015260028101805460808401919061040890611689565b80601f016020809104026020016040519081016040528092919081815260200182805461043490611689565b801561047f5780601f106104565761010080835404028352916020019161047f565b820191905f5260205f20905b81548152906001019060200180831161046257829003601f168201915b505050505081525050905092915050565b61049933610262565b84846104a582826107db565b6104cf578181604051636426588560e01b81526004016104c69291906116c1565b60405180910390fd5b6104dc8787878787610e0d565b50505050505050565b5f5433906001600160a01b0316811461051b5760405162d1953b60e31b81526001600160a01b03821660048201526024016104c6565b816001600160a01b03163b5f03610550576040516361798f2f60e11b81526001600160a01b03831660048201526024016104c6565b61035682610fb7565b61056233610262565b6004546001600160601b03808616600160a01b909204160361059b578383604051635d1d46df60e11b81526004016104c69291906116c1565b6105a784848484610b65565b50505050565b6040805160a0810182525f808252602082018190529181018290526060808201929092526080810191909152600382815481106105ec576105ec6116e3565b5f9182526020918290206040805160a081018252600390930290910180546001600160601b03811684526001600160a01b03600160601b9091041693830193909352600183015460ff808216928401929092526101009004161515606082015260028201805491929160808401919061066490611689565b80601f016020809104026020016040519081016040528092919081815260200182805461069090611689565b80156106db5780601f106106b2576101008083540402835291602001916106db565b820191905f5260205f20905b8154815290600101906020018083116106be57829003601f168201915b5050505050815250509050919050565b5f8054600160a01b900460ff1661070157505f90565b50638fb3603760e01b90565b61071633610262565b838361072282826107db565b610743578181604051636426588560e01b81526004016104c69291906116c1565b610751868686866001610e0d565b505050505050565b6001600160601b0383165f9081526001602081815260408084206001600160a01b038716855290915282200154610100900460ff1661079957505f6107d4565b506001600160601b0383165f9081526002602090815260408083206001600160a01b0386168452825280832060ff8086168552925290912054165b9392505050565b6001600160601b038281165f9081526001602090815260408083206001600160a01b03861684529091528082205490516330b8415f60e01b8152921660048301529073__$dacf551d137a232f87fa09e79113e25430$__906330b8415f90602401602060405180830381865af4158015610857573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d491906116f7565b61088433610262565b828261089082826107db565b6108b1578181604051636426588560e01b81526004016104c69291906116c1565b6001600160601b0385165f8181526001602081815260408084206001600160a01b038a1680865290835293819020909201805461ff001916610100891515908102919091179091558251948552908401929092528201527f1b6da2069e5d2bc17e239ebaae07bf1e3076d259390dca82f5b778b05921c8c1906060015b60405180910390a15050505050565b5f806109706109535f546001600160a01b031690565b863061096260045f898b611712565b61096b91611739565b61100a565b9150915081610a2c5763ffffffff811615610a09575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee906109ca90889088908890600401611771565b5f604051808303815f87803b1580156109e1575f80fd5b505af11580156109f3573d5f803e3d5ffd5b50505f805460ff60a01b1916905550610a2c9050565b60405162d1953b60e31b81526001600160a01b03861660048201526024016104c6565b5050505050565b806001600160a01b0381163b5f03610acc5773__$dacf551d137a232f87fa09e79113e25430$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610a8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab091906117b0565b82604051630a0cb36b60e31b81526004016104c69291906116c1565b610ad581611112565b610b605773__$dacf551d137a232f87fa09e79113e25430$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015610b20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4491906117b0565b8260405163bcd20b3b60e01b81526004016104c69291906116c1565b919050565b610b6f84846107db565b15610b91578383604051637cd757c960e01b81526004016104c69291906116c1565b604051630a4d29dd60e31b81526001600160601b038516600482015273__$dacf551d137a232f87fa09e79113e25430$__906352694ee890602401602060405180830381865af4158015610be7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0b91906116f7565b15610c2957604051634998330760e01b815260040160405180910390fd5b6001600160a01b038316610c505760405163dad20a1560e01b815260040160405180910390fd5b6040805160a0810182526001600160601b038087168083526001600160a01b03808816602080860182815260ff808b16888a01908152600160608a0181815260808b018d81525f998a528287528c8a20978a52969095529990962088519251909516600160601b029190961617835592519582018054935115156101000261ffff199094169690941695909517919091179091559151909182916002820190610cf99082611814565b5050600380546001810182555f829052835160208501516001600160a01b0316600160601b026001600160601b039091161791027fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b810191825560408401517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c82018054606087015115156101000261ffff1990911660ff9093169290921791909117905560808401518493507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d90910190610dd59082611814565b5050507ffd0995f0018ce5282fc02eabca02e90b4eadd96ad13f1cdd63dafef4efeef7778585858560405161092e94939291906118cf565b8015610f2f57604051632b10f60d60e21b815260ff841660048201525f9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015610e65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8991906115f9565b60ff169050610ea06004546001600160a01b031690565b6040516308f6e75560e11b815260ff861660048201526001600160a01b0391909116906311edceaa90602401602060405180830381865afa158015610ee7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0b91906116f7565b610f2d57604051639d56678360e01b815260ff851660048201526024016104c6565b505b6001600160601b0385165f8181526002602090815260408083206001600160a01b03891680855290835281842060ff891680865290845293829020805460ff191688151590811790915582519586529285015283019190915260608201527f87b54cef13dc402843e917a6faeaae0a69fe24d79c6f28761d7e4b6f0787de159060800161092e565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b179052516110789190611914565b5f60405180830381855afa9150503d805f81146110b0576040519150601f19603f3d011682016040523d82523d5f602084013e6110b5565b606091505b509150915081156111075760408151106110e757808060200190518101906110dd919061192a565b9094509250611107565b6020815110611107578080602001905181019061110491906116f7565b93505b505094509492505050565b5f816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561116d575060408051601f3d908101601f1916820190925261116a9181019061196a565b60015b61117857505f919050565b506040516370a0823160e01b8152600160048201526001600160a01b038316906370a0823190602401602060405180830381865afa9250505080156111da575060408051601f3d908101601f191682019092526111d79181019061196a565b60015b6111e557505f919050565b50604051636eb1769f60e11b815260016004820152600260248201526001600160a01b0383169063dd62ed3e90604401602060405180830381865afa92505050801561124e575060408051601f3d908101601f1916820190925261124b9181019061196a565b60015b61125957505f919050565b50506001919050565b80356001600160a01b0381168114610b60575f80fd5b5f60208284031215611288575f80fd5b6107d482611262565b6001600160601b03811681146112a5575f80fd5b50565b5f80604083850312156112b9575f80fd5b82356112c481611291565b91506112d260208401611262565b90509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b03825116602082015260018060a01b03602083015116604082015260ff60408301511660608201526060820151151560808201525f608083015160a08084015261136160c08401826112db565b949350505050565b60ff811681146112a5575f80fd5b80151581146112a5575f80fd5b5f805f805f60a08688031215611398575f80fd5b85356113a381611291565b94506113b160208701611262565b935060408601356113c181611369565b925060608601356113d181611377565b915060808601356113e181611377565b809150509295509295909350565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561142c5761142c6113ef565b604052919050565b5f67ffffffffffffffff82111561144d5761144d6113ef565b50601f01601f191660200190565b5f805f806080858703121561146e575f80fd5b843561147981611291565b935061148760208601611262565b9250604085013561149781611369565b9150606085013567ffffffffffffffff8111156114b2575f80fd5b8501601f810187136114c2575f80fd5b80356114d56114d082611434565b611403565b8181528860208385010111156114e9575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f6020828403121561151a575f80fd5b5035919050565b5f805f8060808587031215611534575f80fd5b843561153f81611291565b935061154d60208601611262565b9250604085013561155d81611369565b9150606085013561156d81611377565b939692955090935050565b5f805f6060848603121561158a575f80fd5b833561159581611291565b92506115a360208501611262565b915060408401356115b381611369565b809150509250925092565b5f805f606084860312156115d0575f80fd5b83356115db81611291565b92506115e960208501611262565b915060408401356115b381611377565b5f60208284031215611609575f80fd5b81516107d481611369565b5f60208284031215611624575f80fd5b815167ffffffffffffffff81111561163a575f80fd5b8201601f8101841361164a575f80fd5b80516116586114d082611434565b81815285602083850101111561166c575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b600181811c9082168061169d57607f821691505b6020821081036116bb57634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160601b039290921682526001600160a01b0316602082015260400190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611707575f80fd5b81516107d481611377565b5f8085851115611720575f80fd5b8386111561172c575f80fd5b5050820193919092039150565b80356001600160e01b0319811690600484101561176a576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f602082840312156117c0575f80fd5b81516107d481611291565b601f82111561180f57805f5260205f20601f840160051c810160208510156117f05750805b601f840160051c820191505b81811015610a2c575f81556001016117fc565b505050565b815167ffffffffffffffff81111561182e5761182e6113ef565b6118428161183c8454611689565b846117cb565b6020601f821160018114611874575f831561185d5750848201515b5f19600385901b1c1916600184901b178455610a2c565b5f84815260208120601f198516915b828110156118a35787850151825560209485019460019092019101611883565b50848210156118c057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001600160601b03851681526001600160a01b038416602082015260ff831660408201526080606082018190525f9061190a908301846112db565b9695505050505050565b5f82518060208501845e5f920191825250919050565b5f806040838503121561193b575f80fd5b825161194681611377565b602084015190925063ffffffff8116811461195f575f80fd5b809150509250929050565b5f6020828403121561197a575f80fd5b505191905056fea264697066735822122087baab8322bf9afeec1861179ea968b374394b9ffc65bbcef69c7fedccacab2064736f6c634300081a0033",
641
683
  "linkReferences": {
642
684
  "contracts/type/ChainId.sol": {
643
685
  "ChainIdLib": [
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a11472d155cc1e3900b16d2850f59142.json"
3
+ "buildInfo": "../../../build-info/9a415fb6bf9197b5d2ed454357782056.json"
4
4
  }
@@ -147,20 +147,99 @@
147
147
  "name": "ErrorNftOwnableNotOwner",
148
148
  "type": "error"
149
149
  },
150
+ {
151
+ "inputs": [],
152
+ "name": "ErrorRegisterableNotActive",
153
+ "type": "error"
154
+ },
150
155
  {
151
156
  "inputs": [
152
157
  {
153
158
  "internalType": "address",
154
- "name": "registryAddress",
159
+ "name": "target",
160
+ "type": "address"
161
+ },
162
+ {
163
+ "internalType": "address",
164
+ "name": "notRegistry",
155
165
  "type": "address"
156
166
  }
157
167
  ],
158
- "name": "ErrorNotRegistry",
168
+ "name": "ErrorRegistryLinkedNotRegistry",
159
169
  "type": "error"
160
170
  },
161
171
  {
162
- "inputs": [],
163
- "name": "ErrorRegisterableNotActive",
172
+ "inputs": [
173
+ {
174
+ "internalType": "address",
175
+ "name": "target",
176
+ "type": "address"
177
+ },
178
+ {
179
+ "internalType": "address",
180
+ "name": "registry",
181
+ "type": "address"
182
+ }
183
+ ],
184
+ "name": "ErrorRegistryLinkedRegistryAlreadyInitialized",
185
+ "type": "error"
186
+ },
187
+ {
188
+ "inputs": [
189
+ {
190
+ "internalType": "address",
191
+ "name": "target",
192
+ "type": "address"
193
+ },
194
+ {
195
+ "internalType": "address",
196
+ "name": "givenRegistry",
197
+ "type": "address"
198
+ },
199
+ {
200
+ "internalType": "address",
201
+ "name": "pureRegistry",
202
+ "type": "address"
203
+ }
204
+ ],
205
+ "name": "ErrorRegistryLinkedRegistryMismatch",
206
+ "type": "error"
207
+ },
208
+ {
209
+ "inputs": [
210
+ {
211
+ "internalType": "address",
212
+ "name": "target",
213
+ "type": "address"
214
+ },
215
+ {
216
+ "internalType": "VersionPart",
217
+ "name": "invalidRelease",
218
+ "type": "uint8"
219
+ }
220
+ ],
221
+ "name": "ErrorVersionableReleaseInvalid",
222
+ "type": "error"
223
+ },
224
+ {
225
+ "inputs": [
226
+ {
227
+ "internalType": "address",
228
+ "name": "target",
229
+ "type": "address"
230
+ },
231
+ {
232
+ "internalType": "VersionPart",
233
+ "name": "expected",
234
+ "type": "uint8"
235
+ },
236
+ {
237
+ "internalType": "VersionPart",
238
+ "name": "actual",
239
+ "type": "uint8"
240
+ }
241
+ ],
242
+ "name": "ErrorVersionableReleaseMismatch",
164
243
  "type": "error"
165
244
  },
166
245
  {
@@ -395,6 +474,19 @@
395
474
  "stateMutability": "view",
396
475
  "type": "function"
397
476
  },
477
+ {
478
+ "inputs": [],
479
+ "name": "getInitialData",
480
+ "outputs": [
481
+ {
482
+ "internalType": "bytes",
483
+ "name": "data",
484
+ "type": "bytes"
485
+ }
486
+ ],
487
+ "stateMutability": "view",
488
+ "type": "function"
489
+ },
398
490
  {
399
491
  "inputs": [],
400
492
  "name": "getInitialInfo",
@@ -416,6 +508,11 @@
416
508
  "name": "objectType",
417
509
  "type": "uint8"
418
510
  },
511
+ {
512
+ "internalType": "VersionPart",
513
+ "name": "release",
514
+ "type": "uint8"
515
+ },
419
516
  {
420
517
  "internalType": "bool",
421
518
  "name": "isInterceptor",
@@ -425,16 +522,6 @@
425
522
  "internalType": "address",
426
523
  "name": "objectAddress",
427
524
  "type": "address"
428
- },
429
- {
430
- "internalType": "address",
431
- "name": "initialOwner",
432
- "type": "address"
433
- },
434
- {
435
- "internalType": "bytes",
436
- "name": "data",
437
- "type": "bytes"
438
525
  }
439
526
  ],
440
527
  "internalType": "struct IRegistry.ObjectInfo",
@@ -503,11 +590,11 @@
503
590
  "outputs": [
504
591
  {
505
592
  "internalType": "VersionPart",
506
- "name": "release",
593
+ "name": "",
507
594
  "type": "uint8"
508
595
  }
509
596
  ],
510
- "stateMutability": "view",
597
+ "stateMutability": "pure",
511
598
  "type": "function"
512
599
  },
513
600
  {
@@ -542,11 +629,11 @@
542
629
  "outputs": [
543
630
  {
544
631
  "internalType": "Version",
545
- "name": "version",
632
+ "name": "",
546
633
  "type": "uint24"
547
634
  }
548
635
  ],
549
- "stateMutability": "view",
636
+ "stateMutability": "pure",
550
637
  "type": "function"
551
638
  },
552
639
  {
@@ -588,19 +675,6 @@
588
675
  "stateMutability": "view",
589
676
  "type": "function"
590
677
  },
591
- {
592
- "inputs": [],
593
- "name": "isNftInterceptor",
594
- "outputs": [
595
- {
596
- "internalType": "bool",
597
- "name": "isInterceptor",
598
- "type": "bool"
599
- }
600
- ],
601
- "stateMutability": "view",
602
- "type": "function"
603
- },
604
678
  {
605
679
  "inputs": [],
606
680
  "name": "isRegistered",
@@ -686,6 +760,25 @@
686
760
  ],
687
761
  "stateMutability": "view",
688
762
  "type": "function"
763
+ },
764
+ {
765
+ "inputs": [
766
+ {
767
+ "internalType": "Amount",
768
+ "name": "amount",
769
+ "type": "uint96"
770
+ }
771
+ ],
772
+ "name": "withdrawFees",
773
+ "outputs": [
774
+ {
775
+ "internalType": "Amount",
776
+ "name": "withdrawnAmount",
777
+ "type": "uint96"
778
+ }
779
+ ],
780
+ "stateMutability": "nonpayable",
781
+ "type": "function"
689
782
  }
690
783
  ],
691
784
  "bytecode": "0x",
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/a11472d155cc1e3900b16d2850f59142.json"
3
+ "buildInfo": "../../../build-info/9a415fb6bf9197b5d2ed454357782056.json"
4
4
  }