0 txs
0 calls
constructor
No constructor.
functions
ADDRESSES_PROVIDER
viewfunction ADDRESSES_PROVIDER() view returns (address)
getStrategies
viewfunction getStrategies() view returns (address[])
lastRebalanceTimestamp
viewfunction lastRebalanceTimestamp() view returns (uint256)
POOL
viewfunction POOL() view returns (address)
__Vault_init
nonpayablefunction __Vault_init(address[] _strategies, tuple[] _initOperations)
deposit
nonpayablefunction deposit(address token, uint256 amount)
executeOperation
nonpayablefunction executeOperation(address token, uint256 amount, uint256 premium, address initiator, bytes params) returns (bool)
onMorphoFlashLoan
nonpayablefunction onMorphoFlashLoan(address token, uint256 amount, bytes data)
readState
nonpayablefunction readState() returns (tuple)
rebalance
nonpayablefunction rebalance(uint256 stateTimestamp, int256 _maxLoss, tuple[] _operations) returns (int256 loss)
setOperator
nonpayablefunction setOperator(address account, bool _operator)
setStrategies
nonpayablefunction setStrategies(address[] _strategies)
withdraw
nonpayablefunction withdraw(address token, uint256 amount)
events
Deposit
event Deposit(address token, uint256 amount)
Init
event Init()
Initialized
event Initialized(uint64 version)
Loss
event Loss(int256 loss)
Withdraw
event Withdraw(address token, uint256 amount)
errors
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60806040523461002057610011610025565b612b5f620000318239612b5f90f35b61002b565b60405190565b600080fdfe60806040526004361015610013575b610ab3565b61001e6000356100ed565b80630542975c146100e85780631b11d0ff146100e35780632187efef146100de5780632778c334146100d957806347e7ef24146100d4578063558a7297146100cf5780637535d246146100ca57806381e7d101146100c55780639a4620b7146100c0578063b49a60bb146100bb578063b83d8157146100b6578063cbeb4c10146100b15763f3fef3a30361000e57610a7f565b610a46565b610974565b6108df565b61080a565b61079c565b610714565b6106b1565b61062b565b610598565b610410565b6102f0565b610178565b60e01c90565b60405190565b600080fd5b600080fd5b600091031261010e57565b6100fe565b60018060a01b031690565b90565b61013561013061013a92610113565b61011e565b610113565b90565b61014690610121565b90565b6101529061013d565b90565b61015e90610149565b9052565b919061017690600060208501940190610155565b565b346101a857610188366004610103565b6101a4610193610d59565b61019b6100f3565b91829182610162565b0390f35b6100f9565b600080fd5b6101bb90610113565b90565b6101c7816101b2565b036101ce57565b600080fd5b905035906101e0826101be565b565b90565b6101ee816101e2565b036101f557565b600080fd5b90503590610207826101e5565b565b600080fd5b600080fd5b600080fd5b909182601f830112156102525781359167ffffffffffffffff831161024d57602001926001830284011161024857565b610213565b61020e565b610209565b91909160a0818403126102c35761027183600083016101d3565b9261027f81602084016101fa565b9261028d82604085016101fa565b9261029b83606083016101d3565b92608082013567ffffffffffffffff81116102be576102ba9201610218565b9091565b6101ad565b6100fe565b151590565b6102d6906102c8565b9052565b91906102ee906000602085019401906102cd565b565b3461032757610323610312610306366004610257565b949390939291926111d6565b61031a6100f3565b918291826102da565b0390f35b6100f9565b909182601f830112156103665781359167ffffffffffffffff831161036157602001926020830284011161035c57565b610213565b61020e565b610209565b909182601f830112156103a55781359167ffffffffffffffff83116103a057602001926020830284011161039b57565b610213565b61020e565b610209565b909160408284031261040557600082013567ffffffffffffffff811161040057836103d691840161032c565b929093602082013567ffffffffffffffff81116103fb576103f7920161036b565b9091565b6101ad565b6101ad565b6100fe565b60000190565b346104425761042c6104233660046103aa565b92919091611628565b6104346100f3565b8061043e8161040a565b0390f35b6100f9565b610450906101e2565b9052565b5190565b60209181520190565b60200190565b5190565b60209181520190565b60005b838110610488575050906000910152565b806020918301518185015201610477565b601f801991011690565b6104c26104cb6020936104d0936104b981610467565b9384809361046b565b95869101610474565b610499565b0190565b906104de916104a3565b90565b60200190565b906104fb6104f483610454565b8092610458565b908161050c60208302840194610461565b926000915b83831061052057505050505090565b9091929394602061054261053c838560019503875289516104d4565b976104e1565b9301930191939290610511565b61057c916020604082019261056c60008201516000850190610447565b01519060208184039101526104e7565b90565b610595916020820191600081840391015261054f565b90565b346105c8576105a8366004610103565b6105c46105b3611783565b6105bb6100f3565b9182918261057f565b0390f35b6100f9565b6105d6906101b2565b90565b6105e2816105cd565b036105e957565b600080fd5b905035906105fb826105d9565b565b9190604083820312610626578061061a61062392600086016105ee565b936020016101fa565b90565b6100fe565b3461065a5761064461063e3660046105fd565b90611a91565b61064c6100f3565b806106568161040a565b0390f35b6100f9565b610668816102c8565b0361066f57565b600080fd5b905035906106818261065f565b565b91906040838203126106ac57806106a06106a992600086016101d3565b93602001610674565b90565b6100fe565b346106e0576106ca6106c4366004610683565b90611b43565b6106d26100f3565b806106dc8161040a565b0390f35b6100f9565b6106ee9061013d565b90565b6106fa906106e5565b9052565b9190610712906000602085019401906106f1565b565b3461074457610724366004610103565b61074061072f611b6c565b6107376100f3565b918291826106fe565b0390f35b6100f9565b916060838303126107975761076182600085016101d3565b9261076f83602083016101fa565b92604082013567ffffffffffffffff81116107925761078e9201610218565b9091565b6101ad565b6100fe565b346107ce576107b86107af366004610749565b92919091611d09565b6107c06100f3565b806107ca8161040a565b0390f35b6100f9565b9060208282031261080557600082013567ffffffffffffffff8111610800576107fc920161032c565b9091565b6101ad565b6100fe565b346108395761082361081d3660046107d3565b90611f66565b61082b6100f3565b806108358161040a565b0390f35b6100f9565b5190565b60209181520190565b60200190565b61085a906101b2565b9052565b9061086b81602093610851565b0190565b60200190565b9061089261088c6108858461083e565b8093610842565b9261084b565b9060005b8181106108a35750505090565b9091926108bc6108b6600192865161085e565b9461086f565b9101919091610896565b6108dc9160208201916000818403910152610875565b90565b3461090f576108ef366004610103565b61090b6108fa61203a565b6109026100f3565b918291826108c6565b0390f35b6100f9565b1c90565b90565b61092b9060086109309302610914565b610918565b90565b9061093e915461091b565b90565b61094e6002600090610933565b90565b61095a906101e2565b9052565b919061097290600060208501940190610951565b565b346109a457610984366004610103565b6109a061098f610941565b6109976100f3565b9182918261095e565b0390f35b6100f9565b90565b6109b5816109a9565b036109bc57565b600080fd5b905035906109ce826109ac565b565b91606083830312610a1e576109e882600085016101fa565b926109f683602083016109c1565b92604082013567ffffffffffffffff8111610a1957610a15920161036b565b9091565b6101ad565b6100fe565b610a2c906109a9565b9052565b9190610a4490600060208501940190610a23565b565b34610a7a57610a76610a65610a5c3660046109d0565b92919091612354565b610a6d6100f3565b91829182610a30565b0390f35b6100f9565b34610aae57610a98610a923660046105fd565b9061247a565b610aa06100f3565b80610aaa8161040a565b0390f35b6100f9565b600080fd5b600090565b90565b61ffff1690565b610adb610ad6610ae092610abd565b61011e565b610ac0565b90565b634e487b7160e01b600052601160045260246000fd5b610b0290610ac0565b61ffff8114610b115760010190565b610ae3565b5490565b610b2e610b29610b3392610ac0565b61011e565b6101e2565b90565b634e487b7160e01b600052603260045260246000fd5b600052602060002090565b610b6081610b16565b821015610b7b57610b72600191610b4c565b91020190600090565b610b36565b60018060a01b031690565b610b9b906008610ba09302610914565b610b80565b90565b90610bae9154610b8b565b90565b634e487b7160e01b600052604160045260246000fd5b90610bd190610499565b810190811067ffffffffffffffff821117610beb57604052565b610bb1565b90610c03610bfc6100f3565b9283610bc7565b565b67ffffffffffffffff8111610c2357610c1f602091610499565b0190565b610bb1565b90610c3a610c3583610c05565b610bf0565b918252565b606090565b3d600014610c6157610c553d610c28565b903d6000602084013e5b565b610c69610c3f565b90610c5f565b90565b610c86610c81610c8b92610c6f565b61011e565b6101e2565b90565b610c9790610113565b90565b610ca381610c8e565b03610caa57565b600080fd5b90505190610cbc82610c9a565b565b90602082820312610cd857610cd591600001610caf565b90565b6100fe565b610ce690610121565b90565b610cf290610cdd565b90565b60209181520190565b60007f4d6f7270686f2061646472657373206e6f7420666f756e640000000000000000910152565b610d336018602092610cf5565b610d3c81610cfe565b0190565b610d569060208101906000818303910152610d26565b90565b610d61610ab8565b50610d6c6000610ac7565b5b80610d89610d83610d7e6001610b16565b6101e2565b91610b1a565b1015610e5057600080610da7610da160018590610b57565b90610ba3565b610daf6100f3565b610ddb81610dcc600460208301630bd0e0e960e31b81520161040a565b60208201810382520382610bc7565b602081019051915afa90610ded610c44565b9180610e2d575b610e0757610e029150610af9565b610d6d565b50610e25610e2a916020610e1a82610467565b818301019101610cbe565b610ce9565b90565b50610e3782610467565b610e4a610e446020610c72565b916101e2565b14610df4565b610e586100f3565b62461bcd60e51b815280610e6e60048201610d40565b0390fd5b600090565b60001c90565b60ff1690565b610e8f610e9491610e77565b610e7d565b90565b610ea19054610e83565b90565b60007f214e6f74526562616c616e63696e670000000000000000000000000000000000910152565b610ed9600f602092610cf5565b610ee281610ea4565b0190565b610efc9060208101906000818303910152610ecc565b90565b15610f0657565b610f0e6100f3565b62461bcd60e51b815280610f2460048201610ee6565b0390fd5b610f319061013d565b90565b15610f3b57565b600080fd5b67ffffffffffffffff8111610f585760208091020190565b610bb1565b600080fd5b600080fd5b610f7081610ac0565b03610f7757565b600080fd5b90503590610f8982610f67565b565b600080fd5b90826000939282370152565b90929192610fb1610fac82610c05565b610bf0565b93818552602085019082840111610fcd57610fcb92610f90565b565b610f8b565b9080601f83011215610ff057816020610fed93359101610f9c565b90565b610209565b9190916040818403126110495761100c6040610bf0565b9261101a8160008401610f7c565b6000850152602082013567ffffffffffffffff81116110445761103d9201610fd2565b6020830152565b610f62565b610f5d565b92919061106261105d82610f40565b610bf0565b93818552602080860192028101918383116110b95781905b838210611088575050505050565b813567ffffffffffffffff81116110b4576020916110a98784938701610ff5565b81520191019061107a565b610209565b610213565b9080601f830112156110dc578160206110d99335910161104e565b90565b610209565b9060208282031261111257600082013567ffffffffffffffff811161110d5761110a92016110be565b90565b6101ad565b6100fe565b61112090610121565b90565b61112c90611117565b90565b6111389061013d565b90565b61114a611150919392936101e2565b926101e2565b820180921161115b57565b610ae3565b60e01b90565b905051906111738261065f565b565b9060208282031261118f5761118c91600001611166565b90565b6100fe565b61119d906101b2565b9052565b9160206111c39294936111bc60408201966000830190611194565b0190610951565b565b6111cd6100f3565b3d6000823e3d90fd5b611235611230611240949760209761122761123b96986111f4610e72565b506112076112026003610e97565b610eff565b61122161121b61121630610f28565b6101b2565b916101b2565b14610f34565b908101906110e1565b612537565b50611123565b61112f565b61127c600061126463095ea7b39661125e611259611b6c565b6106e5565b9561113b565b956112876112706100f3565b97889687958694611160565b8452600484016111a1565b03925af180156112c85761129c575b50600190565b6112bc9060203d81116112c1575b6112b48183610bc7565b810190611175565b611296565b503d6112aa565b6111c5565b60401c90565b6112df6112e4916112cd565b610e7d565b90565b6112f190546112d3565b90565b67ffffffffffffffff1690565b61130d61131291610e77565b6112f4565b90565b61131f9054611301565b90565b67ffffffffffffffff1690565b61134361133e61134892610abd565b61011e565b611322565b90565b90565b61136261135d6113679261134b565b61011e565b611322565b90565b6113739061013d565b90565b61138a61138561138f92610abd565b61011e565b6101e2565b90565b60001b90565b906113ab67ffffffffffffffff91611392565b9181191691161790565b6113c96113c46113ce92611322565b61011e565b611322565b90565b90565b906113e96113e46113f0926113b5565b6113d1565b8254611398565b9055565b60401b90565b9061140e68ff0000000000000000916113f4565b9181191691161790565b611421906102c8565b90565b90565b9061143c61143761144392611418565b611424565b82546113fa565b9055565b6114509061134e565b9052565b919061146890600060208501940190611447565b565b909192611475612616565b9361148b611485600087016112e7565b156102c8565b9361149860008701611315565b806114ac6114a6600061132f565b91611322565b14806115d1575b906114c76114c1600161134e565b91611322565b14806115a8575b6114d99091156102c8565b9081611597575b506115745761150a936114ff6114f6600161134e565b600089016113d4565b85611561575b6115d8565b611512575b50565b611520906000809101611427565b60016115587fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29161154f6100f3565b91829182611454565b0390a13861150f565b61156f600160008901611427565b611505565b61157c6100f3565b63f92ee8a960e01b8152806115936004820161040a565b0390fd5b6115a29150156102c8565b386114e0565b506114d96115b53061136a565b3b6115c96115c36000611376565b916101e2565b1490506114ce565b50856114b3565b916115f09391926115e7612644565b9290919261264e565b7f57a86f7d14ccde89e22870afe839e3011216827daa9b24e18629f0a1e9d6cc146116196100f3565b806116238161040a565b0390a1565b9061163493929161146a565b565b6116406040610bf0565b90565b600090565b606090565b611655611636565b9060208083611662611643565b81520161166d611648565b81525050565b61167b61164d565b90565b67ffffffffffffffff81116116965760208091020190565b610bb1565b906116ad6116a88361167e565b610bf0565b918252565b606090565b60005b8281106116c657505050565b6020906116d16116b2565b81840152016116ba565b906117006116e88361169b565b926020806116f6869361167e565b92019103906116b7565b565b600161170e91016101e2565b90565b63ffffffff60e01b1690565b90565b61172c61173191611711565b61171d565b9052565b61174181600493611720565b0190565b9061174f82610454565b811015611760576020809102010190565b610b36565b61176f6040610bf0565b90565b9061177c906101e2565b9052565b52565b61178b611673565b50611794612674565b6117ae6117a86117a330610f28565b6101b2565b916101b2565b148015611895575b6117bf90610f34565b6117c96001610b16565b906117d3826116db565b906117de6000611376565b5b806117f26117ec866101e2565b916101e2565b101561186c576118679061186061184d61183961181a61181460018690610b57565b90610ba3565b6118486309de30cd60e21b61182d6100f3565b93849160208301611735565b60208201810382520383610bc7565b6127af565b85839161185a8383611745565b52611745565b5150611702565b6117df565b509150611892429161188961187f611765565b9360008501611772565b60208301611780565b90565b506117bf6118a1612674565b6118ba6118b46118af612681565b6101b2565b916101b2565b1490506117b6565b60007f4e4f545f415554484f52495a4544000000000000000000000000000000000000910152565b6118f7600e602092610cf5565b611900816118c2565b0190565b61191a90602081019060008183039101526118ea565b90565b1561192457565b61192c6100f3565b62461bcd60e51b81528061194260048201611904565b0390fd5b9061197a91611975611956612674565b61196f611969611964612681565b6101b2565b916101b2565b1461191d565b6119af565b565b6040906119a66119ad949695939661199c60608401986000850190611194565b6020830190611194565b0190610951565b565b6119b88161112f565b9060206323b872dd926119c9612674565b906119f160006119d830610f28565b966119fc896119e56100f3565b998a9788968795611160565b85526004850161197c565b03925af1918215611a8c57611a2292611a1d91600091611a5e575b50610f34565b61112f565b907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c91611a59611a506100f3565b928392836111a1565b0390a1565b611a7f915060203d8111611a85575b611a778183610bc7565b810190611175565b38611a17565b503d611a6d565b6111c5565b90611a9b91611946565b565b90611ad191611acc611aad612674565b611ac6611ac0611abb612681565b6101b2565b916101b2565b1461191d565b611b2d565b565b611adc9061013d565b90565b90611ae990611ad3565b600052602052604060002090565b90611b0360ff91611392565b9181191691161790565b90611b22611b1d611b2992611418565b611424565b8254611af7565b9055565b611b3c611b4192916000611adf565b611b0d565b565b90611b4d91611a9d565b565b600090565b611b5d90610121565b90565b611b6990611b54565b90565b611b74611b4f565b50611b7f6000610ac7565b5b80611b9c611b96611b916001610b16565b6101e2565b91610b1a565b1015611c6357600080611bba611bb460018590610b57565b90610ba3565b611bc26100f3565b611bee81611bdf6004602083016313561b5560e01b81520161040a565b60208201810382520382610bc7565b602081019051915afa90611c00610c44565b9180611c40575b611c1a57611c159150610af9565b611b80565b50611c38611c3d916020611c2d82610467565b818301019101610cbe565b611b60565b90565b50611c4a82610467565b611c5d611c576020610c72565b916101e2565b14611c07565b611c6b6100f3565b62461bcd60e51b815280611c8160048201610d40565b0390fd5b60007f43616c6c6572206d757374206265204d6f7270686f0000000000000000000000910152565b611cba6015602092610cf5565b611cc381611c85565b0190565b611cdd9060208101906000818303910152611cad565b90565b15611ce757565b611cef6100f3565b62461bcd60e51b815280611d0560048201611cc7565b0390fd5b611d6290611d5c611d57611d6a96611d1f61282a565b96611d32611d2d6003610e97565b610eff565b611d4e33611d48611d428b6101b2565b916101b2565b14611ce0565b908101906110e1565b612537565b50611123565b919091612968565b565b90611da091611d9b611d7c612674565b611d95611d8f611d8a612681565b6101b2565b916101b2565b1461191d565b611f58565b565b600190818003010490565b1b90565b91906008611dcd910291611dc760001984611dad565b92611dad565b9181191691161790565b611deb611de6611df0926101e2565b61011e565b6101e2565b90565b90565b9190611e0c611e07611e1493611dd7565b611df3565b908354611db1565b9055565b600090565b611e2f91611e29611e18565b91611df6565b565b5b818110611e3d575050565b80611e4b6000600193611e1d565b01611e32565b9091828110611e60575b505050565b611e7e611e78611e72611e8995611da2565b92611da2565b92610b4c565b918201910190611e31565b388080611e5b565b90680100000000000000008111611eba5781611eaf611eb893610b16565b90828155611e51565b565b610bb1565b5090565b35611ecd816101be565b90565b90565b90565b9091611ee29083611ebf565b9167ffffffffffffffff8311611f4657611f10611f0a600192611f058686611e91565b611ed0565b92610b4c565b92049160005b838110611f235750505050565b6001906020611f39611f3486611ec3565b611ed3565b9401938184015501611f16565b610bb1565b90611f569291611ed6565b565b90611f64916001611f4b565b565b90611f7091611d6c565b565b606090565b60209181520190565b611f8c611f9191610e77565b610b80565b90565b611f9e9054611f80565b90565b60010190565b90611fc4611fbe611fb784610b16565b8093611f77565b92610b4c565b9060005b818110611fd55750505090565b909192611ff5611fef600192611fea87611f94565b61085e565b94611fa1565b9101919091611fc8565b9061200991611fa7565b90565b9061202c6120259261201c6100f3565b93848092611fff565b0383610bc7565b565b6120379061200c565b90565b612042611f72565b5061204d600161202e565b90565b600090565b60007f4e6f744f70657261746f724f724f776e65720000000000000000000000000000910152565b61208a6012602092610cf5565b61209381612055565b0190565b6120ad906020810190600081830391015261207d565b90565b156120b757565b6120bf6100f3565b62461bcd60e51b8152806120d560048201612097565b0390fd5b906120fe949392916120e96129b6565b8015612101575b6120f9906120b0565b61229c565b90565b506120f961210d612674565b61212661212061211b612681565b6101b2565b916101b2565b1490506120f0565b61213a61213f91610e77565b610918565b90565b61214c905461212e565b90565b60007f5374616c65537461746521000000000000000000000000000000000000000000910152565b612184600b602092610cf5565b61218d8161214f565b0190565b6121a79060208101906000818303910152612177565b90565b156121b157565b6121b96100f3565b62461bcd60e51b8152806121cf60048201612191565b0390fd5b6121de91369161104e565b90565b60007f214c6f7373457863656564730000000000000000000000000000000000000000910152565b612216600c602092610cf5565b61221f816121e1565b0190565b6122399060208101906000818303910152612209565b90565b1561224357565b61224b6100f3565b62461bcd60e51b81528061226160048201612223565b0390fd5b9061227260001991611392565b9181191691161790565b9061229161228c61229892611dd7565b611df3565b8254612265565b9055565b9361233b936122dc6122e1936122e6959897506122bb60016003611b0d565b6122d66122d06122cb6002612142565b6101e2565b916101e2565b116121aa565b6121d3565b612537565b928361231e7fdfc9e5f35b8a47d7e7c4e705cdbe661e5b32470501b38cffce5de28bdeecc493916123156100f3565b91829182610a30565b0390a161233461232e85926109a9565b916109a9565b131561223c565b61234642600261227c565b61235260006003611b0d565b565b90612368939291612363612050565b6120d9565b90565b9061239f9161239a61237b612674565b61239461238e612389612681565b6101b2565b916101b2565b1461191d565b6123a1565b565b6123aa8161112f565b90602063a9059cbb926123bb612674565b906123da600087966123e56123ce6100f3565b98899687958694611160565b8452600484016111a1565b03925af19182156124755761240b9261240691600091612447575b50610f34565b61112f565b907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364916124426124396100f3565b928392836111a1565b0390a1565b612468915060203d811161246e575b6124608183610bc7565b810190611175565b38612400565b503d612456565b6111c5565b906124849161236b565b565b61249a61249561249f92610abd565b61011e565b6109a9565b90565b5190565b906124b0826124a2565b8110156124c1576020809102010190565b610b36565b6124d09051610ac0565b90565b905051906124e0826109ac565b565b906020828203126124fc576124f9916000016124d3565b90565b6100fe565b612510612516919392936109a9565b926109a9565b8083019260008285121581831216928512911215161761253257565b610ae3565b90612540612050565b5061254b6000612486565b916125566000611376565b5b8061257261256c612567856124a2565b6101e2565b916101e2565b1015612612576125b26125868383906124a6565b5160206125a96125a3600161259d600086016124c6565b90610b57565b90610ba3565b910151906127af565b6125bb81610467565b6125ce6125c86000611376565b916101e2565b116125e3575b506125de90611702565b612557565b6125de919461260561260b9260206125fa82610467565b8183010191016124e2565b90612501565b93906125d4565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b6126426129dd565b565b61264c61263a565b565b9161266261266c9492612667946001611f4b565b6121d3565b612537565b50565b600090565b61267c61266f565b503390565b61268961266f565b507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b67ffffffffffffffff81116126cd576126c9602091610499565b0190565b610bb1565b909291926126e76126e2826126af565b610bf0565b938185526020850190828401116127035761270192610474565b565b610f8b565b9080601f8301121561272657816020612723935191016126d2565b90565b610209565b9060208282031261275c57600082015167ffffffffffffffff8111612757576127549201612708565b90565b6101ad565b6100fe565b5190565b61278461278d6020936127929361277b81612761565b93848093610cf5565b95869101610474565b610499565b0190565b6127ac9160208201916000818403910152612765565b90565b60009182916127bc610c3f565b5090602081019051915af46127d96127d2610c44565b91156102c8565b6127e05790565b6127fd61281a9160206127f282610467565b81830101910161272b565b6128056100f3565b91829162461bcd60e51b835260048301612796565b0390fd5b6128279061013d565b90565b61283261266f565b5061283d6000610ac7565b5b8061285a61285461284f6001610b16565b6101e2565b91610b1a565b10156129215760008061287861287260018590610b57565b90610ba3565b6128806100f3565b6128ac8161289d600460208301631ccef8dd60e21b81520161040a565b60208201810382520382610bc7565b602081019051915afa906128be610c44565b91806128fe575b6128d8576128d39150610af9565b61283e565b506128f66128fb9160206128eb82610467565b818301019101610cbe565b61281e565b90565b5061290882610467565b61291b6129156020610c72565b916101e2565b146128c5565b6129296100f3565b62461bcd60e51b81528061293f60048201610d40565b0390fd5b63ffffffff1690565b61296061295b61296592612943565b611160565b611711565b90565b906129af6129b4936129a06004949361298763a9059cbb91939161294c565b926129906100f3565b96879460208601908152016111a1565b60208201810382520383610bc7565b612a49565b565b6129be610e72565b506129da6129d560006129cf612674565b90611adf565b610e97565b90565b6129ee6129e8612b0a565b156102c8565b6129f457565b6129fc6100f3565b631afcd79f60e31b815280612a136004820161040a565b0390fd5b612a2b612a26612a309261134b565b61011e565b6101e2565b90565b9190612a4790600060208501940190611194565b565b906000602091612a57611e18565b50612a60611e18565b50828151910182855af115612afe573d60005190612a87612a816000611376565b916101e2565b14600014612ae45750612a998161112f565b3b612aad612aa76000611376565b916101e2565b145b612ab65750565b612ac2612ae09161112f565b612aca6100f3565b918291635274afe760e01b835260048301612a33565b0390fd5b612af7612af16001612a17565b916101e2565b1415612aaf565b6040513d6000823e3d90fd5b612b12610e72565b50612b266000612b20612616565b016112e7565b9056fea26469706673582212207fc694986d338d2013eb9c2012ddb212dc053ee012eb92dc30e9c4d9ad74529364736f6c63430008180033