@offchainlabs/stablecoin-evm
Version:
Circle's Stablecoin Smart Contracts on EVM-compatible blockchains
169 lines (168 loc) • 46.7 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "V2_1Upgrader",
"sourceName": "contracts/v2/upgrader/V2_1Upgrader.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract FiatTokenProxy",
"name": "proxy",
"type": "address"
},
{
"internalType": "contract FiatTokenV2_1",
"name": "implementation",
"type": "address"
},
{
"internalType": "address",
"name": "newProxyAdmin",
"type": "address"
},
{
"internalType": "address",
"name": "lostAndFound",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "abortUpgrade",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "helper",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "implementation",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lostAndFound",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "newProxyAdmin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proxy",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "upgrade",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawFiatToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b50604051620030d5380380620030d5833981810160405260808110156200003757600080fd5b50805160208201516040830151606090930151919290918383836200005c3362000114565b600180546001600160a01b03199081166001600160a01b039586161790915560028054821693851693909317909255600380548316918416919091179055600580549091169183169190911790556040518490620000ba9062000136565b6001600160a01b03909116815260405190819003602001906000f080158015620000e8573d6000803e3d6000fd5b50600480546001600160a01b0319166001600160a01b0392909216919091179055506200014492505050565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610c1680620024bf83390190565b61236b80620001546000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a004aa0c11610076578063d8f6a8f61161005b578063d8f6a8f614610126578063ec5568891461012e578063f2fde38b14610136576100be565b8063a004aa0c14610116578063d55ec6971461011e576100be565b80635c60da1b116100a75780635c60da1b146100fe57806363b0e66a146101065780638da5cb5b1461010e576100be565b80632d4efffe146100c35780633f247fe7146100f4575b600080fd5b6100cb610169565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100fc610185565b005b6100cb6103c5565b6100cb6103e1565b6100cb6103fd565b6100cb610419565b6100fc610435565b6100fc611e0c565b6100cb611f2b565b6100fc6004803603602081101561014c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611f47565b60035473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff16331461020b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9092169160009183916370a0823191602480820192602092909190829003018186803b15801561028157600080fd5b505afa158015610295573d6000803e3d6000fd5b505050506040513d60208110156102ab57600080fd5b5051905080156103c157604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101839052905173ffffffffffffffffffffffffffffffffffffffff84169163a9059cbb9160448083019260209291908290030181600087803b15801561032a57600080fd5b505af115801561033e573d6000803e3d6000fd5b505050506040513d602081101561035457600080fd5b50516103c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4661696c656420746f2077697468647261772046696174546f6b656e00000000604482015290519081900360640190fd5b5050565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b60045473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60055473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60048054604080517f70a0823100000000000000000000000000000000000000000000000000000000815230938101939093525173ffffffffffffffffffffffffffffffffffffffff9091169160009183916370a08231916024808301926020929190829003018186803b15801561053257600080fd5b505afa158015610546573d6000803e3d6000fd5b505050506040513d602081101561055c57600080fd5b5051905062030d408110156105bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806122cf6022913960400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561062557600080fd5b505afa158015610639573d6000803e3d6000fd5b505050506040513d602081101561064f57600080fd5b5051604080517f06fdde03000000000000000000000000000000000000000000000000000000008152905191925060609173ffffffffffffffffffffffffffffffffffffffff8616916306fdde03916004808301926000929190829003018186803b1580156106bd57600080fd5b505afa1580156106d1573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561071857600080fd5b810190808051604051939291908464010000000082111561073857600080fd5b90830190602082018581111561074d57600080fd5b825164010000000081118282018810171561076757600080fd5b82525081516020918201929091019080838360005b8381101561079457818101518382015260200161077c565b50505050905090810190601f1680156107c15780820380516001836020036101000a031916815260200191505b50604052505050905060608473ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561081257600080fd5b505afa158015610826573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561086d57600080fd5b810190808051604051939291908464010000000082111561088d57600080fd5b9083019060208201858111156108a257600080fd5b82516401000000008111828201881017156108bc57600080fd5b82525081516020918201929091019080838360005b838110156108e95781810151838201526020016108d1565b50505050905090810190601f1680156109165780820380516001836020036101000a031916815260200191505b50604052505050905060008573ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561096757600080fd5b505afa15801561097b573d6000803e3d6000fd5b505050506040513d602081101561099157600080fd5b5051604080517fe5a6b10f000000000000000000000000000000000000000000000000000000008152905191925060609173ffffffffffffffffffffffffffffffffffffffff89169163e5a6b10f916004808301926000929190829003018186803b1580156109ff57600080fd5b505afa158015610a13573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526020811015610a5a57600080fd5b8101908080516040519392919084640100000000821115610a7a57600080fd5b908301906020820185811115610a8f57600080fd5b8251640100000000811182820188101715610aa957600080fd5b82525081516020918201929091019080838360005b83811015610ad6578181015183820152602001610abe565b50505050905090810190601f168015610b035780820380516001836020036101000a031916815260200191505b50604052505050905060008773ffffffffffffffffffffffffffffffffffffffff166335d99f356040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5457600080fd5b505afa158015610b68573d6000803e3d6000fd5b505050506040513d6020811015610b7e57600080fd5b5051604080517f6d3c5bbe000000000000000000000000000000000000000000000000000000008152905191925060009173ffffffffffffffffffffffffffffffffffffffff8b1691636d3c5bbe916004808301926020929190829003018186803b158015610bec57600080fd5b505afa158015610c00573d6000803e3d6000fd5b505050506040513d6020811015610c1657600080fd5b5051604080517f9fd0506d000000000000000000000000000000000000000000000000000000008152905191925060009173ffffffffffffffffffffffffffffffffffffffff8c1691639fd0506d916004808301926020929190829003018186803b158015610c8457600080fd5b505afa158015610c98573d6000803e3d6000fd5b505050506040513d6020811015610cae57600080fd5b5051604080517fbd102430000000000000000000000000000000000000000000000000000000008152905191925060009173ffffffffffffffffffffffffffffffffffffffff8d169163bd102430916004808301926020929190829003018186803b158015610d1c57600080fd5b505afa158015610d30573d6000803e3d6000fd5b505050506040513d6020811015610d4657600080fd5b5051600154600254604080517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529051939450911691633659cfe69160248082019260009290919082900301818387803b158015610dc157600080fd5b505af1158015610dd5573d6000803e3d6000fd5b5050600154600354604080517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529051919092169350638f2839709250602480830192600092919082900301818387803b158015610e5057600080fd5b505af1158015610e64573d6000803e3d6000fd5b5050600154600554604080517f2fc81e0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529051919092169350839250632fc81e099160248082019260009290919082900301818387803b158015610ee257600080fd5b505af1158015610ef6573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015610f4057600080fd5b505afa158015610f54573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526020811015610f9b57600080fd5b8101908080516040519392919084640100000000821115610fbb57600080fd5b908301906020820185811115610fd057600080fd5b8251640100000000811182820188101715610fea57600080fd5b82525081516020918201929091019080838360005b83811015611017578181015183820152602001610fff565b50505050905090810190601f1680156110445780820380516001836020036101000a031916815260200191505b506040525050508051906020012089805190602001201480156111c457508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156110a857600080fd5b505afa1580156110bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561110357600080fd5b810190808051604051939291908464010000000082111561112357600080fd5b90830190602082018581111561113857600080fd5b825164010000000081118282018810171561115257600080fd5b82525081516020918201929091019080838360005b8381101561117f578181015183820152602001611167565b50505050905090810190601f1680156111ac5780820380516001836020036101000a031916815260200191505b50604052505050805190602001208880519060200120145b801561124657508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561121157600080fd5b505afa158015611225573d6000803e3d6000fd5b505050506040513d602081101561123b57600080fd5b505160ff8881169116145b80156113af57508073ffffffffffffffffffffffffffffffffffffffff1663e5a6b10f6040518163ffffffff1660e01b815260040160006040518083038186803b15801561129357600080fd5b505afa1580156112a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156112ee57600080fd5b810190808051604051939291908464010000000082111561130e57600080fd5b90830190602082018581111561132357600080fd5b825164010000000081118282018810171561133d57600080fd5b82525081516020918201929091019080838360005b8381101561136a578181015183820152602001611352565b50505050905090810190601f1680156113975780820380516001836020036101000a031916815260200191505b50604052505050805190602001208680519060200120145b801561144457508073ffffffffffffffffffffffffffffffffffffffff166335d99f356040518163ffffffff1660e01b815260040160206040518083038186803b1580156113fc57600080fd5b505afa158015611410573d6000803e3d6000fd5b505050506040513d602081101561142657600080fd5b505173ffffffffffffffffffffffffffffffffffffffff8681169116145b80156114d957508073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d60208110156114bb57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff8581169116145b801561156e57508073ffffffffffffffffffffffffffffffffffffffff16639fd0506d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561152657600080fd5b505afa15801561153a573d6000803e3d6000fd5b505050506040513d602081101561155057600080fd5b505173ffffffffffffffffffffffffffffffffffffffff8481169116145b801561160357508073ffffffffffffffffffffffffffffffffffffffff1663bd1024306040518163ffffffff1660e01b815260040160206040518083038186803b1580156115bb57600080fd5b505afa1580156115cf573d6000803e3d6000fd5b505050506040513d60208110156115e557600080fd5b505173ffffffffffffffffffffffffffffffffffffffff8381169116145b611658576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806122ad6022913960400191505060405180910390fd5b8a8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156116c057600080fd5b505afa1580156116d4573d6000803e3d6000fd5b505050506040513d60208110156116ea57600080fd5b505114611742576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806123136023913960400191505060405180910390fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152620186a06024820152905173ffffffffffffffffffffffffffffffffffffffff83169163a9059cbb9160448083019260209291908290030181600087803b1580156117b957600080fd5b505af11580156117cd573d6000803e3d6000fd5b505050506040513d60208110156117e357600080fd5b5051801561189357506117f98a620186a061209a565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b15801561186557600080fd5b505afa158015611879573d6000803e3d6000fd5b505050506040513d602081101561188f57600080fd5b5051145b801561194157506118a78b620186a0612115565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b15801561191357600080fd5b505afa158015611927573d6000803e3d6000fd5b505050506040513d602081101561193d57600080fd5b5051145b611996576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806122f16022913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663095ea7b38d620186a06040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611a0a57600080fd5b505af1158015611a1e573d6000803e3d6000fd5b505050506040513d6020811015611a3457600080fd5b50518015611ae55750604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8e8116602483015291519183169163dd62ed3e91604480820192602092909190829003018186803b158015611ab357600080fd5b505afa158015611ac7573d6000803e3d6000fd5b505050506040513d6020811015611add57600080fd5b5051620186a0145b8015611b965750604080517f23b872dd000000000000000000000000000000000000000000000000000000008152306004820152336024820152620186a06044820152905173ffffffffffffffffffffffffffffffffffffffff8e16916323b872dd9160648083019260209291908290030181600087803b158015611b6957600080fd5b505af1158015611b7d573d6000803e3d6000fd5b505050506040513d6020811015611b9357600080fd5b50515b8015611c3d5750604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152306004820152336024820152905173ffffffffffffffffffffffffffffffffffffffff83169163dd62ed3e916044808301926020929190829003018186803b158015611c0f57600080fd5b505afa158015611c23573d6000803e3d6000fd5b505050506040513d6020811015611c3957600080fd5b5051155b8015611ceb5750611c518a62030d4061209a565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015611cbd57600080fd5b505afa158015611cd1573d6000803e3d6000fd5b505050506040513d6020811015611ce757600080fd5b5051145b8015611d995750611cff8b62030d40612115565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015611d6b57600080fd5b505afa158015611d7f573d6000803e3d6000fd5b505050506040513d6020811015611d9557600080fd5b5051145b611dee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061227f602e913960400191505060405180910390fd5b611df6610185565b611dfe61218c565b505050505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611e9257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600154600354604080517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015290519190921691638f28397091602480830192600092919082900301818387803b158015611f0957600080fd5b505af1158015611f1d573d6000803e3d6000fd5b50505050611f2961218c565b565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314611fcd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612039576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806122596026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a161209781612211565b50565b60008282018381101561210e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008282111561218657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60048054604080517fec1e6a4f000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169263ec1e6a4f92828201926000929082900301818387803b1580156121f557600080fd5b505af1158015612209573d6000803e3d6000fd5b503392505050ff5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737356325f3155706772616465723a20617070726f76652f7472616e7366657246726f6d2074657374206661696c656456325f3155706772616465723a206d657461646174612074657374206661696c656456325f3155706772616465723a20302e322046696174546f6b656e206e656564656456325f3155706772616465723a207472616e736665722074657374206661696c656456325f3155706772616465723a2062616c616e63654f662074657374206661696c6564a2646970667358221220de0c15a69a489c645f1997fcf11849db951799ec9ba70806474649a700c9c79364736f6c634300060c0033608060405234801561001057600080fd5b50604051610c16380380610c168339818101604052602081101561003357600080fd5b50518061003f33610065565b600180546001600160a01b0319166001600160a01b039290921691909117905550610087565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610b80806100966000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806395d89b411161008c578063e5a6b10f11610066578063e5a6b10f1461027f578063ec1e6a4f14610287578063ec55688914610291578063f2fde38b14610299576100ea565b806395d89b41146102675780639fd0506d1461026f578063bd10243014610277576100ea565b806335d99f35116100c857806335d99f35146101e15780636d3c5bbe1461021257806370a082311461021a5780638da5cb5b1461025f576100ea565b806306fdde03146100ef57806323b872dd1461016c578063313ce567146101c3575b600080fd5b6100f76102cc565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610131578181015183820152602001610119565b50505050905090810190601f16801561015e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101af6004803603606081101561018257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610447565b604080519115158252519081900360200190f35b6101cb610502565b6040805160ff9092168252519081900360200190f35b6101e961059e565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101e9610609565b61024d6004803603602081101561023057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610674565b60408051918252519081900360200190f35b6101e961071d565b6100f7610739565b6101e96107a4565b6101e961080f565b6100f761087a565b61028f6108e5565b005b6101e961096e565b61028f600480360360208110156102af57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661098a565b600154604080517f06fdde03000000000000000000000000000000000000000000000000000000008152905160609273ffffffffffffffffffffffffffffffffffffffff16916306fdde03916004808301926000929190829003018186803b15801561033757600080fd5b505afa15801561034b573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561039257600080fd5b81019080805160405193929190846401000000008211156103b257600080fd5b9083019060208201858111156103c757600080fd5b82516401000000008111828201881017156103e157600080fd5b82525081516020918201929091019080838360005b8381101561040e5781810151838201526020016103f6565b50505050905090810190601f16801561043b5780820380516001836020036101000a031916815260200191505b50604052505050905090565b600154604080517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152858116602483015260448201859052915160009392909216916323b872dd9160648082019260209290919082900301818787803b1580156104ce57600080fd5b505af11580156104e2573d6000803e3d6000fd5b505050506040513d60208110156104f857600080fd5b5051949350505050565b600154604080517f313ce567000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163313ce567916004808301926020929190829003018186803b15801561056d57600080fd5b505afa158015610581573d6000803e3d6000fd5b505050506040513d602081101561059757600080fd5b5051905090565b600154604080517f35d99f35000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916335d99f35916004808301926020929190829003018186803b15801561056d57600080fd5b600154604080517f8da5cb5b000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638da5cb5b916004808301926020929190829003018186803b15801561056d57600080fd5b600154604080517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152915160009392909216916370a0823191602480820192602092909190829003018186803b1580156106eb57600080fd5b505afa1580156106ff573d6000803e3d6000fd5b505050506040513d602081101561071557600080fd5b505192915050565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b600154604080517f95d89b41000000000000000000000000000000000000000000000000000000008152905160609273ffffffffffffffffffffffffffffffffffffffff16916395d89b41916004808301926000929190829003018186803b15801561033757600080fd5b600154604080517f9fd0506d000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691639fd0506d916004808301926020929190829003018186803b15801561056d57600080fd5b600154604080517fbd102430000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163bd102430916004808301926020929190829003018186803b15801561056d57600080fd5b600154604080517fe5a6b10f000000000000000000000000000000000000000000000000000000008152905160609273ffffffffffffffffffffffffffffffffffffffff169163e5a6b10f916004808301926000929190829003018186803b15801561033757600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff16331461096b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b33ff5b60015473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a1057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116610a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610b256026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a1610ada81610add565b50565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a264697066735822122095fee0b661ebc45aaf4ab73fec97114f05d405350a0d99f174589a8c51d3a93f64736f6c634300060c0033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063a004aa0c11610076578063d8f6a8f61161005b578063d8f6a8f614610126578063ec5568891461012e578063f2fde38b14610136576100be565b8063a004aa0c14610116578063d55ec6971461011e576100be565b80635c60da1b116100a75780635c60da1b146100fe57806363b0e66a146101065780638da5cb5b1461010e576100be565b80632d4efffe146100c35780633f247fe7146100f4575b600080fd5b6100cb610169565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100fc610185565b005b6100cb6103c5565b6100cb6103e1565b6100cb6103fd565b6100cb610419565b6100fc610435565b6100fc611e0c565b6100cb611f2b565b6100fc6004803603602081101561014c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611f47565b60035473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff16331461020b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9092169160009183916370a0823191602480820192602092909190829003018186803b15801561028157600080fd5b505afa158015610295573d6000803e3d6000fd5b505050506040513d60208110156102ab57600080fd5b5051905080156103c157604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101839052905173ffffffffffffffffffffffffffffffffffffffff84169163a9059cbb9160448083019260209291908290030181600087803b15801561032a57600080fd5b505af115801561033e573d6000803e3d6000fd5b505050506040513d602081101561035457600080fd5b50516103c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4661696c656420746f2077697468647261772046696174546f6b656e00000000604482015290519081900360640190fd5b5050565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b60045473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60055473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60048054604080517f70a0823100000000000000000000000000000000000000000000000000000000815230938101939093525173ffffffffffffffffffffffffffffffffffffffff9091169160009183916370a08231916024808301926020929190829003018186803b15801561053257600080fd5b505afa158015610546573d6000803e3d6000fd5b505050506040513d602081101561055c57600080fd5b5051905062030d408110156105bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806122cf6022913960400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561062557600080fd5b505afa158015610639573d6000803e3d6000fd5b505050506040513d602081101561064f57600080fd5b5051604080517f06fdde03000000000000000000000000000000000000000000000000000000008152905191925060609173ffffffffffffffffffffffffffffffffffffffff8616916306fdde03916004808301926000929190829003018186803b1580156106bd57600080fd5b505afa1580156106d1573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561071857600080fd5b810190808051604051939291908464010000000082111561073857600080fd5b90830190602082018581111561074d57600080fd5b825164010000000081118282018810171561076757600080fd5b82525081516020918201929091019080838360005b8381101561079457818101518382015260200161077c565b50505050905090810190601f1680156107c15780820380516001836020036101000a031916815260200191505b50604052505050905060608473ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b15801561081257600080fd5b505afa158015610826573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561086d57600080fd5b810190808051604051939291908464010000000082111561088d57600080fd5b9083019060208201858111156108a257600080fd5b82516401000000008111828201881017156108bc57600080fd5b82525081516020918201929091019080838360005b838110156108e95781810151838201526020016108d1565b50505050905090810190601f1680156109165780820380516001836020036101000a031916815260200191505b50604052505050905060008573ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561096757600080fd5b505afa15801561097b573d6000803e3d6000fd5b505050506040513d602081101561099157600080fd5b5051604080517fe5a6b10f000000000000000000000000000000000000000000000000000000008152905191925060609173ffffffffffffffffffffffffffffffffffffffff89169163e5a6b10f916004808301926000929190829003018186803b1580156109ff57600080fd5b505afa158015610a13573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526020811015610a5a57600080fd5b8101908080516040519392919084640100000000821115610a7a57600080fd5b908301906020820185811115610a8f57600080fd5b8251640100000000811182820188101715610aa957600080fd5b82525081516020918201929091019080838360005b83811015610ad6578181015183820152602001610abe565b50505050905090810190601f168015610b035780820380516001836020036101000a031916815260200191505b50604052505050905060008773ffffffffffffffffffffffffffffffffffffffff166335d99f356040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5457600080fd5b505afa158015610b68573d6000803e3d6000fd5b505050506040513d6020811015610b7e57600080fd5b5051604080517f6d3c5bbe000000000000000000000000000000000000000000000000000000008152905191925060009173ffffffffffffffffffffffffffffffffffffffff8b1691636d3c5bbe916004808301926020929190829003018186803b158015610bec57600080fd5b505afa158015610c00573d6000803e3d6000fd5b505050506040513d6020811015610c1657600080fd5b5051604080517f9fd0506d000000000000000000000000000000000000000000000000000000008152905191925060009173ffffffffffffffffffffffffffffffffffffffff8c1691639fd0506d916004808301926020929190829003018186803b158015610c8457600080fd5b505afa158015610c98573d6000803e3d6000fd5b505050506040513d6020811015610cae57600080fd5b5051604080517fbd102430000000000000000000000000000000000000000000000000000000008152905191925060009173ffffffffffffffffffffffffffffffffffffffff8d169163bd102430916004808301926020929190829003018186803b158015610d1c57600080fd5b505afa158015610d30573d6000803e3d6000fd5b505050506040513d6020811015610d4657600080fd5b5051600154600254604080517f3659cfe600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529051939450911691633659cfe69160248082019260009290919082900301818387803b158015610dc157600080fd5b505af1158015610dd5573d6000803e3d6000fd5b5050600154600354604080517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529051919092169350638f2839709250602480830192600092919082900301818387803b158015610e5057600080fd5b505af1158015610e64573d6000803e3d6000fd5b5050600154600554604080517f2fc81e0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529051919092169350839250632fc81e099160248082019260009290919082900301818387803b158015610ee257600080fd5b505af1158015610ef6573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015610f4057600080fd5b505afa158015610f54573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526020811015610f9b57600080fd5b8101908080516040519392919084640100000000821115610fbb57600080fd5b908301906020820185811115610fd057600080fd5b8251640100000000811182820188101715610fea57600080fd5b82525081516020918201929091019080838360005b83811015611017578181015183820152602001610fff565b50505050905090810190601f1680156110445780820380516001836020036101000a031916815260200191505b506040525050508051906020012089805190602001201480156111c457508073ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156110a857600080fd5b505afa1580156110bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561110357600080fd5b810190808051604051939291908464010000000082111561112357600080fd5b90830190602082018581111561113857600080fd5b825164010000000081118282018810171561115257600080fd5b82525081516020918201929091019080838360005b8381101561117f578181015183820152602001611167565b50505050905090810190601f1680156111ac5780820380516001836020036101000a031916815260200191505b50604052505050805190602001208880519060200120145b801561124657508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561121157600080fd5b505afa158015611225573d6000803e3d6000fd5b505050506040513d602081101561123b57600080fd5b505160ff8881169116145b80156113af57508073ffffffffffffffffffffffffffffffffffffffff1663e5a6b10f6040518163ffffffff1660e01b815260040160006040518083038186803b15801561129357600080fd5b505afa1580156112a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156112ee57600080fd5b810190808051604051939291908464010000000082111561130e57600080fd5b90830190602082018581111561132357600080fd5b825164010000000081118282018810171561133d57600080fd5b82525081516020918201929091019080838360005b8381101561136a578181015183820152602001611352565b50505050905090810190601f1680156113975780820380516001836020036101000a031916815260200191505b50604052505050805190602001208680519060200120145b801561144457508073ffffffffffffffffffffffffffffffffffffffff166335d99f356040518163ffffffff1660e01b815260040160206040518083038186803b1580156113fc57600080fd5b505afa158015611410573d6000803e3d6000fd5b505050506040513d602081101561142657600080fd5b505173ffffffffffffffffffffffffffffffffffffffff8681169116145b80156114d957508073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561149157600080fd5b505afa1580156114a5573d6000803e3d6000fd5b505050506040513d60208110156114bb57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff8581169116145b801561156e57508073ffffffffffffffffffffffffffffffffffffffff16639fd0506d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561152657600080fd5b505afa15801561153a573d6000803e3d6000fd5b505050506040513d602081101561155057600080fd5b505173ffffffffffffffffffffffffffffffffffffffff8481169116145b801561160357508073ffffffffffffffffffffffffffffffffffffffff1663bd1024306040518163ffffffff1660e01b815260040160206040518083038186803b1580156115bb57600080fd5b505afa1580156115cf573d6000803e3d6000fd5b505050506040513d60208110156115e557600080fd5b505173ffffffffffffffffffffffffffffffffffffffff8381169116145b611658576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806122ad6022913960400191505060405180910390fd5b8a8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156116c057600080fd5b505afa1580156116d4573d6000803e3d6000fd5b505050506040513d60208110156116ea57600080fd5b505114611742576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806123136023913960400191505060405180910390fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152620186a06024820152905173ffffffffffffffffffffffffffffffffffffffff83169163a9059cbb9160448083019260209291908290030181600087803b1580156117b957600080fd5b505af11580156117cd573d6000803e3d6000fd5b505050506040513d60208110156117e357600080fd5b5051801561189357506117f98a620186a061209a565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b15801561186557600080fd5b505afa158015611879573d6000803e3d6000fd5b505050506040513d602081101561188f57600080fd5b5051145b801561194157506118a78b620186a0612115565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b15801561191357600080fd5b505afa158015611927573d6000803e3d6000fd5b505050506040513d602081101561193d57600080fd5b5051145b611996576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806122f16022913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663095ea7b38d620186a06040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611a0a57600080fd5b505af1158015611a1e573d6000803e3d6000fd5b505050506040513d6020811015611a3457600080fd5b50518015611ae55750604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8e8116602483015291519183169163dd62ed3e91604480820192602092909190829003018186803b158015611ab357600080fd5b505afa158015611ac7573d6000803e3d6000fd5b505050506040513d6020811015611add57600080fd5b5051620186a0145b8015611b965750604080517f23b872dd000000000000000000000000000000000000000000000000000000008152306004820152336024820152620186a06044820152905173ffffffffffffffffffffffffffffffffffffffff8e16916323b872dd9160648083019260209291908290030181600087803b158015611b6957600080fd5b505af1158015611b7d573d6000803e3d6000fd5b505050506040513d6020811015611b9357600080fd5b50515b8015611c3d5750604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152306004820152336024820152905173ffffffffffffffffffffffffffffffffffffffff83169163dd62ed3e916044808301926020929190829003018186803b158015611c0f57600080fd5b505afa158015611c23573d6000803e3d6000fd5b505050506040513d6020811015611c3957600080fd5b5051155b8015611ceb5750611c518a62030d4061209a565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015611cbd57600080fd5b505afa158015611cd1573d6000803e3d6000fd5b505050506040513d6020811015611ce757600080fd5b5051145b8015611d995750611cff8b62030d40612115565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015611d6b57600080fd5b505afa158015611d7f573d6000803e3d6000fd5b505050506040513d6020811015611d9557600080fd5b5051145b611dee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061227f602e913960400191505060405180910390fd5b611df6610185565b611dfe61218c565b505050505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611e9257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600154600354604080517f8f28397000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015290519190921691638f28397091602480830192600092919082900301818387803b158015611f0957600080fd5b505af1158015611f1d573d6000803e3d6000fd5b50505050611f2961218c565b565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b60005473ffffffffffffffffffffffffffffffffffffffff163314611fcd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612039576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806122596026913960400191505060405180910390fd5b6000546040805173ffffffffffffffffffffffffffffffffffffffff9283168152918316602083015280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a161209781612211565b50565b60008282018381101561210e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008282111561218657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60048054604080517fec1e6a4f000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169263ec1e6a4f92828201926000929082900301818387803b1580156121f557600080fd5b505af1158015612209573d6000803e3d6000fd5b503392505050ff5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737356325f3155706772616465723a20617070726f76652f7472616e7366657246726f6d2074657374206661696c656456325f3155706772616465723a206d657461646174612074657374206661696c656456325f3155706772616465723a20302e322046696174546f6b656e206e656564656456325f3155706772616465723a207472616e736665722074657374206661696c656456325f3155706772616465723a2062616c616e63654f662074657374206661696c6564a2646970667358221220de0c15a69a489c645f1997fcf11849db951799ec9ba70806474649a700c9c79364736f6c634300060c0033",
"linkReferences": {},
"deployedLinkReferences": {}
}