0 txs
1 call
constructor
No constructor.
functions
backingBuffer
viewfunction backingBuffer() view returns (uint192)
main
viewfunction main() view returns (address)
MAX_BACKING_BUFFER
viewfunction MAX_BACKING_BUFFER() view returns (uint192)
MAX_TRADE_SLIPPAGE
viewfunction MAX_TRADE_SLIPPAGE() view returns (uint192)
MAX_TRADE_VOLUME
viewfunction MAX_TRADE_VOLUME() view returns (uint192)
MAX_TRADING_DELAY
viewfunction MAX_TRADING_DELAY() view returns (uint48)
maxTradeSlippage
viewfunction maxTradeSlippage() view returns (uint192)
minTradeVolume
viewfunction minTradeVolume() view returns (uint192)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
trades
viewfunction trades(address) view returns (address)
tradesNonce
viewfunction tradesNonce() view returns (uint256)
tradesOpen
viewfunction tradesOpen() view returns (uint48)
tradingContext
viewfunction tradingContext(tuple basketsHeld) view returns (tuple ctx, tuple reg)
tradingDelay
viewfunction tradingDelay() view returns (uint48)
version
purefunction version() pure returns (string)
cacheComponents
nonpayablefunction cacheComponents()
claimRewards
nonpayablefunction claimRewards()
claimRewardsSingle
nonpayablefunction claimRewardsSingle(address erc20)
forceSettleTrade
nonpayablefunction forceSettleTrade(address trade)
forwardRevenue
nonpayablefunction forwardRevenue(address[] erc20s)
grantRTokenAllowance
nonpayablefunction grantRTokenAllowance(address erc20)
init
nonpayablefunction init(address main_, uint48 tradingDelay_, uint192 backingBuffer_, uint192 maxTradeSlippage_, uint192 minTradeVolume_)
multicall
nonpayablefunction multicall(bytes[] data) returns (bytes[] results)
rebalance
nonpayablefunction rebalance(uint8 kind)
setBackingBuffer
nonpayablefunction setBackingBuffer(uint192 val)
setMaxTradeSlippage
nonpayablefunction setMaxTradeSlippage(uint192 val)
setMinTradeVolume
nonpayablefunction setMinTradeVolume(uint192 val)
settleTrade
nonpayablefunction settleTrade(address sell) returns (address trade)
setTradingDelay
nonpayablefunction setTradingDelay(uint48 val)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BackingBufferSet
event BackingBufferSet(uint192 oldVal, uint192 newVal)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
MaxTradeSlippageSet
event MaxTradeSlippageSet(uint192 oldVal, uint192 newVal)
MinTradeVolumeSet
event MinTradeVolumeSet(uint192 oldVal, uint192 newVal)
RewardsClaimed
event RewardsClaimed(address indexed erc20, uint256 amount)
TradeSettled
event TradeSettled(address indexed trade, address indexed sell, address indexed buy, uint256 sellAmount, uint256 buyAmount)
TradeStarted
event TradeStarted(address indexed trade, address indexed sell, address indexed buy, uint256 sellAmount, uint256 minBuyAmount)
TradingDelaySet
event TradingDelaySet(uint48 oldVal, uint48 newVal)
Upgraded
event Upgraded(address indexed implementation)
errors
UIntOutOfBounds
error UIntOutOfBounds()
creation bytecode
0x60a06040523060805234801561001457600080fd5b50600054610100900460ff16158080156100355750600054600160ff909116105b8061004f5750303b15801561004f575060005460ff166001145b6100b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff1916600117905580156100d9576000805461ff0019166101001790555b801561011f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50608051615f34610157600039600081816109ca01528181610a0a01528181611a0001528181611a400152611ad30152615f346000f3fe6080604052600436106101d85760003560e01c806372fb729811610102578063b9bebb0411610095578063d50e7a7011610064578063d50e7a7014610527578063dffeadd0146105a2578063e7227de6146105c2578063f4ae1474146105e957600080fd5b8063b9bebb0414610527578063bcaeb7b914610543578063c76aeb1214610563578063cb9414f81461058257600080fd5b8063a9f752e5116100d1578063a9f752e514610483578063ac9650d8146104b9578063adaef42c146104e6578063b51f8f881461050657600080fd5b806372fb7298146103ff5780637cbf6db21461042d5780638767e6381461044d57806398026d941461046357600080fd5b806336a02f571161017a5780634f1ef286116101495780634f1ef2861461038057806352d1902d1461039357806354fd4d50146103b65780637162c797146103ea57600080fd5b806336a02f571461030b578063372500ab1461032b5780633854430c14610340578063386eafd91461036057600080fd5b806312701397116101b6578063127013971461027b57806312d5025a1461029c5780632bca33e9146102bc5780633659cfe6146102eb57600080fd5b80630db3d42c146101dd5780630e0264d11461022157806310e4d36b14610259575b600080fd5b3480156101e957600080fd5b5060fd5461020490600160301b90046001600160c01b031681565b6040516001600160c01b0390911681526020015b60405180910390f35b34801561022d57600080fd5b5061024161023c366004614fbf565b610609565b6040516001600160a01b039091168152602001610218565b34801561026557600080fd5b50610279610274366004614ff1565b610855565b005b34801561028757600080fd5b5061013554610204906001600160c01b031681565b3480156102a857600080fd5b506102796102b7366004614fbf565b610926565b3480156102c857600080fd5b506102d46301e1338081565b60405165ffffffffffff9091168152602001610218565b3480156102f757600080fd5b50610279610306366004614fbf565b6109c0565b34801561031757600080fd5b50610279610326366004614ff1565b610a9f565b34801561033757600080fd5b50610279610b6f565b34801561034c57600080fd5b5061027961035b366004615059565b610cbd565b34801561036c57600080fd5b5061027961037b3660046150ae565b611922565b61027961038e36600461515b565b6119f6565b34801561039f57600080fd5b506103a8611ac6565b604051908152602001610218565b3480156103c257600080fd5b5060408051808201825260058152640342e322e360dc1b602082015290516102189190615256565b3480156103f657600080fd5b50610279611b79565b34801561040b57600080fd5b5061041f61041a366004615269565b61202b565b604051610218929190615392565b34801561043957600080fd5b5060fe54610204906001600160c01b031681565b34801561045957600080fd5b506103a860ff5481565b34801561046f57600080fd5b5061027961047e366004614fbf565b612545565b34801561048f57600080fd5b5061024161049e366004614fbf565b60fc602052600090815260409020546001600160a01b031681565b3480156104c557600080fd5b506104d96104d4366004615059565b6127ae565b60405161021891906154a7565b3480156104f257600080fd5b50610279610501366004614fbf565b612896565b34801561051257600080fd5b506102046c01431e0fae6d7217caa000000081565b34801561053357600080fd5b50610204670de0b6b3a764000081565b34801561054f57600080fd5b5061027961055e36600461550c565b6129e6565b34801561056f57600080fd5b5060fd546102d49065ffffffffffff1681565b34801561058e57600080fd5b5061027961059d366004614ff1565b612b21565b3480156105ae57600080fd5b50609754610241906001600160a01b031681565b3480156105ce57600080fd5b50610134546102d490600160a01b900465ffffffffffff1681565b3480156105f557600080fd5b5061027961060436600461558a565b612c07565b6001600160a01b03811660009081526101386020526040812080546001600160c01b0319169055610639826135f7565b90506000816001600160a01b031663c872da3c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561067b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069f91906155a7565b90504261013760008360018111156106b9576106b96155c4565b60018111156106ca576106ca6155c4565b815260208101919091526040016000205465ffffffffffff16111561074357426101376000836001811115610701576107016155c4565b6001811115610712576107126155c4565b815260200190815260200160002060006101000a81548165ffffffffffff021916908365ffffffffffff1602179055505b6001600160a01b038216330361084f57306001600160a01b031663f4ae1474836001600160a01b031663c872da3c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c491906155a7565b6040518263ffffffff1660e01b81526004016107e091906155fc565b600060405180830381600087803b1580156107fa57600080fd5b505af192505050801561080b575060015b61084f573d808015610839576040519150601f19603f3d011682016040523d82523d6000602084013e61083e565b606091505b50805160000361084d57600080fd5b505b50919050565b61085d613949565b670de0b6b3a76400006001600160c01b03821611156108bb5760405162461bcd60e51b815260206004820152601560248201527434b73b30b634b2103130b1b5b4b733a13ab33332b960591b60448201526064015b60405180910390fd5b61013554604080516001600160c01b03928316815291831660208301527f4ec8ac3ba3ecc0b9d7690e98f4bf8f5c70b8f2a9b4326c757b44ba3d19c18796910160405180910390a161013580546001600160c01b0319166001600160c01b0392909216919091179055565b61092f81613a32565b6101386000826001600160a01b031663457100746040518163ffffffff1660e01b8152600401602060405180830381865afa158015610972573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610996919061560a565b6001600160a01b03168152602081019190915260400160002080546001600160c01b031916905550565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a085760405162461bcd60e51b81526004016108b290615627565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a51600080516020615eb8833981519152546001600160a01b031690565b6001600160a01b031614610a775760405162461bcd60e51b81526004016108b290615673565b610a8081613bc9565b60408051600080825260208201909252610a9c91839190613c18565b50565b610aa7613949565b6c01431e0fae6d7217caa00000006001600160c01b0382161115610b065760405162461bcd60e51b8152602060048201526016602482015275696e76616c6964206d696e5472616465566f6c756d6560501b60448201526064016108b2565b60fe54604080516001600160c01b03928316815291831660208301527f1dec1ae9fd64ef0d8a6b130d853a8ab21d337625027cc60c63028f3d383495dc910160405180910390a160fe80546001600160c01b0319166001600160c01b0392909216919091179055565b609760009054906101000a90046001600160a01b03166001600160a01b03166314f4ded26040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bbf57600080fd5b505af1158015610bd3573d6000803e3d6000fd5b50505050610bdf613d88565b60975460408051634bcebf4360e11b81529051610c53926001600160a01b03169163979d7e869160048083019260209291908290030181865afa158015610c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4e919061560a565b613e4c565b609760009054906101000a90046001600160a01b03166001600160a01b03166331cfec056040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ca357600080fd5b505af1158015610cb7573d6000803e3d6000fd5b50505050565b609760009054906101000a90046001600160a01b03166001600160a01b03166314f4ded26040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610d0d57600080fd5b505af1158015610d21573d6000803e3d6000fd5b50505050610d2d613d88565b610d69828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613f5d92505050565b610da85760405162461bcd60e51b815260206004820152601060248201526f6475706c696361746520746f6b656e7360801b60448201526064016108b2565b61012d60009054906101000a90046001600160a01b03166001600160a01b031663f8ac93e86040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610df957600080fd5b505af1158015610e0d573d6000803e3d6000fd5b505061012e54604051635523caaf60e11b8152306004820152600093506001600160a01b03909116915063aa47955e906024016040805180830381865afa158015610e5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8091906156bf565b60fd5490915065ffffffffffff1615610ec85760405162461bcd60e51b815260206004820152600a6024820152693a3930b2329037b832b760b11b60448201526064016108b2565b61012e60009054906101000a90046001600160a01b03166001600160a01b031663a094a0316040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f40919061570b565b610f7f5760405162461bcd60e51b815260206004820152601060248201526f6261736b6574206e6f7420726561647960801b60448201526064016108b2565b61013460149054906101000a900465ffffffffffff1661012e60009054906101000a90046001600160a01b03166001600160a01b031663b80777ea6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100d9190615726565b6110179190615759565b65ffffffffffff164210156110605760405162461bcd60e51b815260206004820152600f60248201526e1d1c98591a5b99c819195b185e5959608a1b60448201526064016108b2565b61013060009054906101000a90046001600160a01b03166001600160a01b0316637121c2736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d89190615777565b6001600160c01b031681600001516001600160c01b031610156111335760405162461bcd60e51b81526020600482015260136024820152721d5b99195c98dbdb1b185d195c985b1a5e9959606a1b60448201526064016108b2565b610131546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561117c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a09190615794565b1561129a5761013254610131546040516370a0823160e01b8152306004820152611230926001600160a01b039081169216906370a0823190602401602060405180830381865afa1580156111f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121c9190615794565b610131546001600160a01b03169190613fe9565b61013260009054906101000a90046001600160a01b03166001600160a01b031663296130866040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128157600080fd5b505af1158015611295573d6000803e3d6000fd5b505050505b610135546000906112d1906112c0906001600160c01b0316670de0b6b3a76400006157ad565b83516001600160c01b03169061404c565b905061013060009054906101000a90046001600160a01b03166001600160a01b0316637121c2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015611327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134b9190615777565b6001600160c01b0316816001600160c01b0316111561143f576101305460408051637121c27360e01b815290516001600160a01b039092169163aeb14bf6918391637121c273916004808201926020929091908290030181865afa1580156113b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113db9190615777565b6113e590846157cc565b6040516001600160e01b031960e084901b1681526001600160c01b039091166004820152602401600060405180830381600087803b15801561142657600080fd5b505af115801561143a573d6000803e3d6000fd5b505050505b610135546000906114ec90611465906001600160c01b0316670de0b6b3a76400006157ad565b61013060009054906101000a90046001600160a01b03166001600160a01b0316637121c2736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114dd9190615777565b6001600160c01b031690614061565b61012f546040805163601c51c760e11b8152815193945087936000936001600160a01b03169263c038a38e92600480820193918290030181865afa158015611538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155c91906157fe565b905060005b828110156118bc5761012d546000906001600160a01b031663cde2be8a8a8a8581811061159057611590615831565b90506020020160208101906115a59190614fbf565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156115e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160d919061560a565b61012e549091506000906116ca906001600160a01b031663a5a5828c8c8c8781811061163b5761163b615831565b90506020020160208101906116509190614fbf565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611694573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b89190615777565b6001600160c01b03881690600261406b565b604051632ac07b9560e11b81523060048201529091506000906001600160a01b03841690635580f72a90602401602060405180830381865afa158015611714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117389190615777565b90506001600160c01b0382811690821611156118b05760006117d7846001600160a01b0316633cb5d3796040518163ffffffff1660e01b8152600401602060405180830381865afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190615847565b6117c86001600160c01b038516866140a5565b6001600160c01b0316906140b1565b90506000866020015187600001516117ef919061586a565b6117fe9062ffffff168361589b565b9050806000036118125750505050506118b4565b602087015162ffffff161561187e5761013354602088015161187e916001600160a01b0316906118479062ffffff16846158af565b8f8f8a81811061185957611859615831565b905060200201602081019061186e9190614fbf565b6001600160a01b03169190613fe9565b865162ffffff16156118ad576101345487516118ad916001600160a01b0316906118479062ffffff16846158af565b50505b5050505b600101611561565b5050609754604080516331cfec0560e01b815290516001600160a01b0390921695506331cfec05945060048082019450600093509082900301818387803b15801561190657600080fd5b505af115801561191a573d6000803e3d6000fd5b505050505050565b61192a613949565b6301e1338065ffffffffffff8216111561197d5760405162461bcd60e51b8152602060048201526014602482015273696e76616c69642074726164696e6744656c617960601b60448201526064016108b2565b610134546040805165ffffffffffff600160a01b9093048316815291831660208301527f4af929ab8885bbdcb8b01903439a99e3fb33354657d151119f731b01db793bdb910160405180910390a1610134805465ffffffffffff909216600160a01b0265ffffffffffff60a01b19909216919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a3e5760405162461bcd60e51b81526004016108b290615627565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a87600080516020615eb8833981519152546001600160a01b031690565b6001600160a01b031614611aad5760405162461bcd60e51b81526004016108b290615673565b611ab682613bc9565b611ac282826001613c18565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b665760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016108b2565b50600080516020615eb883398151915290565b609760009054906101000a90046001600160a01b03166001600160a01b031663979d7e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf0919061560a565b61012d80546001600160a01b0319166001600160a01b0392831617905560975460408051632f2439b160e01b815290519190921691632f2439b19160048083019260209291908290030181865afa158015611c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c73919061560a565b61012e80546001600160a01b0319166001600160a01b03928316179055609754604080516317fc212560e31b81529051919092169163bfe109289160048083019260209291908290030181865afa158015611cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf6919061560a565b61012f80546001600160a01b0319166001600160a01b03928316179055609754604080516320632fb960e11b8152905191909216916340c65f729160048083019260209291908290030181865afa158015611d55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d79919061560a565b61013080546001600160a01b0319166001600160a01b039283161790556097546040805163c99dc3dd60e01b81529051919092169163c99dc3dd9160048083019260209291908290030181865afa158015611dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfc919061560a565b61013180546001600160a01b0319166001600160a01b0392831617905560975460408051634780a5e560e01b815290519190921691634780a5e59160048083019260209291908290030181865afa158015611e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7f919061560a565b61013280546001600160a01b0319166001600160a01b0392831617905560975460408051635313676360e01b81529051919092169163531367639160048083019260209291908290030181865afa158015611ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f02919061560a565b61013380546001600160a01b0319166001600160a01b03928316179055609754604080516320df862760e11b8152905191909216916341bf0c4e9160048083019260209291908290030181865afa158015611f61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f85919061560a565b61013480546001600160a01b0319166001600160a01b039283161790556097546040805163656e96e160e01b81529051919092169163656e96e19160048083019260209291908290030181865afa158015611fe4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612008919061560a565b61013680546001600160a01b0319166001600160a01b0392909216919091179055565b60408051610180810182526000610140820181815261016083018290528252602080830182905282840182905260608084018390526080840183905260a0840183905260c0840183905260e0840183905261010084018190526101208401819052845180860186528181529182015261012d548451635ab1bd5360e01b81529451939491936001600160a01b0390911692635ab1bd5392600480820193918290030181865afa1580156120e2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261210a919081019061595f565b83835261012e546001600160a01b03908116602085015261012d548116604085015261013254811660608501526101315481166080850152610130541660a084015260fe546001600160c01b0390811660c085015260fd54600160301b90041660e08401528051519091506001600160401b0381111561218c5761218c6150cb565b6040519080825280602002602001820160405280156121b5578160200160208202803683370190505b5061010083015260005b8151518110156122c45761012e54825180516001600160a01b039092169163d3252db59190849081106121f4576121f4615831565b60200260200101518460200151848151811061221257612212615831565b60200260200101516040518363ffffffff1660e01b815260040161224c9291906001600160a01b0392831681529116602082015260400190565b602060405180830381865afa158015612269573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228d9190615777565b83610100015182815181106122a4576122a4615831565b6001600160c01b03909216602092830291909101909101526001016121bf565b508051516001600160401b038111156122df576122df6150cb565b604051908082528060200260200182016040528015612308578160200160208202803683370190505b5061012083015260005b81515181101561253f5761013860008360000151838151811061233757612337615831565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160c01b03168260200151828151811061238957612389615831565b6020908102919091010151604051632ac07b9560e11b81523060048201526001600160a01b0390911690635580f72a90602401602060405180830381865afa1580156123d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123fd9190615777565b61240791906157ad565b836101200151828151811061241e5761241e615831565b6001600160c01b039092166020928302919091019091015261013154825180516001600160a01b03909216918390811061245a5761245a615831565b60200260200101516001600160a01b031603612537578160200151818151811061248657612486615831565b602090810291909101015161013254604051632ac07b9560e11b81526001600160a01b039182166004820152911690635580f72a90602401602060405180830381865afa1580156124db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ff9190615777565b836101200151828151811061251657612516615831565b6020026020010181815161252a91906157ad565b6001600160c01b03169052505b600101612312565b50915091565b609760009054906101000a90046001600160a01b03166001600160a01b031663054f7d9c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125bc919061570b565b156125f25760405162461bcd60e51b8152602060048201526006602482015265333937bd32b760d11b60448201526064016108b2565b609760009054906101000a90046001600160a01b03166001600160a01b03166314f4ded26040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561264257600080fd5b505af1158015612656573d6000803e3d6000fd5b505061012d5460405163c3c5a54760e01b81526001600160a01b038581166004830152909116925063c3c5a5479150602401602060405180830381865afa1580156126a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c9919061570b565b61270a5760405162461bcd60e51b8152602060048201526012602482015271195c98cc8c081d5b9c9959da5cdd195c995960721b60448201526064016108b2565b61013054612726906001600160a01b03838116911660006140bf565b61013054612743906001600160a01b0383811691166000196140bf565b609760009054906101000a90046001600160a01b03166001600160a01b03166331cfec056040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561279357600080fd5b505af11580156127a7573d6000803e3d6000fd5b5050505050565b604080516000815260208101909152606090826001600160401b038111156127d8576127d86150cb565b60405190808252806020026020018201604052801561280b57816020015b60608152602001906001900390816127f65790505b50915060005b8381101561288d576128683086868481811061282f5761282f615831565b90506020028101906128419190615a6e565b8560405160200161285493929190615ab4565b6040516020818303038152906040526141d4565b83828151811061287a5761287a615831565b6020908102919091010152600101612811565b50505b92915050565b609760009054906101000a90046001600160a01b03166001600160a01b03166314f4ded26040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156128e657600080fd5b505af11580156128fa573d6000803e3d6000fd5b50505050612906613d88565b60975460408051634bcebf4360e11b81529051612743926001600160a01b03169163979d7e869160048083019260209291908290030181865afa158015612951573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612975919061560a565b6040516366f15f4560e11b81526001600160a01b038481166004830152919091169063cde2be8a90602401602060405180830381865afa1580156129bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e1919061560a565b6141f9565b600054610100900460ff1615808015612a065750600054600160ff909116105b80612a205750303b158015612a20575060005460ff166001145b612a835760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b2565b6000805460ff191660011790558015612aa6576000805461ff0019166101001790555b612aaf8661425f565b612aba8684846142fd565b612ac2611b79565b612acb85611922565b612ad484610855565b801561191a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b612b29613949565b670de0b6b3a76400006001600160c01b0382161115612b8a5760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964206d61785472616465536c697070616765000000000000000060448201526064016108b2565b60fd54604080516001600160c01b03600160301b9093048316815291831660208301527f58d1f6b92b372d2913abb309ec9503acc2a53ed508ec34f478d7aeab07760f99910160405180910390a160fd80546001600160c01b03909216600160301b026601000000000000600160f01b0319909216919091179055565b609760009054906101000a90046001600160a01b03166001600160a01b03166314f4ded26040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612c5757600080fd5b505af1158015612c6b573d6000803e3d6000fd5b50505050612c77613d88565b61012d60009054906101000a90046001600160a01b03166001600160a01b031663f8ac93e86040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612cc857600080fd5b505af1158015612cdc573d6000803e3d6000fd5b50505050306001600160a01b0316612cf13390565b6001600160a01b03161480612d455750426101376000836001811115612d1957612d196155c4565b6001811115612d2a57612d2a6155c4565b815260208101919091526040016000205465ffffffffffff16105b612d875760405162461bcd60e51b8152602060048201526013602482015272616c726561647920726562616c616e63696e6760681b60448201526064016108b2565b60fd5465ffffffffffff1615612dcc5760405162461bcd60e51b815260206004820152600a6024820152693a3930b2329037b832b760b11b60448201526064016108b2565b61012e60009054906101000a90046001600160a01b03166001600160a01b031663a094a0316040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e44919061570b565b612e835760405162461bcd60e51b815260206004820152601060248201526f6261736b6574206e6f7420726561647960801b60448201526064016108b2565b61013460149054906101000a900465ffffffffffff1661012e60009054906101000a90046001600160a01b03166001600160a01b031663b80777ea6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612eed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f119190615726565b612f1b9190615759565b65ffffffffffff16421015612f645760405162461bcd60e51b815260206004820152600f60248201526e1d1c98591a5b99c819195b185e5959608a1b60448201526064016108b2565b61012e54604051635523caaf60e11b81523060048201526000916001600160a01b03169063aa47955e906024016040805180830381865afa158015612fad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fd191906156bf565b905061013060009054906101000a90046001600160a01b03166001600160a01b0316637121c2736040518163ffffffff1660e01b8152600401602060405180830381865afa158015613027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304b9190615777565b6001600160c01b031681600001516001600160c01b0316106130a85760405162461bcd60e51b8152602060048201526016602482015275185b1c9958591e4818dbdb1b185d195c985b1a5e995960521b60448201526064016108b2565b610130546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156130f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131169190615794565b905061312560646127106158af565b811061318b5761013054604051637c8595ff60e11b8152600481018390526001600160a01b039091169063f90b2bfe90602401600060405180830381600087803b15801561317257600080fd5b505af1158015613186573d6000803e3d6000fd5b505050505b61013060009054906101000a90046001600160a01b03166001600160a01b0316637121c2736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132039190615777565b6001600160c01b031682600001516001600160c01b031610613226575050612743565b6000806132328461202b565b915091506000806000730e6d6cbda4629fb2d82b4b4af0d5c887f21f3bc763ba00555a86866040518363ffffffff1660e01b8152600401613274929190615392565b61012060405180830381865af4158015613292573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b69190615adb565b92509250925082156135a057600082600001516001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015613306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061332a919061560a565b610131549091506001600160a01b0390811690821603613436576040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561338b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133af9190615794565b90508084604001511115613434576101325460408501516001600160a01b039091169063a439622f906133e3908490615a5b565b6040518263ffffffff1660e01b815260040161340191815260200190565b600060405180830381600087803b15801561341b57600080fd5b505af115801561342f573d6000803e3d6000fd5b505050505b505b60006134438a85856143b8565b9050806001600160a01b0316633197cbb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015613483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134a79190615726565b61013760008c60018111156134be576134be6155c4565b60018111156134cf576134cf6155c4565b815260200190815260200160002060006101000a81548165ffffffffffff021916908365ffffffffffff160217905550806001600160a01b0316633f407b846040518163ffffffff1660e01b8152600401602060405180830381865afa15801561353d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135619190615777565b6001600160a01b039290921660009081526101386020526040902080546001600160c01b0319166001600160c01b0390931692909217909155506135ab565b86516135ab90614637565b5050609754604080516331cfec0560e01b815290516001600160a01b0390921696506331cfec059550600480820195506000945091925082900301818387803b15801561279357600080fd5b60975460408051630a7a6f6960e11b815290516000926001600160a01b0316916314f4ded2916004808301928692919082900301818387803b15801561363c57600080fd5b505af1158015613650573d6000803e3d6000fd5b505050506001600160a01b03828116600090815260fc6020526040902054169050806136ae5760405162461bcd60e51b815260206004820152600d60248201526c3737903a3930b2329037b832b760991b60448201526064016108b2565b806001600160a01b031663faf7ba6a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613710919061570b565b6137505760405162461bcd60e51b815260206004820152601160248201527018d85b9b9bdd081cd95d1d1b19481e595d607a1b60448201526064016108b2565b6001600160a01b038216600090815260fc6020526040812080546001600160a01b031916905560fd805465ffffffffffff169161378c83615bc4565b91906101000a81548165ffffffffffff021916908365ffffffffffff16021790555050600080826001600160a01b03166311da60b46040518163ffffffff1660e01b815260040160408051808303816000875af11580156137f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138159190615be6565b91509150826001600160a01b031663a6f2ae3a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061387b919061560a565b6001600160a01b0316846001600160a01b0316846001600160a01b03167f058fb1fa484531f400806f666315faf1a45941db93ba069405882b78ba40dc8785856040516138d2929190918252602082015260400190565b60405180910390a45050609760009054906101000a90046001600160a01b03166001600160a01b03166331cfec056040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561392c57600080fd5b505af1158015613940573d6000803e3d6000fd5b50505050919050565b60975460408051808201909152600581526427aba722a960d91b60208201526001600160a01b03909116906391d148549061398390615c0a565b336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa1580156139ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f2919061570b565b613a305760405162461bcd60e51b815260206004820152600f60248201526e676f7665726e616e6365206f6e6c7960881b60448201526064016108b2565b565b613a3a613949565b6000816001600160a01b031663457100746040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a9e919061560a565b6001600160a01b038116600090815260fc6020526040812080546001600160a01b031916905560fd805492935065ffffffffffff9092169190613ae083615bc4565b91906101000a81548165ffffffffffff021916908365ffffffffffff16021790555050816001600160a01b031663a6f2ae3a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b65919061560a565b6001600160a01b0316816001600160a01b0316836001600160a01b03167f058fb1fa484531f400806f666315faf1a45941db93ba069405882b78ba40dc87600080604051613bbd929190918252602082015260400190565b60405180910390a45050565b6097546001600160a01b0316336001600160a01b031614610a9c5760405162461bcd60e51b81526020600482015260096024820152686d61696e206f6e6c7960b81b60448201526064016108b2565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613c5057613c4b8361469e565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613caa575060408051601f3d908101601f19168201909252613ca791810190615794565b60015b613d0d5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016108b2565b600080516020615eb88339815191528114613d7c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016108b2565b50613c4b83838361473a565b609760009054906101000a90046001600160a01b03166001600160a01b03166398f73e526040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dff919061570b565b15613a305760405162461bcd60e51b815260206004820152601860248201527f66726f7a656e206f722074726164696e6720706175736564000000000000000060448201526064016108b2565b6000816001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401600060405180830381865afa158015613e8c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613eb4919081019061595f565b60208101515190915060005b81811015610cb7576040805160048152602481018252602080820180516001600160e01b031663372500ab60e01b179052825180840190935260148352731c995dd85c991cc818db185a5b4819985a5b195960621b838201528501518051613f5493919085908110613f3457613f34615831565b60200260200101516001600160a01b031661475f9092919063ffffffff16565b50600101613ec0565b805160009060015b81811015613fdf5760005b81811015613fd657848181518110613f8a57613f8a615831565b60200260200101516001600160a01b0316858381518110613fad57613fad615831565b60200260200101516001600160a01b031603613fce57506000949350505050565b600101613f70565b50600101613f65565b5060019392505050565b6040516001600160a01b038316602482015260448101829052613c4b90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526147d7565b600061405a838360006148ac565b9392505050565b600061405a838360015b600061409d6140986140896001600160c01b038087169088166158af565b670de0b6b3a7640000856148db565b614976565b949350505050565b600061405a82846157cc565b600061405a838360006149a4565b8015806141395750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614113573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141379190615794565b155b6141a45760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084016108b2565b6040516001600160a01b038316602482015260448101829052613c4b90849063095ea7b360e01b90606401614015565b606061405a8383604051806060016040528060278152602001615ed86027913961475f565b6040805160048152602481018252602080820180516001600160e01b031663372500ab60e01b179052825180840190935260148352731c995dd85c991cc818db185a5b4819985a5b195960621b90830152611ac2916001600160a01b038416919061475f565b600054610100900460ff166142865760405162461bcd60e51b81526004016108b290615c2e565b6001600160a01b0381166142d35760405162461bcd60e51b81526020600482015260146024820152736d61696e206973207a65726f206164647265737360601b60448201526064016108b2565b6142db614a85565b609780546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff166143245760405162461bcd60e51b81526004016108b290615c2e565b826001600160a01b031663abff01106040518163ffffffff1660e01b8152600401602060405180830381865afa158015614362573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614386919061560a565b60fb80546001600160a01b0319166001600160a01b03929092169190911790556143af82612b21565b613c4b81610a9f565b60008083600001516001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156143fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614421919061560a565b6001600160a01b03808216600090815260fc6020526040902054919250161561444c5761444c615c79565b60fb54604085015161446b9183916001600160a01b0390911690614aac565b60fb546040516314bf206560e21b81526001600160a01b03909116906352fc81949061449f90889088908890600401615c8f565b6020604051808303816000875af11580156144be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144e2919061560a565b6001600160a01b03828116600090815260fc6020526040812080546001600160a01b0319169284169290921790915560fd80549294509161452a9065ffffffffffff16615d15565b91906101000a81548165ffffffffffff021916908365ffffffffffff16021790555060ff6000815461455b90615d3e565b9190508190555083602001516001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa1580156145a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145c8919061560a565b6001600160a01b0316816001600160a01b0316836001600160a01b03167ff18b757d93c36d059284838a0328b06d8eb30d7214ffadde3266465a0006f6b387604001518860600151604051614627929190918252602082015260400190565b60405180910390a4509392505050565b60fd5465ffffffffffff161561464f5761464f615c79565b61013054604051636396544960e01b81526001600160c01b03831660048201526001600160a01b0390911690636396544990602401600060405180830381600087803b15801561279357600080fd5b6001600160a01b0381163b61470b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108b2565b600080516020615eb883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61474383614dc5565b6000825111806147505750805b15613c4b57610cb783836141d4565b6060600080856001600160a01b03168560405161477c9190615d57565b600060405180830381855af49150503d80600081146147b7576040519150601f19603f3d011682016040523d82523d6000602084013e6147bc565b606091505b50915091506147cd86838387614e05565b9695505050505050565b600061482c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614e7e9092919063ffffffff16565b905080516000148061484d57508080602001905181019061484d919061570b565b613c4b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016108b2565b600061409d6140986148cf670de0b6b3a76400006001600160c01b0388166158af565b856001600160c01b0316855b6000806148e8848661589b565b905060008360028111156148fe576148fe6155c4565b0361490a57905061405a565b600183600281111561491e5761491e6155c4565b0361495d576002614930600186615a5b565b61493a919061589b565b6149448587615d73565b1115614958578061495481615d3e565b9150505b61409d565b6149678486615d73565b1561409d57806147cd81615d3e565b60006001600160c01b038211156149a05760405163f44398f560e01b815260040160405180910390fd5b5090565b6000836001600160c01b03166000036149bf5750600061405a565b6029198360000b136149f85760028260028111156149df576149df6155c4565b146149eb5760006149ee565b60015b60ff16905061405a565b8260000b606013614a1c5760405163f44398f560e01b815260040160405180910390fd5b614a27601284615d87565b92506000614a378460000b614e8d565b614a4290600a615e8f565b905060008460000b1215614a6957614a64856001600160c01b031682856148db565b614a7c565b614a7c816001600160c01b0387166158af565b95945050505050565b600054610100900460ff16613a305760405162461bcd60e51b81526004016108b290615c2e565b60405163095ea7b360e01b81526001600160a01b0383811660048301526000602483015284919082169063095ea7b390604401600060405180830381600087803b158015614af957600080fd5b505af1158015614b0d573d6000803e3d6000fd5b5050604051636eb1769f60e11b81523060048201526001600160a01b0386811660248301528416925063dd62ed3e9150604401602060405180830381865afa158015614b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b819190615794565b15614bc05760405162461bcd60e51b815260206004820152600f60248201526e0616c6c6f77616e6365206e6f74203608c1b60448201526064016108b2565b81600003614bce5750505050565b60405163095ea7b360e01b81526001600160a01b038481166004830152602482018490526000919083169063095ea7b390604401600060405180830381600087803b158015614c1c57600080fd5b505af1925050508015614c2d575060015b15614ca957604051636eb1769f60e11b81523060048201526001600160a01b03858116602483015284919084169063dd62ed3e90604401602060405180830381865afa158015614c81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614ca59190615794565b1490505b806127a75760405163095ea7b360e01b81526001600160a01b038581166004830152600019602483015283169063095ea7b390604401600060405180830381600087803b158015614cf957600080fd5b505af1158015614d0d573d6000803e3d6000fd5b5050604051636eb1769f60e11b81523060048201526001600160a01b0387811660248301528693508516915063dd62ed3e90604401602060405180830381865afa158015614d5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d839190615794565b10156127a75760405162461bcd60e51b8152602060048201526011602482015270616c6c6f77616e6365206d697373696e6760781b60448201526064016108b2565b614dce8161469e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60608315614e74578251600003614e6d576001600160a01b0385163b614e6d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108b2565b508161409d565b61409d8383614ea5565b606061409d8484600085614ecf565b6000808212614e9c5781612890565b61289082615e9b565b815115614eb55781518083602001fd5b8060405162461bcd60e51b81526004016108b29190615256565b606082471015614f305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016108b2565b600080866001600160a01b03168587604051614f4c9190615d57565b60006040518083038185875af1925050503d8060008114614f89576040519150601f19603f3d011682016040523d82523d6000602084013e614f8e565b606091505b5091509150614f9f87838387614e05565b979650505050505050565b6001600160a01b0381168114610a9c57600080fd5b600060208284031215614fd157600080fd5b813561405a81614faa565b6001600160c01b0381168114610a9c57600080fd5b60006020828403121561500357600080fd5b813561405a81614fdc565b60008083601f84011261502057600080fd5b5081356001600160401b0381111561503757600080fd5b6020830191508360208260051b850101111561505257600080fd5b9250929050565b6000806020838503121561506c57600080fd5b82356001600160401b0381111561508257600080fd5b61508e8582860161500e565b90969095509350505050565b65ffffffffffff81168114610a9c57600080fd5b6000602082840312156150c057600080fd5b813561405a8161509a565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715615103576151036150cb565b60405290565b604051608081016001600160401b0381118282101715615103576151036150cb565b604051601f8201601f191681016001600160401b0381118282101715615153576151536150cb565b604052919050565b6000806040838503121561516e57600080fd5b823561517981614faa565b915060208301356001600160401b0381111561519457600080fd5b8301601f810185136151a557600080fd5b80356001600160401b038111156151be576151be6150cb565b6151d1601f8201601f191660200161512b565b8181528660208385010111156151e657600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b83811015615221578181015183820152602001615209565b50506000910152565b60008151808452615242816020860160208601615206565b601f01601f19169290920160200192915050565b60208152600061405a602083018461522a565b6000604082840312801561527c57600080fd5b506152856150e1565b823561529081614fdc565b815260208301356152a081614fdc565b60208201529392505050565b600081518084526020840193506020830160005b828110156152e75781516001600160c01b03168652602095860195909101906001016152c0565b5093949350505050565b80516040808452815190840181905260009160200190829060608601905b8083101561533b5783516001600160a01b0316825260208201915060208401935060018301925061530f565b506020858101518783038883015280518084529082019450910191506000905b808210156153875783516001600160a01b0316835260208301925060208401935060018201915061535b565b509095945050505050565b604081526153ba60408201845180516001600160c01b03908116835260209182015116910152565b600060208401516153d660808401826001600160a01b03169052565b5060408401516001600160a01b03811660a08401525060608401516001600160a01b03811660c08401525060808401516001600160a01b03811660e08401525060a08401516001600160a01b0381166101008401525060c08401516001600160c01b0381166101208401525060e08401516001600160c01b03811661014084015250610100840151610160808401526154736101a08401826152ac565b9050610120850151603f198483030161018085015261549282826152ac565b9150508281036020840152614a7c81856152f1565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561550057603f198786030184526154eb85835161522a565b945060209384019391909101906001016154cf565b50929695505050505050565b600080600080600060a0868803121561552457600080fd5b853561552f81614faa565b9450602086013561553f8161509a565b9350604086013561554f81614fdc565b9250606086013561555f81614fdc565b9150608086013561556f81614fdc565b809150509295509295909350565b60028110610a9c57600080fd5b60006020828403121561559c57600080fd5b813561405a8161557d565b6000602082840312156155b957600080fd5b815161405a8161557d565b634e487b7160e01b600052602160045260246000fd5b600281106155f857634e487b7160e01b600052602160045260246000fd5b9052565b6020810161289082846155da565b60006020828403121561561c57600080fd5b815161405a81614faa565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060408284031280156156d257600080fd5b506156db6150e1565b82516156e681614fdc565b815260208301516152a081614fdc565b8051801515811461570657600080fd5b919050565b60006020828403121561571d57600080fd5b61405a826156f6565b60006020828403121561573857600080fd5b815161405a8161509a565b634e487b7160e01b600052601160045260246000fd5b65ffffffffffff818116838216019081111561289057612890615743565b60006020828403121561578957600080fd5b815161405a81614fdc565b6000602082840312156157a657600080fd5b5051919050565b6001600160c01b03818116838216019081111561289057612890615743565b6001600160c01b03828116828216039081111561289057612890615743565b805162ffffff8116811461570657600080fd5b6000604082840312801561581157600080fd5b5061581a6150e1565b615823836157eb565b81526152a0602084016157eb565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561585957600080fd5b815160ff8116811461405a57600080fd5b62ffffff818116838216019081111561289057612890615743565b634e487b7160e01b600052601260045260246000fd5b6000826158aa576158aa615885565b500490565b808202811582820484141761289057612890615743565b60006001600160401b038211156158df576158df6150cb565b5060051b60200190565b600082601f8301126158fa57600080fd5b815161590d615908826158c6565b61512b565b8082825260208201915060208360051b86010192508583111561592f57600080fd5b602085015b8381101561595557805161594781614faa565b835260209283019201615934565b5095945050505050565b60006020828403121561597157600080fd5b81516001600160401b0381111561598757600080fd5b82016040818503121561599957600080fd5b6159a16150e1565b81516001600160401b038111156159b757600080fd5b8201601f810186136159c857600080fd5b80516159d6615908826158c6565b8082825260208201915060208360051b8501019250888311156159f857600080fd5b6020840193505b82841015615a23578351615a1281614faa565b8252602093840193909101906159ff565b845250505060208201516001600160401b03811115615a4157600080fd5b615a4d868285016158e9565b602083015250949350505050565b8181038181111561289057612890615743565b6000808335601e19843603018112615a8557600080fd5b8301803591506001600160401b03821115615a9f57600080fd5b60200191503681900382131561505257600080fd5b828482376000838201600081528351615ad1818360208801615206565b0195945050505050565b6000806000838503610120811215615af257600080fd5b615afb856156f6565b93506080601f1982011215615b0f57600080fd5b615b17615109565b6020860151615b2581614faa565b81526040860151615b3581614faa565b6020820152606086810151604083015260808088015191830191909152909350609f1982011215615b6557600080fd5b50615b6e615109565b60a0850151615b7c81614fdc565b815260c0850151615b8c81614fdc565b602082015260e0850151615b9f81614fdc565b6040820152610100850151615bb381614fdc565b606082015292959194509192509050565b600065ffffffffffff821680615bdc57615bdc615743565b6000190192915050565b60008060408385031215615bf957600080fd5b505080516020909101519092909150565b8051602080830151919081101561084f5760001960209190910360031b1b16919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b6101208101615c9e82866155da565b83516001600160a01b03908116602084810191909152808601519091166040808501919091528086015160608086019190915295860151608085015284516001600160c01b0390811660a086015291850151821660c0850152840151811660e0840152929093015190911661010090910152919050565b600065ffffffffffff821665ffffffffffff8103615d3557615d35615743565b60010192915050565b600060018201615d5057615d50615743565b5060010190565b60008251615d69818460208701615206565b9190910192915050565b600082615d8257615d82615885565b500690565b600082810b9082900b03607f198112607f8213171561289057612890615743565b6001815b6001841115615de357808504811115615dc757615dc7615743565b6001841615615dd557908102905b60019390931c928002615dac565b935093915050565b600082615dfa57506001612890565b81615e0757506000612890565b8160018114615e1d5760028114615e2757615e43565b6001915050612890565b60ff841115615e3857615e38615743565b50506001821b612890565b5060208310610133831016604e8410600b8410161715615e66575081810a612890565b615e736000198484615da8565b8060001904821115615e8757615e87615743565b029392505050565b600061405a8383615deb565b6000600160ff1b8201615eb057615eb0615743565b506000039056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c05d43fa75ffc737f582d8a8dd78372b515cb6c3ca2b61ca54f8eb323a7fbac064736f6c634300081c0033