@etherisc/gif-next 0.0.2-7b53731-014 → 0.0.2-7bf5f47-222

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/README.md +211 -27
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +331 -23
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +366 -96
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +246 -23
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -188
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +15 -227
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -213
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +419 -155
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +453 -122
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +4 -0
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +66 -0
  20. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +4 -0
  21. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +24 -0
  22. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +4 -0
  23. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +42 -0
  24. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  36. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  37. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  38. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  39. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  40. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  41. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  42. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  43. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  44. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  45. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  46. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  47. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +788 -0
  48. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  49. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +185 -0
  50. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +865 -1135
  52. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  53. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
  54. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  55. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +570 -0
  56. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/Instance.sol/Instance.json +1825 -1175
  58. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  59. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1047 -0
  60. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  61. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +763 -0
  62. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1422 -0
  64. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +963 -0
  66. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +460 -0
  68. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +285 -0
  70. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  71. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +280 -48
  72. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +1 -1
  74. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +27 -158
  76. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  78. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +37 -245
  79. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  80. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
  81. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  82. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +254 -0
  83. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  84. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  85. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  86. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  87. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  88. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  89. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  90. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  91. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  92. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  93. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  94. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  95. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +968 -0
  97. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +432 -0
  99. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +374 -91
  101. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +335 -62
  103. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  104. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +420 -0
  105. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  106. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +692 -0
  107. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +185 -83
  109. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  110. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +182 -61
  111. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  112. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +680 -0
  113. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  114. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +180 -121
  115. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  116. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +179 -273
  117. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  118. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1025 -0
  119. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  120. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +472 -0
  121. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  122. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +316 -132
  123. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +420 -0
  125. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  126. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +286 -367
  127. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +420 -0
  129. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  130. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +186 -12
  131. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  132. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +376 -37
  133. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  134. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +976 -0
  135. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  136. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  137. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  138. package/artifacts/contracts/registry/Registry.sol/Registry.json +397 -115
  139. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  140. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  141. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  142. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1195 -0
  143. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +451 -0
  145. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  146. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +546 -0
  147. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  148. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +397 -0
  149. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  150. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  151. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  152. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  153. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  154. package/artifacts/contracts/{instance/module/component/ComponentModule.sol/ComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +67 -57
  155. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  156. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
  157. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +168 -123
  159. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  160. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
  161. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  162. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  163. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  164. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  165. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  166. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
  167. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/base/IService.sol/IService.json → shared/RegisterableUpgradable.sol/RegisterableUpgradable.json} +215 -73
  169. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  170. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/Service.sol/Service.json} +224 -56
  171. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  172. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  173. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  174. package/artifacts/contracts/shared/{Proxy.sol/ProxyWithProxyAdminGetter.json → UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json} +4 -4
  175. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  176. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
  177. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  178. package/artifacts/contracts/test/TestFee.sol/TestFee.json +4 -4
  179. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  180. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
  181. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  182. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +14 -14
  183. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  184. package/artifacts/contracts/test/TestService.sol/TestService.json +289 -68
  185. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  186. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
  187. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  188. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  189. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  190. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +103 -23
  191. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  192. package/artifacts/contracts/test/Usdc.sol/USDC.json +91 -53
  193. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  194. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  195. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  196. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  197. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  198. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  199. package/artifacts/contracts/types/Fee.sol/FeeLib.json +4 -4
  200. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  201. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +31 -17
  202. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  203. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  204. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  205. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  206. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  207. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  208. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  209. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  210. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  211. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  212. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  213. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  214. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  215. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +134 -8
  216. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  217. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  218. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  219. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +15 -2
  220. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  221. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  222. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  223. package/artifacts/contracts/types/UFixed.sol/{UFixedMathLib.json → UFixedLib.json} +3 -3
  224. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  225. package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
  226. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  227. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  228. package/contracts/components/BaseComponent.sol +104 -39
  229. package/contracts/components/Distribution.sol +51 -20
  230. package/contracts/components/IBaseComponent.sol +18 -3
  231. package/contracts/components/IDistributionComponent.sol +3 -6
  232. package/contracts/components/IPoolComponent.sol +7 -12
  233. package/contracts/components/IProductComponent.sol +4 -7
  234. package/contracts/components/Pool.sol +118 -82
  235. package/contracts/components/Product.sol +118 -53
  236. package/contracts/experiment/cloning/Cloner.sol +47 -0
  237. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
  238. package/contracts/instance/BundleManager.sol +129 -0
  239. package/contracts/instance/Cloneable.sol +46 -0
  240. package/contracts/instance/IInstance.sol +54 -45
  241. package/contracts/instance/IInstanceBase.sol +26 -0
  242. package/contracts/instance/IInstanceService.sol +40 -0
  243. package/contracts/instance/Instance.sol +260 -58
  244. package/contracts/instance/InstanceAccessManager.sol +303 -0
  245. package/contracts/instance/InstanceBase.sol +41 -0
  246. package/contracts/instance/InstanceReader.sol +315 -0
  247. package/contracts/instance/InstanceService.sol +350 -0
  248. package/contracts/instance/InstanceServiceManager.sol +54 -0
  249. package/contracts/instance/ObjectManager.sol +101 -0
  250. package/contracts/instance/base/ComponentServiceBase.sol +57 -17
  251. package/contracts/instance/base/IInstanceBase.sol +3 -2
  252. package/contracts/instance/base/IKeyValueStore.sol +13 -14
  253. package/contracts/instance/base/ILifecycle.sol +3 -3
  254. package/contracts/instance/base/KeyValueStore.sol +49 -38
  255. package/contracts/instance/base/Lifecycle.sol +1 -1
  256. package/contracts/instance/module/IAccess.sol +48 -0
  257. package/contracts/instance/module/IBundle.sol +20 -0
  258. package/contracts/instance/module/IDistribution.sol +39 -0
  259. package/contracts/instance/module/IPolicy.sol +45 -0
  260. package/contracts/instance/module/IRisk.sol +11 -0
  261. package/contracts/instance/module/ISetup.sol +46 -0
  262. package/contracts/instance/module/ITreasury.sol +23 -0
  263. package/contracts/instance/service/BundleService.sol +275 -0
  264. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  265. package/contracts/instance/service/ComponentOwnerService.sol +232 -74
  266. package/contracts/instance/service/DistributionService.sol +75 -21
  267. package/contracts/instance/service/DistributionServiceManager.sol +51 -0
  268. package/contracts/instance/service/IBundleService.sol +42 -0
  269. package/contracts/instance/service/IComponentOwnerService.sol +1 -3
  270. package/contracts/instance/service/IDistributionService.sol +1 -1
  271. package/contracts/instance/service/IPolicyService.sol +88 -0
  272. package/contracts/instance/service/IPoolService.sol +7 -24
  273. package/contracts/instance/service/IProductService.sol +9 -76
  274. package/contracts/instance/service/PolicyService.sol +505 -0
  275. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  276. package/contracts/instance/service/PoolService.sol +85 -110
  277. package/contracts/instance/service/PoolServiceManager.sol +51 -0
  278. package/contracts/instance/service/ProductService.sol +98 -437
  279. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  280. package/contracts/registry/ChainNft.sol +79 -36
  281. package/contracts/registry/IRegistry.sol +58 -24
  282. package/contracts/registry/IRegistryService.sol +58 -0
  283. package/contracts/registry/ITransferInterceptor.sol +6 -0
  284. package/contracts/registry/Registry.sol +303 -288
  285. package/contracts/registry/RegistryAccessManager.sol +210 -0
  286. package/contracts/registry/RegistryService.sol +323 -0
  287. package/contracts/registry/RegistryServiceManager.sol +62 -0
  288. package/contracts/registry/ReleaseManager.sol +348 -0
  289. package/contracts/registry/TokenRegistry.sol +110 -0
  290. package/contracts/shared/ContractDeployerLib.sol +72 -0
  291. package/contracts/shared/ERC165.sol +6 -2
  292. package/contracts/shared/INftOwnable.sol +22 -0
  293. package/contracts/shared/IRegisterable.sol +8 -15
  294. package/contracts/shared/IService.sol +16 -0
  295. package/contracts/shared/IVersionable.sol +55 -11
  296. package/contracts/shared/NftOwnable.sol +134 -0
  297. package/contracts/shared/ProxyManager.sol +94 -0
  298. package/contracts/shared/Registerable.sol +63 -59
  299. package/contracts/shared/RegisterableUpgradable.sol +16 -0
  300. package/contracts/shared/Service.sol +58 -0
  301. package/contracts/shared/TokenHandler.sol +27 -0
  302. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  303. package/contracts/shared/Versionable.sol +113 -55
  304. package/contracts/test/TestFee.sol +2 -2
  305. package/contracts/test/TestRegisterable.sol +5 -6
  306. package/contracts/test/TestRoleId.sol +1 -1
  307. package/contracts/test/TestService.sol +7 -14
  308. package/contracts/types/DistributorType.sol +55 -0
  309. package/contracts/types/Fee.sol +3 -3
  310. package/contracts/types/Key32.sol +8 -3
  311. package/contracts/types/NftIdSet.sol +26 -24
  312. package/contracts/types/NumberId.sol +52 -0
  313. package/contracts/types/ObjectType.sol +35 -14
  314. package/contracts/types/Referral.sol +85 -0
  315. package/contracts/types/RoleId.sol +61 -9
  316. package/contracts/types/StateId.sol +5 -1
  317. package/contracts/types/Timestamp.sol +7 -3
  318. package/contracts/types/UFixed.sol +128 -12
  319. package/contracts/types/Version.sol +13 -1
  320. package/package.json +4 -3
  321. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  322. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  323. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  324. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  325. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  326. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  327. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  328. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  329. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  330. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.json +0 -10
  331. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  332. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  333. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  334. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  335. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  336. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  337. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  338. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  339. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  340. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  341. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  342. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  343. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  344. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  345. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  346. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  347. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  348. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  349. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  350. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  351. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  352. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  353. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  354. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  355. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  356. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  357. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  358. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  359. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  360. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  361. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  362. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  363. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  364. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  365. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  366. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -511
  367. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  368. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  369. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  370. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -511
  371. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  372. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  373. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  374. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  375. package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.dbg.json +0 -4
  376. package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.json +0 -495
  377. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  378. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  379. package/artifacts/contracts/shared/Proxy.sol/Proxy.dbg.json +0 -4
  380. package/artifacts/contracts/shared/Proxy.sol/Proxy.json +0 -178
  381. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +0 -4
  382. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.dbg.json +0 -4
  383. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.json +0 -187
  384. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  385. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -405
  386. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  387. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -578
  388. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  389. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -575
  390. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  391. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  392. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  393. package/contracts/experiment/statemachine/README.md +0 -112
  394. package/contracts/instance/IInstanceLinked.sol +0 -8
  395. package/contracts/instance/base/IService.sol +0 -15
  396. package/contracts/instance/base/InstanceBase.sol +0 -91
  397. package/contracts/instance/base/ModuleBase.sol +0 -57
  398. package/contracts/instance/base/ServiceBase.sol +0 -37
  399. package/contracts/instance/module/access/Access.sol +0 -149
  400. package/contracts/instance/module/access/IAccess.sol +0 -53
  401. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  402. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  403. package/contracts/instance/module/component/ComponentModule.sol +0 -70
  404. package/contracts/instance/module/component/IComponent.sol +0 -28
  405. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  406. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  407. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  408. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  409. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  410. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  411. package/contracts/instance/module/risk/IRisk.sol +0 -26
  412. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  413. package/contracts/instance/module/treasury/ITreasury.sol +0 -82
  414. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  415. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -138
  416. package/contracts/registry/IChainNft.sol +0 -21
  417. package/contracts/registry/IRegistryLinked.sol +0 -8
  418. package/contracts/registry/RegistryUpgradeable.sol +0 -416
  419. package/contracts/shared/IOwnable.sol +0 -6
  420. package/contracts/shared/Proxy.sol +0 -83
  421. package/contracts/shared/VersionableUpgradeable.sol +0 -108
  422. package/contracts/test/TestDistribution.sol +0 -21
  423. package/contracts/test/TestPool.sol +0 -25
  424. package/contracts/test/TestProduct.sol +0 -72
  425. package/contracts/types/ReferralId.sol +0 -48
