0 txs
26 calls
constructor
constructor() payable
functions
buildBestSwap
viewfunction buildBestSwap(address to, bool exactOut, address tokenIn, address tokenOut, uint256 swapAmount, uint256 slippageBps, uint256 deadline) view returns (tuple best, bytes callData, uint256 amountLimit, uint256 msgValue)
buildBestSwapCompressed
viewfunction buildBestSwapCompressed(address to, bool exactOut, address tokenIn, address tokenOut, uint256 swapAmount, uint256 slippageBps, uint256 deadline) view returns (tuple best, bytes callData, bytes callDataCompressed, uint256 amountLimit, uint256 msgValue)
buildBestSwapViaETHMulticall
viewfunction buildBestSwapViaETHMulticall(address to, address refundTo, bool exactOut, address tokenIn, address tokenOut, uint256 swapAmount, uint256 slippageBps, uint256 deadline) view returns (tuple a, tuple b, bytes[] calls, bytes multicall, uint256 msgValue)
buildBestSwapViaETHMulticallCompressed
viewfunction buildBestSwapViaETHMulticallCompressed(address to, address refundTo, bool exactOut, address tokenIn, address tokenOut, uint256 swapAmount, uint256 slippageBps, uint256 deadline) view returns (tuple a, tuple b, bytes[] calls, bytes multicall, bytes multicallCompressed, uint256 msgValue)
cdCompress
purefunction cdCompress(bytes data) pure returns (bytes result)
getQuotes
viewfunction getQuotes(bool exactOut, address tokenIn, address tokenOut, uint256 swapAmount) view returns (tuple best, tuple[] quotes)
limit
viewfunction limit(bool exactOut, uint256 quoted, uint256 bps) view returns (uint256)
quoteAero
viewfunction quoteAero(bool exactOut, address tokenIn, address tokenOut, uint256 swapAmount) view returns (uint256 amountIn, uint256 amountOut, uint256 feeBpsUsed)
quoteAeroCL
viewfunction quoteAeroCL(bool exactOut, address tokenIn, address tokenOut, int24 spacing, uint256 swapAmount) view returns (uint256 amountIn, uint256 amountOut)
quoteV2
viewfunction quoteV2(bool exactOut, address tokenIn, address tokenOut, uint256 swapAmount) view returns (uint256 amountIn, uint256 amountOut)
quoteV3
viewfunction quoteV3(bool exactOut, address tokenIn, address tokenOut, uint24 fee, uint256 swapAmount) view returns (uint256 amountIn, uint256 amountOut)
quoteV4
viewfunction quoteV4(bool exactOut, address tokenIn, address tokenOut, uint24 fee, int24 tickSpacing, address hooks, uint256 swapAmount) view returns (uint256 amountIn, uint256 amountOut)
quoteZAMM
viewfunction quoteZAMM(bool exactOut, uint256 feeOrHook, address tokenIn, address tokenOut, uint256 idIn, uint256 idOut, uint256 swapAmount) view returns (uint256 amountIn, uint256 amountOut)
ZQUOTER_BASE
viewfunction ZQUOTER_BASE() view returns (address)
events
No events.
errors
NoRoute
error NoRoute()
UnsupportedAMM
error UnsupportedAMM()
ZeroAmount
error ZeroAmount()
creation bytecode
0x608080604052612eb490816100128239f3fe610180806040526004361015610013575f80fd5b5f3560e01c9081631106888314610c0d575080632063daeb14610bc157806345bc5b9d14610a775780634e69e1181461098657806361d65dee1461085b578063732ef91a146107ae57806383a0950514610703578063ac67a76e14610615578063b8e2512214610538578063c0bb84b3146103fc578063d2f0267b14610351578063e1fd10bc1461018c578063e453166e1461010f5763e7798987146100b7575f80fd5b3461010b576100eb6100fc6100da6100ce36610dd0565b95949094939193612d6f565b916040949193945195868096610e78565b60e0608086015260e0850190610ed2565b9160a084015260c08301520390f35b5f80fd5b3461010b5761015461018161013561012636610feb565b96959095949194939293611544565b92909192916101726080519461015e60a0519660405198898099610e78565b6080880190610e78565b6101606101008701526101608601906110b5565b90848203610120860152610ed2565b906101408301520390f35b3461010b576102135f61019e36610d51565b9094919291906101ac61112b565b5060405195869485947fe1fd10bc000000000000000000000000000000000000000000000000000000008652600486019094939273ffffffffffffffffffffffffffffffffffffffff90816060946080850198151585521660208401521660408201520152565b038173a8cc0177598531ec7d223e9689fdd50e120b946c5afa8015610346575f915f9161029a575b50906040519182916102518360a0810192610e78565b60a060808401528151809152602060c084019201905f5b818110610276575050500390f35b91935091602060808261028c6001948851610e78565b019401910191849392610268565b9150503d805f833e6102ac8183610f70565b81019060a08183031261010b576102c3828261114f565b9060808101519067ffffffffffffffff821161010b570182601f8201121561010b5780516102f0816114ae565b936102fe6040519586610f70565b81855260208086019260071b8401019281841161010b57602001915b83831061032c5750505050908261023b565b602060809161033b848661114f565b81520192019161031a565b6040513d5f823e3d90fd5b3461010b576103b56103f161038961036836610feb565b9661037a96919695929594939461112b565b5061038361112b565b50611544565b92909192916103e2608051916103d360a051966103bf6103a88461122b565b956040519a8b809b610e78565b60808a0190610e78565b6101806101008901526101808801906110b5565b90868203610120880152610ed2565b90848203610140860152610ed2565b906101608301520390f35b3461010b5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010b57610433610cfc565b61043b610d2e565b6064359073ffffffffffffffffffffffffffffffffffffffff821680920361010b5773ffffffffffffffffffffffffffffffffffffffff90604051937fc0bb84b30000000000000000000000000000000000000000000000000000000085521515600485015260243560248501521660448301526064820152608435608482015260a43560a482015260c43560c482015260408160e48173a8cc0177598531ec7d223e9689fdd50e120b946c5afa908115610346576040915f915f91610509575b5082519182526020820152f35b905061052b9150823d8411610531575b6105238183610f70565b810190611215565b836104fc565b503d610519565b3461010b5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010b5761056f610cfc565b604051907fb8e25122000000000000000000000000000000000000000000000000000000008252151560048201526024356024820152604435604482015260208160648173a8cc0177598531ec7d223e9689fdd50e120b946c5afa8015610346575f906105e2575b602090604051908152f35b506020813d60201161060d575b816105fc60209383610f70565b8101031261010b57602090516105d7565b3d91506105ef565b3461010b5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010b5761064c610cfc565b62ffffff610658610d0b565b73ffffffffffffffffffffffffffffffffffffffff610675610d2e565b8161067e610f15565b93604051967fac67a76e00000000000000000000000000000000000000000000000000000000885215156004880152166024860152166044840152166064820152608435608482015260408160a48173a8cc0177598531ec7d223e9689fdd50e120b946c5afa908115610346576040915f915f91610509575082519182526020820152f35b3461010b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010b5760043567ffffffffffffffff811161010b573660238201121561010b5780600401359061075e82610fb1565b61076b6040519182610f70565b828152366024848401011161010b575f6020846107aa9560246107969601838601378301015261122b565b604051918291602083526020830190610ed2565b0390f35b3461010b5761082360406107c136610d51565b84517f732ef91a000000000000000000000000000000000000000000000000000000008152931515600485015273ffffffffffffffffffffffffffffffffffffffff928316602485015291166044830152606482015291829081906084820190565b038173a8cc0177598531ec7d223e9689fdd50e120b946c5afa908115610346576040915f915f91610509575082519182526020820152f35b3461010b5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010b57610892610cfc565b61089a610d0b565b6108a2610d2e565b6108aa610f15565b90608435918260020b80930361010b5760a4359373ffffffffffffffffffffffffffffffffffffffff851680950361010b5762ffffff9273ffffffffffffffffffffffffffffffffffffffff8092604051987f61d65dee000000000000000000000000000000000000000000000000000000008a52151560048a0152166024880152166044860152166064840152608483015260a482015260c43560c482015260408160e48173a8cc0177598531ec7d223e9689fdd50e120b946c5afa908115610346576040915f915f91610509575082519182526020820152f35b3461010b5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010b576109bd610cfc565b6109c5610d0b565b6109cd610d2e565b90606435918260020b80930361010b5773ffffffffffffffffffffffffffffffffffffffff8092604051957f4e69e118000000000000000000000000000000000000000000000000000000008752151560048701521660248501521660448301526064820152608435608482015260408160a48173a8cc0177598531ec7d223e9689fdd50e120b946c5afa908115610346576040915f915f91610509575082519182526020820152f35b3461010b57610b155f610a8936610dd0565b92610a9b98949896959692919261112b565b5060405198899788977fe7798987000000000000000000000000000000000000000000000000000000008952600489019373ffffffffffffffffffffffffffffffffffffffff80929998979460c097948260e089019c16885215156020880152166040860152166060840152608083015260a08201520152565b038173a8cc0177598531ec7d223e9689fdd50e120b946c5afa801561034657610b62915f915f5f925f92610b92575b5080610b75610b55610b839361122b565b9160405197888098610e78565b6101006080880152610100870190610ed2565b9085820360a0870152610ed2565b9160c084015260e08301520390f35b915050610b839250610bb691503d805f833e610bae8183610f70565b810190611196565b929390929190610b44565b3461010b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010b57602060405173a8cc0177598531ec7d223e9689fdd50e120b946c8152f35b3461010b5760608180610c7c610c2236610d51565b7f11068883000000000000000000000000000000000000000000000000000000008652921515600486015273ffffffffffffffffffffffffffffffffffffffff918216602486015216604484015260648301526084820190565b038173a8cc0177598531ec7d223e9689fdd50e120b946c5afa8015610346575f905f5f91610cbb575b6060935060405192835260208301526040820152f35b5050506060813d606011610cf4575b81610cd760609383610f70565b8101031261010b5780516020820151604090920151606092610ca5565b3d9150610cca565b60043590811515820361010b57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361010b57565b6044359073ffffffffffffffffffffffffffffffffffffffff8216820361010b57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc608091011261010b57600435801515810361010b579060243573ffffffffffffffffffffffffffffffffffffffff8116810361010b579060443573ffffffffffffffffffffffffffffffffffffffff8116810361010b579060643590565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60e091011261010b5760043573ffffffffffffffffffffffffffffffffffffffff8116810361010b5790602435801515810361010b579060443573ffffffffffffffffffffffffffffffffffffffff8116810361010b579060643573ffffffffffffffffffffffffffffffffffffffff8116810361010b57906084359060a4359060c43590565b80516006811015610ea5576060918291845260208101516020850152604081015160408501520151910152565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6064359062ffffff8216820361010b57565b6080810190811067ffffffffffffffff821117610f4357604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f4357604052565b67ffffffffffffffff8111610f4357601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc61010091011261010b5760043573ffffffffffffffffffffffffffffffffffffffff8116810361010b579060243573ffffffffffffffffffffffffffffffffffffffff8116810361010b5790604435801515810361010b579060643573ffffffffffffffffffffffffffffffffffffffff8116810361010b579060843573ffffffffffffffffffffffffffffffffffffffff8116810361010b579060a4359060c4359060e43590565b9080602083519182815201916020808360051b8301019401925f915b8383106110e057505050505090565b909192939460208061111c837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086600196030187528951610ed2565b970193019301919392906110d1565b6040519061113882610f27565b5f6060838281528260208201528260408201520152565b919082608091031261010b5760405161116781610f27565b80928051600681101561010b576060918291845260208101516020850152604081015160408501520151910152565b91909160e08184031261010b576111ad838261114f565b92608082015167ffffffffffffffff811161010b57820181601f8201121561010b578051906111db82610fb1565b926111e96040519485610f70565b8284526020838301011161010b57815f9260208093018386015e830101529160c060a083015192015190565b919082604091031261010b576020825192015190565b90604051918051810160208401915b81810361127e5750506004830180511990528281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00183525f8152602001604052565b6001019160ff83511680156113f75760ff811461136157815360017f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f60208501518083850152801982808216011790828082160117161719806f8421084210842108cc6318c6db6d54be1060071b81811c67ffffffffffffffff1060061b177fc0c8c8d0c8e8d0d8c8e8e0e8d0d8e0f0c8d0e8d0e0e0d8f0d0d0e0d8f8f8f8f86f8421084210842108cc6318c6db6d54be83831c66020408102040810260181a1c601f161a1860031c90150184840390818110908218021880920101920161123a565b506002906080602080860151198061139c575b5085850390818110908218021880601f10601f82180218809501941760f01b8152019161123a565b6113f19150806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1790811c60ff109060031c17601f1890565b5f611374565b925b6020810151801561147a579061145c60029392806fffffffffffffffffffffffffffffffff1060071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1790811c60ff109060031c17601f1890565b81850390818110908218021880910194015b60f01b8152019161123a565b5092601f8484038060201060208218021882607f0390818110908218021880809601920194116113f957929060029161146e565b67ffffffffffffffff8111610f435760051b60200190565b8051156114d35760200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8051600110156114d35760400190565b8051600210156114d35760600190565b8051600310156114d35760800190565b80518210156114d35760209160051b010190565b979596979490939192946101005260c0525f60a0525f60805261156561112b565b60a05261157061112b565b60805260c05115612d475773ffffffffffffffffffffffffffffffffffffffff84161592838015612d29575b8015612cf6575b8015612cc3575b612ba55782612878576115bb61112b565b506040517fe1fd10bc00000000000000000000000000000000000000000000000000000000815260c0515f6004830181905273ffffffffffffffffffffffffffffffffffffffff88166024840152734200000000000000000000000000000000000006604484015260648301919091528160848173a8cc0177598531ec7d223e9689fdd50e120b946c5afa8015610346575f905f906127a8575b60609250508060a0520180511561268657612710905188820302049485975f8761167d61112b565b506040516101408181527fe1fd10bc0000000000000000000000000000000000000000000000000000000090915280518315156004820152734200000000000000000000000000000000000006602482015273ffffffffffffffffffffffffffffffffffffffff8816604482015260648101929092525160849073a8cc0177598531ec7d223e9689fdd50e120b946c5afa908115610346575f915f906126ae575b508160805260608201511561268657606061271092015190820302045b6e404fecaf36e6184245475ee125483593858061265c575b61245c575b851561245457895b60a051516006811015610ea557868d8b8a93155f1461202e576040517f6e0a4f9800000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff938416602482015293151560448501529187166064840152734200000000000000000000000000000000000006608484015260a483019390935260c482015260e48101919091526118348161010481015b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610f70565b9a5b86156120275760c051925b608051516006811015610ea557611c30576040517f6e0a4f980000000000000000000000000000000000000000000000000000000060208201526101005173ffffffffffffffffffffffffffffffffffffffff908116602483015289151560448301527342000000000000000000000000000000000000066064830152909316608484015260a483019390935260c482019290925260e48101919091526118ec816101048101611808565b905b8480611c1a575b159384611beb575b60a051516006811015610ea5576002149081611be3575b81611bb4575b508415611bac5760ff60025b8215611ba457816001915b600201160116947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061197b611965886114ae565b97611973604051998a610f70565b8089526114ae565b015f5b818110611b9357505091859391611a0a9593611808979d61199e876114c6565b526119a8866114c6565b506002936119b587611500565b526119bf86611500565b50611abc575b611a37575b5050506040519283917fac9650d80000000000000000000000000000000000000000000000000000000060208401526020602484015260448301906110b5565b948115611a2d57915b15611a265715611a21575090565b905090565b5050505f90565b5060c05191611a13565b73ffffffffffffffffffffffffffffffffffffffff611ab39381604051937fcb019b840000000000000000000000000000000000000000000000000000000060208601521660248401525f60448401525f606484015216608482015260848152611aa260a482610f70565b611aac8285611530565b5282611530565b505f80806119ca565b91506040517fde0e9a3e0000000000000000000000000000000000000000000000000000000060208201525f602482015260248152611afc604482610f70565b611b0585611510565b52611b0f84611510565b50604051917fcb019b840000000000000000000000000000000000000000000000000000000060208401525f60248401525f60448401525f606484015273ffffffffffffffffffffffffffffffffffffffff8416608484015260848352611b7760a484610f70565b600492611b8386611520565b52611b8d85611520565b506119c5565b806060602080938b0101520161197e565b815f91611931565b60ff5f611926565b6e404fecaf36e6184245475ee1254835915073ffffffffffffffffffffffffffffffffffffffff16145f61191a565b869150611914565b73ffffffffffffffffffffffffffffffffffffffff81166e404fecaf36e6184245475ee12548351494506118fd565b50608051516006811015610ea5576002146118f5565b909192608051516006811015610ea557600103611cec576080516020908101516040517f8b64ad5500000000000000000000000000000000000000000000000000000000928101929092526101005173ffffffffffffffffffffffffffffffffffffffff908116602484015260029091111560448301527342000000000000000000000000000000000000066064830152909416608485015260a484015260c483015260e4820152611ce6816101048101611808565b906118ee565b608051516006811015610ea557600203611dae5773ffffffffffffffffffffffffffffffffffffffff6020608051015194604051957f9d5b5af800000000000000000000000000000000000000000000000000000000602088015282610100511660248801528a15156044880152606487015273420000000000000000000000000000000000000660848701521660a48501525f60c48501525f60e48501526101048401526101248301526101448201526101448152611ce661016482610f70565b608051516006811015610ea557600303611e6a5773ffffffffffffffffffffffffffffffffffffffff62ffffff606460206080510151021694604051957fafeae12b00000000000000000000000000000000000000000000000000000000602088015282610100511660248801528a15156044880152606487015273420000000000000000000000000000000000000660848701521660a485015260c484015260e48301526101048201526101048152611ce661012482610f70565b608051516006811015610ea557600403611f3c5773ffffffffffffffffffffffffffffffffffffffff6020608051015194611ea861ffff8716612e3c565b62ffffff6064604051987f21c0dad20000000000000000000000000000000000000000000000000000000060208b015285610100511660248b01528d151560448b01520216606488015260020b608487015273420000000000000000000000000000000000000660a48701521660c485015260e48401526101048301526101248201526101248152611ce661014482610f70565b608051516006811015610ea557600503611fff5773ffffffffffffffffffffffffffffffffffffffff611f7861ffff6020608051015116612e3c565b94604051957fcb924a0900000000000000000000000000000000000000000000000000000000602088015282610100511660248801528a1515604488015260020b606487015273420000000000000000000000000000000000000660848701521660a485015260c484015260e48301526101048201526101048152611ce661012482610f70565b7fe54fb174000000000000000000000000000000000000000000000000000000005f5260045ffd5b8a92611841565b5050505060a051516006811015610ea5578660018e92145f146120ef5760a0516020908101516040517f8b64ad55000000000000000000000000000000000000000000000000000000009281019290925273ffffffffffffffffffffffffffffffffffffffff92831660248301526002101560448201529086166064820152734200000000000000000000000000000000000006608482015260a481019290925260c482018a905260e48201526120e9816101048101611808565b9a611836565b505060a051516006811015610ea5576002036121c757602060a051015190604051917f9d5b5af800000000000000000000000000000000000000000000000000000000602084015273ffffffffffffffffffffffffffffffffffffffff881660248401528815156044840152606483015273ffffffffffffffffffffffffffffffffffffffff8516608483015273420000000000000000000000000000000000000660a48301525f60c48301525f60e4830152610104820152886101248201528b61014482015261014481526120e961016482610f70565b60a051516006811015610ea5576003036122975762ffffff6064602060a0510151021690604051917fafeae12b00000000000000000000000000000000000000000000000000000000602084015273ffffffffffffffffffffffffffffffffffffffff881660248401528815156044840152606483015273ffffffffffffffffffffffffffffffffffffffff8516608483015273420000000000000000000000000000000000000660a483015260c48201528860e48201528b61010482015261010481526120e961012482610f70565b60a051516006811015610ea55760040361237d57602060a0510151906122c061ffff8316612e3c565b62ffffff6064604051947f21c0dad200000000000000000000000000000000000000000000000000000000602087015273ffffffffffffffffffffffffffffffffffffffff8b1660248701528b151560448701520216606484015260020b608483015273ffffffffffffffffffffffffffffffffffffffff851660a483015273420000000000000000000000000000000000000660c483015260e4820152886101048201528b61012482015261012481526120e961014482610f70565b60a051516006811015610ea557600503611fff576123a461ffff602060a051015116612e3c565b90604051917fcb924a0900000000000000000000000000000000000000000000000000000000602084015273ffffffffffffffffffffffffffffffffffffffff88166024840152881515604484015260020b606483015273ffffffffffffffffffffffffffffffffffffffff8516608483015273420000000000000000000000000000000000000660a483015260c48201528860e48201528b61010482015261010481526120e961012482610f70565b60c051611760565b9350608051516006811015610ea5576125705773ffffffffffffffffffffffffffffffffffffffff61248d85612dd8565b507fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b166034820152602881526124d7604882610f70565b51902060405160208101917fff0000000000000000000000000000000000000000000000000000000000000083527f8909dc15e40173ff4699343b6eb8132c65e18ec6000000000000000000000000602183015260358201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f605582015260558152612565607582610f70565b519020165b93611758565b60556043600260206080510151111561258887612dd8565b5090917fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519281602085019560601b16855260601b16603483015260f81b6048820152602981526125dc604982610f70565b5190206040519073420dd381b31aef6683db6b902084cb0ffece40da60388301526f5af43d82803e903d91602b57fd5bf3ff602483015273a4e46b4f701c62e14df11b48dce76a7d793cd6d76014830152733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152012061256a565b50608051516006811015610ea55715806117535750608051516006811015610ea557600114611753565b7f6586e129000000000000000000000000000000000000000000000000000000005f5260045ffd5b5090503d805f610140513e6126c68161014051610f70565b60a061014051826101405101031261010b576126ea8161014051016101405161114f565b9060806101405101519067ffffffffffffffff821161010b57806101405101601f83610140510101121561010b578161014051015190612729826114ae565b6101205260405160e0526127426101205160e051610f70565b60e051508160e0515260208060e051019260071b846101405101010192816101405101841161010b576101405101602001915b83831061278957505050509060e05161171e565b602060809161279d8461014051018661114f565b815201920191612775565b50503d805f833e6127b98183610f70565b60a082828101031261010b576127d18183018361114f565b9160808101519167ffffffffffffffff831161010b57808201601f84840101121561010b578282015191612817612807846114ae565b6040516101605261016051610f70565b610160515082610160515260208061016051019360071b858301010193828201851161010b578101602001925b84841061285c57505050505060609061016051611655565b602060809161286d8585018761114f565b815201930192612844565b93959361288361112b565b506040517fe1fd10bc00000000000000000000000000000000000000000000000000000000815260c05160016004830152734200000000000000000000000000000000000006602483015273ffffffffffffffffffffffffffffffffffffffff841660448301526064820152965f8860848173a8cc0177598531ec7d223e9689fdd50e120b946c5afa8015610346575f985f91612af9575b50508760805260408801805115612686575161271061270f88820183020104809980516006811015610ea55715908115612ae4575b5015612adc5750955b61296161112b565b506040517fe1fd10bc0000000000000000000000000000000000000000000000000000000081526001600482015273ffffffffffffffffffffffffffffffffffffffff831660248201527342000000000000000000000000000000000000066044820152606481018890525f8160848173a8cc0177598531ec7d223e9689fdd50e120b946c5afa8015610346575f915f91612a20575b50508060a0526040810151156126865761271091604061270f920151908301020104959761173b565b9150503d805f833e612a328183610f70565b60a082828101031261010b57612a4a8183018361114f565b9060808301519067ffffffffffffffff821161010b57808401601f83860101121561010b578184015190612a7d826114ae565b94612a8b6040519687610f70565b82865260208087019360071b858301010193828201851161010b578101602001925b848410612ac0575050505050905f6129f7565b6020608091612ad18585018761114f565b815201930192612aad565b905095612959565b9050516006811015610ea5576001145f612950565b9850503d805f8a3e612b0b818a610f70565b88019760a0818a031261010b57612b22898261114f565b9060808101519067ffffffffffffffff821161010b570189601f8201121561010b578051612b4f816114ae565b9a612b5d6040519c8d610f70565b818c526020808d019260071b8401019281841161010b57602001915b838310612b8b5750505050975f61291b565b6020608091612b9a848661114f565b815201920191612b79565b50909150612bbe949260c0969496519261010051612d6f565b9293919050604080519190612bd38184610f70565b600183527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015f5b818110612cb2575050612c0d826114c6565b52612c17816114c6565b50604051612c2481610f27565b5f81525f60208201525f60408201525f6060820152604051947fac9650d800000000000000000000000000000000000000000000000000000000602087015260206024870152612ca786612c7b60448201866110b5565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101885287610f70565b60a052608052929190565b806060602080938701015201612bfb565b5073420000000000000000000000000000000000000673ffffffffffffffffffffffffffffffffffffffff8316146115aa565b5073420000000000000000000000000000000000000673ffffffffffffffffffffffffffffffffffffffff8616146115a3565b5073ffffffffffffffffffffffffffffffffffffffff82161561159c565b7f1f2a2005000000000000000000000000000000000000000000000000000000005f5260045ffd5b9294612d82929691945f96610a9b61112b565b038173a8cc0177598531ec7d223e9689fdd50e120b946c5afa8015610346575f925f935f935f93612db5575b5093929190565b9250509250612dce91503d805f833e610bae8183610f70565b919390925f612dae565b73ffffffffffffffffffffffffffffffffffffffff8116734200000000000000000000000000000000000006108015612e235773420000000000000000000000000000000000000692565b7342000000000000000000000000000000000000069192565b61ffff1660018114612e785760058114612e7257601e8114612e6c5760648114612e665760020b90565b5060c890565b50603c90565b50600a90565b5060019056fea2646970667358221220f9c4958c2d8cf1db970e515c45bb9a02abbd1f196e7e4f9bd6e2ba0a6a85457964736f6c634300081e0033