0 txs
137 calls
constructor
constructor()
functions
ABI_VERSION
viewfunction ABI_VERSION() view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
asset
viewfunction asset() view returns (address)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
convertToAssets
viewfunction convertToAssets(uint256 shares) view returns (uint256)
convertToShares
viewfunction convertToShares(uint256 assets) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
getBalance
viewfunction getBalance(address assetAddress) view returns (uint256)
getFeesAccount
viewfunction getFeesAccount() view returns (address)
getRedemptionFee
viewfunction getRedemptionFee() view returns (uint256)
getRedemptionFeeAmount
viewfunction getRedemptionFeeAmount(uint256 amount) view returns (uint256 feeAmount)
getSafeHarborModeEnabled
viewfunction getSafeHarborModeEnabled() view returns (bool)
getVersion
viewfunction getVersion() view returns (uint256)
maxDeposit
viewfunction maxDeposit(address) view returns (uint256)
maxMint
viewfunction maxMint(address) view returns (uint256)
maxRedeem
viewfunction maxRedeem(address _owner) view returns (uint256)
maxWithdraw
viewfunction maxWithdraw(address _owner) view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
previewDeposit
viewfunction previewDeposit(uint256 assets) view returns (uint256)
previewMint
viewfunction previewMint(uint256 shares) view returns (uint256)
previewRedeem
viewfunction previewRedeem(uint256 shares) view returns (uint256)
previewWithdraw
viewfunction previewWithdraw(uint256 assets) view returns (uint256)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
SAFE_ASSETS_COUNT
viewfunction SAFE_ASSETS_COUNT() view returns (uint256)
SAFE_ASSETS
viewfunction SAFE_ASSETS(uint256) view returns (address)
symbol
viewfunction symbol() view returns (string)
totalAssets
viewfunction totalAssets() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
UNDERLYING_ASSETS_COUNT
viewfunction UNDERLYING_ASSETS_COUNT() view returns (uint256)
UNDERLYING_ASSETS
viewfunction UNDERLYING_ASSETS(uint256) view returns (address)
VAULT
viewfunction VAULT() view returns (address)
WRAPPED_NATIVE_ASSET_ADDRESS
viewfunction WRAPPED_NATIVE_ASSET_ADDRESS() view returns (address)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(uint256 assets, address receiver) returns (uint256 shares)
depositUnderlying
payablefunction depositUnderlying(uint256[] amounts, uint256 minAmount, address receiver) payable returns (uint256 shares)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address _vault, string _name, string _symbol, address _feeAccount)
mint
nonpayablefunction mint(uint256 shares, address receiver) returns (uint256 assets)
multicall
nonpayablefunction multicall(bytes[] data) returns (bytes[] results)
redeem
nonpayablefunction redeem(uint256 shares, address receiver, address _owner, uint256 additionalFeePct) returns (uint256 assets)
redeemOneUnderlying
nonpayablefunction redeemOneUnderlying(uint256 shares, uint8 index, uint256 minAmount, address receiver, address _owner, uint256 additionalFeePct) returns (address assetAddress, uint256 amount)
redeemUnderlying
nonpayablefunction redeemUnderlying(uint256 shares, uint256[] minAmounts, address receiver, address _owner, uint256 additionalFeePct) returns (address[] assetAddresses, uint256[] amounts)
renounceOwnership
nonpayablefunction renounceOwnership()
setFeesAccount
nonpayablefunction setFeesAccount(address _value)
setRedemptionFee
nonpayablefunction setRedemptionFee(uint256 _value)
setSafeAssets
nonpayablefunction setSafeAssets(address[] _safeAssets)
setSafeHarborRedemptions
nonpayablefunction setSafeHarborRedemptions(bool allow)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdraw
nonpayablefunction withdraw(uint256 assets, address receiver, address _owner, uint256 additionalFeePct) returns (uint256 shares)
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Deposit
event Deposit(address indexed sender, address indexed owner, uint256 assets, uint256 shares)
DepositUnderlying
event DepositUnderlying(address indexed caller, address indexed _owner, uint256[] amounts, uint256 shares)
FeeAccountUpdated
event FeeAccountUpdated(address actor, address feeAccount)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RedemptionFee
event RedemptionFee(address actor, address asset, uint256 amount, uint256 feeAmount, uint256 additionalFeeAmount)
RedemptionFeeUpdated
event RedemptionFeeUpdated(address actor, uint256 redemptionFee)
SafeAssetsUpdated
event SafeAssetsUpdated(address account, address[] safeAssets)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Upgraded
event Upgraded(address indexed implementation)
Withdraw
event Withdraw(address indexed sender, address indexed receiver, address indexed owner, uint256 assets, uint256 shares)
WithdrawOneUnderlying
event WithdrawOneUnderlying(address indexed caller, address indexed receiver, address indexed _owner, uint256 amount, uint256 index, uint256 shares)
WithdrawUnderlying
event WithdrawUnderlying(address indexed caller, address indexed receiver, address indexed _owner, uint256[] amounts, address[] assetAddresses, uint256 shares)
errors
AccountNotAdmin
error AccountNotAdmin(address)
DepositMoreThanMax
error DepositMoreThanMax()
InvalidERC20Address
error InvalidERC20Address()
InvalidInputs
error InvalidInputs()
InvalidMsgValue
error InvalidMsgValue()
MintMoreThanMax
error MintMoreThanMax()
RedeemMoreThanMax
error RedeemMoreThanMax()
SafeHarborModeEnabled
error SafeHarborModeEnabled()
SafeHarborRedemptionDisabled
error SafeHarborRedemptionDisabled()
WithdrawMoreThanMax
error WithdrawMoreThanMax()
ZeroShares
error ZeroShares()
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805161546f6200011f60003960008181610bf301528181610c7d01528181610e6d01528181610ef20152610fb3015261546f6000f3fe6080604052600436106103645760003560e01c806383c51e36116101c6578063b2f6ed23116100f7578063d905777e11610095578063ef8b30f71161006f578063ef8b30f714610905578063f2fde38b146109e2578063f6b45cfd14610a02578063f8b2cb4f14610a175761036b565b8063d905777e1461095c578063dd62ed3e1461097c578063ddb00dfc146109c25761036b565b8063c64fca11116100d1578063c64fca11146108e4578063c6e6f59214610905578063c72efe7914610925578063ce96cb771461093c5761036b565b8063b2f6ed2314610896578063b3d7f6b9146108c4578063c63d75b6146105455761036b565b80639cd6f00911610164578063a457c2d71161013e578063a457c2d714610809578063a9059cbb14610829578063aa1a05cc14610849578063ac9650d8146108695761036b565b80639cd6f009146107955780639f40a7b3146107c9578063a318c1a4146107e95761036b565b80638f4abf61116101a05780638f4abf611461070e57806394bf804d1461074d57806395d89b411461076d57806398786d63146107825761036b565b806383c51e36146106bb5780638b0a15d7146106db5780638da5cb5b146106f05761036b565b806339509351116102a0578063613d25bb1161023e5780636e553f65116102185780636e553f651461063057806370a0823114610650578063715018a6146106865780637dbc1df01461069b5761036b565b8063613d25bb146105d0578063676f774c146105f05780636a63cee7146106105761036b565b80634cdad5061161027a5780634cdad506146103e95780634e46d519146105885780634f1ef286146105a857806352d1902d146105bb5761036b565b80633950935114610525578063402d267d14610545578063411557d1146105675761036b565b80630d8e6e2c1161030d57806323b872dd116102e757806323b872dd1461049d578063313ce567146104bd5780633659cfe6146104e457806338d52e0f146105065761036b565b80630d8e6e2c1461045957806310d9aec11461047157806318160ddd146104885761036b565b806307a2d13a1161033e57806307a2d13a146103e9578063095ea7b3146104095780630a28a477146104395761036b565b806301e1d11414610372578063025fb6621461039a57806306fdde03146103c75761036b565b3661036b57005b6060516080f35b34801561037e57600080fd5b50610387610a37565b6040519081526020015b60405180910390f35b3480156103a657600080fd5b506103af610aab565b6040516001600160a01b039091168152602001610391565b3480156103d357600080fd5b506103dc610ade565b60405161039191906147db565b3480156103f557600080fd5b506103876104043660046147ee565b610b70565b34801561041557600080fd5b5061042961042436600461481c565b610b83565b6040519015158152602001610391565b34801561044557600080fd5b506103876104543660046147ee565b610b9b565b34801561046557600080fd5b5060005460ff16610387565b34801561047d57600080fd5b506103876101645481565b34801561049457600080fd5b50609954610387565b3480156104a957600080fd5b506104296104b8366004614848565b610ba8565b3480156104c957600080fd5b506104d2610bce565b60405160ff9091168152602001610391565b3480156104f057600080fd5b506105046104ff366004614889565b610be9565b005b34801561051257600080fd5b5061012f546001600160a01b03166103af565b34801561053157600080fd5b5061042961054036600461481c565b610d40565b34801561055157600080fd5b50610387610560366004614889565b5060001990565b34801561057357600080fd5b5061012e546103af906001600160a01b031681565b34801561059457600080fd5b506105046105a33660046148f2565b610d7f565b6105046105b63660046149d3565b610e63565b3480156105c757600080fd5b50610387610fa6565b3480156105dc57600080fd5b506105046105eb366004614a57565b61106b565b3480156105fc57600080fd5b5061050461060b366004614aee565b6113ee565b34801561061c57600080fd5b5061038761062b3660046147ee565b61142b565b34801561063c57600080fd5b5061038761064b366004614b0b565b61145e565b34801561065c57600080fd5b5061038761066b366004614889565b6001600160a01b031660009081526097602052604090205490565b34801561069257600080fd5b506105046114be565b3480156106a757600080fd5b506105046106b63660046147ee565b6114d2565b3480156106c757600080fd5b506103af6106d63660046147ee565b6114e3565b3480156106e757600080fd5b5061042961150e565b3480156106fc57600080fd5b506033546001600160a01b03166103af565b34801561071a57600080fd5b5061072e610729366004614b3b565b61157b565b604080516001600160a01b039093168352602083019190915201610391565b34801561075957600080fd5b50610387610768366004614b0b565b61160e565b34801561077957600080fd5b506103dc61166e565b610387610790366004614ba8565b61167d565b3480156107a157600080fd5b507f14aa58a89d3f94ea99187ab98e735eb8f742cc801507b0f8968576d3fdc3c8cc54610387565b3480156107d557600080fd5b506103876107e4366004614bfc565b611904565b3480156107f557600080fd5b50610387610804366004614bfc565b61196e565b34801561081557600080fd5b5061042961082436600461481c565b6119d8565b34801561083557600080fd5b5061042961084436600461481c565b611a75565b34801561085557600080fd5b506103af6108643660046147ee565b611a83565b34801561087557600080fd5b506108896108843660046148f2565b611a94565b6040516103919190614c44565b3480156108a257600080fd5b506108b66108b1366004614ca6565b611b80565b604051610391929190614d96565b3480156108d057600080fd5b506103876108df3660046147ee565b611bd1565b3480156108f057600080fd5b5061012d546103af906001600160a01b031681565b34801561091157600080fd5b506103876109203660046147ee565b611bde565b34801561093157600080fd5b506103876101625481565b34801561094857600080fd5b50610387610957366004614889565b611beb565b34801561096857600080fd5b50610387610977366004614889565b611c0f565b34801561098857600080fd5b50610387610997366004614dbb565b6001600160a01b03918216600090815260986020908152604080832093909416825291909152205490565b3480156109ce57600080fd5b506105046109dd366004614889565b611c2d565b3480156109ee57600080fd5b506105046109fd366004614889565b611c3e565b348015610a0e57600080fd5b50610387600181565b348015610a2357600080fd5b50610387610a32366004614889565b611cb4565b61012e546040805163a9bdbf8960e01b815290516000926001600160a01b03169163a9bdbf899160048083019260209291908290030181865afa158015610a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa69190614de9565b905090565b60007f68433f9d83ac21ac7a279e7d087229a9129597a360563c499bb398b5664b27c15b546001600160a01b0316919050565b6060609a8054610aed90614e02565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1990614e02565b8015610b665780601f10610b3b57610100808354040283529160200191610b66565b820191906000526020600020905b815481529060010190602001808311610b4957829003601f168201915b5050505050905090565b6000610b7d826000611cbf565b92915050565b600033610b91818585611cf9565b5060019392505050565b6000610b7d826001611e1d565b600033610bb6858285611e4d565b610bc1858585611edf565b60019150505b9392505050565b60008061012f54610aa69190600160a01b900460ff16614e52565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c7b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084015b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610cad61208a565b6001600160a01b031614610d185760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401610c72565b610d21816120b2565b60408051600080825260208201909252610d3d918391906120ba565b50565b3360008181526098602090815260408083206001600160a01b0387168452909152812054909190610b919082908690610d7a908790614e6b565b611cf9565b610d8761224b565b600081808203610daa576040516379a67d5b60e11b815260040160405180910390fd5b80821015610e0d576000848484818110610dc657610dc6614e7e565b9050602002016020810190610ddb9190614889565b6001600160a01b031603610e02576040516379a67d5b60e11b815260040160405180910390fd5b816001019150610daa565b50610e1d9050610163838361467e565b506101648190557fdefcdbdb8dfbdcd08ec57e140b8689157c6a0341989ee5c3762f725e2d704252338383604051610e5793929190614e94565b60405180910390a15050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ef05760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401610c72565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f2261208a565b6001600160a01b031614610f8d5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401610c72565b610f96826120b2565b610fa2828260016120ba565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110465760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610c72565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b600054610100900460ff161580801561108b5750600054600160ff909116105b806110a55750303b1580156110a5575060005460ff166001145b6111085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c72565b6000805460ff19166001179055801561112b576000805461ff0019166101001790555b6111378585858561243e565b6000856001600160a01b031663bfd9041b6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611179573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119d9190614ef0565b61012f80546001600160a01b0319166001600160a01b03831617905590506000806111c783612491565b91509150816111d75760126111d9565b805b61012f805460ff92909216600160a01b0260ff60a01b1990921691909117905561012e5460408051630a1527d360e11b815290516000926001600160a01b03169163142a4fa6916004808301926020929190829003018187875af1158015611245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112699190614de9565b61016281905590508067ffffffffffffffff81111561128a5761128a614934565b6040519080825280602002602001820160405280156112b3578160200160208202803683370190505b5080516112c991610161916020909101906146e1565b5060005b8181101561138557604051630e98c8a560e01b8152600481018290526001600160a01b038b1690630e98c8a5906024016020604051808303816000875af115801561131c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113409190614ef0565b610161828154811061135457611354614e7e565b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790556001016112cd565b61016180546113979161016391614736565b5050610164555050811590506113e7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6113f661224b565b807fd8e383845db7ecbb6065c22cc5d1320931e4ef39a73fc10e0587d5257ff503795b805460ff191691151591909117905550565b6000610b7d826114597f14aa58a89d3f94ea99187ab98e735eb8f742cc801507b0f8968576d3fdc3c8cc5490565b61256d565b600061146861150e565b156114865760405163379917b760e21b815260040160405180910390fd5b61148f83611bde565b9050806000036114b257604051639811e0c760e01b815260040160405180910390fd5b610b7d33838584612586565b6114c66127ab565b6114d06000612805565b565b6114da61224b565b610d3d81612857565b61016181815481106114f457600080fd5b6000918252602090912001546001600160a01b0316905081565b61012e5460408051621eab8360e01b815290516000926001600160a01b031691621eab839160048083019260209291908290030181865afa158015611557573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa69190614f0d565b6000806115866128da565b61158e61150e565b156115ac5760405163379917b760e21b815260040160405180910390fd5b6115b584611c0f565b8811156115d55760405163232b212d60e11b815260040160405180910390fd5b60006115e089610b70565b90506115f2338787848c8c8f8b612933565b909350915061160390506001606555565b965096945050505050565b600061161861150e565b156116365760405163379917b760e21b815260040160405180910390fd5b8260000361165757604051639811e0c760e01b815260040160405180910390fd5b61166083611bd1565b9050610b7d33838386612586565b6060609b8054610aed90614e02565b60006116876128da565b61168f61150e565b156116ad5760405163379917b760e21b815260040160405180910390fd5b6116e9858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612b1c92505050565b611725858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612cf592505050565b61012e54604051632e04cb3d60e11b81526001600160a01b0390911690635c09967a90349061175e908990899061016190600401614f75565b6000604051808303818588803b15801561177757600080fd5b505af115801561178b573d6000803e3d6000fd5b505061012e546040516318b7662d60e31b8152600094506001600160a01b03909116925063c5bb316891506117c890899089908990600401614fdd565b6020604051808303816000875af11580156117e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180b9190614de9565b905061181681611bde565b91508160000361183957604051639811e0c760e01b815260040160405180910390fd5b61012e5460405163534a7e1d60e11b8152600481018390526001600160a01b039091169063a694fc3a90602401600060405180830381600087803b15801561188057600080fd5b505af1158015611894573d6000803e3d6000fd5b505050506118a28383612e49565b6001600160a01b038316336001600160a01b03167fe5a776f96c28d6dba003833bf19cf70fc08b28da5421ed94b3af9445867437378888866040516118e993929190614fdd565b60405180910390a3506118fc6001606555565b949350505050565b600061190e61150e565b1561192c5760405163379917b760e21b815260040160405180910390fd5b61193583611c0f565b8511156119555760405163232b212d60e11b815260040160405180910390fd5b61195e85610b70565b90506118fc338585848987612f0a565b600061197861150e565b156119965760405163379917b760e21b815260040160405180910390fd5b61199f83611beb565b8511156119bf576040516324da507f60e21b815260040160405180910390fd5b6119c885610b9b565b90506118fc338585888587612f0a565b3360008181526098602090815260408083206001600160a01b038716845290915281205490919083811015611a5d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c72565b611a6a8286868403611cf9565b506001949350505050565b600033610b91818585611edf565b61016381815481106114f457600080fd5b6060818067ffffffffffffffff811115611ab057611ab0614934565b604051908082528060200260200182016040528015611ae357816020015b6060815260200190600190039081611ace5790505b50915060005b81811015611b7857611b5330868684818110611b0757611b07614e7e565b9050602002810190611b199190615001565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130ce92505050565b838281518110611b6557611b65614e7e565b6020908102919091010152600101611ae9565b505092915050565b606080611b8b6128da565b611b9484611c0f565b881115611bb45760405163232b212d60e11b815260040160405180910390fd5b6000611bbf89610b70565b90506115f2338787848c8c8f8b6130f3565b6000610b7d826001611cbf565b6000610b7d826000611e1d565b6001600160a01b038116600090815260976020526040812054610b7d906000611cbf565b6001600160a01b038116600090815260976020526040812054610b7d565b611c3561224b565b610d3d81613608565b611c466127ab565b6001600160a01b038116611cab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c72565b610d3d81612805565b6000610b7d826136a3565b6000610bc7611ccc610a37565b611cd7906001614e6b565b611ce36000600a61512c565b609954611cf09190614e6b565b85919085613739565b6001600160a01b038316611d5b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c72565b6001600160a01b038216611dbc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c72565b6001600160a01b0383811660008181526098602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610bc7611e2d82600a61512c565b609954611e3a9190614e6b565b611e42610a37565b611cf0906001614e6b565b6001600160a01b038381166000908152609860209081526040808320938616835292905220546000198114611ed95781811015611ecc5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610c72565b611ed98484848403611cf9565b50505050565b6001600160a01b038316611f435760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c72565b6001600160a01b038216611fa55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c72565b6001600160a01b0383166000908152609760205260409020548181101561201d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610c72565b6001600160a01b0380851660008181526097602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061207d9086815260200190565b60405180910390a3611ed9565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610acf565b610d3d6127ab565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156120f2576120ed83613796565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561214c575060408051601f3d908101601f1916820190925261214991810190614de9565b60015b6121be5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401610c72565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461223f5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c72565b506120ed838383613844565b61012e546040805163194fe0ef60e01b815290516001600160a01b039092169182916391d1485491839163194fe0ef91600480830192602092919082900301816000875af11580156122a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c59190614de9565b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015612310573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123349190614f0d565b15801561241e5750806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ad9190614de9565b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa1580156123f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241c9190614f0d565b155b15610d3d57604051633ba76d1160e01b8152336004820152602401610c72565b600054610100900460ff166124655760405162461bcd60e51b8152600401610c729061513b565b61246d613869565b612475613898565b61247f83836138c7565b612488816138f8565b611ed984613a03565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290516000918291829182916001600160a01b038716916124d891615186565b600060405180830381855afa9150503d8060008114612513576040519150601f19603f3d011682016040523d82523d6000602084013e612518565b606091505b509150915081801561252c57506020815110155b15612560576000818060200190518101906125479190614de9565b905060ff811161255e576001969095509350505050565b505b5060009485945092505050565b600061271061257c83856151a2565b610bc791906151cf565b6125b084308461259f61012f546001600160a01b031690565b6001600160a01b0316929190613a6e565b60408051600180825281830190925260009182919060208083019080368337505060408051600180825281830190925291506020808301908036833701905050915091508361260861012f546001600160a01b031690565b8360008151811061261b5761261b614e7e565b602002602001018360008151811061263557612635614e7e565b6001600160a01b0393841660209182029290920101529190915261012e5461267f913091168661266e61012f546001600160a01b031690565b6001600160a01b0316929190613abf565b61012e54604051632e04cb3d60e11b81526001600160a01b0390911690635c09967a906126b290859085906004016151f1565b600060405180830381600087803b1580156126cc57600080fd5b505af11580156126e0573d6000803e3d6000fd5b505061012e5460405163534a7e1d60e11b8152600481018890526001600160a01b03909116925063a694fc3a9150602401600060405180830381600087803b15801561272b57600080fd5b505af115801561273f573d6000803e3d6000fd5b5050505061274d8584612e49565b846001600160a01b0316866001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7868660405161279b929190918252602082015260400190565b60405180910390a3505050505050565b6033546001600160a01b031633146114d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c72565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6127108110612879576040516379a67d5b60e11b815260040160405180910390fd5b7f14aa58a89d3f94ea99187ab98e735eb8f742cc801507b0f8968576d3fdc3c8cc81905560408051338152602081018390527ffd299d8f08e0fbf1ccad155dda5e11040f0a90f1b4d7f2acff52316738f4c1db91015b60405180910390a150565b60026065540361292c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c72565b6002606555565b600080876001600160a01b03168a6001600160a01b03161461295a5761295a888b86611e4d565b612965888585613b91565b975093506129738885613bc2565b61012e54604051632d6bef9760e21b8152600481018990526024810187905260ff881660448201526001600160a01b039091169063b5afbe5c906064016020604051808303816000875af11580156129cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f39190614de9565b90506101618660ff1681548110612a0c57612a0c614e7e565b60009182526020909120015461012e54604051627b8a6760e11b8152600481018490526001600160a01b0392831660248201819052945091169062f714ce906044016020604051808303816000875af1158015612a6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a919190614f0d565b50612a9d898383613cf6565b876001600160a01b0316896001600160a01b0316612ab83390565b6040805185815260ff8b1660208201529081018b90526001600160a01b0391909116907f94c8dc4fe01708798b850fc44adb60e53b3daa2f0dc258c58a1026a5f0c718489060600160405180910390a49850989650505050505050565b6001606555565b6000610161805480602002602001604051908101604052809291908181526020018280548015612b7557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612b57575b5050505050905060008151905080835114612ba3576040516379a67d5b60e11b815260040160405180910390fd5b60008060005b83811015612c855773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03166101618281548110612be357612be3614e7e565b6000918252602090912001546001600160a01b031603612c0b57600192509050818101612ba9565b6000868281518110612c1f57612c1f614e7e565b60200260200101511115612c7d57612c7d3330888481518110612c4457612c44614e7e565b60200260200101516101618581548110612c6057612c60614e7e565b6000918252602090912001546001600160a01b0316929190613a6e565b600101612ba9565b5081158015612c9357503415155b15612cb157604051631841b4e160e01b815260040160405180910390fd5b818015612cd75750848181518110612ccb57612ccb614e7e565b60200260200101513414155b156113e757604051631841b4e160e01b815260040160405180910390fd5b6101625461012e54610161805460408051602080840282018101909252828152600095869573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee956001600160a01b03909116949193909190830182828015612d7a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612d5c575b50505050509350935060005b84811015612e41576000868281518110612da257612da2614e7e565b6020026020010151118015612de25750826001600160a01b0316848281518110612dce57612dce614e7e565b60200260200101516001600160a01b031614155b15612e3957612e393083888481518110612dfe57612dfe614e7e565b6020026020010151878581518110612e1857612e18614e7e565b60200260200101516001600160a01b0316613abf909392919063ffffffff16565b600101612d86565b505050505050565b6001600160a01b038216612e9f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610c72565b8060996000828254612eb19190614e6b565b90915550506001600160a01b0382166000818152609760209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b836001600160a01b0316866001600160a01b031614612f2e57612f2e848784611e4d565b612f39848383613b91565b93509150612f478483613bc2565b61012e546040516305c2fbcf60e31b8152600481018590526001600160a01b0390911690632e17de7890602401600060405180830381600087803b158015612f8e57600080fd5b505af1158015612fa2573d6000803e3d6000fd5b505061012e546001600160a01b0316915062f714ce905084612fcd61012f546001600160a01b031690565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044016020604051808303816000875af1158015613019573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061303d9190614f0d565b50613066858461305661012f546001600160a01b031690565b6001600160a01b03169190613d35565b836001600160a01b0316856001600160a01b0316876001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db86866040516130be929190918252602082015260400190565b60405180910390a4505050505050565b6060610bc7838360405180606001604052806027815260200161543c60279139613d85565b606080876001600160a01b03168a6001600160a01b03161461311a5761311a888b86611e4d565b613125888585613b91565b97509350600061313460995490565b90506131408986613bc2565b61012e60009054906101000a90046001600160a01b03166001600160a01b0316621eab836040518163ffffffff1660e01b8152600401602060405180830381865afa158015613193573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b79190614f0d565b15613393577fd8e383845db7ecbb6065c22cc5d1320931e4ef39a73fc10e0587d5257ff503795460ff166131fe5760405163400009c160e01b815260040160405180910390fd5b61016380548060200260200160405190810160405280929190818152602001828054801561325557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613237575b50505050509250825167ffffffffffffffff81111561327657613276614934565b60405190808252806020026020018201604052801561329f578160200160208202803683370190505b50805190925060005b8181101561338c5761012e5485516000916001600160a01b03169063f8b2cb4f908890859081106132db576132db614e7e565b60200260200101516040518263ffffffff1660e01b815260040161330e91906001600160a01b0391909116815260200190565b602060405180830381865afa15801561332b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061334f9190614de9565b90508361335c89836151a2565b61336691906151cf565b85838151811061337857613378614e7e565b6020908102919091010152506001016132a8565b505061346f565b6101618054806020026020016040519081016040528092919081815260200182805480156133ea57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116133cc575b505061012e546040516338a5132b60e01b81529497506001600160a01b0316936338a5132b935061342592508c91508b908b90600401615216565b6000604051808303816000875af1158015613444573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261346c9190810190615230565b91505b60005b83518110156135a057600083828151811061348f5761348f614e7e565b602002602001015111156135985761012e5483516001600160a01b039091169062f714ce908590849081106134c6576134c6614e7e565b60200260200101518684815181106134e0576134e0614e7e565b60200260200101516040518363ffffffff1660e01b81526004016135179291909182526001600160a01b0316602082015260400190565b6020604051808303816000875af1158015613536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355a9190614f0d565b506135988b85838151811061357157613571614e7e565b602002602001015185848151811061358b5761358b614e7e565b6020026020010151613cf6565b600101613472565b50886001600160a01b03168a6001600160a01b03168c6001600160a01b03167f790ffbd4b05c3f882030c0f26dd99668831ccf7df7fe629d637ea7b8cad95c7385878a6040516135f2939291906152d6565b60405180910390a4509850989650505050505050565b6001600160a01b03811661362f576040516379a67d5b60e11b815260040160405180910390fd5b7f68433f9d83ac21ac7a279e7d087229a9129597a360563c499bb398b5664b27c180546001600160a01b0319166001600160a01b0383169081179091556040805133815260208101929092527f63f8f609737c2dc01ff1d619040ccd6cb6d0e1e7b04f5271d959deefa09ef54b91016128cf565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038316016136d1575047919050565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015613715573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7d9190614de9565b600080613747868686613dfd565b9050600183600281111561375d5761375d61530c565b14801561377a575060008480613775576137756151b9565b868809115b1561378d5761378a600182614e6b565b90505b95945050505050565b6001600160a01b0381163b6138035760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c72565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b61384d83613eef565b60008251118061385a5750805b156120ed57611ed983836130ce565b600054610100900460ff166138905760405162461bcd60e51b8152600401610c729061513b565b6114d0613f2f565b600054610100900460ff166138bf5760405162461bcd60e51b8152600401610c729061513b565b6114d0613f5f565b600054610100900460ff166138ee5760405162461bcd60e51b8152600401610c729061513b565b610fa28282613f86565b600054610100900460ff16158080156139185750600054600160ff909116105b806139325750303b158015613932575060005460ff166001145b6139955760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c72565b6000805460ff1916600117905580156139b8576000805461ff0019166101001790555b6139c182613fc6565b8015610fa2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610e57565b600054610100900460ff16613a2a5760405162461bcd60e51b8152600401610c729061513b565b61012e80546001600160a01b0319166001600160a01b03831617905560007fd8e383845db7ecbb6065c22cc5d1320931e4ef39a73fc10e0587d5257ff50379611419565b8373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601613aad576040516376fe282b60e11b815260040160405180910390fd5b81156113e7576113e78585858561408f565b8373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601613afe576040516376fe282b60e11b815260040160405180910390fd5b604051636eb1769f60e11b81526001600160a01b03858116600483015284811660248301526000919087169063dd62ed3e90604401602060405180830381865afa158015613b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b749190614de9565b1115613b8657613b86858460006140fa565b6113e7858484614216565b600080613ba0853086866142c3565b613baa9085615322565b935083613bb685610b70565b91509150935093915050565b6001600160a01b038216613c225760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610c72565b6001600160a01b03821660009081526097602052604090205481811015613c965760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610c72565b6001600160a01b03831660008181526097602090815260408083208686039055609980548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03831601613d25576120ed83826143db565b6120ed6001600160a01b03831684835b8273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601613d74576040516376fe282b60e11b815260040160405180910390fd5b8115611ed957611ed98484846143eb565b6060600080856001600160a01b031685604051613da29190615186565b600060405180830381855af49150503d8060008114613ddd576040519150601f19603f3d011682016040523d82523d6000602084013e613de2565b606091505b5091509150613df38683838761441b565b9695505050505050565b6000808060001985870985870292508281108382030391505080600003613e3757838281613e2d57613e2d6151b9565b0492505050610bc7565b808411613e865760405162461bcd60e51b815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f7700000000000000000000006044820152606401610c72565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b613ef881613796565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600054610100900460ff16613f565760405162461bcd60e51b8152600401610c729061513b565b6114d033612805565b600054610100900460ff16612b155760405162461bcd60e51b8152600401610c729061513b565b600054610100900460ff16613fad5760405162461bcd60e51b8152600401610c729061513b565b609a613fb9838261537b565b50609b6120ed828261537b565b600054610100900460ff1615808015613fe65750600054600160ff909116105b806140005750303b158015614000575060005460ff166001145b6140635760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c72565b6000805460ff191660011790558015614086576000805461ff0019166101001790555b6139c182613608565b6040516001600160a01b0380851660248301528316604482015260648101829052611ed99085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614494565b8015806141745750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa15801561414e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141729190614de9565b155b6141e65760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000006064820152608401610c72565b6040516001600160a01b0383166024820152604481018290526120ed90849063095ea7b360e01b906064016140c3565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa158015614266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061428a9190614de9565b9050611ed98463095ea7b360e01b856142a38686614e6b565b6040516001600160a01b03909216602483015260448201526064016140c3565b6000806142ee7f14aa58a89d3f94ea99187ab98e735eb8f742cc801507b0f8968576d3fdc3c8cc5490565b90506127106142fd8483614e6b565b111561431c576040516379a67d5b60e11b815260040160405180910390fd5b6000614326610aab565b90506000614334868461256d565b90506000614342878761256d565b905061434e8183614e6b565b945060008511801561436857506001600160a01b03831615155b156143cf57614378898487614569565b604080513381526001600160a01b038a166020820152808201899052606081018490526080810183905290517f632ab32db4f924366c4cd564eb2be04e8624ebc77ccda5bf0ab709cc5aee578b9181900360a00190a15b50505050949350505050565b8015610fa257610fa28282614574565b6040516001600160a01b0383166024820152604481018290526120ed90849063a9059cbb60e01b906064016140c3565b6060831561448a578251600003614483576001600160a01b0385163b6144835760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c72565b50816118fc565b6118fc83836145cf565b60006144e9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166145f99092919063ffffffff16565b905080516000148061450a57508080602001905181019061450a9190614f0d565b6120ed5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610c72565b6120ed838383611edf565b600080600080600085875af19050806120ed5760405162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152606401610c72565b8151156145df5781518083602001fd5b8060405162461bcd60e51b8152600401610c7291906147db565b60606118fc848460008585600080866001600160a01b031685876040516146209190615186565b60006040518083038185875af1925050503d806000811461465d576040519150601f19603f3d011682016040523d82523d6000602084013e614662565b606091505b50915091506146738783838761441b565b979650505050505050565b8280548282559060005260206000209081019282156146d1579160200282015b828111156146d15781546001600160a01b0319166001600160a01b0384351617825560209092019160019091019061469e565b506146dd929150614776565b5090565b8280548282559060005260206000209081019282156146d1579160200282015b828111156146d157825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614701565b8280548282559060005260206000209081019282156146d15760005260206000209182015b828111156146d157825482559160010191906001019061475b565b5b808211156146dd5760008155600101614777565b60005b838110156147a657818101518382015260200161478e565b50506000910152565b600081518084526147c781602086016020860161478b565b601f01601f19169290920160200192915050565b602081526000610bc760208301846147af565b60006020828403121561480057600080fd5b5035919050565b6001600160a01b0381168114610d3d57600080fd5b6000806040838503121561482f57600080fd5b823561483a81614807565b946020939093013593505050565b60008060006060848603121561485d57600080fd5b833561486881614807565b9250602084013561487881614807565b929592945050506040919091013590565b60006020828403121561489b57600080fd5b8135610bc781614807565b60008083601f8401126148b857600080fd5b50813567ffffffffffffffff8111156148d057600080fd5b6020830191508360208260051b85010111156148eb57600080fd5b9250929050565b6000806020838503121561490557600080fd5b823567ffffffffffffffff81111561491c57600080fd5b614928858286016148a6565b90969095509350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561497357614973614934565b604052919050565b600067ffffffffffffffff83111561499557614995614934565b6149a8601f8401601f191660200161494a565b90508281528383830111156149bc57600080fd5b828260208301376000602084830101529392505050565b600080604083850312156149e657600080fd5b82356149f181614807565b9150602083013567ffffffffffffffff811115614a0d57600080fd5b8301601f81018513614a1e57600080fd5b614a2d8582356020840161497b565b9150509250929050565b600082601f830112614a4857600080fd5b610bc78383356020850161497b565b60008060008060808587031215614a6d57600080fd5b8435614a7881614807565b9350602085013567ffffffffffffffff80821115614a9557600080fd5b614aa188838901614a37565b94506040870135915080821115614ab757600080fd5b50614ac487828801614a37565b9250506060850135614ad581614807565b939692955090935050565b8015158114610d3d57600080fd5b600060208284031215614b0057600080fd5b8135610bc781614ae0565b60008060408385031215614b1e57600080fd5b823591506020830135614b3081614807565b809150509250929050565b60008060008060008060c08789031215614b5457600080fd5b86359550602087013560ff81168114614b6c57600080fd5b9450604087013593506060870135614b8381614807565b92506080870135614b9381614807565b8092505060a087013590509295509295509295565b60008060008060608587031215614bbe57600080fd5b843567ffffffffffffffff811115614bd557600080fd5b614be1878288016148a6565b909550935050602085013591506040850135614ad581614807565b60008060008060808587031215614c1257600080fd5b843593506020850135614c2481614807565b92506040850135614c3481614807565b9396929550929360600135925050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614c9957603f19888603018452614c878583516147af565b94509285019290850190600101614c6b565b5092979650505050505050565b60008060008060008060a08789031215614cbf57600080fd5b86359550602087013567ffffffffffffffff811115614cdd57600080fd5b614ce989828a016148a6565b9096509450506040870135614cfd81614807565b92506060870135614d0d81614807565b80925050608087013590509295509295509295565b600081518084526020808501945080840160005b83811015614d5b5781516001600160a01b031687529582019590820190600101614d36565b509495945050505050565b600081518084526020808501945080840160005b83811015614d5b57815187529582019590820190600101614d7a565b604081526000614da96040830185614d22565b828103602084015261378d8185614d66565b60008060408385031215614dce57600080fd5b8235614dd981614807565b91506020830135614b3081614807565b600060208284031215614dfb57600080fd5b5051919050565b600181811c90821680614e1657607f821691505b602082108103614e3657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60ff8181168382160190811115610b7d57610b7d614e3c565b80820180821115610b7d57610b7d614e3c565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03848116825260406020808401829052908301849052600091859160608501845b87811015614ee3578435614ecf81614807565b841682529382019390820190600101614ebc565b5098975050505050505050565b600060208284031215614f0257600080fd5b8151610bc781614807565b600060208284031215614f1f57600080fd5b8151610bc781614ae0565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115614f5c57600080fd5b8260051b80836020870137939093016020019392505050565b604081526000614f89604083018587614f2a565b60208382038185015281855480845282840191508660005282600020935060005b81811015614fcf5784546001600160a01b031683526001948501949284019201614faa565b509098975050505050505050565b604081526000614ff1604083018587614f2a565b9050826020830152949350505050565b6000808335601e1984360301811261501857600080fd5b83018035915067ffffffffffffffff82111561503357600080fd5b6020019150368190038213156148eb57600080fd5b600181815b8085111561508357816000190482111561506957615069614e3c565b8085161561507657918102915b93841c939080029061504d565b509250929050565b60008261509a57506001610b7d565b816150a757506000610b7d565b81600181146150bd57600281146150c7576150e3565b6001915050610b7d565b60ff8411156150d8576150d8614e3c565b50506001821b610b7d565b5060208310610133831016604e8410600b8410161715615106575081810a610b7d565b6151108383615048565b806000190482111561512457615124614e3c565b029392505050565b6000610bc760ff84168361508b565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161519881846020870161478b565b9190910192915050565b8082028115828204841417610b7d57610b7d614e3c565b634e487b7160e01b600052601260045260246000fd5b6000826151ec57634e487b7160e01b600052601260045260246000fd5b500490565b6040815260006152046040830185614d66565b828103602084015261378d8185614d22565b83815260406020820152600061378d604083018486614f2a565b6000602080838503121561524357600080fd5b825167ffffffffffffffff8082111561525b57600080fd5b818501915085601f83011261526f57600080fd5b81518181111561528157615281614934565b8060051b915061529284830161494a565b81815291830184019184810190888411156152ac57600080fd5b938501935b838510156152ca578451825293850193908501906152b1565b98975050505050505050565b6060815260006152e96060830186614d66565b82810360208401526152fb8186614d22565b915050826040830152949350505050565b634e487b7160e01b600052602160045260246000fd5b81810381811115610b7d57610b7d614e3c565b601f8211156120ed57600081815260208120601f850160051c8101602086101561535c5750805b601f850160051c820191505b81811015612e4157828155600101615368565b815167ffffffffffffffff81111561539557615395614934565b6153a9816153a38454614e02565b84615335565b602080601f8311600181146153de57600084156153c65750858301515b600019600386901b1c1916600185901b178555612e41565b600085815260208120601f198616915b8281101561540d578886015182559484019460019091019084016153ee565b508582101561542b5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000812000a