@@ -0,0 +1,1025 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PolicyService",
4
+ "sourceName": "contracts/instance/service/PolicyService.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "ObjectType",
10
+ "name": "componentType",
11
+ "type": "uint8"
12
+ }
13
+ ],
14
+ "name": "ComponentTypeInvalid",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "registry",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "internalType": "NftId",
26
+ "name": "nftId",
27
+ "type": "uint96"
28
+ }
29
+ ],
30
+ "name": "ErrorAlreadyLinked",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "componentAddress",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "ErrorComponentServiceBaseComponentLocked",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "contractAddress",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "ErrorContractNotRegistered",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "target",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "name": "ErrorIAccessTargetLocked",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [
68
+ {
69
+ "internalType": "address",
70
+ "name": "customer",
71
+ "type": "address"
72
+ },
73
+ {
74
+ "internalType": "address",
75
+ "name": "tokenHandlerAddress",
76
+ "type": "address"
77
+ },
78
+ {
79
+ "internalType": "uint256",
80
+ "name": "amount",
81
+ "type": "uint256"
82
+ }
83
+ ],
84
+ "name": "ErrorIPolicyServiceInsufficientAllowance",
85
+ "type": "error"
86
+ },
87
+ {
88
+ "inputs": [
89
+ {
90
+ "internalType": "NftId",
91
+ "name": "policyNftId",
92
+ "type": "uint96"
93
+ },
94
+ {
95
+ "internalType": "uint256",
96
+ "name": "premiumPaidAmount",
97
+ "type": "uint256"
98
+ }
99
+ ],
100
+ "name": "ErrorIPolicyServicePremiumAlreadyPaid",
101
+ "type": "error"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "internalType": "address",
107
+ "name": "account",
108
+ "type": "address"
109
+ }
110
+ ],
111
+ "name": "ErrorNotOwner",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "inputs": [
116
+ {
117
+ "internalType": "address",
118
+ "name": "registryAddress",
119
+ "type": "address"
120
+ }
121
+ ],
122
+ "name": "ErrorNotRegistry",
123
+ "type": "error"
124
+ },
125
+ {
126
+ "inputs": [
127
+ {
128
+ "internalType": "address",
129
+ "name": "registryAddress",
130
+ "type": "address"
131
+ }
132
+ ],
133
+ "name": "ErrorRegisterableNotRegistry",
134
+ "type": "error"
135
+ },
136
+ {
137
+ "inputs": [],
138
+ "name": "ErrorRegistryAddressZero",
139
+ "type": "error"
140
+ },
141
+ {
142
+ "inputs": [
143
+ {
144
+ "internalType": "address",
145
+ "name": "registry",
146
+ "type": "address"
147
+ }
148
+ ],
149
+ "name": "ErrorRegistryAlreadyInitialized",
150
+ "type": "error"
151
+ },
152
+ {
153
+ "inputs": [],
154
+ "name": "ErrorRegistryNotInitialized",
155
+ "type": "error"
156
+ },
157
+ {
158
+ "inputs": [
159
+ {
160
+ "internalType": "RoleId",
161
+ "name": "expected",
162
+ "type": "uint64"
163
+ },
164
+ {
165
+ "internalType": "address",
166
+ "name": "caller",
167
+ "type": "address"
168
+ }
169
+ ],
170
+ "name": "ExpectedRoleMissing",
171
+ "type": "error"
172
+ },
173
+ {
174
+ "inputs": [],
175
+ "name": "InvalidInitialization",
176
+ "type": "error"
177
+ },
178
+ {
179
+ "inputs": [],
180
+ "name": "NotInitializing",
181
+ "type": "error"
182
+ },
183
+ {
184
+ "anonymous": false,
185
+ "inputs": [
186
+ {
187
+ "indexed": false,
188
+ "internalType": "uint64",
189
+ "name": "version",
190
+ "type": "uint64"
191
+ }
192
+ ],
193
+ "name": "Initialized",
194
+ "type": "event"
195
+ },
196
+ {
197
+ "anonymous": false,
198
+ "inputs": [
199
+ {
200
+ "indexed": false,
201
+ "internalType": "address",
202
+ "name": "sender",
203
+ "type": "address"
204
+ }
205
+ ],
206
+ "name": "LogProductServiceSender",
207
+ "type": "event"
208
+ },
209
+ {
210
+ "anonymous": false,
211
+ "inputs": [
212
+ {
213
+ "indexed": false,
214
+ "internalType": "Version",
215
+ "name": "version",
216
+ "type": "uint24"
217
+ },
218
+ {
219
+ "indexed": false,
220
+ "internalType": "address",
221
+ "name": "implementation",
222
+ "type": "address"
223
+ },
224
+ {
225
+ "indexed": false,
226
+ "internalType": "address",
227
+ "name": "activatedBy",
228
+ "type": "address"
229
+ }
230
+ ],
231
+ "name": "LogVersionableInitialized",
232
+ "type": "event"
233
+ },
234
+ {
235
+ "inputs": [],
236
+ "name": "REGISTERABLE_LOCATION_V1",
237
+ "outputs": [
238
+ {
239
+ "internalType": "bytes32",
240
+ "name": "",
241
+ "type": "bytes32"
242
+ }
243
+ ],
244
+ "stateMutability": "view",
245
+ "type": "function"
246
+ },
247
+ {
248
+ "inputs": [
249
+ {
250
+ "internalType": "NftId",
251
+ "name": "policyNftId",
252
+ "type": "uint96"
253
+ },
254
+ {
255
+ "internalType": "Timestamp",
256
+ "name": "activateAt",
257
+ "type": "uint40"
258
+ }
259
+ ],
260
+ "name": "activate",
261
+ "outputs": [],
262
+ "stateMutability": "nonpayable",
263
+ "type": "function"
264
+ },
265
+ {
266
+ "inputs": [
267
+ {
268
+ "internalType": "RiskId",
269
+ "name": "riskId",
270
+ "type": "bytes8"
271
+ },
272
+ {
273
+ "internalType": "uint256",
274
+ "name": "sumInsuredAmount",
275
+ "type": "uint256"
276
+ },
277
+ {
278
+ "internalType": "uint256",
279
+ "name": "lifetime",
280
+ "type": "uint256"
281
+ },
282
+ {
283
+ "internalType": "bytes",
284
+ "name": "applicationData",
285
+ "type": "bytes"
286
+ },
287
+ {
288
+ "internalType": "NftId",
289
+ "name": "bundleNftId",
290
+ "type": "uint96"
291
+ },
292
+ {
293
+ "internalType": "ReferralId",
294
+ "name": "referralId",
295
+ "type": "bytes8"
296
+ }
297
+ ],
298
+ "name": "calculatePremium",
299
+ "outputs": [
300
+ {
301
+ "internalType": "uint256",
302
+ "name": "premiumAmount",
303
+ "type": "uint256"
304
+ },
305
+ {
306
+ "internalType": "uint256",
307
+ "name": "productFeeAmount",
308
+ "type": "uint256"
309
+ },
310
+ {
311
+ "internalType": "uint256",
312
+ "name": "poolFeeAmount",
313
+ "type": "uint256"
314
+ },
315
+ {
316
+ "internalType": "uint256",
317
+ "name": "bundleFeeAmount",
318
+ "type": "uint256"
319
+ },
320
+ {
321
+ "internalType": "uint256",
322
+ "name": "distributionFeeAmount",
323
+ "type": "uint256"
324
+ }
325
+ ],
326
+ "stateMutability": "view",
327
+ "type": "function"
328
+ },
329
+ {
330
+ "inputs": [
331
+ {
332
+ "internalType": "UFixed",
333
+ "name": "collateralizationLevel",
334
+ "type": "uint256"
335
+ },
336
+ {
337
+ "internalType": "uint256",
338
+ "name": "sumInsuredAmount",
339
+ "type": "uint256"
340
+ }
341
+ ],
342
+ "name": "calculateRequiredCollateral",
343
+ "outputs": [
344
+ {
345
+ "internalType": "uint256",
346
+ "name": "collateralAmount",
347
+ "type": "uint256"
348
+ }
349
+ ],
350
+ "stateMutability": "pure",
351
+ "type": "function"
352
+ },
353
+ {
354
+ "inputs": [
355
+ {
356
+ "internalType": "NftId",
357
+ "name": "policyNftId",
358
+ "type": "uint96"
359
+ }
360
+ ],
361
+ "name": "close",
362
+ "outputs": [],
363
+ "stateMutability": "nonpayable",
364
+ "type": "function"
365
+ },
366
+ {
367
+ "inputs": [
368
+ {
369
+ "internalType": "NftId",
370
+ "name": "policyNftId",
371
+ "type": "uint96"
372
+ },
373
+ {
374
+ "internalType": "Timestamp",
375
+ "name": "activateAt",
376
+ "type": "uint40"
377
+ }
378
+ ],
379
+ "name": "collectPremium",
380
+ "outputs": [],
381
+ "stateMutability": "nonpayable",
382
+ "type": "function"
383
+ },
384
+ {
385
+ "inputs": [
386
+ {
387
+ "internalType": "address",
388
+ "name": "applicationOwner",
389
+ "type": "address"
390
+ },
391
+ {
392
+ "internalType": "RiskId",
393
+ "name": "riskId",
394
+ "type": "bytes8"
395
+ },
396
+ {
397
+ "internalType": "uint256",
398
+ "name": "sumInsuredAmount",
399
+ "type": "uint256"
400
+ },
401
+ {
402
+ "internalType": "uint256",
403
+ "name": "lifetime",
404
+ "type": "uint256"
405
+ },
406
+ {
407
+ "internalType": "bytes",
408
+ "name": "applicationData",
409
+ "type": "bytes"
410
+ },
411
+ {
412
+ "internalType": "NftId",
413
+ "name": "bundleNftId",
414
+ "type": "uint96"
415
+ },
416
+ {
417
+ "internalType": "ReferralId",
418
+ "name": "referralId",
419
+ "type": "bytes8"
420
+ }
421
+ ],
422
+ "name": "createApplication",
423
+ "outputs": [
424
+ {
425
+ "internalType": "NftId",
426
+ "name": "policyNftId",
427
+ "type": "uint96"
428
+ }
429
+ ],
430
+ "stateMutability": "nonpayable",
431
+ "type": "function"
432
+ },
433
+ {
434
+ "inputs": [],
435
+ "name": "getDomain",
436
+ "outputs": [
437
+ {
438
+ "internalType": "ObjectType",
439
+ "name": "",
440
+ "type": "uint8"
441
+ }
442
+ ],
443
+ "stateMutability": "pure",
444
+ "type": "function"
445
+ },
446
+ {
447
+ "inputs": [],
448
+ "name": "getInitialInfo",
449
+ "outputs": [
450
+ {
451
+ "components": [
452
+ {
453
+ "internalType": "NftId",
454
+ "name": "nftId",
455
+ "type": "uint96"
456
+ },
457
+ {
458
+ "internalType": "NftId",
459
+ "name": "parentNftId",
460
+ "type": "uint96"
461
+ },
462
+ {
463
+ "internalType": "ObjectType",
464
+ "name": "objectType",
465
+ "type": "uint8"
466
+ },
467
+ {
468
+ "internalType": "bool",
469
+ "name": "isInterceptor",
470
+ "type": "bool"
471
+ },
472
+ {
473
+ "internalType": "address",
474
+ "name": "objectAddress",
475
+ "type": "address"
476
+ },
477
+ {
478
+ "internalType": "address",
479
+ "name": "initialOwner",
480
+ "type": "address"
481
+ },
482
+ {
483
+ "internalType": "bytes",
484
+ "name": "data",
485
+ "type": "bytes"
486
+ }
487
+ ],
488
+ "internalType": "struct IRegistry.ObjectInfo",
489
+ "name": "",
490
+ "type": "tuple"
491
+ },
492
+ {
493
+ "internalType": "bytes",
494
+ "name": "data",
495
+ "type": "bytes"
496
+ }
497
+ ],
498
+ "stateMutability": "view",
499
+ "type": "function"
500
+ },
501
+ {
502
+ "inputs": [],
503
+ "name": "getInitializedVersion",
504
+ "outputs": [
505
+ {
506
+ "internalType": "uint64",
507
+ "name": "",
508
+ "type": "uint64"
509
+ }
510
+ ],
511
+ "stateMutability": "view",
512
+ "type": "function"
513
+ },
514
+ {
515
+ "inputs": [],
516
+ "name": "getInstanceService",
517
+ "outputs": [
518
+ {
519
+ "internalType": "contract InstanceService",
520
+ "name": "",
521
+ "type": "address"
522
+ }
523
+ ],
524
+ "stateMutability": "view",
525
+ "type": "function"
526
+ },
527
+ {
528
+ "inputs": [],
529
+ "name": "getMajorVersion",
530
+ "outputs": [
531
+ {
532
+ "internalType": "VersionPart",
533
+ "name": "majorVersion",
534
+ "type": "uint8"
535
+ }
536
+ ],
537
+ "stateMutability": "view",
538
+ "type": "function"
539
+ },
540
+ {
541
+ "inputs": [],
542
+ "name": "getNftId",
543
+ "outputs": [
544
+ {
545
+ "internalType": "NftId",
546
+ "name": "",
547
+ "type": "uint96"
548
+ }
549
+ ],
550
+ "stateMutability": "view",
551
+ "type": "function"
552
+ },
553
+ {
554
+ "inputs": [],
555
+ "name": "getOwner",
556
+ "outputs": [
557
+ {
558
+ "internalType": "address",
559
+ "name": "",
560
+ "type": "address"
561
+ }
562
+ ],
563
+ "stateMutability": "view",
564
+ "type": "function"
565
+ },
566
+ {
567
+ "inputs": [],
568
+ "name": "getRegistry",
569
+ "outputs": [
570
+ {
571
+ "internalType": "contract IRegistry",
572
+ "name": "",
573
+ "type": "address"
574
+ }
575
+ ],
576
+ "stateMutability": "view",
577
+ "type": "function"
578
+ },
579
+ {
580
+ "inputs": [],
581
+ "name": "getRegistryService",
582
+ "outputs": [
583
+ {
584
+ "internalType": "contract IRegistryService",
585
+ "name": "",
586
+ "type": "address"
587
+ }
588
+ ],
589
+ "stateMutability": "view",
590
+ "type": "function"
591
+ },
592
+ {
593
+ "inputs": [],
594
+ "name": "getVersion",
595
+ "outputs": [
596
+ {
597
+ "internalType": "Version",
598
+ "name": "",
599
+ "type": "uint24"
600
+ }
601
+ ],
602
+ "stateMutability": "pure",
603
+ "type": "function"
604
+ },
605
+ {
606
+ "inputs": [
607
+ {
608
+ "internalType": "uint256",
609
+ "name": "idx",
610
+ "type": "uint256"
611
+ }
612
+ ],
613
+ "name": "getVersion",
614
+ "outputs": [
615
+ {
616
+ "internalType": "Version",
617
+ "name": "",
618
+ "type": "uint24"
619
+ }
620
+ ],
621
+ "stateMutability": "view",
622
+ "type": "function"
623
+ },
624
+ {
625
+ "inputs": [],
626
+ "name": "getVersionCount",
627
+ "outputs": [
628
+ {
629
+ "internalType": "uint256",
630
+ "name": "",
631
+ "type": "uint256"
632
+ }
633
+ ],
634
+ "stateMutability": "view",
635
+ "type": "function"
636
+ },
637
+ {
638
+ "inputs": [
639
+ {
640
+ "internalType": "Version",
641
+ "name": "_version",
642
+ "type": "uint24"
643
+ }
644
+ ],
645
+ "name": "getVersionInfo",
646
+ "outputs": [
647
+ {
648
+ "components": [
649
+ {
650
+ "internalType": "Version",
651
+ "name": "version",
652
+ "type": "uint24"
653
+ },
654
+ {
655
+ "internalType": "address",
656
+ "name": "implementation",
657
+ "type": "address"
658
+ },
659
+ {
660
+ "internalType": "address",
661
+ "name": "activatedBy",
662
+ "type": "address"
663
+ },
664
+ {
665
+ "internalType": "Timestamp",
666
+ "name": "activatedAt",
667
+ "type": "uint40"
668
+ },
669
+ {
670
+ "internalType": "Blocknumber",
671
+ "name": "activatedIn",
672
+ "type": "uint32"
673
+ }
674
+ ],
675
+ "internalType": "struct IVersionable.VersionInfo",
676
+ "name": "",
677
+ "type": "tuple"
678
+ }
679
+ ],
680
+ "stateMutability": "view",
681
+ "type": "function"
682
+ },
683
+ {
684
+ "inputs": [
685
+ {
686
+ "internalType": "address",
687
+ "name": "implementation",
688
+ "type": "address"
689
+ },
690
+ {
691
+ "internalType": "address",
692
+ "name": "activatedBy",
693
+ "type": "address"
694
+ },
695
+ {
696
+ "internalType": "bytes",
697
+ "name": "data",
698
+ "type": "bytes"
699
+ }
700
+ ],
701
+ "name": "initialize",
702
+ "outputs": [],
703
+ "stateMutability": "nonpayable",
704
+ "type": "function"
705
+ },
706
+ {
707
+ "inputs": [
708
+ {
709
+ "internalType": "Version",
710
+ "name": "_version",
711
+ "type": "uint24"
712
+ }
713
+ ],
714
+ "name": "isInitialized",
715
+ "outputs": [
716
+ {
717
+ "internalType": "bool",
718
+ "name": "",
719
+ "type": "bool"
720
+ }
721
+ ],
722
+ "stateMutability": "view",
723
+ "type": "function"
724
+ },
725
+ {
726
+ "inputs": [],
727
+ "name": "linkToRegisteredNftId",
728
+ "outputs": [],
729
+ "stateMutability": "nonpayable",
730
+ "type": "function"
731
+ },
732
+ {
733
+ "inputs": [
734
+ {
735
+ "internalType": "NftId",
736
+ "name": "policyNftId",
737
+ "type": "uint96"
738
+ }
739
+ ],
740
+ "name": "revoke",
741
+ "outputs": [],
742
+ "stateMutability": "nonpayable",
743
+ "type": "function"
744
+ },
745
+ {
746
+ "inputs": [
747
+ {
748
+ "internalType": "bytes4",
749
+ "name": "interfaceId",
750
+ "type": "bytes4"
751
+ }
752
+ ],
753
+ "name": "supportsInterface",
754
+ "outputs": [
755
+ {
756
+ "internalType": "bool",
757
+ "name": "",
758
+ "type": "bool"
759
+ }
760
+ ],
761
+ "stateMutability": "view",
762
+ "type": "function"
763
+ },
764
+ {
765
+ "inputs": [
766
+ {
767
+ "internalType": "NftId",
768
+ "name": "policyNftId",
769
+ "type": "uint96"
770
+ },
771
+ {
772
+ "internalType": "bool",
773
+ "name": "requirePremiumPayment",
774
+ "type": "bool"
775
+ },
776
+ {
777
+ "internalType": "Timestamp",
778
+ "name": "activateAt",
779
+ "type": "uint40"
780
+ }
781
+ ],
782
+ "name": "underwrite",
783
+ "outputs": [],
784
+ "stateMutability": "nonpayable",
785
+ "type": "function"
786
+ },
787
+ {
788
+ "inputs": [
789
+ {
790
+ "internalType": "address",
791
+ "name": "implementation",
792
+ "type": "address"
793
+ },
794
+ {
795
+ "internalType": "address",
796
+ "name": "activatedBy",
797
+ "type": "address"
798
+ },
799
+ {
800
+ "internalType": "bytes",
801
+ "name": "data",
802
+ "type": "bytes"
803
+ }
804
+ ],
805
+ "name": "upgrade",
806
+ "outputs": [],
807
+ "stateMutability": "nonpayable",
808
+ "type": "function"
809
+ }
810
+ ],
811
+ "bytecode": "0x60806040523480156200001157600080fd5b50620000546301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b600280546001600160a01b031916331790556200007062000076565b6200012a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000c75760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001275780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b614d89806200013a6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063644c45e0116100f9578063b88da75911610097578063caf4e3d411610071578063caf4e3d414610526578063cc9fc59a1461052e578063cde749f414610536578063cf7a1d771461053e57600080fd5b8063b88da759146104ed578063bbfbbfba14610500578063c2c749871461051357600080fd5b80639cdaa7f9116100d35780639cdaa7f91461046a578063a745e3df146104a5578063b3c65015146104b8578063b68d1809146104d857600080fd5b8063644c45e01461040f578063893d20e81461043b578063946dfcfe1461044357600080fd5b80634d459c90116101665780635ab1bd53116101405780635ab1bd53146103b15780635fd1a5f5146103d6578063603ccaad146103e9578063630361f6146103fc57600080fd5b80634d459c90146102725780634d5e16a91461038b5780634f4213331461039e57600080fd5b806301ffc9a7146101ae5780630aaba8e8146101f05780630d8e6e2c146102035780630fec111c1461021f578063138461e0146102355780631eff4b221461023d575b600080fd5b6101db6101bc366004613c1a565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102016101fe366004613c59565b50565b005b61020b610551565b60405162ffffff90911681526020016101e7565b6102276105db565b6040516101e7929190613d37565b61020161072e565b6102647f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016101e7565b61032e610280366004613d76565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152600080516020614d3483398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a0016101e7565b610201610399366004613da6565b610950565b6101db6103ac366004613d76565b610c14565b6001546001600160a01b03165b6040516001600160a01b0390911681526020016101e7565b6102646103e4366004613ddf565b610cc7565b6102016103f7366004613c59565b610dd0565b61020161040a366004613e0f565b610e22565b600154600160a01b90046001600160601b03165b6040516001600160601b0390911681526020016101e7565b6103be611394565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610264565b61047d610478366004613fc4565b6114ad565b604080519586526020860194909452928401919091526060830152608082015260a0016101e7565b6102016104b3366004614061565b61158b565b6104c06116e5565b6040516001600160401b0390911681526020016101e7565b60d25b60405160ff90911681526020016101e7565b61020b6104fb3660046140c2565b611706565b61020161050e366004613da6565b611757565b6104236105213660046140db565b611acb565b6103be611d83565b6103be611e1a565b6104db611e44565b61020161054c366004614061565b611ec7565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156105b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d69190614177565b905090565b6105e3613b5e565b606060007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528061062f6001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610677611394565b6001600160a01b0316815260200182600101805461069490614194565b80601f01602080910402602001604051908101604052809291908181526020018280546106c090614194565b801561070d5780601f106106e25761010080835404028352916020019161070d565b820191906000526020600020905b8154815290600101906020018083116106f057829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b491906141de565b156107fb576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166108245760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa15801561086d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089191906141de565b6108b9576040516372657a5160e01b81526001600160a01b03821660048201526024016107f2565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109279190614206565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b600061095c606e611fcf565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190614223565b60405163bd7d9d8560e01b81526001600160601b03861660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015610a16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a3e91908101906142ad565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015610a9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac291906141de565b610b0e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032303a414c52454144595f4143544956415445440060448201526064016107f2565b64ffffffffff84166101a0820181905260e0820151604051631ded81af60e31b81526004810192909252602482015273__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af4158015610b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9d9190614421565b64ffffffffff166101c0820152604051634d4b06a960e11b81526001600160a01b03841690639a960d5290610bdb908890859060649060040161456d565b600060405180830381600087803b158015610bf557600080fd5b505af1158015610c09573d6000803e3d6000fd5b505050505050505050565b600080600080516020614d3483398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc091906145a2565b1192915050565b6040516322f5db0f60e11b815260048101829052600090819073__$5ac3274b8cf1e01ea223bf093142af05b0$__906345ebb61e90602401602060405180830381865af4158015610d1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4091906145a2565b90506000610d4e8583612246565b604051632255341b60e11b81526004810182905290915073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa683690602401602060405180830381865af4158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc591906145a2565b925050505b92915050565b60405162461bcd60e51b815260206004820152602160248201527f4552524f523a5052532d3233343a4e4f545f5945545f494d504c454d454e54456044820152601160fa1b60648201526084016107f2565b600080610e2f606e611fcf565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e979190614223565b835160405163bd7d9d8560e01b81526001600160601b0389166004820152919250906000906001600160a01b0384169063bd7d9d8590602401600060405180830381865afa158015610eed573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f1591908101906142ad565b80519091506001600160601b03838116911614610f745760405162461bcd60e51b815260206004820152601760248201527f504f4c4943595f50524f445543545f4d49534d4154434800000000000000000060448201526064016107f2565b604051639096a1f360e01b81526001600160601b0389166004820152610ff2906001600160a01b03851690639096a1f390602401602060405180830381865afa158015610fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe991906145d5565b60ff16600a1490565b61103e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032313a53544154455f4e4f545f4150504c4945440060448201526064016107f2565b6000611048613b9c565b60405163242bdc1960e21b81526001600160601b0385166004820152600090819081906001600160a01b038916906390af70649060240161024060405180830381865afa15801561109d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c1919061464b565b90506110cb613b9c565b6110d78a8a8985612262565b9197509094506110f092508a9150869050858f866123e5565b9250602864ffffffffff8b16156111a357606464ffffffffff8c166101a0880181905260e0880151604051631ded81af60e31b81526004810192909252602482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af4158015611171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111959190614421565b64ffffffffff166101c08701525b8b156111d9576111bd898b600001518f8960a0015161240c565b91508560a001518660c0018181516111d59190614758565b9052505b600460009054906101000a90046001600160a01b03166001600160a01b03166332e6f9228a8f8887876040518663ffffffff1660e01b81526004016112579594939291906001600160a01b039590951685526001600160601b0393841660208601529190921660408401526060830191909152608082015260a00190565b600060405180830381600087803b15801561127157600080fd5b505af1158015611285573d6000803e3d6000fd5b50505050886001600160a01b0316639a960d528e88846040518463ffffffff1660e01b81526004016112b99392919061456d565b600060405180830381600087803b1580156112d357600080fd5b505af11580156112e7573d6000803e3d6000fd5b505085516040516355e343a960e01b81526001600160601b039091166004820152600092506001600160a01b038b1691506355e343a99060240161018060405180830381865afa15801561133f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611363919061476b565b90508060e00151156113845761138485600001518f898860400151886129c4565b5050505050505050505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156113f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141d91906141de565b1561149d57600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa158015611479573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d69190614223565b506002546001600160a01b031690565b6000806000806000806114be612ac9565b90506000816001600160a01b0316635e78426b8d8f8e8e6040518563ffffffff1660e01b81526004016114f49493929190614820565b602060405180830381865afa158015611511573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153591906145a2565b905061154381838b8b612ae8565b929850909650945092506115578682614758565b96506115638486614758565b61156d9088614758565b96506115798388614758565b96505050965096509650965096915050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6115ad610551565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af41580156115ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611611919061485b565b600080516020614d148339815191528054600160401b900460ff1680611644575080546001600160401b03808416911610155b156116625760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561168d8585613181565b61169683613420565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006105d6600080516020614d14833981519152546001600160401b031690565b6000600080516020614d34833981519152600101828154811061172b5761172b614884565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080611764606e611fcf565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cc9190614223565b60405163bd7d9d8560e01b81526001600160601b03871660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184791908101906142ad565b90508060a001518160c00151036118895760c081015160405163038a855760e51b81526001600160601b038816600482015260248101919091526044016107f2565b60008160c001518260a0015161189f919061489a565b905060006118b38587600001518a8561240c565b9050818360c0018181516118c79190614758565b905250600480546020850151604051639babe3bf60e01b81526001600160a01b03898116948201949094526001600160601b03909116602482015260448101849052911690639babe3bf90606401600060405180830381600087803b15801561192f57600080fd5b505af1158015611943573d6000803e3d6000fd5b50505050846001600160a01b0316639a960d52898561196060ff90565b6040518463ffffffff1660e01b815260040161197e9392919061456d565b600060405180830381600087803b15801561199857600080fd5b505af11580156119ac573d6000803e3d6000fd5b5050604051638d38cd4b60e01b815264ffffffffff8a16600482015273__$d53880c81dc91c20799140d711e5ab8718$__9250638d38cd4b9150602401602060405180830381865af4158015611a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2a91906141de565b8015611ab257506101a083015160405163790a38ad60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015611a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab291906141de565b15611ac157611ac18888610950565b5050505050505050565b60008080611ad9606e611fcf565b91509150611ae5611d83565b6001600160a01b0316635c992fed6040518060e00160405280611b06600090565b6001600160601b039081168252865116602082015260400160d260ff16815260200160001515815260200160006001600160a01b031681526020018d6001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b8152600401611b7f91906148ad565b6020604051808303816000875af1158015611b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc29190614206565b92506000611bd48a8a8a8a8a8a6114ad565b505050509050600060405180610200016040528085600001516001600160601b03168152602001886001600160601b03168152602001876001600160c01b03191681526020018c6001600160c01b03191681526020018b8152602001838152602001600081526020018a8152602001898152602001604051806020016040528060008152508152602001600061ffff168152602001600061ffff16815260200160008152602001611c83600090565b64ffffffffff168152600060208201819052604091820152516202f23560ee1b81529091506001600160a01b0384169063bc8d400090611cc990889085906004016148c0565b600060405180830381600087803b158015611ce357600080fd5b505af1158015611cf7573d6000803e3d6000fd5b50505050826001600160a01b0316635d4345cc86611d13600a90565b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b158015611d5c57600080fd5b505af1158015611d70573d6000803e3d6000fd5b5050505050505050979650505050505050565b600080611d986001546001600160a01b031690565b6001600160a01b031663d39e604360285b611db1611e44565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca9190614223565b600080611e2f6001546001600160a01b031690565b6001600160a01b031663d39e60436046611da9565b6000611e4e610551565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015611ea3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d691906145d5565b600080516020614d148339815191528054600160401b810460ff1615906001600160401b0316600081158015611efa5750825b90506000826001600160401b03166001148015611f165750303b155b905081158015611f24575080155b15611f425760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611f6c57845460ff60401b1916600160401b1785555b611f768888613181565b611f808787613428565b8315611ac157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b611fd7613b5e565b600080611fec6001546001600160a01b031690565b6040516308b09a5f60e41b81523360048201529091506001600160a01b03821690638b09a5f090602401600060405180830381865afa158015612033573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261205b91908101906148e2565b925061207183604001518560ff90811691161490565b6120b35760405162461bcd60e51b815260206004820152601360248201527213d0929150d517d516541157d2539590531251606a1b60448201526064016107f2565b60208301516040516305247a1760e51b81526001600160601b0390911660048201526000906001600160a01b0383169063a48f42e090602401600060405180830381865afa158015612109573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261213191908101906148e2565b6080015190508092506000836001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa15801561217a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219e9190614223565b6080860151604051629b7b3560e61b81526001600160a01b0391821660048201529192508216906326decd4090602401602060405180830381865afa1580156121eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220f91906141de565b1561223e57608085015160405163d53987e560e01b81526001600160a01b0390911660048201526024016107f2565b505050915091565b600061225b8383670de0b6b3a7640000613696565b9392505050565b600061226c613b9c565b6020840151604051634793b4ab60e01b81526001600160601b03821660048201529092506000906001600160a01b03871690634793b4ab90602401600060405180830381865afa1580156122c4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122ec91908101906149b4565b805160608601519193506001600160601b039081169116146123495760405162461bcd60e51b81526020600482015260166024820152750a09e989286b2be84aa9c88988abe9a92a69a82a886960531b60448201526064016107f2565b60608401516040516355e343a960e01b81526001600160601b03821660048201526000906001600160a01b038916906355e343a99060240161018060405180830381865afa15801561239f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c3919061476b565b90506123d781604001518860800151610cc7565b925050509450945094915050565b6123ed613b9c565b81846080018181516123ff9190614758565b9052509295945050505050565b600081156129bc576000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612454573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124789190614223565b60405163242bdc1960e21b81526001600160601b03871660048201526001600160a01b0391909116906390af70649060240161024060405180830381865afa1580156124c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ec919061464b565b602081015190915060006125086001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03881660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612557573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257b9190614223565b90506000886001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e19190614223565b60608501516040516355e343a960e01b81526001600160601b0390911660048201526001600160a01b0391909116906355e343a99060240161018060405180830381865afa158015612637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265b919061476b565b61010081015160a08601516040516346f0526160e11b8152899850929350909173__$a23651848365a6a5ca15f07b4331037f48$__90638de0a4c2906126a5908490600401614a85565b602060405180830381865af41580156126c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e691906141de565b15612752576040516317d5759960e31b81526001600160a01b0386169063beabacc89061271b90879086908d90600401614a9c565b600060405180830381600087803b15801561273557600080fd5b505af1158015612749573d6000803e3d6000fd5b505050506129b5565b60a086015160405163012ebd8360e21b815281516004820152602090910151602482015260448101889052600090819073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156127bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e19190614ac0565b91509150600088610160015190508a886001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128529190614223565b604051636eb1769f60e11b81526001600160a01b038a811660048301528b81166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156128a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c691906145a2565b10156128eb5786888c604051636d675c4360e01b81526004016107f293929190614a9c565b6040516317d5759960e31b81526001600160a01b0389169063beabacc89061291b908a9085908890600401614a9c565b600060405180830381600087803b15801561293557600080fd5b505af1158015612949573d6000803e3d6000fd5b50506040516317d5759960e31b81526001600160a01b038b16925063beabacc8915061297d908a9089908790600401614a9c565b600060405180830381600087803b15801561299757600080fd5b505af11580156129ab573d6000803e3d6000fd5b50939b5050505050505b5050505050505b949350505050565b60006129d86001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015612a27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a4f91908101906148e2565b608001516101008501516040516332f7fe0d60e11b815291925082916001600160a01b038316916365effc1a91612a8e918a9189908990600401614ae4565b600060405180830381600087803b158015612aa857600080fd5b505af1158015612abc573d6000803e3d6000fd5b5050505050505050505050565b6000612ad3613b5e565b612add606e611fcf565b506080015192915050565b600080600080600080886001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b539190614223565b9050806001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb79190614223565b9150506000886001600160a01b0316631bdd6b766040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1e9190614206565b604051634793b4ab60e01b81526001600160601b038a1660048201529091506000906001600160a01b03841690634793b4ab90602401600060405180830381865afa158015612c71573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c9991908101906149b4565b80519091506001600160601b03838116911614612d035760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5052532d3033353a42554e444c455f504f4f4c5f4d49534d4154604482015261086960f31b60648201526084016107f2565b6000836001600160a01b03166390af70648c6001600160a01b03166251884a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d759190614206565b6040516001600160e01b031960e084901b1681526001600160601b03909116600482015260240161024060405180830381865afa158015612dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dde919061464b565b60a081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015612e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6b9190614ac0565b506040516355e343a960e01b81526001600160601b0385166004820152909850600091506001600160a01b038516906355e343a99060240161018060405180830381865afa158015612ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee5919061476b565b606081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015612f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f729190614ac0565b50809750505060008a6001600160a01b031663db6dcc956040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fdc9190614206565b604051639ad69c6760e01b81526001600160601b03821660048201529091506000906001600160a01b03861690639ad69c679060240160c060405180830381865afa15801561302f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130539190614b2a565b604080820151905163012ebd8360e21b8152815160048201526020909101516024820152604481018f905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156130bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e09190614ac0565b5060208481015160405163012ebd8360e21b8152815160048201529101516024820152604481018f905290965073__$a23651848365a6a5ca15f07b4331037f48$__92506304baf60c91506064016040805180830381865af415801561314a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316e9190614ac0565b5080955050505050945094509450949050565b61318961377f565b600080516020614d3483398151915260006131b9600080516020614d14833981519152546001600160401b031690565b905060006131c5610551565b9050816001600160401b03166001036131f25760028301805462ffffff191662ffffff8316179055613240565b600283015462ffffff908116908216116132405760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b60448201526064016107f2565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af41580156132f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133189190614421565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906116d69083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101a961377f565b600080516020614d148339815191528054600160401b810460ff1615906001600160401b031660008115801561345b5750825b90506000826001600160401b031660011480156134775750303b155b905081158015613485575080155b156134a35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156134cd57845460ff60401b1916600160401b1785555b600080878060200190518101906134e49190614bc0565b90925090506134f3828a6137b8565b6001546001600160a01b031663d39e6043608c61350e611e44565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135779190614223565b600380546001600160a01b0319166001600160a01b039283161790556001541663d39e60436135a460dc90565b6135ac611e44565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156135f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136159190614223565b600480546001600160a01b0319166001600160a01b039290921691909117905561364563fefde12b60e01b613823565b5050831561368d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b60008080600019858709858702925082811083820303915050806000036136d0578382816136c6576136c6614bef565b049250505061225b565b8084116137175760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016107f2565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b600080516020614d1483398151915254600160401b900460ff166137b657604051631afcd79f60e31b815260040160405180910390fd5b565b600060d26137c4611e44565b6040805160ff93841660208201529290911690820152606001604051602081830303815290604052905060006137f984613848565b9050600061380c8583603c8488886138b3565b61381c637b6a51fd60e01b613823565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa15801561388f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca9190614206565b6138f46301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6138fe828761397f565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b8615150217815590506001810161396e8382614c54565b5061368d6303fb044760e21b613823565b6001600160a01b0382166139d55760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e65722069732030000060448201526064016107f2565b600280546001600160a01b0319166001600160a01b0384161790556139f9816139fd565b5050565b6001546001600160a01b031615613a365760015460405163fcdbf2d960e01b81526001600160a01b0390911660048201526024016107f2565b6001600160a01b038116613a5d5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b600003613a935760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107f2565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263102da10360e01b60048201526301ffc9a790602401602060405180830381865afa925050508015613b0d575060408051601f3d908101601f19168201909252613b0a918101906141de565b60015b613b355760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107f2565b806139f95760405163fdeac91f60e01b81526001600160a01b03831660048201526024016107f2565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610120016040528060006001600160601b03168152602001613bd5604051806040016040528060008152602001600081525090565b81526020016060815260200160008152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b600060208284031215613c2c57600080fd5b81356001600160e01b03198116811461225b57600080fd5b6001600160601b03811681146101fe57600080fd5b600060208284031215613c6b57600080fd5b813561225b81613c44565b60005b83811015613c91578181015183820152602001613c79565b50506000910152565b60008151808452613cb2816020860160208601613c76565b601f01601f19169290920160200192915050565b60006001600160601b038083511684528060208401511660208501525060ff6040830151166040840152606082015115156060840152608082015160018060a01b0380821660808601528060a08501511660a0860152505060c082015160e060c08501526129bc60e0850182613c9a565b604081526000613d4a6040830185613cc6565b8281036020840152613d5c8185613c9a565b95945050505050565b62ffffff811681146101fe57600080fd5b600060208284031215613d8857600080fd5b813561225b81613d65565b64ffffffffff811681146101fe57600080fd5b60008060408385031215613db957600080fd5b8235613dc481613c44565b91506020830135613dd481613d93565b809150509250929050565b60008060408385031215613df257600080fd5b50508035926020909101359150565b80151581146101fe57600080fd5b600080600060608486031215613e2457600080fd5b8335613e2f81613c44565b92506020840135613e3f81613e01565b91506040840135613e4f81613d93565b809150509250925092565b6001600160c01b0319811681146101fe57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161020081016001600160401b0381118282101715613ea957613ea9613e70565b60405290565b60405161018081016001600160401b0381118282101715613ea957613ea9613e70565b60405161012081016001600160401b0381118282101715613ea957613ea9613e70565b60405160e081016001600160401b0381118282101715613ea957613ea9613e70565b604051601f8201601f191681016001600160401b0381118282101715613f3f57613f3f613e70565b604052919050565b60006001600160401b03821115613f6057613f60613e70565b50601f01601f191660200190565b600082601f830112613f7f57600080fd5b8135613f92613f8d82613f47565b613f17565b818152846020838601011115613fa757600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215613fdd57600080fd5b8635613fe881613e5a565b9550602087013594506040870135935060608701356001600160401b0381111561401157600080fd5b61401d89828a01613f6e565b935050608087013561402e81613c44565b915060a087013561403e81613e5a565b809150509295509295509295565b6001600160a01b03811681146101fe57600080fd5b60008060006060848603121561407657600080fd5b83356140818161404c565b925060208401356140918161404c565b915060408401356001600160401b038111156140ac57600080fd5b6140b886828701613f6e565b9150509250925092565b6000602082840312156140d457600080fd5b5035919050565b600080600080600080600060e0888a0312156140f657600080fd5b87356141018161404c565b9650602088013561411181613e5a565b9550604088013594506060880135935060808801356001600160401b0381111561413a57600080fd5b6141468a828b01613f6e565b93505060a088013561415781613c44565b915060c088013561416781613e5a565b8091505092959891949750929550565b60006020828403121561418957600080fd5b815161225b81613d65565b600181811c908216806141a857607f821691505b6020821081036141c857634e487b7160e01b600052602260045260246000fd5b50919050565b80516141d981613e01565b919050565b6000602082840312156141f057600080fd5b815161225b81613e01565b80516141d981613c44565b60006020828403121561421857600080fd5b815161225b81613c44565b60006020828403121561423557600080fd5b815161225b8161404c565b80516141d981613e5a565b600082601f83011261425c57600080fd5b815161426a613f8d82613f47565b81815284602083860101111561427f57600080fd5b6129bc826020830160208701613c76565b805161ffff811681146141d957600080fd5b80516141d981613d93565b6000602082840312156142bf57600080fd5b81516001600160401b03808211156142d657600080fd5b9083019061020082860312156142eb57600080fd5b6142f3613e86565b6142fc836141fb565b815261430a602084016141fb565b602082015261431b60408401614240565b604082015261432c60608401614240565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100808401518381111561436d57600080fd5b6143798882870161424b565b828401525050610120808401518381111561439357600080fd5b61439f8882870161424b565b82840152505061014091506143b5828401614290565b8282015261016091506143c9828401614290565b82820152610180915081830151828201526101a091506143ea8284016142a2565b828201526101c091506143fe8284016142a2565b828201526101e091506144128284016142a2565b91810191909152949350505050565b60006020828403121561443357600080fd5b815161225b81613d93565b80516001600160601b031682526000610200602083015161446a60208601826001600160601b03169052565b50604083015161448660408601826001600160c01b0319169052565b5060608301516144a260608601826001600160c01b0319169052565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015182828701526144e383870182613c9a565b9250505061012080840151858303828701526144ff8382613c9a565b92505050610140808401516145198287018261ffff169052565b50506101608381015161ffff169085015261018080840151908501526101a08084015164ffffffffff908116918601919091526101c0808501518216908601526101e0938401511692909301919091525090565b6001600160601b038416815260606020820152600061458f606083018561443e565b905060ff83166040830152949350505050565b6000602082840312156145b457600080fd5b5051919050565b60ff811681146101fe57600080fd5b80516141d9816145bb565b6000602082840312156145e757600080fd5b815161225b816145bb565b80516141d98161404c565b60006040828403121561460f57600080fd5b604051604081018181106001600160401b038211171561463157614631613e70565b604052825181526020928301519281019290925250919050565b6000610240828403121561465e57600080fd5b614666613eaf565b61466f836145f2565b815261467d602084016145f2565b602082015261468e604084016141fb565b604082015261469f606084016141fb565b60608201526146b184608085016145fd565b60808201526146c38460c085016145fd565b60a08201526101006146d7858286016145fd565b60c08301526101406146eb868287016145fd565b60e08401526146fe8661018087016145fd565b82840152614710866101c087016145fd565b61012084015261472361020086016141ce565b908301525061473561022084016145f2565b6101608201529392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610dca57610dca614742565b6000610180828403121561477e57600080fd5b614786613ed2565b61478f836141fb565b815261479d602084016145f2565b6020820152604083015160408201526147b984606085016145fd565b60608201526147cb8460a085016145fd565b60808201526147dd8460e085016145fd565b60a08201526147ef61012084016141ce565b60c082015261480161014084016141ce565b60e082015261481361016084016145f2565b6101008201529392505050565b8481526001600160401b0360c01b841660208201528260408201526080606082015260006148516080830184613c9a565b9695505050505050565b60006020828403121561486d57600080fd5b81516001600160401b038116811461225b57600080fd5b634e487b7160e01b600052603260045260246000fd5b81810381811115610dca57610dca614742565b60208152600061225b6020830184613cc6565b6001600160601b03831681526040602082015260006129bc604083018461443e565b6000602082840312156148f457600080fd5b81516001600160401b038082111561490b57600080fd5b9083019060e0828603121561491f57600080fd5b614927613ef5565b614930836141fb565b815261493e602084016141fb565b602082015261494f604084016145ca565b6040820152614960606084016141ce565b6060820152614971608084016145f2565b608082015261498260a084016145f2565b60a082015260c08301518281111561499957600080fd5b6149a58782860161424b565b60c08301525095945050505050565b6000602082840312156149c657600080fd5b81516001600160401b03808211156149dd57600080fd5b9083019061014082860312156149f257600080fd5b6149fa613ed2565b614a03836141fb565b8152614a1286602085016145fd565b6020820152606083015182811115614a2957600080fd5b614a358782860161424b565b6040830152506080830151606082015260a0830151608082015260c083015160a082015260e083015160c08201526101009150614a738284016142a2565b60e082015261441261012084016142a2565b815181526020808301519082015260408101610dca565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008060408385031215614ad357600080fd5b505080516020909101519092909150565b6001600160601b0385168152608060208201526000614b066080830186613c9a565b8281036040840152614b188186613c9a565b91505082606083015295945050505050565b600060c08284031215614b3c57600080fd5b60405160a081018181106001600160401b0382111715614b5e57614b5e613e70565b6040528251614b6c81613c44565b81526020830151614b7c8161404c565b6020820152614b8e84604085016145fd565b60408201526080830151614ba181613e01565b606082015260a0830151614bb48161404c565b60808201529392505050565b60008060408385031215614bd357600080fd5b8251614bde8161404c565b6020840151909250613dd48161404c565b634e487b7160e01b600052601260045260246000fd5b601f821115614c4f57600081815260208120601f850160051c81016020861015614c2c5750805b601f850160051c820191505b81811015614c4b57828155600101614c38565b5050505b505050565b81516001600160401b03811115614c6d57614c6d613e70565b614c8181614c7b8454614194565b84614c05565b602080601f831160018114614cb65760008415614c9e5750858301515b600019600386901b1c1916600185901b178555614c4b565b600085815260208120601f198616915b82811015614ce557888601518255948401946001909101908401614cc6565b5085821015614d035787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220c0e8c75929a02924bd461061df864c8e45a0cd43cc6f86bbe6bd24021644b2e364736f6c63430008140033",
812
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c8063644c45e0116100f9578063b88da75911610097578063caf4e3d411610071578063caf4e3d414610526578063cc9fc59a1461052e578063cde749f414610536578063cf7a1d771461053e57600080fd5b8063b88da759146104ed578063bbfbbfba14610500578063c2c749871461051357600080fd5b80639cdaa7f9116100d35780639cdaa7f91461046a578063a745e3df146104a5578063b3c65015146104b8578063b68d1809146104d857600080fd5b8063644c45e01461040f578063893d20e81461043b578063946dfcfe1461044357600080fd5b80634d459c90116101665780635ab1bd53116101405780635ab1bd53146103b15780635fd1a5f5146103d6578063603ccaad146103e9578063630361f6146103fc57600080fd5b80634d459c90146102725780634d5e16a91461038b5780634f4213331461039e57600080fd5b806301ffc9a7146101ae5780630aaba8e8146101f05780630d8e6e2c146102035780630fec111c1461021f578063138461e0146102355780631eff4b221461023d575b600080fd5b6101db6101bc366004613c1a565b6001600160e01b03191660009081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6102016101fe366004613c59565b50565b005b61020b610551565b60405162ffffff90911681526020016101e7565b6102276105db565b6040516101e7929190613d37565b61020161072e565b6102647f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016101e7565b61032e610280366004613d76565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152600080516020614d3483398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a0016101e7565b610201610399366004613da6565b610950565b6101db6103ac366004613d76565b610c14565b6001546001600160a01b03165b6040516001600160a01b0390911681526020016101e7565b6102646103e4366004613ddf565b610cc7565b6102016103f7366004613c59565b610dd0565b61020161040a366004613e0f565b610e22565b600154600160a01b90046001600160601b03165b6040516001600160601b0390911681526020016101e7565b6103be611394565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed90154610264565b61047d610478366004613fc4565b6114ad565b604080519586526020860194909452928401919091526060830152608082015260a0016101e7565b6102016104b3366004614061565b61158b565b6104c06116e5565b6040516001600160401b0390911681526020016101e7565b60d25b60405160ff90911681526020016101e7565b61020b6104fb3660046140c2565b611706565b61020161050e366004613da6565b611757565b6104236105213660046140db565b611acb565b6103be611d83565b6103be611e1a565b6104db611e44565b61020161054c366004614061565b611ec7565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156105b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d69190614177565b905090565b6105e3613b5e565b606060007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528061062f6001546001600160601b03600160a01b9091041690565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610677611394565b6001600160a01b0316815260200182600101805461069490614194565b80601f01602080910402602001604051908101604052809291908181526020018280546106c090614194565b801561070d5780601f106106e25761010080835404028352916020019161070d565b820191906000526020600020905b8154815290600101906020018083116106f057829003601f168201915b50505050508152506040518060200160405280600081525092509250509091565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015273__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af4158015610790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b491906141de565b156107fb576001546040516316322c0f60e31b81526001600160a01b0382166004820152600160a01b9091046001600160601b031660248201526044015b60405180910390fd5b6001546001600160a01b03166108245760405163cf29926160e01b815260040160405180910390fd5b60015460405163c3c5a54760e01b81523060048201819052916001600160a01b03169063c3c5a54790602401602060405180830381865afa15801561086d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089191906141de565b6108b9576040516372657a5160e01b81526001600160a01b03821660048201526024016107f2565b600154604051636939560f60e11b81526001600160a01b0383811660048301529091169063d272ac1e90602401602060405180830381865afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109279190614206565b600160146101000a8154816001600160601b0302191690836001600160601b0316021790555050565b600061095c606e611fcf565b9150506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190614223565b60405163bd7d9d8560e01b81526001600160601b03861660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa158015610a16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a3e91908101906142ad565b6101a081015160405163790a38ad60e01b815264ffffffffff909116600482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015610a9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac291906141de565b610b0e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032303a414c52454144595f4143544956415445440060448201526064016107f2565b64ffffffffff84166101a0820181905260e0820151604051631ded81af60e31b81526004810192909252602482015273__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af4158015610b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9d9190614421565b64ffffffffff166101c0820152604051634d4b06a960e11b81526001600160a01b03841690639a960d5290610bdb908890859060649060040161456d565b600060405180830381600087803b158015610bf557600080fd5b505af1158015610c09573d6000803e3d6000fd5b505050505050505050565b600080600080516020614d3483398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc091906145a2565b1192915050565b6040516322f5db0f60e11b815260048101829052600090819073__$5ac3274b8cf1e01ea223bf093142af05b0$__906345ebb61e90602401602060405180830381865af4158015610d1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4091906145a2565b90506000610d4e8583612246565b604051632255341b60e11b81526004810182905290915073__$5ac3274b8cf1e01ea223bf093142af05b0$__906344aa683690602401602060405180830381865af4158015610da1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc591906145a2565b925050505b92915050565b60405162461bcd60e51b815260206004820152602160248201527f4552524f523a5052532d3233343a4e4f545f5945545f494d504c454d454e54456044820152601160fa1b60648201526084016107f2565b600080610e2f606e611fcf565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e979190614223565b835160405163bd7d9d8560e01b81526001600160601b0389166004820152919250906000906001600160a01b0384169063bd7d9d8590602401600060405180830381865afa158015610eed573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f1591908101906142ad565b80519091506001600160601b03838116911614610f745760405162461bcd60e51b815260206004820152601760248201527f504f4c4943595f50524f445543545f4d49534d4154434800000000000000000060448201526064016107f2565b604051639096a1f360e01b81526001600160601b0389166004820152610ff2906001600160a01b03851690639096a1f390602401602060405180830381865afa158015610fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe991906145d5565b60ff16600a1490565b61103e5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5052532d3032313a53544154455f4e4f545f4150504c4945440060448201526064016107f2565b6000611048613b9c565b60405163242bdc1960e21b81526001600160601b0385166004820152600090819081906001600160a01b038916906390af70649060240161024060405180830381865afa15801561109d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c1919061464b565b90506110cb613b9c565b6110d78a8a8985612262565b9197509094506110f092508a9150869050858f866123e5565b9250602864ffffffffff8b16156111a357606464ffffffffff8c166101a0880181905260e0880151604051631ded81af60e31b81526004810192909252602482015290915073__$d53880c81dc91c20799140d711e5ab8718$__9063ef6c0d7890604401602060405180830381865af4158015611171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111959190614421565b64ffffffffff166101c08701525b8b156111d9576111bd898b600001518f8960a0015161240c565b91508560a001518660c0018181516111d59190614758565b9052505b600460009054906101000a90046001600160a01b03166001600160a01b03166332e6f9228a8f8887876040518663ffffffff1660e01b81526004016112579594939291906001600160a01b039590951685526001600160601b0393841660208601529190921660408401526060830191909152608082015260a00190565b600060405180830381600087803b15801561127157600080fd5b505af1158015611285573d6000803e3d6000fd5b50505050886001600160a01b0316639a960d528e88846040518463ffffffff1660e01b81526004016112b99392919061456d565b600060405180830381600087803b1580156112d357600080fd5b505af11580156112e7573d6000803e3d6000fd5b505085516040516355e343a960e01b81526001600160601b039091166004820152600092506001600160a01b038b1691506355e343a99060240161018060405180830381865afa15801561133f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611363919061476b565b90508060e00151156113845761138485600001518f898860400151886129c4565b5050505050505050505050505050565b6001546040516330b8415f60e01b8152600160a01b9091046001600160601b0316600482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__906330b8415f90602401602060405180830381865af41580156113f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141d91906141de565b1561149d57600154604051631c5da14d60e11b8152600160a01b82046001600160601b031660048201526001600160a01b03909116906338bb429a90602401602060405180830381865afa158015611479573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d69190614223565b506002546001600160a01b031690565b6000806000806000806114be612ac9565b90506000816001600160a01b0316635e78426b8d8f8e8e6040518563ffffffff1660e01b81526004016114f49493929190614820565b602060405180830381865afa158015611511573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153591906145a2565b905061154381838b8b612ae8565b929850909650945092506115578682614758565b96506115638486614758565b61156d9088614758565b96506115798388614758565b96505050965096509650965096915050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6115ad610551565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af41580156115ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611611919061485b565b600080516020614d148339815191528054600160401b900460ff1680611644575080546001600160401b03808416911610155b156116625760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561168d8585613181565b61169683613420565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006105d6600080516020614d14833981519152546001600160401b031690565b6000600080516020614d34833981519152600101828154811061172b5761172b614884565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080611764606e611fcf565b915091506000816001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cc9190614223565b60405163bd7d9d8560e01b81526001600160601b03871660048201529091506000906001600160a01b0383169063bd7d9d8590602401600060405180830381865afa15801561181f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184791908101906142ad565b90508060a001518160c00151036118895760c081015160405163038a855760e51b81526001600160601b038816600482015260248101919091526044016107f2565b60008160c001518260a0015161189f919061489a565b905060006118b38587600001518a8561240c565b9050818360c0018181516118c79190614758565b905250600480546020850151604051639babe3bf60e01b81526001600160a01b03898116948201949094526001600160601b03909116602482015260448101849052911690639babe3bf90606401600060405180830381600087803b15801561192f57600080fd5b505af1158015611943573d6000803e3d6000fd5b50505050846001600160a01b0316639a960d52898561196060ff90565b6040518463ffffffff1660e01b815260040161197e9392919061456d565b600060405180830381600087803b15801561199857600080fd5b505af11580156119ac573d6000803e3d6000fd5b5050604051638d38cd4b60e01b815264ffffffffff8a16600482015273__$d53880c81dc91c20799140d711e5ab8718$__9250638d38cd4b9150602401602060405180830381865af4158015611a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2a91906141de565b8015611ab257506101a083015160405163790a38ad60e01b815264ffffffffff909116600482015273__$d53880c81dc91c20799140d711e5ab8718$__9063790a38ad90602401602060405180830381865af4158015611a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab291906141de565b15611ac157611ac18888610950565b5050505050505050565b60008080611ad9606e611fcf565b91509150611ae5611d83565b6001600160a01b0316635c992fed6040518060e00160405280611b06600090565b6001600160601b039081168252865116602082015260400160d260ff16815260200160001515815260200160006001600160a01b031681526020018d6001600160a01b03168152602001604051806020016040528060008152508152506040518263ffffffff1660e01b8152600401611b7f91906148ad565b6020604051808303816000875af1158015611b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc29190614206565b92506000611bd48a8a8a8a8a8a6114ad565b505050509050600060405180610200016040528085600001516001600160601b03168152602001886001600160601b03168152602001876001600160c01b03191681526020018c6001600160c01b03191681526020018b8152602001838152602001600081526020018a8152602001898152602001604051806020016040528060008152508152602001600061ffff168152602001600061ffff16815260200160008152602001611c83600090565b64ffffffffff168152600060208201819052604091820152516202f23560ee1b81529091506001600160a01b0384169063bc8d400090611cc990889085906004016148c0565b600060405180830381600087803b158015611ce357600080fd5b505af1158015611cf7573d6000803e3d6000fd5b50505050826001600160a01b0316635d4345cc86611d13600a90565b6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401600060405180830381600087803b158015611d5c57600080fd5b505af1158015611d70573d6000803e3d6000fd5b5050505050505050979650505050505050565b600080611d986001546001600160a01b031690565b6001600160a01b031663d39e604360285b611db1611e44565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015611df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca9190614223565b600080611e2f6001546001600160a01b031690565b6001600160a01b031663d39e60436046611da9565b6000611e4e610551565b60405163c9e66e2960e01b815262ffffff909116600482015273__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401602060405180830381865af4158015611ea3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d691906145d5565b600080516020614d148339815191528054600160401b810460ff1615906001600160401b0316600081158015611efa5750825b90506000826001600160401b03166001148015611f165750303b155b905081158015611f24575080155b15611f425760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611f6c57845460ff60401b1916600160401b1785555b611f768888613181565b611f808787613428565b8315611ac157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b611fd7613b5e565b600080611fec6001546001600160a01b031690565b6040516308b09a5f60e41b81523360048201529091506001600160a01b03821690638b09a5f090602401600060405180830381865afa158015612033573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261205b91908101906148e2565b925061207183604001518560ff90811691161490565b6120b35760405162461bcd60e51b815260206004820152601360248201527213d0929150d517d516541157d2539590531251606a1b60448201526064016107f2565b60208301516040516305247a1760e51b81526001600160601b0390911660048201526000906001600160a01b0383169063a48f42e090602401600060405180830381865afa158015612109573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261213191908101906148e2565b6080015190508092506000836001600160a01b031663e5f6cd276040518163ffffffff1660e01b8152600401602060405180830381865afa15801561217a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219e9190614223565b6080860151604051629b7b3560e61b81526001600160a01b0391821660048201529192508216906326decd4090602401602060405180830381865afa1580156121eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220f91906141de565b1561223e57608085015160405163d53987e560e01b81526001600160a01b0390911660048201526024016107f2565b505050915091565b600061225b8383670de0b6b3a7640000613696565b9392505050565b600061226c613b9c565b6020840151604051634793b4ab60e01b81526001600160601b03821660048201529092506000906001600160a01b03871690634793b4ab90602401600060405180830381865afa1580156122c4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122ec91908101906149b4565b805160608601519193506001600160601b039081169116146123495760405162461bcd60e51b81526020600482015260166024820152750a09e989286b2be84aa9c88988abe9a92a69a82a886960531b60448201526064016107f2565b60608401516040516355e343a960e01b81526001600160601b03821660048201526000906001600160a01b038916906355e343a99060240161018060405180830381865afa15801561239f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c3919061476b565b90506123d781604001518860800151610cc7565b925050509450945094915050565b6123ed613b9c565b81846080018181516123ff9190614758565b9052509295945050505050565b600081156129bc576000856001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612454573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124789190614223565b60405163242bdc1960e21b81526001600160601b03871660048201526001600160a01b0391909116906390af70649060240161024060405180830381865afa1580156124c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ec919061464b565b602081015190915060006125086001546001600160a01b031690565b604051631c5da14d60e11b81526001600160601b03881660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa158015612557573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257b9190614223565b90506000886001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e19190614223565b60608501516040516355e343a960e01b81526001600160601b0390911660048201526001600160a01b0391909116906355e343a99060240161018060405180830381865afa158015612637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265b919061476b565b61010081015160a08601516040516346f0526160e11b8152899850929350909173__$a23651848365a6a5ca15f07b4331037f48$__90638de0a4c2906126a5908490600401614a85565b602060405180830381865af41580156126c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e691906141de565b15612752576040516317d5759960e31b81526001600160a01b0386169063beabacc89061271b90879086908d90600401614a9c565b600060405180830381600087803b15801561273557600080fd5b505af1158015612749573d6000803e3d6000fd5b505050506129b5565b60a086015160405163012ebd8360e21b815281516004820152602090910151602482015260448101889052600090819073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156127bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e19190614ac0565b91509150600088610160015190508a886001600160a01b03166321df0da76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561282e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128529190614223565b604051636eb1769f60e11b81526001600160a01b038a811660048301528b81166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156128a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c691906145a2565b10156128eb5786888c604051636d675c4360e01b81526004016107f293929190614a9c565b6040516317d5759960e31b81526001600160a01b0389169063beabacc89061291b908a9085908890600401614a9c565b600060405180830381600087803b15801561293557600080fd5b505af1158015612949573d6000803e3d6000fd5b50506040516317d5759960e31b81526001600160a01b038b16925063beabacc8915061297d908a9089908790600401614a9c565b600060405180830381600087803b15801561299757600080fd5b505af11580156129ab573d6000803e3d6000fd5b50939b5050505050505b5050505050505b949350505050565b60006129d86001546001600160a01b031690565b6040516305247a1760e51b81526001600160601b03881660048201526001600160a01b03919091169063a48f42e090602401600060405180830381865afa158015612a27573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a4f91908101906148e2565b608001516101008501516040516332f7fe0d60e11b815291925082916001600160a01b038316916365effc1a91612a8e918a9189908990600401614ae4565b600060405180830381600087803b158015612aa857600080fd5b505af1158015612abc573d6000803e3d6000fd5b5050505050505050505050565b6000612ad3613b5e565b612add606e611fcf565b506080015192915050565b600080600080600080886001600160a01b031663de7b5d146040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b539190614223565b9050806001600160a01b03166302cd30716040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb79190614223565b9150506000886001600160a01b0316631bdd6b766040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c1e9190614206565b604051634793b4ab60e01b81526001600160601b038a1660048201529091506000906001600160a01b03841690634793b4ab90602401600060405180830381865afa158015612c71573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c9991908101906149b4565b80519091506001600160601b03838116911614612d035760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5052532d3033353a42554e444c455f504f4f4c5f4d49534d4154604482015261086960f31b60648201526084016107f2565b6000836001600160a01b03166390af70648c6001600160a01b03166251884a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d759190614206565b6040516001600160e01b031960e084901b1681526001600160601b03909116600482015260240161024060405180830381865afa158015612dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dde919061464b565b60a081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015612e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6b9190614ac0565b506040516355e343a960e01b81526001600160601b0385166004820152909850600091506001600160a01b038516906355e343a99060240161018060405180830381865afa158015612ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee5919061476b565b606081015160405163012ebd8360e21b8152815160048201526020909101516024820152604481018e905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af4158015612f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f729190614ac0565b50809750505060008a6001600160a01b031663db6dcc956040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fdc9190614206565b604051639ad69c6760e01b81526001600160601b03821660048201529091506000906001600160a01b03861690639ad69c679060240160c060405180830381865afa15801561302f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130539190614b2a565b604080820151905163012ebd8360e21b8152815160048201526020909101516024820152604481018f905290915073__$a23651848365a6a5ca15f07b4331037f48$__906304baf60c906064016040805180830381865af41580156130bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e09190614ac0565b5060208481015160405163012ebd8360e21b8152815160048201529101516024820152604481018f905290965073__$a23651848365a6a5ca15f07b4331037f48$__92506304baf60c91506064016040805180830381865af415801561314a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316e9190614ac0565b5080955050505050945094509450949050565b61318961377f565b600080516020614d3483398151915260006131b9600080516020614d14833981519152546001600160401b031690565b905060006131c5610551565b9050816001600160401b03166001036131f25760028301805462ffffff191662ffffff8316179055613240565b600283015462ffffff908116908216116132405760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b60448201526064016107f2565b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af41580156132f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133189190614421565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906116d69083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6101a961377f565b600080516020614d148339815191528054600160401b810460ff1615906001600160401b031660008115801561345b5750825b90506000826001600160401b031660011480156134775750303b155b905081158015613485575080155b156134a35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156134cd57845460ff60401b1916600160401b1785555b600080878060200190518101906134e49190614bc0565b90925090506134f3828a6137b8565b6001546001600160a01b031663d39e6043608c61350e611e44565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135779190614223565b600380546001600160a01b0319166001600160a01b039283161790556001541663d39e60436135a460dc90565b6135ac611e44565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa1580156135f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136159190614223565b600480546001600160a01b0319166001600160a01b039290921691909117905561364563fefde12b60e01b613823565b5050831561368d57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b60008080600019858709858702925082811083820303915050806000036136d0578382816136c6576136c6614bef565b049250505061225b565b8084116137175760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b60448201526064016107f2565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b600080516020614d1483398151915254600160401b900460ff166137b657604051631afcd79f60e31b815260040160405180910390fd5b565b600060d26137c4611e44565b6040805160ff93841660208201529290911690820152606001604051602081830303815290604052905060006137f984613848565b9050600061380c8583603c8488886138b3565b61381c637b6a51fd60e01b613823565b5050505050565b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b604051636939560f60e11b81526001600160a01b0382166004820181905260009163d272ac1e90602401602060405180830381865afa15801561388f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca9190614206565b6138f46301ffc9a760e01b60009081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6138fe828761397f565b60007f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166cffffffffffffffffffffffffff1990911617600160601b60ff8816021760ff60681b1916600160681b8615150217815590506001810161396e8382614c54565b5061368d6303fb044760e21b613823565b6001600160a01b0382166139d55760405162461bcd60e51b815260206004820152601e60248201527f4e66744f776e61626c653a20696e697469616c206f776e65722069732030000060448201526064016107f2565b600280546001600160a01b0319166001600160a01b0384161790556139f9816139fd565b5050565b6001546001600160a01b031615613a365760015460405163fcdbf2d960e01b81526001600160a01b0390911660048201526024016107f2565b6001600160a01b038116613a5d5760405163f5c4d07d60e01b815260040160405180910390fd5b806001600160a01b03163b600003613a935760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107f2565b600180546001600160a01b0319166001600160a01b0383169081179091556040516301ffc9a760e01b815263102da10360e01b60048201526301ffc9a790602401602060405180830381865afa925050508015613b0d575060408051601f3d908101601f19168201909252613b0a918101906141de565b60015b613b355760405163fdeac91f60e01b81526001600160a01b03821660048201526024016107f2565b806139f95760405163fdeac91f60e01b81526001600160a01b03831660048201526024016107f2565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610120016040528060006001600160601b03168152602001613bd5604051806040016040528060008152602001600081525090565b81526020016060815260200160008152602001600081526020016000815260200160008152602001600064ffffffffff168152602001600064ffffffffff1681525090565b600060208284031215613c2c57600080fd5b81356001600160e01b03198116811461225b57600080fd5b6001600160601b03811681146101fe57600080fd5b600060208284031215613c6b57600080fd5b813561225b81613c44565b60005b83811015613c91578181015183820152602001613c79565b50506000910152565b60008151808452613cb2816020860160208601613c76565b601f01601f19169290920160200192915050565b60006001600160601b038083511684528060208401511660208501525060ff6040830151166040840152606082015115156060840152608082015160018060a01b0380821660808601528060a08501511660a0860152505060c082015160e060c08501526129bc60e0850182613c9a565b604081526000613d4a6040830185613cc6565b8281036020840152613d5c8185613c9a565b95945050505050565b62ffffff811681146101fe57600080fd5b600060208284031215613d8857600080fd5b813561225b81613d65565b64ffffffffff811681146101fe57600080fd5b60008060408385031215613db957600080fd5b8235613dc481613c44565b91506020830135613dd481613d93565b809150509250929050565b60008060408385031215613df257600080fd5b50508035926020909101359150565b80151581146101fe57600080fd5b600080600060608486031215613e2457600080fd5b8335613e2f81613c44565b92506020840135613e3f81613e01565b91506040840135613e4f81613d93565b809150509250925092565b6001600160c01b0319811681146101fe57600080fd5b634e487b7160e01b600052604160045260246000fd5b60405161020081016001600160401b0381118282101715613ea957613ea9613e70565b60405290565b60405161018081016001600160401b0381118282101715613ea957613ea9613e70565b60405161012081016001600160401b0381118282101715613ea957613ea9613e70565b60405160e081016001600160401b0381118282101715613ea957613ea9613e70565b604051601f8201601f191681016001600160401b0381118282101715613f3f57613f3f613e70565b604052919050565b60006001600160401b03821115613f6057613f60613e70565b50601f01601f191660200190565b600082601f830112613f7f57600080fd5b8135613f92613f8d82613f47565b613f17565b818152846020838601011115613fa757600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215613fdd57600080fd5b8635613fe881613e5a565b9550602087013594506040870135935060608701356001600160401b0381111561401157600080fd5b61401d89828a01613f6e565b935050608087013561402e81613c44565b915060a087013561403e81613e5a565b809150509295509295509295565b6001600160a01b03811681146101fe57600080fd5b60008060006060848603121561407657600080fd5b83356140818161404c565b925060208401356140918161404c565b915060408401356001600160401b038111156140ac57600080fd5b6140b886828701613f6e565b9150509250925092565b6000602082840312156140d457600080fd5b5035919050565b600080600080600080600060e0888a0312156140f657600080fd5b87356141018161404c565b9650602088013561411181613e5a565b9550604088013594506060880135935060808801356001600160401b0381111561413a57600080fd5b6141468a828b01613f6e565b93505060a088013561415781613c44565b915060c088013561416781613e5a565b8091505092959891949750929550565b60006020828403121561418957600080fd5b815161225b81613d65565b600181811c908216806141a857607f821691505b6020821081036141c857634e487b7160e01b600052602260045260246000fd5b50919050565b80516141d981613e01565b919050565b6000602082840312156141f057600080fd5b815161225b81613e01565b80516141d981613c44565b60006020828403121561421857600080fd5b815161225b81613c44565b60006020828403121561423557600080fd5b815161225b8161404c565b80516141d981613e5a565b600082601f83011261425c57600080fd5b815161426a613f8d82613f47565b81815284602083860101111561427f57600080fd5b6129bc826020830160208701613c76565b805161ffff811681146141d957600080fd5b80516141d981613d93565b6000602082840312156142bf57600080fd5b81516001600160401b03808211156142d657600080fd5b9083019061020082860312156142eb57600080fd5b6142f3613e86565b6142fc836141fb565b815261430a602084016141fb565b602082015261431b60408401614240565b604082015261432c60608401614240565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100808401518381111561436d57600080fd5b6143798882870161424b565b828401525050610120808401518381111561439357600080fd5b61439f8882870161424b565b82840152505061014091506143b5828401614290565b8282015261016091506143c9828401614290565b82820152610180915081830151828201526101a091506143ea8284016142a2565b828201526101c091506143fe8284016142a2565b828201526101e091506144128284016142a2565b91810191909152949350505050565b60006020828403121561443357600080fd5b815161225b81613d93565b80516001600160601b031682526000610200602083015161446a60208601826001600160601b03169052565b50604083015161448660408601826001600160c01b0319169052565b5060608301516144a260608601826001600160c01b0319169052565b506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015182828701526144e383870182613c9a565b9250505061012080840151858303828701526144ff8382613c9a565b92505050610140808401516145198287018261ffff169052565b50506101608381015161ffff169085015261018080840151908501526101a08084015164ffffffffff908116918601919091526101c0808501518216908601526101e0938401511692909301919091525090565b6001600160601b038416815260606020820152600061458f606083018561443e565b905060ff83166040830152949350505050565b6000602082840312156145b457600080fd5b5051919050565b60ff811681146101fe57600080fd5b80516141d9816145bb565b6000602082840312156145e757600080fd5b815161225b816145bb565b80516141d98161404c565b60006040828403121561460f57600080fd5b604051604081018181106001600160401b038211171561463157614631613e70565b604052825181526020928301519281019290925250919050565b6000610240828403121561465e57600080fd5b614666613eaf565b61466f836145f2565b815261467d602084016145f2565b602082015261468e604084016141fb565b604082015261469f606084016141fb565b60608201526146b184608085016145fd565b60808201526146c38460c085016145fd565b60a08201526101006146d7858286016145fd565b60c08301526101406146eb868287016145fd565b60e08401526146fe8661018087016145fd565b82840152614710866101c087016145fd565b61012084015261472361020086016141ce565b908301525061473561022084016145f2565b6101608201529392505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610dca57610dca614742565b6000610180828403121561477e57600080fd5b614786613ed2565b61478f836141fb565b815261479d602084016145f2565b6020820152604083015160408201526147b984606085016145fd565b60608201526147cb8460a085016145fd565b60808201526147dd8460e085016145fd565b60a08201526147ef61012084016141ce565b60c082015261480161014084016141ce565b60e082015261481361016084016145f2565b6101008201529392505050565b8481526001600160401b0360c01b841660208201528260408201526080606082015260006148516080830184613c9a565b9695505050505050565b60006020828403121561486d57600080fd5b81516001600160401b038116811461225b57600080fd5b634e487b7160e01b600052603260045260246000fd5b81810381811115610dca57610dca614742565b60208152600061225b6020830184613cc6565b6001600160601b03831681526040602082015260006129bc604083018461443e565b6000602082840312156148f457600080fd5b81516001600160401b038082111561490b57600080fd5b9083019060e0828603121561491f57600080fd5b614927613ef5565b614930836141fb565b815261493e602084016141fb565b602082015261494f604084016145ca565b6040820152614960606084016141ce565b6060820152614971608084016145f2565b608082015261498260a084016145f2565b60a082015260c08301518281111561499957600080fd5b6149a58782860161424b565b60c08301525095945050505050565b6000602082840312156149c657600080fd5b81516001600160401b03808211156149dd57600080fd5b9083019061014082860312156149f257600080fd5b6149fa613ed2565b614a03836141fb565b8152614a1286602085016145fd565b6020820152606083015182811115614a2957600080fd5b614a358782860161424b565b6040830152506080830151606082015260a0830151608082015260c083015160a082015260e083015160c08201526101009150614a738284016142a2565b60e082015261441261012084016142a2565b815181526020808301519082015260408101610dca565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008060408385031215614ad357600080fd5b505080516020909101519092909150565b6001600160601b0385168152608060208201526000614b066080830186613c9a565b8281036040840152614b188186613c9a565b91505082606083015295945050505050565b600060c08284031215614b3c57600080fd5b60405160a081018181106001600160401b0382111715614b5e57614b5e613e70565b6040528251614b6c81613c44565b81526020830151614b7c8161404c565b6020820152614b8e84604085016145fd565b60408201526080830151614ba181613e01565b606082015260a0830151614bb48161404c565b60808201529392505050565b60008060408385031215614bd357600080fd5b8251614bde8161404c565b6020840151909250613dd48161404c565b634e487b7160e01b600052601260045260246000fd5b601f821115614c4f57600081815260208120601f850160051c81016020861015614c2c5750805b601f850160051c820191505b81811015614c4b57828155600101614c38565b5050505b505050565b81516001600160401b03811115614c6d57614c6d613e70565b614c8181614c7b8454614194565b84614c05565b602080601f831160018114614cb65760008415614c9e5750858301515b600019600386901b1c1916600185901b178555614c4b565b600085815260208120601f198616915b82811015614ce557888601518255948401946001909101908401614cc6565b5085821015614d035787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a2646970667358221220c0e8c75929a02924bd461061df864c8e45a0cd43cc6f86bbe6bd24021644b2e364736f6c63430008140033",
813
+ "linkReferences": {
814
+ "contracts/types/Blocknumber.sol": {
815
+ "BlocknumberLib": [
816
+ {
817
+ "length": 20,
818
+ "start": 3484
819
+ }
820
+ ]
821
+ },
822
+ "contracts/types/Fee.sol": {
823
+ "FeeLib": [
824
+ {
825
+ "length": 20,
826
+ "start": 10167
827
+ },
828
+ {
829
+ "length": 20,
830
+ "start": 10430
831
+ },
832
+ {
833
+ "length": 20,
834
+ "start": 12104
835
+ },
836
+ {
837
+ "length": 20,
838
+ "start": 12367
839
+ },
840
+ {
841
+ "length": 20,
842
+ "start": 12733
843
+ },
844
+ {
845
+ "length": 20,
846
+ "start": 12873
847
+ }
848
+ ]
849
+ },
850
+ "contracts/types/NftId.sol": {
851
+ "NftIdLib": [
852
+ {
853
+ "length": 20,
854
+ "start": 2192
855
+ },
856
+ {
857
+ "length": 20,
858
+ "start": 5369
859
+ }
860
+ ]
861
+ },
862
+ "contracts/types/Timestamp.sol": {
863
+ "TimestampLib": [
864
+ {
865
+ "length": 20,
866
+ "start": 2974
867
+ },
868
+ {
869
+ "length": 20,
870
+ "start": 3193
871
+ },
872
+ {
873
+ "length": 20,
874
+ "start": 4721
875
+ },
876
+ {
877
+ "length": 20,
878
+ "start": 6916
879
+ },
880
+ {
881
+ "length": 20,
882
+ "start": 7054
883
+ },
884
+ {
885
+ "length": 20,
886
+ "start": 13300
887
+ }
888
+ ]
889
+ },
890
+ "contracts/types/UFixed.sol": {
891
+ "UFixedLib": [
892
+ {
893
+ "length": 20,
894
+ "start": 3612
895
+ },
896
+ {
897
+ "length": 20,
898
+ "start": 3745
899
+ }
900
+ ]
901
+ },
902
+ "contracts/types/Version.sol": {
903
+ "VersionLib": [
904
+ {
905
+ "length": 20,
906
+ "start": 1714
907
+ },
908
+ {
909
+ "length": 20,
910
+ "start": 5831
911
+ },
912
+ {
913
+ "length": 20,
914
+ "start": 8099
915
+ }
916
+ ]
917
+ }
918
+ },
919
+ "deployedLinkReferences": {
920
+ "contracts/types/Blocknumber.sol": {
921
+ "BlocknumberLib": [
922
+ {
923
+ "length": 20,
924
+ "start": 3170
925
+ }
926
+ ]
927
+ },
928
+ "contracts/types/Fee.sol": {
929
+ "FeeLib": [
930
+ {
931
+ "length": 20,
932
+ "start": 9853
933
+ },
934
+ {
935
+ "length": 20,
936
+ "start": 10116
937
+ },
938
+ {
939
+ "length": 20,
940
+ "start": 11790
941
+ },
942
+ {
943
+ "length": 20,
944
+ "start": 12053
945
+ },
946
+ {
947
+ "length": 20,
948
+ "start": 12419
949
+ },
950
+ {
951
+ "length": 20,
952
+ "start": 12559
953
+ }
954
+ ]
955
+ },
956
+ "contracts/types/NftId.sol": {
957
+ "NftIdLib": [
958
+ {
959
+ "length": 20,
960
+ "start": 1878
961
+ },
962
+ {
963
+ "length": 20,
964
+ "start": 5055
965
+ }
966
+ ]
967
+ },
968
+ "contracts/types/Timestamp.sol": {
969
+ "TimestampLib": [
970
+ {
971
+ "length": 20,
972
+ "start": 2660
973
+ },
974
+ {
975
+ "length": 20,
976
+ "start": 2879
977
+ },
978
+ {
979
+ "length": 20,
980
+ "start": 4407
981
+ },
982
+ {
983
+ "length": 20,
984
+ "start": 6602
985
+ },
986
+ {
987
+ "length": 20,
988
+ "start": 6740
989
+ },
990
+ {
991
+ "length": 20,
992
+ "start": 12986
993
+ }
994
+ ]
995
+ },
996
+ "contracts/types/UFixed.sol": {
997
+ "UFixedLib": [
998
+ {
999
+ "length": 20,
1000
+ "start": 3298
1001
+ },
1002
+ {
1003
+ "length": 20,
1004
+ "start": 3431
1005
+ }
1006
+ ]
1007
+ },
1008
+ "contracts/types/Version.sol": {
1009
+ "VersionLib": [
1010
+ {
1011
+ "length": 20,
1012
+ "start": 1400
1013
+ },
1014
+ {
1015
+ "length": 20,
1016
+ "start": 5517
1017
+ },
1018
+ {
1019
+ "length": 20,
1020
+ "start": 7785
1021
+ }
1022
+ ]
1023
+ }
1024
+ }
1025
+ }