@etherisc/gif-next 0.0.2-f2b0fa2-473 → 0.0.2-f63e99e-607

Sign up to get free protection for your applications and to get access to all the features.
Files changed (187) hide show
  1. package/README.md +4 -0
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +13 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +23 -15
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +13 -0
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  10. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  12. package/artifacts/contracts/components/Pool.sol/Pool.json +21 -13
  13. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  14. package/artifacts/contracts/components/Product.sol/Product.json +39 -18
  15. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +1 -1
  16. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +1 -1
  17. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +1 -1
  18. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  30. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  34. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  36. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  37. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  38. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +1 -1
  39. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +1 -1
  40. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +15 -2
  41. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +1 -1
  42. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +403 -1
  44. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  45. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +59 -0
  46. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  47. package/artifacts/contracts/instance/Instance.sol/Instance.json +164 -84
  48. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +34 -34
  50. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +168 -37
  52. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +229 -41
  54. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +77 -9
  56. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +29 -0
  58. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  60. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  61. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  62. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +2 -2
  63. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  64. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
  65. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  72. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +18 -18
  74. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  75. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +681 -0
  76. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +436 -0
  78. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
  83. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +820 -0
  84. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +448 -0
  86. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  87. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  88. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +309 -0
  89. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  90. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -19
  91. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  92. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  93. package/artifacts/contracts/registry/Registry.sol/Registry.json +258 -24
  94. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  95. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +20 -44
  96. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +49 -28
  98. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  99. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +410 -0
  100. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  101. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  102. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  103. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  104. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  105. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  106. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  107. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  108. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  109. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  110. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
  111. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  112. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +4 -4
  113. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +1 -1
  114. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  115. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  116. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  117. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  118. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  119. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  120. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  121. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +4 -4
  122. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  123. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  124. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  125. package/artifacts/contracts/test/TestService.sol/TestService.json +11 -11
  126. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  127. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  128. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  129. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  130. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +2 -2
  131. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  132. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  133. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  134. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  135. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  136. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  137. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  138. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  139. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  140. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  141. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  142. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  143. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  144. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  145. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  146. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  147. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  148. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  149. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  150. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  151. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  152. package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
  153. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  154. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  155. package/contracts/components/BaseComponent.sol +8 -3
  156. package/contracts/components/Distribution.sol +10 -16
  157. package/contracts/components/IBaseComponent.sol +1 -0
  158. package/contracts/components/IDistributionComponent.sol +1 -0
  159. package/contracts/components/Pool.sol +4 -20
  160. package/contracts/components/Product.sol +1 -1
  161. package/contracts/instance/AccessManagedSimple.sol +5 -4
  162. package/contracts/instance/AccessManagerSimple.sol +10 -0
  163. package/contracts/instance/IInstance.sol +15 -4
  164. package/contracts/instance/IInstanceService.sol +14 -1
  165. package/contracts/instance/Instance.sol +28 -21
  166. package/contracts/instance/InstanceAccessManager.sol +1 -1
  167. package/contracts/instance/InstanceReader.sol +27 -1
  168. package/contracts/instance/InstanceService.sol +104 -24
  169. package/contracts/instance/base/ComponentServiceBase.sol +19 -8
  170. package/contracts/instance/module/IBundle.sol +1 -0
  171. package/contracts/instance/module/ISetup.sol +1 -0
  172. package/contracts/instance/service/DistributionService.sol +102 -0
  173. package/contracts/instance/service/DistributionServiceManager.sol +53 -0
  174. package/contracts/instance/service/PoolService.sol +208 -0
  175. package/contracts/instance/service/PoolServiceManager.sol +53 -0
  176. package/contracts/registry/IRegistry.sol +39 -2
  177. package/contracts/registry/IRegistryService.sol +0 -2
  178. package/contracts/registry/Registry.sol +94 -28
  179. package/contracts/registry/RegistryService.sol +9 -49
  180. package/contracts/registry/RegistryServiceManager.sol +21 -5
  181. package/contracts/registry/TokenRegistry.sol +111 -0
  182. package/contracts/shared/ERC165.sol +6 -2
  183. package/contracts/shared/Registerable.sol +1 -0
  184. package/contracts/types/RoleId.sol +7 -0
  185. package/contracts/types/StateId.sol +4 -0
  186. package/contracts/types/Version.sol +4 -1
  187. package/package.json +1 -1
@@ -860,6 +860,19 @@
860
860
  "stateMutability": "view",
861
861
  "type": "function"
862
862
  },
