@hyperlane-xyz/core 5.1.2 → 5.2.0

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 (164) hide show
  1. package/contracts/interfaces/IInterchainSecurityModule.sol +2 -2
  2. package/contracts/isms/hook/ArbL2ToL1Ism.sol +8 -10
  3. package/contracts/isms/multisig/WeightedMultisigIsm.sol +2 -2
  4. package/contracts/token/HypNative.sol +0 -24
  5. package/contracts/token/extensions/HypNativeScaled.sol +0 -25
  6. package/dist/buildArtifact.js +1 -1
  7. package/dist/buildArtifact.json +1 -1
  8. package/dist/contracts/token/HypNative.d.ts +5 -5
  9. package/dist/contracts/token/HypNative.d.ts.map +1 -1
  10. package/dist/contracts/token/extensions/HypNativeScaled.d.ts +5 -5
  11. package/dist/contracts/token/extensions/HypNativeScaled.d.ts.map +1 -1
  12. package/dist/factories/contracts/AttributeCheckpointFraud__factory.d.ts +1 -1
  13. package/dist/factories/contracts/AttributeCheckpointFraud__factory.js +1 -1
  14. package/dist/factories/contracts/CheckpointFraudProofs__factory.d.ts +1 -1
  15. package/dist/factories/contracts/CheckpointFraudProofs__factory.js +1 -1
  16. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  17. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  18. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.d.ts +1 -1
  19. package/dist/factories/contracts/hooks/ArbL2ToL1Hook__factory.js +1 -1
  20. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.d.ts +1 -1
  21. package/dist/factories/contracts/hooks/MerkleTreeHook__factory.js +1 -1
  22. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.d.ts +1 -1
  23. package/dist/factories/contracts/hooks/OPL2ToL1Hook__factory.js +1 -1
  24. package/dist/factories/contracts/hooks/OPStackHook__factory.d.ts +1 -1
  25. package/dist/factories/contracts/hooks/OPStackHook__factory.js +1 -1
  26. package/dist/factories/contracts/hooks/PolygonPosHook__factory.d.ts +1 -1
  27. package/dist/factories/contracts/hooks/PolygonPosHook__factory.js +1 -1
  28. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.d.ts +1 -1
  29. package/dist/factories/contracts/hooks/aggregation/ERC5164Hook__factory.js +1 -1
  30. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.d.ts +1 -1
  31. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV1Hook__factory.js +1 -1
  32. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.d.ts +1 -1
  33. package/dist/factories/contracts/hooks/layer-zero/LayerZeroV2Hook__factory.js +1 -1
  34. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.d.ts +1 -1
  35. package/dist/factories/contracts/hooks/routing/DestinationRecipientRoutingHook__factory.js +1 -1
  36. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.d.ts +1 -1
  37. package/dist/factories/contracts/hooks/routing/DomainRoutingHook__factory.js +1 -1
  38. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.d.ts +1 -1
  39. package/dist/factories/contracts/hooks/routing/FallbackDomainRoutingHook__factory.js +1 -1
  40. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.d.ts +1 -1
  41. package/dist/factories/contracts/hooks/warp-route/RateLimitedHook__factory.js +1 -1
  42. package/dist/factories/contracts/isms/NoopIsm__factory.d.ts +1 -1
  43. package/dist/factories/contracts/isms/NoopIsm__factory.js +1 -1
  44. package/dist/factories/contracts/isms/PausableIsm__factory.d.ts +1 -1
  45. package/dist/factories/contracts/isms/PausableIsm__factory.js +1 -1
  46. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.d.ts +1 -1
  47. package/dist/factories/contracts/isms/TrustedRelayerIsm__factory.js +1 -1
  48. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  49. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  50. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  51. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  52. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts +1 -1
  53. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.d.ts.map +1 -1
  54. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js +1 -1
  55. package/dist/factories/contracts/isms/hook/ArbL2ToL1Ism__factory.js.map +1 -1
  56. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.d.ts +1 -1
  57. package/dist/factories/contracts/isms/hook/ERC5164Ism__factory.js +1 -1
  58. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.d.ts +1 -1
  59. package/dist/factories/contracts/isms/hook/OPL2ToL1Ism__factory.js +1 -1
  60. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.d.ts +1 -1
  61. package/dist/factories/contracts/isms/hook/OPStackIsm__factory.js +1 -1
  62. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.d.ts +1 -1
  63. package/dist/factories/contracts/isms/hook/PolygonPosIsm__factory.js +1 -1
  64. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.d.ts +1 -1
  65. package/dist/factories/contracts/isms/hook/layer-zero/LayerZeroV2Ism__factory.js +1 -1
  66. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  67. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  68. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
  69. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
  70. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  71. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  72. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
  73. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
  74. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.d.ts +1 -1
  75. package/dist/factories/contracts/isms/multisig/ValidatorAnnounce__factory.js +1 -1
  76. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.d.ts +1 -1
  77. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsmFactory__factory.js +1 -1
  78. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.d.ts +1 -1
  79. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMerkleRootWeightedMultisigIsm__factory.js +1 -1
  80. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.d.ts +1 -1
  81. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsmFactory__factory.js +1 -1
  82. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.d.ts +1 -1
  83. package/dist/factories/contracts/isms/multisig/WeightedMultisigIsm.sol/StaticMessageIdWeightedMultisigIsm__factory.js +1 -1
  84. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.d.ts +1 -1
  85. package/dist/factories/contracts/isms/routing/DefaultFallbackRoutingIsm__factory.js +1 -1
  86. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.d.ts +1 -1
  87. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory.sol/DomainRoutingIsmFactory__factory.js +1 -1
  88. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  89. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  90. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  91. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  92. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.d.ts +1 -1
  93. package/dist/factories/contracts/isms/warp-route/RateLimitedIsm__factory.js +1 -1
  94. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  95. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  96. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  97. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  98. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  99. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  100. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  101. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  102. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  103. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  104. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  105. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  106. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
  107. package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
  108. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
  109. package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
  110. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  111. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  112. package/dist/factories/contracts/test/TestIsm__factory.d.ts +1 -1
  113. package/dist/factories/contracts/test/TestIsm__factory.js +1 -1
  114. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  115. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  116. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.d.ts +1 -1
  117. package/dist/factories/contracts/test/TestMerkleTreeHook__factory.js +1 -1
  118. package/dist/factories/contracts/test/TestQuerySender__factory.d.ts +1 -1
  119. package/dist/factories/contracts/test/TestQuerySender__factory.js +1 -1
  120. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  121. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  122. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
  123. package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
  124. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  125. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  126. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  127. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  128. package/dist/factories/contracts/token/HypERC20Collateral__factory.d.ts +1 -1
  129. package/dist/factories/contracts/token/HypERC20Collateral__factory.js +1 -1
  130. package/dist/factories/contracts/token/HypERC20__factory.d.ts +1 -1
  131. package/dist/factories/contracts/token/HypERC20__factory.js +1 -1
  132. package/dist/factories/contracts/token/HypERC721Collateral__factory.d.ts +1 -1
  133. package/dist/factories/contracts/token/HypERC721Collateral__factory.js +1 -1
  134. package/dist/factories/contracts/token/HypERC721__factory.d.ts +1 -1
  135. package/dist/factories/contracts/token/HypERC721__factory.js +1 -1
  136. package/dist/factories/contracts/token/HypNative__factory.d.ts +2 -2
  137. package/dist/factories/contracts/token/HypNative__factory.d.ts.map +1 -1
  138. package/dist/factories/contracts/token/HypNative__factory.js +2 -2
  139. package/dist/factories/contracts/token/HypNative__factory.js.map +1 -1
  140. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.d.ts +1 -1
  141. package/dist/factories/contracts/token/extensions/FastHypERC20Collateral__factory.js +1 -1
  142. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.d.ts +1 -1
  143. package/dist/factories/contracts/token/extensions/FastHypERC20__factory.js +1 -1
  144. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.d.ts +1 -1
  145. package/dist/factories/contracts/token/extensions/HypERC4626Collateral__factory.js +1 -1
  146. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.d.ts +1 -1
  147. package/dist/factories/contracts/token/extensions/HypERC4626OwnerCollateral__factory.js +1 -1
  148. package/dist/factories/contracts/token/extensions/HypERC4626__factory.d.ts +1 -1
  149. package/dist/factories/contracts/token/extensions/HypERC4626__factory.js +1 -1
  150. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.d.ts +1 -1
  151. package/dist/factories/contracts/token/extensions/HypERC721URICollateral__factory.js +1 -1
  152. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.d.ts +1 -1
  153. package/dist/factories/contracts/token/extensions/HypERC721URIStorage__factory.js +1 -1
  154. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.d.ts +1 -1
  155. package/dist/factories/contracts/token/extensions/HypFiatToken__factory.js +1 -1
  156. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts +2 -2
  157. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.d.ts.map +1 -1
  158. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js +2 -2
  159. package/dist/factories/contracts/token/extensions/HypNativeScaled__factory.js.map +1 -1
  160. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.d.ts +1 -1
  161. package/dist/factories/contracts/token/extensions/HypXERC20Lockbox__factory.js +1 -1
  162. package/dist/factories/contracts/token/extensions/HypXERC20__factory.d.ts +1 -1
  163. package/dist/factories/contracts/token/extensions/HypXERC20__factory.js +1 -1
  164. package/package.json +3 -3
@@ -12,7 +12,7 @@ export declare class HypERC4626Collateral__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): HypERC4626Collateral;
14
14
  connect(signer: Signer): HypERC4626Collateral__factory;
