WETH Gateway
If you need to use native ETH (MATIC / AVAX in case of side chain market) in the protocol, it must first be wrapped into WETH (or WMATIC / WAVAX). The WETH Gateway contract is a helper contract to easily wrap and unwrap ETH (or MATIC / AVAX) as necessary when interacting with the protocol, since only ERC20 is used within protocol interactions.
Methods
depositETH()
function depositETH(uint256 reserveId, address onBehalfOf, uint16 referralCode)
Deposits the msg.value
amount of ETH into the protocol, minting the same amount of corresponding fWETH, and transferring them to the onBehalfOf
address.
Ensure that the depositETH()
transaction also includes the amount of ETH you are depositing in the msg.value
.
reserveId
uint256
id of the targeted lending pool reserve
onBehalfOf
address
address whom will receive the fWETH.
Use msg.sender
when the fTokens should be sent to the caller.
referralCode
uint16
referral code for our referral program. Use 0 for no referral.
batchDepositETH()
function batchDepositETH(uint256[] calldata reserveIds, address[] calldata onBehalfOfs, uint16[] calldata referralCodes)
Deposits the msg.value
amount of ETH into the protocol, minting the same amount of corresponding fWETH, and transferring them to the onBehalfOfs
addresses.
Ensure that the batchDepositETH()
transaction also includes the total amount of ETH you are depositing in the msg.value
.
reserveIds
uint256[] calldata
ids of the targeted lending pool reserves
onBehalfOfs
address[] calldata
addresses whom will receive the fWETH.
Use msg.sender
when the fTokens should be sent to the caller.
referralCodes
uint16[] calldata
referral codes for our referral program. Use 0 for no referral.
withdrawETH()
function withdrawETH(uint256 amount, uint256 reserveId, address to)
Withdraws amount
of the WETH, unwraps it to ETH, and transfers the ETH to the to
address.
Ensure you set the relevant ERC20 allowance of fWETH, before calling this function, so the WETHGateway
contract can burn the associated fWETH.
amount
uint256
amount withdrawn, expressed in wei units.
Use type(uint).max
to withdraw the entire balance.
reserveId
uint256
id of the targeted lending pool reserve
to
address
address that will receive the unwrapped ETH
batchWithdrawETH()
function batchWithdrawETH(uint256[] calldata amounts, uint256[] calldata reserveIds, address[] calldata tos)
Batch withdraws amounts
of the WETH, unwraps it to ETH, and transfers the ETH to the tos
addresses.
Ensure you set the relevant ERC20 allowances of fWETH, before calling this function, so the WETHGateway
contract can burn the associated fWETHs.
amounts
uint256[] calldata
amounts withdrawn, expressed in wei units.
Use type(uint).max
to withdraw the entire balance.
reserveIds
uint256[] calldata
ids of the targeted lending pool reserves
tos
address[] calldata
addresses that will receive the unwrapped ETH
borrowETH()
function borrowETH(uint256 amount, uint256 tokenId, uint256 tokenValue, uint256 reserveId, uint256 duration, address onBehalfOf, uint16 referralCode)
Borrows amount
of ETH, sending the amount
of ETH to msg.sender
.
amount
uint256
amount to be borrowed, expressed in wei units
tokenId
uint256
tokenId of the NFT used as collateral
tokenValue
uint256
value of ERC1155 tokens collateralised, 0 if ERC721
reserveId
uint256
the id of the targeted reserve
duration
uint256
the duration of the loan, 0 if open-ended
onBehalfOf
address
addresses whom will receive the loan
batchBorrowETH()
function batchBorrowETH(uint256[] calldata amounts, uint256[] calldata tokenIds, uint256[] calldata tokenValues, uint256[] calldata reserveIds, uint256 duration, address onBehalfOf, uint16 referralCode)
Batch borrows amounts
of ETH, sending the amounts
of ETH to msg.sender
. Note: distinct durations are unsupported.
amounts
uint256[] calldata
amounts to be borrowed, expressed in wei units
tokenIds
uint256[] calldata
tokenIds of the NFT(s) used as collateral
tokenValues
uint256[] calldata
values of ERC1155 tokens collateralised, 0 if ERC721
reserveIds
uint256[] calldata
the ids of the targeted reserves
duration
uint256
the duration of the loan, 0 if open-ended
onBehalfOf
address
addresses whom will receive the loan
repayETH()
function repayETH(uint256 borrowId, uint256 amount)
Repays debt of a targeted borrowId
an amount
of ETH.
Ensure that the repayETH()
transaction also includes the amount of ETH you are repaying in the msg.value
.
borrowId
uint256
id of the targeted borrow
amount
uint256
amount to be repaid, expressed in wei units.
Use type(uint256).max
to repay the entire debt, ONLY when the repayment is not executed on behalf of a 3rd party.
In case of repayments on behalf of another user, it's recommended to send an amount
slightly higher than the current borrowed amount.
batchRepayETH()
function batchRepayETH(uint256[] calldata borrowIds, uint256[] calldata amounts)
Batch repays debts of targeted borrowIds
amounts
of ETH.
Ensure that the batchRepayETH()
transaction also includes the amount of ETH you are repaying in the msg.value
.
borrowIds
uint256[] calldata
ids of the targeted borrows
amounts
uint256[] calldata
amounts to be repaid, expressed in wei units.
Use type(uint256).max
to repay the entire debt, ONLY when the repayment is not executed on behalf of a 3rd party.
In case of repayments on behalf of another user, it's recommended to send an amount
slightly higher than the current borrowed amount.
refinanceETH()
function refinanceETH(uint256 borrowId, uint256 amount, uint256 duration)
Refinances a targeted borrowId
with more or less amount
of ETH, and an updated duration.
Ensure that the refinanceETH()
transaction also includes the amount of ETH if you are refinancing at a lower debt level. The value sent should be the difference.
borrowId
uint256
id of the targeted borrow
amount
uint256
new loan amount, expressed in wei units.
duration
uint256
new loan duration, from time of refinancing
batchRefinanceETH()
function batchRefinanceETH(uint256[] calldata borrowIds, uint256[] calldata amounts, uint256[] calldata durations)
Batch refinances targeted borrowIds
with more or less amounts
of ETH, and updated durations.
Ensure that the batchRefinanceETH()
transaction also includes the amount of ETH if you are refinancing at a lower debt level(s). The value sent should be the difference.
borrowIds
uint256[] calldata
ids of the targeted borrows
amounts
uint256[] calldata
new loan amounts, expressed in wei units.
durations
uint256[] calldata
new loan durations, from time of refinancing
bidETH()
function bidETH(address asset, uint256 amount, uint256 borrowId, address onBehalfOf)
Purchases the underlying collateral of a defaulted loan in auction.
Ensure that the loan is in default and the liquidity auction is active else this call will fail
asset
address
address of the payment currency
amount
uint256
bid / purchase amount
borrowId
uint256
id of the targeted borrow
onBehalfOf
address
address to receive the underlying collateral
batchBidETH()
function batchBidETH(address[] calldata assets, uint256[] calldata amounts, uint256[] calldata borrowIds, address[] calldata onBehalfOfs)
Batch purchases the underlying collaterals of a defaulted loans in auction.
Ensure that the loans are in default and liquidity auctions are active else this call will fail
assets
address[] calldata
addresses of the payment currencies
amounts
uint256[] calldata
bid / purchase amounts
borrowIds
uint256[] calldata
ids of the targeted borrows
onBehalfOfs
address[] calldata
addresses to receive the underlying collateral
View Methods
getWETHAddress()
function getWETHAddress()
Returns the WETH address used by the WETHGateway.
ABI
WETH Gateway ABI
{
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "authorizeExecutionDelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "assets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "onBehalfOfs",
"type": "address[]"
}
],
"name": "batchBidETH",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "tokenIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "tokenValues",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "reserveIds",
"type": "uint256[]"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"internalType": "uint16",
"name": "referralCode",
"type": "uint16"
}
],
"name": "batchBorrowETH",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "reserveIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "onBehalfOfs",
"type": "address[]"
},
{
"internalType": "uint16[]",
"name": "referralCodes",
"type": "uint16[]"
}
],
"name": "batchDepositETH",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "durations",
"type": "uint256[]"
}
],
"name": "batchRefinanceETH",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"name": "batchRepayETH",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "reserveIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "tos",
"type": "address[]"
}
],
"name": "batchWithdrawETH",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
}
],
"name": "bidETH",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenValue",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"internalType": "uint16",
"name": "referralCode",
"type": "uint16"
}
],
"name": "borrowETH",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"internalType": "uint16",
"name": "referralCode",
"type": "uint16"
}
],
"name": "depositETH",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "emergencyEtherTransfer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "emergencyTokenTransfer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getWETHAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "weth",
"type": "address"
},
{
"internalType": "address",
"name": "addressProvider",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "refinanceETH",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "repayETH",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "withdrawETH",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": {
"object": "0x608060405234801561001057600080fd5b50612be7806100206000396000f3fe6080604052600436106101025760003560e01c806376e13af111610095578063bba6bc6d11610064578063bba6bc6d146102ba578063caaabc60146102cd578063ced46f82146102e2578063d0fee56814610302578063eed88b8d1461032257610158565b806376e13af1146102485780637f185c1e1461025b578063a3d5b2551461026e578063affa88171461028e57610158565b8063485cc955116100d1578063485cc955146101e25780635a95399914610202578063664054ce146102155780636a41a61b1461022857610158565b80630572c30f146101895780631976c7ba1461019c57806331a9b157146101af57806335f9a701146101c257610158565b366101585760335460408051808201909152600381526238353360e81b6020820152906001600160a01b031633146101565760405162461bcd60e51b815260040161014d9190611efd565b60405180910390fd5b005b60408051808201825260038152620e0d4d60ea1b6020820152905162461bcd60e51b815261014d9190600401611efd565b610156610197366004611f30565b610342565b6101566101aa366004611fa8565b610511565b6101566101bd366004611fa8565b6106ef565b3480156101ce57600080fd5b506101566101dd3660046120a3565b610851565b3480156101ee57600080fd5b506101566101fd366004612108565b610954565b610156610210366004612141565b610a8f565b6101566102233660046121ad565b610c12565b34801561023457600080fd5b506101566102433660046121f7565b610d51565b610156610256366004612230565b610f95565b61015661026936600461226e565b611076565b34801561027a57600080fd5b50610156610289366004612290565b6111a3565b34801561029a57600080fd5b50603354604080516001600160a01b039092168252519081900360200190f35b6101566102c83660046122d1565b6112c8565b3480156102d957600080fd5b50610156611545565b3480156102ee57600080fd5b506101566102fd3660046122d1565b6116e4565b34801561030e57600080fd5b5061015661031d36600461236b565b611b81565b34801561032e57600080fd5b5061015661033d36600461245b565b611cb5565b60008061034d611d71565b6001600160a01b03166301667623866040518263ffffffff1660e01b815260040161037a91815260200190565b608060405180830381865afa158015610397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103bb9190612492565b935050505080841115610414576103d281856124f1565b9150813410156040518060400160405280600381526020016238353160e81b815250906104125760405162461bcd60e51b815260040161014d9190611efd565b505b603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561046457600080fd5b505af1158015610478573d6000803e3d6000fd5b5050505050610485611de4565b604051630226f8f960e11b81526004810187905260248101869052604481018590526001600160a01b03919091169063044df1f290606401600060405180830381600087803b1580156104d757600080fd5b505af11580156104eb573d6000803e3d6000fd5b505050508134111561050a5761050a3361050584346124f1565b611e2e565b5050505050565b8685146105305760405162461bcd60e51b815260040161014d9061250a565b86831461054f5760405162461bcd60e51b815260040161014d9061250a565b86811461056e5760405162461bcd60e51b815260040161014d9061250a565b6000805b888110156105b25789898281811061058c5761058c612525565b905060200201358261059e919061253b565b9150806105aa8161254e565b915050610572565b50803410156040518060400160405280600381526020016203835360ec1b815250906105f15760405162461bcd60e51b815260040161014d9190611efd565b50603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561064257600080fd5b505af1158015610656573d6000803e3d6000fd5b5050505050610663611de4565b6001600160a01b0316634b33a9678a8a8a8a8a8a8a8a6040518963ffffffff1660e01b815260040161069c9897969594939291906125e2565b600060405180830381600087803b1580156106b657600080fd5b505af11580156106ca573d6000803e3d6000fd5b50505050803411156106e4576106e43361050583346124f1565b505050505050505050565b86851461070e5760405162461bcd60e51b815260040161014d9061250a565b86831461072d5760405162461bcd60e51b815260040161014d9061250a565b6000805b868110156107675787878281811061074b5761074b612525565b905060200201359150808061075f9061254e565b915050610731565b50803410156040518060400160405280600381526020016203835360ec1b815250906107a65760405162461bcd60e51b815260040161014d9190611efd565b50603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156107f757600080fd5b505af115801561080b573d6000803e3d6000fd5b5050505050610818611de4565b6001600160a01b0316632684dd098a8a8a8a8a8a8a8a6040518963ffffffff1660e01b815260040161069c98979695949392919061266a565b610859611de4565b60405163138e9b5f60e31b815260048101899052602481018890526044810187905260648101869052608481018590526001600160a01b0384811660a483015261ffff841660c48301529190911690639c74daf89060e401600060405180830381600087803b1580156108cb57600080fd5b505af11580156108df573d6000803e3d6000fd5b5050603354604051632e1a7d4d60e01b8152600481018b90526001600160a01b039091169250632e1a7d4d9150602401600060405180830381600087803b15801561092957600080fd5b505af115801561093d573d6000803e3d6000fd5b5050505061094b3388611e2e565b50505050505050565b600054610100900460ff16158080156109745750600054600160ff909116105b8061098e5750303b15801561098e575060005460ff166001145b6109f15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161014d565b6000805460ff191660011790558015610a14576000805461ff0019166101001790555b603380546001600160a01b038086166001600160a01b03199283161790925560348054928516929091169190911790558015610a8a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b828114610aae5760405162461bcd60e51b815260040161014d9061250a565b6000805b82811015610ae857838382818110610acc57610acc612525565b9050602002013591508080610ae09061254e565b915050610ab2565b50803410156040518060400160405280600381526020016238353160e81b81525090610b275760405162461bcd60e51b815260040161014d9190611efd565b50603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b7857600080fd5b505af1158015610b8c573d6000803e3d6000fd5b5050505050610b99611de4565b6001600160a01b031663ff7039c7868686866040518563ffffffff1660e01b8152600401610bca94939291906126ca565b600060405180830381600087803b158015610be457600080fd5b505af1158015610bf8573d6000803e3d6000fd5b505050508034111561050a5761050a3361050583346124f1565b823410156040518060400160405280600381526020016203835360ec1b81525090610c505760405162461bcd60e51b815260040161014d9190611efd565b50603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015610ca157600080fd5b505af1158015610cb5573d6000803e3d6000fd5b5050505050610cc2611de4565b60405163a7ff3b2360e01b81526001600160a01b03868116600483015260248201869052604482018590528381166064830152919091169063a7ff3b2390608401600060405180830381600087803b158015610d1d57600080fd5b505af1158015610d31573d6000803e3d6000fd5b5050505082341115610d4b57610d4b3361050585346124f1565b50505050565b6000610d5b611de4565b6040516377778db360e01b8152600481018590529091506000906001600160a01b038316906377778db390602401600060405180830381865afa158015610da6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dce919081019061283b565b606001516040516370a0823160e01b81523360048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4091906129b3565b90508560018101610e4e5750805b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303816000875af1158015610ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec591906129cc565b50604051630ad58d2f60e01b815260048101829052602481018790523060448201526001600160a01b03851690630ad58d2f90606401600060405180830381600087803b158015610f1557600080fd5b505af1158015610f29573d6000803e3d6000fd5b5050603354604051632e1a7d4d60e01b8152600481018590526001600160a01b039091169250632e1a7d4d9150602401600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b5050505061094b8582611e2e565b603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610fe557600080fd5b505af1158015610ff9573d6000803e3d6000fd5b5050505050611006611de4565b604051630ef453e160e11b8152346004820152602481018590526001600160a01b03848116604483015261ffff841660648301529190911690631de8a7c290608401600060405180830381600087803b15801561106257600080fd5b505af115801561094b573d6000803e3d6000fd5b803410156040518060400160405280600381526020016238353160e81b815250906110b45760405162461bcd60e51b815260040161014d9190611efd565b50603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561110557600080fd5b505af1158015611119573d6000803e3d6000fd5b5050505050611126611de4565b60405163d8aed14560e01b815260048101849052602481018390526001600160a01b03919091169063d8aed14590604401600060405180830381600087803b15801561117157600080fd5b505af1158015611185573d6000803e3d6000fd5b505050508034111561119f5761119f3361050583346124f1565b5050565b60345460408051636ee554f560e11b8152905133926001600160a01b03169163ddcaa9ea9160048083019260209291908290030181865afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121091906129f5565b6001600160a01b031614604051806040016040528060038152602001621b981960e91b815250906112545760405162461bcd60e51b815260040161014d9190611efd565b5060405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156112a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b91906129cc565b6000808685146112ea5760405162461bcd60e51b815260040161014d9061250a565b8683146113095760405162461bcd60e51b815260040161014d9061250a565b60005b8781101561140d5761131c611d71565b6001600160a01b031663016676238a8a8481811061133c5761133c612525565b905060200201356040518263ffffffff1660e01b815260040161136191815260200190565b608060405180830381865afa15801561137e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a29190612492565b9550859250899150889050838181106113bd576113bd612525565b9050602002013511156113fb57828787838181106113dd576113dd612525565b905060200201356113ee91906124f1565b6113f8908361253b565b91505b806114058161254e565b91505061130c565b50803410156040518060400160405280600381526020016238353160e81b8152509061144c5760405162461bcd60e51b815260040161014d9190611efd565b50603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b50505050506114be611de4565b6001600160a01b031663621759de8989898989896040518763ffffffff1660e01b81526004016114f396959493929190612a12565b600060405180830381600087803b15801561150d57600080fd5b505af1158015611521573d6000803e3d6000fd5b505050508034111561153b5761153b3361050583346124f1565b5050505050505050565b603454604080516326deb97b60e21b8152905133926001600160a01b031691639b7ae5ec9160048083019260209291908290030181865afa15801561158e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b291906129f5565b6001600160a01b0316146040518060400160405280600381526020016203430360ec1b815250906115f65760405162461bcd60e51b815260040161014d9190611efd565b50603354603454604080516347f872f160e01b815290516001600160a01b039384169363095ea7b39316916347f872f19160048083019260209291908290030181865afa15801561164b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166f91906129f5565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260001960248201526044016020604051808303816000875af11580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e191906129cc565b50565b8483146117035760405162461bcd60e51b815260040161014d9061250a565b8481146117225760405162461bcd60e51b815260040161014d9061250a565b60008080808867ffffffffffffffff811115611740576117406126fc565b604051908082528060200260200182016040528015611769578160200160208202803683370190505b50905060008967ffffffffffffffff811115611787576117876126fc565b6040519080825280602002602001820160405280156117b0578160200160208202803683370190505b50905060006117bd611de4565b905060005b8b811015611a4957816001600160a01b03166377778db38c8c848181106117eb576117eb612525565b905060200201356040518263ffffffff1660e01b815260040161181091815260200190565b600060405180830381865afa15801561182d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611855919081019061283b565b606001516040516370a0823160e01b81523360048201529097506001600160a01b038816906370a0823190602401602060405180830381865afa1580156118a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c491906129b3565b95508c8c828181106118d8576118d8612525565b905060200201358382815181106118f1576118f1612525565b6020026020010181815250506000198d8d8381811061191257611912612525565b905060200201350361193e578583828151811061193157611931612525565b6020026020010181815250505b82818151811061195057611950612525565b602002602001015185611963919061253b565b9450866001600160a01b03166323b872dd333086858151811061198857611988612525565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af11580156119e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0b91906129cc565b5030848281518110611a1f57611a1f612525565b6001600160a01b039092166020928302919091019091015280611a418161254e565b9150506117c2565b50604051634f4bd0ab60e11b81526001600160a01b03821690639e97a15690611a7c9085908e908e908990600401612a5b565b600060405180830381600087803b158015611a9657600080fd5b505af1158015611aaa573d6000803e3d6000fd5b5050603354604051632e1a7d4d60e01b8152600481018890526001600160a01b039091169250632e1a7d4d9150602401600060405180830381600087803b158015611af457600080fd5b505af1158015611b08573d6000803e3d6000fd5b5050505060005b87811015611b7257611b60898983818110611b2c57611b2c612525565b9050602002016020810190611b419190612af6565b848381518110611b5357611b53612525565b6020026020010151611e2e565b80611b6a8161254e565b915050611b0f565b50505050505050505050505050565b611b89611de4565b6001600160a01b031663c28cadf78c8c8c8c8c8c8c8c8c8c8c6040518c63ffffffff1660e01b8152600401611bc89b9a99989796959493929190612b13565b600060405180830381600087803b158015611be257600080fd5b505af1158015611bf6573d6000803e3d6000fd5b505050506000805b8b811015611c3e578c8c82818110611c1857611c18612525565b9050602002013582611c2a919061253b565b915080611c368161254e565b915050611bfe565b50603354604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015611c8557600080fd5b505af1158015611c99573d6000803e3d6000fd5b50505050611ca73382611e2e565b505050505050505050505050565b60345460408051636ee554f560e11b8152905133926001600160a01b03169163ddcaa9ea9160048083019260209291908290030181865afa158015611cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2291906129f5565b6001600160a01b031614604051806040016040528060038152602001621b981960e91b81525090611d665760405162461bcd60e51b815260040161014d9190611efd565b5061119f8282611e2e565b60345460408051636fd220df60e11b815290516000926001600160a01b03169163dfa441be9160048083019260209291908290030181865afa158015611dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ddf91906129f5565b905090565b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b9160048083019260209291908290030181865afa158015611dbb573d6000803e3d6000fd5b604080516000808252602082019092526001600160a01b038416908390604051611e589190612b95565b60006040518083038185875af1925050503d8060008114611e95576040519150601f19603f3d011682016040523d82523d6000602084013e611e9a565b606091505b5050905080604051806040016040528060038152602001621c1a9960e91b81525090610d4b5760405162461bcd60e51b815260040161014d9190611efd565b60005b83811015611ef4578181015183820152602001611edc565b50506000910152565b6020815260008251806020840152611f1c816040850160208701611ed9565b601f01601f19169190910160400192915050565b600080600060608486031215611f4557600080fd5b505081359360208301359350604090920135919050565b60008083601f840112611f6e57600080fd5b50813567ffffffffffffffff811115611f8657600080fd5b6020830191508360208260051b8501011115611fa157600080fd5b9250929050565b6000806000806000806000806080898b031215611fc457600080fd5b883567ffffffffffffffff80821115611fdc57600080fd5b611fe88c838d01611f5c565b909a50985060208b013591508082111561200157600080fd5b61200d8c838d01611f5c565b909850965060408b013591508082111561202657600080fd5b6120328c838d01611f5c565b909650945060608b013591508082111561204b57600080fd5b506120588b828c01611f5c565b999c989b5096995094979396929594505050565b6001600160a01b03811681146116e157600080fd5b803561208c8161206c565b919050565b803561ffff8116811461208c57600080fd5b600080600080600080600060e0888a0312156120be57600080fd5b873596506020880135955060408801359450606088013593506080880135925060a08801356120ec8161206c565b91506120fa60c08901612091565b905092959891949750929550565b6000806040838503121561211b57600080fd5b82356121268161206c565b915060208301356121368161206c565b809150509250929050565b6000806000806040858703121561215757600080fd5b843567ffffffffffffffff8082111561216f57600080fd5b61217b88838901611f5c565b9096509450602087013591508082111561219457600080fd5b506121a187828801611f5c565b95989497509550505050565b600080600080608085870312156121c357600080fd5b84356121ce8161206c565b9350602085013592506040850135915060608501356121ec8161206c565b939692955090935050565b60008060006060848603121561220c57600080fd5b833592506020840135915060408401356122258161206c565b809150509250925092565b60008060006060848603121561224557600080fd5b8335925060208401356122578161206c565b915061226560408501612091565b90509250925092565b6000806040838503121561228157600080fd5b50508035926020909101359150565b6000806000606084860312156122a557600080fd5b83356122b08161206c565b925060208401356122c08161206c565b929592945050506040919091013590565b600080600080600080606087890312156122ea57600080fd5b863567ffffffffffffffff8082111561230257600080fd5b61230e8a838b01611f5c565b9098509650602089013591508082111561232757600080fd5b6123338a838b01611f5c565b9096509450604089013591508082111561234c57600080fd5b5061235989828a01611f5c565b979a9699509497509295939492505050565b600080600080600080600080600080600060e08c8e03121561238c57600080fd5b67ffffffffffffffff808d3511156123a357600080fd5b6123b08e8e358f01611f5c565b909c509a5060208d01358110156123c657600080fd5b6123d68e60208f01358f01611f5c565b909a50985060408d01358110156123ec57600080fd5b6123fc8e60408f01358f01611f5c565b909850965060608d013581101561241257600080fd5b506124238d60608e01358e01611f5c565b909550935060808c0135925061243b60a08d01612081565b915061244960c08d01612091565b90509295989b509295989b9093969950565b6000806040838503121561246e57600080fd5b82356124798161206c565b946020939093013593505050565b805161208c8161206c565b600080600080608085870312156124a857600080fd5b84516124b38161206c565b6020860151604087015191955093506124cb8161206c565b6060959095015193969295505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115612504576125046124db565b92915050565b6020808252600190820152606560f81b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b80820180821115612504576125046124db565b600060018201612560576125606124db565b5060010190565b81835260006001600160fb1b0383111561258057600080fd5b8260051b80836020870137939093016020019392505050565b8183526000602080850194508260005b858110156125d75781356125bc8161206c565b6001600160a01b0316875295820195908201906001016125a9565b509495945050505050565b6080815260006125f6608083018a8c612567565b60208382038185015261260a828a8c612567565b9150838203604085015261261f82888a612599565b8481036060860152858152869250810160005b868110156126595761ffff61264685612091565b1682529282019290820190600101612632565b509c9b505050505050505050505050565b60808152600061267e608083018a8c612599565b828103602084015261269181898b612567565b905082810360408401526126a6818789612567565b905082810360608401526126bb818587612599565b9b9a5050505050505050505050565b6040815260006126de604083018688612567565b82810360208401526126f1818587612567565b979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff81118282101715612736576127366126fc565b60405290565b60006020828403121561274e57600080fd5b6040516020810181811067ffffffffffffffff82111715612771576127716126fc565b6040529151825250919050565b600082601f83011261278f57600080fd5b815167ffffffffffffffff808211156127aa576127aa6126fc565b604051601f8301601f19908116603f011681019082821181831017156127d2576127d26126fc565b816040528381528660208588010111156127eb57600080fd5b6127fc846020830160208901611ed9565b9695505050505050565b80516fffffffffffffffffffffffffffffffff8116811461208c57600080fd5b805164ffffffffff8116811461208c57600080fd5b60006020828403121561284d57600080fd5b815167ffffffffffffffff8082111561286557600080fd5b90830190610220828603121561287a57600080fd5b612882612712565b61288c868461273c565b815261289a60208401612487565b60208201526128ab60408401612487565b60408201526128bc60608401612487565b60608201526128cd60808401612487565b60808201526128de60a08401612487565b60a08201526128ef60c08401612487565b60c082015260e08301518281111561290657600080fd5b6129128782860161277e565b60e08301525061010083810151908201526101208084015190820152610140808401519082015261016080840151908201526101809150612954828401612806565b828201526101a09150612968828401612806565b828201526101c0915061297c828401612806565b828201526101e09150612990828401612806565b8282015261020091506129a4828401612826565b91810191909152949350505050565b6000602082840312156129c557600080fd5b5051919050565b6000602082840312156129de57600080fd5b815180151581146129ee57600080fd5b9392505050565b600060208284031215612a0757600080fd5b81516129ee8161206c565b606081526000612a2660608301888a612567565b8281036020840152612a39818789612567565b90508281036040840152612a4e818587612567565b9998505050505050505050565b606080825285519082018190526000906020906080840190828901845b82811015612a9457815184529284019290840190600101612a78565b50505083810382850152612aa9818789612567565b8481036040860152855180825283870192509083019060005b81811015612ae75783516001600160a01b031683529284019291840191600101612ac2565b50909998505050505050505050565b600060208284031215612b0857600080fd5b81356129ee8161206c565b60e081526000612b2760e083018d8f612567565b8281036020840152612b3a818c8e612567565b90508281036040840152612b4f818a8c612567565b90508281036060840152612b6481888a612567565b608084019690965250506001600160a01b039290921660a083015261ffff1660c09091015298975050505050505050565b60008251612ba7818460208701611ed9565b919091019291505056fea2646970667358221220ad3e0017c1ed127988062c43f47f2ece1ffefb759b508a20738251f3a9e3ce9d64736f6c63430008100033",
"sourceMap": "1099:16876:118:-:0;;;;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x6080604052600436106101025760003560e01c806376e13af111610095578063bba6bc6d11610064578063bba6bc6d146102ba578063caaabc60146102cd578063ced46f82146102e2578063d0fee56814610302578063eed88b8d1461032257610158565b806376e13af1146102485780637f185c1e1461025b578063a3d5b2551461026e578063affa88171461028e57610158565b8063485cc955116100d1578063485cc955146101e25780635a95399914610202578063664054ce146102155780636a41a61b1461022857610158565b80630572c30f146101895780631976c7ba1461019c57806331a9b157146101af57806335f9a701146101c257610158565b366101585760335460408051808201909152600381526238353360e81b6020820152906001600160a01b031633146101565760405162461bcd60e51b815260040161014d9190611efd565b60405180910390fd5b005b60408051808201825260038152620e0d4d60ea1b6020820152905162461bcd60e51b815261014d9190600401611efd565b610156610197366004611f30565b610342565b6101566101aa366004611fa8565b610511565b6101566101bd366004611fa8565b6106ef565b3480156101ce57600080fd5b506101566101dd3660046120a3565b610851565b3480156101ee57600080fd5b506101566101fd366004612108565b610954565b610156610210366004612141565b610a8f565b6101566102233660046121ad565b610c12565b34801561023457600080fd5b506101566102433660046121f7565b610d51565b610156610256366004612230565b610f95565b61015661026936600461226e565b611076565b34801561027a57600080fd5b50610156610289366004612290565b6111a3565b34801561029a57600080fd5b50603354604080516001600160a01b039092168252519081900360200190f35b6101566102c83660046122d1565b6112c8565b3480156102d957600080fd5b50610156611545565b3480156102ee57600080fd5b506101566102fd3660046122d1565b6116e4565b34801561030e57600080fd5b5061015661031d36600461236b565b611b81565b34801561032e57600080fd5b5061015661033d36600461245b565b611cb5565b60008061034d611d71565b6001600160a01b03166301667623866040518263ffffffff1660e01b815260040161037a91815260200190565b608060405180830381865afa158015610397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103bb9190612492565b935050505080841115610414576103d281856124f1565b9150813410156040518060400160405280600381526020016238353160e81b815250906104125760405162461bcd60e51b815260040161014d9190611efd565b505b603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561046457600080fd5b505af1158015610478573d6000803e3d6000fd5b5050505050610485611de4565b604051630226f8f960e11b81526004810187905260248101869052604481018590526001600160a01b03919091169063044df1f290606401600060405180830381600087803b1580156104d757600080fd5b505af11580156104eb573d6000803e3d6000fd5b505050508134111561050a5761050a3361050584346124f1565b611e2e565b5050505050565b8685146105305760405162461bcd60e51b815260040161014d9061250a565b86831461054f5760405162461bcd60e51b815260040161014d9061250a565b86811461056e5760405162461bcd60e51b815260040161014d9061250a565b6000805b888110156105b25789898281811061058c5761058c612525565b905060200201358261059e919061253b565b9150806105aa8161254e565b915050610572565b50803410156040518060400160405280600381526020016203835360ec1b815250906105f15760405162461bcd60e51b815260040161014d9190611efd565b50603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561064257600080fd5b505af1158015610656573d6000803e3d6000fd5b5050505050610663611de4565b6001600160a01b0316634b33a9678a8a8a8a8a8a8a8a6040518963ffffffff1660e01b815260040161069c9897969594939291906125e2565b600060405180830381600087803b1580156106b657600080fd5b505af11580156106ca573d6000803e3d6000fd5b50505050803411156106e4576106e43361050583346124f1565b505050505050505050565b86851461070e5760405162461bcd60e51b815260040161014d9061250a565b86831461072d5760405162461bcd60e51b815260040161014d9061250a565b6000805b868110156107675787878281811061074b5761074b612525565b905060200201359150808061075f9061254e565b915050610731565b50803410156040518060400160405280600381526020016203835360ec1b815250906107a65760405162461bcd60e51b815260040161014d9190611efd565b50603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156107f757600080fd5b505af115801561080b573d6000803e3d6000fd5b5050505050610818611de4565b6001600160a01b0316632684dd098a8a8a8a8a8a8a8a6040518963ffffffff1660e01b815260040161069c98979695949392919061266a565b610859611de4565b60405163138e9b5f60e31b815260048101899052602481018890526044810187905260648101869052608481018590526001600160a01b0384811660a483015261ffff841660c48301529190911690639c74daf89060e401600060405180830381600087803b1580156108cb57600080fd5b505af11580156108df573d6000803e3d6000fd5b5050603354604051632e1a7d4d60e01b8152600481018b90526001600160a01b039091169250632e1a7d4d9150602401600060405180830381600087803b15801561092957600080fd5b505af115801561093d573d6000803e3d6000fd5b5050505061094b3388611e2e565b50505050505050565b600054610100900460ff16158080156109745750600054600160ff909116105b8061098e5750303b15801561098e575060005460ff166001145b6109f15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161014d565b6000805460ff191660011790558015610a14576000805461ff0019166101001790555b603380546001600160a01b038086166001600160a01b03199283161790925560348054928516929091169190911790558015610a8a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b828114610aae5760405162461bcd60e51b815260040161014d9061250a565b6000805b82811015610ae857838382818110610acc57610acc612525565b9050602002013591508080610ae09061254e565b915050610ab2565b50803410156040518060400160405280600381526020016238353160e81b81525090610b275760405162461bcd60e51b815260040161014d9190611efd565b50603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b7857600080fd5b505af1158015610b8c573d6000803e3d6000fd5b5050505050610b99611de4565b6001600160a01b031663ff7039c7868686866040518563ffffffff1660e01b8152600401610bca94939291906126ca565b600060405180830381600087803b158015610be457600080fd5b505af1158015610bf8573d6000803e3d6000fd5b505050508034111561050a5761050a3361050583346124f1565b823410156040518060400160405280600381526020016203835360ec1b81525090610c505760405162461bcd60e51b815260040161014d9190611efd565b50603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015610ca157600080fd5b505af1158015610cb5573d6000803e3d6000fd5b5050505050610cc2611de4565b60405163a7ff3b2360e01b81526001600160a01b03868116600483015260248201869052604482018590528381166064830152919091169063a7ff3b2390608401600060405180830381600087803b158015610d1d57600080fd5b505af1158015610d31573d6000803e3d6000fd5b5050505082341115610d4b57610d4b3361050585346124f1565b50505050565b6000610d5b611de4565b6040516377778db360e01b8152600481018590529091506000906001600160a01b038316906377778db390602401600060405180830381865afa158015610da6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dce919081019061283b565b606001516040516370a0823160e01b81523360048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610e1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4091906129b3565b90508560018101610e4e5750805b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303816000875af1158015610ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec591906129cc565b50604051630ad58d2f60e01b815260048101829052602481018790523060448201526001600160a01b03851690630ad58d2f90606401600060405180830381600087803b158015610f1557600080fd5b505af1158015610f29573d6000803e3d6000fd5b5050603354604051632e1a7d4d60e01b8152600481018590526001600160a01b039091169250632e1a7d4d9150602401600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b5050505061094b8582611e2e565b603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610fe557600080fd5b505af1158015610ff9573d6000803e3d6000fd5b5050505050611006611de4565b604051630ef453e160e11b8152346004820152602481018590526001600160a01b03848116604483015261ffff841660648301529190911690631de8a7c290608401600060405180830381600087803b15801561106257600080fd5b505af115801561094b573d6000803e3d6000fd5b803410156040518060400160405280600381526020016238353160e81b815250906110b45760405162461bcd60e51b815260040161014d9190611efd565b50603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561110557600080fd5b505af1158015611119573d6000803e3d6000fd5b5050505050611126611de4565b60405163d8aed14560e01b815260048101849052602481018390526001600160a01b03919091169063d8aed14590604401600060405180830381600087803b15801561117157600080fd5b505af1158015611185573d6000803e3d6000fd5b505050508034111561119f5761119f3361050583346124f1565b5050565b60345460408051636ee554f560e11b8152905133926001600160a01b03169163ddcaa9ea9160048083019260209291908290030181865afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121091906129f5565b6001600160a01b031614604051806040016040528060038152602001621b981960e91b815250906112545760405162461bcd60e51b815260040161014d9190611efd565b5060405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156112a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b91906129cc565b6000808685146112ea5760405162461bcd60e51b815260040161014d9061250a565b8683146113095760405162461bcd60e51b815260040161014d9061250a565b60005b8781101561140d5761131c611d71565b6001600160a01b031663016676238a8a8481811061133c5761133c612525565b905060200201356040518263ffffffff1660e01b815260040161136191815260200190565b608060405180830381865afa15801561137e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a29190612492565b9550859250899150889050838181106113bd576113bd612525565b9050602002013511156113fb57828787838181106113dd576113dd612525565b905060200201356113ee91906124f1565b6113f8908361253b565b91505b806114058161254e565b91505061130c565b50803410156040518060400160405280600381526020016238353160e81b8152509061144c5760405162461bcd60e51b815260040161014d9190611efd565b50603360009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561149d57600080fd5b505af11580156114b1573d6000803e3d6000fd5b50505050506114be611de4565b6001600160a01b031663621759de8989898989896040518763ffffffff1660e01b81526004016114f396959493929190612a12565b600060405180830381600087803b15801561150d57600080fd5b505af1158015611521573d6000803e3d6000fd5b505050508034111561153b5761153b3361050583346124f1565b5050505050505050565b603454604080516326deb97b60e21b8152905133926001600160a01b031691639b7ae5ec9160048083019260209291908290030181865afa15801561158e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b291906129f5565b6001600160a01b0316146040518060400160405280600381526020016203430360ec1b815250906115f65760405162461bcd60e51b815260040161014d9190611efd565b50603354603454604080516347f872f160e01b815290516001600160a01b039384169363095ea7b39316916347f872f19160048083019260209291908290030181865afa15801561164b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166f91906129f5565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260001960248201526044016020604051808303816000875af11580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e191906129cc565b50565b8483146117035760405162461bcd60e51b815260040161014d9061250a565b8481146117225760405162461bcd60e51b815260040161014d9061250a565b60008080808867ffffffffffffffff811115611740576117406126fc565b604051908082528060200260200182016040528015611769578160200160208202803683370190505b50905060008967ffffffffffffffff811115611787576117876126fc565b6040519080825280602002602001820160405280156117b0578160200160208202803683370190505b50905060006117bd611de4565b905060005b8b811015611a4957816001600160a01b03166377778db38c8c848181106117eb576117eb612525565b905060200201356040518263ffffffff1660e01b815260040161181091815260200190565b600060405180830381865afa15801561182d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611855919081019061283b565b606001516040516370a0823160e01b81523360048201529097506001600160a01b038816906370a0823190602401602060405180830381865afa1580156118a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c491906129b3565b95508c8c828181106118d8576118d8612525565b905060200201358382815181106118f1576118f1612525565b6020026020010181815250506000198d8d8381811061191257611912612525565b905060200201350361193e578583828151811061193157611931612525565b6020026020010181815250505b82818151811061195057611950612525565b602002602001015185611963919061253b565b9450866001600160a01b03166323b872dd333086858151811061198857611988612525565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af11580156119e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0b91906129cc565b5030848281518110611a1f57611a1f612525565b6001600160a01b039092166020928302919091019091015280611a418161254e565b9150506117c2565b50604051634f4bd0ab60e11b81526001600160a01b03821690639e97a15690611a7c9085908e908e908990600401612a5b565b600060405180830381600087803b158015611a9657600080fd5b505af1158015611aaa573d6000803e3d6000fd5b5050603354604051632e1a7d4d60e01b8152600481018890526001600160a01b039091169250632e1a7d4d9150602401600060405180830381600087803b158015611af457600080fd5b505af1158015611b08573d6000803e3d6000fd5b5050505060005b87811015611b7257611b60898983818110611b2c57611b2c612525565b9050602002016020810190611b419190612af6565b848381518110611b5357611b53612525565b6020026020010151611e2e565b80611b6a8161254e565b915050611b0f565b50505050505050505050505050565b611b89611de4565b6001600160a01b031663c28cadf78c8c8c8c8c8c8c8c8c8c8c6040518c63ffffffff1660e01b8152600401611bc89b9a99989796959493929190612b13565b600060405180830381600087803b158015611be257600080fd5b505af1158015611bf6573d6000803e3d6000fd5b505050506000805b8b811015611c3e578c8c82818110611c1857611c18612525565b9050602002013582611c2a919061253b565b915080611c368161254e565b915050611bfe565b50603354604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015611c8557600080fd5b505af1158015611c99573d6000803e3d6000fd5b50505050611ca73382611e2e565b505050505050505050505050565b60345460408051636ee554f560e11b8152905133926001600160a01b03169163ddcaa9ea9160048083019260209291908290030181865afa158015611cfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2291906129f5565b6001600160a01b031614604051806040016040528060038152602001621b981960e91b81525090611d665760405162461bcd60e51b815260040161014d9190611efd565b5061119f8282611e2e565b60345460408051636fd220df60e11b815290516000926001600160a01b03169163dfa441be9160048083019260209291908290030181865afa158015611dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ddf91906129f5565b905090565b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b9160048083019260209291908290030181865afa158015611dbb573d6000803e3d6000fd5b604080516000808252602082019092526001600160a01b038416908390604051611e589190612b95565b60006040518083038185875af1925050503d8060008114611e95576040519150601f19603f3d011682016040523d82523d6000602084013e611e9a565b606091505b5050905080604051806040016040528060038152602001621c1a9960e91b81525090610d4b5760405162461bcd60e51b815260040161014d9190611efd565b60005b83811015611ef4578181015183820152602001611edc565b50506000910152565b6020815260008251806020840152611f1c816040850160208701611ed9565b601f01601f19169190910160400192915050565b600080600060608486031215611f4557600080fd5b505081359360208301359350604090920135919050565b60008083601f840112611f6e57600080fd5b50813567ffffffffffffffff811115611f8657600080fd5b6020830191508360208260051b8501011115611fa157600080fd5b9250929050565b6000806000806000806000806080898b031215611fc457600080fd5b883567ffffffffffffffff80821115611fdc57600080fd5b611fe88c838d01611f5c565b909a50985060208b013591508082111561200157600080fd5b61200d8c838d01611f5c565b909850965060408b013591508082111561202657600080fd5b6120328c838d01611f5c565b909650945060608b013591508082111561204b57600080fd5b506120588b828c01611f5c565b999c989b5096995094979396929594505050565b6001600160a01b03811681146116e157600080fd5b803561208c8161206c565b919050565b803561ffff8116811461208c57600080fd5b600080600080600080600060e0888a0312156120be57600080fd5b873596506020880135955060408801359450606088013593506080880135925060a08801356120ec8161206c565b91506120fa60c08901612091565b905092959891949750929550565b6000806040838503121561211b57600080fd5b82356121268161206c565b915060208301356121368161206c565b809150509250929050565b6000806000806040858703121561215757600080fd5b843567ffffffffffffffff8082111561216f57600080fd5b61217b88838901611f5c565b9096509450602087013591508082111561219457600080fd5b506121a187828801611f5c565b95989497509550505050565b600080600080608085870312156121c357600080fd5b84356121ce8161206c565b9350602085013592506040850135915060608501356121ec8161206c565b939692955090935050565b60008060006060848603121561220c57600080fd5b833592506020840135915060408401356122258161206c565b809150509250925092565b60008060006060848603121561224557600080fd5b8335925060208401356122578161206c565b915061226560408501612091565b90509250925092565b6000806040838503121561228157600080fd5b50508035926020909101359150565b6000806000606084860312156122a557600080fd5b83356122b08161206c565b925060208401356122c08161206c565b929592945050506040919091013590565b600080600080600080606087890312156122ea57600080fd5b863567ffffffffffffffff8082111561230257600080fd5b61230e8a838b01611f5c565b9098509650602089013591508082111561232757600080fd5b6123338a838b01611f5c565b9096509450604089013591508082111561234c57600080fd5b5061235989828a01611f5c565b979a9699509497509295939492505050565b600080600080600080600080600080600060e08c8e03121561238c57600080fd5b67ffffffffffffffff808d3511156123a357600080fd5b6123b08e8e358f01611f5c565b909c509a5060208d01358110156123c657600080fd5b6123d68e60208f01358f01611f5c565b909a50985060408d01358110156123ec57600080fd5b6123fc8e60408f01358f01611f5c565b909850965060608d013581101561241257600080fd5b506124238d60608e01358e01611f5c565b909550935060808c0135925061243b60a08d01612081565b915061244960c08d01612091565b90509295989b509295989b9093969950565b6000806040838503121561246e57600080fd5b82356124798161206c565b946020939093013593505050565b805161208c8161206c565b600080600080608085870312156124a857600080fd5b84516124b38161206c565b6020860151604087015191955093506124cb8161206c565b6060959095015193969295505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115612504576125046124db565b92915050565b6020808252600190820152606560f81b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b80820180821115612504576125046124db565b600060018201612560576125606124db565b5060010190565b81835260006001600160fb1b0383111561258057600080fd5b8260051b80836020870137939093016020019392505050565b8183526000602080850194508260005b858110156125d75781356125bc8161206c565b6001600160a01b0316875295820195908201906001016125a9565b509495945050505050565b6080815260006125f6608083018a8c612567565b60208382038185015261260a828a8c612567565b9150838203604085015261261f82888a612599565b8481036060860152858152869250810160005b868110156126595761ffff61264685612091565b1682529282019290820190600101612632565b509c9b505050505050505050505050565b60808152600061267e608083018a8c612599565b828103602084015261269181898b612567565b905082810360408401526126a6818789612567565b905082810360608401526126bb818587612599565b9b9a5050505050505050505050565b6040815260006126de604083018688612567565b82810360208401526126f1818587612567565b979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604051610220810167ffffffffffffffff81118282101715612736576127366126fc565b60405290565b60006020828403121561274e57600080fd5b6040516020810181811067ffffffffffffffff82111715612771576127716126fc565b6040529151825250919050565b600082601f83011261278f57600080fd5b815167ffffffffffffffff808211156127aa576127aa6126fc565b604051601f8301601f19908116603f011681019082821181831017156127d2576127d26126fc565b816040528381528660208588010111156127eb57600080fd5b6127fc846020830160208901611ed9565b9695505050505050565b80516fffffffffffffffffffffffffffffffff8116811461208c57600080fd5b805164ffffffffff8116811461208c57600080fd5b60006020828403121561284d57600080fd5b815167ffffffffffffffff8082111561286557600080fd5b90830190610220828603121561287a57600080fd5b612882612712565b61288c868461273c565b815261289a60208401612487565b60208201526128ab60408401612487565b60408201526128bc60608401612487565b60608201526128cd60808401612487565b60808201526128de60a08401612487565b60a08201526128ef60c08401612487565b60c082015260e08301518281111561290657600080fd5b6129128782860161277e565b60e08301525061010083810151908201526101208084015190820152610140808401519082015261016080840151908201526101809150612954828401612806565b828201526101a09150612968828401612806565b828201526101c0915061297c828401612806565b828201526101e09150612990828401612806565b8282015261020091506129a4828401612826565b91810191909152949350505050565b6000602082840312156129c557600080fd5b5051919050565b6000602082840312156129de57600080fd5b815180151581146129ee57600080fd5b9392505050565b600060208284031215612a0757600080fd5b81516129ee8161206c565b606081526000612a2660608301888a612567565b8281036020840152612a39818789612567565b90508281036040840152612a4e818587612567565b9998505050505050505050565b606080825285519082018190526000906020906080840190828901845b82811015612a9457815184529284019290840190600101612a78565b50505083810382850152612aa9818789612567565b8481036040860152855180825283870192509083019060005b81811015612ae75783516001600160a01b031683529284019291840191600101612ac2565b50909998505050505050505050565b600060208284031215612b0857600080fd5b81356129ee8161206c565b60e081526000612b2760e083018d8f612567565b8281036020840152612b3a818c8e612567565b90508281036040840152612b4f818a8c612567565b90508281036060840152612b6481888a612567565b608084019690965250506001600160a01b039290921660a083015261ffff1660c09091015298975050505050505050565b60008251612ba7818460208701611ed9565b919091019291505056fea2646970667358221220ad3e0017c1ed127988062c43f47f2ece1ffefb759b508a20738251f3a9e3ce9d64736f6c63430008100033",
"sourceMap": "1099:16876:118:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17792:4;;17799:29;;;;;;;;;;;;-1:-1:-1;;;17799:29:118;;;;;-1:-1:-1;;;;;17792:4:118;17770:10;:27;17762:67;;;;-1:-1:-1;;;17762:67:118;;;;;;;;:::i;:::-;;;;;;;;;;1099:16876;17935:30;;;;;;;;;;;-1:-1:-1;;;17935:30:118;;;;17928:38;;-1:-1:-1;;;17928:38:118;;;;17935:30;17928:38;;;:::i;11795:721::-;;;;;;:::i;:::-;;:::i;3535:882::-;;;;;;:::i;:::-;;:::i;14988:792::-;;;;;;:::i;:::-;;:::i;7847:521::-;;;;;;;;;;-1:-1:-1;7847:521:118;;;;;:::i;:::-;;:::i;1642:175::-;;;;;;;;;;-1:-1:-1;1642:175:118;;;;;:::i;:::-;;:::i;10804:647::-;;;;;;:::i;:::-;;:::i;14187:471::-;;;;;;:::i;:::-;;:::i;4680:771::-;;;;;;;;;;-1:-1:-1;4680:771:118;;;;;:::i;:::-;;:::i;2792:268::-;;;;;;:::i;:::-;;:::i;10090:407::-;;;;;;:::i;:::-;;:::i;16413:184::-;;;;;;;;;;-1:-1:-1;16413:184:118;;;;;:::i;:::-;;:::i;17102:95::-;;;;;;;;;;-1:-1:-1;17185:4:118;;17102:95;;;-1:-1:-1;;;;;17185:4:118;;;8628:51:174;;17102:95:118;;;;;8616:2:174;17102:95:118;;;12878:1000;;;;;;:::i;:::-;;:::i;2227:153::-;;;;;;;;;;;;;:::i;5728:1435::-;;;;;;;;;;-1:-1:-1;5728:1435:118;;;;;:::i;:::-;;:::i;9070:724::-;;;;;;;;;;-1:-1:-1;9070:724:118;;;;;:::i;:::-;;:::i;16900:133::-;;;;;;;;;;-1:-1:-1;16900:133:118;;;;;:::i;:::-;;:::i;11795:721::-;11935:23;11973:20;11997:23;:21;:23::i;:::-;-1:-1:-1;;;;;11997:39:118;;12037:8;11997:49;;;;;;;;;;;;;12931:25:174;;12919:2;12904:18;;12785:177;11997:49:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11969:77;;;;;12069:12;12060:6;:21;12056:194;;;12115:21;12124:12;12115:6;:21;:::i;:::-;12097:39;;12171:15;12158:9;:28;;12188:50;;;;;;;;;;;;;-1:-1:-1;;;12188:50:118;;;12150:89;;;;;-1:-1:-1;;;12150:89:118;;;;;;;;:::i;:::-;;12056:194;12268:4;;;;;;;;;-1:-1:-1;;;;;12268:4:118;-1:-1:-1;;;;;12268:12:118;;12288:15;12268:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12316:17;:15;:17::i;:::-;:55;;-1:-1:-1;;;12316:55:118;;;;;14090:25:174;;;14131:18;;;14124:34;;;14174:18;;;14167:34;;;-1:-1:-1;;;;;12316:27:118;;;;;;;14063:18:174;;12316:55:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12435:15;12423:9;:27;12419:90;;;12452:57;12469:10;12481:27;12493:15;12481:9;:27;:::i;:::-;12452:16;:57::i;:::-;11925:591;;11795:721;;;:::o;3535:882::-;3766:35;;;3758:49;;;;-1:-1:-1;;;3758:49:118;;;;;;;:::i;:::-;3825:36;;;3817:50;;;;-1:-1:-1;;;3817:50:118;;;;;;;:::i;:::-;3885:38;;;3877:52;;;;-1:-1:-1;;;3877:52:118;;;;;;;:::i;:::-;3940:19;3974:6;3969:88;3982:18;;;3969:88;;;4036:7;;4044:1;4036:10;;;;;;;:::i;:::-;;;;;;;4021:25;;;;;:::i;:::-;;-1:-1:-1;4002:3:118;;;;:::i;:::-;;;;3969:88;;;;4087:11;4074:9;:24;;4100:48;;;;;;;;;;;;;-1:-1:-1;;;4100:48:118;;;4066:83;;;;;-1:-1:-1;;;4066:83:118;;;;;;;;:::i;:::-;;4159:4;;;;;;;;;-1:-1:-1;;;;;4159:4:118;-1:-1:-1;;;;;4159:12:118;;4179:9;4159:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4201:17;:15;:17::i;:::-;-1:-1:-1;;;;;4201:30:118;;4232:7;;4241:10;;4253:11;;4266:13;;4201:79;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4344:11;4332:9;:23;4328:82;;;4357:53;4374:10;4386:23;4398:11;4386:9;:23;:::i;4357:53::-;3748:669;3535:882;;;;;;;;:::o;14988:792::-;15208:31;;;15200:45;;;;-1:-1:-1;;;15200:45:118;;;;;;;:::i;:::-;15263:33;;;15255:47;;;;-1:-1:-1;;;15255:47:118;;;;;;;:::i;:::-;15313:19;15347:6;15342:87;15355:18;;;15342:87;;;15408:7;;15416:1;15408:10;;;;;;;:::i;:::-;;;;;;;15394:24;;15375:3;;;;;:::i;:::-;;;;15342:87;;;;15460:11;15447:9;:24;;15473:48;;;;;;;;;;;;;-1:-1:-1;;;15473:48:118;;;15439:83;;;;;-1:-1:-1;;;15439:83:118;;;;;;;;:::i;:::-;;15532:4;;;;;;;;;-1:-1:-1;;;;;15532:4:118;-1:-1:-1;;;;;15532:12:118;;15552:11;15532:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15576:17;:15;:17::i;:::-;-1:-1:-1;;;;;15576:26:118;;15603:6;;15611:7;;15620:9;;15631:11;;15576:67;;;;;;;;;;;;;;;;;;;;;;:::i;7847:521::-;8090:17;:15;:17::i;:::-;:194;;-1:-1:-1;;;8090:194:118;;;;;18375:25:174;;;18416:18;;;18409:34;;;18459:18;;;18452:34;;;18502:18;;;18495:34;;;18545:19;;;18538:35;;;-1:-1:-1;;;;;18610:32:174;;;18589:19;;;18582:61;18692:6;18680:19;;18659;;;18652:48;8090:24:118;;;;;;;18347:19:174;;8090:194:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8294:4:118;;:21;;-1:-1:-1;;;8294:21:118;;;;;12931:25:174;;;-1:-1:-1;;;;;8294:4:118;;;;-1:-1:-1;8294:13:118;;-1:-1:-1;12904:18:174;;8294:21:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8325:36;8342:10;8354:6;8325:16;:36::i;:::-;7847:521;;;;;;;:::o;1642:175::-;3268:19:18;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:18;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:18;1476:19:32;:23;;;3376:66:18;;-1:-1:-1;3425:12:18;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:18;;18913:2:174;3314:201:18;;;18895:21:174;18952:2;18932:18;;;18925:30;18991:34;18971:18;;;18964:62;-1:-1:-1;;;19042:18:174;;;19035:44;19096:19;;3314:201:18;18711:410:174;3314:201:18;3525:12;:16;;-1:-1:-1;;3525:16:18;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;-1:-1:-1;;3585:20:18;;;;;3551:65;1730:4:118::1;:18:::0;;-1:-1:-1;;;;;1730:18:118;;::::1;-1:-1:-1::0;;;;;;1730:18:118;;::::1;;::::0;;;1758:16:::1;:52:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;3636:99:18;;;;3686:5;3670:21;;-1:-1:-1;;3670:21:18;;;3710:14;;-1:-1:-1;19278:36:174;;3710:14:18;;19266:2:174;19251:18;3710:14:18;;;;;;;3636:99;3258:483;1642:175:118;;:::o;10804:647::-;10951:34;;;10943:48;;;;-1:-1:-1;;;10943:48:118;;;;;;;:::i;:::-;11002:19;11036:6;11031:87;11044:18;;;11031:87;;;11097:7;;11105:1;11097:10;;;;;;;:::i;:::-;;;;;;;11083:24;;11064:3;;;;;:::i;:::-;;;;11031:87;;;;11148:11;11135:9;:24;;11161:50;;;;;;;;;;;;;-1:-1:-1;;;11161:50:118;;;11127:85;;;;;-1:-1:-1;;;11127:85:118;;;;;;;;:::i;:::-;;11222:4;;;;;;;;;-1:-1:-1;;;;;11222:4:118;-1:-1:-1;;;;;11222:12:118;;11242:11;11222:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11266:17;:15;:17::i;:::-;-1:-1:-1;;;;;11266:28:118;;11295:9;;11306:7;;11266:48;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11378:11;11366:9;:23;11362:82;;;11391:53;11408:10;11420:23;11432:11;11420:9;:23;:::i;14187:471::-;14367:6;14354:9;:19;;14375:48;;;;;;;;;;;;;-1:-1:-1;;;14375:48:118;;;14346:78;;;;;-1:-1:-1;;;14346:78:118;;;;;;;;:::i;:::-;;14434:4;;;;;;;;;-1:-1:-1;;;;;14434:4:118;-1:-1:-1;;;;;14434:12:118;;14454:6;14434:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14473:17;:15;:17::i;:::-;:58;;-1:-1:-1;;;14473:58:118;;-1:-1:-1;;;;;20136:15:174;;;14473:58:118;;;20118:34:174;20168:18;;;20161:34;;;20211:18;;;20204:34;;;20274:15;;;20254:18;;;20247:43;14473:21:118;;;;;;;20052:19:174;;14473:58:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14595:6;14583:9;:18;14579:72;;;14603:48;14620:10;14632:18;14644:6;14632:9;:18;:::i;14603:48::-;14187:471;;;;:::o;4680:771::-;4806:23;4832:17;:15;:17::i;:::-;4883:32;;-1:-1:-1;;;4883:32:118;;;;;12931:25:174;;;4806:43:118;;-1:-1:-1;4859:13:118;;-1:-1:-1;;;;;4883:21:118;;;;;12904:18:174;;4883:32:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4883:32:118;;;;;;;;;;;;:::i;:::-;:46;;;4962:27;;-1:-1:-1;;;4962:27:118;;4978:10;4962:27;;;8628:51:174;4883:46:118;;-1:-1:-1;4940:19:118;;-1:-1:-1;;;;;4962:15:118;;;;;8601:18:174;;4962:27:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4940:49;-1:-1:-1;5026:6:118;5126:27;;;5122:88;;-1:-1:-1;5188:11:118;5122:88;5219:63;;-1:-1:-1;;;5219:63:118;;5238:10;5219:63;;;24590:34:174;5258:4:118;24640:18:174;;;24633:43;24692:18;;;24685:34;;;-1:-1:-1;;;;;5219:18:118;;;;;24525::174;;5219:63:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5292:63:118;;-1:-1:-1;;;5292:63:118;;;;;25214:25:174;;;25255:18;;;25248:34;;;5349:4:118;25298:18:174;;;25291:60;-1:-1:-1;;;;;5292:19:118;;;;;25187:18:174;;5292:63:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5365:4:118;;:31;;-1:-1:-1;;;5365:31:118;;;;;12931:25:174;;;-1:-1:-1;;;;;5365:4:118;;;;-1:-1:-1;5365:13:118;;-1:-1:-1;12904:18:174;;5365:31:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5406:38;5423:2;5427:16;5406;:38::i;2792:268::-;2938:4;;;;;;;;;-1:-1:-1;;;;;2938:4:118;-1:-1:-1;;;;;2938:12:118;;2958:9;2938:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2980:17;:15;:17::i;:::-;:73;;-1:-1:-1;;;2980:73:118;;3006:9;2980:73;;;25591:25:174;25632:18;;;25625:34;;;-1:-1:-1;;;;;25695:32:174;;;25675:18;;;25668:60;25776:6;25764:19;;25744:18;;;25737:47;2980:25:118;;;;;;;25563:19:174;;2980:73:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10090:407;10221:6;10208:9;:19;;10229:50;;;;;;;;;;;;;-1:-1:-1;;;10229:50:118;;;10200:80;;;;;-1:-1:-1;;;10200:80:118;;;;;;;;:::i;:::-;;10290:4;;;;;;;;;-1:-1:-1;;;;;10290:4:118;-1:-1:-1;;;;;10290:12:118;;10310:6;10290:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10329:17;:15;:17::i;:::-;:41;;-1:-1:-1;;;10329:41:118;;;;;25969:25:174;;;26010:18;;;26003:34;;;-1:-1:-1;;;;;10329:23:118;;;;;;;25942:18:174;;10329:41:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10434:6;10422:9;:18;10418:72;;;10442:48;10459:10;10471:18;10483:6;10471:9;:18;:::i;10442:48::-;10090:407;;:::o;16413:184::-;2025:16;;:36;;;-1:-1:-1;;;2025:36:118;;;;929:10:33;;-1:-1:-1;;;;;2025:16:118;;:34;;:36;;;;;;;;;;;;;;:16;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2025:52:118;;2079:37;;;;;;;;;;;;;-1:-1:-1;;;2079:37:118;;;2017:100;;;;;-1:-1:-1;;;2017:100:118;;;;;;;;:::i;:::-;-1:-1:-1;16556:34:118::1;::::0;-1:-1:-1;;;16556:34:118;;-1:-1:-1;;;;;26496:32:174;;;16556:34:118::1;::::0;::::1;26478:51:174::0;26545:18;;;26538:34;;;16556:22:118;::::1;::::0;::::1;::::0;26451:18:174;;16556:34:118::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12878:1000::-:0;13059:20;;13131:34;;;13123:48;;;;-1:-1:-1;;;13123:48:118;;;;;;;:::i;:::-;13189:36;;;13181:50;;;;-1:-1:-1;;;13181:50:118;;;;;;;:::i;:::-;13247:6;13242:263;13259:20;;;13242:263;;;13320:23;:21;:23::i;:::-;-1:-1:-1;;;;;13320:39:118;;13360:9;;13370:1;13360:12;;;;;;;:::i;:::-;;;;;;;13320:53;;;;;;;;;;;;;12931:25:174;;12919:2;12904:18;;12785:177;13320:53:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13300:73;-1:-1:-1;13300:73:118;;-1:-1:-1;13391:7:118;;-1:-1:-1;13391:7:118;;-1:-1:-1;13399:1:118;13391:10;;;;;;;:::i;:::-;;;;;;;:25;13387:108;;;13468:12;13455:7;;13463:1;13455:10;;;;;;;:::i;:::-;;;;;;;:25;;;;:::i;:::-;13436:44;;;;:::i;:::-;;;13387:108;13281:3;;;;:::i;:::-;;;;13242:263;;;;13535:15;13522:9;:28;;13552:50;;;;;;;;;;;;;-1:-1:-1;;;13552:50:118;;;13514:89;;;;;-1:-1:-1;;;13514:89:118;;;;;;;;:::i;:::-;;13622:4;;;;;;;;;-1:-1:-1;;;;;13622:4:118;-1:-1:-1;;;;;13622:12:118;;13642:15;13622:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13670:17;:15;:17::i;:::-;-1:-1:-1;;;;;13670:32:118;;13703:9;;13714:7;;13723:9;;13670:63;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13797:15;13785:9;:27;13781:90;;;13814:57;13831:10;13843:27;13855:15;13843:9;:27;:::i;13814:57::-;13049:829;;12878:1000;;;;;;:::o;2227:153::-;1869:16;;:34;;;-1:-1:-1;;;1869:34:118;;;;929:10:33;;-1:-1:-1;;;;;1869:16:118;;:32;;:34;;;;;;;;;;;;;;:16;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1869:50:118;;1921:33;;;;;;;;;;;;;-1:-1:-1;;;1921:33:118;;;1861:94;;;;;-1:-1:-1;;;1861:94:118;;;;;;;;:::i;:::-;-1:-1:-1;2301:4:118::1;::::0;2314:16:::1;::::0;:39:::1;::::0;;-1:-1:-1;;;2314:39:118;;;;-1:-1:-1;;;;;2301:4:118;;::::1;::::0;:12:::1;::::0;2314:16:::1;::::0;:37:::1;::::0;:39:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:16;:39:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2301:72;::::0;-1:-1:-1;;;;;;2301:72:118::1;::::0;;;;;;-1:-1:-1;;;;;26496:32:174;;;2301:72:118::1;::::0;::::1;26478:51:174::0;-1:-1:-1;;26545:18:174;;;26538:34;26451:18;;2301:72:118::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2227:153::o:0;5728:1435::-;5903:35;;;5895:49;;;;-1:-1:-1;;;5895:49:118;;;;;;;:::i;:::-;5962:28;;;5954:42;;;;-1:-1:-1;;;5954:42:118;;;;;;;:::i;:::-;6015:13;;;;6147:7;6133:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6133:29:118;-1:-1:-1;6109:53:118;-1:-1:-1;6172:33:118;6222:7;6208:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6208:29:118;;6172:65;;6256:23;6282:17;:15;:17::i;:::-;6256:43;;6315:6;6310:611;6327:18;;;6310:611;;;6382:10;-1:-1:-1;;;;;6382:21:118;;6404:10;;6415:1;6404:13;;;;;;;:::i;:::-;;;;;;;6382:36;;;;;;;;;;;;;12931:25:174;;12919:2;12904:18;;12785:177;6382:36:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6382:36:118;;;;;;;;;;;;:::i;:::-;:50;;;6461:27;;-1:-1:-1;;;6461:27:118;;6477:10;6461:27;;;8628:51:174;6382:50:118;;-1:-1:-1;;;;;;6461:15:118;;;;;8601:18:174;;6461:27:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6447:41;;6524:7;;6532:1;6524:10;;;;;;;:::i;:::-;;;;;;;6502:16;6519:1;6502:19;;;;;;;;:::i;:::-;;;;;;:32;;;;;-1:-1:-1;;6636:7:118;;6644:1;6636:10;;;;;;;:::i;:::-;;;;;;;:31;6632:103;;6709:11;6687:16;6704:1;6687:19;;;;;;;;:::i;:::-;;;;;;:33;;;;;6632:103;6773:16;6790:1;6773:19;;;;;;;;:::i;:::-;;;;;;;6748:44;;;;;:::i;:::-;;;6807:5;-1:-1:-1;;;;;6807:18:118;;6826:10;6846:4;6853:16;6870:1;6853:19;;;;;;;;:::i;:::-;;;;;;;;;;;6807:66;;-1:-1:-1;;;;;;6807:66:118;;;;;;;-1:-1:-1;;;;;24608:15:174;;;6807:66:118;;;24590:34:174;24660:15;;;;24640:18;;;24633:43;24692:18;;;24685:34;24525:18;;6807:66:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6905:4;6887;6892:1;6887:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6887:23:118;;;:7;;;;;;;;;;;:23;6347:3;;;;:::i;:::-;;;;6310:611;;;-1:-1:-1;6931:60:118;;-1:-1:-1;;;6931:60:118;;-1:-1:-1;;;;;6931:24:118;;;;;:60;;6956:16;;6974:10;;;;6986:4;;6931:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7001:4:118;;:36;;-1:-1:-1;;;7001:36:118;;;;;12931:25:174;;;-1:-1:-1;;;;;7001:4:118;;;;-1:-1:-1;7001:13:118;;-1:-1:-1;12904:18:174;;7001:36:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7053:6;7048:108;7065:14;;;7048:108;;;7100:45;7117:3;;7121:1;7117:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7125:16;7142:1;7125:19;;;;;;;;:::i;:::-;;;;;;;7100:16;:45::i;:::-;7081:3;;;;:::i;:::-;;;;7048:108;;;;5885:1278;;;;;;5728:1435;;;;;;:::o;9070:724::-;9369:17;:15;:17::i;:::-;-1:-1:-1;;;;;9369:29:118;;9412:7;;9433:8;;9455:11;;9480:10;;9504:8;9526:10;9550:12;9369:203;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9583:19;9618:6;9613:88;9626:18;;;9613:88;;;9680:7;;9688:1;9680:10;;;;;;;:::i;:::-;;;;;;;9665:25;;;;;:::i;:::-;;-1:-1:-1;9646:3:118;;;;:::i;:::-;;;;9613:88;;;-1:-1:-1;9710:4:118;;:26;;-1:-1:-1;;;9710:26:118;;;;;12931:25:174;;;-1:-1:-1;;;;;9710:4:118;;;;:13;;12904:18:174;;9710:26:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9746:41;9763:10;9775:11;9746:16;:41::i;:::-;9353:441;9070:724;;;;;;;;;;;:::o;16900:133::-;2025:16;;:36;;;-1:-1:-1;;;2025:36:118;;;;929:10:33;;-1:-1:-1;;;;;2025:16:118;;:34;;:36;;;;;;;;;;;;;;:16;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2025:52:118;;2079:37;;;;;;;;;;;;;-1:-1:-1;;;2079:37:118;;;2017:100;;;;;-1:-1:-1;;;2017:100:118;;;;;;;;:::i;:::-;;16998:28:::1;17015:2;17019:6;16998:16;:28::i;17425:160::-:0;17537:16;;:39;;;-1:-1:-1;;;17537:39:118;;;;17481:18;;-1:-1:-1;;;;;17537:16:118;;:37;;:39;;;;;;;;;;;;;;:16;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17511:66;;17425:160;:::o;17244:136::-;17338:16;;:33;;;-1:-1:-1;;;17338:33:118;;;;17294:12;;-1:-1:-1;;;;;17338:16:118;;:31;;:33;;;;;;;;;;;;;;:16;:33;;;;;;;;;;;;;;15940:190;16053:12;;;16013;16053;;;;;;;;;-1:-1:-1;;;;;16031:7:118;;;16046:5;;16031:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16012:54;;;16084:7;16093:29;;;;;;;;;;;;;-1:-1:-1;;;16093:29:118;;;16076:47;;;;;-1:-1:-1;;;16076:47:118;;;;;;;;:::i;14:250:174:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:174;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:174;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:174:o;670:316::-;747:6;755;763;816:2;804:9;795:7;791:23;787:32;784:52;;;832:1;829;822:12;784:52;-1:-1:-1;;855:23:174;;;925:2;910:18;;897:32;;-1:-1:-1;976:2:174;961:18;;;948:32;;670:316;-1:-1:-1;670:316:174:o;991:367::-;1054:8;1064:6;1118:3;1111:4;1103:6;1099:17;1095:27;1085:55;;1136:1;1133;1126:12;1085:55;-1:-1:-1;1159:20:174;;1202:18;1191:30;;1188:50;;;1234:1;1231;1224:12;1188:50;1271:4;1263:6;1259:17;1247:29;;1331:3;1324:4;1314:6;1311:1;1307:14;1299:6;1295:27;1291:38;1288:47;1285:67;;;1348:1;1345;1338:12;1285:67;991:367;;;;;:::o;1363:1403::-;1556:6;1564;1572;1580;1588;1596;1604;1612;1665:3;1653:9;1644:7;1640:23;1636:33;1633:53;;;1682:1;1679;1672:12;1633:53;1722:9;1709:23;1751:18;1792:2;1784:6;1781:14;1778:34;;;1808:1;1805;1798:12;1778:34;1847:70;1909:7;1900:6;1889:9;1885:22;1847:70;:::i;:::-;1936:8;;-1:-1:-1;1821:96:174;-1:-1:-1;2024:2:174;2009:18;;1996:32;;-1:-1:-1;2040:16:174;;;2037:36;;;2069:1;2066;2059:12;2037:36;2108:72;2172:7;2161:8;2150:9;2146:24;2108:72;:::i;:::-;2199:8;;-1:-1:-1;2082:98:174;-1:-1:-1;2287:2:174;2272:18;;2259:32;;-1:-1:-1;2303:16:174;;;2300:36;;;2332:1;2329;2322:12;2300:36;2371:72;2435:7;2424:8;2413:9;2409:24;2371:72;:::i;:::-;2462:8;;-1:-1:-1;2345:98:174;-1:-1:-1;2550:2:174;2535:18;;2522:32;;-1:-1:-1;2566:16:174;;;2563:36;;;2595:1;2592;2585:12;2563:36;;2634:72;2698:7;2687:8;2676:9;2672:24;2634:72;:::i;:::-;1363:1403;;;;-1:-1:-1;1363:1403:174;;-1:-1:-1;1363:1403:174;;;;;;2725:8;-1:-1:-1;;;1363:1403:174:o;4180:131::-;-1:-1:-1;;;;;4255:31:174;;4245:42;;4235:70;;4301:1;4298;4291:12;4316:134;4384:20;;4413:31;4384:20;4413:31;:::i;:::-;4316:134;;;:::o;4455:159::-;4522:20;;4582:6;4571:18;;4561:29;;4551:57;;4604:1;4601;4594:12;4619:663;4731:6;4739;4747;4755;4763;4771;4779;4832:3;4820:9;4811:7;4807:23;4803:33;4800:53;;;4849:1;4846;4839:12;4800:53;4885:9;4872:23;4862:33;;4942:2;4931:9;4927:18;4914:32;4904:42;;4993:2;4982:9;4978:18;4965:32;4955:42;;5044:2;5033:9;5029:18;5016:32;5006:42;;5095:3;5084:9;5080:19;5067:33;5057:43;;5150:3;5139:9;5135:19;5122:33;5164:31;5189:5;5164:31;:::i;:::-;5214:5;-1:-1:-1;5238:38:174;5271:3;5256:19;;5238:38;:::i;:::-;5228:48;;4619:663;;;;;;;;;;:::o;5287:388::-;5355:6;5363;5416:2;5404:9;5395:7;5391:23;5387:32;5384:52;;;5432:1;5429;5422:12;5384:52;5471:9;5458:23;5490:31;5515:5;5490:31;:::i;:::-;5540:5;-1:-1:-1;5597:2:174;5582:18;;5569:32;5610:33;5569:32;5610:33;:::i;:::-;5662:7;5652:17;;;5287:388;;;;;:::o;5680:773::-;5802:6;5810;5818;5826;5879:2;5867:9;5858:7;5854:23;5850:32;5847:52;;;5895:1;5892;5885:12;5847:52;5935:9;5922:23;5964:18;6005:2;5997:6;5994:14;5991:34;;;6021:1;6018;6011:12;5991:34;6060:70;6122:7;6113:6;6102:9;6098:22;6060:70;:::i;:::-;6149:8;;-1:-1:-1;6034:96:174;-1:-1:-1;6237:2:174;6222:18;;6209:32;;-1:-1:-1;6253:16:174;;;6250:36;;;6282:1;6279;6272:12;6250:36;;6321:72;6385:7;6374:8;6363:9;6359:24;6321:72;:::i;:::-;5680:773;;;;-1:-1:-1;6412:8:174;-1:-1:-1;;;;5680:773:174:o;6458:525::-;6544:6;6552;6560;6568;6621:3;6609:9;6600:7;6596:23;6592:33;6589:53;;;6638:1;6635;6628:12;6589:53;6677:9;6664:23;6696:31;6721:5;6696:31;:::i;:::-;6746:5;-1:-1:-1;6798:2:174;6783:18;;6770:32;;-1:-1:-1;6849:2:174;6834:18;;6821:32;;-1:-1:-1;6905:2:174;6890:18;;6877:32;6918:33;6877:32;6918:33;:::i;:::-;6458:525;;;;-1:-1:-1;6458:525:174;;-1:-1:-1;;6458:525:174:o;6988:383::-;7065:6;7073;7081;7134:2;7122:9;7113:7;7109:23;7105:32;7102:52;;;7150:1;7147;7140:12;7102:52;7186:9;7173:23;7163:33;;7243:2;7232:9;7228:18;7215:32;7205:42;;7297:2;7286:9;7282:18;7269:32;7310:31;7335:5;7310:31;:::i;:::-;7360:5;7350:15;;;6988:383;;;;;:::o;7376:387::-;7452:6;7460;7468;7521:2;7509:9;7500:7;7496:23;7492:32;7489:52;;;7537:1;7534;7527:12;7489:52;7573:9;7560:23;7550:33;;7633:2;7622:9;7618:18;7605:32;7646:31;7671:5;7646:31;:::i;:::-;7696:5;-1:-1:-1;7720:37:174;7753:2;7738:18;;7720:37;:::i;:::-;7710:47;;7376:387;;;;;:::o;7768:248::-;7836:6;7844;7897:2;7885:9;7876:7;7872:23;7868:32;7865:52;;;7913:1;7910;7903:12;7865:52;-1:-1:-1;;7936:23:174;;;8006:2;7991:18;;;7978:32;;-1:-1:-1;7768:248:174:o;8021:456::-;8098:6;8106;8114;8167:2;8155:9;8146:7;8142:23;8138:32;8135:52;;;8183:1;8180;8173:12;8135:52;8222:9;8209:23;8241:31;8266:5;8241:31;:::i;:::-;8291:5;-1:-1:-1;8348:2:174;8333:18;;8320:32;8361:33;8320:32;8361:33;:::i;:::-;8021:456;;8413:7;;-1:-1:-1;;;8467:2:174;8452:18;;;;8439:32;;8021:456::o;8690:1088::-;8848:6;8856;8864;8872;8880;8888;8941:2;8929:9;8920:7;8916:23;8912:32;8909:52;;;8957:1;8954;8947:12;8909:52;8997:9;8984:23;9026:18;9067:2;9059:6;9056:14;9053:34;;;9083:1;9080;9073:12;9053:34;9122:70;9184:7;9175:6;9164:9;9160:22;9122:70;:::i;:::-;9211:8;;-1:-1:-1;9096:96:174;-1:-1:-1;9299:2:174;9284:18;;9271:32;;-1:-1:-1;9315:16:174;;;9312:36;;;9344:1;9341;9334:12;9312:36;9383:72;9447:7;9436:8;9425:9;9421:24;9383:72;:::i;:::-;9474:8;;-1:-1:-1;9357:98:174;-1:-1:-1;9562:2:174;9547:18;;9534:32;;-1:-1:-1;9578:16:174;;;9575:36;;;9607:1;9604;9597:12;9575:36;;9646:72;9710:7;9699:8;9688:9;9684:24;9646:72;:::i;:::-;8690:1088;;;;-1:-1:-1;8690:1088:174;;-1:-1:-1;8690:1088:174;;9737:8;;8690:1088;-1:-1:-1;;;8690:1088:174:o;10876:1584::-;11096:6;11104;11112;11120;11128;11136;11144;11152;11160;11168;11176:7;11230:3;11218:9;11209:7;11205:23;11201:33;11198:53;;;11247:1;11244;11237:12;11198:53;11270:18;11328:2;11316:9;11303:23;11300:31;11297:51;;;11344:1;11341;11334:12;11297:51;11383:87;11462:7;11449:9;11436:23;11425:9;11421:39;11383:87;:::i;:::-;11489:8;;-1:-1:-1;11516:8:174;-1:-1:-1;11567:2:174;11552:18;;11539:32;11536:40;-1:-1:-1;11533:60:174;;;11589:1;11586;11579:12;11533:60;11628:96;11716:7;11709:2;11698:9;11694:18;11681:32;11670:9;11666:48;11628:96;:::i;:::-;11743:8;;-1:-1:-1;11770:8:174;-1:-1:-1;11821:2:174;11806:18;;11793:32;11790:40;-1:-1:-1;11787:60:174;;;11843:1;11840;11833:12;11787:60;11882:96;11970:7;11963:2;11952:9;11948:18;11935:32;11924:9;11920:48;11882:96;:::i;:::-;11997:8;;-1:-1:-1;12024:8:174;-1:-1:-1;12075:2:174;12060:18;;12047:32;12044:40;-1:-1:-1;12041:60:174;;;12097:1;12094;12087:12;12041:60;;12136:96;12224:7;12217:2;12206:9;12202:18;12189:32;12178:9;12174:48;12136:96;:::i;:::-;12251:8;;-1:-1:-1;12278:8:174;-1:-1:-1;12333:3:174;12318:19;;12305:33;;-1:-1:-1;12357:39:174;12391:3;12376:19;;12357:39;:::i;:::-;12347:49;;12416:38;12449:3;12438:9;12434:19;12416:38;:::i;:::-;12405:49;;10876:1584;;;;;;;;;;;;;;:::o;12465:315::-;12533:6;12541;12594:2;12582:9;12573:7;12569:23;12565:32;12562:52;;;12610:1;12607;12600:12;12562:52;12649:9;12636:23;12668:31;12693:5;12668:31;:::i;:::-;12718:5;12770:2;12755:18;;;;12742:32;;-1:-1:-1;;;12465:315:174:o;12967:138::-;13046:13;;13068:31;13046:13;13068:31;:::i;13110:508::-;13207:6;13215;13223;13231;13284:3;13272:9;13263:7;13259:23;13255:33;13252:53;;;13301:1;13298;13291:12;13252:53;13333:9;13327:16;13352:31;13377:5;13352:31;:::i;:::-;13447:2;13432:18;;13426:25;13496:2;13481:18;;13475:25;13402:5;;-1:-1:-1;13426:25:174;-1:-1:-1;13509:33:174;13475:25;13509:33;:::i;:::-;13608:2;13593:18;;;;13587:25;13110:508;;;;-1:-1:-1;;;13110:508:174:o;13623:127::-;13684:10;13679:3;13675:20;13672:1;13665:31;13715:4;13712:1;13705:15;13739:4;13736:1;13729:15;13755:128;13822:9;;;13843:11;;;13840:37;;;13857:18;;:::i;:::-;13755:128;;;;:::o;14212:324::-;14414:2;14396:21;;;14453:1;14433:18;;;14426:29;-1:-1:-1;;;14486:2:174;14471:18;;14464:31;14527:2;14512:18;;14212:324::o;14541:127::-;14602:10;14597:3;14593:20;14590:1;14583:31;14633:4;14630:1;14623:15;14657:4;14654:1;14647:15;14673:125;14738:9;;;14759:10;;;14756:36;;;14772:18;;:::i;14803:135::-;14842:3;14863:17;;;14860:43;;14883:18;;:::i;:::-;-1:-1:-1;14930:1:174;14919:13;;14803:135::o;14943:311::-;15031:19;;;15013:3;-1:-1:-1;;;;;15062:31:174;;15059:51;;;15106:1;15103;15096:12;15059:51;15142:6;15139:1;15135:14;15194:8;15187:5;15180:4;15175:3;15171:14;15158:45;15223:18;;;;15243:4;15219:29;;14943:311;-1:-1:-1;;;14943:311:174:o;15259:522::-;15359:6;15354:3;15347:19;15329:3;15385:4;15414:2;15409:3;15405:12;15398:19;;15440:5;15463:1;15473:283;15487:6;15484:1;15481:13;15473:283;;;15564:6;15551:20;15584:33;15609:7;15584:33;:::i;:::-;-1:-1:-1;;;;;15642:33:174;15630:46;;15696:12;;;;15731:15;;;;15672:1;15502:9;15473:283;;;-1:-1:-1;15772:3:174;;15259:522;-1:-1:-1;;;;;15259:522:174:o;15786:1283::-;16237:3;16226:9;16219:22;16200:4;16264:74;16333:3;16322:9;16318:19;16310:6;16302;16264:74;:::i;:::-;16357:2;16407:9;16399:6;16395:22;16390:2;16379:9;16375:18;16368:50;16441:61;16495:6;16487;16479;16441:61;:::i;:::-;16427:75;;16550:9;16542:6;16538:22;16533:2;16522:9;16518:18;16511:50;16584:61;16638:6;16630;16622;16584:61;:::i;:::-;16681:22;;;16676:2;16661:18;;16654:50;16739:22;;;16815:6;;-1:-1:-1;16777:15:174;;16839:1;16849:194;16863:6;16860:1;16857:13;16849:194;;;16955:6;16928:25;16946:6;16928:25;:::i;:::-;16924:38;16912:51;;17018:15;;;;16983:12;;;;16885:1;16878:9;16849:194;;;-1:-1:-1;17060:3:174;15786:1283;-1:-1:-1;;;;;;;;;;;;15786:1283:174:o;17074:983::-;17527:3;17516:9;17509:22;17490:4;17554:74;17623:3;17612:9;17608:19;17600:6;17592;17554:74;:::i;:::-;17676:9;17668:6;17664:22;17659:2;17648:9;17644:18;17637:50;17710:61;17764:6;17756;17748;17710:61;:::i;:::-;17696:75;;17819:9;17811:6;17807:22;17802:2;17791:9;17787:18;17780:50;17853:61;17907:6;17899;17891;17853:61;:::i;:::-;17839:75;;17962:9;17954:6;17950:22;17945:2;17934:9;17930:18;17923:50;17990:61;18044:6;18036;18028;17990:61;:::i;:::-;17982:69;17074:983;-1:-1:-1;;;;;;;;;;;17074:983:174:o;19325:519::-;19602:2;19591:9;19584:21;19565:4;19628:73;19697:2;19686:9;19682:18;19674:6;19666;19628:73;:::i;:::-;19749:9;19741:6;19737:22;19732:2;19721:9;19717:18;19710:50;19777:61;19831:6;19823;19815;19777:61;:::i;:::-;19769:69;19325:519;-1:-1:-1;;;;;;;19325:519:174:o;20301:127::-;20362:10;20357:3;20353:20;20350:1;20343:31;20393:4;20390:1;20383:15;20417:4;20414:1;20407:15;20433:250;20500:2;20494:9;20542:6;20530:19;;20579:18;20564:34;;20600:22;;;20561:62;20558:88;;;20626:18;;:::i;:::-;20662:2;20655:22;20433:250;:::o;20688:426::-;20769:5;20817:4;20805:9;20800:3;20796:19;20792:30;20789:50;;;20835:1;20832;20825:12;20789:50;20868:2;20862:9;20910:4;20902:6;20898:17;20981:6;20969:10;20966:22;20945:18;20933:10;20930:34;20927:62;20924:88;;;20992:18;;:::i;:::-;21028:2;21021:22;21091:16;;21076:32;;-1:-1:-1;21061:6:174;20688:426;-1:-1:-1;20688:426:174:o;21119:699::-;21173:5;21226:3;21219:4;21211:6;21207:17;21203:27;21193:55;;21244:1;21241;21234:12;21193:55;21273:6;21267:13;21299:18;21336:2;21332;21329:10;21326:36;;;21342:18;;:::i;:::-;21417:2;21411:9;21385:2;21471:13;;-1:-1:-1;;21467:22:174;;;21491:2;21463:31;21459:40;21447:53;;;21515:18;;;21535:22;;;21512:46;21509:72;;;21561:18;;:::i;:::-;21601:10;21597:2;21590:22;21636:2;21628:6;21621:18;21682:3;21675:4;21670:2;21662:6;21658:15;21654:26;21651:35;21648:55;;;21699:1;21696;21689:12;21648:55;21712:76;21785:2;21778:4;21770:6;21766:17;21759:4;21751:6;21747:17;21712:76;:::i;:::-;21806:6;21119:699;-1:-1:-1;;;;;;21119:699:174:o;21823:192::-;21902:13;;21955:34;21944:46;;21934:57;;21924:85;;22005:1;22002;21995:12;22020:169;22098:13;;22151:12;22140:24;;22130:35;;22120:63;;22179:1;22176;22169:12;22194:1962;22290:6;22343:2;22331:9;22322:7;22318:23;22314:32;22311:52;;;22359:1;22356;22349:12;22311:52;22392:9;22386:16;22421:18;22462:2;22454:6;22451:14;22448:34;;;22478:1;22475;22468:12;22448:34;22501:22;;;;22557:6;22539:16;;;22535:29;22532:49;;;22577:1;22574;22567:12;22532:49;22603:17;;:::i;:::-;22643:65;22700:7;22696:2;22643:65;:::i;:::-;22636:5;22629:80;22741:42;22779:2;22775;22771:11;22741:42;:::i;:::-;22736:2;22729:5;22725:14;22718:66;22816:42;22854:2;22850;22846:11;22816:42;:::i;:::-;22811:2;22804:5;22800:14;22793:66;22891:42;22929:2;22925;22921:11;22891:42;:::i;:::-;22886:2;22879:5;22875:14;22868:66;22967:43;23005:3;23001:2;22997:12;22967:43;:::i;:::-;22961:3;22954:5;22950:15;22943:68;23044:43;23082:3;23078:2;23074:12;23044:43;:::i;:::-;23038:3;23031:5;23027:15;23020:68;23121:43;23159:3;23155:2;23151:12;23121:43;:::i;:::-;23115:3;23108:5;23104:15;23097:68;23204:3;23200:2;23196:12;23190:19;23234:2;23224:8;23221:16;23218:36;;;23250:1;23247;23240:12;23218:36;23287:56;23335:7;23324:8;23320:2;23316:17;23287:56;:::i;:::-;23281:3;23270:15;;23263:81;-1:-1:-1;23363:3:174;23404:11;;;23398:18;23382:14;;;23375:42;23436:3;23477:11;;;23471:18;23455:14;;;23448:42;23509:3;23550:11;;;23544:18;23528:14;;;23521:42;23582:3;23623:11;;;23617:18;23601:14;;;23594:42;23655:3;;-1:-1:-1;23690:42:174;23720:11;;;23690:42;:::i;:::-;23685:2;23678:5;23674:14;23667:66;23752:3;23742:13;;23787:42;23825:2;23821;23817:11;23787:42;:::i;:::-;23782:2;23775:5;23771:14;23764:66;23849:3;23839:13;;23884:42;23922:2;23918;23914:11;23884:42;:::i;:::-;23879:2;23872:5;23868:14;23861:66;23947:3;23936:14;;23983:43;24021:3;24017:2;24013:12;23983:43;:::i;:::-;23977:3;23970:5;23966:15;23959:68;24047:3;24036:14;;24083:42;24120:3;24116:2;24112:12;24083:42;:::i;:::-;24066:15;;;24059:67;;;;24070:5;22194:1962;-1:-1:-1;;;;22194:1962:174:o;24161:184::-;24231:6;24284:2;24272:9;24263:7;24259:23;24255:32;24252:52;;;24300:1;24297;24290:12;24252:52;-1:-1:-1;24323:16:174;;24161:184;-1:-1:-1;24161:184:174:o;24730:277::-;24797:6;24850:2;24838:9;24829:7;24825:23;24821:32;24818:52;;;24866:1;24863;24856:12;24818:52;24898:9;24892:16;24951:5;24944:13;24937:21;24930:5;24927:32;24917:60;;24973:1;24970;24963:12;24917:60;24996:5;24730:277;-1:-1:-1;;;24730:277:174:o;26048:251::-;26118:6;26171:2;26159:9;26150:7;26146:23;26142:32;26139:52;;;26187:1;26184;26177:12;26139:52;26219:9;26213:16;26238:31;26263:5;26238:31;:::i;26583:750::-;26948:2;26937:9;26930:21;26911:4;26974:73;27043:2;27032:9;27028:18;27020:6;27012;26974:73;:::i;:::-;27095:9;27087:6;27083:22;27078:2;27067:9;27063:18;27056:50;27129:61;27183:6;27175;27167;27129:61;:::i;:::-;27115:75;;27238:9;27230:6;27226:22;27221:2;27210:9;27206:18;27199:50;27266:61;27320:6;27312;27304;27266:61;:::i;:::-;27258:69;26583:750;-1:-1:-1;;;;;;;;;26583:750:174:o;27338:1416::-;27694:2;27706:21;;;27776:13;;27679:18;;;27798:22;;;27646:4;;27874;;27851:3;27836:19;;;27901:15;;;27646:4;27944:169;27958:6;27955:1;27952:13;27944:169;;;28019:13;;28007:26;;28053:12;;;;28088:15;;;;27980:1;27973:9;27944:169;;;27948:3;;;28158:9;28153:3;28149:19;28144:2;28133:9;28129:18;28122:47;28192:58;28246:3;28238:6;28230;28192:58;:::i;:::-;28286:22;;;28281:2;28266:18;;28259:50;28362:13;;28384:24;;;28466:15;;;;-1:-1:-1;28426:15:174;;;;28501:1;28511:215;28527:8;28522:3;28519:17;28511:215;;;28600:15;;-1:-1:-1;;;;;28596:41:174;28582:56;;28699:17;;;;28660:14;;;;28634:1;28546:11;28511:215;;;-1:-1:-1;28743:5:174;;27338:1416;-1:-1:-1;;;;;;;;;27338:1416:174:o;28759:247::-;28818:6;28871:2;28859:9;28850:7;28846:23;28842:32;28839:52;;;28887:1;28884;28877:12;28839:52;28926:9;28913:23;28945:31;28970:5;28945:31;:::i;29011:1238::-;29547:3;29536:9;29529:22;29510:4;29574:74;29643:3;29632:9;29628:19;29620:6;29612;29574:74;:::i;:::-;29696:9;29688:6;29684:22;29679:2;29668:9;29664:18;29657:50;29730:61;29784:6;29776;29768;29730:61;:::i;:::-;29716:75;;29839:9;29831:6;29827:22;29822:2;29811:9;29807:18;29800:50;29873:61;29927:6;29919;29911;29873:61;:::i;:::-;29859:75;;29982:9;29974:6;29970:22;29965:2;29954:9;29950:18;29943:50;30010:61;30064:6;30056;30048;30010:61;:::i;:::-;30102:3;30087:19;;30080:35;;;;-1:-1:-1;;;;;;;30152:32:174;;;;30172:3;30131:19;;30124:61;30235:6;30222:20;30216:3;30201:19;;;30194:49;30002:69;29011:1238;-1:-1:-1;;;;;;;;29011:1238:174:o;30254:287::-;30383:3;30421:6;30415:13;30437:66;30496:6;30491:3;30484:4;30476:6;30472:17;30437:66;:::i;:::-;30519:16;;;;;30254:287;-1:-1:-1;;30254:287:174:o",
"linkReferences": {}
},
"methodIdentifiers": {
"authorizeExecutionDelegate()": "caaabc60",
"batchBidETH(address[],uint256[],uint256[],address[])": "31a9b157",
"batchBorrowETH(uint256[],uint256[],uint256[],uint256[],uint256,address,uint16)": "d0fee568",
"batchDepositETH(uint256[],uint256[],address[],uint16[])": "1976c7ba",
"batchRefinanceETH(uint256[],uint256[],uint256[])": "bba6bc6d",
"batchRepayETH(uint256[],uint256[])": "5a953999",
"batchWithdrawETH(uint256[],uint256[],address[])": "ced46f82",
"bidETH(address,uint256,uint256,address)": "664054ce",
"borrowETH(uint256,uint256,uint256,uint256,uint256,address,uint16)": "35f9a701",
"depositETH(uint256,address,uint16)": "76e13af1",
"emergencyEtherTransfer(address,uint256)": "eed88b8d",
"emergencyTokenTransfer(address,address,uint256)": "a3d5b255",
"getWETHAddress()": "affa8817",
"initialize(address,address)": "485cc955",
"refinanceETH(uint256,uint256,uint256)": "0572c30f",
"repayETH(uint256,uint256)": "7f185c1e",
"withdrawETH(uint256,uint256,address)": "6a41a61b"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"authorizeExecutionDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"assets\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"borrowIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"onBehalfOfs\",\"type\":\"address[]\"}],\"name\":\"batchBidETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenValues\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"referralCode\",\"type\":\"uint16\"}],\"name\":\"batchBorrowETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"onBehalfOfs\",\"type\":\"address[]\"},{\"internalType\":\"uint16[]\",\"name\":\"referralCodes\",\"type\":\"uint16[]\"}],\"name\":\"batchDepositETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"borrowIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"durations\",\"type\":\"uint256[]\"}],\"name\":\"batchRefinanceETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"borrowIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"batchRepayETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address[]\",\"name\":\"tos\",\"type\":\"address[]\"}],\"name\":\"batchWithdrawETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"borrowId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"}],\"name\":\"bidETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"referralCode\",\"type\":\"uint16\"}],\"name\":\"borrowETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalfOf\",\"type\":\"address\"},{\"internalType\":\"uint16\",\"name\":\"referralCode\",\"type\":\"uint16\"}],\"name\":\"depositETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"emergencyEtherTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"emergencyTokenTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWETHAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"weth\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"addressProvider\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"borrowId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"refinanceETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"borrowId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"repayETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdrawETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"authorizeExecutionDelegate()\":{\"details\":\"Authorizes execution delegate to perform WETH transactions*\"},\"batchBidETH(address[],uint256[],uint256[],address[])\":{\"details\":\"batch bid purchases the underlying collatearls of a defaulted borrows.\",\"params\":{\"amounts\":\"the payment amounts\",\"assets\":\"addresses of the asset contracts used for payment\",\"borrowIds\":\"the ids of the defaulted borrows\",\"onBehalfOfs\":\"The addresses to receive the NFTs.\"}},\"batchBorrowETH(uint256[],uint256[],uint256[],uint256[],uint256,address,uint16)\":{\"details\":\"batch borrow WETH, unwraps to ETH and send both the ETH and DebtTokens to msg.sender, via `approveDelegation` and onBehalf argument in `LendingPool.borrow`.\",\"params\":{\"amounts\":\"the amounts of ETH to borrow\",\"duration\":\"The duration of the loans, 0 if open-ended\",\"onBehalfOf\":\"The address to receive the loans.\",\"referralCode\":\"integrators are assigned a referral code and can potentially receive rewards\",\"reserveIds\":\"The ids of the reserves to borrow against. \",\"tokenIds\":\"The tokenIds of the ERC721 / ERC1155 tokens to be deposited. \",\"tokenValues\":\"The numbers of same-value tokens supplied (0 implies ERC721)\"}},\"batchDepositETH(uint256[],uint256[],address[],uint16[])\":{\"details\":\"batch deposits WETH into the reserve, using native ETH. A corresponding amount of the overlying asset (fTokens) are minted.\",\"params\":{\"amounts\":\"the amounts to be deposited\",\"onBehalfOfs\":\"addresses of the users who will receive the fTokens representing the deposit\",\"referralCodes\":\"integrators are assigned a referral code and can potentially receive rewards.*\",\"reserveIds\":\"the ids of the target reserves\"}},\"batchRefinanceETH(uint256[],uint256[],uint256[])\":{\"details\":\"batch refinances borrows on the WETH reserve, for the specified amount (or for the whole amount, if uint256(-1) is specified).\",\"params\":{\"amounts\":\"the borrow amounts of the refinanced loans\",\"borrowIds\":\"the ids of the loans to be refinanced\",\"durations\":\"The durations of the refinanced loans, 0 if open-ended\"}},\"batchRepayETH(uint256[],uint256[])\":{\"details\":\"batch repays a borrow on the WETH reserve, for the specified amount (or for the whole amount, if uint256(-1) is specified).\",\"params\":{\"amounts\":\"the amounts to repay, or uint256(-1) if the user wants to repay everything\",\"borrowIds\":\"the ids of the borrows to repay\"}},\"batchWithdrawETH(uint256[],uint256[],address[])\":{\"details\":\"batch withdraws the WETH _reserves of msg.sender.\",\"params\":{\"amounts\":\"amounts of aWETH to withdraw and receive native ETH\",\"reserveIds\":\"the ids of the target reserves\",\"tos\":\"addresses of the users who will receive native ETH\"}},\"bidETH(address,uint256,uint256,address)\":{\"details\":\"bid purchases the underlying collatearl of a defaulted borrow.\",\"params\":{\"amount\":\"the payment amount\",\"asset\":\"address of the asset contract used for payment\",\"borrowId\":\"the id of the defaulted borrow\",\"onBehalfOf\":\"The address to receive the NFT.\"}},\"borrowETH(uint256,uint256,uint256,uint256,uint256,address,uint16)\":{\"details\":\"borrow WETH, unwraps to ETH and send both the ETH and DebtTokens to msg.sender, via `approveDelegation` and onBehalf argument in `LendingPool.borrow`.\",\"params\":{\"amount\":\"the amount of ETH to borrow\",\"duration\":\"The duration of the loan, 0 if open-ended\",\"onBehalfOf\":\"The address to receive the loan.\",\"referralCode\":\"integrators are assigned a referral code and can potentially receive rewards\",\"reserveId\":\"The id of the reserve to borrow against. \",\"tokenId\":\"The tokenId of the ERC721 / ERC1155 token to be deposited. \",\"tokenValue\":\"The number of same-value tokens supplied (0 implies ERC721)\"}},\"depositETH(uint256,address,uint16)\":{\"details\":\"deposits WETH into the reserve, using native ETH. A corresponding amount of the overlying asset (fTokens) are minted.\",\"params\":{\"onBehalfOf\":\"address of the user who will receive the fTokens representing the deposit\",\"referralCode\":\"integrators are assigned a referral code and can potentially receive rewards.*\",\"reserveId\":\"the id of the target reserve\"}},\"emergencyEtherTransfer(address,uint256)\":{\"details\":\"transfer native Ether from the utility contract, for native Ether recovery in case of stuck Ether due selfdestructs or transfer ether to pre-computated contract address before deployment.\",\"params\":{\"amount\":\"amount to send\",\"to\":\"recipient of the transfer\"}},\"emergencyTokenTransfer(address,address,uint256)\":{\"details\":\"transfer ERC20 from the utility contract, for ERC20 recovery in case of stuck tokens due direct transfers to the contract address.\",\"params\":{\"amount\":\"amount to send\",\"to\":\"recipient of the transfer\",\"token\":\"token to transfer\"}},\"getWETHAddress()\":{\"details\":\"Get WETH address used by WETHGateway\"},\"initialize(address,address)\":{\"details\":\"Function is invoked by the proxy contract when the WETHGateway contract is added to the AddressProvider of the market. Sets the WETH address and the AddressesProvider address. \",\"params\":{\"addressProvider\":\"The address of the AddressProvider*\",\"weth\":\"Address of the Wrapped Ether contract\"}},\"refinanceETH(uint256,uint256,uint256)\":{\"details\":\"refinances a borrow on the WETH reserve, for the specified amount (or for the whole amount, if uint256(-1) is specified).\",\"params\":{\"amount\":\"the borrow amount of the refinanced loan\",\"borrowId\":\"the id of loan to be refinanced\",\"duration\":\"The duration of the refinanced loan, 0 if open-ended\"}},\"repayETH(uint256,uint256)\":{\"details\":\"repays a borrow on the WETH reserve, for the specified amount (or for the whole amount, if uint256(-1) is specified).\",\"params\":{\"amount\":\"the amount to repay, or uint256(-1) if the user wants to repay everything\",\"borrowId\":\"the id of the borrow to repay\"}},\"withdrawETH(uint256,uint256,address)\":{\"details\":\"withdraws the WETH _reserves of msg.sender.\",\"params\":{\"amount\":\"amount of aWETH to withdraw and receive native ETH\",\"reserveId\":\"the id of the target reserve\",\"to\":\"address of the user who will receive native ETH\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/protocol/gateways/WETHGateway.sol\":\"WETHGateway\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935\",\"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2b3005a0064cfc558bdf64b2bae94b565f4574a536aadd61c13838d4f2157790\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://622c3eb87563e71585c9f538d1a196fe2d154dcc5b8f335e8770a8acc95e1f3a\",\"dweb:/ipfs/QmSnDqJJLzv3mirjGB1vrk5X7hegFdS7BKpscpxyqj7sWu\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x4e733d3164f73f461eaf9d8087a7ad1ea180bdc8ba0d3d61b0e1ae16d8e63dff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75b47c3aeca7b66ea6752f8be020ec5c1c502de6ec9065272dae23d3a52196e2\",\"dweb:/ipfs/QmUebPMHv16tYKFh5BmBQkMfRFb5b8UZ2RgVwdjxCeufVF\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol\":{\"keccak256\":\"0x605434219ebbe4653f703640f06969faa5a1d78f0bfef878e5ddbb1ca369ceeb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c9c634f99dd02d73ce7498b03a6305e251c05eeebb71457306561c1fab0fa7d\",\"dweb:/ipfs/QmbYRBbZHy8YoaQKXdPryiL3CSS7uUaRfRYi1TUj9cTqJQ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"src/interfaces/IAddressProvider.sol\":{\"keccak256\":\"0x6730abfcd8770e3279dad6137bf619ab98ee8b049e6dd85d2fbe87ba6224fde8\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://9b7d1588eab025b049f858ab2f329be7fec220198d956b9b61bf0b9bddc5761a\",\"dweb:/ipfs/QmTaFkYSUfWmbpsyE2TKC1QvP6eTDggZ72ZWodBhydqt5X\"]},\"src/interfaces/ICollateralManager.sol\":{\"keccak256\":\"0xdcb90cae810d15c23e0606ef3d9b30feec7d35e956082b88c1f35c5d6caf6438\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c45a3cf14add38004018f32987cab971436cfd2e679eea71f2383f845bd68647\",\"dweb:/ipfs/QmPd9df3JmDFMHnhreYWw8tjmRGEQAtERnqj2YREXB5aP5\"]},\"src/interfaces/IFToken.sol\":{\"keccak256\":\"0x4c3ebc83c05720c9257d1b6b4930b647c08ba766b76928622a4c91c4a541a718\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://920cb41d52a659b88030fc3cf84fe5a87cc42f0c6e5c83a691c4732f84906689\",\"dweb:/ipfs/Qma657T4np5eBNono5yBXxE71jfT1TRDDkCPpH3kfw3SxM\"]},\"src/interfaces/ILendingPool.sol\":{\"keccak256\":\"0x345ab4285354bb5184bdd501d7c37920a711215b6f6c2db05b05d585f2454115\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://3b6264b135760dcdd59b9a3566c1305b00084922da177159a85c206ef6a91266\",\"dweb:/ipfs/QmSotEH7zF3vrEgo2gZuunWwroHgc6bw7TVRntzv7jsJn1\"]},\"src/interfaces/IPoolIncentivesController.sol\":{\"keccak256\":\"0x7cb2c32050814e6d6d962a603104facc3bb1dad15171304e3ee756648e8f9ae1\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://cf534f592706b2a61c539c03e5d1e199c15472bcfb4ee69838e5c93ba7914466\",\"dweb:/ipfs/QmPrvXhJigK1Ke51YwAWHon1Kv88WT26iD3MwzCaPDs1Kv\"]},\"src/interfaces/IScaledBalanceToken.sol\":{\"keccak256\":\"0xb6a8f00773c5f58af761573f39f6aa3649c9deec5c4e078f5e3ca78940e4eac7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0938c6fd92b015670a2bcf5ff971aafbc6295e07c78d1300c5e36a67002dc70c\",\"dweb:/ipfs/QmYDcxNaAAfnupwDcDN1xtQcCEXTwW1FWiaTiU3MksCQ1Z\"]},\"src/interfaces/IWETH.sol\":{\"keccak256\":\"0x0362c27a2c8e899e736d31c84d7e5d72a9fe722d3b10d7f78f888871bfa908ab\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c4af992bdb0253a0cfaa392d478381d64c0e0d3834c0709ddeab0b831ee7807d\",\"dweb:/ipfs/QmXaFPzHPFEPXjp6EUFBAcEbybuiSSKa9uSwBMMarm79jy\"]},\"src/interfaces/IWETHGateway.sol\":{\"keccak256\":\"0x831ca4e10b8d5094c6b604e838d0d144aee306027455d0fa74f72f9092bf0a58\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://e216cc7934d2c89de2cd39f5d50b2c812c1fcacc89067537c7787a9a2ec43740\",\"dweb:/ipfs/QmNwFnCpMU3XWHzCx6npHj3gMyXnrDVT6EAzbj9NQNPHMt\"]},\"src/protocol/gateways/WETHGateway.sol\":{\"keccak256\":\"0xff18fc1dfb667afc6f3627e616e926319eee5dbea389defa6fadd176dc7de1d3\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://4e75f36c3ba9c009a3583fbbf4a0aaf1bc993b26fac18c95c9002a04584869b8\",\"dweb:/ipfs/QmVVTbWFF1GkaktG3fahwtXDvsrMCJFGXgmhydiJF7KUU8\"]},\"src/protocol/libraries/configuration/ReserveConfiguration.sol\":{\"keccak256\":\"0xa185efd08f4a3798bbafaa90fafd310f2e29634a2f83b62ee833b31a24232e3c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://806a0ce876edbbbd418a8297735f66907a06650606b00eac5b510ab082ed3173\",\"dweb:/ipfs/QmQk5ybFrVqXfgXbndYcKBoQiahKScjFEABpJ3ATG8SYPh\"]},\"src/protocol/libraries/helpers/Errors.sol\":{\"keccak256\":\"0x490e76871922e89a13ba0bb88977be18c143fa9d0cd9afb033744a3d81479c52\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://1c409d4d1e1689d8d8f3c3e361198d20f3b6476608c5316d8e2d91f52373e8e3\",\"dweb:/ipfs/QmRZaYpxqjmBpbxb51KqswKYPSeCsU3ejbmk5E3MrMxJaM\"]},\"src/protocol/libraries/types/ConfigTypes.sol\":{\"keccak256\":\"0xa8f9b14d9adf738033fd1847b30012d0e022027614fd6c9bb31a01bc6bfb1634\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b20c579d1b683dd5977a675c2e46adeebd56c96faa68cda9b0767edf02a5b650\",\"dweb:/ipfs/QmPULpaX2ouktArvXJxYNVPQ9vKBhEeCYA4smo8v57qFLD\"]},\"src/protocol/libraries/types/DataTypes.sol\":{\"keccak256\":\"0x0103c43499e5226d36906042a1723a3ee6ee18ba607cbffc9e776d4dc47edc10\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://550191b44b6ddfe84d81bd5ded46e1ab3ac493399adfca3634fd8348a4a087fa\",\"dweb:/ipfs/QmeoHga9azsBkTRdnzH9USs51JduGR2tgge5YmGW8dJ2Tq\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.16+commit.07a7930e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint8",
"name": "version",
"type": "uint8",
"indexed": false
}
],
"type": "event",
"name": "Initialized",
"anonymous": false
},
{
"inputs": [],
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "function",
"name": "authorizeExecutionDelegate"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "assets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "onBehalfOfs",
"type": "address[]"
}
],
"stateMutability": "payable",
"type": "function",
"name": "batchBidETH"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "tokenIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "tokenValues",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "reserveIds",
"type": "uint256[]"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"internalType": "uint16",
"name": "referralCode",
"type": "uint16"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "batchBorrowETH"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "reserveIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "onBehalfOfs",
"type": "address[]"
},
{
"internalType": "uint16[]",
"name": "referralCodes",
"type": "uint16[]"
}
],
"stateMutability": "payable",
"type": "function",
"name": "batchDepositETH"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "durations",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function",
"name": "batchRefinanceETH"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "borrowIds",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function",
"name": "batchRepayETH"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "reserveIds",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "tos",
"type": "address[]"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "batchWithdrawETH"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
}
],
"stateMutability": "payable",
"type": "function",
"name": "bidETH"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenValue",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"internalType": "uint16",
"name": "referralCode",
"type": "uint16"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "borrowETH"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "onBehalfOf",
"type": "address"
},
{
"internalType": "uint16",
"name": "referralCode",
"type": "uint16"
}
],
"stateMutability": "payable",
"type": "function",
"name": "depositETH"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "emergencyEtherTransfer"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "emergencyTokenTransfer"
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "getWETHAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "weth",
"type": "address"
},
{
"internalType": "address",
"name": "addressProvider",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "initialize"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function",
"name": "refinanceETH"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "borrowId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function",
"name": "repayETH"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveId",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "withdrawETH"
},
{
"inputs": [],
"stateMutability": "payable",
"type": "receive"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"authorizeExecutionDelegate()": {
"details": "Authorizes execution delegate to perform WETH transactions*"
},
"batchBidETH(address[],uint256[],uint256[],address[])": {
"details": "batch bid purchases the underlying collatearls of a defaulted borrows.",
"params": {
"amounts": "the payment amounts",
"assets": "addresses of the asset contracts used for payment",
"borrowIds": "the ids of the defaulted borrows",
"onBehalfOfs": "The addresses to receive the NFTs."
}
},
"batchBorrowETH(uint256[],uint256[],uint256[],uint256[],uint256,address,uint16)": {
"details": "batch borrow WETH, unwraps to ETH and send both the ETH and DebtTokens to msg.sender, via `approveDelegation` and onBehalf argument in `LendingPool.borrow`.",
"params": {
"amounts": "the amounts of ETH to borrow",
"duration": "The duration of the loans, 0 if open-ended",
"onBehalfOf": "The address to receive the loans.",
"referralCode": "integrators are assigned a referral code and can potentially receive rewards",
"reserveIds": "The ids of the reserves to borrow against. ",
"tokenIds": "The tokenIds of the ERC721 / ERC1155 tokens to be deposited. ",
"tokenValues": "The numbers of same-value tokens supplied (0 implies ERC721)"
}
},
"batchDepositETH(uint256[],uint256[],address[],uint16[])": {
"details": "batch deposits WETH into the reserve, using native ETH. A corresponding amount of the overlying asset (fTokens) are minted.",
"params": {
"amounts": "the amounts to be deposited",
"onBehalfOfs": "addresses of the users who will receive the fTokens representing the deposit",
"referralCodes": "integrators are assigned a referral code and can potentially receive rewards.*",
"reserveIds": "the ids of the target reserves"
}
},
"batchRefinanceETH(uint256[],uint256[],uint256[])": {
"details": "batch refinances borrows on the WETH reserve, for the specified amount (or for the whole amount, if uint256(-1) is specified).",
"params": {
"amounts": "the borrow amounts of the refinanced loans",
"borrowIds": "the ids of the loans to be refinanced",
"durations": "The durations of the refinanced loans, 0 if open-ended"
}
},
"batchRepayETH(uint256[],uint256[])": {
"details": "batch repays a borrow on the WETH reserve, for the specified amount (or for the whole amount, if uint256(-1) is specified).",
"params": {
"amounts": "the amounts to repay, or uint256(-1) if the user wants to repay everything",
"borrowIds": "the ids of the borrows to repay"
}
},
"batchWithdrawETH(uint256[],uint256[],address[])": {
"details": "batch withdraws the WETH _reserves of msg.sender.",
"params": {
"amounts": "amounts of aWETH to withdraw and receive native ETH",
"reserveIds": "the ids of the target reserves",
"tos": "addresses of the users who will receive native ETH"
}
},
"bidETH(address,uint256,uint256,address)": {
"details": "bid purchases the underlying collatearl of a defaulted borrow.",
"params": {
"amount": "the payment amount",
"asset": "address of the asset contract used for payment",
"borrowId": "the id of the defaulted borrow",