863
+ {
864
+ "inputs": [
865
+ {
866
+ "internalType": "address",
867
+ "name": "initialAdmin",
868
+ "type": "address"
869
+ }
870
+ ],
871
+ "name": "initialize",
872
+ "outputs": [],
873
+ "stateMutability": "nonpayable",
874
+ "type": "function"
875
+ },
863
876
  {
864
877
  "inputs": [
865
878
  {
@@ -1112,8 +1125,8 @@
1112
1125
  "type": "function"
1113
1126
  }
1114
1127
  ],
1115
- "bytecode": "0x60806040523480156200001157600080fd5b5060405162001a2238038062001a228339810160408190526200003491620001de565b6001600160a01b0381166200006457604051630409d6d160e11b8152600060048201526024015b60405180910390fd5b6200007360008281806200007b565b505062000210565b60006002600160401b03196001600160401b03861601620000bb5760405163061c6a4360e21b81526001600160401b03861660048201526024016200005b565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff161590811562000170575060408051808201825265ffffffffffff428181168352600060208085018281526001600160401b038d168352600182528683206001600160a01b038d1684529091529490209251835494516001600160701b03166601000000000000026001600160a01b03199095169216919091179290921790555b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b600060208284031215620001f157600080fd5b81516001600160a01b03811681146200020957600080fd5b9392505050565b61180280620002206000396000f3fe6080604052600436106101d85760003560e01c8063530dd45611610102578063b700961311610095578063d22b598911610064578063d22b598914610625578063d6bb62c614610640578063f801a69814610665578063fe0776f5146106a657600080fd5b8063b700961314610593578063b7d2b162146105cf578063cc1b6c81146105ef578063d1f856ee1461060557600080fd5b806394c7d7ee116100d157806394c7d7ee146104d2578063a166aa89146104f2578063a64d95ce14610545578063abd9bd2a1461056557600080fd5b8063530dd456146104405780636d5115bd1461047d57806375b238fc1461049d578063853551b8146104b257600080fd5b80633078f1141161017a5780634136a33c116101495780634136a33c146103d45780634665096d146103ef5780634c1da1e214610405578063529629521461042057600080fd5b80633078f1141461030d57806330cae187146103675780633adc277a146103875780633ca7c02a146103b957600080fd5b8063167bd395116101b6578063167bd3951461029657806318ff183c146102b65780631cff79cd146102d657806325c471a0146102ed57600080fd5b806308d6122d146101dd5780630b0a93ba146101ff57806312be872714610260575b600080fd5b3480156101e957600080fd5b506101fd6101f836600461124e565b6106c6565b005b34801561020b57600080fd5b5061024361021a3660046112e6565b6001600160401b0390811660009081526001602081905260409091200154600160401b90041690565b6040516001600160401b0390911681526020015b60405180910390f35b34801561026c57600080fd5b5061028161027b3660046112e6565b50600090565b60405163ffffffff9091168152602001610257565b3480156102a257600080fd5b506101fd6102b1366004611301565b610721565b3480156102c257600080fd5b506101fd6102d136600461133f565b610737565b6102816102e43660046113ae565b60009392505050565b3480156102f957600080fd5b506101fd610308366004611416565b61079e565b34801561031957600080fd5b5061032d61032836600461145b565b6107b9565b604051610257949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561037357600080fd5b506101fd610382366004611477565b6107fa565b34801561039357600080fd5b506103a261027b3660046114aa565b60405165ffffffffffff9091168152602001610257565b3480156103c557600080fd5b506102436001600160401b0381565b3480156103e057600080fd5b5061028161027b3660046114aa565b3480156103fb57600080fd5b5062093a80610281565b34801561041157600080fd5b5061028161027b3660046114c3565b34801561042c57600080fd5b506101fd61043b366004611477565b61080c565b34801561044c57600080fd5b5061024361045b3660046112e6565b6001600160401b03908116600090815260016020819052604090912001541690565b34801561048957600080fd5b506102436104983660046114f8565b61081e565b3480156104a957600080fd5b50610243600081565b3480156104be57600080fd5b506101fd6104cd366004611524565b61085a565b3480156104de57600080fd5b506101fd6104ed3660046113ae565b505050565b3480156104fe57600080fd5b5061053561050d3660046114c3565b6001600160a01b0316600090815260208190526040902060010154600160701b900460ff1690565b6040519015158152602001610257565b34801561055157600080fd5b506101fd610560366004611542565b6108f6565b34801561057157600080fd5b5061058561058036600461156c565b6108fe565b604051908152602001610257565b34801561059f57600080fd5b506105b36105ae3660046115d0565b610937565b60408051921515835263ffffffff909116602083015201610257565b3480156105db57600080fd5b506101fd6105ea36600461145b565b6109b5565b3480156105fb57600080fd5b5062069780610281565b34801561061157600080fd5b506105b361062036600461145b565b6109c7565b34801561063157600080fd5b506101fd61056036600461160e565b34801561064c57600080fd5b5061028161065b36600461156c565b6000949350505050565b34801561067157600080fd5b5061068c61068036600461162c565b60008094509492505050565b6040805192835263ffffffff909116602083015201610257565b3480156106b257600080fd5b506101fd6106c136600461145b565b610a3d565b6106ce610a66565b60005b8281101561071a5761070a858585848181106106ef576106ef61169e565b905060200201602081019061070491906116b4565b84610ad1565b610713816116cf565b90506106d1565b5050505050565b610729610a66565b6107338282610b53565b5050565b61073f610a66565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b15801561078257600080fd5b505af1158015610796573d6000803e3d6000fd5b505050505050565b6107a6610a66565b6107b38383600084610bf9565b50505050565b6001600160401b03821660009081526001602090815260408083206001600160a01b038516845290915281205465ffffffffffff1690808092959194509250565b610802610a66565b6107338282610d61565b610814610a66565b6107338282610e05565b6001600160a01b0382166000908152602081815260408083206001600160e01b0319851684529091529020546001600160401b03165b92915050565b610862610a66565b6001600160401b038316158061088057506001600160401b03838116145b156108ae5760405163061c6a4360e21b81526001600160401b03841660048201526024015b60405180910390fd5b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a45083836040516108e992919061171f565b60405180910390a2505050565b610733610a66565b600084848484604051602001610917949392919061173b565b604051602081830303815290604052805190602001209050949350505050565b6001600160a01b0382166000908152602081905260408120600101548190600160701b900460ff161561096f575060009050806109ad565b600061097b858561081e565b905060008061098a83896109c7565b915091508161099b576000806109a5565b63ffffffff811615815b945094505050505b935093915050565b6109bd610a66565b6104ed8282610eb7565b60008067fffffffffffffffe196001600160401b038516016109ef5750600190506000610a36565b6000806109fc86866107b9565b5050915091508165ffffffffffff16600014158015610a2b57504265ffffffffffff168265ffffffffffff1611155b93509150610a369050565b9250929050565b6001600160a01b03811633146109bd57604051635f159e6360e01b815260040160405180910390fd5b33600080610a75838236610fa4565b91509150816104ed578063ffffffff166000036104ed576000610a98813661101e565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b038216602482015290925060440190506108a5565b6001600160a01b0383166000818152602081815260408083206001600160e01b0319871680855290835292819020805467ffffffffffffffff19166001600160401b038716908117909155905192835292917f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a3505050565b306001600160a01b03831603610b8757604051630b40d17960e31b81526001600160a01b03831660048201526024016108a5565b6001600160a01b038216600081815260208190526040908190206001018054841515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb13890610bed90841515815260200190565b60405180910390a25050565b600067fffffffffffffffe196001600160401b03861601610c385760405163061c6a4360e21b81526001600160401b03861660048201526024016108a5565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115610cf3575060408051808201825265ffffffffffff428181168352600060208085018281526001600160401b038d168352600182528683206001600160a01b038d1684529091529490209251835494516dffffffffffffffffffffffffffff166601000000000000026001600160a01b03199095169216919091179290921790555b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b6001600160401b0382161580610d7f57506001600160401b03828116145b15610da85760405163061c6a4360e21b81526001600160401b03831660048201526024016108a5565b6001600160401b038281166000818152600160208190526040808320909101805467ffffffffffffffff19169486169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a35050565b6001600160401b0382161580610e2357506001600160401b03828116145b15610e4c5760405163061c6a4360e21b81526001600160401b03831660048201526024016108a5565b6001600160401b03828116600081815260016020819052604080832090910180546fffffffffffffffff00000000000000001916600160401b958716958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a35050565b600067fffffffffffffffe196001600160401b03841601610ef65760405163061c6a4360e21b81526001600160401b03841660048201526024016108a5565b6001600160401b03831660009081526001602090815260408083206001600160a01b038616845290915281205465ffffffffffff169003610f3957506000610854565b6001600160401b03831660008181526001602090815260408083206001600160a01b038716808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a350600192915050565b6000806004831015610fbb575060009050806109ad565b6000806000610fca878761101e565b92509250925082610fe457600080945094505050506109ad565b600080610ff1848b6109c7565b915091508161100b576000809650965050505050506109ad565b5060019960009950975050505050505050565b600080806004841015611039575060009150819050806111f4565b600061104586866111fb565b90506001600160e01b031981166310a6aa3760e31b148061107657506001600160e01b031981166330cae18760e01b145b8061109157506001600160e01b0319811663294b14a960e11b145b806110ac57506001600160e01b03198116635326cae760e11b145b806110c757506001600160e01b0319811663d22b598960e01b145b156110dd576001600080935093509350506111f4565b6001600160e01b0319811663063fc60f60e21b148061110c57506001600160e01b0319811663167bd39560e01b145b8061112757506001600160e01b031981166308d6122d60e01b145b1561115d57600061113c60246004888a611772565b81019061114991906114c3565b5060019450600093508392506111f4915050565b6001600160e01b0319811663012e238d60e51b148061118c57506001600160e01b03198116635be958b160e11b145b156111e75760006111a160246004888a611772565b8101906111ae91906112e6565b905060016111d8826001600160401b03908116600090815260016020819052604090912001541690565b600094509450945050506111f4565b6000806000935093509350505b9250925092565b600061120a6004828486611772565b6112139161179c565b9392505050565b6001600160a01b038116811461122f57600080fd5b50565b80356001600160401b038116811461124957600080fd5b919050565b6000806000806060858703121561126457600080fd5b843561126f8161121a565b935060208501356001600160401b038082111561128b57600080fd5b818701915087601f83011261129f57600080fd5b8135818111156112ae57600080fd5b8860208260051b85010111156112c357600080fd5b6020830195508094505050506112db60408601611232565b905092959194509250565b6000602082840312156112f857600080fd5b61121382611232565b6000806040838503121561131457600080fd5b823561131f8161121a565b91506020830135801515811461133457600080fd5b809150509250929050565b6000806040838503121561135257600080fd5b823561135d8161121a565b915060208301356113348161121a565b60008083601f84011261137f57600080fd5b5081356001600160401b0381111561139657600080fd5b602083019150836020828501011115610a3657600080fd5b6000806000604084860312156113c357600080fd5b83356113ce8161121a565b925060208401356001600160401b038111156113e957600080fd5b6113f58682870161136d565b9497909650939450505050565b803563ffffffff8116811461124957600080fd5b60008060006060848603121561142b57600080fd5b61143484611232565b925060208401356114448161121a565b915061145260408501611402565b90509250925092565b6000806040838503121561146e57600080fd5b61135d83611232565b6000806040838503121561148a57600080fd5b61149383611232565b91506114a160208401611232565b90509250929050565b6000602082840312156114bc57600080fd5b5035919050565b6000602082840312156114d557600080fd5b81356112138161121a565b80356001600160e01b03198116811461124957600080fd5b6000806040838503121561150b57600080fd5b82356115168161121a565b91506114a1602084016114e0565b60008060006040848603121561153957600080fd5b6113ce84611232565b6000806040838503121561155557600080fd5b61155e83611232565b91506114a160208401611402565b6000806000806060858703121561158257600080fd5b843561158d8161121a565b9350602085013561159d8161121a565b925060408501356001600160401b038111156115b857600080fd5b6115c48782880161136d565b95989497509550505050565b6000806000606084860312156115e557600080fd5b83356115f08161121a565b925060208401356116008161121a565b9150611452604085016114e0565b6000806040838503121561162157600080fd5b823561155e8161121a565b6000806000806060858703121561164257600080fd5b843561164d8161121a565b935060208501356001600160401b0381111561166857600080fd5b6116748782880161136d565b909450925050604085013565ffffffffffff8116811461169357600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116c657600080fd5b611213826114e0565b6000600182016116ef57634e487b7160e01b600052601160045260246000fd5b5060010190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006117336020830184866116f6565b949350505050565b6001600160a01b0385811682528416602082015260606040820181905260009061176890830184866116f6565b9695505050505050565b6000808585111561178257600080fd5b8386111561178f57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156117c45780818660040360031b1b83161692505b50509291505056fea26469706673582212208f59b69eb9aa5e0dd7edd12e3fd74c955758ce571e4beeabf8fdcbec60f3d35c64736f6c63430008140033",
1116
- "deployedBytecode": "0x6080604052600436106101d85760003560e01c8063530dd45611610102578063b700961311610095578063d22b598911610064578063d22b598914610625578063d6bb62c614610640578063f801a69814610665578063fe0776f5146106a657600080fd5b8063b700961314610593578063b7d2b162146105cf578063cc1b6c81146105ef578063d1f856ee1461060557600080fd5b806394c7d7ee116100d157806394c7d7ee146104d2578063a166aa89146104f2578063a64d95ce14610545578063abd9bd2a1461056557600080fd5b8063530dd456146104405780636d5115bd1461047d57806375b238fc1461049d578063853551b8146104b257600080fd5b80633078f1141161017a5780634136a33c116101495780634136a33c146103d45780634665096d146103ef5780634c1da1e214610405578063529629521461042057600080fd5b80633078f1141461030d57806330cae187146103675780633adc277a146103875780633ca7c02a146103b957600080fd5b8063167bd395116101b6578063167bd3951461029657806318ff183c146102b65780631cff79cd146102d657806325c471a0146102ed57600080fd5b806308d6122d146101dd5780630b0a93ba146101ff57806312be872714610260575b600080fd5b3480156101e957600080fd5b506101fd6101f836600461124e565b6106c6565b005b34801561020b57600080fd5b5061024361021a3660046112e6565b6001600160401b0390811660009081526001602081905260409091200154600160401b90041690565b6040516001600160401b0390911681526020015b60405180910390f35b34801561026c57600080fd5b5061028161027b3660046112e6565b50600090565b60405163ffffffff9091168152602001610257565b3480156102a257600080fd5b506101fd6102b1366004611301565b610721565b3480156102c257600080fd5b506101fd6102d136600461133f565b610737565b6102816102e43660046113ae565b60009392505050565b3480156102f957600080fd5b506101fd610308366004611416565b61079e565b34801561031957600080fd5b5061032d61032836600461145b565b6107b9565b604051610257949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561037357600080fd5b506101fd610382366004611477565b6107fa565b34801561039357600080fd5b506103a261027b3660046114aa565b60405165ffffffffffff9091168152602001610257565b3480156103c557600080fd5b506102436001600160401b0381565b3480156103e057600080fd5b5061028161027b3660046114aa565b3480156103fb57600080fd5b5062093a80610281565b34801561041157600080fd5b5061028161027b3660046114c3565b34801561042c57600080fd5b506101fd61043b366004611477565b61080c565b34801561044c57600080fd5b5061024361045b3660046112e6565b6001600160401b03908116600090815260016020819052604090912001541690565b34801561048957600080fd5b506102436104983660046114f8565b61081e565b3480156104a957600080fd5b50610243600081565b3480156104be57600080fd5b506101fd6104cd366004611524565b61085a565b3480156104de57600080fd5b506101fd6104ed3660046113ae565b505050565b3480156104fe57600080fd5b5061053561050d3660046114c3565b6001600160a01b0316600090815260208190526040902060010154600160701b900460ff1690565b6040519015158152602001610257565b34801561055157600080fd5b506101fd610560366004611542565b6108f6565b34801561057157600080fd5b5061058561058036600461156c565b6108fe565b604051908152602001610257565b34801561059f57600080fd5b506105b36105ae3660046115d0565b610937565b60408051921515835263ffffffff909116602083015201610257565b3480156105db57600080fd5b506101fd6105ea36600461145b565b6109b5565b3480156105fb57600080fd5b5062069780610281565b34801561061157600080fd5b506105b361062036600461145b565b6109c7565b34801561063157600080fd5b506101fd61056036600461160e565b34801561064c57600080fd5b5061028161065b36600461156c565b6000949350505050565b34801561067157600080fd5b5061068c61068036600461162c565b60008094509492505050565b6040805192835263ffffffff909116602083015201610257565b3480156106b257600080fd5b506101fd6106c136600461145b565b610a3d565b6106ce610a66565b60005b8281101561071a5761070a858585848181106106ef576106ef61169e565b905060200201602081019061070491906116b4565b84610ad1565b610713816116cf565b90506106d1565b5050505050565b610729610a66565b6107338282610b53565b5050565b61073f610a66565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b15801561078257600080fd5b505af1158015610796573d6000803e3d6000fd5b505050505050565b6107a6610a66565b6107b38383600084610bf9565b50505050565b6001600160401b03821660009081526001602090815260408083206001600160a01b038516845290915281205465ffffffffffff1690808092959194509250565b610802610a66565b6107338282610d61565b610814610a66565b6107338282610e05565b6001600160a01b0382166000908152602081815260408083206001600160e01b0319851684529091529020546001600160401b03165b92915050565b610862610a66565b6001600160401b038316158061088057506001600160401b03838116145b156108ae5760405163061c6a4360e21b81526001600160401b03841660048201526024015b60405180910390fd5b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a45083836040516108e992919061171f565b60405180910390a2505050565b610733610a66565b600084848484604051602001610917949392919061173b565b604051602081830303815290604052805190602001209050949350505050565b6001600160a01b0382166000908152602081905260408120600101548190600160701b900460ff161561096f575060009050806109ad565b600061097b858561081e565b905060008061098a83896109c7565b915091508161099b576000806109a5565b63ffffffff811615815b945094505050505b935093915050565b6109bd610a66565b6104ed8282610eb7565b60008067fffffffffffffffe196001600160401b038516016109ef5750600190506000610a36565b6000806109fc86866107b9565b5050915091508165ffffffffffff16600014158015610a2b57504265ffffffffffff168265ffffffffffff1611155b93509150610a369050565b9250929050565b6001600160a01b03811633146109bd57604051635f159e6360e01b815260040160405180910390fd5b33600080610a75838236610fa4565b91509150816104ed578063ffffffff166000036104ed576000610a98813661101e565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b038216602482015290925060440190506108a5565b6001600160a01b0383166000818152602081815260408083206001600160e01b0319871680855290835292819020805467ffffffffffffffff19166001600160401b038716908117909155905192835292917f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a3505050565b306001600160a01b03831603610b8757604051630b40d17960e31b81526001600160a01b03831660048201526024016108a5565b6001600160a01b038216600081815260208190526040908190206001018054841515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb13890610bed90841515815260200190565b60405180910390a25050565b600067fffffffffffffffe196001600160401b03861601610c385760405163061c6a4360e21b81526001600160401b03861660048201526024016108a5565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115610cf3575060408051808201825265ffffffffffff428181168352600060208085018281526001600160401b038d168352600182528683206001600160a01b038d1684529091529490209251835494516dffffffffffffffffffffffffffff166601000000000000026001600160a01b03199095169216919091179290921790555b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b6001600160401b0382161580610d7f57506001600160401b03828116145b15610da85760405163061c6a4360e21b81526001600160401b03831660048201526024016108a5565b6001600160401b038281166000818152600160208190526040808320909101805467ffffffffffffffff19169486169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a35050565b6001600160401b0382161580610e2357506001600160401b03828116145b15610e4c5760405163061c6a4360e21b81526001600160401b03831660048201526024016108a5565b6001600160401b03828116600081815260016020819052604080832090910180546fffffffffffffffff00000000000000001916600160401b958716958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a35050565b600067fffffffffffffffe196001600160401b03841601610ef65760405163061c6a4360e21b81526001600160401b03841660048201526024016108a5565b6001600160401b03831660009081526001602090815260408083206001600160a01b038616845290915281205465ffffffffffff169003610f3957506000610854565b6001600160401b03831660008181526001602090815260408083206001600160a01b038716808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a350600192915050565b6000806004831015610fbb575060009050806109ad565b6000806000610fca878761101e565b92509250925082610fe457600080945094505050506109ad565b600080610ff1848b6109c7565b915091508161100b576000809650965050505050506109ad565b5060019960009950975050505050505050565b600080806004841015611039575060009150819050806111f4565b600061104586866111fb565b90506001600160e01b031981166310a6aa3760e31b148061107657506001600160e01b031981166330cae18760e01b145b8061109157506001600160e01b0319811663294b14a960e11b145b806110ac57506001600160e01b03198116635326cae760e11b145b806110c757506001600160e01b0319811663d22b598960e01b145b156110dd576001600080935093509350506111f4565b6001600160e01b0319811663063fc60f60e21b148061110c57506001600160e01b0319811663167bd39560e01b145b8061112757506001600160e01b031981166308d6122d60e01b145b1561115d57600061113c60246004888a611772565b81019061114991906114c3565b5060019450600093508392506111f4915050565b6001600160e01b0319811663012e238d60e51b148061118c57506001600160e01b03198116635be958b160e11b145b156111e75760006111a160246004888a611772565b8101906111ae91906112e6565b905060016111d8826001600160401b03908116600090815260016020819052604090912001541690565b600094509450945050506111f4565b6000806000935093509350505b9250925092565b600061120a6004828486611772565b6112139161179c565b9392505050565b6001600160a01b038116811461122f57600080fd5b50565b80356001600160401b038116811461124957600080fd5b919050565b6000806000806060858703121561126457600080fd5b843561126f8161121a565b935060208501356001600160401b038082111561128b57600080fd5b818701915087601f83011261129f57600080fd5b8135818111156112ae57600080fd5b8860208260051b85010111156112c357600080fd5b6020830195508094505050506112db60408601611232565b905092959194509250565b6000602082840312156112f857600080fd5b61121382611232565b6000806040838503121561131457600080fd5b823561131f8161121a565b91506020830135801515811461133457600080fd5b809150509250929050565b6000806040838503121561135257600080fd5b823561135d8161121a565b915060208301356113348161121a565b60008083601f84011261137f57600080fd5b5081356001600160401b0381111561139657600080fd5b602083019150836020828501011115610a3657600080fd5b6000806000604084860312156113c357600080fd5b83356113ce8161121a565b925060208401356001600160401b038111156113e957600080fd5b6113f58682870161136d565b9497909650939450505050565b803563ffffffff8116811461124957600080fd5b60008060006060848603121561142b57600080fd5b61143484611232565b925060208401356114448161121a565b915061145260408501611402565b90509250925092565b6000806040838503121561146e57600080fd5b61135d83611232565b6000806040838503121561148a57600080fd5b61149383611232565b91506114a160208401611232565b90509250929050565b6000602082840312156114bc57600080fd5b5035919050565b6000602082840312156114d557600080fd5b81356112138161121a565b80356001600160e01b03198116811461124957600080fd5b6000806040838503121561150b57600080fd5b82356115168161121a565b91506114a1602084016114e0565b60008060006040848603121561153957600080fd5b6113ce84611232565b6000806040838503121561155557600080fd5b61155e83611232565b91506114a160208401611402565b6000806000806060858703121561158257600080fd5b843561158d8161121a565b9350602085013561159d8161121a565b925060408501356001600160401b038111156115b857600080fd5b6115c48782880161136d565b95989497509550505050565b6000806000606084860312156115e557600080fd5b83356115f08161121a565b925060208401356116008161121a565b9150611452604085016114e0565b6000806040838503121561162157600080fd5b823561155e8161121a565b6000806000806060858703121561164257600080fd5b843561164d8161121a565b935060208501356001600160401b0381111561166857600080fd5b6116748782880161136d565b909450925050604085013565ffffffffffff8116811461169357600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116c657600080fd5b611213826114e0565b6000600182016116ef57634e487b7160e01b600052601160045260246000fd5b5060010190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006117336020830184866116f6565b949350505050565b6001600160a01b0385811682528416602082015260606040820181905260009061176890830184866116f6565b9695505050505050565b6000808585111561178257600080fd5b8386111561178f57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156117c45780818660040360031b1b83161692505b50509291505056fea26469706673582212208f59b69eb9aa5e0dd7edd12e3fd74c955758ce571e4beeabf8fdcbec60f3d35c64736f6c63430008140033",
1128
+ "bytecode": "0x60806040523480156200001157600080fd5b5060405162001b6d38038062001b6d833981016040819052620000349162000259565b6200003f8162000046565b506200028b565b60005460ff1615620000aa5760405162461bcd60e51b815260206004820152602260248201527f4163636573734d616e616765723a20616c726561647920696e697469616c697a604482015261195960f21b60648201526084015b60405180910390fd5b6001600160a01b038116620000d657604051630409d6d160e11b815260006004820152602401620000a1565b620000e56000828180620000f6565b50506000805460ff19166001179055565b60006002600160401b03196001600160401b03861601620001365760405163061c6a4360e21b81526001600160401b0386166004820152602401620000a1565b6001600160401b03851660009081526002602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115620001eb575060408051808201825265ffffffffffff428181168352600060208085018281526001600160401b038d168352600282528683206001600160a01b038d1684529091529490209251835494516001600160701b03166601000000000000026001600160a01b03199095169216919091179290921790555b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b6000602082840312156200026c57600080fd5b81516001600160a01b03811681146200028457600080fd5b9392505050565b6118d2806200029b6000396000f3fe6080604052600436106101e35760003560e01c80636d5115bd11610102578063b7d2b16211610095578063d22b598911610064578063d22b59891461064f578063d6bb62c61461066a578063f801a6981461068f578063fe0776f5146106d057600080fd5b8063b7d2b162146105d9578063c4d66de8146105f9578063cc1b6c8114610619578063d1f856ee1461062f57600080fd5b8063a166aa89116100d1578063a166aa89146104fb578063a64d95ce1461054f578063abd9bd2a1461056f578063b70096131461059d57600080fd5b80636d5115bd1461048657806375b238fc146104a6578063853551b8146104bb57806394c7d7ee146104db57600080fd5b806330cae1871161017a5780634665096d116101495780634665096d146103f95780634c1da1e21461040f578063529629521461042a578063530dd4561461044a57600080fd5b806330cae187146103715780633adc277a146103915780633ca7c02a146103c35780634136a33c146103de57600080fd5b806318ff183c116101b657806318ff183c146102c05780631cff79cd146102e057806325c471a0146102f75780633078f1141461031757600080fd5b806308d6122d146101e85780630b0a93ba1461020a57806312be87271461026a578063167bd395146102a0575b600080fd5b3480156101f457600080fd5b5061020861020336600461131e565b6106f0565b005b34801561021657600080fd5b5061024d6102253660046113b6565b6001600160401b03908116600090815260026020526040902060010154600160401b90041690565b6040516001600160401b0390911681526020015b60405180910390f35b34801561027657600080fd5b5061028b6102853660046113b6565b50600090565b60405163ffffffff9091168152602001610261565b3480156102ac57600080fd5b506102086102bb3660046113d1565b61074b565b3480156102cc57600080fd5b506102086102db36600461140f565b610761565b61028b6102ee36600461147e565b60009392505050565b34801561030357600080fd5b506102086103123660046114e6565b6107c8565b34801561032357600080fd5b5061033761033236600461152b565b6107e3565b604051610261949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561037d57600080fd5b5061020861038c366004611547565b610824565b34801561039d57600080fd5b506103ac61028536600461157a565b60405165ffffffffffff9091168152602001610261565b3480156103cf57600080fd5b5061024d6001600160401b0381565b3480156103ea57600080fd5b5061028b61028536600461157a565b34801561040557600080fd5b5062093a8061028b565b34801561041b57600080fd5b5061028b610285366004611593565b34801561043657600080fd5b50610208610445366004611547565b610836565b34801561045657600080fd5b5061024d6104653660046113b6565b6001600160401b039081166000908152600260205260409020600101541690565b34801561049257600080fd5b5061024d6104a13660046115c8565b610848565b3480156104b257600080fd5b5061024d600081565b3480156104c757600080fd5b506102086104d63660046115f4565b610886565b3480156104e757600080fd5b506102086104f636600461147e565b505050565b34801561050757600080fd5b5061053f610516366004611593565b6001600160a01b031660009081526001602081905260409091200154600160701b900460ff1690565b6040519015158152602001610261565b34801561055b57600080fd5b5061020861056a366004611612565b610922565b34801561057b57600080fd5b5061058f61058a36600461163c565b61092a565b604051908152602001610261565b3480156105a957600080fd5b506105bd6105b83660046116a0565b610963565b60408051921515835263ffffffff909116602083015201610261565b3480156105e557600080fd5b506102086105f436600461152b565b6109e1565b34801561060557600080fd5b50610208610614366004611593565b6109f3565b34801561062557600080fd5b506206978061028b565b34801561063b57600080fd5b506105bd61064a36600461152b565b610a9a565b34801561065b57600080fd5b5061020861056a3660046116de565b34801561067657600080fd5b5061028b61068536600461163c565b6000949350505050565b34801561069b57600080fd5b506106b66106aa3660046116fc565b60008094509492505050565b6040805192835263ffffffff909116602083015201610261565b3480156106dc57600080fd5b506102086106eb36600461152b565b610b10565b6106f8610b39565b60005b8281101561074457610734858585848181106107195761071961176e565b905060200201602081019061072e9190611784565b84610ba4565b61073d8161179f565b90506106fb565b5050505050565b610753610b39565b61075d8282610c28565b5050565b610769610b39565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b1580156107ac57600080fd5b505af11580156107c0573d6000803e3d6000fd5b505050505050565b6107d0610b39565b6107dd8383600084610cce565b50505050565b6001600160401b03821660009081526002602090815260408083206001600160a01b038516845290915281205465ffffffffffff1690808092959194509250565b61082c610b39565b61075d8282610e36565b61083e610b39565b61075d8282610ed8565b6001600160a01b03821660009081526001602090815260408083206001600160e01b0319851684529091529020546001600160401b03165b92915050565b61088e610b39565b6001600160401b03831615806108ac57506001600160401b03838116145b156108da5760405163061c6a4360e21b81526001600160401b03841660048201526024015b60405180910390fd5b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a45083836040516109159291906117ef565b60405180910390a2505050565b61075d610b39565b600084848484604051602001610943949392919061180b565b604051602081830303815290604052805190602001209050949350505050565b6001600160a01b0382166000908152600160208190526040822001548190600160701b900460ff161561099b575060009050806109d9565b60006109a78585610848565b90506000806109b68389610a9a565b91509150816109c7576000806109d1565b63ffffffff811615815b945094505050505b935093915050565b6109e9610b39565b6104f68282610f88565b60005460ff1615610a515760405162461bcd60e51b815260206004820152602260248201527f4163636573734d616e616765723a20616c726561647920696e697469616c697a604482015261195960f21b60648201526084016108d1565b6001600160a01b038116610a7b57604051630409d6d160e11b8152600060048201526024016108d1565b610a89600082600080610cce565b50506000805460ff19166001179055565b60008067fffffffffffffffe196001600160401b03851601610ac25750600190506000610b09565b600080610acf86866107e3565b5050915091508165ffffffffffff16600014158015610afe57504265ffffffffffff168265ffffffffffff1611155b93509150610b099050565b9250929050565b6001600160a01b03811633146109e957604051635f159e6360e01b815260040160405180910390fd5b33600080610b48838236611075565b91509150816104f6578063ffffffff166000036104f6576000610b6b81366110ef565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b038216602482015290925060440190506108d1565b6001600160a01b03831660008181526001602090815260408083206001600160e01b0319871680855290835292819020805467ffffffffffffffff19166001600160401b038716908117909155905192835292917f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a3505050565b306001600160a01b03831603610c5c57604051630b40d17960e31b81526001600160a01b03831660048201526024016108d1565b6001600160a01b038216600081815260016020819052604091829020018054841515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb13890610cc290841515815260200190565b60405180910390a25050565b600067fffffffffffffffe196001600160401b03861601610d0d5760405163061c6a4360e21b81526001600160401b03861660048201526024016108d1565b6001600160401b03851660009081526002602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115610dc8575060408051808201825265ffffffffffff428181168352600060208085018281526001600160401b038d168352600282528683206001600160a01b038d1684529091529490209251835494516dffffffffffffffffffffffffffff166601000000000000026001600160a01b03199095169216919091179290921790555b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b6001600160401b0382161580610e5457506001600160401b03828116145b15610e7d5760405163061c6a4360e21b81526001600160401b03831660048201526024016108d1565b6001600160401b03828116600081815260026020526040808220600101805467ffffffffffffffff19169486169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a35050565b6001600160401b0382161580610ef657506001600160401b03828116145b15610f1f5760405163061c6a4360e21b81526001600160401b03831660048201526024016108d1565b6001600160401b0382811660008181526002602052604080822060010180546fffffffffffffffff00000000000000001916600160401b958716958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a35050565b600067fffffffffffffffe196001600160401b03841601610fc75760405163061c6a4360e21b81526001600160401b03841660048201526024016108d1565b6001600160401b03831660009081526002602090815260408083206001600160a01b038616845290915281205465ffffffffffff16900361100a57506000610880565b6001600160401b03831660008181526002602090815260408083206001600160a01b038716808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a350600192915050565b600080600483101561108c575060009050806109d9565b600080600061109b87876110ef565b925092509250826110b557600080945094505050506109d9565b6000806110c2848b610a9a565b91509150816110dc576000809650965050505050506109d9565b5060019960009950975050505050505050565b60008080600484101561110a575060009150819050806112c4565b600061111686866112cb565b90506001600160e01b031981166310a6aa3760e31b148061114757506001600160e01b031981166330cae18760e01b145b8061116257506001600160e01b0319811663294b14a960e11b145b8061117d57506001600160e01b03198116635326cae760e11b145b8061119857506001600160e01b0319811663d22b598960e01b145b156111ae576001600080935093509350506112c4565b6001600160e01b0319811663063fc60f60e21b14806111dd57506001600160e01b0319811663167bd39560e01b145b806111f857506001600160e01b031981166308d6122d60e01b145b1561122e57600061120d60246004888a611842565b81019061121a9190611593565b5060019450600093508392506112c4915050565b6001600160e01b0319811663012e238d60e51b148061125d57506001600160e01b03198116635be958b160e11b145b156112b757600061127260246004888a611842565b81019061127f91906113b6565b905060016112a8826001600160401b039081166000908152600260205260409020600101541690565b600094509450945050506112c4565b6000806000935093509350505b9250925092565b60006112da6004828486611842565b6112e39161186c565b9392505050565b6001600160a01b03811681146112ff57600080fd5b50565b80356001600160401b038116811461131957600080fd5b919050565b6000806000806060858703121561133457600080fd5b843561133f816112ea565b935060208501356001600160401b038082111561135b57600080fd5b818701915087601f83011261136f57600080fd5b81358181111561137e57600080fd5b8860208260051b850101111561139357600080fd5b6020830195508094505050506113ab60408601611302565b905092959194509250565b6000602082840312156113c857600080fd5b6112e382611302565b600080604083850312156113e457600080fd5b82356113ef816112ea565b91506020830135801515811461140457600080fd5b809150509250929050565b6000806040838503121561142257600080fd5b823561142d816112ea565b91506020830135611404816112ea565b60008083601f84011261144f57600080fd5b5081356001600160401b0381111561146657600080fd5b602083019150836020828501011115610b0957600080fd5b60008060006040848603121561149357600080fd5b833561149e816112ea565b925060208401356001600160401b038111156114b957600080fd5b6114c58682870161143d565b9497909650939450505050565b803563ffffffff8116811461131957600080fd5b6000806000606084860312156114fb57600080fd5b61150484611302565b92506020840135611514816112ea565b9150611522604085016114d2565b90509250925092565b6000806040838503121561153e57600080fd5b61142d83611302565b6000806040838503121561155a57600080fd5b61156383611302565b915061157160208401611302565b90509250929050565b60006020828403121561158c57600080fd5b5035919050565b6000602082840312156115a557600080fd5b81356112e3816112ea565b80356001600160e01b03198116811461131957600080fd5b600080604083850312156115db57600080fd5b82356115e6816112ea565b9150611571602084016115b0565b60008060006040848603121561160957600080fd5b61149e84611302565b6000806040838503121561162557600080fd5b61162e83611302565b9150611571602084016114d2565b6000806000806060858703121561165257600080fd5b843561165d816112ea565b9350602085013561166d816112ea565b925060408501356001600160401b0381111561168857600080fd5b6116948782880161143d565b95989497509550505050565b6000806000606084860312156116b557600080fd5b83356116c0816112ea565b925060208401356116d0816112ea565b9150611522604085016115b0565b600080604083850312156116f157600080fd5b823561162e816112ea565b6000806000806060858703121561171257600080fd5b843561171d816112ea565b935060208501356001600160401b0381111561173857600080fd5b6117448782880161143d565b909450925050604085013565ffffffffffff8116811461176357600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561179657600080fd5b6112e3826115b0565b6000600182016117bf57634e487b7160e01b600052601160045260246000fd5b5060010190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006118036020830184866117c6565b949350505050565b6001600160a01b0385811682528416602082015260606040820181905260009061183890830184866117c6565b9695505050505050565b6000808585111561185257600080fd5b8386111561185f57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156118945780818660040360031b1b83161692505b50509291505056fea2646970667358221220dfce4eeff5910998b4abe6eb2c8322de4f98e5f0aa905ed887a26ae57bcc658e64736f6c63430008140033",
1129
+ "deployedBytecode": "0x6080604052600436106101e35760003560e01c80636d5115bd11610102578063b7d2b16211610095578063d22b598911610064578063d22b59891461064f578063d6bb62c61461066a578063f801a6981461068f578063fe0776f5146106d057600080fd5b8063b7d2b162146105d9578063c4d66de8146105f9578063cc1b6c8114610619578063d1f856ee1461062f57600080fd5b8063a166aa89116100d1578063a166aa89146104fb578063a64d95ce1461054f578063abd9bd2a1461056f578063b70096131461059d57600080fd5b80636d5115bd1461048657806375b238fc146104a6578063853551b8146104bb57806394c7d7ee146104db57600080fd5b806330cae1871161017a5780634665096d116101495780634665096d146103f95780634c1da1e21461040f578063529629521461042a578063530dd4561461044a57600080fd5b806330cae187146103715780633adc277a146103915780633ca7c02a146103c35780634136a33c146103de57600080fd5b806318ff183c116101b657806318ff183c146102c05780631cff79cd146102e057806325c471a0146102f75780633078f1141461031757600080fd5b806308d6122d146101e85780630b0a93ba1461020a57806312be87271461026a578063167bd395146102a0575b600080fd5b3480156101f457600080fd5b5061020861020336600461131e565b6106f0565b005b34801561021657600080fd5b5061024d6102253660046113b6565b6001600160401b03908116600090815260026020526040902060010154600160401b90041690565b6040516001600160401b0390911681526020015b60405180910390f35b34801561027657600080fd5b5061028b6102853660046113b6565b50600090565b60405163ffffffff9091168152602001610261565b3480156102ac57600080fd5b506102086102bb3660046113d1565b61074b565b3480156102cc57600080fd5b506102086102db36600461140f565b610761565b61028b6102ee36600461147e565b60009392505050565b34801561030357600080fd5b506102086103123660046114e6565b6107c8565b34801561032357600080fd5b5061033761033236600461152b565b6107e3565b604051610261949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561037d57600080fd5b5061020861038c366004611547565b610824565b34801561039d57600080fd5b506103ac61028536600461157a565b60405165ffffffffffff9091168152602001610261565b3480156103cf57600080fd5b5061024d6001600160401b0381565b3480156103ea57600080fd5b5061028b61028536600461157a565b34801561040557600080fd5b5062093a8061028b565b34801561041b57600080fd5b5061028b610285366004611593565b34801561043657600080fd5b50610208610445366004611547565b610836565b34801561045657600080fd5b5061024d6104653660046113b6565b6001600160401b039081166000908152600260205260409020600101541690565b34801561049257600080fd5b5061024d6104a13660046115c8565b610848565b3480156104b257600080fd5b5061024d600081565b3480156104c757600080fd5b506102086104d63660046115f4565b610886565b3480156104e757600080fd5b506102086104f636600461147e565b505050565b34801561050757600080fd5b5061053f610516366004611593565b6001600160a01b031660009081526001602081905260409091200154600160701b900460ff1690565b6040519015158152602001610261565b34801561055b57600080fd5b5061020861056a366004611612565b610922565b34801561057b57600080fd5b5061058f61058a36600461163c565b61092a565b604051908152602001610261565b3480156105a957600080fd5b506105bd6105b83660046116a0565b610963565b60408051921515835263ffffffff909116602083015201610261565b3480156105e557600080fd5b506102086105f436600461152b565b6109e1565b34801561060557600080fd5b50610208610614366004611593565b6109f3565b34801561062557600080fd5b506206978061028b565b34801561063b57600080fd5b506105bd61064a36600461152b565b610a9a565b34801561065b57600080fd5b5061020861056a3660046116de565b34801561067657600080fd5b5061028b61068536600461163c565b6000949350505050565b34801561069b57600080fd5b506106b66106aa3660046116fc565b60008094509492505050565b6040805192835263ffffffff909116602083015201610261565b3480156106dc57600080fd5b506102086106eb36600461152b565b610b10565b6106f8610b39565b60005b8281101561074457610734858585848181106107195761071961176e565b905060200201602081019061072e9190611784565b84610ba4565b61073d8161179f565b90506106fb565b5050505050565b610753610b39565b61075d8282610c28565b5050565b610769610b39565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b1580156107ac57600080fd5b505af11580156107c0573d6000803e3d6000fd5b505050505050565b6107d0610b39565b6107dd8383600084610cce565b50505050565b6001600160401b03821660009081526002602090815260408083206001600160a01b038516845290915281205465ffffffffffff1690808092959194509250565b61082c610b39565b61075d8282610e36565b61083e610b39565b61075d8282610ed8565b6001600160a01b03821660009081526001602090815260408083206001600160e01b0319851684529091529020546001600160401b03165b92915050565b61088e610b39565b6001600160401b03831615806108ac57506001600160401b03838116145b156108da5760405163061c6a4360e21b81526001600160401b03841660048201526024015b60405180910390fd5b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a45083836040516109159291906117ef565b60405180910390a2505050565b61075d610b39565b600084848484604051602001610943949392919061180b565b604051602081830303815290604052805190602001209050949350505050565b6001600160a01b0382166000908152600160208190526040822001548190600160701b900460ff161561099b575060009050806109d9565b60006109a78585610848565b90506000806109b68389610a9a565b91509150816109c7576000806109d1565b63ffffffff811615815b945094505050505b935093915050565b6109e9610b39565b6104f68282610f88565b60005460ff1615610a515760405162461bcd60e51b815260206004820152602260248201527f4163636573734d616e616765723a20616c726561647920696e697469616c697a604482015261195960f21b60648201526084016108d1565b6001600160a01b038116610a7b57604051630409d6d160e11b8152600060048201526024016108d1565b610a89600082600080610cce565b50506000805460ff19166001179055565b60008067fffffffffffffffe196001600160401b03851601610ac25750600190506000610b09565b600080610acf86866107e3565b5050915091508165ffffffffffff16600014158015610afe57504265ffffffffffff168265ffffffffffff1611155b93509150610b099050565b9250929050565b6001600160a01b03811633146109e957604051635f159e6360e01b815260040160405180910390fd5b33600080610b48838236611075565b91509150816104f6578063ffffffff166000036104f6576000610b6b81366110ef565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b038216602482015290925060440190506108d1565b6001600160a01b03831660008181526001602090815260408083206001600160e01b0319871680855290835292819020805467ffffffffffffffff19166001600160401b038716908117909155905192835292917f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a3505050565b306001600160a01b03831603610c5c57604051630b40d17960e31b81526001600160a01b03831660048201526024016108d1565b6001600160a01b038216600081815260016020819052604091829020018054841515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb13890610cc290841515815260200190565b60405180910390a25050565b600067fffffffffffffffe196001600160401b03861601610d0d5760405163061c6a4360e21b81526001600160401b03861660048201526024016108d1565b6001600160401b03851660009081526002602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115610dc8575060408051808201825265ffffffffffff428181168352600060208085018281526001600160401b038d168352600282528683206001600160a01b038d1684529091529490209251835494516dffffffffffffffffffffffffffff166601000000000000026001600160a01b03199095169216919091179290921790555b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b6001600160401b0382161580610e5457506001600160401b03828116145b15610e7d5760405163061c6a4360e21b81526001600160401b03831660048201526024016108d1565b6001600160401b03828116600081815260026020526040808220600101805467ffffffffffffffff19169486169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a35050565b6001600160401b0382161580610ef657506001600160401b03828116145b15610f1f5760405163061c6a4360e21b81526001600160401b03831660048201526024016108d1565b6001600160401b0382811660008181526002602052604080822060010180546fffffffffffffffff00000000000000001916600160401b958716958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a35050565b600067fffffffffffffffe196001600160401b03841601610fc75760405163061c6a4360e21b81526001600160401b03841660048201526024016108d1565b6001600160401b03831660009081526002602090815260408083206001600160a01b038616845290915281205465ffffffffffff16900361100a57506000610880565b6001600160401b03831660008181526002602090815260408083206001600160a01b038716808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a350600192915050565b600080600483101561108c575060009050806109d9565b600080600061109b87876110ef565b925092509250826110b557600080945094505050506109d9565b6000806110c2848b610a9a565b91509150816110dc576000809650965050505050506109d9565b5060019960009950975050505050505050565b60008080600484101561110a575060009150819050806112c4565b600061111686866112cb565b90506001600160e01b031981166310a6aa3760e31b148061114757506001600160e01b031981166330cae18760e01b145b8061116257506001600160e01b0319811663294b14a960e11b145b8061117d57506001600160e01b03198116635326cae760e11b145b8061119857506001600160e01b0319811663d22b598960e01b145b156111ae576001600080935093509350506112c4565b6001600160e01b0319811663063fc60f60e21b14806111dd57506001600160e01b0319811663167bd39560e01b145b806111f857506001600160e01b031981166308d6122d60e01b145b1561122e57600061120d60246004888a611842565b81019061121a9190611593565b5060019450600093508392506112c4915050565b6001600160e01b0319811663012e238d60e51b148061125d57506001600160e01b03198116635be958b160e11b145b156112b757600061127260246004888a611842565b81019061127f91906113b6565b905060016112a8826001600160401b039081166000908152600260205260409020600101541690565b600094509450945050506112c4565b6000806000935093509350505b9250925092565b60006112da6004828486611842565b6112e39161186c565b9392505050565b6001600160a01b03811681146112ff57600080fd5b50565b80356001600160401b038116811461131957600080fd5b919050565b6000806000806060858703121561133457600080fd5b843561133f816112ea565b935060208501356001600160401b038082111561135b57600080fd5b818701915087601f83011261136f57600080fd5b81358181111561137e57600080fd5b8860208260051b850101111561139357600080fd5b6020830195508094505050506113ab60408601611302565b905092959194509250565b6000602082840312156113c857600080fd5b6112e382611302565b600080604083850312156113e457600080fd5b82356113ef816112ea565b91506020830135801515811461140457600080fd5b809150509250929050565b6000806040838503121561142257600080fd5b823561142d816112ea565b91506020830135611404816112ea565b60008083601f84011261144f57600080fd5b5081356001600160401b0381111561146657600080fd5b602083019150836020828501011115610b0957600080fd5b60008060006040848603121561149357600080fd5b833561149e816112ea565b925060208401356001600160401b038111156114b957600080fd5b6114c58682870161143d565b9497909650939450505050565b803563ffffffff8116811461131957600080fd5b6000806000606084860312156114fb57600080fd5b61150484611302565b92506020840135611514816112ea565b9150611522604085016114d2565b90509250925092565b6000806040838503121561153e57600080fd5b61142d83611302565b6000806040838503121561155a57600080fd5b61156383611302565b915061157160208401611302565b90509250929050565b60006020828403121561158c57600080fd5b5035919050565b6000602082840312156115a557600080fd5b81356112e3816112ea565b80356001600160e01b03198116811461131957600080fd5b600080604083850312156115db57600080fd5b82356115e6816112ea565b9150611571602084016115b0565b60008060006040848603121561160957600080fd5b61149e84611302565b6000806040838503121561162557600080fd5b61162e83611302565b9150611571602084016114d2565b6000806000806060858703121561165257600080fd5b843561165d816112ea565b9350602085013561166d816112ea565b925060408501356001600160401b0381111561168857600080fd5b6116948782880161143d565b95989497509550505050565b6000806000606084860312156116b557600080fd5b83356116c0816112ea565b925060208401356116d0816112ea565b9150611522604085016115b0565b600080604083850312156116f157600080fd5b823561162e816112ea565b6000806000806060858703121561171257600080fd5b843561171d816112ea565b935060208501356001600160401b0381111561173857600080fd5b6117448782880161143d565b909450925050604085013565ffffffffffff8116811461176357600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561179657600080fd5b6112e3826115b0565b6000600182016117bf57634e487b7160e01b600052601160045260246000fd5b5060010190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006118036020830184866117c6565b949350505050565b6001600160a01b0385811682528416602082015260606040820181905260009061183890830184866117c6565b9695505050505050565b6000808585111561185257600080fd5b8386111561185f57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156118945780818660040360031b1b83161692505b50509291505056fea2646970667358221220dfce4eeff5910998b4abe6eb2c8322de4f98e5f0aa905ed887a26ae57bcc658e64736f6c63430008140033",
1117
1130
  "linkReferences": {},
1118
1131
  "deployedLinkReferences": {}
1119
1132
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e9844962b604f2337cc8063f448ec25f.json"
3
+ "buildInfo": "../../../build-info/ae3f72364845148f68877d4dd5ccf7ad.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e9844962b604f2337cc8063f448ec25f.json"
3
+ "buildInfo": "../../../build-info/ae3f72364845148f68877d4dd5ccf7ad.json"
4
4
  }