15
- static readonly bytecode = "0x6101006040523480156200001257600080fd5b50604051620030f4380380620030f483398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612dd162000323600039600081816105c701528181611066015281816110f50152818161168a015281816117610152611a5801526000818161042401528181610aa10152818161161101526116bc015260006103b00152600081816104d1015281816108fd015281816118590152611be90152612dd16000f3fe6080604052600436106101c25760003560e01c80638d3638f4116100f7578063d5438eae11610095578063f098111911610064578063f098111914610560578063f2ed8c5314610575578063f2fde38b14610595578063fbfa77cf146105b557600080fd5b8063d5438eae146104bf578063de523cf3146104f3578063e9198bf914610520578063efae508a1461054057600080fd5b8063aaf5eb68116100d1578063aaf5eb6814610446578063b1bd64361461045f578063b49c53a71461047f578063c0c53b8b1461049f57600080fd5b80638d3638f41461039e5780638da5cb5b146103e7578063996c6cc31461041257600080fd5b806356d5d4751161016457806371a15b381161013e57806371a15b38146102ec578063775313a11461030c5780637f5a7c7b1461033957806381b4e8b41461038b57600080fd5b806356d5d475146102a457806370a08231146102b7578063715018a6146102d757600080fd5b806342904642116101a0578063429046421461023c578063440df4f41461024f57806349d462ef1461027157806351debffc1461029157600080fd5b80630e72cc06146101c75780632ead72f6146101e95780633dfd38731461021c575b600080fd5b3480156101d357600080fd5b506101e76101e23660046125eb565b6105e9565b005b3480156101f557600080fd5b5061020961020436600461261a565b610704565b6040519081526020015b60405180910390f35b34801561022857600080fd5b506101e76102373660046125eb565b610723565b6101e761024a36600461261a565b610839565b34801561025b57600080fd5b50610264610860565b6040516102139190612635565b34801561027d57600080fd5b506101e761028c36600461267f565b610871565b61020961029f3660046126eb565b610893565b6101e76102b2366004612762565b6108e5565b3480156102c357600080fd5b506102096102d23660046125eb565b610a59565b3480156102e357600080fd5b506101e7610b14565b3480156102f857600080fd5b506101e7610307366004612801565b610b28565b34801561031857600080fd5b5061020961032736600461261a565b60ca6020526000908152604090205481565b34801561034557600080fd5b506065546103669073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610213565b610209610399366004612843565b610b83565b3480156103aa57600080fd5b506103d27f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610213565b3480156103f357600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610366565b34801561041e57600080fd5b506103667f000000000000000000000000000000000000000000000000000000000000000081565b34801561045257600080fd5b506102096402540be40081565b34801561046b57600080fd5b506101e761047a366004612876565b610b9b565b34801561048b57600080fd5b506101e761049a36600461267f565b610c25565b3480156104ab57600080fd5b506101e76104ba3660046128eb565b610c37565b3480156104cb57600080fd5b506103667f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ff57600080fd5b506066546103669073ffffffffffffffffffffffffffffffffffffffff1681565b34801561052c57600080fd5b506101e761053b36600461292e565b610dce565b34801561054c57600080fd5b506101e761055b36600461261a565b610ead565b34801561056c57600080fd5b50610209600181565b34801561058157600080fd5b5061020961059036600461261a565b610ec1565b3480156105a157600080fd5b506101e76105b03660046125eb565b610ef8565b3480156105c157600080fd5b506103667f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610623575073ffffffffffffffffffffffffffffffffffffffff8116155b6106b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106bc610fac565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061071b609763ffffffff8086169061102d16565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b15158061075d575073ffffffffffffffffffffffffffffffffffffffff8116155b6107e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016106ab565b6107f1610fac565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61085c81600160001b600034604051806020016040528060008152506000611046565b5050565b606061086c6097611226565b905090565b610879610fac565b63ffffffff91909116600090815260ca6020526040902055565b60006108da8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611046915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146109aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016106ab565b60006109b5856112e1565b9050838114610a46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016106ab565b610a5285858585611346565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e919061298e565b92915050565b610b1c610fac565b610b2660006113d0565b565b610b30610fac565b8060005b81811015610b7d57610b6b848483818110610b5157610b516129a7565b9050602002016020810190610b66919061261a565b611447565b610b76600182612a05565b9050610b34565b50505050565b6000610b918484843461149c565b90505b9392505050565b610ba3610fac565b60005b81811015610c2057610c0e838383818110610bc357610bc36129a7565b610bd9926020604090920201908101915061261a565b848484818110610beb57610beb6129a7565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610c19600182612a05565b9050610ba6565b505050565b610c2d610fac565b61085c82826114d5565b600054610100900460ff1615808015610c575750600054600160ff909116105b80610c715750303b158015610c71575060005460ff166001145b610cfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106ab565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610d5b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610d668484846114eb565b8015610b7d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b610dd6610fac565b828114610e3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016106ab565b8260005b81811015610ea557610e93868683818110610e6057610e606129a7565b9050602002016020810190610e75919061261a565b858584818110610e8757610e876129a7565b905060200201356114d5565b610e9e600182612a05565b9050610e43565b505050505050565b610eb5610fac565b610ebe81611447565b50565b604080516020810190915260008082526065549091610b0e9184919073ffffffffffffffffffffffffffffffffffffffff166115a5565b610f00610fac565b73ffffffffffffffffffffffffffffffffffffffff8116610fa3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106ab565b610ebe816113d0565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ab565b60008061103a84846115bb565b915091505b9250929050565b6000611051856115f5565b50600061105d8661164d565b905060006111917f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f3919061298e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561115e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611182919061298e565b6402540be400919060006117bf565b90506000816040516020016111a891815260200190565b604051602081830303815290604052905060006111c68a858461181a565b90506111d58b89838a8a611849565b9450898b63ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8660405161121091815260200190565b60405180910390a3505050509695505050505050565b60606000611233836118fc565b9050805167ffffffffffffffff81111561124f5761124f612a18565b604051908082528060200260200182016040528015611278578160200160208202803683370190505b50915060005b81518110156112da57818181518110611299576112996129a7565b60200260200101518382815181106112b3576112b36129a7565b63ffffffff90921660209283029190910190910152806112d281612a47565b91505061127e565b5050919050565b600080806112f9609763ffffffff8087169061102d16565b91509150811561130a579392505050565b61131384611997565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab9190612aed565b600061135283836119ce565b9050600061136084846119e6565b905036600061136f86866119f6565b9150915061138561137d8590565b848484611a06565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6856040516113be91815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61145b609763ffffffff80841690611ac516565b61146482611997565b9061085c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab9190612aed565b60006114cc858585856114ae8a611ad1565b60655473ffffffffffffffffffffffffffffffffffffffff16611046565b95945050505050565b61085c609763ffffffff808516908490611af316565b600054610100900460ff16611582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b61158a611afe565b61159383610723565b61159c826105e9565b610c20816113d0565b6000610b9184846115b587611ad1565b85611b9d565b60008181526002830160205260408120548190806115ea576115dd8585611c67565b92506000915061103f9050565b60019250905061103f565b606061163973ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085611c73565b505060408051602081019091526000815290565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af1158015611707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172b9190612b00565b506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018390523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015610aea573d6000803e3d6000fd5b6000806117cd868686611d08565b905060018360028111156117e3576117e3612b22565b1480156118005750600084806117fb576117fb612b51565b868809115b156114cc57611810600182612a05565b9695505050505050565b606083838360405160200161183193929190612b80565b60405160208183030381529060405290509392505050565b600080611855876112e1565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b81526004016118b9959493929190612bad565b60206040518083038185885af11580156118d7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108da919061298e565b6060600061190983611e32565b90508067ffffffffffffffff81111561192457611924612a18565b60405190808252806020026020018201604052801561194d578160200160208202803683370190505b50915060005b818110156112da576119658482611e3d565b60001c83828151811061197a5761197a6129a7565b60209081029190910101528061198f81612a47565b915050611953565b60606119a88263ffffffff16611e49565b6040516020016119b89190612c0d565b6040516020818303038152906040529050919050565b60006119dd6020828486612c52565b610b9491612c7c565b60006119dd604060208486612c52565b36600061103a8360408187612c52565b6040517fba0876520000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff85811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063ba087652906064016020604051808303816000875af1158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a52919061298e565b6000610b948383611f07565b63ffffffff8116600090815260ca6020526040902054606090610b0e90611f24565b610b7d838383611f42565b600054610100900460ff16611b95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b610b26611f5f565b600080611ba9866112e1565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611c2690899085908a908a908a90600401612bad565b602060405180830381865afa158015611c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611810919061298e565b6000610b948383611fff565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610b7d908590612017565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003611d6057838281611d5657611d56612b51565b0492505050610b94565b808411611dc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f77000000000000000000000060448201526064016106ab565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000610b0e82612126565b6000610b948383612130565b60606000611e568361215a565b600101905060008167ffffffffffffffff811115611e7657611e76612a18565b6040519080825280601f01601f191660200182016040528015611ea0576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611eaa57509392505050565b60008181526002830160205260408120819055610b94838361223c565b6060610b0e6000833360405180602001604052806000815250612248565b60008281526002840160205260408120829055610b91848461227d565b600054610100900460ff16611ff6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b610b26336113d0565b60008181526001830160205260408120541515610b94565b6000612079826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122899092919063ffffffff16565b905080516000148061209a57508080602001905181019061209a9190612b00565b610c20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106ab565b6000610b0e825490565b6000826000018281548110612147576121476129a7565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106121a3577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106121cf576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106121ed57662386f26fc10000830492506010015b6305f5e1008310612205576305f5e100830492506008015b612710831061221957612710830492506004015b6064831061222b576064830492506002015b600a8310610b0e5760010192915050565b6000610b948383612298565b6060600185858585604051602001612264959493929190612cb8565b6040516020818303038152906040529050949350505050565b6000610b94838361238b565b6060610b9184846000856123da565b600081815260018301602052604081205480156123815760006122bc600183612d3d565b85549091506000906122d090600190612d3d565b90508181146123355760008660000182815481106122f0576122f06129a7565b9060005260206000200154905080876000018481548110612313576123136129a7565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061234657612346612d50565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b0e565b6000915050610b0e565b60008181526001830160205260408120546123d257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b0e565b506000610b0e565b60608247101561246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106ab565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516124959190612d7f565b60006040518083038185875af1925050503d80600081146124d2576040519150601f19603f3d011682016040523d82523d6000602084013e6124d7565b606091505b50915091506108da87838387606083156125795782516000036125725773ffffffffffffffffffffffffffffffffffffffff85163b612572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106ab565b508161071b565b61071b838381511561258e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab9190612aed565b803573ffffffffffffffffffffffffffffffffffffffff811681146125e657600080fd5b919050565b6000602082840312156125fd57600080fd5b610b94826125c2565b803563ffffffff811681146125e657600080fd5b60006020828403121561262c57600080fd5b610b9482612606565b6020808252825182820181905260009190848201906040850190845b8181101561267357835163ffffffff1683529284019291840191600101612651565b50909695505050505050565b6000806040838503121561269257600080fd5b61269b83612606565b946020939093013593505050565b60008083601f8401126126bb57600080fd5b50813567ffffffffffffffff8111156126d357600080fd5b60208301915083602082850101111561103f57600080fd5b60008060008060008060a0878903121561270457600080fd5b61270d87612606565b95506020870135945060408701359350606087013567ffffffffffffffff81111561273757600080fd5b61274389828a016126a9565b90945092506127569050608088016125c2565b90509295509295509295565b6000806000806060858703121561277857600080fd5b61278185612606565b935060208501359250604085013567ffffffffffffffff8111156127a457600080fd5b6127b0878288016126a9565b95989497509550505050565b60008083601f8401126127ce57600080fd5b50813567ffffffffffffffff8111156127e657600080fd5b6020830191508360208260051b850101111561103f57600080fd5b6000806020838503121561281457600080fd5b823567ffffffffffffffff81111561282b57600080fd5b612837858286016127bc565b90969095509350505050565b60008060006060848603121561285857600080fd5b61286184612606565b95602085013595506040909401359392505050565b6000806020838503121561288957600080fd5b823567ffffffffffffffff808211156128a157600080fd5b818501915085601f8301126128b557600080fd5b8135818111156128c457600080fd5b8660208260061b85010111156128d957600080fd5b60209290920196919550909350505050565b60008060006060848603121561290057600080fd5b612909846125c2565b9250612917602085016125c2565b9150612925604085016125c2565b90509250925092565b6000806000806040858703121561294457600080fd5b843567ffffffffffffffff8082111561295c57600080fd5b612968888389016127bc565b9096509450602087013591508082111561298157600080fd5b506127b0878288016127bc565b6000602082840312156129a057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610b0e57610b0e6129d6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a7857612a786129d6565b5060010190565b60005b83811015612a9a578181015183820152602001612a82565b50506000910152565b60008151808452612abb816020860160208601612a7f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610b946020830184612aa3565b600060208284031215612b1257600080fd5b81518015158114610b9457600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b83815282602082015260008251612b9e816040850160208701612a7f565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612bd260a0830186612aa3565b8281036060840152612be48186612aa3565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612c4581601f850160208701612a7f565b91909101601f0192915050565b60008085851115612c6257600080fd5b83861115612c6f57600080fd5b5050820193919092039150565b80356020831015610b0e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612d2c816056850160208701612a7f565b919091016056019695505050505050565b81810381811115610b0e57610b0e6129d6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612d91818460208701612a7f565b919091019291505056fea2646970667358221220fbc4ce91685fd35632311595d7bd695a84a94d2580196b491fa61ef4f92c5daf64736f6c63430008130033";
15
+ static readonly bytecode = "0x6101006040523480156200001257600080fd5b50604051620030f4380380620030f483398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612dd162000323600039600081816105c701528181611066015281816110f50152818161168a015281816117610152611a5801526000818161042401528181610aa10152818161161101526116bc015260006103b00152600081816104d1015281816108fd015281816118590152611be90152612dd16000f3fe6080604052600436106101c25760003560e01c80638d3638f4116100f7578063d5438eae11610095578063f098111911610064578063f098111914610560578063f2ed8c5314610575578063f2fde38b14610595578063fbfa77cf146105b557600080fd5b8063d5438eae146104bf578063de523cf3146104f3578063e9198bf914610520578063efae508a1461054057600080fd5b8063aaf5eb68116100d1578063aaf5eb6814610446578063b1bd64361461045f578063b49c53a71461047f578063c0c53b8b1461049f57600080fd5b80638d3638f41461039e5780638da5cb5b146103e7578063996c6cc31461041257600080fd5b806356d5d4751161016457806371a15b381161013e57806371a15b38146102ec578063775313a11461030c5780637f5a7c7b1461033957806381b4e8b41461038b57600080fd5b806356d5d475146102a457806370a08231146102b7578063715018a6146102d757600080fd5b806342904642116101a0578063429046421461023c578063440df4f41461024f57806349d462ef1461027157806351debffc1461029157600080fd5b80630e72cc06146101c75780632ead72f6146101e95780633dfd38731461021c575b600080fd5b3480156101d357600080fd5b506101e76101e23660046125eb565b6105e9565b005b3480156101f557600080fd5b5061020961020436600461261a565b610704565b6040519081526020015b60405180910390f35b34801561022857600080fd5b506101e76102373660046125eb565b610723565b6101e761024a36600461261a565b610839565b34801561025b57600080fd5b50610264610860565b6040516102139190612635565b34801561027d57600080fd5b506101e761028c36600461267f565b610871565b61020961029f3660046126eb565b610893565b6101e76102b2366004612762565b6108e5565b3480156102c357600080fd5b506102096102d23660046125eb565b610a59565b3480156102e357600080fd5b506101e7610b14565b3480156102f857600080fd5b506101e7610307366004612801565b610b28565b34801561031857600080fd5b5061020961032736600461261a565b60ca6020526000908152604090205481565b34801561034557600080fd5b506065546103669073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610213565b610209610399366004612843565b610b83565b3480156103aa57600080fd5b506103d27f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610213565b3480156103f357600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610366565b34801561041e57600080fd5b506103667f000000000000000000000000000000000000000000000000000000000000000081565b34801561045257600080fd5b506102096402540be40081565b34801561046b57600080fd5b506101e761047a366004612876565b610b9b565b34801561048b57600080fd5b506101e761049a36600461267f565b610c25565b3480156104ab57600080fd5b506101e76104ba3660046128eb565b610c37565b3480156104cb57600080fd5b506103667f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ff57600080fd5b506066546103669073ffffffffffffffffffffffffffffffffffffffff1681565b34801561052c57600080fd5b506101e761053b36600461292e565b610dce565b34801561054c57600080fd5b506101e761055b36600461261a565b610ead565b34801561056c57600080fd5b50610209600181565b34801561058157600080fd5b5061020961059036600461261a565b610ec1565b3480156105a157600080fd5b506101e76105b03660046125eb565b610ef8565b3480156105c157600080fd5b506103667f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610623575073ffffffffffffffffffffffffffffffffffffffff8116155b6106b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106bc610fac565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061071b609763ffffffff8086169061102d16565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b15158061075d575073ffffffffffffffffffffffffffffffffffffffff8116155b6107e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016106ab565b6107f1610fac565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61085c81600160001b600034604051806020016040528060008152506000611046565b5050565b606061086c6097611226565b905090565b610879610fac565b63ffffffff91909116600090815260ca6020526040902055565b60006108da8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611046915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146109aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016106ab565b60006109b5856112e1565b9050838114610a46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016106ab565b610a5285858585611346565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e919061298e565b92915050565b610b1c610fac565b610b2660006113d0565b565b610b30610fac565b8060005b81811015610b7d57610b6b848483818110610b5157610b516129a7565b9050602002016020810190610b66919061261a565b611447565b610b76600182612a05565b9050610b34565b50505050565b6000610b918484843461149c565b90505b9392505050565b610ba3610fac565b60005b81811015610c2057610c0e838383818110610bc357610bc36129a7565b610bd9926020604090920201908101915061261a565b848484818110610beb57610beb6129a7565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610c19600182612a05565b9050610ba6565b505050565b610c2d610fac565b61085c82826114d5565b600054610100900460ff1615808015610c575750600054600160ff909116105b80610c715750303b158015610c71575060005460ff166001145b610cfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106ab565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610d5b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610d668484846114eb565b8015610b7d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b610dd6610fac565b828114610e3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016106ab565b8260005b81811015610ea557610e93868683818110610e6057610e606129a7565b9050602002016020810190610e75919061261a565b858584818110610e8757610e876129a7565b905060200201356114d5565b610e9e600182612a05565b9050610e43565b505050505050565b610eb5610fac565b610ebe81611447565b50565b604080516020810190915260008082526065549091610b0e9184919073ffffffffffffffffffffffffffffffffffffffff166115a5565b610f00610fac565b73ffffffffffffffffffffffffffffffffffffffff8116610fa3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106ab565b610ebe816113d0565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ab565b60008061103a84846115bb565b915091505b9250929050565b6000611051856115f5565b50600061105d8661164d565b905060006111917f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f3919061298e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561115e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611182919061298e565b6402540be400919060006117bf565b90506000816040516020016111a891815260200190565b604051602081830303815290604052905060006111c68a858461181a565b90506111d58b89838a8a611849565b9450898b63ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8660405161121091815260200190565b60405180910390a3505050509695505050505050565b60606000611233836118fc565b9050805167ffffffffffffffff81111561124f5761124f612a18565b604051908082528060200260200182016040528015611278578160200160208202803683370190505b50915060005b81518110156112da57818181518110611299576112996129a7565b60200260200101518382815181106112b3576112b36129a7565b63ffffffff90921660209283029190910190910152806112d281612a47565b91505061127e565b5050919050565b600080806112f9609763ffffffff8087169061102d16565b91509150811561130a579392505050565b61131384611997565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab9190612aed565b600061135283836119ce565b9050600061136084846119e6565b905036600061136f86866119f6565b9150915061138561137d8590565b848484611a06565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6856040516113be91815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61145b609763ffffffff80841690611ac516565b61146482611997565b9061085c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab9190612aed565b60006114cc858585856114ae8a611ad1565b60655473ffffffffffffffffffffffffffffffffffffffff16611046565b95945050505050565b61085c609763ffffffff808516908490611af316565b600054610100900460ff16611582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b61158a611afe565b61159383610723565b61159c826105e9565b610c20816113d0565b6000610b9184846115b587611ad1565b85611b9d565b60008181526002830160205260408120548190806115ea576115dd8585611c67565b92506000915061103f9050565b60019250905061103f565b606061163973ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085611c73565b505060408051602081019091526000815290565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af1158015611707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172b9190612b00565b506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018390523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015610aea573d6000803e3d6000fd5b6000806117cd868686611d08565b905060018360028111156117e3576117e3612b22565b1480156118005750600084806117fb576117fb612b51565b868809115b156114cc57611810600182612a05565b9695505050505050565b606083838360405160200161183193929190612b80565b60405160208183030381529060405290509392505050565b600080611855876112e1565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b81526004016118b9959493929190612bad565b60206040518083038185885af11580156118d7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108da919061298e565b6060600061190983611e32565b90508067ffffffffffffffff81111561192457611924612a18565b60405190808252806020026020018201604052801561194d578160200160208202803683370190505b50915060005b818110156112da576119658482611e3d565b60001c83828151811061197a5761197a6129a7565b60209081029190910101528061198f81612a47565b915050611953565b60606119a88263ffffffff16611e49565b6040516020016119b89190612c0d565b6040516020818303038152906040529050919050565b60006119dd6020828486612c52565b610b9491612c7c565b60006119dd604060208486612c52565b36600061103a8360408187612c52565b6040517fba0876520000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff85811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063ba087652906064016020604051808303816000875af1158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a52919061298e565b6000610b948383611f07565b63ffffffff8116600090815260ca6020526040902054606090610b0e90611f24565b610b7d838383611f42565b600054610100900460ff16611b95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b610b26611f5f565b600080611ba9866112e1565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611c2690899085908a908a908a90600401612bad565b602060405180830381865afa158015611c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611810919061298e565b6000610b948383611fff565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610b7d908590612017565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003611d6057838281611d5657611d56612b51565b0492505050610b94565b808411611dc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f77000000000000000000000060448201526064016106ab565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000610b0e82612126565b6000610b948383612130565b60606000611e568361215a565b600101905060008167ffffffffffffffff811115611e7657611e76612a18565b6040519080825280601f01601f191660200182016040528015611ea0576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611eaa57509392505050565b60008181526002830160205260408120819055610b94838361223c565b6060610b0e6000833360405180602001604052806000815250612248565b60008281526002840160205260408120829055610b91848461227d565b600054610100900460ff16611ff6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b610b26336113d0565b60008181526001830160205260408120541515610b94565b6000612079826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122899092919063ffffffff16565b905080516000148061209a57508080602001905181019061209a9190612b00565b610c20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106ab565b6000610b0e825490565b6000826000018281548110612147576121476129a7565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106121a3577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106121cf576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106121ed57662386f26fc10000830492506010015b6305f5e1008310612205576305f5e100830492506008015b612710831061221957612710830492506004015b6064831061222b576064830492506002015b600a8310610b0e5760010192915050565b6000610b948383612298565b6060600185858585604051602001612264959493929190612cb8565b6040516020818303038152906040529050949350505050565b6000610b94838361238b565b6060610b9184846000856123da565b600081815260018301602052604081205480156123815760006122bc600183612d3d565b85549091506000906122d090600190612d3d565b90508181146123355760008660000182815481106122f0576122f06129a7565b9060005260206000200154905080876000018481548110612313576123136129a7565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061234657612346612d50565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b0e565b6000915050610b0e565b60008181526001830160205260408120546123d257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b0e565b506000610b0e565b60608247101561246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106ab565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516124959190612d7f565b60006040518083038185875af1925050503d80600081146124d2576040519150601f19603f3d011682016040523d82523d6000602084013e6124d7565b606091505b50915091506108da87838387606083156125795782516000036125725773ffffffffffffffffffffffffffffffffffffffff85163b612572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106ab565b508161071b565b61071b838381511561258e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab9190612aed565b803573ffffffffffffffffffffffffffffffffffffffff811681146125e657600080fd5b919050565b6000602082840312156125fd57600080fd5b610b94826125c2565b803563ffffffff811681146125e657600080fd5b60006020828403121561262c57600080fd5b610b9482612606565b6020808252825182820181905260009190848201906040850190845b8181101561267357835163ffffffff1683529284019291840191600101612651565b50909695505050505050565b6000806040838503121561269257600080fd5b61269b83612606565b946020939093013593505050565b60008083601f8401126126bb57600080fd5b50813567ffffffffffffffff8111156126d357600080fd5b60208301915083602082850101111561103f57600080fd5b60008060008060008060a0878903121561270457600080fd5b61270d87612606565b95506020870135945060408701359350606087013567ffffffffffffffff81111561273757600080fd5b61274389828a016126a9565b90945092506127569050608088016125c2565b90509295509295509295565b6000806000806060858703121561277857600080fd5b61278185612606565b935060208501359250604085013567ffffffffffffffff8111156127a457600080fd5b6127b0878288016126a9565b95989497509550505050565b60008083601f8401126127ce57600080fd5b50813567ffffffffffffffff8111156127e657600080fd5b6020830191508360208260051b850101111561103f57600080fd5b6000806020838503121561281457600080fd5b823567ffffffffffffffff81111561282b57600080fd5b612837858286016127bc565b90969095509350505050565b60008060006060848603121561285857600080fd5b61286184612606565b95602085013595506040909401359392505050565b6000806020838503121561288957600080fd5b823567ffffffffffffffff808211156128a157600080fd5b818501915085601f8301126128b557600080fd5b8135818111156128c457600080fd5b8660208260061b85010111156128d957600080fd5b60209290920196919550909350505050565b60008060006060848603121561290057600080fd5b612909846125c2565b9250612917602085016125c2565b9150612925604085016125c2565b90509250925092565b6000806000806040858703121561294457600080fd5b843567ffffffffffffffff8082111561295c57600080fd5b612968888389016127bc565b9096509450602087013591508082111561298157600080fd5b506127b0878288016127bc565b6000602082840312156129a057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610b0e57610b0e6129d6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a7857612a786129d6565b5060010190565b60005b83811015612a9a578181015183820152602001612a82565b50506000910152565b60008151808452612abb816020860160208601612a7f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610b946020830184612aa3565b600060208284031215612b1257600080fd5b81518015158114610b9457600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b83815282602082015260008251612b9e816040850160208701612a7f565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612bd260a0830186612aa3565b8281036060840152612be48186612aa3565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612c4581601f850160208701612a7f565b91909101601f0192915050565b60008085851115612c6257600080fd5b83861115612c6f57600080fd5b5050820193919092039150565b80356020831015610b0e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612d2c816056850160208701612a7f565b919091016056019695505050505050565b81810381811115610b0e57610b0e6129d6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612d91818460208701612a7f565b919091019291505056fea2646970667358221220b687b50916f79583bf829ee259234baf970823955440c2660a0216350128907e64736f6c63430008130033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "contract ERC4626";
@@ -586,7 +586,7 @@ const _abi = [
586
586
  type: "function",
587
587
  },
