0 txs
1.3k calls
constructor
constructor(address _feeReceiver, address _executor, address _lpZapper, address _factory, address _WETH)
functions
executor
viewfunction executor() view returns (address)
factory
viewfunction factory() view returns (address)
feeDistributor
viewfunction feeDistributor() view returns (address)
feeDistributorShare
viewfunction feeDistributorShare() view returns (uint256)
feeReceiver
viewfunction feeReceiver() view returns (address)
lpZapper
viewfunction lpZapper() view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
WETH
viewfunction WETH() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
clearToken
nonpayablefunction clearToken(address token, address to, uint256 minAmt)
collectDSProtocolFees
nonpayablefunction collectDSProtocolFees(address cfmm, uint16 protocolId, uint256 lpAmount, uint256[] amountsMin, uint256[] swapMin, address[] path0, address[] path1, bytes uniV3path0, bytes uniV3path1)
collectGSProtocolFees
nonpayablefunction collectGSProtocolFees(address cfmm, uint16 protocolId, uint256 lpAmount, uint256[] amountsMin, uint256[] swapMin, address[] path0, address[] path1, bytes uniV3path0, bytes uniV3path1)
initialize
nonpayablefunction initialize()
refundETH
payablefunction refundETH() payable
renounceOwnership
nonpayablefunction renounceOwnership()
sendTokensCallback
nonpayablefunction sendTokensCallback(address[] tokens, uint256[] amounts, address payee, bytes data)
setExecutor
nonpayablefunction setExecutor(address _executor)
setFeeDistributor
nonpayablefunction setFeeDistributor(address _feeDistributor)
setFeeDistributorShare
nonpayablefunction setFeeDistributorShare(uint256 _feeDistributorShare)
setFeeReceiver
nonpayablefunction setFeeReceiver(address _feeReceiver)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unwrapWETH
payablefunction unwrapWETH(uint256 minAmt, address to) payable
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Upgraded
event Upgraded(address indexed implementation)
errors
NotContract
error NotContract()
NotEnoughTokens
error NotEnoughTokens()
NotEnoughWETH
error NotEnoughWETH()
NotGammaPool
error NotGammaPool()
NotWETH
error NotWETH()
SA_Fail
error SA_Fail()
ST_Fail
error ST_Fail()
STE_Fail
error STE_Fail()
creation bytecode
0x610100604052306080523480156200001657600080fd5b506040516200344938038062003449833981016040819052620000399162000123565b60a05162000047336200008d565b50600280546001600160a01b03199081166001600160a01b0397881617909155600380549091169486169490941790935590831660c052821660e0521660a05262000193565b600180546001600160a01b0319169055620000a881620000ab565b50565b600080546001600160a01b038381166201000081810262010000600160b01b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b80516001600160a01b03811681146200011e57600080fd5b919050565b600080600080600060a086880312156200013c57600080fd5b620001478662000106565b9450620001576020870162000106565b9350620001676040870162000106565b9250620001776060870162000106565b9150620001876080870162000106565b90509295509295909350565b60805160a05160c05160e0516131fe6200024b600039600081816103f60152611ab301526000818161022901528181611565015281816115a7015261162e0152600081816101950152818161038201528181610a9401528181610b46015281816112010152818161135c015281816116ba0152818161175e0152818161179601528181611af10152611b940152600081816105ba015281816105fa01528181610699015281816106d9015261076c01526131fe6000f3fe6080604052600436106101855760003560e01c8063ad5c4648116100d1578063cd5e71401161008a578063e30c397811610064578063e30c3978146104a1578063e639dd87146104bf578063efdcd974146104df578063f2fde38b146104ff57600080fd5b8063cd5e714014610458578063d91f068014610478578063e16d9ce51461048e57600080fd5b8063ad5c464814610370578063b3f00674146103a4578063c34c08e5146103c4578063c45a0155146103e4578063ccbe764a14610418578063ccfc2e8d1461043857600080fd5b80634f1ef2861161013e578063715018a611610118578063715018a61461030d57806379ba5097146103225780638129fc1c146103375780638da5cb5b1461034c57600080fd5b80634f1ef286146102b357806352d1902d146102c65780636464a1eb146102e957600080fd5b80630d43e8ad146101da5780630ec853761461021757806312210e8a1461024b578063174e66e1146102535780631c3c0ea8146102735780633659cfe61461029357600080fd5b366101d557336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101d357604051635724f38560e01b815260040160405180910390fd5b005b600080fd5b3480156101e657600080fd5b506004546101fa906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022357600080fd5b506101fa7f000000000000000000000000000000000000000000000000000000000000000081565b6101d361051f565b34801561025f57600080fd5b506101d361026e3660046128b3565b610531565b34801561027f57600080fd5b506101d361028e3660046129d5565b610557565b34801561029f57600080fd5b506101d36102ae3660046129d5565b6105b0565b6101d36102c13660046129f2565b61068f565b3480156102d257600080fd5b506102db61075f565b60405190815260200161020e565b3480156102f557600080fd5b506101d3610304366004612a8e565b50505050505050565b34801561031957600080fd5b506101d3610812565b34801561032e57600080fd5b506101d3610824565b34801561034357600080fd5b506101d361089b565b34801561035857600080fd5b506000546201000090046001600160a01b03166101fa565b34801561037c57600080fd5b506101fa7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103b057600080fd5b506002546101fa906001600160a01b031681565b3480156103d057600080fd5b506003546101fa906001600160a01b031681565b3480156103f057600080fd5b506101fa7f000000000000000000000000000000000000000000000000000000000000000081565b34801561042457600080fd5b506101d3610433366004612b6a565b6109f9565b34801561044457600080fd5b506101d36104533660046129d5565b610a11565b34801561046457600080fd5b506101d36104733660046128b3565b610a61565b34801561048457600080fd5b506102db60055481565b6101d361049c366004612bab565b610a7c565b3480156104ad57600080fd5b506001546001600160a01b03166101fa565b3480156104cb57600080fd5b506101d36104da366004612bdb565b610bb4565b3480156104eb57600080fd5b506101d36104fa3660046129d5565b610c0c565b34801561050b57600080fd5b506101d361051a3660046129d5565b610c5c565b471561052f5761052f3347610cd4565b565b610539610d48565b61054c8989898989898989896001610da2565b505050505050505050565b61055f6117e2565b6001600160a01b03811661058e5760405162461bcd60e51b815260040161058590612bf4565b60405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105f85760405162461bcd60e51b815260040161058590612c1a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610641600080516020613182833981519152546001600160a01b031690565b6001600160a01b0316146106675760405162461bcd60e51b815260040161058590612c66565b61067081611843565b6040805160008082526020820190925261068c9183919061184b565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106d75760405162461bcd60e51b815260040161058590612c1a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610720600080516020613182833981519152546001600160a01b031690565b6001600160a01b0316146107465760405162461bcd60e51b815260040161058590612c66565b61074f82611843565b61075b8282600161184b565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107ff5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610585565b5060008051602061318283398151915290565b61081a6117e2565b61052f60006119b6565b60015433906001600160a01b031681146108925760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610585565b61068c816119b6565b600054610100900460ff16158080156108bb5750600054600160ff909116105b806108d55750303b1580156108d5575060005460ff166001145b6109385760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610585565b6000805460ff19166001179055801561095b576000805461ff0019166101001790555b6000546201000090046001600160a01b0316156109a85760405162461bcd60e51b815260206004820152600b60248201526a125392551250531256915160aa1b6044820152606401610585565b6109b1336119b6565b801561068c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b610a016117e2565b610a0c8383836119cf565b505050565b610a196117e2565b6001600160a01b038116610a3f5760405162461bcd60e51b815260040161058590612bf4565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b610a69610d48565b61054c8989898989898989896000610da2565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b079190612cb2565b905082811015610b2a5760405163d666767760e01b815260040160405180910390fd5b8015610a0c57604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015610b9257600080fd5b505af1158015610ba6573d6000803e3d6000fd5b50505050610a0c8282610cd4565b610bbc6117e2565b670de0b6b3a7640000811115610c075760405162461bcd60e51b815260206004820152601060248201526f14d210549157d1d517cc4c0c17d410d560821b6044820152606401610585565b600555565b610c146117e2565b6001600160a01b038116610c3a5760405162461bcd60e51b815260040161058590612bf4565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610c646117e2565b600180546001600160a01b0383166001600160a01b03199091168117909155610c9c6000546001600160a01b03620100009091041690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610d21576040519150601f19603f3d011682016040523d82523d6000602084013e610d26565b606091505b5050905080610a0c576040516325e5592160e21b815260040160405180910390fd5b6003546001600160a01b0316331461052f5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c6572206973206e6f7420746865206578656375746f720000000000006044820152606401610585565b6001600160a01b038a16610dc85760405162461bcd60e51b815260040161058590612bf4565b60008961ffff1611610e125760405162461bcd60e51b81526020600482015260136024820152721253959053125117d41493d513d0d3d317d251606a1b6044820152606401610585565b60008811610e535760405162461bcd60e51b815260206004820152600e60248201526d16915493d7d31417d05353d5539560921b6044820152606401610585565b6002546001600160a01b0316610e9f5760405162461bcd60e51b81526020600482015260116024820152702d22a927afa322a2afa922a1a2a4ab22a960791b6044820152606401610585565b6005541580610eb857506004546001600160a01b031615155b610efb5760405162461bcd60e51b81526020600482015260146024820152732d22a927afa322a2afa224a9aa2924a12aaa27a960611b6044820152606401610585565b6000610f078b8b611a74565b90506001600160a01b0381163b610f3157604051636f7c43f160e01b815260040160405180910390fd5b6000816001600160a01b0316639d63848a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610f71573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f999190810190612ccb565b905082610fa65781610fa8565b8b5b6040516370a0823160e01b81523060048201529092506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110169190612cb2565b90506000811161105a5760405162461bcd60e51b815260206004820152600f60248201526e5a45524f5f4c505f42414c414e434560881b6044820152606401610585565b808b11611067578a611069565b805b9a505060006040518060c001604052808d61ffff1681526020018e6001600160a01b031681526020016005546000146110a257306110af565b6002546001600160a01b03165b6001600160a01b031681526020018c81526020014281526020018b8152509050600060405180608001604052808b6000815181106110ef576110ef612d65565b602002602001015181526020018e61ffff168152602001600067ffffffffffffffff81111561112057611120612709565b604051908082528060200260200182016040528015611149578160200160208202803683370190505b50815260408051600080825260208083018452909301528051608081019091528c51929350909181908d90600190811061118557611185612d65565b602002602001015181526020018f61ffff168152602001600067ffffffffffffffff8111156111b6576111b6612709565b6040519080825280602002602001820160405280156111df578160200160208202803683370190505b50815260408051600080825260208281019093529190920191905081525090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168460008151811061123c5761123c612d65565b60200260200101516001600160a01b03160361135a576001895111156112715761126589611ae3565b6040810189905261155f565b86511561128d5761128187611b86565b6060810187905261155f565b604080516002808252606082018352909160208301908036833750505060408201528351849060019081106112c4576112c4612d65565b602002602001015181604001516000815181106112e3576112e3612d65565b60200260200101906001600160a01b031690816001600160a01b0316815250508360008151811061131657611316612d65565b6020026020010151816040015160018151811061133557611335612d65565b60200260200101906001600160a01b031690816001600160a01b03168152505061155f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168460018151811061139757611397612d65565b60200260200101516001600160a01b03160361148e5760018a5111156113cc576113c08a611ae3565b604082018a905261155f565b8751156113e8576113dc88611b86565b6060820188905261155f565b604080516002808252606082018352909160208301908036833750505060408301528351849060009061141d5761141d612d65565b6020026020010151826040015160008151811061143c5761143c612d65565b60200260200101906001600160a01b031690816001600160a01b0316815250508360018151811061146f5761146f612d65565b6020026020010151826040015160018151811061133557611335612d65565b600060018a5111156114b2576114a38a611ae3565b506040810189905260016114cd565b8751156114cd576114c288611b86565b506060810187905260015b60018b5111156114f9576114e08b611ae3565b604083018b90528080156114f2575060015b905061151e565b88511561151e5761150989611b86565b6060830189905280801561151b575060015b90505b8061155d5760405162461bcd60e51b815260206004820152600f60248201526e1410551217d254d7d393d517d4d155608a1b6044820152606401610585565b505b61158a857f00000000000000000000000000000000000000000000000000000000000000008f611c11565b85156116175760405163741d2dcf60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063741d2dcf906115e090869086908690600401612e48565b600060405180830381600087803b1580156115fa57600080fd5b505af115801561160e573d6000803e3d6000fd5b5050505061169a565b604051630100549b60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630802a4d89061166790869086908690600401612e48565b600060405180830381600087803b15801561168157600080fd5b505af1158015611695573d6000803e3d6000fd5b505050505b600554156117d1576040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611709573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172d9190612cb2565b90506000670de0b6b3a7640000600554836117489190612f18565b6117529190612f2f565b60045490915061178d907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031683611cfb565b6002546117ce907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b03166117c98486612f51565b611cfb565b50505b505050505050505050505050505050565b6000546001600160a01b036201000090910416331461052f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610585565b61068c6117e2565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561187e57610a0c83611dde565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156118d8575060408051601f3d908101601f191682019092526118d591810190612cb2565b60015b61193b5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610585565b60008051602061318283398151915281146119aa5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610585565b50610a0c838383611e7a565b600180546001600160a01b031916905561068c81611e9f565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190612cb2565b905081811015611a5d576040516308aeed0f60e21b815260040160405180910390fd5b8015611a6e57611a6e848483611cfb565b50505050565b604080516001600160a01b03841660208083019190915261ffff84168284015282518083038401815260609092019092528051910120600090611ada907f0000000000000000000000000000000000000000000000000000000000000000908490611efa565b90505b92915050565b60018151118015611b4b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168160018351611b289190612f51565b81518110611b3857611b38612d65565b60200260200101516001600160a01b0316145b61068c5760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b6044820152606401610585565b60008151118015611bd057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611bc58261205d565b6001600160a01b0316145b61068c5760405162461bcd60e51b81526020600482015260126024820152710929cac82989288beaa9c92ac66bea082a8960731b6044820152606401610585565b6040516001600160a01b03838116602483015260448201839052600091829186169060640160408051601f198184030181529181526020820180516001600160e01b031663095ea7b360e01b17905251611c6b9190612f80565b6000604051808303816000865af19150503d8060008114611ca8576040519150601f19603f3d011682016040523d82523d6000602084013e611cad565b606091505b5091509150818015611cd7575080511580611cd7575080806020019051810190611cd79190612f9c565b611cf45760405163cbade9b160e01b815260040160405180910390fd5b5050505050565b6040516001600160a01b03838116602483015260448201839052600091829186169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b17905251611d559190612f80565b6000604051808303816000865af19150503d8060008114611d92576040519150601f19603f3d011682016040523d82523d6000602084013e611d97565b606091505b5091509150818015611dc1575080511580611dc1575080806020019051810190611dc19190612f9c565b611cf45760405163847ea61d60e01b815260040160405180910390fd5b6001600160a01b0381163b611e4b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610585565b60008051602061318283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611e8383612093565b600082511180611e905750805b15610a0c57611a6e83836120d3565b600080546001600160a01b038381166201000081810262010000600160b01b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b60006127108361ffff161015611f8957604051638c83803560e01b815261ffff84166004820152611f82906001600160a01b03861690638c83803590602401602060405180830381865afa158015611f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7a9190612fbe565b8484876120f8565b9050612056565b6040516334b1f0a960e21b815261ffff84166004820152611f82906001600160a01b0386169063d2c7c2a490602401602060405180830381865afa158015611fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff99190612fbe565b604051603881018790526f5af43d82803e903d91602b57fd5bf3ff60248201526014810191909152733d602d80600a3d3981f3363d3d373d3d3d363d738152605881018490526037600c8201206078820152605560439091012090565b9392505050565b6000815b61206a81612163565b1561207f57612078816121b5565b9050612061565b612056600061208d836121b5565b906121fe565b61209c81611dde565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611ada83836040518060600160405280602781526020016131a2602791396122b2565b60008061210686868561232a565b8051602091820120604080516001600160f81b031981850152606087901b6001600160601b03191660218201526035810188905260558082019390935281518082039093018352607501905280519101209150505b949350505050565b6000600361217360026014612fdb565b61217d9190612fdb565b6014600361218c600283612fdb565b6121969190612fdb565b6121a09190612fdb565b6121aa9190612fdb565b825110159050919050565b6060611add60036121c860026014612fdb565b6121d29190612fdb565b60036121e060026014612fdb565b6121ea9190612fdb565b84516121f69190612f51565b8491906124dd565b60008161220c816014612fdb565b101561224f5760405162461bcd60e51b8152602060048201526012602482015271746f416464726573735f6f766572666c6f7760701b6044820152606401610585565b61225a826014612fdb565b835110156122a25760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610585565b500160200151600160601b900490565b6060600080856001600160a01b0316856040516122cf9190612f80565b600060405180830381855af49150503d806000811461230a576040519150601f19603f3d011682016040523d82523d6000602084013e61230f565b606091505b509150915061232086838387612634565b9695505050505050565b6060836101008461ffff161061235957604051806040016040528060018152602001606d60f81b815250612374565b604051806040016040528060018152602001601b60fa1b8152505b6101008561ffff16106123a057604051806040016040528060018152602001606160f81b8152506123bb565b604051806040016040528060018152602001600360fd1b8152505b6101008661ffff16106123f6576040516001600160f01b031960f088901b166020820152602201604051602081830303815290604052612420565b6040516001600160f81b031960f888901b1660208201526021016040516020818303038152906040525b856101008861ffff161061244d57604051806040016040528060018152602001603b60f81b815250612468565b604051806040016040528060018152602001601d60f91b8152505b6101008961ffff161061249457604051806040016040528060018152602001601760fa1b8152506124af565b604051806040016040528060018152602001605b60f81b8152505b6040516020016124c59796959493929190612fee565b60405160208183030381529060405290509392505050565b6060816124eb81601f612fdb565b101561252a5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610585565b826125358382612fdb565b10156125745760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610585565b61257e8284612fdb565b845110156125c25760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610585565b6060821580156125e1576040519150600082526020820160405261262b565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561261a578051835260209283019201612602565b5050858452601f01601f1916604052505b50949350505050565b606083156126a357825160000361269c576001600160a01b0385163b61269c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610585565b508161215b565b61215b83838151156126b85781518083602001fd5b8060405162461bcd60e51b8152600401610585919061316e565b6001600160a01b038116811461068c57600080fd5b80356126f2816126d2565b919050565b803561ffff811681146126f257600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561274857612748612709565b604052919050565b600067ffffffffffffffff82111561276a5761276a612709565b5060051b60200190565b600082601f83011261278557600080fd5b8135602061279a61279583612750565b61271f565b82815260059290921b840181019181810190868411156127b957600080fd5b8286015b848110156127d457803583529183019183016127bd565b509695505050505050565b600082601f8301126127f057600080fd5b8135602061280061279583612750565b82815260059290921b8401810191818101908684111561281f57600080fd5b8286015b848110156127d4578035612836816126d2565b8352918301918301612823565b600082601f83011261285457600080fd5b813567ffffffffffffffff81111561286e5761286e612709565b612881601f8201601f191660200161271f565b81815284602083860101111561289657600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060008060006101208a8c0312156128d257600080fd5b6128db8a6126e7565b98506128e960208b016126f7565b975060408a0135965060608a013567ffffffffffffffff8082111561290d57600080fd5b6129198d838e01612774565b975060808c013591508082111561292f57600080fd5b61293b8d838e01612774565b965060a08c013591508082111561295157600080fd5b61295d8d838e016127df565b955060c08c013591508082111561297357600080fd5b61297f8d838e016127df565b945060e08c013591508082111561299557600080fd5b6129a18d838e01612843565b93506101008c01359150808211156129b857600080fd5b506129c58c828d01612843565b9150509295985092959850929598565b6000602082840312156129e757600080fd5b8135612056816126d2565b60008060408385031215612a0557600080fd5b8235612a10816126d2565b9150602083013567ffffffffffffffff811115612a2c57600080fd5b612a3885828601612843565b9150509250929050565b60008083601f840112612a5457600080fd5b50813567ffffffffffffffff811115612a6c57600080fd5b6020830191508360208260051b8501011115612a8757600080fd5b9250929050565b60008060008060008060006080888a031215612aa957600080fd5b873567ffffffffffffffff80821115612ac157600080fd5b612acd8b838c01612a42565b909950975060208a0135915080821115612ae657600080fd5b612af28b838c01612a42565b909750955060408a01359150612b07826126d2565b90935060608901359080821115612b1d57600080fd5b818a0191508a601f830112612b3157600080fd5b813581811115612b4057600080fd5b8b6020828501011115612b5257600080fd5b60208301945080935050505092959891949750929550565b600080600060608486031215612b7f57600080fd5b8335612b8a816126d2565b92506020840135612b9a816126d2565b929592945050506040919091013590565b60008060408385031215612bbe57600080fd5b823591506020830135612bd0816126d2565b809150509250929050565b600060208284031215612bed57600080fd5b5035919050565b6020808252600c908201526b5a45524f5f4144445245535360a01b604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215612cc457600080fd5b5051919050565b60006020808385031215612cde57600080fd5b825167ffffffffffffffff811115612cf557600080fd5b8301601f81018513612d0657600080fd5b8051612d1461279582612750565b81815260059190911b82018301908381019087831115612d3357600080fd5b928401925b82841015612d5a578351612d4b816126d2565b82529284019290840190612d38565b979650505050505050565b634e487b7160e01b600052603260045260246000fd5b60005b83811015612d96578181015183820152602001612d7e565b50506000910152565b60008151808452612db7816020860160208601612d7b565b601f01601f19169290920160200192915050565b60006080830182518452602061ffff81850151168186015260408401516080604087015282815180855260a0880191508383019450600092505b80831015612e2e5784516001600160a01b03168252938301936001929092019190830190612e05565b50606086015193508681036060880152612d5a8185612d9f565b606081526000610120820161ffff865116606084015260208087015160018060a01b0380821660808701528060408a01511660a08701525050606087015160c0850152608087015160e085015260a087015160c0610100860152828151808552610140870191508383019450600092505b80831015612ed95784518252938301936001929092019190830190612eb9565b5085810383870152612eeb8189612dcb565b935050505082810360408401526123208185612dcb565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417611add57611add612f02565b600082612f4c57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115611add57611add612f02565b60008151612f76818560208601612d7b565b9290920192915050565b60008251612f92818460208701612d7b565b9190910192915050565b600060208284031215612fae57600080fd5b8151801515811461205657600080fd5b600060208284031215612fd057600080fd5b8151612056816126d2565b80820180821115611add57611add612f02565b72608060405234801561001057600080fd5b507360681b8152606088901b6001600160601b0319166013820152607f60f81b60278201527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060288201526102ab60f51b6048820152865160009061306c81604a850160208c01612d7b565b6a4030802b30001cb00079ff60a91b604a91840191820152703040302040c829319a58f854b0710dc0a960791b60558201526130cd6130b76130b1606684018b612f64565b89612f64565b696084526020816024817360b01b8152600a0190565b90506130e5818760601b6001600160601b0319169052565b6202d7d360ed1b601482015261316061313f613139613106601785016130b1565b7f573d6000fd5b5060805160003681823780813683855af491503d81823e8180158152600360fd1b602082015260210190565b86612f64565b742b9ec179ad9ec17eff50b239b7b631a180040a800560591b815260150190565b9a9950505050505050505050565b602081526000611ada6020830184612d9f56fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220503d428cf0c691419e3b2b07a60aa9bbfba74061af3cdbe6c2beaa6e20ca24e164736f6c6343000815003300000000000000000000000034b5870c0431158e11c68b770127fbd2ce953f7a000000000000000000000000820c5a8b37b37274bb8418e854c44a13451fff320000000000000000000000009025cae731ff8f1b631043bafcdd5ae51a84140b000000000000000000000000fd513630f697a9c1731f196185fb9eba6eaac20b00000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1