[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "vaultController", "type": "address" } ], "name": "SetVaultController", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "depositedAmount", "type": "uint256" } ], "name": "UpdateDeposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "VTokenTransfer", "type": "event" }, { "inputs": [], "name": "asset", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "assetBalanceForShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "assetBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "assetDataOf", "outputs": [ { "components": [ { "internalType": "uint256", "name": "maxShares", "type": "uint256" }, { "internalType": "uint256", "name": "amountInAsset", "type": "uint256" } ], "internalType": "struct IvToken.AssetData", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" } ], "name": "burn", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" } ], "name": "burnFor", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "currentDepositedPercentageInBP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "deposited", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_asset", "type": "address" }, { "internalType": "address", "name": "_registry", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "lastAssetBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "lastAssetBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" } ], "name": "mintFor", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mintableShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "registry", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_vaultController", "type": "address" } ], "name": "setController", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amountInAsset", "type": "uint256" } ], "name": "shareChange", "outputs": [ { "internalType": "uint256", "name": "newShares", "type": "uint256" }, { "internalType": "uint256", "name": "oldShares", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "_interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sync", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalAssetSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "transfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "transferAsset", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_shares", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vaultController", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "virtualTotalAssetSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50600062000020600162000087565b9050801562000039576000805461ff0019166101001790555b801562000080576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50620001a8565b60008054610100900460ff161562000120578160ff166001148015620000c05750620000be306200019960201b620014f71760201c565b155b620001185760405162461bcd60e51b815260206004820152602e60248201526000805160206200259e83398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b506000919050565b60005460ff8084169116106200017f5760405162461bcd60e51b815260206004820152602e60248201526000805160206200259e83398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200010f565b506000805460ff191660ff92909216919091179055600190565b6001600160a01b03163b151590565b6123e680620001b86000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806370a0823111610104578063bd3c3c00116100a2578063ee30487711610071578063ee304877146103e5578063eef49ee3146103f8578063fd108bf514610401578063fff6cae91461040957600080fd5b8063bd3c3c001461039a578063bd3e263e146103ad578063cbbedf16146103b5578063d0e30db0146103dd57600080fd5b806389afcb44116100de57806389afcb44146103595780638fb807c51461036c57806392eefe9b14610374578063a9059cbb1461038757600080fd5b806370a082311461030a57806371e578dc146103335780637b1039991461034657600080fd5b806338d52e0f116101715780635b7fc52c1161014b5780635b7fc52c146102a35780635c921eb9146102b65780635f36b048146102c95780636fb4e272146102dc57600080fd5b806338d52e0f1461025d5780633ccfd60b14610288578063485cc9551461029057600080fd5b806318160ddd116101ad57806318160ddd146102255780631f7ace091461022d5780631fb8a0f21461024057806323b872dd1461024857600080fd5b806301ffc9a7146101d457806306b3efd6146101fc5780631249c58b1461021d575b600080fd5b6101e76101e2366004612011565b610411565b60405190151581526020015b60405180910390f35b61020f61020a366004612050565b610448565b6040519081526020016101f3565b61020f610476565b606a5461020f565b61020f61023b366004612050565b61056a565b60695461020f565b61025b61025636600461206d565b610657565b005b606654610270906001600160a01b031681565b6040516001600160a01b0390911681526020016101f3565b61025b610742565b61025b61029e3660046120ae565b61088e565b61020f6102b13660046120e7565b610a49565b61025b6102c4366004612100565b610a57565b606554610270906001600160a01b031681565b6102ef6102ea366004612100565b610b2e565b604080518251815260209283015192810192909252016101f3565b61020f610318366004612050565b6001600160a01b03166000908152606b602052604090205490565b61020f610341366004612050565b610b8e565b606754610270906001600160a01b031681565b61020f610367366004612050565b610c6f565b61020f610cef565b61025b610382366004612050565b610d70565b61025b610395366004612100565b610f60565b61020f6103a8366004612050565b610f92565b61020f610fb9565b6103c86103c3366004612100565b61107f565b604080519283526020830191909152016101f3565b61025b611138565b61020f6103f33660046120e7565b611384565b61020f60685481565b61020f611391565b61025b6114b7565b60006001600160e01b03198216630a6bb19d60e01b148061044257506301ffc9a760e01b6001600160e01b03198316145b92915050565b6001600160a01b0381166000908152606b60205260408120546104429061046d610cef565b60699190611506565b60006002600154036104a35760405162461bcd60e51b815260040161049a9061212c565b60405180910390fd5b6002600155606754604051632474521560e21b81527f766aece2fe0909e4a1f0fe06a20b32886c389ee499ca4246e7e1b80b53562a8460048201819052336024830152916001600160a01b0316906391d1485490604401602060405180830381865afa158015610517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053b9190612163565b6105575760405162461bcd60e51b815260040161049a90612185565b6105603361153c565b9150506001805590565b600060026001540361058e5760405162461bcd60e51b815260040161049a9061212c565b6002600155606754604051632474521560e21b81527ff4730887401325e116e846d0e51948344682bbc6e090c5e5993a8025fb6a68b060048201819052336024830152916001600160a01b0316906391d14854906044015b602060405180830381865afa158015610603573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106279190612163565b6106435760405162461bcd60e51b815260040161049a90612185565b61064c83611568565b600180559392505050565b6002600154036106795760405162461bcd60e51b815260040161049a9061212c565b6002600155606754604051632474521560e21b81527ff4730887401325e116e846d0e51948344682bbc6e090c5e5993a8025fb6a68b060048201819052336024830152916001600160a01b0316906391d1485490604401602060405180830381865afa1580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107119190612163565b61072d5760405162461bcd60e51b815260040161049a90612185565b610738848484611599565b5050600180555050565b606754604051632474521560e21b81527fcc938097bd07c9f1619d5e95c26b457140e80b889795c7c1cbd51a28005e02ac60048201819052336024830152916001600160a01b0316906391d1485490604401602060405180830381865afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d59190612163565b6107f15760405162461bcd60e51b815260040161049a90612185565b6065546001600160a01b03166108195760405162461bcd60e51b815260040161049a906121b0565b606560009054906101000a90046001600160a01b03166001600160a01b0316633ccfd60b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561086957600080fd5b505af115801561087d573d6000803e3d6000fd5b5050505061088b60006115a6565b50565b600061089a60016115f1565b905080156108b2576000805461ff0019166101001790555b604080516002808252606082018352600092602083019080368337019050509050637965db0b60e01b816000815181106108ee576108ee6121d6565b60200260200101906001600160e01b03191690816001600160e01b03191681525050630743a42960e41b8160018151811061092b5761092b6121d6565b6001600160e01b0319909216602092830291909101909101526109576001600160a01b03841682611679565b6109975760405162461bcd60e51b815260206004820152601160248201527076546f6b656e3a20494e5445524641434560781b604482015260640161049a565b6001600160a01b0384166109bd5760405162461bcd60e51b815260040161049a906121b0565b6109c56116e9565b6109cd611712565b50606680546001600160a01b038086166001600160a01b03199283161790925560678054928516929091169190911790558015610a44576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006104428261046d610cef565b600260015403610a795760405162461bcd60e51b815260040161049a9061212c565b60026001556067546040805163628cf32f60e01b815290516001600160a01b039092169163628cf32f916004808201926020929091908290030181865afa158015610ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aec91906121ec565b6001600160a01b0316336001600160a01b031614610b1c5760405162461bcd60e51b815260040161049a90612185565b610b268282611741565b505060018055565b60408051808201909152600080825260208201526001600160a01b0383166000908152606b6020526040902054610b669083906118d0565b91506040518060400160405280838152602001610b858461046d610cef565b90529392505050565b6000600260015403610bb25760405162461bcd60e51b815260040161049a9061212c565b6002600155606754604051632474521560e21b81527ff4730887401325e116e846d0e51948344682bbc6e090c5e5993a8025fb6a68b060048201819052336024830152916001600160a01b0316906391d1485490604401602060405180830381865afa158015610c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4a9190612163565b610c665760405162461bcd60e51b815260040161049a90612185565b61064c8361153c565b6000600260015403610c935760405162461bcd60e51b815260040161049a9061212c565b6002600155606754604051632474521560e21b81527f766aece2fe0909e4a1f0fe06a20b32886c389ee499ca4246e7e1b80b53562a8460048201819052336024830152916001600160a01b0316906391d14854906044016105e6565b6068546066546040516370a0823160e01b8152306004820152600092916001600160a01b0316906370a08231906024015b602060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d619190612209565b610d6b9190612238565b905090565b606754604051632474521560e21b81527fcc938097bd07c9f1619d5e95c26b457140e80b889795c7c1cbd51a28005e02ac60048201819052336024830152916001600160a01b0316906391d1485490604401602060405180830381865afa158015610ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e039190612163565b610e1f5760405162461bcd60e51b815260040161049a90612185565b6065546001600160a01b031615610ea257606560009054906101000a90046001600160a01b03166001600160a01b0316633ccfd60b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e8057600080fd5b505af1158015610e94573d6000803e3d6000fd5b50505050610ea260006115a6565b6001600160a01b03821615610f0b57610ecb6001600160a01b0383166314f7136960e01b6118e6565b610f0b5760405162461bcd60e51b815260206004820152601160248201527076546f6b656e3a20494e5445524641434560781b604482015260640161049a565b606580546001600160a01b0319166001600160a01b0384169081179091556040519081527f056436d6f940b4c00ef1307f3eefc59586267ea5d52e882f1c9ba3b0e41a3ff69060200160405180910390a15050565b600260015403610f825760405162461bcd60e51b815260040161049a9061212c565b6002600155610b26338383611599565b6001600160a01b0381166000908152606b6020526040812054606980546104429290611506565b6065546000906001600160a01b0316610fd25750600090565b6068546066546040516370a0823160e01b8152306004820152600092916001600160a01b0316906370a0823190602401602060405180830381865afa15801561101f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110439190612209565b61104d9190612238565b905080156110775760685481906110679061271090612250565b611071919061226f565b91505090565b600091505090565b6001600160a01b0382166000908152606b6020526040812054606a548015611110576001600160a01b0385166000908152606b6020526040812054906110c3610cef565b90506000836110d28385612250565b6110dc919061226f565b90506110e88183612291565b6110f28686612291565b6110fc9089612250565b611106919061226f565b9550505050611130565b612710841061112a5761112561271085612291565b61112d565b60005b92505b509250929050565b606754604051632474521560e21b81527f68e79a7bf1e0bc45d0a330c573bc367f9cf464fd326078812f301165fbda4ef160048201819052336024830152916001600160a01b0316906391d1485490604401602060405180830381865afa1580156111a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cb9190612163565b6111e75760405162461bcd60e51b815260040161049a90612185565b6065546001600160a01b031661120f5760405162461bcd60e51b815260040161049a906121b0565b6000611219610fb9565b9050606560009054906101000a90046001600160a01b03166001600160a01b0316633ccfd60b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561126b57600080fd5b505af115801561127f573d6000803e3d6000fd5b5050606554604051637514688560e01b815260048101859052600093506001600160a01b039091169150637514688590602401602060405180830381865afa1580156112cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f39190612209565b606554606654919250611313916001600160a01b03908116911683611902565b606560009054906101000a90046001600160a01b03166001600160a01b031663d0e30db06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561136357600080fd5b505af1158015611377573d6000803e3d6000fd5b50505050610a44816115a6565b6000610442606983611954565b6065546000906001600160a01b0316611410576066546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156113ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6b9190612209565b606560009054906101000a90046001600160a01b03166001600160a01b03166362e70a336040518163ffffffff1660e01b8152600401602060405180830381865afa158015611463573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114879190612209565b6066546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401610d20565b6002600154036114d95760405162461bcd60e51b815260040161049a9061212c565b60026001556114f16114e9610cef565b606990611992565b60018055565b6001600160a01b03163b151590565b600183015460009080820361151c576000611531565b806115278486612250565b611531919061226f565b9150505b9392505050565b600080611547610cef565b9050611555606982856119a2565b9150611562606982611992565b50919050565b600061157d611575610cef565b606990611a5e565b90506115898282611741565b6115946114e9610cef565b919050565b610a446069848484611aed565b60688190556115b66114e9610cef565b60685460405190815233907f6b577912acd5dc59c388bec58074d4f9fec898d83bbce9062b0904480ae2cc879060200160405180910390a250565b60008054610100900460ff1615611638578160ff1660011480156116145750303b155b6116305760405162461bcd60e51b815260040161049a906122a8565b506000919050565b60005460ff80841691161061165f5760405162461bcd60e51b815260040161049a906122a8565b506000805460ff191660ff92909216919091179055600190565b600061168483611ba9565b61169057506000610442565b60005b82518110156116df576116bf848483815181106116b2576116b26121d6565b6020026020010151611bdc565b6116cd576000915050610442565b806116d7816122f6565b915050611693565b5060019392505050565b600054610100900460ff166117105760405162461bcd60e51b815260040161049a9061230f565b565b600054610100900460ff166117395760405162461bcd60e51b815260040161049a9061230f565b611710611cc5565b6066546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae9190612209565b905081811080156117c957506065546001600160a01b031615155b156118af57606560009054906101000a90046001600160a01b03166001600160a01b0316633ccfd60b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561181e57600080fd5b505af1158015611832573d6000803e3d6000fd5b5050505061184060006115a6565b6066546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190612209565b90505b610a44836118bd84846118d0565b6066546001600160a01b03169190611902565b60008183106118df5781611535565b5090919050565b60006118f183611ba9565b801561153557506115358383611bdc565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610a44908490611cec565b60018201546000908082036119745761196f61271084612291565b61198a565b83546119808285612250565b61198a919061226f565b949350505050565b8154811461199e578082555b5050565b825460009081906119b39085612291565b600186015490915080156119de5785546119cd8284612250565b6119d7919061226f565b92506119fa565b6119ea61271083612291565b92506119fa866000612710611dbe565b82600003611a4a5760405162461bcd60e51b815260206004820152601860248201527f4e41563a20494e53554646494349454e545f414d4f554e540000000000000000604482015260640161049a565b611a55868585611dbe565b50509392505050565b3060009081526002830160205260408120546001840154611a7f8483612250565b611a89919061226f565b915081600003611adb5760405162461bcd60e51b815260206004820152601f60248201527f4e41563a20494e53554646494349454e545f5348415245535f4255524e454400604482015260640161049a565b611ae6843083611e62565b5092915050565b6001600160a01b0383166000908152600285016020526040902054611b13908290612291565b6001600160a01b0380851660009081526002870160205260408082209390935590841681522054611b45908290612238565b6001600160a01b03808416600081815260028801602052604090819020939093559151908516907fd77485f2488fed8e6524133b8c6952390a4b8c4ad46d7905f8b85662f1cf435b90611b9b9085815260200190565b60405180910390a350505050565b6000611bbc826301ffc9a760e01b611bdc565b80156104425750611bd5826001600160e01b0319611bdc565b1592915050565b604080516001600160e01b0319831660248083019190915282518083039091018152604490910182526020810180516001600160e01b03166301ffc9a760e01b179052905160009190829081906001600160a01b0387169061753090611c4390869061238a565b6000604051808303818686fa925050503d8060008114611c7f576040519150601f19603f3d011682016040523d82523d6000602084013e611c84565b606091505b5091509150602081511015611c9f5760009350505050610442565b818015611cbb575080806020019051810190611cbb9190612163565b9695505050505050565b600054610100900460ff166114f15760405162461bcd60e51b815260040161049a9061230f565b6000611d41826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611efd9092919063ffffffff16565b805190915015610a445780806020019051810190611d5f9190612163565b610a445760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161049a565b6001600160a01b0382166000908152600284016020526040902054611de4908290612238565b6001600160a01b0383166000908152600285016020526040812091909155600184018054839290611e16908490612238565b90915550506040518181526001600160a01b038316906000907fd77485f2488fed8e6524133b8c6952390a4b8c4ad46d7905f8b85662f1cf435b906020015b60405180910390a3505050565b6001600160a01b0382166000908152600284016020526040902054611e88908290612291565b6001600160a01b0383166000908152600285016020526040812091909155600184018054839290611eba908490612291565b90915550506040518181526000906001600160a01b038416907fd77485f2488fed8e6524133b8c6952390a4b8c4ad46d7905f8b85662f1cf435b90602001611e55565b606061198a8484600085856001600160a01b0385163b611f5f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161049a565b600080866001600160a01b03168587604051611f7b919061238a565b60006040518083038185875af1925050503d8060008114611fb8576040519150601f19603f3d011682016040523d82523d6000602084013e611fbd565b606091505b5091509150611fcd828286611fd8565b979650505050505050565b60608315611fe7575081611535565b825115611ff75782518084602001fd5b8160405162461bcd60e51b815260040161049a91906123a6565b60006020828403121561202357600080fd5b81356001600160e01b03198116811461153557600080fd5b6001600160a01b038116811461088b57600080fd5b60006020828403121561206257600080fd5b81356115358161203b565b60008060006060848603121561208257600080fd5b833561208d8161203b565b9250602084013561209d8161203b565b929592945050506040919091013590565b600080604083850312156120c157600080fd5b82356120cc8161203b565b915060208301356120dc8161203b565b809150509250929050565b6000602082840312156120f957600080fd5b5035919050565b6000806040838503121561211357600080fd5b823561211e8161203b565b946020939093013593505050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60006020828403121561217557600080fd5b8151801515811461153557600080fd5b6020808252601190820152703b2a37b5b2b71d102327a92124a22222a760791b604082015260600190565b6020808252600c908201526b76546f6b656e3a205a45524f60a01b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121fe57600080fd5b81516115358161203b565b60006020828403121561221b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561224b5761224b612222565b500190565b600081600019048311821515161561226a5761226a612222565b500290565b60008261228c57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156122a3576122a3612222565b500390565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60006001820161230857612308612222565b5060010190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b8381101561237557818101518382015260200161235d565b83811115612384576000848401525b50505050565b6000825161239c81846020870161235a565b9190910192915050565b60208152600082518060208401526123c581604085016020870161235a565b601f01601f1916919091016040019291505056fea164736f6c634300080d000a496e697469616c697a61626c653a20636f6e747261637420697320616c726561