588
588
  ];
589
- const _bytecode = "0x6101006040523480156200001257600080fd5b50604051620030f4380380620030f483398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612dd162000323600039600081816105c701528181611066015281816110f50152818161168a015281816117610152611a5801526000818161042401528181610aa10152818161161101526116bc015260006103b00152600081816104d1015281816108fd015281816118590152611be90152612dd16000f3fe6080604052600436106101c25760003560e01c80638d3638f4116100f7578063d5438eae11610095578063f098111911610064578063f098111914610560578063f2ed8c5314610575578063f2fde38b14610595578063fbfa77cf146105b557600080fd5b8063d5438eae146104bf578063de523cf3146104f3578063e9198bf914610520578063efae508a1461054057600080fd5b8063aaf5eb68116100d1578063aaf5eb6814610446578063b1bd64361461045f578063b49c53a71461047f578063c0c53b8b1461049f57600080fd5b80638d3638f41461039e5780638da5cb5b146103e7578063996c6cc31461041257600080fd5b806356d5d4751161016457806371a15b381161013e57806371a15b38146102ec578063775313a11461030c5780637f5a7c7b1461033957806381b4e8b41461038b57600080fd5b806356d5d475146102a457806370a08231146102b7578063715018a6146102d757600080fd5b806342904642116101a0578063429046421461023c578063440df4f41461024f57806349d462ef1461027157806351debffc1461029157600080fd5b80630e72cc06146101c75780632ead72f6146101e95780633dfd38731461021c575b600080fd5b3480156101d357600080fd5b506101e76101e23660046125eb565b6105e9565b005b3480156101f557600080fd5b5061020961020436600461261a565b610704565b6040519081526020015b60405180910390f35b34801561022857600080fd5b506101e76102373660046125eb565b610723565b6101e761024a36600461261a565b610839565b34801561025b57600080fd5b50610264610860565b6040516102139190612635565b34801561027d57600080fd5b506101e761028c36600461267f565b610871565b61020961029f3660046126eb565b610893565b6101e76102b2366004612762565b6108e5565b3480156102c357600080fd5b506102096102d23660046125eb565b610a59565b3480156102e357600080fd5b506101e7610b14565b3480156102f857600080fd5b506101e7610307366004612801565b610b28565b34801561031857600080fd5b5061020961032736600461261a565b60ca6020526000908152604090205481565b34801561034557600080fd5b506065546103669073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610213565b610209610399366004612843565b610b83565b3480156103aa57600080fd5b506103d27f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610213565b3480156103f357600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610366565b34801561041e57600080fd5b506103667f000000000000000000000000000000000000000000000000000000000000000081565b34801561045257600080fd5b506102096402540be40081565b34801561046b57600080fd5b506101e761047a366004612876565b610b9b565b34801561048b57600080fd5b506101e761049a36600461267f565b610c25565b3480156104ab57600080fd5b506101e76104ba3660046128eb565b610c37565b3480156104cb57600080fd5b506103667f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ff57600080fd5b506066546103669073ffffffffffffffffffffffffffffffffffffffff1681565b34801561052c57600080fd5b506101e761053b36600461292e565b610dce565b34801561054c57600080fd5b506101e761055b36600461261a565b610ead565b34801561056c57600080fd5b50610209600181565b34801561058157600080fd5b5061020961059036600461261a565b610ec1565b3480156105a157600080fd5b506101e76105b03660046125eb565b610ef8565b3480156105c157600080fd5b506103667f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610623575073ffffffffffffffffffffffffffffffffffffffff8116155b6106b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106bc610fac565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061071b609763ffffffff8086169061102d16565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b15158061075d575073ffffffffffffffffffffffffffffffffffffffff8116155b6107e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016106ab565b6107f1610fac565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61085c81600160001b600034604051806020016040528060008152506000611046565b5050565b606061086c6097611226565b905090565b610879610fac565b63ffffffff91909116600090815260ca6020526040902055565b60006108da8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611046915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146109aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016106ab565b60006109b5856112e1565b9050838114610a46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016106ab565b610a5285858585611346565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e919061298e565b92915050565b610b1c610fac565b610b2660006113d0565b565b610b30610fac565b8060005b81811015610b7d57610b6b848483818110610b5157610b516129a7565b9050602002016020810190610b66919061261a565b611447565b610b76600182612a05565b9050610b34565b50505050565b6000610b918484843461149c565b90505b9392505050565b610ba3610fac565b60005b81811015610c2057610c0e838383818110610bc357610bc36129a7565b610bd9926020604090920201908101915061261a565b848484818110610beb57610beb6129a7565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610c19600182612a05565b9050610ba6565b505050565b610c2d610fac565b61085c82826114d5565b600054610100900460ff1615808015610c575750600054600160ff909116105b80610c715750303b158015610c71575060005460ff166001145b610cfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106ab565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610d5b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610d668484846114eb565b8015610b7d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b610dd6610fac565b828114610e3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016106ab565b8260005b81811015610ea557610e93868683818110610e6057610e606129a7565b9050602002016020810190610e75919061261a565b858584818110610e8757610e876129a7565b905060200201356114d5565b610e9e600182612a05565b9050610e43565b505050505050565b610eb5610fac565b610ebe81611447565b50565b604080516020810190915260008082526065549091610b0e9184919073ffffffffffffffffffffffffffffffffffffffff166115a5565b610f00610fac565b73ffffffffffffffffffffffffffffffffffffffff8116610fa3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106ab565b610ebe816113d0565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ab565b60008061103a84846115bb565b915091505b9250929050565b6000611051856115f5565b50600061105d8661164d565b905060006111917f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f3919061298e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561115e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611182919061298e565b6402540be400919060006117bf565b90506000816040516020016111a891815260200190565b604051602081830303815290604052905060006111c68a858461181a565b90506111d58b89838a8a611849565b9450898b63ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8660405161121091815260200190565b60405180910390a3505050509695505050505050565b60606000611233836118fc565b9050805167ffffffffffffffff81111561124f5761124f612a18565b604051908082528060200260200182016040528015611278578160200160208202803683370190505b50915060005b81518110156112da57818181518110611299576112996129a7565b60200260200101518382815181106112b3576112b36129a7565b63ffffffff90921660209283029190910190910152806112d281612a47565b91505061127e565b5050919050565b600080806112f9609763ffffffff8087169061102d16565b91509150811561130a579392505050565b61131384611997565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab9190612aed565b600061135283836119ce565b9050600061136084846119e6565b905036600061136f86866119f6565b9150915061138561137d8590565b848484611a06565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6856040516113be91815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61145b609763ffffffff80841690611ac516565b61146482611997565b9061085c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab9190612aed565b60006114cc858585856114ae8a611ad1565b60655473ffffffffffffffffffffffffffffffffffffffff16611046565b95945050505050565b61085c609763ffffffff808516908490611af316565b600054610100900460ff16611582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b61158a611afe565b61159383610723565b61159c826105e9565b610c20816113d0565b6000610b9184846115b587611ad1565b85611b9d565b60008181526002830160205260408120548190806115ea576115dd8585611c67565b92506000915061103f9050565b60019250905061103f565b606061163973ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085611c73565b505060408051602081019091526000815290565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af1158015611707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172b9190612b00565b506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018390523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015610aea573d6000803e3d6000fd5b6000806117cd868686611d08565b905060018360028111156117e3576117e3612b22565b1480156118005750600084806117fb576117fb612b51565b868809115b156114cc57611810600182612a05565b9695505050505050565b606083838360405160200161183193929190612b80565b60405160208183030381529060405290509392505050565b600080611855876112e1565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b81526004016118b9959493929190612bad565b60206040518083038185885af11580156118d7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108da919061298e565b6060600061190983611e32565b90508067ffffffffffffffff81111561192457611924612a18565b60405190808252806020026020018201604052801561194d578160200160208202803683370190505b50915060005b818110156112da576119658482611e3d565b60001c83828151811061197a5761197a6129a7565b60209081029190910101528061198f81612a47565b915050611953565b60606119a88263ffffffff16611e49565b6040516020016119b89190612c0d565b6040516020818303038152906040529050919050565b60006119dd6020828486612c52565b610b9491612c7c565b60006119dd604060208486612c52565b36600061103a8360408187612c52565b6040517fba0876520000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff85811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063ba087652906064016020604051808303816000875af1158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a52919061298e565b6000610b948383611f07565b63ffffffff8116600090815260ca6020526040902054606090610b0e90611f24565b610b7d838383611f42565b600054610100900460ff16611b95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b610b26611f5f565b600080611ba9866112e1565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611c2690899085908a908a908a90600401612bad565b602060405180830381865afa158015611c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611810919061298e565b6000610b948383611fff565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610b7d908590612017565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003611d6057838281611d5657611d56612b51565b0492505050610b94565b808411611dc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f77000000000000000000000060448201526064016106ab565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000610b0e82612126565b6000610b948383612130565b60606000611e568361215a565b600101905060008167ffffffffffffffff811115611e7657611e76612a18565b6040519080825280601f01601f191660200182016040528015611ea0576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611eaa57509392505050565b60008181526002830160205260408120819055610b94838361223c565b6060610b0e6000833360405180602001604052806000815250612248565b60008281526002840160205260408120829055610b91848461227d565b600054610100900460ff16611ff6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b610b26336113d0565b60008181526001830160205260408120541515610b94565b6000612079826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122899092919063ffffffff16565b905080516000148061209a57508080602001905181019061209a9190612b00565b610c20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106ab565b6000610b0e825490565b6000826000018281548110612147576121476129a7565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106121a3577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106121cf576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106121ed57662386f26fc10000830492506010015b6305f5e1008310612205576305f5e100830492506008015b612710831061221957612710830492506004015b6064831061222b576064830492506002015b600a8310610b0e5760010192915050565b6000610b948383612298565b6060600185858585604051602001612264959493929190612cb8565b6040516020818303038152906040529050949350505050565b6000610b94838361238b565b6060610b9184846000856123da565b600081815260018301602052604081205480156123815760006122bc600183612d3d565b85549091506000906122d090600190612d3d565b90508181146123355760008660000182815481106122f0576122f06129a7565b9060005260206000200154905080876000018481548110612313576123136129a7565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061234657612346612d50565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b0e565b6000915050610b0e565b60008181526001830160205260408120546123d257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b0e565b506000610b0e565b60608247101561246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106ab565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516124959190612d7f565b60006040518083038185875af1925050503d80600081146124d2576040519150601f19603f3d011682016040523d82523d6000602084013e6124d7565b606091505b50915091506108da87838387606083156125795782516000036125725773ffffffffffffffffffffffffffffffffffffffff85163b612572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106ab565b508161071b565b61071b838381511561258e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab9190612aed565b803573ffffffffffffffffffffffffffffffffffffffff811681146125e657600080fd5b919050565b6000602082840312156125fd57600080fd5b610b94826125c2565b803563ffffffff811681146125e657600080fd5b60006020828403121561262c57600080fd5b610b9482612606565b6020808252825182820181905260009190848201906040850190845b8181101561267357835163ffffffff1683529284019291840191600101612651565b50909695505050505050565b6000806040838503121561269257600080fd5b61269b83612606565b946020939093013593505050565b60008083601f8401126126bb57600080fd5b50813567ffffffffffffffff8111156126d357600080fd5b60208301915083602082850101111561103f57600080fd5b60008060008060008060a0878903121561270457600080fd5b61270d87612606565b95506020870135945060408701359350606087013567ffffffffffffffff81111561273757600080fd5b61274389828a016126a9565b90945092506127569050608088016125c2565b90509295509295509295565b6000806000806060858703121561277857600080fd5b61278185612606565b935060208501359250604085013567ffffffffffffffff8111156127a457600080fd5b6127b0878288016126a9565b95989497509550505050565b60008083601f8401126127ce57600080fd5b50813567ffffffffffffffff8111156127e657600080fd5b6020830191508360208260051b850101111561103f57600080fd5b6000806020838503121561281457600080fd5b823567ffffffffffffffff81111561282b57600080fd5b612837858286016127bc565b90969095509350505050565b60008060006060848603121561285857600080fd5b61286184612606565b95602085013595506040909401359392505050565b6000806020838503121561288957600080fd5b823567ffffffffffffffff808211156128a157600080fd5b818501915085601f8301126128b557600080fd5b8135818111156128c457600080fd5b8660208260061b85010111156128d957600080fd5b60209290920196919550909350505050565b60008060006060848603121561290057600080fd5b612909846125c2565b9250612917602085016125c2565b9150612925604085016125c2565b90509250925092565b6000806000806040858703121561294457600080fd5b843567ffffffffffffffff8082111561295c57600080fd5b612968888389016127bc565b9096509450602087013591508082111561298157600080fd5b506127b0878288016127bc565b6000602082840312156129a057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610b0e57610b0e6129d6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a7857612a786129d6565b5060010190565b60005b83811015612a9a578181015183820152602001612a82565b50506000910152565b60008151808452612abb816020860160208601612a7f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610b946020830184612aa3565b600060208284031215612b1257600080fd5b81518015158114610b9457600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b83815282602082015260008251612b9e816040850160208701612a7f565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612bd260a0830186612aa3565b8281036060840152612be48186612aa3565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612c4581601f850160208701612a7f565b91909101601f0192915050565b60008085851115612c6257600080fd5b83861115612c6f57600080fd5b5050820193919092039150565b80356020831015610b0e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612d2c816056850160208701612a7f565b919091016056019695505050505050565b81810381811115610b0e57610b0e6129d6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612d91818460208701612a7f565b919091019291505056fea2646970667358221220fbc4ce91685fd35632311595d7bd695a84a94d2580196b491fa61ef4f92c5daf64736f6c63430008130033";
589
+ const _bytecode = "0x6101006040523480156200001257600080fd5b50604051620030f4380380620030f483398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612dd162000323600039600081816105c701528181611066015281816110f50152818161168a015281816117610152611a5801526000818161042401528181610aa10152818161161101526116bc015260006103b00152600081816104d1015281816108fd015281816118590152611be90152612dd16000f3fe6080604052600436106101c25760003560e01c80638d3638f4116100f7578063d5438eae11610095578063f098111911610064578063f098111914610560578063f2ed8c5314610575578063f2fde38b14610595578063fbfa77cf146105b557600080fd5b8063d5438eae146104bf578063de523cf3146104f3578063e9198bf914610520578063efae508a1461054057600080fd5b8063aaf5eb68116100d1578063aaf5eb6814610446578063b1bd64361461045f578063b49c53a71461047f578063c0c53b8b1461049f57600080fd5b80638d3638f41461039e5780638da5cb5b146103e7578063996c6cc31461041257600080fd5b806356d5d4751161016457806371a15b381161013e57806371a15b38146102ec578063775313a11461030c5780637f5a7c7b1461033957806381b4e8b41461038b57600080fd5b806356d5d475146102a457806370a08231146102b7578063715018a6146102d757600080fd5b806342904642116101a0578063429046421461023c578063440df4f41461024f57806349d462ef1461027157806351debffc1461029157600080fd5b80630e72cc06146101c75780632ead72f6146101e95780633dfd38731461021c575b600080fd5b3480156101d357600080fd5b506101e76101e23660046125eb565b6105e9565b005b3480156101f557600080fd5b5061020961020436600461261a565b610704565b6040519081526020015b60405180910390f35b34801561022857600080fd5b506101e76102373660046125eb565b610723565b6101e761024a36600461261a565b610839565b34801561025b57600080fd5b50610264610860565b6040516102139190612635565b34801561027d57600080fd5b506101e761028c36600461267f565b610871565b61020961029f3660046126eb565b610893565b6101e76102b2366004612762565b6108e5565b3480156102c357600080fd5b506102096102d23660046125eb565b610a59565b3480156102e357600080fd5b506101e7610b14565b3480156102f857600080fd5b506101e7610307366004612801565b610b28565b34801561031857600080fd5b5061020961032736600461261a565b60ca6020526000908152604090205481565b34801561034557600080fd5b506065546103669073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610213565b610209610399366004612843565b610b83565b3480156103aa57600080fd5b506103d27f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610213565b3480156103f357600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610366565b34801561041e57600080fd5b506103667f000000000000000000000000000000000000000000000000000000000000000081565b34801561045257600080fd5b506102096402540be40081565b34801561046b57600080fd5b506101e761047a366004612876565b610b9b565b34801561048b57600080fd5b506101e761049a36600461267f565b610c25565b3480156104ab57600080fd5b506101e76104ba3660046128eb565b610c37565b3480156104cb57600080fd5b506103667f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ff57600080fd5b506066546103669073ffffffffffffffffffffffffffffffffffffffff1681565b34801561052c57600080fd5b506101e761053b36600461292e565b610dce565b34801561054c57600080fd5b506101e761055b36600461261a565b610ead565b34801561056c57600080fd5b50610209600181565b34801561058157600080fd5b5061020961059036600461261a565b610ec1565b3480156105a157600080fd5b506101e76105b03660046125eb565b610ef8565b3480156105c157600080fd5b506103667f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610623575073ffffffffffffffffffffffffffffffffffffffff8116155b6106b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106bc610fac565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008061071b609763ffffffff8086169061102d16565b949350505050565b8073ffffffffffffffffffffffffffffffffffffffff81163b15158061075d575073ffffffffffffffffffffffffffffffffffffffff8116155b6107e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084016106ab565b6107f1610fac565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61085c81600160001b600034604051806020016040528060008152506000611046565b5050565b606061086c6097611226565b905090565b610879610fac565b63ffffffff91909116600090815260ca6020526040902055565b60006108da8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611046915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146109aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f780000000000000000000000000000000000000000000000000000000000000060648201526084016106ab565b60006109b5856112e1565b9050838114610a46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e64657200000000000000000000000000000000000000000000000000000060648201526084016106ab565b610a5285858585611346565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610aea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0e919061298e565b92915050565b610b1c610fac565b610b2660006113d0565b565b610b30610fac565b8060005b81811015610b7d57610b6b848483818110610b5157610b516129a7565b9050602002016020810190610b66919061261a565b611447565b610b76600182612a05565b9050610b34565b50505050565b6000610b918484843461149c565b90505b9392505050565b610ba3610fac565b60005b81811015610c2057610c0e838383818110610bc357610bc36129a7565b610bd9926020604090920201908101915061261a565b848484818110610beb57610beb6129a7565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610c19600182612a05565b9050610ba6565b505050565b610c2d610fac565b61085c82826114d5565b600054610100900460ff1615808015610c575750600054600160ff909116105b80610c715750303b158015610c71575060005460ff166001145b610cfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106ab565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610d5b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610d668484846114eb565b8015610b7d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b610dd6610fac565b828114610e3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016106ab565b8260005b81811015610ea557610e93868683818110610e6057610e606129a7565b9050602002016020810190610e75919061261a565b858584818110610e8757610e876129a7565b905060200201356114d5565b610e9e600182612a05565b9050610e43565b505050505050565b610eb5610fac565b610ebe81611447565b50565b604080516020810190915260008082526065549091610b0e9184919073ffffffffffffffffffffffffffffffffffffffff166115a5565b610f00610fac565b73ffffffffffffffffffffffffffffffffffffffff8116610fa3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106ab565b610ebe816113d0565b60335473ffffffffffffffffffffffffffffffffffffffff163314610b26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ab565b60008061103a84846115bb565b915091505b9250929050565b6000611051856115f5565b50600061105d8661164d565b905060006111917f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166301e1d1146040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f3919061298e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561115e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611182919061298e565b6402540be400919060006117bf565b90506000816040516020016111a891815260200190565b604051602081830303815290604052905060006111c68a858461181a565b90506111d58b89838a8a611849565b9450898b63ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec8660405161121091815260200190565b60405180910390a3505050509695505050505050565b60606000611233836118fc565b9050805167ffffffffffffffff81111561124f5761124f612a18565b604051908082528060200260200182016040528015611278578160200160208202803683370190505b50915060005b81518110156112da57818181518110611299576112996129a7565b60200260200101518382815181106112b3576112b36129a7565b63ffffffff90921660209283029190910190910152806112d281612a47565b91505061127e565b5050919050565b600080806112f9609763ffffffff8087169061102d16565b91509150811561130a579392505050565b61131384611997565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab9190612aed565b600061135283836119ce565b9050600061136084846119e6565b905036600061136f86866119f6565b9150915061138561137d8590565b848484611a06565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6856040516113be91815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61145b609763ffffffff80841690611ac516565b61146482611997565b9061085c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab9190612aed565b60006114cc858585856114ae8a611ad1565b60655473ffffffffffffffffffffffffffffffffffffffff16611046565b95945050505050565b61085c609763ffffffff808516908490611af316565b600054610100900460ff16611582576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b61158a611afe565b61159383610723565b61159c826105e9565b610c20816113d0565b6000610b9184846115b587611ad1565b85611b9d565b60008181526002830160205260408120548190806115ea576115dd8585611c67565b92506000915061103f9050565b60019250905061103f565b606061163973ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085611c73565b505060408051602081019091526000815290565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af1158015611707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172b9190612b00565b506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018390523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015610aea573d6000803e3d6000fd5b6000806117cd868686611d08565b905060018360028111156117e3576117e3612b22565b1480156118005750600084806117fb576117fb612b51565b868809115b156114cc57611810600182612a05565b9695505050505050565b606083838360405160200161183193929190612b80565b60405160208183030381529060405290509392505050565b600080611855876112e1565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b81526004016118b9959493929190612bad565b60206040518083038185885af11580156118d7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108da919061298e565b6060600061190983611e32565b90508067ffffffffffffffff81111561192457611924612a18565b60405190808252806020026020018201604052801561194d578160200160208202803683370190505b50915060005b818110156112da576119658482611e3d565b60001c83828151811061197a5761197a6129a7565b60209081029190910101528061198f81612a47565b915050611953565b60606119a88263ffffffff16611e49565b6040516020016119b89190612c0d565b6040516020818303038152906040529050919050565b60006119dd6020828486612c52565b610b9491612c7c565b60006119dd604060208486612c52565b36600061103a8360408187612c52565b6040517fba0876520000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff85811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063ba087652906064016020604051808303816000875af1158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a52919061298e565b6000610b948383611f07565b63ffffffff8116600090815260ca6020526040902054606090610b0e90611f24565b610b7d838383611f42565b600054610100900460ff16611b95576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b610b26611f5f565b600080611ba9866112e1565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611c2690899085908a908a908a90600401612bad565b602060405180830381865afa158015611c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611810919061298e565b6000610b948383611fff565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610b7d908590612017565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003611d6057838281611d5657611d56612b51565b0492505050610b94565b808411611dc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f77000000000000000000000060448201526064016106ab565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000610b0e82612126565b6000610b948383612130565b60606000611e568361215a565b600101905060008167ffffffffffffffff811115611e7657611e76612a18565b6040519080825280601f01601f191660200182016040528015611ea0576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611eaa57509392505050565b60008181526002830160205260408120819055610b94838361223c565b6060610b0e6000833360405180602001604052806000815250612248565b60008281526002840160205260408120829055610b91848461227d565b600054610100900460ff16611ff6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b610b26336113d0565b60008181526001830160205260408120541515610b94565b6000612079826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166122899092919063ffffffff16565b905080516000148061209a57508080602001905181019061209a9190612b00565b610c20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106ab565b6000610b0e825490565b6000826000018281548110612147576121476129a7565b9060005260206000200154905092915050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106121a3577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106121cf576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106121ed57662386f26fc10000830492506010015b6305f5e1008310612205576305f5e100830492506008015b612710831061221957612710830492506004015b6064831061222b576064830492506002015b600a8310610b0e5760010192915050565b6000610b948383612298565b6060600185858585604051602001612264959493929190612cb8565b6040516020818303038152906040529050949350505050565b6000610b94838361238b565b6060610b9184846000856123da565b600081815260018301602052604081205480156123815760006122bc600183612d3d565b85549091506000906122d090600190612d3d565b90508181146123355760008660000182815481106122f0576122f06129a7565b9060005260206000200154905080876000018481548110612313576123136129a7565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061234657612346612d50565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b0e565b6000915050610b0e565b60008181526001830160205260408120546123d257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b0e565b506000610b0e565b60608247101561246c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106ab565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516124959190612d7f565b60006040518083038185875af1925050503d80600081146124d2576040519150601f19603f3d011682016040523d82523d6000602084013e6124d7565b606091505b50915091506108da87838387606083156125795782516000036125725773ffffffffffffffffffffffffffffffffffffffff85163b612572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106ab565b508161071b565b61071b838381511561258e5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab9190612aed565b803573ffffffffffffffffffffffffffffffffffffffff811681146125e657600080fd5b919050565b6000602082840312156125fd57600080fd5b610b94826125c2565b803563ffffffff811681146125e657600080fd5b60006020828403121561262c57600080fd5b610b9482612606565b6020808252825182820181905260009190848201906040850190845b8181101561267357835163ffffffff1683529284019291840191600101612651565b50909695505050505050565b6000806040838503121561269257600080fd5b61269b83612606565b946020939093013593505050565b60008083601f8401126126bb57600080fd5b50813567ffffffffffffffff8111156126d357600080fd5b60208301915083602082850101111561103f57600080fd5b60008060008060008060a0878903121561270457600080fd5b61270d87612606565b95506020870135945060408701359350606087013567ffffffffffffffff81111561273757600080fd5b61274389828a016126a9565b90945092506127569050608088016125c2565b90509295509295509295565b6000806000806060858703121561277857600080fd5b61278185612606565b935060208501359250604085013567ffffffffffffffff8111156127a457600080fd5b6127b0878288016126a9565b95989497509550505050565b60008083601f8401126127ce57600080fd5b50813567ffffffffffffffff8111156127e657600080fd5b6020830191508360208260051b850101111561103f57600080fd5b6000806020838503121561281457600080fd5b823567ffffffffffffffff81111561282b57600080fd5b612837858286016127bc565b90969095509350505050565b60008060006060848603121561285857600080fd5b61286184612606565b95602085013595506040909401359392505050565b6000806020838503121561288957600080fd5b823567ffffffffffffffff808211156128a157600080fd5b818501915085601f8301126128b557600080fd5b8135818111156128c457600080fd5b8660208260061b85010111156128d957600080fd5b60209290920196919550909350505050565b60008060006060848603121561290057600080fd5b612909846125c2565b9250612917602085016125c2565b9150612925604085016125c2565b90509250925092565b6000806000806040858703121561294457600080fd5b843567ffffffffffffffff8082111561295c57600080fd5b612968888389016127bc565b9096509450602087013591508082111561298157600080fd5b506127b0878288016127bc565b6000602082840312156129a057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610b0e57610b0e6129d6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a7857612a786129d6565b5060010190565b60005b83811015612a9a578181015183820152602001612a82565b50506000910152565b60008151808452612abb816020860160208601612a7f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610b946020830184612aa3565b600060208284031215612b1257600080fd5b81518015158114610b9457600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b83815282602082015260008251612b9e816040850160208701612a7f565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612bd260a0830186612aa3565b8281036060840152612be48186612aa3565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612c4581601f850160208701612a7f565b91909101601f0192915050565b60008085851115612c6257600080fd5b83861115612c6f57600080fd5b5050820193919092039150565b80356020831015610b0e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612d2c816056850160208701612a7f565b919091016056019695505050505050565b81810381811115610b0e57610b0e6129d6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612d91818460208701612a7f565b919091019291505056fea2646970667358221220b687b50916f79583bf829ee259234baf970823955440c2660a0216350128907e64736f6c63430008130033";
590
590
  const isSuperArgs = (xs) => xs.length > 1;
