0 txs
0 calls
constructor
constructor(address _triviToken, address _treasury)
functions
BPS
viewfunction BPS() view returns (uint256)
calculatePriceImpact
purefunction calculatePriceImpact(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) pure returns (uint256 impactBps)
CBBTC_TOKEN
viewfunction CBBTC_TOKEN() view returns (address)
checkPoolLiquidity
viewfunction checkPoolLiquidity(address tokenA, address tokenB) view returns (bool hasLiquidity, uint256 reserveA, uint256 reserveB)
deadlineWindow
viewfunction deadlineWindow() view returns (uint256)
FEE_BPS
viewfunction FEE_BPS() view returns (uint256)
getBestPath
viewfunction getBestPath(address tokenIn, address tokenOut, uint256 amountIn) view returns (address[] bestPath)
getExpectedOutput
viewfunction getExpectedOutput(uint256 ethAmount, uint256 usdcAmount, uint256 cbbtcAmount, uint256 virtualAmount) view returns (uint256 triviFromETH, uint256 triviFromUSDC, uint256 triviFromCBBTC, uint256 triviFromVIRTUAL)
getSellQuotes
viewfunction getSellQuotes(uint256 triviAmount) view returns (uint256 ethOut, uint256 usdcOut, uint256 cbbtcOut, uint256 virtualOut)
MAX_SLIPPAGE_BPS
viewfunction MAX_SLIPPAGE_BPS() view returns (uint256)
maxPriceImpactBps
viewfunction maxPriceImpactBps() view returns (uint256)
MIN_LIQUIDITY
viewfunction MIN_LIQUIDITY() view returns (uint256)
owner
viewfunction owner() view returns (address)
quoteBufferBps
viewfunction quoteBufferBps() view returns (uint256)
TAX_BPS
viewfunction TAX_BPS() view returns (uint256)
totalFeesCollected
viewfunction totalFeesCollected() view returns (uint256)
treasury
viewfunction treasury() view returns (address)
TRIVI
viewfunction TRIVI() view returns (address)
UNISWAP_FACTORY
viewfunction UNISWAP_FACTORY() view returns (address)
UNISWAP_ROUTER
viewfunction UNISWAP_ROUTER() view returns (address)
USDC_TOKEN
viewfunction USDC_TOKEN() view returns (address)
VIRTUAL_TOKEN
viewfunction VIRTUAL_TOKEN() view returns (address)
WETH_TOKEN
viewfunction WETH_TOKEN() view returns (address)
buyWithCBBTC
nonpayablefunction buyWithCBBTC(uint256 cbbtcAmount, uint256 minTriviOut)
buyWithETH
payablefunction buyWithETH(uint256 minTriviOut) payable
buyWithUSDC
nonpayablefunction buyWithUSDC(uint256 usdcAmount, uint256 minTriviOut)
buyWithVIRTUAL
nonpayablefunction buyWithVIRTUAL(uint256 virtualAmount, uint256 minTriviOut)
rescueETH
nonpayablefunction rescueETH(uint256 amount)
rescueToken
nonpayablefunction rescueToken(address token, uint256 amount)
sellForCBBTC
nonpayablefunction sellForCBBTC(uint256 triviAmount, uint256 minCBBTCOut)
sellForETH
nonpayablefunction sellForETH(uint256 triviAmount, uint256 minETHOut)
sellForUSDC
nonpayablefunction sellForUSDC(uint256 triviAmount, uint256 minUSDCOut)
sellForVIRTUAL
nonpayablefunction sellForVIRTUAL(uint256 triviAmount, uint256 minVIRTUALOut)
setQuoteConfig
nonpayablefunction setQuoteConfig(uint256 newBufferBps, uint256 newDeadlineWindow, uint256 newMaxPriceImpactBps)
setTreasury
nonpayablefunction setTreasury(address newTreasury)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
BoughtWithETH
event BoughtWithETH(address indexed buyer, uint256 ethIn, uint256 triviOut, uint256 feeAmount)
BoughtWithToken
event BoughtWithToken(address indexed buyer, address indexed tokenIn, uint256 amountIn, uint256 triviOut, uint256 feeAmount)
HighSlippageWarning
event HighSlippageWarning(address indexed user, uint256 expectedOut, uint256 minOut)
LowLiquidityWarning
event LowLiquidityWarning(address indexed token0, address indexed token1, uint256 liquidity)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
QuoteConfigUpdated
event QuoteConfigUpdated(uint256 bufferBps, uint256 deadlineWindow, uint256 maxPriceImpact)
SoldForETH
event SoldForETH(address indexed seller, uint256 triviIn, uint256 ethOut, uint256 feeAmount)
SoldForToken
event SoldForToken(address indexed seller, uint256 triviIn, address indexed tokenOut, uint256 amountOut, uint256 feeAmount)
TreasuryUpdated
event TreasuryUpdated(address indexed newTreasury)
errors
No errors.
creation bytecode
0x60a06040526001805561012c60045561012c6005556103e86006553480156200002757600080fd5b50604051620053db380380620053db8339810160408190526200004a9162000281565b620000553362000214565b6001600160a01b0382166200009b5760405162461bcd60e51b8152602060048201526007602482015266054524956493d360cc1b60448201526064015b60405180910390fd5b6001600160a01b038116620000e05760405162461bcd60e51b815260206004820152600a602482015269074726561737572793d360b41b604482015260640162000092565b6001600160a01b03828116608052600280546001600160a01b031916918316919091179055604080516315ab88c960e31b8152905173420000000000000000000000000000000000000691734752ba5dbc23f44d87826276bf6fd6b1c372ad249163ad5c4648916004808201926020929091908290030181865afa1580156200016d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001939190620002b9565b6001600160a01b031614620001d85760405162461bcd60e51b815260206004820152600a6024820152690aee4dedcce40ae8aa8960b31b604482015260640162000092565b6040516001600160a01b038216907f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a25050620002de565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200027c57600080fd5b919050565b600080604083850312156200029557600080fd5b620002a08362000264565b9150620002b06020840162000264565b90509250929050565b600060208284031215620002cc57600080fd5b620002d78262000264565b9392505050565b608051615001620003da60003960008181610578015281816108d501528181610bda01528181610d9401528181610f9601528181611196015281816114e2015281816117bd015281816117fd015281816118b3015281816118f90152818161195201528181611c5c01528181611c9c01528181611d5201528181611d9801528181611def0152818161230f0152818161289f015281816128df01528181612995015281816129db01528181612a34015281816134a80152818161383a01528181613a6d01528181613ca001528181613e4f01528181613fc601528181614006015281816140bc01528181614102015261415b01526150016000f3fe6080604052600436106102135760003560e01c8063a4a0ee6211610118578063e062d567116100a0578063f2fde38b1161006f578063f2fde38b1461063f578063f49e79221461065f578063f73f518e1461067f578063fa5692741461069f578063fd2ae590146106c757600080fd5b8063e062d567146105c7578063e229cd76146105e7578063e5bdb858146105fd578063f0f442601461061f57600080fd5b8063c74c0fac116100e7578063c74c0fac146104fc578063cc33fb1e14610524578063d826492014610544578063dba5971114610566578063dd81f5671461059a57600080fd5b8063a4a0ee6214610474578063b116b42f146104b1578063bf333f2c146104d1578063c28399ef146104e657600080fd5b806360c6d8ae1161019b5780637b3c3fb41161016a5780637b3c3fb4146103e55780638da5cb5b1461040d57806393359fe41461042b57806394dc9cf3146104415780639e252f001461045457600080fd5b806360c6d8ae1461037a57806361d027b31461039057806368f4a786146103b05780636c24bf04146103c557600080fd5b8063249d39e9116101e2578063249d39e9146102d157806330f53057146102e757806333f3d6281461030757806337d277d4146103275780634012c7fd1461035a57600080fd5b8063093b9ee11461021f578063110eb10714610241578063166e11b71461028657806321b77d63146102a657600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5061023f61023a3660046149b7565b6106dd565b005b34801561024d57600080fd5b5061026161025c3660046149d9565b610b5f565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b34801561029257600080fd5b5061023f6102a13660046149b7565b6112f3565b3480156102b257600080fd5b506102c3683635c9adc5dea0000081565b60405190815260200161027d565b3480156102dd57600080fd5b506102c361271081565b3480156102f357600080fd5b5061023f6103023660046149b7565b61176c565b34801561031357600080fd5b5061023f610322366004614a07565b611bb7565b34801561033357600080fd5b506103426006602160991b0181565b6040516001600160a01b03909116815260200161027d565b34801561036657600080fd5b5061023f6103753660046149b7565b611c0b565b34801561038657600080fd5b506102c360035481565b34801561039c57600080fd5b50600254610342906001600160a01b031681565b3480156103bc57600080fd5b506102c3606481565b3480156103d157600080fd5b5061023f6103e0366004614a33565b61205d565b3480156103f157600080fd5b5061034273cbb7c0000ab88b473b1f5afd9ef808440eed33bf81565b34801561041957600080fd5b506000546001600160a01b0316610342565b34801561043757600080fd5b506102c360065481565b61023f61044f3660046149d9565b6121bc565b34801561046057600080fd5b5061023f61046f3660046149d9565b61259c565b34801561048057600080fd5b5061049461048f366004614a5f565b61265d565b60408051931515845260208401929092529082015260600161027d565b3480156104bd57600080fd5b5061023f6104cc3660046149b7565b61284e565b3480156104dd57600080fd5b506102c3601981565b3480156104f257600080fd5b506102c360055481565b34801561050857600080fd5b50610342738909dc15e40173ff4699343b6eb8132c65e18ec681565b34801561053057600080fd5b506102c361053f366004614a33565b612d37565b34801561055057600080fd5b50610342600080516020614fac83398151915281565b34801561057257600080fd5b506103427f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a657600080fd5b506105ba6105b5366004614a98565b612e56565b60405161027d9190614b1d565b3480156105d357600080fd5b5061023f6105e23660046149b7565b613350565b3480156105f357600080fd5b506102c36101f481565b34801561060957600080fd5b50610342600080516020614f8c83398151915281565b34801561062b57600080fd5b5061023f61063a366004614b30565b61362a565b34801561064b57600080fd5b5061023f61065a366004614b30565b6136e1565b34801561066b57600080fd5b5061026161067a366004614b4d565b613765565b34801561068b57600080fd5b5061023f61069a3660046149b7565b613f75565b3480156106ab57600080fd5b5061034273833589fcd6edb6e08f4c7c32d4f71b54bda0291381565b3480156106d357600080fd5b506102c360045481565b6002600154036107085760405162461bcd60e51b81526004016106ff90614b7f565b60405180910390fd5b60026001558161072a5760405162461bcd60e51b81526004016106ff90614bb6565b61074a73cbb7c0000ab88b473b1f5afd9ef808440eed33bf33308561445e565b600061271061075a601985614bee565b6107649190614c0b565b905060006107728285614c2d565b905081156107be576002546107a69073cbb7c0000ab88b473b1f5afd9ef808440eed33bf906001600160a01b031684614565565b81600360008282546107b89190614c40565b90915550505b6107eb73cbb7c0000ab88b473b1f5afd9ef808440eed33bf600080516020614fac83398151915283614663565b60408051600480825260a082019092526000916020820160808036833701905050905073cbb7c0000ab88b473b1f5afd9ef808440eed33bf8160008151811061083657610836614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b018160018151811061087157610871614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c833981519152816002815181106108b3576108b3614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160038151811061090757610907614c69565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600090600080516020614fac8339815191529063d06ca61f906109559086908690600401614c7f565b600060405180830381865afa158015610972573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261099a9190810190614c98565b9050600081600183516109ad9190614c2d565b815181106109bd576109bd614c69565b602002602001015190506000811180156109d75750600086115b15610a26576000816127106109ec8983614c2d565b6109f69190614bee565b610a009190614c0b565b90506101f4811115610a245760405162461bcd60e51b81526004016106ff90614d56565b505b6000600080516020614fac8339815191526001600160a01b03166338ed17398689873360055442610a579190614c40565b6040518663ffffffff1660e01b8152600401610a77959493929190614d81565b6000604051808303816000875af1158015610a96573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610abe9190810190614c98565b905073cbb7c0000ab88b473b1f5afd9ef808440eed33bf6001600160a01b0316336001600160a01b03167fa6e29c00bf1680ba19c30d2a8f45ddaf0f86e04debb29673869c716d220e08188a8460018651610b199190614c2d565b81518110610b2957610b29614c69565b602090810291909101810151604080519384529183015281018a90526060015b60405180910390a3505060018055505050505050565b600080808080612710610b73606488614bee565b610b7d9190614c0b565b610b879087614c2d565b90506000612710610b99601984614bee565b610ba39190614c0b565b610bad9083614c2d565b90508015610d695760408051600380825260808201909252600091602082016060803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610c0c57610c0c614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c83398151915281600181518110610c4e57610c4e614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600281518110610c8957610c89614c69565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020614fac8339815191529063d06ca61f90610cd49085908590600401614c7f565b600060405180830381865afa925050508015610d1257506040513d6000823e601f3d908101601f19168201604052610d0f9190810190614c98565b60015b15610d67578051600303610d6557612710600454612710610d339190614c2d565b82600281518110610d4657610d46614c69565b6020026020010151610d589190614bee565b610d629190614c0b565b97505b505b505b8015610f6b5760408051600480825260a08201909252600091602082016080803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610dc657610dc6614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c83398151915281600181518110610e0857610e08614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600281518110610e4357610e43614c69565b60200260200101906001600160a01b031690816001600160a01b03168152505073833589fcd6edb6e08f4c7c32d4f71b54bda0291381600381518110610e8b57610e8b614c69565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020614fac8339815191529063d06ca61f90610ed69085908590600401614c7f565b600060405180830381865afa925050508015610f1457506040513d6000823e601f3d908101601f19168201604052610f119190810190614c98565b60015b15610f69578051600403610f6757612710600454612710610f359190614c2d565b82600381518110610f4857610f48614c69565b6020026020010151610f5a9190614bee565b610f649190614c0b565b96505b505b505b801561116d5760408051600480825260a08201909252600091602082016080803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610fc857610fc8614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c8339815191528160018151811061100a5761100a614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b018160028151811061104557611045614c69565b60200260200101906001600160a01b031690816001600160a01b03168152505073cbb7c0000ab88b473b1f5afd9ef808440eed33bf8160038151811061108d5761108d614c69565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020614fac8339815191529063d06ca61f906110d89085908590600401614c7f565b600060405180830381865afa92505050801561111657506040513d6000823e601f3d908101601f191682016040526111139190810190614c98565b60015b1561116b578051600403611169576127106004546127106111379190614c2d565b8260038151811061114a5761114a614c69565b602002602001015161115c9190614bee565b6111669190614c0b565b95505b505b505b80156112ea576040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106111c8576111c8614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c8339815191528160018151811061120a5761120a614c69565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020614fac8339815191529063d06ca61f906112559085908590600401614c7f565b600060405180830381865afa92505050801561129357506040513d6000823e601f3d908101601f191682016040526112909190810190614c98565b60015b156112e85780516002036112e6576127106004546127106112b49190614c2d565b826001815181106112c7576112c7614c69565b60200260200101516112d99190614bee565b6112e39190614c0b565b94505b505b505b50509193509193565b6002600154036113155760405162461bcd60e51b81526004016106ff90614b7f565b6002600155816113375760405162461bcd60e51b81526004016106ff90614bb6565b61135773833589fcd6edb6e08f4c7c32d4f71b54bda0291333308561445e565b6000612710611367601985614bee565b6113719190614c0b565b9050600061137f8285614c2d565b905081156113cb576002546113b39073833589fcd6edb6e08f4c7c32d4f71b54bda02913906001600160a01b031684614565565b81600360008282546113c59190614c40565b90915550505b6113f873833589fcd6edb6e08f4c7c32d4f71b54bda02913600080516020614fac83398151915283614663565b60408051600480825260a082019092526000916020820160808036833701905050905073833589fcd6edb6e08f4c7c32d4f71b54bda029138160008151811061144357611443614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b018160018151811061147e5761147e614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c833981519152816002815181106114c0576114c0614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160038151811061151457611514614c69565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600090600080516020614fac8339815191529063d06ca61f906115629086908690600401614c7f565b600060405180830381865afa15801561157f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115a79190810190614c98565b9050600081600183516115ba9190614c2d565b815181106115ca576115ca614c69565b602002602001015190506000811180156115e45750600086115b15611679576000816127106115f98983614c2d565b6116039190614bee565b61160d9190614c0b565b90506101f48111156116315760405162461bcd60e51b81526004016106ff90614d56565b61012c81111561167757604080518381526020810189905233917f869f1e471ad931f3380f6ff0fed2b70845593a4fc7ab11cfc8c6f40e9cd7871e910160405180910390a25b505b6000600080516020614fac8339815191526001600160a01b03166338ed173986898733600554426116aa9190614c40565b6040518663ffffffff1660e01b81526004016116ca959493929190614d81565b6000604051808303816000875af11580156116e9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117119190810190614c98565b905073833589fcd6edb6e08f4c7c32d4f71b54bda029136001600160a01b0316336001600160a01b03167fa6e29c00bf1680ba19c30d2a8f45ddaf0f86e04debb29673869c716d220e08188a8460018651610b199190614c2d565b60026001540361178e5760405162461bcd60e51b81526004016106ff90614b7f565b6002600155816117b05760405162461bcd60e51b81526004016106ff90614bb6565b6117e56001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561445e565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561184c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118709190614dbd565b90506000612710611882601984614bee565b61188c9190614c0b565b9050600061189a8284614c2d565b905081156118f4576002546118dc906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911684614565565b81600360008282546118ee9190614c40565b90915550505b61192d7f0000000000000000000000000000000000000000000000000000000000000000600080516020614fac83398151915283614663565b60408051600380825260808201909252600091602082016060803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061198457611984614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c833981519152816001815181106119c6576119c6614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600281518110611a0157611a01614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250506000479050600080516020614fac8339815191526001600160a01b031663791ac9478488853060055442611a559190614c40565b6040518663ffffffff1660e01b8152600401611a75959493929190614d81565b600060405180830381600087803b158015611a8f57600080fd5b505af1158015611aa3573d6000803e3d6000fd5b5050505060008147611ab59190614c2d565b905086811015611ad75760405162461bcd60e51b81526004016106ff90614dd6565b604051600090339083908381818185875af1925050503d8060008114611b19576040519150601f19603f3d011682016040523d82523d6000602084013e611b1e565b606091505b5050905080611b655760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b60448201526064016106ff565b604080518a81526020810184905290810187905233907fb956d99dd0c259c3d9d420a89b7dfe23069187ea2a91ed70412f4788a52d77b29060600160405180910390a250506001805550505050505050565b6000546001600160a01b03163314611be15760405162461bcd60e51b81526004016106ff90614e03565b611c07611bf66000546001600160a01b031690565b6001600160a01b0384169083614565565b5050565b600260015403611c2d5760405162461bcd60e51b81526004016106ff90614b7f565b600260015581611c4f5760405162461bcd60e51b81526004016106ff90614bb6565b611c846001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561445e565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0f9190614dbd565b90506000612710611d21601984614bee565b611d2b9190614c0b565b90506000611d398284614c2d565b90508115611d9357600254611d7b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911684614565565b8160036000828254611d8d9190614c40565b90915550505b611dcc7f0000000000000000000000000000000000000000000000000000000000000000600080516020614fac83398151915283614663565b6040805160028082526060820183526000926020830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611e2157611e21614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c83398151915281600181518110611e6357611e63614c69565b6001600160a01b0392909216602092830291909101909101526040516370a0823160e01b8152336004820152600090600080516020614f8c833981519152906370a0823190602401602060405180830381865afa158015611ec8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eec9190614dbd565b9050600080516020614fac8339815191526001600160a01b0316635c11d7958488853360055442611f1d9190614c40565b6040518663ffffffff1660e01b8152600401611f3d959493929190614d81565b600060405180830381600087803b158015611f5757600080fd5b505af1158015611f6b573d6000803e3d6000fd5b50506040516370a0823160e01b815233600482015260009250839150600080516020614f8c833981519152906370a0823190602401602060405180830381865afa158015611fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe19190614dbd565b611feb9190614c2d565b90508681101561200d5760405162461bcd60e51b81526004016106ff90614dd6565b6040805189815260208101839052908101869052600080516020614f8c8339815191529033907fdf35fa1ebc47cd0ec524c55adf1469142d2c7aead6329cc08ad53e7e7d0b324090606001610b49565b6000546001600160a01b031633146120875760405162461bcd60e51b81526004016106ff90614e03565b6107d08311156120cb5760405162461bcd60e51b815260206004820152600f60248201526e0c4eacccccae440e8dede40d0d2ced608b1b60448201526064016106ff565b603c82101580156120de5750610e108211155b61211d5760405162461bcd60e51b815260206004820152601060248201526f191958591b1a5b99481a5b9d985b1a5960821b60448201526064016106ff565b6113888111156121675760405162461bcd60e51b81526020600482015260156024820152740d2dae0c2c6e840d8d2dad2e840e8dede40d0d2ced605b1b60448201526064016106ff565b60048390556005829055600681905560408051848152602081018490529081018290527f6c252e2a90803897231b453923ef0e2d3fcdd2ee20cb860a7d8b180161b014009060600160405180910390a1505050565b6002600154036121de5760405162461bcd60e51b81526004016106ff90614b7f565b60026001553461221e5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b60448201526064016106ff565b600061271061222e601934614bee565b6122389190614c0b565b905060006122468234614c2d565b90508115612300576002546040516000916001600160a01b03169084908381818185875af1925050503d806000811461229b576040519150601f19603f3d011682016040523d82523d6000602084013e6122a0565b606091505b50509050806122e75760405162461bcd60e51b8152602060048201526013602482015272119959481d1c985b9cd9995c8819985a5b1959606a1b60448201526064016106ff565b82600360008282546122f99190614c40565b9091555050505b60006123346006602160991b017f000000000000000000000000000000000000000000000000000000000000000084612e56565b60405163d06ca61f60e01b8152909150600090600080516020614fac8339815191529063d06ca61f9061236d9086908690600401614c7f565b600060405180830381865afa15801561238a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123b29190810190614c98565b9050600081600183516123c59190614c2d565b815181106123d5576123d5614c69565b602002602001015190506000811180156123ef5750600086115b15612484576000816127106124048983614c2d565b61240e9190614bee565b6124189190614c0b565b90506101f481111561243c5760405162461bcd60e51b81526004016106ff90614d56565b61012c81111561248257604080518381526020810189905233917f869f1e471ad931f3380f6ff0fed2b70845593a4fc7ab11cfc8c6f40e9cd7871e910160405180910390a25b505b6000600080516020614fac8339815191526001600160a01b0316637ff36ab586898733600554426124b59190614c40565b6040518663ffffffff1660e01b81526004016124d49493929190614e38565b60006040518083038185885af11580156124f2573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405261251b9190810190614c98565b9050336001600160a01b03167f8e3075c3ab83d55decf7f0bcc1b3893764b4bb37388fdd5d217991eb056bf0e23483600185516125589190614c2d565b8151811061256857612568614c69565b6020908102919091018101516040805193845291830152810189905260600160405180910390a25050600180555050505050565b6000546001600160a01b031633146125c65760405162461bcd60e51b81526004016106ff90614e03565b600080546040516001600160a01b039091169083908381818185875af1925050503d8060008114612613576040519150601f19603f3d011682016040523d82523d6000602084013e612618565b606091505b5050905080611c075760405162461bcd60e51b8152602060048201526011602482015270115512081c995cd8dd594819985a5b1959607a1b60448201526064016106ff565b60405163e6a4390560e01b81526001600160a01b03838116600483015282166024820152600090819081908190738909dc15e40173ff4699343b6eb8132c65e18ec69063e6a4390590604401602060405180830381865afa1580156126c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ea9190614e6d565b90506001600160a01b03811661270b57600080600093509350935050612847565b6000819050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612751573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127759190614ea6565b50915091506000836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127de9190614e6d565b9050896001600160a01b0316816001600160a01b03160361281657826001600160701b03169650816001600160701b0316955061282f565b816001600160701b03169650826001600160701b031695505b60008711801561283f5750600086115b975050505050505b9250925092565b6002600154036128705760405162461bcd60e51b81526004016106ff90614b7f565b6002600155816128925760405162461bcd60e51b81526004016106ff90614bb6565b6128c76001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561445e565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561292e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129529190614dbd565b90506000612710612964601984614bee565b61296e9190614c0b565b9050600061297c8284614c2d565b905081156129d6576002546129be906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911684614565565b81600360008282546129d09190614c40565b90915550505b612a0f7f0000000000000000000000000000000000000000000000000000000000000000600080516020614fac83398151915283614663565b60408051600480825260a08201909252600091602082016080803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110612a6657612a66614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c83398151915281600181518110612aa857612aa8614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600281518110612ae357612ae3614c69565b60200260200101906001600160a01b031690816001600160a01b03168152505073833589fcd6edb6e08f4c7c32d4f71b54bda0291381600381518110612b2b57612b2b614c69565b6001600160a01b0392909216602092830291909101909101526040516370a0823160e01b815233600482015260009073833589fcd6edb6e08f4c7c32d4f71b54bda02913906370a0823190602401602060405180830381865afa158015612b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bba9190614dbd565b9050600080516020614fac8339815191526001600160a01b0316635c11d7958488853360055442612beb9190614c40565b6040518663ffffffff1660e01b8152600401612c0b959493929190614d81565b600060405180830381600087803b158015612c2557600080fd5b505af1158015612c39573d6000803e3d6000fd5b50506040516370a0823160e01b81523360048201526000925083915073833589fcd6edb6e08f4c7c32d4f71b54bda02913906370a0823190602401602060405180830381865afa158015612c91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb59190614dbd565b612cbf9190614c2d565b905086811015612ce15760405162461bcd60e51b81526004016106ff90614dd6565b604080518981526020810183905290810186905273833589fcd6edb6e08f4c7c32d4f71b54bda029139033907fdf35fa1ebc47cd0ec524c55adf1469142d2c7aead6329cc08ad53e7e7d0b324090606001610b49565b6000821580612d44575081155b15612d525750612710612e4f565b6000612d60856103e5614bee565b90506000612d6e8483614bee565b9050600082612d7f876103e8614bee565b612d899190614c40565b90506000612d978284614c0b565b9050600087612dae88670de0b6b3a7640000614bee565b612db89190614c0b565b90506000612dc68a8a614c40565b90506000612dd4848a614c2d565b905080600003612def57612710975050505050505050612e4f565b600082612e0483670de0b6b3a7640000614bee565b612e0e9190614c0b565b905080841115612e415783612710612e268383614c2d565b612e309190614bee565b612e3a9190614c0b565b9850612e46565b600098505b50505050505050505b9392505050565b60606000612e64858561265d565b505090508015612f96576040805160028082526060820183526000926020830190803683370190505090508581600081518110612ea357612ea3614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600181518110612ed757612ed7614c69565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020614fac8339815191529063d06ca61f90612f229087908590600401614c7f565b600060405180830381865afa925050508015612f6057506040513d6000823e601f3d908101601f19168201604052612f5d9190810190614c98565b60015b15612f9457600081600181518110612f7a57612f7a614c69565b60200260200101511115612f9257509150612e4f9050565b505b505b60408051600380825260808201909252600091602082016060803683370190505090508581600081518110612fcd57612fcd614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b018160018151811061300857613008614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050848160028151811061303c5761303c614c69565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020614fac8339815191529063d06ca61f906130879087908590600401614c7f565b600060405180830381865afa9250505080156130c557506040513d6000823e601f3d908101601f191682016040526130c29190810190614c98565b60015b15613280576000816002815181106130df576130df614c69565b6020026020010151111561327e576040805160038082526080820190925260009160208201606080368337019050509050878160008151811061312457613124614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c8339815191528160018151811061316657613166614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050868160028151811061319a5761319a614c69565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020614fac8339815191529063d06ca61f906131e59089908590600401614c7f565b600060405180830381865afa92505050801561322357506040513d6000823e601f3d908101601f191682016040526132209190810190614c98565b60015b15613272578260028151811061323b5761323b614c69565b60200260200101518160028151811061325657613256614c69565b6020026020010151111561327057509350612e4f92505050565b505b82945050505050612e4f565b505b604080516003808252608082019092526000916020820160608036833701905050905086816000815181106132b7576132b7614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c833981519152816001815181106132f9576132f9614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050858160028151811061332d5761332d614c69565b6001600160a01b0390921660209283029190910190910152925050509392505050565b6002600154036133725760405162461bcd60e51b81526004016106ff90614b7f565b6002600155816133945760405162461bcd60e51b81526004016106ff90614bb6565b6133ae600080516020614f8c83398151915233308561445e565b60006127106133be601985614bee565b6133c89190614c0b565b905060006133d68285614c2d565b9050811561341c5760025461340490600080516020614f8c833981519152906001600160a01b031684614565565b81600360008282546134169190614c40565b90915550505b613443600080516020614f8c833981519152600080516020614fac83398151915283614663565b604080516002808252606082018352600092602083019080368337019050509050600080516020614f8c8339815191528160008151811061348657613486614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106134da576134da614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250506000600080516020614fac8339815191526001600160a01b03166338ed1739848785336005544261352b9190614c40565b6040518663ffffffff1660e01b815260040161354b959493929190614d81565b6000604051808303816000875af115801561356a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135929190810190614c98565b9050600080516020614f8c8339815191526001600160a01b0316336001600160a01b03167fa6e29c00bf1680ba19c30d2a8f45ddaf0f86e04debb29673869c716d220e08188884600186516135e79190614c2d565b815181106135f7576135f7614c69565b6020908102919091018101516040805193845291830152810188905260600160405180910390a350506001805550505050565b6000546001600160a01b031633146136545760405162461bcd60e51b81526004016106ff90614e03565b6001600160a01b0381166136975760405162461bcd60e51b815260206004820152600a602482015269074726561737572793d360b41b60448201526064016106ff565b600280546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190600090a250565b6000546001600160a01b0316331461370b5760405162461bcd60e51b81526004016106ff90614e03565b6001600160a01b0381166137595760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b60448201526064016106ff565b6137628161484c565b50565b6000808080871561395557600061271061378060198b614bee565b61378a9190614c0b565b613794908a614c2d565b6040805160038082526080820190925291925060009190602082016060803683370190505090506006602160991b01816000815181106137d6576137d6614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c8339815191528160018151811061381857613818614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160028151811061386c5761386c614c69565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020614fac8339815191529063d06ca61f906138b79085908590600401614c7f565b600060405180830381865afa9250505080156138f557506040513d6000823e601f3d908101601f191682016040526138f29190810190614c98565b60015b6139025760009550613952565b80516003036139505761271060045461271061391e9190614c2d565b8260028151811061393157613931614c69565b60200260200101516139439190614bee565b61394d9190614c0b565b96505b505b50505b8615613b8857600061271061396b60198a614bee565b6139759190614c0b565b61397f9089614c2d565b60408051600480825260a08201909252919250600091906020820160808036833701905050905073833589fcd6edb6e08f4c7c32d4f71b54bda02913816000815181106139ce576139ce614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600181518110613a0957613a09614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c83398151915281600281518110613a4b57613a4b614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600381518110613a9f57613a9f614c69565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020614fac8339815191529063d06ca61f90613aea9085908590600401614c7f565b600060405180830381865afa925050508015613b2857506040513d6000823e601f3d908101601f19168201604052613b259190810190614c98565b60015b613b355760009450613b85565b8051600403613b8357612710600454612710613b519190614c2d565b82600381518110613b6457613b64614c69565b6020026020010151613b769190614bee565b613b809190614c0b565b95505b505b50505b8515613dbb576000612710613b9e601989614bee565b613ba89190614c0b565b613bb29088614c2d565b60408051600480825260a08201909252919250600091906020820160808036833701905050905073cbb7c0000ab88b473b1f5afd9ef808440eed33bf81600081518110613c0157613c01614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b0181600181518110613c3c57613c3c614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c83398151915281600281518110613c7e57613c7e614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600381518110613cd257613cd2614c69565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020614fac8339815191529063d06ca61f90613d1d9085908590600401614c7f565b600060405180830381865afa925050508015613d5b57506040513d6000823e601f3d908101601f19168201604052613d589190810190614c98565b60015b613d685760009350613db8565b8051600403613db657612710600454612710613d849190614c2d565b82600381518110613d9757613d97614c69565b6020026020010151613da99190614bee565b613db39190614c0b565b94505b505b50505b8415613f6a576000612710613dd1601988614bee565b613ddb9190614c0b565b613de59087614c2d565b6040805160028082526060820183529293506000929091602083019080368337019050509050600080516020614f8c83398151915281600081518110613e2d57613e2d614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110613e8157613e81614c69565b6001600160a01b039092166020928302919091019091015260405163d06ca61f60e01b8152600080516020614fac8339815191529063d06ca61f90613ecc9085908590600401614c7f565b600060405180830381865afa925050508015613f0a57506040513d6000823e601f3d908101601f19168201604052613f079190810190614c98565b60015b613f175760009250613f67565b8051600203613f6557612710600454612710613f339190614c2d565b82600181518110613f4657613f46614c69565b6020026020010151613f589190614bee565b613f629190614c0b565b93505b505b50505b945094509450949050565b600260015403613f975760405162461bcd60e51b81526004016106ff90614b7f565b600260015581613fb95760405162461bcd60e51b81526004016106ff90614bb6565b613fee6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561445e565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015614055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140799190614dbd565b9050600061271061408b601984614bee565b6140959190614c0b565b905060006140a38284614c2d565b905081156140fd576002546140e5906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911684614565565b81600360008282546140f79190614c40565b90915550505b6141367f0000000000000000000000000000000000000000000000000000000000000000600080516020614fac83398151915283614663565b60408051600480825260a08201909252600091602082016080803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061418d5761418d614c69565b60200260200101906001600160a01b031690816001600160a01b031681525050600080516020614f8c833981519152816001815181106141cf576141cf614c69565b60200260200101906001600160a01b031690816001600160a01b0316815250506006602160991b018160028151811061420a5761420a614c69565b60200260200101906001600160a01b031690816001600160a01b03168152505073cbb7c0000ab88b473b1f5afd9ef808440eed33bf8160038151811061425257614252614c69565b6001600160a01b0392909216602092830291909101909101526040516370a0823160e01b815233600482015260009073cbb7c0000ab88b473b1f5afd9ef808440eed33bf906370a0823190602401602060405180830381865afa1580156142bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142e19190614dbd565b9050600080516020614fac8339815191526001600160a01b0316635c11d79584888533600554426143129190614c40565b6040518663ffffffff1660e01b8152600401614332959493929190614d81565b600060405180830381600087803b15801561434c57600080fd5b505af1158015614360573d6000803e3d6000fd5b50506040516370a0823160e01b81523360048201526000925083915073cbb7c0000ab88b473b1f5afd9ef808440eed33bf906370a0823190602401602060405180830381865afa1580156143b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143dc9190614dbd565b6143e69190614c2d565b9050868110156144085760405162461bcd60e51b81526004016106ff90614dd6565b604080518981526020810183905290810186905273cbb7c0000ab88b473b1f5afd9ef808440eed33bf9033907fdf35fa1ebc47cd0ec524c55adf1469142d2c7aead6329cc08ad53e7e7d0b324090606001610b49565b604080516001600160a01b038581166024830152848116604483015260648083018590528351808403909101815260849092018352602080830180516001600160e01b03166323b872dd60e01b1790528351808501909452601e84527f5361666545524332303a207472616e7366657246726f6d206661696c656400009084015290916000916144f39190881690849061489c565b80519091501561455d57808060200190518101906145119190614ef6565b61455d5760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a207472616e7366657246726f6d206661696c6564000060448201526064016106ff565b505050505050565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b1790528351808501909452601a84527f5361666545524332303a207472616e73666572206661696c65640000000000009084015290916000916145f29190871690849061489c565b80519091501561465c57808060200190518101906146109190614ef6565b61465c5760405162461bcd60e51b815260206004820152601a60248201527f5361666545524332303a207472616e73666572206661696c656400000000000060448201526064016106ff565b5050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151909160009182918716906146c1908590614f3c565b6000604051808303816000865af19150503d80600081146146fe576040519150601f19603f3d011682016040523d82523d6000602084013e614703565b606091505b509150915081801561472d57508051158061472d57508080602001905181019061472d9190614ef6565b61455d57604080516001600160a01b03878116602483015260006044808401919091528351808403909101815260649092018352602080830180516001600160e01b031663095ea7b360e01b1790528351808501909452601f84527f5361666545524332303a20726573657420617070726f7665206661696c656400908401526147bb92908916919061489c565b50604080516001600160a01b03878116602483015260448083018890528351808403909101815260649092018352602080830180516001600160e01b031663095ea7b360e01b1790528351808501909452601c84527f5361666545524332303a2072652d617070726f7665206661696c6564000000009084015261484392908916919061489c565b50505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060600080856001600160a01b0316856040516148b99190614f3c565b6000604051808303816000865af19150503d80600081146148f6576040519150601f19603f3d011682016040523d82523d6000602084013e6148fb565b606091505b509150915061490c86838387614916565b9695505050505050565b6060831561498557825160000361497e576001600160a01b0385163b61497e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106ff565b50816149af565b8251156149955782518084602001fd5b8160405162461bcd60e51b81526004016106ff9190614f58565b949350505050565b600080604083850312156149ca57600080fd5b50508035926020909101359150565b6000602082840312156149eb57600080fd5b5035919050565b6001600160a01b038116811461376257600080fd5b60008060408385031215614a1a57600080fd5b8235614a25816149f2565b946020939093013593505050565b600080600060608486031215614a4857600080fd5b505081359360208301359350604090920135919050565b60008060408385031215614a7257600080fd5b8235614a7d816149f2565b91506020830135614a8d816149f2565b809150509250929050565b600080600060608486031215614aad57600080fd5b8335614ab8816149f2565b92506020840135614ac8816149f2565b929592945050506040919091013590565b600081518084526020808501945080840160005b83811015614b125781516001600160a01b031687529582019590820190600101614aed565b509495945050505050565b602081526000612e4f6020830184614ad9565b600060208284031215614b4257600080fd5b8135612e4f816149f2565b60008060008060808587031215614b6357600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252600890820152670416d6f756e743d360c41b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417614c0557614c05614bd8565b92915050565b600082614c2857634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115614c0557614c05614bd8565b80820180821115614c0557614c05614bd8565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8281526040602082015260006149af6040830184614ad9565b60006020808385031215614cab57600080fd5b825167ffffffffffffffff80821115614cc357600080fd5b818501915085601f830112614cd757600080fd5b815181811115614ce957614ce9614c53565b8060051b604051601f19603f83011681018181108582111715614d0e57614d0e614c53565b604052918252848201925083810185019188831115614d2c57600080fd5b938501935b82851015614d4a57845184529385019392850192614d31565b98975050505050505050565b6020808252601190820152700a6d8d2e0e0c2ceca40e8dede40d0d2ced607b1b604082015260600190565b85815284602082015260a060408201526000614da060a0830186614ad9565b6001600160a01b0394909416606083015250608001529392505050565b600060208284031215614dcf57600080fd5b5051919050565b602080825260139082015272125b9cdd59999a58da595b9d081bdd5d1c1d5d606a1b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b848152608060208201526000614e516080830186614ad9565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215614e7f57600080fd5b8151612e4f816149f2565b80516001600160701b0381168114614ea157600080fd5b919050565b600080600060608486031215614ebb57600080fd5b614ec484614e8a565b9250614ed260208501614e8a565b9150604084015163ffffffff81168114614eeb57600080fd5b809150509250925092565b600060208284031215614f0857600080fd5b81518015158114612e4f57600080fd5b60005b83811015614f33578181015183820152602001614f1b565b50506000910152565b60008251614f4e818460208701614f18565b9190910192915050565b6020815260008251806020840152614f77816040850160208701614f18565b601f01601f1916919091016040019291505056fe0000000000000000000000000b3e328455c4059eeb9e3f84b5543f74e24e7e1b0000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad24a2646970667358221220f1323cdc3e546328a494e3e299830c755aebbcb742bda7e87d1179efa1c3c69164736f6c634300081300330000000000000000000000000e6214f42992683a9177ce65d022f163d7bbd1d2000000000000000000000000ee0b91a41eb1faef101cc4ce3722499a7276f6bd