wrapped-wit-contracts
Version:
Wrapped/WIT Solidity contracts
645 lines (644 loc) • 32.3 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "WrappedWITSuperchain",
"sourceName": "contracts/WrappedWITSuperchain.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "ECDSAInvalidSignature",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "length",
"type": "uint256"
}
],
"name": "ECDSAInvalidSignatureLength",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "ECDSAInvalidSignatureS",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "ERC2612ExpiredSignature",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "ERC2612InvalidSigner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "currentNonce",
"type": "uint256"
}
],
"name": "InvalidAccountNonce",
"type": "error"
},
{
"inputs": [],
"name": "InvalidShortString",
"type": "error"
},
{
"inputs": [
{
"internalType": "string",
"name": "str",
"type": "string"
}
],
"name": "StringTooLong",
"type": "error"
},
{
"inputs": [],
"name": "Unauthorized",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "CrosschainBurn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "CrosschainMint",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "EIP712DomainChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "DOMAIN_SEPARATOR",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "crosschainBurn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "crosschainMint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "eip712Domain",
"outputs": [
{
"internalType": "bytes1",
"name": "fields",
"type": "bytes1"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "version",
"type": "string"
},
{
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
},
{
"internalType": "address",
"name": "verifyingContract",
"type": "address"
},
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "uint256[]",
"name": "extensions",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "permit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x610160604052348015610010575f5ffd5b506040518060400160405280600b81526020016a15dc985c1c19590bd5d25560aa1b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280600b81526020016a15dc985c1c19590815d25560aa1b8152506040518060400160405280600381526020016215d25560ea1b815250816003908161009f9190610276565b5060046100ac8282610276565b506100bc91508390506005610166565b610120526100cb816006610166565b61014052815160208084019190912060e052815190820120610100524660a05261015760e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c0525061039e565b5f6020835110156101815761017a83610198565b9050610192565b8161018c8482610276565b5060ff90505b92915050565b5f5f829050601f815111156101cb578260405163305a27a960e01b81526004016101c29190610330565b60405180910390fd5b80516101d68261037b565b179392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061020657607f821691505b60208210810361022457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561027157805f5260205f20601f840160051c8101602085101561024f5750805b601f840160051c820191505b8181101561026e575f815560010161025b565b50505b505050565b81516001600160401b0381111561028f5761028f6101de565b6102a38161029d84546101f2565b8461022a565b6020601f8211600181146102d5575f83156102be5750848201515b5f19600385901b1c1916600184901b17845561026e565b5f84815260208120601f198516915b8281101561030457878501518255602094850194600190920191016102e4565b508482101561032157868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b602081525f82518060208401525f5b8181101561035c576020818601810151604086840101520161033f565b505f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610224575f1960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516110b26103ef5f395f6108c101525f61089401525f61083d01525f61081501525f61077001525f61079a01525f6107c401526110b25ff3fe608060405234801561000f575f5ffd5b50600436106100fb575f3560e01c80633644e5151161009357806395d89b411161006357806395d89b4114610209578063a9059cbb14610211578063d505accf14610224578063dd62ed3e14610237575f5ffd5b80633644e515146101ab57806370a08231146101b35780637ecebe00146101db57806384b0196e146101ee575f5ffd5b806318bf5077116100ce57806318bf50771461016157806323b872dd146101765780632b8c49e314610189578063313ce5671461019c575f5ffd5b806301ffc9a7146100ff57806306fdde0314610127578063095ea7b31461013c57806318160ddd1461014f575b5f5ffd5b61011261010d366004610dc4565b61026f565b60405190151581526020015b60405180910390f35b61012f6102a5565b60405161011e9190610e35565b61011261014a366004610e62565b610335565b6002545b60405190815260200161011e565b61017461016f366004610e62565b61034c565b005b610112610184366004610e8a565b6103a4565b610174610197366004610e62565b6103c7565b6040516009815260200161011e565b610153610417565b6101536101c1366004610ec4565b6001600160a01b03165f9081526020819052604090205490565b6101536101e9366004610ec4565b610425565b6101f6610442565b60405161011e9796959493929190610edd565b61012f610484565b61011261021f366004610e62565b610493565b610174610232366004610f73565b6104a0565b610153610245366004610fe0565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b5f6001600160e01b03198216630cccc66560e21b148061029f57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600380546102b490611011565b80601f01602080910402602001604051908101604052809291908181526020018280546102e090611011565b801561032b5780601f106103025761010080835404028352916020019161032b565b820191905f5260205f20905b81548152906001019060200180831161030e57829003601f168201915b5050505050905090565b5f336103428185856105db565b5060019392505050565b610355336105ed565b61035f828261061f565b60405181815233906001600160a01b038416907fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea04906020015b60405180910390a35050565b5f336103b1858285610657565b6103bc8585856106d3565b506001949350505050565b6103d0336105ed565b6103da8282610730565b60405181815233906001600160a01b038416907fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd490602001610398565b5f610420610764565b905090565b6001600160a01b0381165f9081526007602052604081205461029f565b5f6060805f5f5f606061045361088d565b61045b6108ba565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6060600480546102b490611011565b5f336103428185856106d3565b834211156104c95760405163313c898160e11b8152600481018590526024015b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886105148c6001600160a01b03165f90815260076020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61056e826108e7565b90505f61057d82878787610913565b9050896001600160a01b0316816001600160a01b0316146105c4576040516325c0072360e11b81526001600160a01b0380831660048301528b1660248201526044016104c0565b6105cf8a8a8a6105db565b50505050505050505050565b6105e8838383600161093f565b505050565b6001600160a01b0381166028602160991b011461061c576040516282b42960e81b815260040160405180910390fd5b50565b6001600160a01b0382166106485760405163ec442f0560e01b81525f60048201526024016104c0565b6106535f8383610a11565b5050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198110156106cd57818110156106bf57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016104c0565b6106cd84848484035f61093f565b50505050565b6001600160a01b0383166106fc57604051634b637e8f60e11b81525f60048201526024016104c0565b6001600160a01b0382166107255760405163ec442f0560e01b81525f60048201526024016104c0565b6105e8838383610a11565b6001600160a01b03821661075957604051634b637e8f60e11b81525f60048201526024016104c0565b610653825f83610a11565b5f306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156107bc57507f000000000000000000000000000000000000000000000000000000000000000046145b156107e657507f000000000000000000000000000000000000000000000000000000000000000090565b610420604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60606104207f00000000000000000000000000000000000000000000000000000000000000006005610b37565b60606104207f00000000000000000000000000000000000000000000000000000000000000006006610b37565b5f61029f6108f3610764565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f5f61092388888888610be0565b9250925092506109338282610ca8565b50909695505050505050565b6001600160a01b0384166109685760405163e602df0560e01b81525f60048201526024016104c0565b6001600160a01b03831661099157604051634a1406b160e11b81525f60048201526024016104c0565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156106cd57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a0391815260200190565b60405180910390a350505050565b6001600160a01b038316610a3b578060025f828254610a309190611049565b90915550610aab9050565b6001600160a01b0383165f9081526020819052604090205481811015610a8d5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016104c0565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610ac757600280548290039055610ae5565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b2a91815260200190565b60405180910390a3505050565b606060ff8314610b5157610b4a83610d60565b905061029f565b818054610b5d90611011565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8990611011565b8015610bd45780601f10610bab57610100808354040283529160200191610bd4565b820191905f5260205f20905b815481529060010190602001808311610bb757829003601f168201915b5050505050905061029f565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610c1957505f91506003905082610c9e565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610c6a573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116610c9557505f925060019150829050610c9e565b92505f91508190505b9450945094915050565b5f826003811115610cbb57610cbb611068565b03610cc4575050565b6001826003811115610cd857610cd8611068565b03610cf65760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610d0a57610d0a611068565b03610d2b5760405163fce698f760e01b8152600481018290526024016104c0565b6003826003811115610d3f57610d3f611068565b03610653576040516335e2f38360e21b8152600481018290526024016104c0565b60605f610d6c83610d9d565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f60ff8216601f81111561029f57604051632cd44ac360e21b815260040160405180910390fd5b5f60208284031215610dd4575f5ffd5b81356001600160e01b031981168114610deb575f5ffd5b9392505050565b5f81518084525f5b81811015610e1657602081850181015186830182015201610dfa565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610deb6020830184610df2565b80356001600160a01b0381168114610e5d575f5ffd5b919050565b5f5f60408385031215610e73575f5ffd5b610e7c83610e47565b946020939093013593505050565b5f5f5f60608486031215610e9c575f5ffd5b610ea584610e47565b9250610eb360208501610e47565b929592945050506040919091013590565b5f60208284031215610ed4575f5ffd5b610deb82610e47565b60ff60f81b8816815260e060208201525f610efb60e0830189610df2565b8281036040840152610f0d8189610df2565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015610f62578351835260209384019390920191600101610f44565b50909b9a5050505050505050505050565b5f5f5f5f5f5f5f60e0888a031215610f89575f5ffd5b610f9288610e47565b9650610fa060208901610e47565b95506040880135945060608801359350608088013560ff81168114610fc3575f5ffd5b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215610ff1575f5ffd5b610ffa83610e47565b915061100860208401610e47565b90509250929050565b600181811c9082168061102557607f821691505b60208210810361104357634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561029f57634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52602160045260245ffdfea2646970667358221220d895cb27ca655fc0bca22d46d748b4ccfebedc1b70f152cde9fb70fc27d60b6164736f6c634300081c0033",
"deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100fb575f3560e01c80633644e5151161009357806395d89b411161006357806395d89b4114610209578063a9059cbb14610211578063d505accf14610224578063dd62ed3e14610237575f5ffd5b80633644e515146101ab57806370a08231146101b35780637ecebe00146101db57806384b0196e146101ee575f5ffd5b806318bf5077116100ce57806318bf50771461016157806323b872dd146101765780632b8c49e314610189578063313ce5671461019c575f5ffd5b806301ffc9a7146100ff57806306fdde0314610127578063095ea7b31461013c57806318160ddd1461014f575b5f5ffd5b61011261010d366004610dc4565b61026f565b60405190151581526020015b60405180910390f35b61012f6102a5565b60405161011e9190610e35565b61011261014a366004610e62565b610335565b6002545b60405190815260200161011e565b61017461016f366004610e62565b61034c565b005b610112610184366004610e8a565b6103a4565b610174610197366004610e62565b6103c7565b6040516009815260200161011e565b610153610417565b6101536101c1366004610ec4565b6001600160a01b03165f9081526020819052604090205490565b6101536101e9366004610ec4565b610425565b6101f6610442565b60405161011e9796959493929190610edd565b61012f610484565b61011261021f366004610e62565b610493565b610174610232366004610f73565b6104a0565b610153610245366004610fe0565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b5f6001600160e01b03198216630cccc66560e21b148061029f57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600380546102b490611011565b80601f01602080910402602001604051908101604052809291908181526020018280546102e090611011565b801561032b5780601f106103025761010080835404028352916020019161032b565b820191905f5260205f20905b81548152906001019060200180831161030e57829003601f168201915b5050505050905090565b5f336103428185856105db565b5060019392505050565b610355336105ed565b61035f828261061f565b60405181815233906001600160a01b038416907fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea04906020015b60405180910390a35050565b5f336103b1858285610657565b6103bc8585856106d3565b506001949350505050565b6103d0336105ed565b6103da8282610730565b60405181815233906001600160a01b038416907fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd490602001610398565b5f610420610764565b905090565b6001600160a01b0381165f9081526007602052604081205461029f565b5f6060805f5f5f606061045361088d565b61045b6108ba565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6060600480546102b490611011565b5f336103428185856106d3565b834211156104c95760405163313c898160e11b8152600481018590526024015b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886105148c6001600160a01b03165f90815260076020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61056e826108e7565b90505f61057d82878787610913565b9050896001600160a01b0316816001600160a01b0316146105c4576040516325c0072360e11b81526001600160a01b0380831660048301528b1660248201526044016104c0565b6105cf8a8a8a6105db565b50505050505050505050565b6105e8838383600161093f565b505050565b6001600160a01b0381166028602160991b011461061c576040516282b42960e81b815260040160405180910390fd5b50565b6001600160a01b0382166106485760405163ec442f0560e01b81525f60048201526024016104c0565b6106535f8383610a11565b5050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198110156106cd57818110156106bf57604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016104c0565b6106cd84848484035f61093f565b50505050565b6001600160a01b0383166106fc57604051634b637e8f60e11b81525f60048201526024016104c0565b6001600160a01b0382166107255760405163ec442f0560e01b81525f60048201526024016104c0565b6105e8838383610a11565b6001600160a01b03821661075957604051634b637e8f60e11b81525f60048201526024016104c0565b610653825f83610a11565b5f306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156107bc57507f000000000000000000000000000000000000000000000000000000000000000046145b156107e657507f000000000000000000000000000000000000000000000000000000000000000090565b610420604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60606104207f00000000000000000000000000000000000000000000000000000000000000006005610b37565b60606104207f00000000000000000000000000000000000000000000000000000000000000006006610b37565b5f61029f6108f3610764565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f5f61092388888888610be0565b9250925092506109338282610ca8565b50909695505050505050565b6001600160a01b0384166109685760405163e602df0560e01b81525f60048201526024016104c0565b6001600160a01b03831661099157604051634a1406b160e11b81525f60048201526024016104c0565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156106cd57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a0391815260200190565b60405180910390a350505050565b6001600160a01b038316610a3b578060025f828254610a309190611049565b90915550610aab9050565b6001600160a01b0383165f9081526020819052604090205481811015610a8d5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016104c0565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610ac757600280548290039055610ae5565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b2a91815260200190565b60405180910390a3505050565b606060ff8314610b5157610b4a83610d60565b905061029f565b818054610b5d90611011565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8990611011565b8015610bd45780601f10610bab57610100808354040283529160200191610bd4565b820191905f5260205f20905b815481529060010190602001808311610bb757829003601f168201915b5050505050905061029f565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610c1957505f91506003905082610c9e565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610c6a573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116610c9557505f925060019150829050610c9e565b92505f91508190505b9450945094915050565b5f826003811115610cbb57610cbb611068565b03610cc4575050565b6001826003811115610cd857610cd8611068565b03610cf65760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610d0a57610d0a611068565b03610d2b5760405163fce698f760e01b8152600481018290526024016104c0565b6003826003811115610d3f57610d3f611068565b03610653576040516335e2f38360e21b8152600481018290526024016104c0565b60605f610d6c83610d9d565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f60ff8216601f81111561029f57604051632cd44ac360e21b815260040160405180910390fd5b5f60208284031215610dd4575f5ffd5b81356001600160e01b031981168114610deb575f5ffd5b9392505050565b5f81518084525f5b81811015610e1657602081850181015186830182015201610dfa565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610deb6020830184610df2565b80356001600160a01b0381168114610e5d575f5ffd5b919050565b5f5f60408385031215610e73575f5ffd5b610e7c83610e47565b946020939093013593505050565b5f5f5f60608486031215610e9c575f5ffd5b610ea584610e47565b9250610eb360208501610e47565b929592945050506040919091013590565b5f60208284031215610ed4575f5ffd5b610deb82610e47565b60ff60f81b8816815260e060208201525f610efb60e0830189610df2565b8281036040840152610f0d8189610df2565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015610f62578351835260209384019390920191600101610f44565b50909b9a5050505050505050505050565b5f5f5f5f5f5f5f60e0888a031215610f89575f5ffd5b610f9288610e47565b9650610fa060208901610e47565b95506040880135945060608801359350608088013560ff81168114610fc3575f5ffd5b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215610ff1575f5ffd5b610ffa83610e47565b915061100860208401610e47565b90509250929050565b600181811c9082168061102557607f821691505b60208210810361104357634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561029f57634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52602160045260245ffdfea2646970667358221220d895cb27ca655fc0bca22d46d748b4ccfebedc1b70f152cde9fb70fc27d60b6164736f6c634300081c0033",
"linkReferences": {},
"deployedLinkReferences": {}
}