591
591
  export class HypERC4626Collateral__factory extends ContractFactory {
592
592
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class HypERC4626OwnerCollateral__factory extends ContractFactory
12
12
  }): TransactionRequest;
13
13
  attach(address: string): HypERC4626OwnerCollateral;
14
14
  connect(signer: Signer): HypERC4626OwnerCollateral__factory;
15
- static readonly bytecode = "0x6101006040523480156200001257600080fd5b50604051620030203803806200302083398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612cf66200032a600039600081816105a60152818161074d015281816107f3015281816108830152818161100001528181611c7a0152611e2301526000818161043101528181610d130152818161104e0152611bf2015260006103bd0152600081816104c501528181610b6f015281816118e40152611b2b0152612cf66000f3fe6080604052600436106101b75760003560e01c806381b4e8b4116100ec578063d5438eae1161008a578063efae508a11610064578063efae508a14610534578063f2ed8c5314610554578063f2fde38b14610574578063fbfa77cf1461059457600080fd5b8063d5438eae146104b3578063de523cf3146104e7578063e9198bf91461051457600080fd5b8063996c6cc3116100c6578063996c6cc31461041f578063b1bd643614610453578063b49c53a714610473578063c0c53b8b1461049357600080fd5b806381b4e8b4146103985780638d3638f4146103ab5780638da5cb5b146103f457600080fd5b806351debffc11610159578063715018a611610133578063715018a6146102e457806371a15b38146102f9578063775313a1146103195780637f5a7c7b1461034657600080fd5b806351debffc1461029e57806356d5d475146102b157806370a08231146102c457600080fd5b806335faa4161161019557806335faa416146102275780633dfd38731461023c578063440df4f41461025c57806349d462ef1461027e57600080fd5b8063093bec70146101bc5780630e72cc06146101e55780632ead72f614610207575b600080fd5b3480156101c857600080fd5b506101d260cb5481565b6040519081526020015b60405180910390f35b3480156101f157600080fd5b5061020561020036600461256e565b6105c8565b005b34801561021357600080fd5b506101d261022236600461259d565b6106e3565b34801561023357600080fd5b50610205610702565b34801561024857600080fd5b5061020561025736600461256e565b6109b8565b34801561026857600080fd5b50610271610ace565b6040516101dc91906125b8565b34801561028a57600080fd5b50610205610299366004612602565b610adf565b6101d26102ac36600461266e565b610b05565b6102056102bf3660046126e5565b610b57565b3480156102d057600080fd5b506101d26102df36600461256e565b610ccb565b3480156102f057600080fd5b50610205610d86565b34801561030557600080fd5b50610205610314366004612784565b610d9a565b34801561032557600080fd5b506101d261033436600461259d565b60ca6020526000908152604090205481565b34801561035257600080fd5b506065546103739073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101dc565b6101d26103a63660046127c6565b610df5565b3480156103b757600080fd5b506103df7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101dc565b34801561040057600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610373565b34801561042b57600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b34801561045f57600080fd5b5061020561046e3660046127f9565b610e03565b34801561047f57600080fd5b5061020561048e366004612602565b610e8d565b34801561049f57600080fd5b506102056104ae36600461286e565b610e9f565b3480156104bf57600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f357600080fd5b506066546103739073ffffffffffffffffffffffffffffffffffffffff1681565b34801561052057600080fd5b5061020561052f3660046128b1565b61112f565b34801561054057600080fd5b5061020561054f36600461259d565b61120e565b34801561056057600080fd5b506101d261056f36600461259d565b611222565b34801561058057600080fd5b5061020561058f36600461256e565b611259565b3480156105a057600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610602575073ffffffffffffffffffffffffffffffffffffffff8116155b610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61069b61130d565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000806106fa609763ffffffff8086169061138e16565b949350505050565b61070a61130d565b60cb546040517fc6e6f59200000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163c6e6f592916107849160040190815260200190565b602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c59190612911565b6040517fd905777e0000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d905777e90602401602060405180830381865afa15801561084f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108739190612911565b61087d9190612959565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ba087652836108dd60335473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff1660248201523060448201526064016020604051808303816000875af1158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190612911565b60408051848152602081018390529192507fab4b80c2bee4a4a901cd94d15ad331e611f22b1fc58fb323876a8c45161569c3910160405180910390a15050565b8073ffffffffffffffffffffffffffffffffffffffff81163b1515806109f2575073ffffffffffffffffffffffffffffffffffffffff8116155b610a7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e6700000000000000000000000000000000000000000000000000606482015260840161068a565b610a8661130d565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610ada60976113a7565b905090565b610ae761130d565b63ffffffff91909116600090815260ca6020526040902055565b5050565b6000610b4c8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611462915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610c1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f7800000000000000000000000000000000000000000000000000000000000000606482015260840161068a565b6000610c27856114db565b9050838114610cb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e646572000000000000000000000000000000000000000000000000000000606482015260840161068a565b610cc485858585611540565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610d5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d809190612911565b92915050565b610d8e61130d565b610d9860006115ca565b565b610da261130d565b8060005b81811015610def57610ddd848483818110610dc357610dc361296c565b9050602002016020810190610dd8919061259d565b611641565b610de860018261299b565b9050610da6565b50505050565b60006106fa84848434611696565b610e0b61130d565b60005b81811015610e8857610e76838383818110610e2b57610e2b61296c565b610e41926020604090920201908101915061259d565b848484818110610e5357610e5361296c565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610e8160018261299b565b9050610e0e565b505050565b610e9561130d565b610b0182826116cf565b600054610100900460ff1615808015610ebf5750600054600160ff909116105b80610ed95750303b158015610ed9575060005460ff166001145b610f65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161068a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fc357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015611097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb91906129ae565b506110c78484846116e5565b8015610def57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b61113761130d565b8281146111a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e67746800000000000000000000000000000000000000000000000000604482015260640161068a565b8260005b81811015611206576111f48686838181106111c1576111c161296c565b90506020020160208101906111d6919061259d565b8585848181106111e8576111e861296c565b905060200201356116cf565b6111ff60018261299b565b90506111a4565b505050505050565b61121661130d565b61121f81611641565b50565b604080516020810190915260008082526065549091610d809184919073ffffffffffffffffffffffffffffffffffffffff1661179f565b61126161130d565b73ffffffffffffffffffffffffffffffffffffffff8116611304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161068a565b61121f816115ca565b60335473ffffffffffffffffffffffffffffffffffffffff163314610d98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161068a565b60008061139b84846117b5565b915091505b9250929050565b606060006113b4836117ef565b9050805167ffffffffffffffff8111156113d0576113d06129d0565b6040519080825280602002602001820160405280156113f9578160200160208202803683370190505b50915060005b815181101561145b5781818151811061141a5761141a61296c565b60200260200101518382815181106114345761143461296c565b63ffffffff9092166020928302919091019091015280611453816129ff565b9150506113ff565b5050919050565b60008061146e8661188a565b9050600061147d8888846118a5565b905061148c89878388886118d4565b9250878963ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec896040516114c791815260200190565b60405180910390a350509695505050505050565b600080806114f3609763ffffffff8087169061138e16565b915091508115611504579392505050565b61150d84611987565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9190612aa5565b600061154c83836119be565b9050600061155a84846119dd565b905036600061156986866119ed565b9150915061157f6115778590565b8484846119fd565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6856040516115b891815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611655609763ffffffff80841690611a0716565b61165e82611987565b90610b01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9190612aa5565b60006116c6858585856116a88a611a13565b60655473ffffffffffffffffffffffffffffffffffffffff16611462565b95945050505050565b610b01609763ffffffff808516908490611a3516565b600054610100900460ff1661177c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161068a565b611784611a40565b61178d836109b8565b611796826105c8565b610e88816115ca565b60006106fa84846117af87611a13565b85611adf565b60008181526002830160205260408120548190806117e4576117d78585611bb3565b9250600091506113a09050565b6001925090506113a0565b606060006117fc83611bbf565b90508067ffffffffffffffff811115611817576118176129d0565b604051908082528060200260200182016040528015611840578160200160208202803683370190505b50915060005b8181101561145b576118588482611bca565b60001c83828151811061186d5761186d61296c565b602090810291909101015280611882816129ff565b915050611846565b606061189582611bd6565b90506118a082611c2e565b919050565b60608383836040516020016118bc93929190612ab8565b60405160208183030381529060405290509392505050565b6000806118e0876114db565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b8152600401611944959493929190612ae5565b60206040518083038185885af1158015611962573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b4c9190612911565b60606119988263ffffffff16611cfc565b6040516020016119a89190612b45565b6040516020818303038152906040529050919050565b60006119cd6020828486612b8a565b6119d691612bb4565b9392505050565b60006119cd604060208486612b8a565b36600061139b8360408187612b8a565b610def8385611dba565b60006119d68383611e90565b63ffffffff8116600090815260ca6020526040902054606090610d8090611ead565b610def838383611ecb565b600054610100900460ff16611ad7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161068a565b610d98611ee8565b600080611aeb866114db565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611b6890899085908a908a908a90600401612ae5565b602060405180830381865afa158015611b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba99190612911565b9695505050505050565b60006119d68383611f88565b6000610d8082611fa0565b60006119d68383611faa565b6060611c1a73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085611fd4565b505060408051602081019091526000815290565b8060cb6000828254611c40919061299b565b90915550506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018290523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015611cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612911565b60606000611d0983612069565b600101905060008167ffffffffffffffff811115611d2957611d296129d0565b6040519080825280601f01601f191660200182016040528015611d53576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611d5d57509392505050565b8160cb6000828254611dcc9190612959565b90915550506040517fb460af940000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063b460af94906064016020604051808303816000875af1158015611e6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e889190612911565b600081815260028301602052604081208190556119d6838361214b565b6060610d806000833360405180602001604052806000815250612157565b600082815260028401602052604081208290556106fa848461218c565b600054610100900460ff16611f7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161068a565b610d98336115ca565b600081815260018301602052604081205415156119d6565b6000610d80825490565b6000826000018281548110611fc157611fc161296c565b9060005260206000200154905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610def908590612198565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106120b2577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106120de576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106120fc57662386f26fc10000830492506010015b6305f5e1008310612114576305f5e100830492506008015b612710831061212857612710830492506004015b6064831061213a576064830492506002015b600a8310610d805760010192915050565b60006119d683836122a7565b6060600185858585604051602001612173959493929190612bf0565b6040516020818303038152906040529050949350505050565b60006119d6838361239a565b60006121fa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123e99092919063ffffffff16565b905080516000148061221b57508080602001905181019061221b91906129ae565b610e88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161068a565b600081815260018301602052604081205480156123905760006122cb600183612959565b85549091506000906122df90600190612959565b90508181146123445760008660000182815481106122ff576122ff61296c565b90600052602060002001549050808760000184815481106123225761232261296c565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061235557612355612c75565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610d80565b6000915050610d80565b60008181526001830160205260408120546123e157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610d80565b506000610d80565b60606106fa8484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161241d9190612ca4565b60006040518083038185875af1925050503d806000811461245a576040519150601f19603f3d011682016040523d82523d6000602084013e61245f565b606091505b5091509150610b4c87838387606083156125015782516000036124fa5773ffffffffffffffffffffffffffffffffffffffff85163b6124fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161068a565b50816106fa565b6106fa83838151156125165781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9190612aa5565b803573ffffffffffffffffffffffffffffffffffffffff811681146118a057600080fd5b60006020828403121561258057600080fd5b6119d68261254a565b803563ffffffff811681146118a057600080fd5b6000602082840312156125af57600080fd5b6119d682612589565b6020808252825182820181905260009190848201906040850190845b818110156125f657835163ffffffff16835292840192918401916001016125d4565b50909695505050505050565b6000806040838503121561261557600080fd5b61261e83612589565b946020939093013593505050565b60008083601f84011261263e57600080fd5b50813567ffffffffffffffff81111561265657600080fd5b6020830191508360208285010111156113a057600080fd5b60008060008060008060a0878903121561268757600080fd5b61269087612589565b95506020870135945060408701359350606087013567ffffffffffffffff8111156126ba57600080fd5b6126c689828a0161262c565b90945092506126d990506080880161254a565b90509295509295509295565b600080600080606085870312156126fb57600080fd5b61270485612589565b935060208501359250604085013567ffffffffffffffff81111561272757600080fd5b6127338782880161262c565b95989497509550505050565b60008083601f84011261275157600080fd5b50813567ffffffffffffffff81111561276957600080fd5b6020830191508360208260051b85010111156113a057600080fd5b6000806020838503121561279757600080fd5b823567ffffffffffffffff8111156127ae57600080fd5b6127ba8582860161273f565b90969095509350505050565b6000806000606084860312156127db57600080fd5b6127e484612589565b95602085013595506040909401359392505050565b6000806020838503121561280c57600080fd5b823567ffffffffffffffff8082111561282457600080fd5b818501915085601f83011261283857600080fd5b81358181111561284757600080fd5b8660208260061b850101111561285c57600080fd5b60209290920196919550909350505050565b60008060006060848603121561288357600080fd5b61288c8461254a565b925061289a6020850161254a565b91506128a86040850161254a565b90509250925092565b600080600080604085870312156128c757600080fd5b843567ffffffffffffffff808211156128df57600080fd5b6128eb8883890161273f565b9096509450602087013591508082111561290457600080fd5b506127338782880161273f565b60006020828403121561292357600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610d8057610d8061292a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80820180821115610d8057610d8061292a565b6000602082840312156129c057600080fd5b815180151581146119d657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a3057612a3061292a565b5060010190565b60005b83811015612a52578181015183820152602001612a3a565b50506000910152565b60008151808452612a73816020860160208601612a37565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006119d66020830184612a5b565b83815282602082015260008251612ad6816040850160208701612a37565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612b0a60a0830186612a5b565b8281036060840152612b1c8186612a5b565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612b7d81601f850160208701612a37565b91909101601f0192915050565b60008085851115612b9a57600080fd5b83861115612ba757600080fd5b5050820193919092039150565b80356020831015610d80577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612c64816056850160208701612a37565b919091016056019695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612cb6818460208701612a37565b919091019291505056fea2646970667358221220c72b2082830a0b42bef9ee865cad06cd78c00d558958fb11b009e0cd43466d0e64736f6c63430008130033";
15
+ static readonly bytecode = "0x6101006040523480156200001257600080fd5b50604051620030203803806200302083398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612cf66200032a600039600081816105a60152818161074d015281816107f3015281816108830152818161100001528181611c7a0152611e2301526000818161043101528181610d130152818161104e0152611bf2015260006103bd0152600081816104c501528181610b6f015281816118e40152611b2b0152612cf66000f3fe6080604052600436106101b75760003560e01c806381b4e8b4116100ec578063d5438eae1161008a578063efae508a11610064578063efae508a14610534578063f2ed8c5314610554578063f2fde38b14610574578063fbfa77cf1461059457600080fd5b8063d5438eae146104b3578063de523cf3146104e7578063e9198bf91461051457600080fd5b8063996c6cc3116100c6578063996c6cc31461041f578063b1bd643614610453578063b49c53a714610473578063c0c53b8b1461049357600080fd5b806381b4e8b4146103985780638d3638f4146103ab5780638da5cb5b146103f457600080fd5b806351debffc11610159578063715018a611610133578063715018a6146102e457806371a15b38146102f9578063775313a1146103195780637f5a7c7b1461034657600080fd5b806351debffc1461029e57806356d5d475146102b157806370a08231146102c457600080fd5b806335faa4161161019557806335faa416146102275780633dfd38731461023c578063440df4f41461025c57806349d462ef1461027e57600080fd5b8063093bec70146101bc5780630e72cc06146101e55780632ead72f614610207575b600080fd5b3480156101c857600080fd5b506101d260cb5481565b6040519081526020015b60405180910390f35b3480156101f157600080fd5b5061020561020036600461256e565b6105c8565b005b34801561021357600080fd5b506101d261022236600461259d565b6106e3565b34801561023357600080fd5b50610205610702565b34801561024857600080fd5b5061020561025736600461256e565b6109b8565b34801561026857600080fd5b50610271610ace565b6040516101dc91906125b8565b34801561028a57600080fd5b50610205610299366004612602565b610adf565b6101d26102ac36600461266e565b610b05565b6102056102bf3660046126e5565b610b57565b3480156102d057600080fd5b506101d26102df36600461256e565b610ccb565b3480156102f057600080fd5b50610205610d86565b34801561030557600080fd5b50610205610314366004612784565b610d9a565b34801561032557600080fd5b506101d261033436600461259d565b60ca6020526000908152604090205481565b34801561035257600080fd5b506065546103739073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101dc565b6101d26103a63660046127c6565b610df5565b3480156103b757600080fd5b506103df7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101dc565b34801561040057600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610373565b34801561042b57600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b34801561045f57600080fd5b5061020561046e3660046127f9565b610e03565b34801561047f57600080fd5b5061020561048e366004612602565b610e8d565b34801561049f57600080fd5b506102056104ae36600461286e565b610e9f565b3480156104bf57600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f357600080fd5b506066546103739073ffffffffffffffffffffffffffffffffffffffff1681565b34801561052057600080fd5b5061020561052f3660046128b1565b61112f565b34801561054057600080fd5b5061020561054f36600461259d565b61120e565b34801561056057600080fd5b506101d261056f36600461259d565b611222565b34801561058057600080fd5b5061020561058f36600461256e565b611259565b3480156105a057600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610602575073ffffffffffffffffffffffffffffffffffffffff8116155b610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61069b61130d565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000806106fa609763ffffffff8086169061138e16565b949350505050565b61070a61130d565b60cb546040517fc6e6f59200000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163c6e6f592916107849160040190815260200190565b602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c59190612911565b6040517fd905777e0000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d905777e90602401602060405180830381865afa15801561084f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108739190612911565b61087d9190612959565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ba087652836108dd60335473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff1660248201523060448201526064016020604051808303816000875af1158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190612911565b60408051848152602081018390529192507fab4b80c2bee4a4a901cd94d15ad331e611f22b1fc58fb323876a8c45161569c3910160405180910390a15050565b8073ffffffffffffffffffffffffffffffffffffffff81163b1515806109f2575073ffffffffffffffffffffffffffffffffffffffff8116155b610a7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e6700000000000000000000000000000000000000000000000000606482015260840161068a565b610a8661130d565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610ada60976113a7565b905090565b610ae761130d565b63ffffffff91909116600090815260ca6020526040902055565b5050565b6000610b4c8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611462915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610c1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f7800000000000000000000000000000000000000000000000000000000000000606482015260840161068a565b6000610c27856114db565b9050838114610cb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e646572000000000000000000000000000000000000000000000000000000606482015260840161068a565b610cc485858585611540565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610d5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d809190612911565b92915050565b610d8e61130d565b610d9860006115ca565b565b610da261130d565b8060005b81811015610def57610ddd848483818110610dc357610dc361296c565b9050602002016020810190610dd8919061259d565b611641565b610de860018261299b565b9050610da6565b50505050565b60006106fa84848434611696565b610e0b61130d565b60005b81811015610e8857610e76838383818110610e2b57610e2b61296c565b610e41926020604090920201908101915061259d565b848484818110610e5357610e5361296c565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610e8160018261299b565b9050610e0e565b505050565b610e9561130d565b610b0182826116cf565b600054610100900460ff1615808015610ebf5750600054600160ff909116105b80610ed95750303b158015610ed9575060005460ff166001145b610f65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161068a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fc357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015611097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb91906129ae565b506110c78484846116e5565b8015610def57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b61113761130d565b8281146111a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e67746800000000000000000000000000000000000000000000000000604482015260640161068a565b8260005b81811015611206576111f48686838181106111c1576111c161296c565b90506020020160208101906111d6919061259d565b8585848181106111e8576111e861296c565b905060200201356116cf565b6111ff60018261299b565b90506111a4565b505050505050565b61121661130d565b61121f81611641565b50565b604080516020810190915260008082526065549091610d809184919073ffffffffffffffffffffffffffffffffffffffff1661179f565b61126161130d565b73ffffffffffffffffffffffffffffffffffffffff8116611304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161068a565b61121f816115ca565b60335473ffffffffffffffffffffffffffffffffffffffff163314610d98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161068a565b60008061139b84846117b5565b915091505b9250929050565b606060006113b4836117ef565b9050805167ffffffffffffffff8111156113d0576113d06129d0565b6040519080825280602002602001820160405280156113f9578160200160208202803683370190505b50915060005b815181101561145b5781818151811061141a5761141a61296c565b60200260200101518382815181106114345761143461296c565b63ffffffff9092166020928302919091019091015280611453816129ff565b9150506113ff565b5050919050565b60008061146e8661188a565b9050600061147d8888846118a5565b905061148c89878388886118d4565b9250878963ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec896040516114c791815260200190565b60405180910390a350509695505050505050565b600080806114f3609763ffffffff8087169061138e16565b915091508115611504579392505050565b61150d84611987565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9190612aa5565b600061154c83836119be565b9050600061155a84846119dd565b905036600061156986866119ed565b9150915061157f6115778590565b8484846119fd565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6856040516115b891815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611655609763ffffffff80841690611a0716565b61165e82611987565b90610b01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9190612aa5565b60006116c6858585856116a88a611a13565b60655473ffffffffffffffffffffffffffffffffffffffff16611462565b95945050505050565b610b01609763ffffffff808516908490611a3516565b600054610100900460ff1661177c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161068a565b611784611a40565b61178d836109b8565b611796826105c8565b610e88816115ca565b60006106fa84846117af87611a13565b85611adf565b60008181526002830160205260408120548190806117e4576117d78585611bb3565b9250600091506113a09050565b6001925090506113a0565b606060006117fc83611bbf565b90508067ffffffffffffffff811115611817576118176129d0565b604051908082528060200260200182016040528015611840578160200160208202803683370190505b50915060005b8181101561145b576118588482611bca565b60001c83828151811061186d5761186d61296c565b602090810291909101015280611882816129ff565b915050611846565b606061189582611bd6565b90506118a082611c2e565b919050565b60608383836040516020016118bc93929190612ab8565b60405160208183030381529060405290509392505050565b6000806118e0876114db565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b8152600401611944959493929190612ae5565b60206040518083038185885af1158015611962573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b4c9190612911565b60606119988263ffffffff16611cfc565b6040516020016119a89190612b45565b6040516020818303038152906040529050919050565b60006119cd6020828486612b8a565b6119d691612bb4565b9392505050565b60006119cd604060208486612b8a565b36600061139b8360408187612b8a565b610def8385611dba565b60006119d68383611e90565b63ffffffff8116600090815260ca6020526040902054606090610d8090611ead565b610def838383611ecb565b600054610100900460ff16611ad7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161068a565b610d98611ee8565b600080611aeb866114db565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611b6890899085908a908a908a90600401612ae5565b602060405180830381865afa158015611b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba99190612911565b9695505050505050565b60006119d68383611f88565b6000610d8082611fa0565b60006119d68383611faa565b6060611c1a73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085611fd4565b505060408051602081019091526000815290565b8060cb6000828254611c40919061299b565b90915550506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018290523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015611cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612911565b60606000611d0983612069565b600101905060008167ffffffffffffffff811115611d2957611d296129d0565b6040519080825280601f01601f191660200182016040528015611d53576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611d5d57509392505050565b8160cb6000828254611dcc9190612959565b90915550506040517fb460af940000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063b460af94906064016020604051808303816000875af1158015611e6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e889190612911565b600081815260028301602052604081208190556119d6838361214b565b6060610d806000833360405180602001604052806000815250612157565b600082815260028401602052604081208290556106fa848461218c565b600054610100900460ff16611f7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161068a565b610d98336115ca565b600081815260018301602052604081205415156119d6565b6000610d80825490565b6000826000018281548110611fc157611fc161296c565b9060005260206000200154905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610def908590612198565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106120b2577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106120de576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106120fc57662386f26fc10000830492506010015b6305f5e1008310612114576305f5e100830492506008015b612710831061212857612710830492506004015b6064831061213a576064830492506002015b600a8310610d805760010192915050565b60006119d683836122a7565b6060600185858585604051602001612173959493929190612bf0565b6040516020818303038152906040529050949350505050565b60006119d6838361239a565b60006121fa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123e99092919063ffffffff16565b905080516000148061221b57508080602001905181019061221b91906129ae565b610e88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161068a565b600081815260018301602052604081205480156123905760006122cb600183612959565b85549091506000906122df90600190612959565b90508181146123445760008660000182815481106122ff576122ff61296c565b90600052602060002001549050808760000184815481106123225761232261296c565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061235557612355612c75565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610d80565b6000915050610d80565b60008181526001830160205260408120546123e157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610d80565b506000610d80565b60606106fa8484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161241d9190612ca4565b60006040518083038185875af1925050503d806000811461245a576040519150601f19603f3d011682016040523d82523d6000602084013e61245f565b606091505b5091509150610b4c87838387606083156125015782516000036124fa5773ffffffffffffffffffffffffffffffffffffffff85163b6124fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161068a565b50816106fa565b6106fa83838151156125165781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9190612aa5565b803573ffffffffffffffffffffffffffffffffffffffff811681146118a057600080fd5b60006020828403121561258057600080fd5b6119d68261254a565b803563ffffffff811681146118a057600080fd5b6000602082840312156125af57600080fd5b6119d682612589565b6020808252825182820181905260009190848201906040850190845b818110156125f657835163ffffffff16835292840192918401916001016125d4565b50909695505050505050565b6000806040838503121561261557600080fd5b61261e83612589565b946020939093013593505050565b60008083601f84011261263e57600080fd5b50813567ffffffffffffffff81111561265657600080fd5b6020830191508360208285010111156113a057600080fd5b60008060008060008060a0878903121561268757600080fd5b61269087612589565b95506020870135945060408701359350606087013567ffffffffffffffff8111156126ba57600080fd5b6126c689828a0161262c565b90945092506126d990506080880161254a565b90509295509295509295565b600080600080606085870312156126fb57600080fd5b61270485612589565b935060208501359250604085013567ffffffffffffffff81111561272757600080fd5b6127338782880161262c565b95989497509550505050565b60008083601f84011261275157600080fd5b50813567ffffffffffffffff81111561276957600080fd5b6020830191508360208260051b85010111156113a057600080fd5b6000806020838503121561279757600080fd5b823567ffffffffffffffff8111156127ae57600080fd5b6127ba8582860161273f565b90969095509350505050565b6000806000606084860312156127db57600080fd5b6127e484612589565b95602085013595506040909401359392505050565b6000806020838503121561280c57600080fd5b823567ffffffffffffffff8082111561282457600080fd5b818501915085601f83011261283857600080fd5b81358181111561284757600080fd5b8660208260061b850101111561285c57600080fd5b60209290920196919550909350505050565b60008060006060848603121561288357600080fd5b61288c8461254a565b925061289a6020850161254a565b91506128a86040850161254a565b90509250925092565b600080600080604085870312156128c757600080fd5b843567ffffffffffffffff808211156128df57600080fd5b6128eb8883890161273f565b9096509450602087013591508082111561290457600080fd5b506127338782880161273f565b60006020828403121561292357600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610d8057610d8061292a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80820180821115610d8057610d8061292a565b6000602082840312156129c057600080fd5b815180151581146119d657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a3057612a3061292a565b5060010190565b60005b83811015612a52578181015183820152602001612a3a565b50506000910152565b60008151808452612a73816020860160208601612a37565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006119d66020830184612a5b565b83815282602082015260008251612ad6816040850160208701612a37565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612b0a60a0830186612a5b565b8281036060840152612b1c8186612a5b565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612b7d81601f850160208701612a37565b91909101601f0192915050565b60008085851115612b9a57600080fd5b83861115612ba757600080fd5b5050820193919092039150565b80356020831015610d80577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612c64816056850160208701612a37565b919091016056019695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612cb6818460208701612a37565b919091019291505056fea26469706673582212206ff6841bca911d074e8d739adfb24506a3323a851bf7d76970fc0a22d5e35ab864736f6c63430008130033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "contract ERC4626";
@@ -586,7 +586,7 @@ const _abi = [
586
586
  type: "function",
587
587
  },
