0 txs
1 call
constructor
constructor(address _protocolAdmin, address _shekelToken, address _shekelStakingContract, address _lockerFactory)
functions
getGlobalParams
viewfunction getGlobalParams() view returns (tuple)
isFundContract
viewfunction isFundContract(address contractAddress) view returns (bool)
owner
viewfunction owner() view returns (address)
createFund
nonpayablefunction createFund(uint256 fundraisingGoal, string name, string symbol, uint256 fundraisingDeadline, uint256 fundExpiry, address kosherManager, uint256 maxWhitelistAmount, uint256 maxPublicContributionAmount, bool isCbBTCFund, uint256 stakeRequiredPerContribution) returns (address)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateGlobalParams
nonpayablefunction updateGlobalParams(tuple newParams)
updateLockerFactory
nonpayablefunction updateLockerFactory(address newLockerFactory)
updateProtocolAdmin
nonpayablefunction updateProtocolAdmin(address newProtocolAdmin)
updateShekelStakingContract
nonpayablefunction updateShekelStakingContract(address newShekelStakingContract)
updateShekelToken
nonpayablefunction updateShekelToken(address newShekelToken)
events
FundCreated
event FundCreated(address indexed fundAddress, string name, string symbol)
GlobalParamsUpdated
event GlobalParamsUpdated((address protocolAdmin, address shekelToken, address shekelStakingContract, address lockerFactory) newParams)
LockerFactoryUpdated
event LockerFactoryUpdated(address newLockerFactory)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ProtocolAdminUpdated
event ProtocolAdminUpdated(address newProtocolAdmin)
ShekelStakingContractUpdated
event ShekelStakingContractUpdated(address newShekelStakingContract)
ShekelTokenUpdated
event ShekelTokenUpdated(address newShekelToken)
errors
FundAlreadyExists
error FundAlreadyExists()
InvalidAddress
error InvalidAddress()
InvalidDeadline
error InvalidDeadline()
InvalidFundExpiry
error InvalidFundExpiry()
InvalidFundraisingGoal
error InvalidFundraisingGoal()
InvalidStakeRequirement
error InvalidStakeRequirement()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
Unauthorized
error Unauthorized()
creation bytecode
0x608060405234801561001057600080fd5b5060405161549d38038061549d83398101604081905261002f916101e0565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610174565b50600180556001600160a01b03841661008a5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0383166100b15760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0382166100d85760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0381166100ff5760405163e6c4247b60e01b815260040160405180910390fd5b604080516080810182526001600160a01b0395861680825294861660208201819052938616918101829052919094166060909101819052600280546001600160a01b03199081169094179055600380548416909217909155600480548316909317909255600580549091169091179055610234565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146101db57600080fd5b919050565b600080600080608085870312156101f657600080fd5b6101ff856101c4565b935061020d602086016101c4565b925061021b604086016101c4565b9150610229606086016101c4565b905092959194509250565b61525a806102436000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80636b3222e6116100715780636b3222e614610155578063715018a6146101fe57806374b5d6b1146102065780638da5cb5b14610219578063c1d3be8b1461022a578063f2fde38b1461023d57600080fd5b8063022fc40e146100ae5780630ceb1f67146100c357806318b07ca21461010457806339d064a3146101175780634b25fb8014610142575b600080fd5b6100c16100bc3660046108c4565b610250565b005b6100ef6100d13660046108c4565b6001600160a01b031660009081526006602052604090205460ff1690565b60405190151581526020015b60405180910390f35b6100c16101123660046108c4565b6102d4565b61012a61012536600461099d565b610351565b6040516001600160a01b0390911681526020016100fb565b6100c16101503660046108c4565b610572565b6101bb60408051608081018252600080825260208201819052918101829052606081019190915250604080516080810182526002546001600160a01b03908116825260035481166020830152600454811692820192909252600554909116606082015290565b6040516100fb919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606092830151169181019190915260800190565b6100c16105ef565b6100c1610214366004610a69565b610603565b6000546001600160a01b031661012a565b6100c16102383660046108c4565b61072b565b6100c161024b3660046108c4565b6107a8565b6102586107eb565b6001600160a01b03811661027f5760405163e6c4247b60e01b815260040160405180910390fd5b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527ff557bdcdfe8b1184f10c6fe9ac7189955b6b8089703e203dfa50743216ade04a906020015b60405180910390a150565b6102dc6107eb565b6001600160a01b0381166103035760405163e6c4247b60e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f9eede2b97f6e764caab5e2e33dfed38de6b083a3a863094daa0e868e3c6fae6b906020016102c9565b600061035b610818565b8a60000361037c57604051632d47cb8f60e11b815260040160405180910390fd5b42881161039c57604051631da7447960e21b815260040160405180910390fd5b8787116103bc57604051639ae7e6a760e01b815260040160405180910390fd5b816000036103dd5760405163c195a09760e01b815260040160405180910390fd5b6001600160a01b0386166104045760405163e6c4247b60e01b815260040160405180910390fd5b604080516101c0810182528c8152602081018c90528082018b9052606081018a9052608081018990526001600160a01b0380891660a083015260c08201889052600254811660e08301526101008201879052851515610120830152610140820185905260035481166101608301526004548116610180830152600554166101a08201529051600090829061049790610892565b6104a19190610aca565b604051809103906000f0801580156104bd573d6000803e3d6000fd5b506001600160a01b03811660009081526006602052604090205490915060ff16156104fb5760405163065ddb1960e21b815260040160405180910390fd5b6001600160a01b03811660008181526006602052604090819020805460ff19166001179055517faac40c8ecf116edb56b3915e304904e16086b229e0cc4d0db093edc816513c1d90610550908f908f90610be7565b60405180910390a291505061056460018055565b9a9950505050505050505050565b61057a6107eb565b6001600160a01b0381166105a15760405163e6c4247b60e01b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527f85fd02827b52938b46618cf0daa3e7bb12d3d0685da78cbd4b7ca66edb6ce928906020016102c9565b6105f76107eb565b6106016000610842565b565b61060b6107eb565b600061061a60208301836108c4565b6001600160a01b0316036106415760405163e6c4247b60e01b815260040160405180910390fd5b600061065360408301602084016108c4565b6001600160a01b03160361067a5760405163e6c4247b60e01b815260040160405180910390fd5b600061068c60608301604084016108c4565b6001600160a01b0316036106b35760405163e6c4247b60e01b815260040160405180910390fd5b60006106c560808301606084016108c4565b6001600160a01b0316036106ec5760405163e6c4247b60e01b815260040160405180910390fd5b8060026106f98282610c35565b9050507fab03639855987692133205802004050f2476c9dc21a499f92e0d69011ebb1c3e816040516102c99190610ca3565b6107336107eb565b6001600160a01b03811661075a5760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f1af81a401acf01a36af32532151690df1252f468decdeb32a9252e7e15d0a30f906020016102c9565b6107b06107eb565b6001600160a01b0381166107df57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6107e881610842565b50565b6000546001600160a01b031633146106015760405163118cdaa760e01b81523360048201526024016107d6565b60026001540361083b57604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61450980610d1c83390190565b6001600160a01b03811681146107e857600080fd5b80356108bf8161089f565b919050565b6000602082840312156108d657600080fd5b81356108e18161089f565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261090f57600080fd5b813567ffffffffffffffff811115610929576109296108e8565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610958576109586108e8565b60405281815283820160200185101561097057600080fd5b816020850160208301376000918101602001919091529392505050565b803580151581146108bf57600080fd5b6000806000806000806000806000806101408b8d0312156109bd57600080fd5b8a35995060208b013567ffffffffffffffff8111156109db57600080fd5b6109e78d828e016108fe565b99505060408b013567ffffffffffffffff811115610a0457600080fd5b610a108d828e016108fe565b98505060608b0135965060808b01359550610a2d60a08c016108b4565b945060c08b0135935060e08b01359250610a4a6101008c0161098d565b915060006101208c01359050809150509295989b9194979a5092959850565b60006080828403128015610a7c57600080fd5b509092915050565b6000815180845260005b81811015610aaa57602081850181015186830182015201610a8e565b506000602082860101526020601f19601f83011685010191505092915050565b6020815281516020820152600060208301516101c06040840152610af26101e0840182610a84565b90506040840151601f19848303016060850152610b0f8282610a84565b91505060608401516080840152608084015160a084015260a0840151610b4060c08501826001600160a01b03169052565b5060c084015160e084015260e0840151610b666101008501826001600160a01b03169052565b50610100840151610120840152610120840151610b8861014085018215159052565b50610140840151610160840152610160840151610bb16101808501826001600160a01b03169052565b506101808401516001600160a01b0381166101a0850152506101a08401516001600160a01b0381166101c0850152509392505050565b604081526000610bfa6040830185610a84565b8281036020840152610c0c8185610a84565b95945050505050565b80546001600160a01b0319166001600160a01b0392909216919091179055565b8135610c408161089f565b610c4a8183610c15565b506020820135610c598161089f565b610c668160018401610c15565b506040820135610c758161089f565b610c828160028401610c15565b506060820135610c918161089f565b610c9e8160038401610c15565b505050565b608081018235610cb28161089f565b6001600160a01b031682526020830135610ccb8161089f565b6001600160a01b031660208301526040830135610ce78161089f565b6001600160a01b031660408301526060830135610d038161089f565b6001600160a01b03166060929092019190915291905056fe61018060405262127500608052683635c9adc5dea0000060a05261271060c0526a52b7d2dcc80cd2e400000060e0526b033b2e3c9fd0803ce8000000610100526002805460ff60a01b1916604b60a01b17905534801561005e57600080fd5b5060405161450938038061450983398101604081905261007d916105e5565b60a08101516001600160a01b0381166100b057604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100b981610475565b506001805533156100dd576040516310042f1360e11b815260040160405180910390fd5b80516000036100ff57604051632d47cb8f60e11b815260040160405180910390fd5b4281606001511161012357604051631da7447960e21b815260040160405180910390fd5b806060015181608001511161014b576040516302a0464f60e51b815260040160405180910390fd5b8061014001516000036101715760405163c195a09760e01b815260040160405180910390fd5b6101608101516001600160a01b031661019d5760405163e6c4247b60e01b815260040160405180910390fd5b6101808101516001600160a01b03166101c95760405163e6c4247b60e01b815260040160405180910390fd5b6101a08101516001600160a01b03166101f55760405163e6c4247b60e01b815260040160405180910390fd5b610160808201516001600160a01b03908116610120526101808301518116610140526101a0830151169052602081015160119061023290826107b5565b50604081015160129061024590826107b5565b5080516005556060810151600755608081015160085560c0810151600a5560e0810151600380546001600160a01b0319166001600160a01b03909216919091179055610100810151600b55610120810151600d805460ff60a01b1916600160a01b92151583021790819055610140830151600c5560ff91900416156102eb57600280546001600160a01b03191673cbb7c0000ab88b473b1f5afd9ef808440eed33bf1790555b61016081015160035460085460405163fddaec4960e01b81526001600160a01b039384166004820152929091166024830152604482015260009063fddaec49906064016020604051808303816000875af115801561034d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103719190610873565b600f80546001600160a01b0319166001600160a01b039290921691821790556040519081527f4d034e7999b73c980126bf84dde16d9a4c8432586a8e50e56c93bb965f4b974b9060200160405180910390a160e081015160c082015160a0830151604051631b36797d60e31b81526001600160a01b039384166004820152602481019290925291909116604482015260009063d9b3cbe8906064016020604051808303816000875af115801561042b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044f9190610873565b601080546001600160a01b0319166001600160a01b039290921691909117905550610895565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b6040516101c081016001600160401b03811182821017156104fe576104fe6104c5565b60405290565b604051601f8201601f191681016001600160401b038111828210171561052c5761052c6104c5565b604052919050565b600082601f83011261054557600080fd5b81516001600160401b0381111561055e5761055e6104c5565b610571601f8201601f1916602001610504565b81815284602083860101111561058657600080fd5b60005b828110156105a557602081860181015183830182015201610589565b506000918101602001919091529392505050565b80516001600160a01b03811681146105d057600080fd5b919050565b805180151581146105d057600080fd5b6000602082840312156105f757600080fd5b81516001600160401b0381111561060d57600080fd5b82016101c0818503121561062057600080fd5b6106286104db565b8151815260208201516001600160401b0381111561064557600080fd5b61065186828501610534565b60208301525060408201516001600160401b0381111561067057600080fd5b61067c86828501610534565b60408301525060608281015190820152608080830151908201526106a260a083016105b9565b60a082015260c082810151908201526106bd60e083016105b9565b60e082015261010082810151908201526106da61012083016105d5565b61012082015261014082810151908201526106f861016083016105b9565b61016082015261070b61018083016105b9565b61018082015261071e6101a083016105b9565b6101a0820152949350505050565b600181811c9082168061074057607f821691505b60208210810361076057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156107b057806000526020600020601f840160051c8101602085101561078d5750805b601f840160051c820191505b818110156107ad5760008155600101610799565b50505b505050565b81516001600160401b038111156107ce576107ce6104c5565b6107e2816107dc845461072c565b84610766565b6020601f82116001811461081657600083156107fe5750848201515b600019600385901b1c1916600184901b1784556107ad565b600084815260208120601f198516915b828110156108465787850151825560209485019460019092019101610826565b50848210156108645786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60006020828403121561088557600080fd5b61088e826105b9565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051613bd76109326000396000612a7b0152600061123601526000818161182501528181611e7b01528181611f07015281816124200152818161279601526128c601526000818161164a01526124f2015260008181612473015261292b0152600081816127c101526128ef01526000612687015260006126610152613bd76000f3fe60806040526004361061024a5760003560e01c806374c515ae11610139578063c1cbbca7116100b6578063d1e56e541161007a578063d1e56e54146106be578063d9629049146106d3578063ed3655eb146106f1578063f0c5d5491461070f578063f2fde38b14610724578063f47586861461074457600080fd5b8063c1cbbca714610643578063c2b7d79f14610656578063c45a01551461066b578063c6e5546c14610680578063d07f8482146106a057600080fd5b80638da5cb5b116100fd5780638da5cb5b146105c6578063947fe812146105e457806395d89b41146106045780639f55029314610619578063bb2e37e51461062e57600080fd5b806374c515ae1461053257806375d8d68d146105515780638153f8f81461056657806383694cf01461058657806384d4875e146105a657600080fd5b80633f2ff8bd116101c7578063590e1ae31161018b578063590e1ae3146104b557806364e9a9b6146104ca57806366a10368146104df578063715018a6146104fd57806372e041a01461051257600080fd5b80633f2ff8bd14610413578063421aef3714610427578063541d45e71461045557806356e1b2cf1461046a57806357fbcda51461047f57600080fd5b80632109db591161020e5780632109db591461037f57806327c5425c1461039f5780632b517d21146103be5780632ea44681146103d35780633a008606146103f357600080fd5b806306fdde0314610294578063150b7a02146102bf5780631aadcf46146103045780631af1a502146103365780631b8df5861461035657600080fd5b3661028f57600654610100900460ff16158015610268575060075442105b801561027e5750600d54600160a01b900460ff16155b1561028d5761028d600061075c565b005b600080fd5b3480156102a057600080fd5b506102a9610b16565b6040516102b6919061305c565b60405180910390f35b3480156102cb57600080fd5b506102eb6102da366004613084565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020016102b6565b34801561031057600080fd5b50600f546001600160a01b03165b6040516001600160a01b0390911681526020016102b6565b34801561034257600080fd5b5061028d610351366004613125565b610ba4565b34801561036257600080fd5b50600654610100900460ff165b60405190151581526020016102b6565b34801561038b57600080fd5b5061028d61039a366004613125565b610c6d565b3480156103ab57600080fd5b50600d54600160a01b900460ff1661036f565b3480156103ca57600080fd5b5061028d610d42565b3480156103df57600080fd5b5061028d6103ee366004613125565b610dee565b3480156103ff57600080fd5b5061028d61040e366004613125565b610eb5565b34801561041f57600080fd5b50600061031e565b34801561043357600080fd5b5061044761044236600461313e565b611164565b6040519081526020016102b6565b34801561046157600080fd5b50600854610447565b34801561047657600080fd5b5061028d6112cb565b34801561048b57600080fd5b5061044761049a36600461313e565b6001600160a01b031660009081526016602052604090205490565b3480156104c157600080fd5b5061028d6114c1565b3480156104d657600080fd5b50600754610447565b3480156104eb57600080fd5b50600d546001600160a01b031661031e565b34801561050957600080fd5b5061028d6115ce565b34801561051e57600080fd5b5061028d61052d36600461316a565b6115e0565b34801561053e57600080fd5b50601054600160a01b900460ff1661036f565b34801561055d57600080fd5b5061028d6116d3565b34801561057257600080fd5b5061028d610581366004613125565b61175c565b34801561059257600080fd5b5061028d6105a1366004613125565b6117c3565b3480156105b257600080fd5b5061028d6105c1366004613125565b6118fc565b3480156105d257600080fd5b506000546001600160a01b031661031e565b3480156105f057600080fd5b5061028d6105ff3660046131f7565b611945565b34801561061057600080fd5b506102a9611aeb565b34801561062557600080fd5b50600454610447565b34801561063a57600080fd5b5061028d611af8565b61028d610651366004613125565b61075c565b34801561066257600080fd5b50600554610447565b34801561067757600080fd5b5061031e600081565b34801561068c57600080fd5b5061028d61069b36600461329d565b611fcd565b3480156106ac57600080fd5b506009546001600160a01b031661031e565b3480156106ca57600080fd5b50600c54610447565b3480156106df57600080fd5b506010546001600160a01b031661031e565b3480156106fd57600080fd5b50600e546001600160a01b031661031e565b34801561071b57600080fd5b50600b54610447565b34801561073057600080fd5b5061028d61073f36600461313e565b612155565b34801561075057600080fd5b5060065460ff1661036f565b610764612190565b600654610100900460ff161561078d57604051631df969b760e01b815260040160405180910390fd5b60075442106107af5760405163e478792360e01b815260040160405180910390fd5b600d54600090600160a01b900460ff16156108235734156107e2576040516248c6b960e61b815260040160405180910390fd5b816000036108035760405163244d19c360e21b815260040160405180910390fd5b50600254819061081e906001600160a01b03163330846121ba565b610866565b346000036108445760405163652122d960e01b815260040160405180910390fd5b81156108635760405163652122d960e01b815260040160405180910390fd5b50345b600a541561093957601054604051633af32abf60e01b81523360048201526001600160a01b0390911690633af32abf90602401602060405180830381865afa1580156108b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108da91906132bf565b6108f757604051630b094f2760e31b815260040160405180910390fd5b600a54336000908152601660205260409020546109159083906132f7565b11156109345760405163a6bd512160e01b815260040160405180910390fd5b610985565b600061094433611164565b3360009081526016602052604090205490915081906109649084906132f7565b11156109835760405163613abeb360e11b815260040160405180910390fd5b505b6005546004548291906109999083906132f7565b1115610a22576004546005546109af919061330a565b600d54909150600160a01b900460ff16156109ea576109e5336109d2838561330a565b6002546001600160a01b03169190612227565b610a22565b336108fc6109f8838561330a565b6040518115909202916000818181858888f19350505050158015610a20573d6000803e3d6000fd5b505b336000908152601660205260408120549003610a7b57601380546001810182556000919091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0900180546001600160a01b031916331790555b3360009081526016602052604081208054839290610a9a9084906132f7565b925050819055508060046000828254610ab391906132f7565b909155505060405181815233907f4d154d4aae216bed6d0926db77c00df2b57c6b5ba4eee05775de20facede3a7b9060200160405180910390a260055460045403610b08576006805461ff0019166101001790555b5050610b1360018055565b50565b60118054610b239061331d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4f9061331d565b8015610b9c5780601f10610b7157610100808354040283529160200191610b9c565b820191906000526020600020905b815481529060010190602001808311610b7f57829003601f168201915b505050505081565b610bac61225d565b6008548111610bce57604051639ae7e6a760e01b815260040160405180910390fd5b6008819055600d54604051630d78d28160e11b8152600481018390526001600160a01b0390911690631af1a50290602401600060405180830381600087803b158015610c1957600080fd5b505af1158015610c2d573d6000803e3d6000fd5b505050507f4e5dd36969507fae1e69607cd3b2492dafc0c3ae1bf1c50f921a5642847fa30981604051610c6291815260200190565b60405180910390a150565b6000546001600160a01b03163314801590610c9357506003546001600160a01b03163314155b15610cb15760405163ea8e4eb560e01b815260040160405180910390fd5b600654610100900460ff1615610cda57604051631df969b760e01b815260040160405180910390fd5b6007548111610cfc5760405163d71c2da560e01b815260040160405180910390fd5b600780549082905560408051828152602081018490527fcf8355056cd2d0cfbb80a34af77420d1e6eceacc85186e561d75a1a210179a9191015b60405180910390a15050565b610d4a612190565b610d5261225d565b600f546001600160a01b0316610d7b5760405163a86ab33d60e01b815260040160405180910390fd5b600f60009054906101000a90046001600160a01b03166001600160a01b031663a69df4b56040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610dcb57600080fd5b505af1158015610ddf573d6000803e3d6000fd5b50505050610dec60018055565b565b610df661225d565b60065460ff1615610e1a57604051631c6cb8d360e21b815260040160405180910390fd5b80600003610e3b57604051632d47cb8f60e11b815260040160405180910390fd5b600454811015610e5e5760405163447f926160e01b815260040160405180910390fd5b60058054908290556004546006805461ff0019169184146101000291909117905560408051828152602081018490527f961c8b414cced5fba2600265359474975f844fcadb7ee9d50f7f9d19ff1711ea9101610d36565b610ebd612190565b600854421015610ee05760405163f6bc0a2960e01b815260040160405180910390fd5b80600003610f0157604051636c8dbc8560e01b815260040160405180910390fd5b6009546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7c91906132bf565b50600954604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610feb9190613357565b6040516370a0823160e01b815230600482015290915060009073cbb7c0000ab88b473b1f5afd9ef808440eed33bf906370a0823190602401602060405180830381865afa158015611040573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110649190613357565b90506000826110738386613370565b61107d919061339d565b9050806000036110a05760405163136cc93360e11b815260040160405180910390fd5b60405163a9059cbb60e01b81523360048201526024810182905273cbb7c0000ab88b473b1f5afd9ef808440eed33bf9063a9059cbb906044016020604051808303816000875af11580156110f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111c91906132bf565b50604080518581526020810183905233917f14a63150777b38b4fc5ed9116132ab2a2bc8357bbbc698378fd605b9eaa65907910160405180910390a2505050610b1360018055565b600a546000901561121457601054604051633af32abf60e01b81526001600160a01b03848116600483015290911690633af32abf90602401602060405180830381865afa1580156111b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111dd91906132bf565b6111e857600061120e565b6001600160a01b038216600090815260166020526040902054600a5461120e919061330a565b92915050565b6040516326d352ab60e11b81526001600160a01b0383811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690634da6a55690602401602060405180830381865afa15801561127f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a39190613357565b90506000600c54826112b5919061339d565b90506112c381600b5461228a565b949350505050565b60006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561130a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132e91906133cf565b6001600160a01b0316336001600160a01b03161461135f5760405163ea8e4eb560e01b815260040160405180910390fd5b60065460ff16156113835760405163475a253560e01b815260040160405180910390fd5b600d54600160a01b900460ff1615611427576002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156113de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190613357565b90508015610b1357600354600254610b13916001600160a01b03918216911683612227565b6003546040516000916001600160a01b03169047908381818185875af1925050503d8060008114611474576040519150601f19603f3d011682016040523d82523d6000602084013e611479565b606091505b5050905080610b135760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064015b60405180910390fd5b6114c9612190565b600654610100900460ff16156114f257604051630b4d698160e01b815260040160405180910390fd5b600754421161151457604051630b4d698160e01b815260040160405180910390fd5b336000908152601660205260408120549003611543576040516307e3a5c760e01b815260040160405180910390fd5b3360009081526016602052604081208054919055600d54600160a01b900460ff161561158557600254611580906001600160a01b03163383612227565b61158f565b61158f338261229d565b60405181815233907fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d9060200160405180910390a250610dec60018055565b6115d661225d565b610dec600061233b565b6115e861225d565b600654610100900460ff16611610576040516378c754c960e01b815260040160405180910390fd5b60065460ff16156116345760405163475a253560e01b815260040160405180910390fd5b600061163f8261238b565b6004549091506116777f0000000000000000000000000000000000000000000000000000000000000000670de0b6b3a7640000613370565b611681919061339d565b60155561168d816125cc565b611698818585612769565b604051600181527fe64f408051437053caebc2ec8b10a45148f5acee3a6922908871b997f80d335d906020015b60405180910390a150505050565b6116db612190565b6116e361225d565b600f546001600160a01b031661170c5760405163a86ab33d60e01b815260040160405180910390fd5b600f60009054906101000a90046001600160a01b03166001600160a01b031663c4c77bda6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610dcb57600080fd5b61176461225d565b806000036117855760405163c195a09760e01b815260040160405180910390fd5b600c80549082905560408051828152602081018490527f290cd4e7df75ba05266ada6bd18ad0cf12aa3ff31e30c6af92166d26c27e267e9101610d36565b6117cb612190565b6117d361225d565b600f546001600160a01b03166117fc5760405163a86ab33d60e01b815260040160405180910390fd5b600f5460405163095ea7b360e01b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303816000875af1158015611870573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189491906132bf565b50600f5460405163083694cf60e41b8152600481018390526001600160a01b03909116906383694cf090602401600060405180830381600087803b1580156118db57600080fd5b505af11580156118ef573d6000803e3d6000fd5b50505050610b1360018055565b6000546001600160a01b0316331480159061192257506003546001600160a01b03163314155b156119405760405163ea8e4eb560e01b815260040160405180910390fd5b600b55565b61194d61225d565b60065460ff1661197057604051633e79acbd60e11b815260040160405180910390fd5b848314158061197f5750828114155b1561199d57604051636ed7379360e11b815260040160405180910390fd5b60005b85811015611ae25760008787838181106119bc576119bc6133ec565b90506020020160208101906119d1919061313e565b6001600160a01b0316036119f85760405163e6c4247b60e01b815260040160405180910390fd5b6000878783818110611a0c57611a0c6133ec565b9050602002016020810190611a21919061313e565b6001600160a01b0316848484818110611a3c57611a3c6133ec565b90506020020135878785818110611a5557611a556133ec565b9050602002810190611a679190613402565b604051611a75929190613449565b60006040518083038185875af1925050503d8060008114611ab2576040519150601f19603f3d011682016040523d82523d6000602084013e611ab7565b606091505b5050905080611ad957604051632b3f6d1160e21b815260040160405180910390fd5b506001016119a0565b50505050505050565b60128054610b239061331d565b611b00612190565b611b0861225d565b600854421015611b2b576040516360c1868d60e01b815260040160405180910390fd5b601054600160a01b900460ff1615611b56576040516356968a7d60e11b815260040160405180910390fd5b600d54604051632614965760e21b81527303a520b32c04bf3beef7beb72e919cf822ed34f160048201526000916001600160a01b031690639852595c90602401602060405180830381865afa158015611bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd79190613357565b9050600d60009054906101000a90046001600160a01b03166001600160a01b03166386d1a69f6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611c2957600080fd5b505af1158015611c3d573d6000803e3d6000fd5b505060405163133f757160e31b815260048101849052600092507303a520b32c04bf3beef7beb72e919cf822ed34f191506399fbab889060240161018060405180830381865afa158015611c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb9919061348e565b50506040805160a0810182528d81526001600160801b038086166020830190815260008385018181526060850182815242608087019081529651630624e65f60e11b815295516004870152925190931660248501529151604484015251606483015291516084820152939b5099508998507303a520b32c04bf3beef7beb72e919cf822ed34f19750630c49ccbe96505060a49091019350611d5992505050565b60408051808303816000875af1158015611d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9b9190613570565b6040805160808101825287815230602082019081526001600160801b0382840181815260608401828152945163fc6f786560e01b81529351600485015291516001600160a01b031660248401529051811660448301529151909116606482015291935091507303a520b32c04bf3beef7beb72e919cf822ed34f19063fc6f78659060840160408051808303816000875af1158015611e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e619190613570565b50506040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eee9190613357565b604051630852cd8d60e31b8152600481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342966c6890602401600060405180830381600087803b158015611f5357600080fd5b505af1158015611f67573d6000803e3d6000fd5b50506010805460ff60a01b1916600160a01b179055505060408051868152602081018590529081018390527fdf0c1a545ab645f93aa68abd4aa321caaf9091cc92b18e72bd3d385cbaba62719060600160405180910390a15050505050610dec60018055565b611fd5612190565b60065460ff16611ff857604051633e79acbd60e11b815260040160405180910390fd5b60155460000361201b5760405163438fb48f60e11b815260040160405180910390fd5b601354821061203d576040516392c4425960e01b815260040160405180910390fd5b60135481111561204c57506013545b80821061206c576040516392f1b43560e01b815260040160405180910390fd5b6009546001600160a01b0316825b8281101561214657600060138281548110612097576120976133ec565b60009182526020808320909101546001600160a01b0316808352601490915260409091205490915060ff1661213d576015546001600160a01b0382166000908152601660205260408120549091670de0b6b3a7640000916120f89190613370565b612102919061339d565b90506121186001600160a01b0385168383612227565b506001600160a01b0381166000908152601460205260409020805460ff191660011790555b5060010161207a565b505061215160018055565b5050565b61215d61225d565b6001600160a01b03811661218757604051631e4fbdf760e01b8152600060048201526024016114b8565b610b138161233b565b6002600154036121b357604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b6040516001600160a01b0384811660248301528381166044830152606482018390526122219186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612c75565b50505050565b6040516001600160a01b0383811660248301526044820183905261225891859182169063a9059cbb906064016121ef565b505050565b6000546001600160a01b03163314610dec5760405163118cdaa760e01b81523360048201526024016114b8565b60008282188284100282185b9392505050565b804710156122c75760405163cf47918160e01b8152476004820152602481018290526044016114b8565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612314576040519150601f19603f3d011682016040523d82523d6000602084013e612319565b606091505b50509050806122585760405163d6bda27560e01b815260040160405180910390fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60405163bef8de1f60e01b81526000908190819063bef8de1f906123b9906011906012908890600401613637565b6020604051808303816000875af11580156123d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123fc91906133cf565b600980546001600160a01b0319166001600160a01b038381169182179092559192507f0000000000000000000000000000000000000000000000000000000000000000161161245e57604051631b97c67d60e21b815260040160405180910390fd5b6040516340c10f1960e01b81523060048201527f0000000000000000000000000000000000000000000000000000000000000000602482015281906001600160a01b038216906340c10f1990604401600060405180830381600087803b1580156124c757600080fd5b505af11580156124db573d6000803e3d6000fd5b50506040516340c10f1960e01b81523060048201527f000000000000000000000000000000000000000000000000000000000000000060248201526001600160a01b03841692506340c10f199150604401600060405180830381600087803b15801561254657600080fd5b505af115801561255a573d6000803e3d6000fd5b50506006805460ff191660011790555050604080516338a80c5360e11b815290516001600160a01b0383169163715018a691600480830192600092919082900301818387803b1580156125ac57600080fd5b505af11580156125c0573d6000803e3d6000fd5b50939695505050505050565b6000806001600160a01b031663aded63bb6040518163ffffffff1660e01b81526004016020604051808303816000875af115801561260e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263291906133cf565b604080516001600160a01b038516602482015273cbb7c0000ab88b473b1f5afd9ef808440eed33bf60448201527f000000000000000000000000000000000000000000000000000000000000000060648201527f00000000000000000000000000000000000000000000000000000000000000006084808301919091528251808303909101815260a490910182526020810180516001600160e01b031663eb990c5960e01b179052905191925090600090839083906126f090613009565b6126fb92919061366d565b604051809103906000f080158015612717573d6000803e3d6000fd5b50600e80546001600160a01b0319166001600160a01b0383169081179091556040519081529091507faf264c47e57edc70c48b9909cc631216bca721afc6cc9b5a3c1489731b1523b4906020016116c5565b60006127778360020b612ce6565b60405163a167129560e01b81526001600160a01b0380871660048301527f000000000000000000000000000000000000000000000000000000000000000016602482015262ffffff7f00000000000000000000000000000000000000000000000000000000000000001660448201529091506000907333128a8fc17869897dce68ed026d694621f6fdfd9063a1671295906064016020604051808303816000875af115801561282a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061284e91906133cf565b60405163f637731d60e01b81526001600160a01b0384811660048301529192509082169063f637731d90602401600060405180830381600087803b15801561289557600080fd5b505af11580156128a9573d6000803e3d6000fd5b505060408051610160810182526001600160a01b038981168083527f000000000000000000000000000000000000000000000000000000000000000090911660208301527f000000000000000000000000000000000000000000000000000000000000000062ffffff1682840152600289810b606084015288900b60808301527f000000000000000000000000000000000000000000000000000000000000000060a08301819052600060c0840181905260e084018190526101008401523061012084015242610140840152925163095ea7b360e01b81527303a520b32c04bf3beef7beb72e919cf822ed34f160048201526024810193909352909350915063095ea7b3906044016020604051808303816000875af11580156129d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f491906132bf565b50604051634418b22b60e11b81526000907303a520b32c04bf3beef7beb72e919cf822ed34f190638831645690612a2f908590600401613691565b6080604051808303816000875af1158015612a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a729190613755565b505050905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166376b5c47d7303a520b32c04bf3beef7beb72e919cf822ed34f1612acf6000546001600160a01b031690565b6008546002546040516001600160e01b031960e087901b1681526001600160a01b03948516600482015293909216602484015267ffffffffffffffff1660448301526064820186905260ff600160a01b9091041660848201523060a482015260c4016020604051808303816000875af1158015612b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b7491906133cf565b604051632142170760e11b81523060048201526001600160a01b0382166024820152604481018490529091507303a520b32c04bf3beef7beb72e919cf822ed34f1906342842e0e90606401600060405180830381600087803b158015612bd957600080fd5b505af1158015612bed573d6000803e3d6000fd5b50506040516367a4d1c360e01b8152600481018590526001600160a01b03841692506367a4d1c39150602401600060405180830381600087803b158015612c3357600080fd5b505af1158015612c47573d6000803e3d6000fd5b5050600d80546001600160a01b0319166001600160a01b039490941693909317909255505050505050505050565b600080602060008451602086016000885af180612c98576040513d6000823e3d81fd5b50506000513d91508115612cb0578060011415612cbd565b6001600160a01b0384163b155b1561222157604051635274afe760e01b81526001600160a01b03851660048201526024016114b8565b60008060008360020b12612cfd578260020b612d05565b8260020b6000035b9050620d89e8811115612d2b576040516315e4079d60e11b815260040160405180910390fd5b600081600116600003612d4257600160801b612d54565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612d88576ffff97272373d413259a46990580e213a0260801c5b6004821615612da7576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612dc6576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612de5576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612e04576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612e23576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612e42576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612e62576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612e82576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612ea2576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612ec2576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612ee2576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f02576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612f22576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612f42576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612f63576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615612f83576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615612fa2576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615612fbf576b048a170391f7dc42444e8fa20260801c5b60008460020b1315612fe0578060001981612fdc57612fdc613387565b0490505b640100000000810615612ff4576001612ff7565b60005b60ff16602082901c0192505050919050565b6104108061379283390190565b6000815180845260005b8181101561303c57602081850181015186830182015201613020565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006122966020830184613016565b6001600160a01b0381168114610b1357600080fd5b60008060008060006080868803121561309c57600080fd5b85356130a78161306f565b945060208601356130b78161306f565b935060408601359250606086013567ffffffffffffffff8111156130da57600080fd5b8601601f810188136130eb57600080fd5b803567ffffffffffffffff81111561310257600080fd5b88602082840101111561311457600080fd5b959894975092955050506020019190565b60006020828403121561313757600080fd5b5035919050565b60006020828403121561315057600080fd5b81356122968161306f565b8060020b8114610b1357600080fd5b60008060006060848603121561317f57600080fd5b833561318a8161315b565b9250602084013561319a8161315b565b929592945050506040919091013590565b60008083601f8401126131bd57600080fd5b50813567ffffffffffffffff8111156131d557600080fd5b6020830191508360208260051b85010111156131f057600080fd5b9250929050565b6000806000806000806060878903121561321057600080fd5b863567ffffffffffffffff81111561322757600080fd5b61323389828a016131ab565b909750955050602087013567ffffffffffffffff81111561325357600080fd5b61325f89828a016131ab565b909550935050604087013567ffffffffffffffff81111561327f57600080fd5b61328b89828a016131ab565b979a9699509497509295939492505050565b600080604083850312156132b057600080fd5b50508035926020909101359150565b6000602082840312156132d157600080fd5b8151801515811461229657600080fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561120e5761120e6132e1565b8181038181111561120e5761120e6132e1565b600181811c9082168061333157607f821691505b60208210810361335157634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561336957600080fd5b5051919050565b808202811582820484141761120e5761120e6132e1565b634e487b7160e01b600052601260045260246000fd5b6000826133ba57634e487b7160e01b600052601260045260246000fd5b500490565b80516133ca8161306f565b919050565b6000602082840312156133e157600080fd5b81516122968161306f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261341957600080fd5b83018035915067ffffffffffffffff82111561343457600080fd5b6020019150368190038213156131f057600080fd5b8183823760009101908152919050565b805162ffffff811681146133ca57600080fd5b80516133ca8161315b565b80516001600160801b03811681146133ca57600080fd5b6000806000806000806000806000806000806101808d8f0312156134b157600080fd5b8c516bffffffffffffffffffffffff811681146134cd57600080fd5b9b506134db60208e016133bf565b9a506134e960408e016133bf565b99506134f760608e016133bf565b985061350560808e01613459565b975061351360a08e0161346c565b965061352160c08e0161346c565b955061352f60e08e01613477565b6101008e01516101208f01519196509450925061354f6101408e01613477565b915061355e6101608e01613477565b90509295989b509295989b509295989b565b6000806040838503121561358357600080fd5b505080516020909101519092909150565b8054600090600181811c908216806135ad57607f821691505b6020821081036135cd57634e487b7160e01b600052602260045260246000fd5b818652602086018180156135e857600181146135fe5761362c565b60ff198516825283151560051b8201955061362c565b60008781526020902060005b858110156136265781548482015260019091019060200161360a565b83019650505b505050505092915050565b60608152600061364a6060830186613594565b828103602084015261365c8186613594565b915050826040830152949350505050565b6001600160a01b03831681526040602082018190526000906112c390830184613016565b81516001600160a01b03168152610160810160208301516136bd60208401826001600160a01b03169052565b5060408301516136d4604084018262ffffff169052565b5060608301516136e9606084018260020b9052565b5060808301516136fe608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e08301526101008301516101008301526101208301516137456101208401826001600160a01b03169052565b5061014092830151919092015290565b6000806000806080858703121561376b57600080fd5b8451935061377b60208601613477565b604086015160609096015194979096509250505056fe608060405260405161041038038061041083398101604081905261002291610268565b61002c8282610033565b5050610358565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b919061033c565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b038111156102ae57600080fd5b8301601f810185136102bf57600080fd5b80516001600160401b038111156102d8576102d861022e565b604051601f8201601f19908116603f011681016001600160401b03811182821017156103065761030661022e565b60405281815282820160200187101561031e57600080fd5b61032f826020830160208601610244565b8093505050509250929050565b6000825161034e818460208701610244565b9190910192915050565b60aa806103666000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea2646970667358221220dcea5be7727728b321a6567a485cb0436c1c5ae9f51a138b242fa3b34ee7125c64736f6c634300081c0033a26469706673582212207a5255619dac99024d86c408f823713097367d59b36feea5c02d7954ed9c15ad64736f6c634300081c0033a2646970667358221220402e8e58bae6d3658b17acd75cec6de4c195f5bba24b5abf2a71af27fbbd657364736f6c634300081c003300000000000000000000000058230e0c6918a018a28bf97185eff02c2edeb8600000000000000000000000005f6a682a58854c7fbe228712aeeffccde0008ac0000000000000000000000000ad5b6c09a4edabb2c1be1ff4ab98ea59c4071fff000000000000000000000000255fb6c2854a48f6ddedf508d57450b143e2c601