baluni-contracts
Version:
Smart Contracts for Baluni
424 lines (423 loc) • 35.4 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "MockOracle",
"sourceName": "contracts/mock/MockOracle.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "usdt",
"type": "address"
},
{
"internalType": "address",
"name": "_usdc",
"type": "address"
},
{
"internalType": "address",
"name": "_wmatic",
"type": "address"
},
{
"internalType": "address",
"name": "weth",
"type": "address"
},
{
"internalType": "address",
"name": "wbtc",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "USDC",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "USDC_TO_USDT_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "USDC_TO_WBTC_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "USDC_TO_WETH_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "USDC_TO_WMATIC_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "USDT_TO_USDC_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "USDT_TO_WBTC_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "USDT_TO_WETH_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "USDT_TO_WMATIC_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WBTC_TO_USDC_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WBTC_TO_USDT_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WBTC_TO_WETH_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WBTC_TO_WMATIC_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WETH_TO_USDC_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WETH_TO_USDT_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WETH_TO_WBTC_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WETH_TO_WMATIC_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WMATIC_TO_USDC_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WMATIC_TO_USDT_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WMATIC_TO_WBTC_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WMATIC_TO_WETH_RATE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WNATIVE",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "fromToken",
"type": "address"
},
{
"internalType": "address",
"name": "toToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "convert",
"outputs": [
{
"internalType": "uint256",
"name": "valuation",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "fromToken",
"type": "address"
},
{
"internalType": "address",
"name": "toToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "convertScaled",
"outputs": [
{
"internalType": "uint256",
"name": "valuation",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "rates",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "treasury",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x6080604052346100335761001d610014610130565b9392909261064f565b610025610038565b6115476109e5823961154790f35b61003e565b60405190565b5f80fd5b601f801991011690565b634e487b7160e01b5f52604160045260245ffd5b9061006a90610042565b810190811060018060401b0382111761008257604052565b61004c565b9061009a610093610038565b9283610060565b565b5f80fd5b60018060a01b031690565b6100b4906100a0565b90565b6100c0816100ab565b036100c757565b5f80fd5b905051906100d8826100b7565b565b919060a08382031261012b576100f2815f85016100cb565b9261010082602083016100cb565b9261012861011184604085016100cb565b9361011f81606086016100cb565b936080016100cb565b90565b61009c565b61014e611f2c8038038061014381610087565b9283398101906100da565b9091929394565b5f1b90565b9061016b60018060a01b0391610155565b9181191691161790565b90565b61018c610187610191926100a0565b610175565b6100a0565b90565b61019d90610178565b90565b6101a990610194565b90565b90565b906101c46101bf6101cb926101a0565b6101ac565b825461015a565b9055565b90565b90565b6101e96101e46101ee926101cf565b610175565b6101d2565b90565b610202670ddc9893b8f693316101d5565b90565b9061020f906101a0565b5f5260205260405f2090565b5f1c90565b60018060a01b031690565b61023761023c9161021b565b610220565b90565b610249905461022b565b90565b90610256906101a0565b5f5260205260405f2090565b9061026e5f1991610155565b9181191691161790565b61028c610287610291926101d2565b610175565b6101d2565b90565b90565b906102ac6102a76102b392610278565b610294565b8254610262565b9055565b90565b6102ce6102c96102d3926102b7565b610175565b6101d2565b90565b6102ec6c110f11bc46bc3efcc5b8ff12236102ba565b90565b90565b61030661030161030b926102ef565b610175565b6101d2565b90565b61031e66052de6f3e9958f6102f2565b90565b90565b61033861033361033d92610321565b610175565b6101d2565b90565b6103546ad47d67cce9223fad7de347610324565b90565b90565b61036e61036961037392610357565b610175565b6101d2565b90565b6103886824efc5d2223b2ab2b261035a565b90565b90565b6103a261039d6103a79261038b565b610175565b6101d2565b90565b6103c16d2d9856fc421a9fd095f8b44c49db61038e565b90565b90565b6103db6103d66103e0926103c4565b610175565b6101d2565b90565b6103f5682506936e734ac2f9266103c7565b90565b90565b61040f61040a610414926103f8565b610175565b6101d2565b90565b61042d6c0236febc16a26943df322289be6103fb565b90565b90565b61044761044261044c92610430565b610175565b6101d2565b90565b610460670de435a2a433cf48610433565b90565b90565b61047a61047561047f92610463565b610175565b6101d2565b90565b610492660533304f826d31610466565b90565b90565b6104ac6104a76104b192610495565b610175565b6101d2565b90565b6104ca6c110dcba2e6f97b2a41a7eba1b8610498565b90565b90565b6104e46104df6104e9926104cd565b610175565b6101d2565b90565b6105006ad4801858112018c8850bae6104d0565b90565b90565b61051a61051561051f92610503565b610175565b6101d2565b90565b61052d610438610506565b90565b90565b61054761054261054c92610530565b610175565b6101d2565b90565b61055e65ac76a57eb9a4610533565b90565b90565b61057861057361057d92610561565b610175565b6101d2565b90565b61058c620b32d1610564565b90565b90565b6105a66105a16105ab9261058f565b610175565b6101d2565b90565b6105ba620b68f7610592565b90565b90565b6105d46105cf6105d9926105bd565b610175565b6101d2565b90565b6105ef69011de1930ce9ab44b5a16105c0565b90565b90565b61060961060461060e926105f2565b610175565b6101d2565b90565b61061e63e163500a6105f5565b90565b90565b61063861063361063d92610621565b610175565b6101d2565b90565b61064c6254dddd610624565b90565b6109c6906106706109e296936106696109dd9660026101af565b60016101af565b61067b3360036101af565b6106a96106866101f1565b6106a46106945f8590610205565b61069e600161023f565b9061024c565b610297565b6106d76106b46102d6565b6106d26106c25f8590610205565b6106cc600261023f565b9061024c565b610297565b6106fc6106e261030e565b6106f76106f05f8590610205565b869061024c565b610297565b610721610707610340565b61071c6107155f8590610205565b889061024c565b610297565b61074661072c610376565b61074161073a5f8790610205565b849061024c565b610297565b6107746107516103aa565b61076f61075f5f8790610205565b610769600261023f565b9061024c565b610297565b6107a261077f6103e3565b61079d61078d5f8790610205565b610797600161023f565b9061024c565b610297565b6107c76107ad610417565b6107c26107bb5f8790610205565b889061024c565b610297565b6107f56107d261044f565b6107f06107e95f6107e3600161023f565b90610205565b849061024c565b610297565b610823610800610482565b61081e6108175f610811600161023f565b90610205565b869061024c565b610297565b61085a61082e6104b4565b6108556108455f61083f600161023f565b90610205565b61084f600261023f565b9061024c565b610297565b6108886108656104ec565b61088361087c5f610876600161023f565b90610205565b889061024c565b610297565b6108b6610893610522565b6108b16108aa5f6108a4600261023f565b90610205565b869061024c565b610297565b6108e46108c161054f565b6108df6108d85f6108d2600261023f565b90610205565b889061024c565b610297565b61091b6108ef610580565b6109166109065f610900600261023f565b90610205565b610910600161023f565b9061024c565b610297565b6109496109266105ae565b61094461093d5f610937600261023f565b90610205565b849061024c565b610297565b6109776109546105dc565b6109726109625f8990610205565b61096c600261023f565b9061024c565b610297565b6109a5610982610611565b6109a06109905f8990610205565b61099a600161023f565b9061024c565b610297565b6109c16109b0610611565b916109bc5f8890610205565b61024c565b610297565b6109d86109d1610640565b935f610205565b61024c565b610297565b56fe60806040526004361015610013575b610e4f565b61001d5f356101bc565b806302098719146101b75780630e091762146101b2578063187029b8146101ad5780631a1e4a1f146101a8578063248391ff146101a35780634039e6871461019e5780634314639914610199578063443dc789146101945780635107e94e1461018f57806353ff493e1461018a5780635fc8cd691461018557806361d027b3146101805780637b0cf44d1461017b57806389a30271146101765780638e5139ed1461017157806397db8e021461016c578063a58a7f8a14610167578063ae3bcc9614610162578063b27b5e751461015d578063b381cf4014610158578063b537d24b14610153578063b9e938101461014e578063c018498314610149578063d135e3be14610144578063e2338e721461013f5763e30f68920361000e57610e1a565b610da5565b610d2f565b610cbb565b610c4d565b610bd5565b610b62565b610b1d565b610ae8565b610a77565b610a04565b610992565b610919565b6108d4565b6107c9565b610720565b6106b1565b61063d565b6105c5565b61054f565b6104e1565b610471565b610397565b61031f565b6102b2565b610244565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f9103126101da57565b6101cc565b90565b90565b90565b6101fc6101f7610201926101df565b6101e5565b6101e2565b90565b610214660533304f826d316101e8565b90565b61021f610204565b90565b61022b906101e2565b9052565b9190610242905f60208501940190610222565b565b34610274576102543660046101d0565b61027061025f610217565b6102676101c2565b9182918261022f565b0390f35b6101c8565b90565b61029061028b61029592610279565b6101e5565b6101e2565b90565b6102a4620b68f761027c565b90565b6102af610298565b90565b346102e2576102c23660046101d0565b6102de6102cd6102a7565b6102d56101c2565b9182918261022f565b0390f35b6101c8565b90565b6102fe6102f9610303926102e7565b6101e5565b6101e2565b90565b6103116104386102ea565b90565b61031c610306565b90565b3461034f5761032f3660046101d0565b61034b61033a610314565b6103426101c2565b9182918261022f565b0390f35b6101c8565b90565b61036b61036661037092610354565b6101e5565b6101e2565b90565b6103896c110f11bc46bc3efcc5b8ff1223610357565b90565b610394610373565b90565b346103c7576103a73660046101d0565b6103c36103b261038c565b6103ba6101c2565b9182918261022f565b0390f35b6101c8565b73ffffffffffffffffffffffffffffffffffffffff1690565b6103ee906103cc565b90565b6103fa816103e5565b0361040157565b5f80fd5b90503590610412826103f1565b565b61041d816101e2565b0361042457565b5f80fd5b9050359061043582610414565b565b909160608284031261046c57610469610452845f8501610405565b936104608160208601610405565b93604001610428565b90565b6101cc565b346104a25761049e61048d610487366004610437565b91611073565b6104956101c2565b9182918261022f565b0390f35b6101c8565b90565b6104be6104b96104c3926104a7565b6101e5565b6101e2565b90565b6104d363e163500a6104aa565b90565b6104de6104c6565b90565b34610511576104f13660046101d0565b61050d6104fc6104d6565b6105046101c2565b9182918261022f565b0390f35b6101c8565b90565b61052d61052861053292610516565b6101e5565b6101e2565b90565b6105416254dddd610519565b90565b61054c610535565b90565b3461057f5761055f3660046101d0565b61057b61056a610544565b6105726101c2565b9182918261022f565b0390f35b6101c8565b90565b61059b6105966105a092610584565b6101e5565b6101e2565b90565b6105b76ad47d67cce9223fad7de347610587565b90565b6105c26105a3565b90565b346105f5576105d53660046101d0565b6105f16105e06105ba565b6105e86101c2565b9182918261022f565b0390f35b6101c8565b90565b61061161060c610616926105fa565b6101e5565b6101e2565b90565b61062f6c110dcba2e6f97b2a41a7eba1b86105fd565b90565b61063a610619565b90565b3461066d5761064d3660046101d0565b610669610658610632565b6106606101c2565b9182918261022f565b0390f35b6101c8565b90565b61068961068461068e92610672565b6101e5565b6101e2565b90565b6106a3682506936e734ac2f926610675565b90565b6106ae610691565b90565b346106e1576106c13660046101d0565b6106dd6106cc6106a6565b6106d46101c2565b9182918261022f565b0390f35b6101c8565b90565b6106fd6106f8610702926106e6565b6101e5565b6101e2565b90565b61071263df77b36f6106e9565b90565b61071d610705565b90565b34610750576107303660046101d0565b61074c61073b610715565b6107436101c2565b9182918261022f565b0390f35b6101c8565b1c90565b73ffffffffffffffffffffffffffffffffffffffff1690565b6107829060086107879302610755565b610759565b90565b906107959154610772565b90565b6107a460035f9061078a565b90565b6107b0906103e5565b9052565b91906107c7905f602085019401906107a7565b565b346107f9576107d93660046101d0565b6107f56107e4610798565b6107ec6101c2565b918291826107b4565b0390f35b6101c8565b9190604083820312610826578061081a610823925f8601610405565b93602001610405565b90565b6101cc565b61083f61083a610844926103cc565b6101e5565b6103cc565b90565b6108509061082b565b90565b61085c90610847565b90565b9061086990610853565b5f5260205260405f2090565b9061087f90610853565b5f5260205260405f2090565b90565b61089e9060086108a39302610755565b61088b565b90565b906108b1915461088e565b90565b6108cc6108d1926108c75f935f9461085f565b610875565b6108a6565b90565b34610905576109016108f06108ea3660046107fe565b906108b4565b6108f86101c2565b9182918261022f565b0390f35b6101c8565b61091660015f9061078a565b90565b34610949576109293660046101d0565b61094561093461090a565b61093c6101c2565b918291826107b4565b0390f35b6101c8565b90565b61096561096061096a9261094e565b6101e5565b6101e2565b90565b6109846d2d9856fc421a9fd095f8b44c49db610951565b90565b61098f61096d565b90565b346109c2576109a23660046101d0565b6109be6109ad610987565b6109b56101c2565b9182918261022f565b0390f35b6101c8565b90565b6109de6109d96109e3926109c7565b6101e5565b6101e2565b90565b6109f666052de6f3e9958f6109ca565b90565b610a016109e6565b90565b34610a3457610a143660046101d0565b610a30610a1f6109f9565b610a276101c2565b9182918261022f565b0390f35b6101c8565b90565b610a50610a4b610a5592610a39565b6101e5565b6101e2565b90565b610a69670ddc9893b8f69331610a3c565b90565b610a74610a58565b90565b34610aa757610a873660046101d0565b610aa3610a92610a6c565b610a9a6101c2565b9182918261022f565b0390f35b6101c8565b90565b610ac3610abe610ac892610aac565b6101e5565b6101e2565b90565b610ada65ac76a57eb9a4610aaf565b90565b610ae5610acb565b90565b34610b1857610af83660046101d0565b610b14610b03610add565b610b0b6101c2565b9182918261022f565b0390f35b6101c8565b34610b4e57610b4a610b39610b33366004610437565b91611299565b610b416101c2565b9182918261022f565b0390f35b6101c8565b610b5f60025f9061078a565b90565b34610b9257610b723660046101d0565b610b8e610b7d610b53565b610b856101c2565b918291826107b4565b0390f35b6101c8565b90565b610bae610ba9610bb392610b97565b6101e5565b6101e2565b90565b610bc7670de435a2a433cf48610b9a565b90565b610bd2610bb6565b90565b34610c0557610be53660046101d0565b610c01610bf0610bca565b610bf86101c2565b9182918261022f565b0390f35b6101c8565b90565b610c21610c1c610c2692610c0a565b6101e5565b6101e2565b90565b610c3f6c0236febc16a26943df322289be610c0d565b90565b610c4a610c29565b90565b34610c7d57610c5d3660046101d0565b610c79610c68610c42565b610c706101c2565b9182918261022f565b0390f35b6101c8565b90565b610c99610c94610c9e92610c82565b6101e5565b6101e2565b90565b610cad620b32d1610c85565b90565b610cb8610ca1565b90565b34610ceb57610ccb3660046101d0565b610ce7610cd6610cb0565b610cde6101c2565b9182918261022f565b0390f35b6101c8565b90565b610d07610d02610d0c92610cf0565b6101e5565b6101e2565b90565b610d216824efc5d2223b2ab2b2610cf3565b90565b610d2c610d0f565b90565b34610d5f57610d3f3660046101d0565b610d5b610d4a610d24565b610d526101c2565b9182918261022f565b0390f35b6101c8565b90565b610d7b610d76610d8092610d64565b6101e5565b6101e2565b90565b610d976ad4801858112018c8850bae610d67565b90565b610da2610d83565b90565b34610dd557610db53660046101d0565b610dd1610dc0610d9a565b610dc86101c2565b9182918261022f565b0390f35b6101c8565b90565b610df1610dec610df692610dda565b6101e5565b6101e2565b90565b610e0c69011de1930ce9ab44b5a1610ddd565b90565b610e17610df9565b90565b34610e4a57610e2a3660046101d0565b610e46610e35610e0f565b610e3d6101c2565b9182918261022f565b0390f35b6101c8565b5f80fd5b5f90565b610e609061082b565b90565b610e6c90610e57565b90565b610e7890610847565b90565b601f801991011690565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90610ebc90610e7b565b810190811067ffffffffffffffff821117610ed657604052565b610e85565b60e01b90565b60ff1690565b610ef081610ee1565b03610ef757565b5f80fd5b90505190610f0882610ee7565b565b90602082820312610f2357610f20915f01610efb565b90565b6101cc565b5f0190565b610f356101c2565b3d5f823e3d90fd5b5f1c90565b610f4e610f5391610f3d565b61088b565b90565b610f609054610f42565b90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b610f9990610ee1565b604d8111610fa757600a0a90565b610f63565b610fbb610fc1919392936101e2565b926101e2565b91610fcd8382026101e2565b928184041490151715610fdc57565b610f63565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b61101a611020916101e2565b916101e2565b90811561102b570490565b610fe1565b61103c61104291610ee1565b91610ee1565b90039060ff821161104f57565b610f63565b90565b61106b61106661107092611054565b6101e5565b6101e2565b90565b91909161107e610e53565b50611087610e53565b506110b4602061109e61109984610e63565b610e6f565b63313ce567906110ac6101c2565b938492610edb565b825281806110c460048201610f28565b03915afa801561127557611104915f91611247575b509360206110ee6110e983610e63565b610e6f565b63313ce567906110fc6101c2565b948592610edb565b8252818061111460048201610f28565b03915afa91821561124257611145611159926111406111689561114a945f91611214575b50965f61085f565b610875565b610f56565b61115386610f90565b90610fac565b61116283610f90565b9061100e565b92611171610e53565b508061118561117f84610ee1565b91610ee1565b10155f146111d0576111b5926111aa6111a56111cc96946111b094611030565b610f90565b9061100e565b610fac565b6111c6670de0b6b3a7640000611057565b9061100e565b5b90565b6111f8926111ed6111e86111f39361120f9795611030565b610f90565b90610fac565b610fac565b611209670de0b6b3a7640000611057565b9061100e565b6111cd565b611235915060203d811161123b575b61122d8183610eb2565b810190610f0a565b5f611138565b503d611223565b610f2d565b611268915060203d811161126e575b6112608183610eb2565b810190610f0a565b5f6110d9565b503d611256565b610f2d565b90565b61129161128c6112969261127a565b6101e5565b610ee1565b90565b6112d8926112a5610e53565b506112ae610e53565b5060206112c26112bd84610e63565b610e6f565b63313ce567906112d06101c2565b968792610edb565b825281806112e860048201610f28565b03915afa801561150c57611328945f916114de575b5092602061131261130d83610e63565b610e6f565b63313ce567906113206101c2565b978892610edb565b8252818061133860048201610f28565b03915afa9081156114d95761137161136c6113809261136761138f956114059a5f916114ab575b50975f61085f565b610875565b610f56565b61137a86610f90565b90610fac565b61138984610f90565b9061100e565b91611398610e53565b506113a1610e53565b506113be6113b960126113b4849161127d565b611030565b610f90565b93806113d26113cc84610ee1565b91610ee1565b145f146114085750506113ff916113e891610fac565b6113f9670de0b6b3a7640000611057565b9061100e565b5b610fac565b90565b8061141b61141584610ee1565b91610ee1565b115f146114675761144a9261143f61143a611461969461144594611030565b610f90565b9061100e565b610fac565b61145b670de0b6b3a7640000611057565b9061100e565b5b611400565b61148f9261148461147f61148a936114a69795611030565b610f90565b90610fac565b610fac565b6114a0670de0b6b3a7640000611057565b9061100e565b611462565b6114cc915060203d81116114d2575b6114c48183610eb2565b810190610f0a565b5f61135f565b503d6114ba565b610f2d565b6114ff915060203d8111611505575b6114f78183610eb2565b810190610f0a565b5f6112fd565b503d6114ed565b610f2d56fea2646970667358221220b174cb9554b3d690fb93594256dd7cc922c6f287ed8936198d565cbb69e106a964736f6c63430008190033",
"deployedBytecode": "0x60806040526004361015610013575b610e4f565b61001d5f356101bc565b806302098719146101b75780630e091762146101b2578063187029b8146101ad5780631a1e4a1f146101a8578063248391ff146101a35780634039e6871461019e5780634314639914610199578063443dc789146101945780635107e94e1461018f57806353ff493e1461018a5780635fc8cd691461018557806361d027b3146101805780637b0cf44d1461017b57806389a30271146101765780638e5139ed1461017157806397db8e021461016c578063a58a7f8a14610167578063ae3bcc9614610162578063b27b5e751461015d578063b381cf4014610158578063b537d24b14610153578063b9e938101461014e578063c018498314610149578063d135e3be14610144578063e2338e721461013f5763e30f68920361000e57610e1a565b610da5565b610d2f565b610cbb565b610c4d565b610bd5565b610b62565b610b1d565b610ae8565b610a77565b610a04565b610992565b610919565b6108d4565b6107c9565b610720565b6106b1565b61063d565b6105c5565b61054f565b6104e1565b610471565b610397565b61031f565b6102b2565b610244565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f9103126101da57565b6101cc565b90565b90565b90565b6101fc6101f7610201926101df565b6101e5565b6101e2565b90565b610214660533304f826d316101e8565b90565b61021f610204565b90565b61022b906101e2565b9052565b9190610242905f60208501940190610222565b565b34610274576102543660046101d0565b61027061025f610217565b6102676101c2565b9182918261022f565b0390f35b6101c8565b90565b61029061028b61029592610279565b6101e5565b6101e2565b90565b6102a4620b68f761027c565b90565b6102af610298565b90565b346102e2576102c23660046101d0565b6102de6102cd6102a7565b6102d56101c2565b9182918261022f565b0390f35b6101c8565b90565b6102fe6102f9610303926102e7565b6101e5565b6101e2565b90565b6103116104386102ea565b90565b61031c610306565b90565b3461034f5761032f3660046101d0565b61034b61033a610314565b6103426101c2565b9182918261022f565b0390f35b6101c8565b90565b61036b61036661037092610354565b6101e5565b6101e2565b90565b6103896c110f11bc46bc3efcc5b8ff1223610357565b90565b610394610373565b90565b346103c7576103a73660046101d0565b6103c36103b261038c565b6103ba6101c2565b9182918261022f565b0390f35b6101c8565b73ffffffffffffffffffffffffffffffffffffffff1690565b6103ee906103cc565b90565b6103fa816103e5565b0361040157565b5f80fd5b90503590610412826103f1565b565b61041d816101e2565b0361042457565b5f80fd5b9050359061043582610414565b565b909160608284031261046c57610469610452845f8501610405565b936104608160208601610405565b93604001610428565b90565b6101cc565b346104a25761049e61048d610487366004610437565b91611073565b6104956101c2565b9182918261022f565b0390f35b6101c8565b90565b6104be6104b96104c3926104a7565b6101e5565b6101e2565b90565b6104d363e163500a6104aa565b90565b6104de6104c6565b90565b34610511576104f13660046101d0565b61050d6104fc6104d6565b6105046101c2565b9182918261022f565b0390f35b6101c8565b90565b61052d61052861053292610516565b6101e5565b6101e2565b90565b6105416254dddd610519565b90565b61054c610535565b90565b3461057f5761055f3660046101d0565b61057b61056a610544565b6105726101c2565b9182918261022f565b0390f35b6101c8565b90565b61059b6105966105a092610584565b6101e5565b6101e2565b90565b6105b76ad47d67cce9223fad7de347610587565b90565b6105c26105a3565b90565b346105f5576105d53660046101d0565b6105f16105e06105ba565b6105e86101c2565b9182918261022f565b0390f35b6101c8565b90565b61061161060c610616926105fa565b6101e5565b6101e2565b90565b61062f6c110dcba2e6f97b2a41a7eba1b86105fd565b90565b61063a610619565b90565b3461066d5761064d3660046101d0565b610669610658610632565b6106606101c2565b9182918261022f565b0390f35b6101c8565b90565b61068961068461068e92610672565b6101e5565b6101e2565b90565b6106a3682506936e734ac2f926610675565b90565b6106ae610691565b90565b346106e1576106c13660046101d0565b6106dd6106cc6106a6565b6106d46101c2565b9182918261022f565b0390f35b6101c8565b90565b6106fd6106f8610702926106e6565b6101e5565b6101e2565b90565b61071263df77b36f6106e9565b90565b61071d610705565b90565b34610750576107303660046101d0565b61074c61073b610715565b6107436101c2565b9182918261022f565b0390f35b6101c8565b1c90565b73ffffffffffffffffffffffffffffffffffffffff1690565b6107829060086107879302610755565b610759565b90565b906107959154610772565b90565b6107a460035f9061078a565b90565b6107b0906103e5565b9052565b91906107c7905f602085019401906107a7565b565b346107f9576107d93660046101d0565b6107f56107e4610798565b6107ec6101c2565b918291826107b4565b0390f35b6101c8565b9190604083820312610826578061081a610823925f8601610405565b93602001610405565b90565b6101cc565b61083f61083a610844926103cc565b6101e5565b6103cc565b90565b6108509061082b565b90565b61085c90610847565b90565b9061086990610853565b5f5260205260405f2090565b9061087f90610853565b5f5260205260405f2090565b90565b61089e9060086108a39302610755565b61088b565b90565b906108b1915461088e565b90565b6108cc6108d1926108c75f935f9461085f565b610875565b6108a6565b90565b34610905576109016108f06108ea3660046107fe565b906108b4565b6108f86101c2565b9182918261022f565b0390f35b6101c8565b61091660015f9061078a565b90565b34610949576109293660046101d0565b61094561093461090a565b61093c6101c2565b918291826107b4565b0390f35b6101c8565b90565b61096561096061096a9261094e565b6101e5565b6101e2565b90565b6109846d2d9856fc421a9fd095f8b44c49db610951565b90565b61098f61096d565b90565b346109c2576109a23660046101d0565b6109be6109ad610987565b6109b56101c2565b9182918261022f565b0390f35b6101c8565b90565b6109de6109d96109e3926109c7565b6101e5565b6101e2565b90565b6109f666052de6f3e9958f6109ca565b90565b610a016109e6565b90565b34610a3457610a143660046101d0565b610a30610a1f6109f9565b610a276101c2565b9182918261022f565b0390f35b6101c8565b90565b610a50610a4b610a5592610a39565b6101e5565b6101e2565b90565b610a69670ddc9893b8f69331610a3c565b90565b610a74610a58565b90565b34610aa757610a873660046101d0565b610aa3610a92610a6c565b610a9a6101c2565b9182918261022f565b0390f35b6101c8565b90565b610ac3610abe610ac892610aac565b6101e5565b6101e2565b90565b610ada65ac76a57eb9a4610aaf565b90565b610ae5610acb565b90565b34610b1857610af83660046101d0565b610b14610b03610add565b610b0b6101c2565b9182918261022f565b0390f35b6101c8565b34610b4e57610b4a610b39610b33366004610437565b91611299565b610b416101c2565b9182918261022f565b0390f35b6101c8565b610b5f60025f9061078a565b90565b34610b9257610b723660046101d0565b610b8e610b7d610b53565b610b856101c2565b918291826107b4565b0390f35b6101c8565b90565b610bae610ba9610bb392610b97565b6101e5565b6101e2565b90565b610bc7670de435a2a433cf48610b9a565b90565b610bd2610bb6565b90565b34610c0557610be53660046101d0565b610c01610bf0610bca565b610bf86101c2565b9182918261022f565b0390f35b6101c8565b90565b610c21610c1c610c2692610c0a565b6101e5565b6101e2565b90565b610c3f6c0236febc16a26943df322289be610c0d565b90565b610c4a610c29565b90565b34610c7d57610c5d3660046101d0565b610c79610c68610c42565b610c706101c2565b9182918261022f565b0390f35b6101c8565b90565b610c99610c94610c9e92610c82565b6101e5565b6101e2565b90565b610cad620b32d1610c85565b90565b610cb8610ca1565b90565b34610ceb57610ccb3660046101d0565b610ce7610cd6610cb0565b610cde6101c2565b9182918261022f565b0390f35b6101c8565b90565b610d07610d02610d0c92610cf0565b6101e5565b6101e2565b90565b610d216824efc5d2223b2ab2b2610cf3565b90565b610d2c610d0f565b90565b34610d5f57610d3f3660046101d0565b610d5b610d4a610d24565b610d526101c2565b9182918261022f565b0390f35b6101c8565b90565b610d7b610d76610d8092610d64565b6101e5565b6101e2565b90565b610d976ad4801858112018c8850bae610d67565b90565b610da2610d83565b90565b34610dd557610db53660046101d0565b610dd1610dc0610d9a565b610dc86101c2565b9182918261022f565b0390f35b6101c8565b90565b610df1610dec610df692610dda565b6101e5565b6101e2565b90565b610e0c69011de1930ce9ab44b5a1610ddd565b90565b610e17610df9565b90565b34610e4a57610e2a3660046101d0565b610e46610e35610e0f565b610e3d6101c2565b9182918261022f565b0390f35b6101c8565b5f80fd5b5f90565b610e609061082b565b90565b610e6c90610e57565b90565b610e7890610847565b90565b601f801991011690565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90610ebc90610e7b565b810190811067ffffffffffffffff821117610ed657604052565b610e85565b60e01b90565b60ff1690565b610ef081610ee1565b03610ef757565b5f80fd5b90505190610f0882610ee7565b565b90602082820312610f2357610f20915f01610efb565b90565b6101cc565b5f0190565b610f356101c2565b3d5f823e3d90fd5b5f1c90565b610f4e610f5391610f3d565b61088b565b90565b610f609054610f42565b90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b610f9990610ee1565b604d8111610fa757600a0a90565b610f63565b610fbb610fc1919392936101e2565b926101e2565b91610fcd8382026101e2565b928184041490151715610fdc57565b610f63565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b61101a611020916101e2565b916101e2565b90811561102b570490565b610fe1565b61103c61104291610ee1565b91610ee1565b90039060ff821161104f57565b610f63565b90565b61106b61106661107092611054565b6101e5565b6101e2565b90565b91909161107e610e53565b50611087610e53565b506110b4602061109e61109984610e63565b610e6f565b63313ce567906110ac6101c2565b938492610edb565b825281806110c460048201610f28565b03915afa801561127557611104915f91611247575b509360206110ee6110e983610e63565b610e6f565b63313ce567906110fc6101c2565b948592610edb565b8252818061111460048201610f28565b03915afa91821561124257611145611159926111406111689561114a945f91611214575b50965f61085f565b610875565b610f56565b61115386610f90565b90610fac565b61116283610f90565b9061100e565b92611171610e53565b508061118561117f84610ee1565b91610ee1565b10155f146111d0576111b5926111aa6111a56111cc96946111b094611030565b610f90565b9061100e565b610fac565b6111c6670de0b6b3a7640000611057565b9061100e565b5b90565b6111f8926111ed6111e86111f39361120f9795611030565b610f90565b90610fac565b610fac565b611209670de0b6b3a7640000611057565b9061100e565b6111cd565b611235915060203d811161123b575b61122d8183610eb2565b810190610f0a565b5f611138565b503d611223565b610f2d565b611268915060203d811161126e575b6112608183610eb2565b810190610f0a565b5f6110d9565b503d611256565b610f2d565b90565b61129161128c6112969261127a565b6101e5565b610ee1565b90565b6112d8926112a5610e53565b506112ae610e53565b5060206112c26112bd84610e63565b610e6f565b63313ce567906112d06101c2565b968792610edb565b825281806112e860048201610f28565b03915afa801561150c57611328945f916114de575b5092602061131261130d83610e63565b610e6f565b63313ce567906113206101c2565b978892610edb565b8252818061133860048201610f28565b03915afa9081156114d95761137161136c6113809261136761138f956114059a5f916114ab575b50975f61085f565b610875565b610f56565b61137a86610f90565b90610fac565b61138984610f90565b9061100e565b91611398610e53565b506113a1610e53565b506113be6113b960126113b4849161127d565b611030565b610f90565b93806113d26113cc84610ee1565b91610ee1565b145f146114085750506113ff916113e891610fac565b6113f9670de0b6b3a7640000611057565b9061100e565b5b610fac565b90565b8061141b61141584610ee1565b91610ee1565b115f146114675761144a9261143f61143a611461969461144594611030565b610f90565b9061100e565b610fac565b61145b670de0b6b3a7640000611057565b9061100e565b5b611400565b61148f9261148461147f61148a936114a69795611030565b610f90565b90610fac565b610fac565b6114a0670de0b6b3a7640000611057565b9061100e565b611462565b6114cc915060203d81116114d2575b6114c48183610eb2565b810190610f0a565b5f61135f565b503d6114ba565b610f2d565b6114ff915060203d8111611505575b6114f78183610eb2565b810190610f0a565b5f6112fd565b503d6114ed565b610f2d56fea2646970667358221220b174cb9554b3d690fb93594256dd7cc922c6f287ed8936198d565cbb69e106a964736f6c63430008190033",
"linkReferences": {},
"deployedLinkReferences": {}
}