588
588
  ];
589
- const _bytecode = "0x6101006040523480156200001257600080fd5b50604051620030203803806200302083398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612cf66200032a600039600081816105a60152818161074d015281816107f3015281816108830152818161100001528181611c7a0152611e2301526000818161043101528181610d130152818161104e0152611bf2015260006103bd0152600081816104c501528181610b6f015281816118e40152611b2b0152612cf66000f3fe6080604052600436106101b75760003560e01c806381b4e8b4116100ec578063d5438eae1161008a578063efae508a11610064578063efae508a14610534578063f2ed8c5314610554578063f2fde38b14610574578063fbfa77cf1461059457600080fd5b8063d5438eae146104b3578063de523cf3146104e7578063e9198bf91461051457600080fd5b8063996c6cc3116100c6578063996c6cc31461041f578063b1bd643614610453578063b49c53a714610473578063c0c53b8b1461049357600080fd5b806381b4e8b4146103985780638d3638f4146103ab5780638da5cb5b146103f457600080fd5b806351debffc11610159578063715018a611610133578063715018a6146102e457806371a15b38146102f9578063775313a1146103195780637f5a7c7b1461034657600080fd5b806351debffc1461029e57806356d5d475146102b157806370a08231146102c457600080fd5b806335faa4161161019557806335faa416146102275780633dfd38731461023c578063440df4f41461025c57806349d462ef1461027e57600080fd5b8063093bec70146101bc5780630e72cc06146101e55780632ead72f614610207575b600080fd5b3480156101c857600080fd5b506101d260cb5481565b6040519081526020015b60405180910390f35b3480156101f157600080fd5b5061020561020036600461256e565b6105c8565b005b34801561021357600080fd5b506101d261022236600461259d565b6106e3565b34801561023357600080fd5b50610205610702565b34801561024857600080fd5b5061020561025736600461256e565b6109b8565b34801561026857600080fd5b50610271610ace565b6040516101dc91906125b8565b34801561028a57600080fd5b50610205610299366004612602565b610adf565b6101d26102ac36600461266e565b610b05565b6102056102bf3660046126e5565b610b57565b3480156102d057600080fd5b506101d26102df36600461256e565b610ccb565b3480156102f057600080fd5b50610205610d86565b34801561030557600080fd5b50610205610314366004612784565b610d9a565b34801561032557600080fd5b506101d261033436600461259d565b60ca6020526000908152604090205481565b34801561035257600080fd5b506065546103739073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101dc565b6101d26103a63660046127c6565b610df5565b3480156103b757600080fd5b506103df7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101dc565b34801561040057600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610373565b34801561042b57600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b34801561045f57600080fd5b5061020561046e3660046127f9565b610e03565b34801561047f57600080fd5b5061020561048e366004612602565b610e8d565b34801561049f57600080fd5b506102056104ae36600461286e565b610e9f565b3480156104bf57600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f357600080fd5b506066546103739073ffffffffffffffffffffffffffffffffffffffff1681565b34801561052057600080fd5b5061020561052f3660046128b1565b61112f565b34801561054057600080fd5b5061020561054f36600461259d565b61120e565b34801561056057600080fd5b506101d261056f36600461259d565b611222565b34801561058057600080fd5b5061020561058f36600461256e565b611259565b3480156105a057600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610602575073ffffffffffffffffffffffffffffffffffffffff8116155b610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61069b61130d565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000806106fa609763ffffffff8086169061138e16565b949350505050565b61070a61130d565b60cb546040517fc6e6f59200000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163c6e6f592916107849160040190815260200190565b602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c59190612911565b6040517fd905777e0000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d905777e90602401602060405180830381865afa15801561084f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108739190612911565b61087d9190612959565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ba087652836108dd60335473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff1660248201523060448201526064016020604051808303816000875af1158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190612911565b60408051848152602081018390529192507fab4b80c2bee4a4a901cd94d15ad331e611f22b1fc58fb323876a8c45161569c3910160405180910390a15050565b8073ffffffffffffffffffffffffffffffffffffffff81163b1515806109f2575073ffffffffffffffffffffffffffffffffffffffff8116155b610a7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e6700000000000000000000000000000000000000000000000000606482015260840161068a565b610a8661130d565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610ada60976113a7565b905090565b610ae761130d565b63ffffffff91909116600090815260ca6020526040902055565b5050565b6000610b4c8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611462915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610c1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f7800000000000000000000000000000000000000000000000000000000000000606482015260840161068a565b6000610c27856114db565b9050838114610cb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e646572000000000000000000000000000000000000000000000000000000606482015260840161068a565b610cc485858585611540565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610d5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d809190612911565b92915050565b610d8e61130d565b610d9860006115ca565b565b610da261130d565b8060005b81811015610def57610ddd848483818110610dc357610dc361296c565b9050602002016020810190610dd8919061259d565b611641565b610de860018261299b565b9050610da6565b50505050565b60006106fa84848434611696565b610e0b61130d565b60005b81811015610e8857610e76838383818110610e2b57610e2b61296c565b610e41926020604090920201908101915061259d565b848484818110610e5357610e5361296c565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610e8160018261299b565b9050610e0e565b505050565b610e9561130d565b610b0182826116cf565b600054610100900460ff1615808015610ebf5750600054600160ff909116105b80610ed95750303b158015610ed9575060005460ff166001145b610f65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161068a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fc357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015611097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb91906129ae565b506110c78484846116e5565b8015610def57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b61113761130d565b8281146111a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e67746800000000000000000000000000000000000000000000000000604482015260640161068a565b8260005b81811015611206576111f48686838181106111c1576111c161296c565b90506020020160208101906111d6919061259d565b8585848181106111e8576111e861296c565b905060200201356116cf565b6111ff60018261299b565b90506111a4565b505050505050565b61121661130d565b61121f81611641565b50565b604080516020810190915260008082526065549091610d809184919073ffffffffffffffffffffffffffffffffffffffff1661179f565b61126161130d565b73ffffffffffffffffffffffffffffffffffffffff8116611304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161068a565b61121f816115ca565b60335473ffffffffffffffffffffffffffffffffffffffff163314610d98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161068a565b60008061139b84846117b5565b915091505b9250929050565b606060006113b4836117ef565b9050805167ffffffffffffffff8111156113d0576113d06129d0565b6040519080825280602002602001820160405280156113f9578160200160208202803683370190505b50915060005b815181101561145b5781818151811061141a5761141a61296c565b60200260200101518382815181106114345761143461296c565b63ffffffff9092166020928302919091019091015280611453816129ff565b9150506113ff565b5050919050565b60008061146e8661188a565b9050600061147d8888846118a5565b905061148c89878388886118d4565b9250878963ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec896040516114c791815260200190565b60405180910390a350509695505050505050565b600080806114f3609763ffffffff8087169061138e16565b915091508115611504579392505050565b61150d84611987565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9190612aa5565b600061154c83836119be565b9050600061155a84846119dd565b905036600061156986866119ed565b9150915061157f6115778590565b8484846119fd565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6856040516115b891815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611655609763ffffffff80841690611a0716565b61165e82611987565b90610b01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9190612aa5565b60006116c6858585856116a88a611a13565b60655473ffffffffffffffffffffffffffffffffffffffff16611462565b95945050505050565b610b01609763ffffffff808516908490611a3516565b600054610100900460ff1661177c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161068a565b611784611a40565b61178d836109b8565b611796826105c8565b610e88816115ca565b60006106fa84846117af87611a13565b85611adf565b60008181526002830160205260408120548190806117e4576117d78585611bb3565b9250600091506113a09050565b6001925090506113a0565b606060006117fc83611bbf565b90508067ffffffffffffffff811115611817576118176129d0565b604051908082528060200260200182016040528015611840578160200160208202803683370190505b50915060005b8181101561145b576118588482611bca565b60001c83828151811061186d5761186d61296c565b602090810291909101015280611882816129ff565b915050611846565b606061189582611bd6565b90506118a082611c2e565b919050565b60608383836040516020016118bc93929190612ab8565b60405160208183030381529060405290509392505050565b6000806118e0876114db565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b8152600401611944959493929190612ae5565b60206040518083038185885af1158015611962573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b4c9190612911565b60606119988263ffffffff16611cfc565b6040516020016119a89190612b45565b6040516020818303038152906040529050919050565b60006119cd6020828486612b8a565b6119d691612bb4565b9392505050565b60006119cd604060208486612b8a565b36600061139b8360408187612b8a565b610def8385611dba565b60006119d68383611e90565b63ffffffff8116600090815260ca6020526040902054606090610d8090611ead565b610def838383611ecb565b600054610100900460ff16611ad7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161068a565b610d98611ee8565b600080611aeb866114db565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611b6890899085908a908a908a90600401612ae5565b602060405180830381865afa158015611b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba99190612911565b9695505050505050565b60006119d68383611f88565b6000610d8082611fa0565b60006119d68383611faa565b6060611c1a73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085611fd4565b505060408051602081019091526000815290565b8060cb6000828254611c40919061299b565b90915550506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018290523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015611cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612911565b60606000611d0983612069565b600101905060008167ffffffffffffffff811115611d2957611d296129d0565b6040519080825280601f01601f191660200182016040528015611d53576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611d5d57509392505050565b8160cb6000828254611dcc9190612959565b90915550506040517fb460af940000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063b460af94906064016020604051808303816000875af1158015611e6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e889190612911565b600081815260028301602052604081208190556119d6838361214b565b6060610d806000833360405180602001604052806000815250612157565b600082815260028401602052604081208290556106fa848461218c565b600054610100900460ff16611f7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161068a565b610d98336115ca565b600081815260018301602052604081205415156119d6565b6000610d80825490565b6000826000018281548110611fc157611fc161296c565b9060005260206000200154905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610def908590612198565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106120b2577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106120de576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106120fc57662386f26fc10000830492506010015b6305f5e1008310612114576305f5e100830492506008015b612710831061212857612710830492506004015b6064831061213a576064830492506002015b600a8310610d805760010192915050565b60006119d683836122a7565b6060600185858585604051602001612173959493929190612bf0565b6040516020818303038152906040529050949350505050565b60006119d6838361239a565b60006121fa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123e99092919063ffffffff16565b905080516000148061221b57508080602001905181019061221b91906129ae565b610e88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161068a565b600081815260018301602052604081205480156123905760006122cb600183612959565b85549091506000906122df90600190612959565b90508181146123445760008660000182815481106122ff576122ff61296c565b90600052602060002001549050808760000184815481106123225761232261296c565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061235557612355612c75565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610d80565b6000915050610d80565b60008181526001830160205260408120546123e157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610d80565b506000610d80565b60606106fa8484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161241d9190612ca4565b60006040518083038185875af1925050503d806000811461245a576040519150601f19603f3d011682016040523d82523d6000602084013e61245f565b606091505b5091509150610b4c87838387606083156125015782516000036124fa5773ffffffffffffffffffffffffffffffffffffffff85163b6124fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161068a565b50816106fa565b6106fa83838151156125165781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9190612aa5565b803573ffffffffffffffffffffffffffffffffffffffff811681146118a057600080fd5b60006020828403121561258057600080fd5b6119d68261254a565b803563ffffffff811681146118a057600080fd5b6000602082840312156125af57600080fd5b6119d682612589565b6020808252825182820181905260009190848201906040850190845b818110156125f657835163ffffffff16835292840192918401916001016125d4565b50909695505050505050565b6000806040838503121561261557600080fd5b61261e83612589565b946020939093013593505050565b60008083601f84011261263e57600080fd5b50813567ffffffffffffffff81111561265657600080fd5b6020830191508360208285010111156113a057600080fd5b60008060008060008060a0878903121561268757600080fd5b61269087612589565b95506020870135945060408701359350606087013567ffffffffffffffff8111156126ba57600080fd5b6126c689828a0161262c565b90945092506126d990506080880161254a565b90509295509295509295565b600080600080606085870312156126fb57600080fd5b61270485612589565b935060208501359250604085013567ffffffffffffffff81111561272757600080fd5b6127338782880161262c565b95989497509550505050565b60008083601f84011261275157600080fd5b50813567ffffffffffffffff81111561276957600080fd5b6020830191508360208260051b85010111156113a057600080fd5b6000806020838503121561279757600080fd5b823567ffffffffffffffff8111156127ae57600080fd5b6127ba8582860161273f565b90969095509350505050565b6000806000606084860312156127db57600080fd5b6127e484612589565b95602085013595506040909401359392505050565b6000806020838503121561280c57600080fd5b823567ffffffffffffffff8082111561282457600080fd5b818501915085601f83011261283857600080fd5b81358181111561284757600080fd5b8660208260061b850101111561285c57600080fd5b60209290920196919550909350505050565b60008060006060848603121561288357600080fd5b61288c8461254a565b925061289a6020850161254a565b91506128a86040850161254a565b90509250925092565b600080600080604085870312156128c757600080fd5b843567ffffffffffffffff808211156128df57600080fd5b6128eb8883890161273f565b9096509450602087013591508082111561290457600080fd5b506127338782880161273f565b60006020828403121561292357600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610d8057610d8061292a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80820180821115610d8057610d8061292a565b6000602082840312156129c057600080fd5b815180151581146119d657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a3057612a3061292a565b5060010190565b60005b83811015612a52578181015183820152602001612a3a565b50506000910152565b60008151808452612a73816020860160208601612a37565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006119d66020830184612a5b565b83815282602082015260008251612ad6816040850160208701612a37565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612b0a60a0830186612a5b565b8281036060840152612b1c8186612a5b565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612b7d81601f850160208701612a37565b91909101601f0192915050565b60008085851115612b9a57600080fd5b83861115612ba757600080fd5b5050820193919092039150565b80356020831015610d80577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612c64816056850160208701612a37565b919091016056019695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612cb6818460208701612a37565b919091019291505056fea2646970667358221220c72b2082830a0b42bef9ee865cad06cd78c00d558958fb11b009e0cd43466d0e64736f6c63430008130033";
589
+ const _bytecode = "0x6101006040523480156200001257600080fd5b50604051620030203803806200302083398101604081905262000035916200020e565b816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009a91906200024d565b8180808080806001600160a01b0381163b620000fc5760405162461bcd60e51b815260206004820152601e60248201527f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f780000604482015260640160405180910390fd5b6001600160a01b03821660808190526040805163234d8e3d60e21b81529051638d3638f4916004808201926020929091908290030181865afa15801562000147573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200016d919062000274565b63ffffffff1660a0526200018133620001a3565b5050506001600160a01b0393841660c0525050509190911660e052506200029c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146200020b57600080fd5b50565b600080604083850312156200022257600080fd5b82516200022f81620001f5565b60208401519092506200024281620001f5565b809150509250929050565b6000602082840312156200026057600080fd5b81516200026d81620001f5565b9392505050565b6000602082840312156200028757600080fd5b815163ffffffff811681146200026d57600080fd5b60805160a05160c05160e051612cf66200032a600039600081816105a60152818161074d015281816107f3015281816108830152818161100001528181611c7a0152611e2301526000818161043101528181610d130152818161104e0152611bf2015260006103bd0152600081816104c501528181610b6f015281816118e40152611b2b0152612cf66000f3fe6080604052600436106101b75760003560e01c806381b4e8b4116100ec578063d5438eae1161008a578063efae508a11610064578063efae508a14610534578063f2ed8c5314610554578063f2fde38b14610574578063fbfa77cf1461059457600080fd5b8063d5438eae146104b3578063de523cf3146104e7578063e9198bf91461051457600080fd5b8063996c6cc3116100c6578063996c6cc31461041f578063b1bd643614610453578063b49c53a714610473578063c0c53b8b1461049357600080fd5b806381b4e8b4146103985780638d3638f4146103ab5780638da5cb5b146103f457600080fd5b806351debffc11610159578063715018a611610133578063715018a6146102e457806371a15b38146102f9578063775313a1146103195780637f5a7c7b1461034657600080fd5b806351debffc1461029e57806356d5d475146102b157806370a08231146102c457600080fd5b806335faa4161161019557806335faa416146102275780633dfd38731461023c578063440df4f41461025c57806349d462ef1461027e57600080fd5b8063093bec70146101bc5780630e72cc06146101e55780632ead72f614610207575b600080fd5b3480156101c857600080fd5b506101d260cb5481565b6040519081526020015b60405180910390f35b3480156101f157600080fd5b5061020561020036600461256e565b6105c8565b005b34801561021357600080fd5b506101d261022236600461259d565b6106e3565b34801561023357600080fd5b50610205610702565b34801561024857600080fd5b5061020561025736600461256e565b6109b8565b34801561026857600080fd5b50610271610ace565b6040516101dc91906125b8565b34801561028a57600080fd5b50610205610299366004612602565b610adf565b6101d26102ac36600461266e565b610b05565b6102056102bf3660046126e5565b610b57565b3480156102d057600080fd5b506101d26102df36600461256e565b610ccb565b3480156102f057600080fd5b50610205610d86565b34801561030557600080fd5b50610205610314366004612784565b610d9a565b34801561032557600080fd5b506101d261033436600461259d565b60ca6020526000908152604090205481565b34801561035257600080fd5b506065546103739073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101dc565b6101d26103a63660046127c6565b610df5565b3480156103b757600080fd5b506103df7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016101dc565b34801561040057600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610373565b34801561042b57600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b34801561045f57600080fd5b5061020561046e3660046127f9565b610e03565b34801561047f57600080fd5b5061020561048e366004612602565b610e8d565b34801561049f57600080fd5b506102056104ae36600461286e565b610e9f565b3480156104bf57600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f357600080fd5b506066546103739073ffffffffffffffffffffffffffffffffffffffff1681565b34801561052057600080fd5b5061020561052f3660046128b1565b61112f565b34801561054057600080fd5b5061020561054f36600461259d565b61120e565b34801561056057600080fd5b506101d261056f36600461259d565b611222565b34801561058057600080fd5b5061020561058f36600461256e565b611259565b3480156105a057600080fd5b506103737f000000000000000000000000000000000000000000000000000000000000000081565b8073ffffffffffffffffffffffffffffffffffffffff81163b151580610602575073ffffffffffffffffffffffffffffffffffffffff8116155b610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e670000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61069b61130d565b50606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000806106fa609763ffffffff8086169061138e16565b949350505050565b61070a61130d565b60cb546040517fc6e6f59200000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169163c6e6f592916107849160040190815260200190565b602060405180830381865afa1580156107a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c59190612911565b6040517fd905777e0000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d905777e90602401602060405180830381865afa15801561084f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108739190612911565b61087d9190612959565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ba087652836108dd60335473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925273ffffffffffffffffffffffffffffffffffffffff1660248201523060448201526064016020604051808303816000875af1158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190612911565b60408051848152602081018390529192507fab4b80c2bee4a4a901cd94d15ad331e611f22b1fc58fb323876a8c45161569c3910160405180910390a15050565b8073ffffffffffffffffffffffffffffffffffffffff81163b1515806109f2575073ffffffffffffffffffffffffffffffffffffffff8116155b610a7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d61696c626f78436c69656e743a20696e76616c696420636f6e74726163742060448201527f73657474696e6700000000000000000000000000000000000000000000000000606482015260840161068a565b610a8661130d565b50606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060610ada60976113a7565b905090565b610ae761130d565b63ffffffff91909116600090815260ca6020526040902055565b5050565b6000610b4c8787873488888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611462915050565b979650505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610c1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f60448201527f7800000000000000000000000000000000000000000000000000000000000000606482015260840161068a565b6000610c27856114db565b9050838114610cb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f456e726f6c6c656420726f7574657220646f6573206e6f74206d61746368207360448201527f656e646572000000000000000000000000000000000000000000000000000000606482015260840161068a565b610cc485858585611540565b5050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610d5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d809190612911565b92915050565b610d8e61130d565b610d9860006115ca565b565b610da261130d565b8060005b81811015610def57610ddd848483818110610dc357610dc361296c565b9050602002016020810190610dd8919061259d565b611641565b610de860018261299b565b9050610da6565b50505050565b60006106fa84848434611696565b610e0b61130d565b60005b81811015610e8857610e76838383818110610e2b57610e2b61296c565b610e41926020604090920201908101915061259d565b848484818110610e5357610e5361296c565b9050604002016020013563ffffffff909116600090815260ca6020526040902055565b610e8160018261299b565b9050610e0e565b505050565b610e9561130d565b610b0182826116cf565b600054610100900460ff1615808015610ebf5750600054600160ff909116105b80610ed95750303b158015610ed9575060005460ff166001145b610f65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161068a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610fc357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015611097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bb91906129ae565b506110c78484846116e5565b8015610def57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b61113761130d565b8281146111a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e67746800000000000000000000000000000000000000000000000000604482015260640161068a565b8260005b81811015611206576111f48686838181106111c1576111c161296c565b90506020020160208101906111d6919061259d565b8585848181106111e8576111e861296c565b905060200201356116cf565b6111ff60018261299b565b90506111a4565b505050505050565b61121661130d565b61121f81611641565b50565b604080516020810190915260008082526065549091610d809184919073ffffffffffffffffffffffffffffffffffffffff1661179f565b61126161130d565b73ffffffffffffffffffffffffffffffffffffffff8116611304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161068a565b61121f816115ca565b60335473ffffffffffffffffffffffffffffffffffffffff163314610d98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161068a565b60008061139b84846117b5565b915091505b9250929050565b606060006113b4836117ef565b9050805167ffffffffffffffff8111156113d0576113d06129d0565b6040519080825280602002602001820160405280156113f9578160200160208202803683370190505b50915060005b815181101561145b5781818151811061141a5761141a61296c565b60200260200101518382815181106114345761143461296c565b63ffffffff9092166020928302919091019091015280611453816129ff565b9150506113ff565b5050919050565b60008061146e8661188a565b9050600061147d8888846118a5565b905061148c89878388886118d4565b9250878963ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec896040516114c791815260200190565b60405180910390a350509695505050505050565b600080806114f3609763ffffffff8087169061138e16565b915091508115611504579392505050565b61150d84611987565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9190612aa5565b600061154c83836119be565b9050600061155a84846119dd565b905036600061156986866119ed565b9150915061157f6115778590565b8484846119fd565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a6856040516115b891815260200190565b60405180910390a35050505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611655609763ffffffff80841690611a0716565b61165e82611987565b90610b01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9190612aa5565b60006116c6858585856116a88a611a13565b60655473ffffffffffffffffffffffffffffffffffffffff16611462565b95945050505050565b610b01609763ffffffff808516908490611a3516565b600054610100900460ff1661177c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161068a565b611784611a40565b61178d836109b8565b611796826105c8565b610e88816115ca565b60006106fa84846117af87611a13565b85611adf565b60008181526002830160205260408120548190806117e4576117d78585611bb3565b9250600091506113a09050565b6001925090506113a0565b606060006117fc83611bbf565b90508067ffffffffffffffff811115611817576118176129d0565b604051908082528060200260200182016040528015611840578160200160208202803683370190505b50915060005b8181101561145b576118588482611bca565b60001c83828151811061186d5761186d61296c565b602090810291909101015280611882816129ff565b915050611846565b606061189582611bd6565b90506118a082611c2e565b919050565b60608383836040516020016118bc93929190612ab8565b60405160208183030381529060405290509392505050565b6000806118e0876114db565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08789848989896040518763ffffffff1660e01b8152600401611944959493929190612ae5565b60206040518083038185885af1158015611962573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b4c9190612911565b60606119988263ffffffff16611cfc565b6040516020016119a89190612b45565b6040516020818303038152906040529050919050565b60006119cd6020828486612b8a565b6119d691612bb4565b9392505050565b60006119cd604060208486612b8a565b36600061139b8360408187612b8a565b610def8385611dba565b60006119d68383611e90565b63ffffffff8116600090815260ca6020526040902054606090610d8090611ead565b610def838383611ecb565b600054610100900460ff16611ad7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161068a565b610d98611ee8565b600080611aeb866114db565b6040517f81d2ea9500000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906381d2ea9590611b6890899085908a908a908a90600401612ae5565b602060405180830381865afa158015611b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba99190612911565b9695505050505050565b60006119d68383611f88565b6000610d8082611fa0565b60006119d68383611faa565b6060611c1a73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016333085611fd4565b505060408051602081019091526000815290565b8060cb6000828254611c40919061299b565b90915550506040517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018290523060248201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690636e553f65906044016020604051808303816000875af1158015611cd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b019190612911565b60606000611d0983612069565b600101905060008167ffffffffffffffff811115611d2957611d296129d0565b6040519080825280601f01601f191660200182016040528015611d53576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611d5d57509392505050565b8160cb6000828254611dcc9190612959565b90915550506040517fb460af940000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff82811660248301523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063b460af94906064016020604051808303816000875af1158015611e6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e889190612911565b600081815260028301602052604081208190556119d6838361214b565b6060610d806000833360405180602001604052806000815250612157565b600082815260028401602052604081208290556106fa848461218c565b600054610100900460ff16611f7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161068a565b610d98336115ca565b600081815260018301602052604081205415156119d6565b6000610d80825490565b6000826000018281548110611fc157611fc161296c565b9060005260206000200154905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610def908590612198565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106120b2577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106120de576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106120fc57662386f26fc10000830492506010015b6305f5e1008310612114576305f5e100830492506008015b612710831061212857612710830492506004015b6064831061213a576064830492506002015b600a8310610d805760010192915050565b60006119d683836122a7565b6060600185858585604051602001612173959493929190612bf0565b6040516020818303038152906040529050949350505050565b60006119d6838361239a565b60006121fa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166123e99092919063ffffffff16565b905080516000148061221b57508080602001905181019061221b91906129ae565b610e88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161068a565b600081815260018301602052604081205480156123905760006122cb600183612959565b85549091506000906122df90600190612959565b90508181146123445760008660000182815481106122ff576122ff61296c565b90600052602060002001549050808760000184815481106123225761232261296c565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061235557612355612c75565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610d80565b6000915050610d80565b60008181526001830160205260408120546123e157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610d80565b506000610d80565b60606106fa8484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161241d9190612ca4565b60006040518083038185875af1925050503d806000811461245a576040519150601f19603f3d011682016040523d82523d6000602084013e61245f565b606091505b5091509150610b4c87838387606083156125015782516000036124fa5773ffffffffffffffffffffffffffffffffffffffff85163b6124fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161068a565b50816106fa565b6106fa83838151156125165781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a9190612aa5565b803573ffffffffffffffffffffffffffffffffffffffff811681146118a057600080fd5b60006020828403121561258057600080fd5b6119d68261254a565b803563ffffffff811681146118a057600080fd5b6000602082840312156125af57600080fd5b6119d682612589565b6020808252825182820181905260009190848201906040850190845b818110156125f657835163ffffffff16835292840192918401916001016125d4565b50909695505050505050565b6000806040838503121561261557600080fd5b61261e83612589565b946020939093013593505050565b60008083601f84011261263e57600080fd5b50813567ffffffffffffffff81111561265657600080fd5b6020830191508360208285010111156113a057600080fd5b60008060008060008060a0878903121561268757600080fd5b61269087612589565b95506020870135945060408701359350606087013567ffffffffffffffff8111156126ba57600080fd5b6126c689828a0161262c565b90945092506126d990506080880161254a565b90509295509295509295565b600080600080606085870312156126fb57600080fd5b61270485612589565b935060208501359250604085013567ffffffffffffffff81111561272757600080fd5b6127338782880161262c565b95989497509550505050565b60008083601f84011261275157600080fd5b50813567ffffffffffffffff81111561276957600080fd5b6020830191508360208260051b85010111156113a057600080fd5b6000806020838503121561279757600080fd5b823567ffffffffffffffff8111156127ae57600080fd5b6127ba8582860161273f565b90969095509350505050565b6000806000606084860312156127db57600080fd5b6127e484612589565b95602085013595506040909401359392505050565b6000806020838503121561280c57600080fd5b823567ffffffffffffffff8082111561282457600080fd5b818501915085601f83011261283857600080fd5b81358181111561284757600080fd5b8660208260061b850101111561285c57600080fd5b60209290920196919550909350505050565b60008060006060848603121561288357600080fd5b61288c8461254a565b925061289a6020850161254a565b91506128a86040850161254a565b90509250925092565b600080600080604085870312156128c757600080fd5b843567ffffffffffffffff808211156128df57600080fd5b6128eb8883890161273f565b9096509450602087013591508082111561290457600080fd5b506127338782880161273f565b60006020828403121561292357600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610d8057610d8061292a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80820180821115610d8057610d8061292a565b6000602082840312156129c057600080fd5b815180151581146119d657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a3057612a3061292a565b5060010190565b60005b83811015612a52578181015183820152602001612a3a565b50506000910152565b60008151808452612a73816020860160208601612a37565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006119d66020830184612a5b565b83815282602082015260008251612ad6816040850160208701612a37565b91909101604001949350505050565b63ffffffff8616815284602082015260a060408201526000612b0a60a0830186612a5b565b8281036060840152612b1c8186612a5b565b91505073ffffffffffffffffffffffffffffffffffffffff831660808301529695505050505050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815260008251612b7d81601f850160208701612a37565b91909101601f0192915050565b60008085851115612b9a57600080fd5b83861115612ba757600080fd5b5050820193919092039150565b80356020831015610d80577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffff0000000000000000000000000000000000000000000000000000000000008660f01b1681528460028201528360228201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008360601b16604282015260008251612c64816056850160208701612a37565b919091016056019695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251612cb6818460208701612a37565b919091019291505056fea26469706673582212206ff6841bca911d074e8d739adfb24506a3323a851bf7d76970fc0a22d5e35ab864736f6c63430008130033";
590
590
  const isSuperArgs = (xs) => xs.length > 1;
591
591
  export class HypERC4626OwnerCollateral__factory extends ContractFactory {
592
592
  constructor(...args) {