@@ -3,6 +3,83 @@
3
3
  "contractName": "IInstance",
4
4
  "sourceName": "contracts/instance/IInstance.sol",
5
5
  "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "NftId",
10
+ "name": "bundleNftId",
11
+ "type": "uint96"
12
+ },
13
+ {
14
+ "components": [
15
+ {
16
+ "internalType": "NftId",
17
+ "name": "poolNftId",
18
+ "type": "uint96"
19
+ },
20
+ {
21
+ "components": [
22
+ {
23
+ "internalType": "UFixed",
24
+ "name": "fractionalFee",
25
+ "type": "uint256"
26
+ },
27
+ {
28
+ "internalType": "uint256",
29
+ "name": "fixedFee",
30
+ "type": "uint256"
31
+ }
32
+ ],
33
+ "internalType": "struct Fee",
34
+ "name": "fee",
35
+ "type": "tuple"
36
+ },
37
+ {
38
+ "internalType": "bytes",
39
+ "name": "filter",
40
+ "type": "bytes"
41
+ },
42
+ {
43
+ "internalType": "uint256",
44
+ "name": "capitalAmount",
45
+ "type": "uint256"
46
+ },
47
+ {
48
+ "internalType": "uint256",
49
+ "name": "lockedAmount",
50
+ "type": "uint256"
51
+ },
52
+ {
53
+ "internalType": "uint256",
54
+ "name": "balanceAmount",
55
+ "type": "uint256"
56
+ },
57
+ {
58
+ "internalType": "uint256",
59
+ "name": "lifetime",
60
+ "type": "uint256"
61
+ },
62
+ {
63
+ "internalType": "Timestamp",
64
+ "name": "expiredAt",
65
+ "type": "uint40"
66
+ },
67
+ {
68
+ "internalType": "Timestamp",
69
+ "name": "closedAt",
70
+ "type": "uint40"
71
+ }
72
+ ],
73
+ "internalType": "struct IBundle.BundleInfo",
74
+ "name": "bundle",
75
+ "type": "tuple"
76
+ }
77
+ ],
78
+ "name": "createBundle",
79
+ "outputs": [],
80
+ "stateMutability": "nonpayable",
81
+ "type": "function"
82
+ },
6
83
  {
7
84
  "inputs": [
8
85
  {
@@ -64,7 +141,7 @@
64
141
  "inputs": [
65
142
  {
66
143
  "internalType": "NftId",
67
- "name": "distributionNftId",
144
+ "name": "poolNftId",
68
145
  "type": "uint96"
69
146
  },
70
147
  {
@@ -311,6 +388,19 @@
311
388
  "stateMutability": "view",
312
389
  "type": "function"
313
390
  },
391
+ {
392
+ "inputs": [],
393
+ "name": "getDistributionService",
394
+ "outputs": [
395
+ {
396
+ "internalType": "contract IDistributionService",
397
+ "name": "",
398
+ "type": "address"
399
+ }
400
+ ],
401
+ "stateMutability": "view",
402
+ "type": "function"
403
+ },
314
404
  {
315
405
  "inputs": [],
316
406
  "name": "getInstanceReader",
@@ -324,6 +414,19 @@
324
414
  "stateMutability": "view",
325
415
  "type": "function"
326
416
  },
417
+ {
418
+ "inputs": [],
419
+ "name": "getPoolService",
420
+ "outputs": [
421
+ {
422
+ "internalType": "contract IPoolService",
423
+ "name": "",
424
+ "type": "address"
425
+ }
426
+ ],
427
+ "stateMutability": "view",
428
+ "type": "function"
429
+ },
327
430
  {
328
431
  "inputs": [
329
432
  {
@@ -342,6 +445,305 @@
342
445
  ],
343
446
  "stateMutability": "view",
344
447
  "type": "function"
448
+ },
449
+ {
450
+ "inputs": [
451
+ {
452
+ "internalType": "NftId",
453
+ "name": "bundleNftId",
454
+ "type": "uint96"
455
+ },
456
+ {
457
+ "components": [
458
+ {
459
+ "internalType": "NftId",
460
+ "name": "poolNftId",
461
+ "type": "uint96"
462
+ },
463
+ {
464
+ "components": [
465
+ {
466
+ "internalType": "UFixed",
467
+ "name": "fractionalFee",
468
+ "type": "uint256"
469
+ },
470
+ {
471
+ "internalType": "uint256",
472
+ "name": "fixedFee",
473
+ "type": "uint256"
474
+ }
475
+ ],
476
+ "internalType": "struct Fee",
477
+ "name": "fee",
478
+ "type": "tuple"
479
+ },
480
+ {
481
+ "internalType": "bytes",
482
+ "name": "filter",
483
+ "type": "bytes"
484
+ },
485
+ {
486
+ "internalType": "uint256",
487
+ "name": "capitalAmount",
488
+ "type": "uint256"
489
+ },
490
+ {
491
+ "internalType": "uint256",
492
+ "name": "lockedAmount",
493
+ "type": "uint256"
494
+ },
495
+ {
496
+ "internalType": "uint256",
497
+ "name": "balanceAmount",
498
+ "type": "uint256"
499
+ },
500
+ {
501
+ "internalType": "uint256",
502
+ "name": "lifetime",
503
+ "type": "uint256"
504
+ },
505
+ {
506
+ "internalType": "Timestamp",
507
+ "name": "expiredAt",
508
+ "type": "uint40"
509
+ },
510
+ {
511
+ "internalType": "Timestamp",
512
+ "name": "closedAt",
513
+ "type": "uint40"
514
+ }
515
+ ],
516
+ "internalType": "struct IBundle.BundleInfo",
517
+ "name": "bundle",
518
+ "type": "tuple"
519
+ },
520
+ {
521
+ "internalType": "StateId",
522
+ "name": "newState",
523
+ "type": "uint8"
524
+ }
525
+ ],
526
+ "name": "updateBundle",
527
+ "outputs": [],
528
+ "stateMutability": "nonpayable",
529
+ "type": "function"
530
+ },
531
+ {
532
+ "inputs": [
533
+ {
534
+ "internalType": "NftId",
535
+ "name": "bundleNftId",
536
+ "type": "uint96"
537
+ },
538
+ {
539
+ "internalType": "StateId",
540
+ "name": "newState",
541
+ "type": "uint8"
542
+ }
543
+ ],
544
+ "name": "updateBundleState",
545
+ "outputs": [],
546
+ "stateMutability": "nonpayable",
547
+ "type": "function"
548
+ },
549
+ {
550
+ "inputs": [
551
+ {
552
+ "internalType": "NftId",
553
+ "name": "distributionNftId",
554
+ "type": "uint96"
555
+ },
556
+ {
557
+ "components": [
558
+ {
559
+ "internalType": "NftId",
560
+ "name": "productNftId",
561
+ "type": "uint96"
562
+ },
563
+ {
564
+ "internalType": "contract TokenHandler",
565
+ "name": "tokenHandler",
566
+ "type": "address"
567
+ },
568
+ {
569
+ "components": [
570
+ {
571
+ "internalType": "UFixed",
572
+ "name": "fractionalFee",
573
+ "type": "uint256"
574
+ },
575
+ {
576
+ "internalType": "uint256",
577
+ "name": "fixedFee",
578
+ "type": "uint256"
579
+ }
580
+ ],
581
+ "internalType": "struct Fee",
582
+ "name": "distributionFee",
583
+ "type": "tuple"
584
+ },
585
+ {
586
+ "internalType": "bool",
587
+ "name": "isIntercepting",
588
+ "type": "bool"
589
+ },
590
+ {
591
+ "internalType": "address",
592
+ "name": "wallet",
593
+ "type": "address"
594
+ }
595
+ ],
596
+ "internalType": "struct ISetup.DistributionSetupInfo",
597
+ "name": "setup",
598
+ "type": "tuple"
599
+ },
600
+ {
601
+ "internalType": "StateId",
602
+ "name": "newState",
603
+ "type": "uint8"
604
+ }
605
+ ],
606
+ "name": "updateDistributionSetup",
607
+ "outputs": [],
608
+ "stateMutability": "nonpayable",
609
+ "type": "function"
610
+ },
611
+ {
612
+ "inputs": [
613
+ {
614
+ "internalType": "NftId",
615
+ "name": "distributionNftId",
616
+ "type": "uint96"
617
+ },
618
+ {
619
+ "internalType": "StateId",
620
+ "name": "newState",
621
+ "type": "uint8"
622
+ }
623
+ ],
624
+ "name": "updateDistributionSetupState",
625
+ "outputs": [],
626
+ "stateMutability": "nonpayable",
627
+ "type": "function"
628
+ },
629
+ {
630
+ "inputs": [
631
+ {
632
+ "internalType": "NftId",
633
+ "name": "poolNftId",
634
+ "type": "uint96"
635
+ },
636
+ {
637
+ "components": [
638
+ {
639
+ "internalType": "NftId",
640
+ "name": "productNftId",
641
+ "type": "uint96"
642
+ },
643
+ {
644
+ "internalType": "contract TokenHandler",
645
+ "name": "tokenHandler",
646
+ "type": "address"
647
+ },
648
+ {
649
+ "internalType": "UFixed",
650
+ "name": "collateralizationLevel",
651
+ "type": "uint256"
652
+ },
653
+ {
654
+ "components": [
655
+ {
656
+ "internalType": "UFixed",
657
+ "name": "fractionalFee",
658
+ "type": "uint256"
659
+ },
660
+ {
661
+ "internalType": "uint256",
662
+ "name": "fixedFee",
663
+ "type": "uint256"
664
+ }
665
+ ],
666
+ "internalType": "struct Fee",
667
+ "name": "poolFee",
668
+ "type": "tuple"
669
+ },
670
+ {
671
+ "components": [
672
+ {
673
+ "internalType": "UFixed",
674
+ "name": "fractionalFee",
675
+ "type": "uint256"
676
+ },
677
+ {
678
+ "internalType": "uint256",
679
+ "name": "fixedFee",
680
+ "type": "uint256"
681
+ }
682
+ ],
683
+ "internalType": "struct Fee",
684
+ "name": "stakingFee",
685
+ "type": "tuple"
686
+ },
687
+ {
688
+ "components": [
689
+ {
690
+ "internalType": "UFixed",
691
+ "name": "fractionalFee",
692
+ "type": "uint256"
693
+ },
694
+ {
695
+ "internalType": "uint256",
696
+ "name": "fixedFee",
697
+ "type": "uint256"
698
+ }
699
+ ],
700
+ "internalType": "struct Fee",
701
+ "name": "performanceFee",
702
+ "type": "tuple"
703
+ },
704
+ {
705
+ "internalType": "bool",
706
+ "name": "isIntercepting",
707
+ "type": "bool"
708
+ },
709
+ {
710
+ "internalType": "address",
711
+ "name": "wallet",
712
+ "type": "address"
713
+ }
714
+ ],
715
+ "internalType": "struct ISetup.PoolSetupInfo",
716
+ "name": "setup",
717
+ "type": "tuple"
718
+ },
719
+ {
720
+ "internalType": "StateId",
721
+ "name": "newState",
722
+ "type": "uint8"
723
+ }
724
+ ],
725
+ "name": "updatePoolSetup",
726
+ "outputs": [],
727
+ "stateMutability": "nonpayable",
728
+ "type": "function"
729
+ },
730
+ {
731
+ "inputs": [
732
+ {
733
+ "internalType": "NftId",
734
+ "name": "poolNftId",
735
+ "type": "uint96"
736
+ },
737
+ {
738
+ "internalType": "StateId",
739
+ "name": "newState",
740
+ "type": "uint8"
741
+ }
742
+ ],
743
+ "name": "updatePoolSetupState",
744
+ "outputs": [],
745
+ "stateMutability": "nonpayable",
746
+ "type": "function"
345
747
  }
346
748
  ],
347
749
  "bytecode": "0x",
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e9844962b604f2337cc8063f448ec25f.json"
3
+ "buildInfo": "../../../build-info/ae3f72364845148f68877d4dd5ccf7ad.json"
4
4
  }
@@ -73,6 +73,37 @@
73
73
  "name": "ErrorRegistryNotInitialized",
74
74
  "type": "error"
75
75
  },
76
+ {
77
+ "anonymous": false,
78
+ "inputs": [
79
+ {
80
+ "indexed": false,
81
+ "internalType": "address",
82
+ "name": "clonedAccessManagerAddress",
83
+ "type": "address"
84
+ },
85
+ {
86
+ "indexed": false,
87
+ "internalType": "address",
88
+ "name": "clonedInstanceAddress",
89
+ "type": "address"
90
+ },
91
+ {
92
+ "indexed": false,
93
+ "internalType": "address",
94
+ "name": "clonedInstanceReaderAddress",
95
+ "type": "address"
96
+ },
97
+ {
98
+ "indexed": false,
99
+ "internalType": "NftId",
100
+ "name": "clonedInstanceNftId",
101
+ "type": "uint96"
102
+ }
103
+ ],
104
+ "name": "LogInstanceCloned",
105
+ "type": "event"
106
+ },
76
107
  {
77
108
  "anonymous": false,
78
109
  "inputs": [
@@ -98,6 +129,34 @@
98
129
  "name": "LogVersionableInitialized",
99
130
  "type": "event"
100
131
  },
132
+ {
133
+ "inputs": [],
134
+ "name": "createInstanceClone",
135
+ "outputs": [
136
+ {
137
+ "internalType": "contract AccessManagerSimple",
138
+ "name": "clonedAccessManager",
139
+ "type": "address"
140
+ },
141
+ {
142
+ "internalType": "contract Instance",
143
+ "name": "clonedInstance",
144
+ "type": "address"
145
+ },
146
+ {
147
+ "internalType": "NftId",
148
+ "name": "instanceNftId",
149
+ "type": "uint96"
150
+ },
151
+ {
152
+ "internalType": "contract InstanceReader",
153
+ "name": "clonedInstanceReader",
154
+ "type": "address"
155
+ }
156
+ ],
157
+ "stateMutability": "nonpayable",
158
+ "type": "function"
159
+ },
101
160
  {
102
161
  "inputs": [],
103
162
  "name": "getInitialInfo",