0 txs
0 calls
constructor
constructor(address indexerStakingToken)
functions
getLocators
viewfunction getLocators(address signerToken, address senderToken, bytes2 protocol, address cursor, uint256 limit) view returns (bytes32[] locators, uint256[] scores, address nextCursor)
getStakedAmount
viewfunction getStakedAmount(address user, address signerToken, address senderToken, bytes2 protocol) view returns (uint256 stakedAmount)
indexes
viewfunction indexes(address, address, bytes2) view returns (address)
isOwner
viewfunction isOwner() view returns (bool)
locatorWhitelists
viewfunction locatorWhitelists(bytes2) view returns (address)
owner
viewfunction owner() view returns (address)
stakingToken
viewfunction stakingToken() view returns (address)
tokenBlacklist
viewfunction tokenBlacklist(address) view returns (bool)
addTokenToBlacklist
nonpayablefunction addTokenToBlacklist(address token)
createIndex
nonpayablefunction createIndex(address signerToken, address senderToken, bytes2 protocol) returns (address)
removeTokenFromBlacklist
nonpayablefunction removeTokenFromBlacklist(address token)
renounceOwnership
nonpayablefunction renounceOwnership()
setIntent
nonpayablefunction setIntent(address signerToken, address senderToken, bytes2 protocol, uint256 stakingAmount, bytes32 locator)
setLocatorWhitelist
nonpayablefunction setLocatorWhitelist(bytes2 protocol, address newLocatorWhitelist)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unsetIntent
nonpayablefunction unsetIntent(address signerToken, address senderToken, bytes2 protocol)
events
AddTokenToBlacklist
event AddTokenToBlacklist(address token)
CreateIndex
event CreateIndex(address indexed signerToken, address indexed senderToken, bytes2 protocol, address indexAddress)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RemoveTokenFromBlacklist
event RemoveTokenFromBlacklist(address token)
Stake
event Stake(address indexed staker, address indexed signerToken, address indexed senderToken, bytes2 protocol, uint256 stakeAmount)
Unstake
event Unstake(address indexed staker, address indexed signerToken, address indexed senderToken, bytes2 protocol, uint256 stakeAmount)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506040516200385e3803806200385e8339810160408190526200003491620000cc565b620000476001600160e01b03620000b516565b600080546001600160a01b0319166001600160a01b03928316178082556040519216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b0319166001600160a01b039290921691909117905562000121565b3390565b8051620000c68162000107565b92915050565b600060208284031215620000df57600080fd5b6000620000ed8484620000b9565b949350505050565b60006001600160a01b038216620000c6565b6200011281620000f5565b81146200011e57600080fd5b50565b61372d80620001316000396000f3fe60806040523480156200001157600080fd5b5060043610620001185760003560e01c80639dc9762a11620000a5578063cffaf5f5116200006f578063cffaf5f51462000244578063d57cfaad146200026c578063df9d6d671462000283578063f2fde38b146200029a5762000118565b80639dc9762a14620001e85780639f80679f14620001ff5780639fa451021462000216578063cd135549146200022d5762000118565b80638da5cb5b11620000e75780638da5cb5b14620001885780638f32d59b14620001a15780639173deca14620001ba578063948ee3f614620001d15762000118565b806303f868f7146200011d578063715018a6146200014c57806372f702f31462000158578063854437dc1462000171575b600080fd5b620001346200012e36600462001cfb565b620002b1565b60405162000143919062002380565b60405180910390f35b620001566200041d565b005b62000162620004d8565b60405162000143919062002390565b620001566200018236600462001cda565b620004f4565b62000192620005f1565b6040516200014391906200225b565b620001ab6200060d565b60405162000143919062002341565b62000192620001cb36600462001f35565b6200064d565b62000156620001e236600462001e39565b62000675565b62000162620001f936600462001d65565b62000d6b565b620001926200021036600462001d65565b62000da4565b620001ab6200022736600462001cda565b62000f71565b620001566200023e36600462001f56565b62000f86565b6200025b6200025536600462001db9565b62001040565b604051620001439392919062002307565b620001566200027d36600462001cda565b62001279565b620001566200029436600462001d65565b62001368565b62000156620002ab36600462001cda565b6200137b565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600260209081526040808320868516845282528083207fffff00000000000000000000000000000000000000000000000000000000000086168452909152812054909116620003205750600062000415565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600260209081526040808320878516845282528083207fffff00000000000000000000000000000000000000000000000000000000000087168452909152908190205490517fd47875d000000000000000000000000000000000000000000000000000000000815291169063d47875d090620003be9088906004016200225b565b60206040518083038186803b158015620003d757600080fd5b505afa158015620003ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000412919081019062001f95565b90505b949350505050565b620004276200060d565b62000469576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046090620023e8565b60405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b620004fe6200060d565b62000537576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046090620023e8565b73ffffffffffffffffffffffffffffffffffffffff811660009081526004602052604090205460ff16620005ee5773ffffffffffffffffffffffffffffffffffffffff81166000908152600460205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fe53b519de693da0496205f0705fa49c937a9045cb26b6f67711cd2205195540190620005e59083906200225b565b60405180910390a15b50565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6000805473ffffffffffffffffffffffffffffffffffffffff1662000631620013c9565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152600260209081526040808320848916845282528083207fffff000000000000000000000000000000000000000000000000000000000000881684529091529020548691869186911662000713576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046090620023c4565b7fffff000000000000000000000000000000000000000000000000000000000000861660009081526003602052604090205473ffffffffffffffffffffffffffffffffffffffff161562000876577fffff0000000000000000000000000000000000000000000000000000000000008616600090815260036020526040908190205490517fb7dc560f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063b7dc560f90620007e990879060040162002380565b60206040518083038186803b1580156200080257600080fd5b505afa15801562000817573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200083d919081019062001f14565b62000876576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046090620023b2565b73ffffffffffffffffffffffffffffffffffffffff881660009081526004602052604090205460ff16158015620008d3575073ffffffffffffffffffffffffffffffffffffffff871660009081526004602052604090205460ff16155b6200090c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046090620023fa565b73ffffffffffffffffffffffffffffffffffffffff80891660009081526002602090815260408083208b8516845282528083207fffff0000000000000000000000000000000000000000000000000000000000008b1684529091528082205490517f4ec63ffe00000000000000000000000000000000000000000000000000000000815291928392911690634ec63ffe90620009ad9033906004016200226b565b60206040518083038186803b158015620009c657600080fd5b505afa158015620009db573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000a01919081019062001f95565b149050801562000c5957851562000afd576001546040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906323b872dd9062000a6e90339030908b906004016200227b565b602060405180830381600087803b15801562000a8957600080fd5b505af115801562000a9e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000ac4919081019062001f14565b62000afd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046090620023d6565b73ffffffffffffffffffffffffffffffffffffffff808a1660009081526002602090815260408083208c8516845282528083207fffff0000000000000000000000000000000000000000000000000000000000008c168452909152908190205490517f0589912a000000000000000000000000000000000000000000000000000000008152911690630589912a9062000b9f9033908a908a90600401620022a9565b600060405180830381600087803b15801562000bba57600080fd5b505af115801562000bcf573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f5065254984dfd953a97f48da9330ed3a61d8bc8cd2df88176b58f99d3ce81c3e8a8a60405162000c4b92919062002370565b60405180910390a462000d60565b73ffffffffffffffffffffffffffffffffffffffff808a1660009081526002602090815260408083208c8516845282528083207fffff0000000000000000000000000000000000000000000000000000000000008c1684529091528082205490517fd47875d00000000000000000000000000000000000000000000000000000000081529192169063d47875d09062000cf79033906004016200226b565b60206040518083038186803b15801562000d1057600080fd5b505afa15801562000d25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000d4b919081019062001f95565b905062000d5e338b8b8b8b8b87620013cd565b505b505050505050505050565b600260209081526000938452604080852082529284528284209052825290205473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600260209081526040808320868516845282528083207fffff0000000000000000000000000000000000000000000000000000000000008616845290915281205490911662000f095760405162000e189062001b76565b604051809103906000f08015801562000e35573d6000803e3d6000fd5b5073ffffffffffffffffffffffffffffffffffffffff85811660008181526002602090815260408083208986168085529083528184207fffff0000000000000000000000000000000000000000000000000000000000008a1685529092529182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001695851695909517948590559051909391927f7a28ddb7cee538734c8afbb914e80f6fa30503635c435868db561163b5a7e84b9262000f00928892919091169062002351565b60405180910390a35b5073ffffffffffffffffffffffffffffffffffffffff8084166000908152600260209081526040808320868516845282528083207fffff00000000000000000000000000000000000000000000000000000000000086168452909152902054165b9392505050565b60046020526000908152604090205460ff1681565b62000f906200060d565b62000fc9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046090620023e8565b7fffff00000000000000000000000000000000000000000000000000000000000091909116600090815260036020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8516600090815260046020526040812054606091829160ff16806200109f575073ffffffffffffffffffffffffffffffffffffffff871660009081526004602052604090205460ff165b15620010d65760408051600080825260208201909252905b506040805160008082526020820190925291945090925090506200126e565b73ffffffffffffffffffffffffffffffffffffffff88811660009081526002602090815260408083208b8516845282528083207fffff0000000000000000000000000000000000000000000000000000000000008b1684529091529020541662001151576040805160008082526020820190925290620010b7565b73ffffffffffffffffffffffffffffffffffffffff80891660009081526002602090815260408083208b8516845282528083207fffff0000000000000000000000000000000000000000000000000000000000008b168452909152908190205490517f0b30a8d7000000000000000000000000000000000000000000000000000000008152911690630b30a8d790620011f19088908890600401620022d8565b60006040518083038186803b1580156200120a57600080fd5b505afa1580156200121f573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405262001267919081019062001e99565b9250925092505b955095509592505050565b620012836200060d565b620012bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046090620023e8565b73ffffffffffffffffffffffffffffffffffffffff811660009081526004602052604090205460ff1615620005ee5773ffffffffffffffffffffffffffffffffffffffff81166000908152600460205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517fa1f26e166f408721b7578234199103d95e0aea4308d683b2f6c0ec86ac9e9e7390620005e59083906200225b565b6200137633848484620016e7565b505050565b620013856200060d565b620013be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046090620023e8565b620005ee8162001a99565b3390565b82811015620014c3576001546040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906323b872dd9062001434908a90309086890390600401620022c8565b602060405180830381600087803b1580156200144f57600080fd5b505af115801562001464573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200148a919081019062001f14565b620014c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046090620023d6565b8083101562001588576001546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a9059cbb9062001528908a9087860390600401620022d8565b602060405180830381600087803b1580156200154357600080fd5b505af115801562001558573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200157e919081019062001f14565b6200158857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8087166000908152600260209081526040808320898516845282528083207fffff00000000000000000000000000000000000000000000000000000000000089168452909152908190205490517fb4decab600000000000000000000000000000000000000000000000000000000815291169063b4decab6906200162a908a9087908790600401620022f7565b600060405180830381600087803b1580156200164557600080fd5b505af11580156200165a573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f5065254984dfd953a97f48da9330ed3a61d8bc8cd2df88176b58f99d3ce81c3e8787604051620016d692919062002370565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff8084166000908152600260209081526040808320848716845282528083207fffff000000000000000000000000000000000000000000000000000000000000861684529091529020548491849184911662001785576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046090620023c4565b73ffffffffffffffffffffffffffffffffffffffff8087166000908152600260209081526040808320898516845282528083207fffff000000000000000000000000000000000000000000000000000000000000891684529091528082205490517fd47875d00000000000000000000000000000000000000000000000000000000081529192169063d47875d09062001823908b906004016200225b565b60206040518083038186803b1580156200183c57600080fd5b505afa15801562001851573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062001877919081019062001f95565b73ffffffffffffffffffffffffffffffffffffffff80891660009081526002602090815260408083208b8516845282528083207fffff0000000000000000000000000000000000000000000000000000000000008b168452909152908190205490517f0ddcecf00000000000000000000000000000000000000000000000000000000081529293501690630ddcecf09062001917908b906004016200225b565b600060405180830381600087803b1580156200193257600080fd5b505af115801562001947573d6000803e3d6000fd5b50505050600081111562001a0f576001546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063a9059cbb90620019af908b908590600401620022d8565b602060405180830381600087803b158015620019ca57600080fd5b505af1158015620019df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062001a05919081019062001f14565b62001a0f57600080fd5b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167f71735c1604645e893048a8e669bd75b5c1829b76fe6bd5a6cc0f2ac86eca6ff6888560405162001a8792919062002370565b60405180910390a45050505050505050565b73ffffffffffffffffffffffffffffffffffffffff811662001ae9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046090620023a0565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6111e1806200250a83390190565b803562001b9181620024d1565b92915050565b805162001b9181620024d1565b600082601f83011262001bb657600080fd5b815162001bcd62001bc78262002434565b6200240c565b9150818183526020840193506020810190508385602084028201111562001bf357600080fd5b60005b8381101562001c23578162001c0c888262001ccd565b845250602092830192919091019060010162001bf6565b5050505092915050565b600082601f83011262001c3f57600080fd5b815162001c5062001bc78262002434565b9150818183526020840193506020810190508385602084028201111562001c7657600080fd5b60005b8381101562001c23578162001c8f888262001ccd565b845250602092830192919091019060010162001c79565b805162001b9181620024e8565b803562001b9181620024f3565b803562001b9181620024fe565b805162001b9181620024fe565b60006020828403121562001ced57600080fd5b600062000415848462001b84565b6000806000806080858703121562001d1257600080fd5b600062001d20878762001b84565b945050602062001d338782880162001b84565b935050604062001d468782880162001b84565b925050606062001d598782880162001cb3565b91505092959194509250565b60008060006060848603121562001d7b57600080fd5b600062001d89868662001b84565b935050602062001d9c8682870162001b84565b925050604062001daf8682870162001cb3565b9150509250925092565b600080600080600060a0868803121562001dd257600080fd5b600062001de0888862001b84565b955050602062001df38882890162001b84565b945050604062001e068882890162001cb3565b935050606062001e198882890162001b84565b925050608062001e2c8882890162001cc0565b9150509295509295909350565b600080600080600060a0868803121562001e5257600080fd5b600062001e60888862001b84565b955050602062001e738882890162001b84565b945050604062001e868882890162001cb3565b935050606062001e198882890162001cc0565b60008060006060848603121562001eaf57600080fd5b835167ffffffffffffffff81111562001ec757600080fd5b62001ed58682870162001ba4565b935050602084015167ffffffffffffffff81111562001ef357600080fd5b62001f018682870162001c2d565b925050604062001daf8682870162001b97565b60006020828403121562001f2757600080fd5b600062000415848462001ca6565b60006020828403121562001f4857600080fd5b600062000415848462001cb3565b6000806040838503121562001f6a57600080fd5b600062001f78858562001cb3565b925050602062001f8b8582860162001b84565b9150509250929050565b60006020828403121562001fa857600080fd5b600062000415848462001ccd565b600062001fc48383620020bd565b505060200190565b62001fd781620024bc565b82525050565b62001fd78162002469565b600062001ff5826200245c565b62002001818562002460565b93506200200e8362002456565b8060005b838110156200204257815162002029888262001fb6565b9750620020368362002456565b92505060010162002012565b509495945050505050565b60006200205a826200245c565b62002066818562002460565b9350620020738362002456565b8060005b83811015620020425781516200208e888262001fb6565b97506200209b8362002456565b92505060010162002077565b62001fd78162002476565b62001fd7816200247b565b62001fd781620024a0565b62001fd781620024c4565b6000620020e260268362002460565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b60006200214360178362002460565b7f4c4f4341544f525f4e4f545f57484954454c4953544544000000000000000000815260200192915050565b60006200217e60148362002460565b7f494e4445585f444f45535f4e4f545f4558495354000000000000000000000000815260200192915050565b6000620021b9600e8362002460565b7f5354414b494e475f4641494c4544000000000000000000000000000000000000815260200192915050565b6000620021f460208362002460565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b60006200222f60138362002460565b7f504149525f49535f424c41434b4c495354454400000000000000000000000000815260200192915050565b6020810162001b91828462001fdd565b6020810162001b91828462001fcc565b606081016200228b828662001fcc565b6200229a602083018562001fdd565b620004156040830184620020bd565b60608101620022b9828662001fcc565b6200229a6020830185620020bd565b606081016200228b828662001fdd565b60408101620022e8828562001fdd565b62000f6a6020830184620020bd565b60608101620022b9828662001fdd565b606080825281016200231a818662001fe8565b905081810360208301526200233081856200204d565b905062000415604083018462001fdd565b6020810162001b918284620020a7565b60408101620023618285620020b2565b62000f6a602083018462001fdd565b60408101620022e88285620020b2565b6020810162001b918284620020bd565b6020810162001b918284620020c8565b6020808252810162001b9181620020d3565b6020808252810162001b918162002134565b6020808252810162001b91816200216f565b6020808252810162001b9181620021aa565b6020808252810162001b9181620021e5565b6020808252810162001b918162002220565b60405181810167ffffffffffffffff811182821017156200242c57600080fd5b604052919050565b600067ffffffffffffffff8211156200244c57600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b600062001b9182620024a3565b151590565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b600062001b91825b600062001b918262002469565b620024dc8162002469565b8114620005ee57600080fd5b620024dc8162002476565b620024dc816200247b565b620024dc81620024a056fe608060405234801561001057600080fd5b506100226001600160e01b0361015116565b600080546001600160a01b0319166001600160a01b03928316178082556040519216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360408051608081018252600080825260208083018281526001600160a01b039484018581526060850186815293869052600290925292517f86cf984b44bed1f7f8b143f6052803e8b74964b2ee297832a77790be6d6308f15591517f86cf984b44bed1f7f8b143f6052803e8b74964b2ee297832a77790be6d6308f25590517f86cf984b44bed1f7f8b143f6052803e8b74964b2ee297832a77790be6d6308f380549184166001600160a01b031992831617905590517f86cf984b44bed1f7f8b143f6052803e8b74964b2ee297832a77790be6d6308f48054919093169116179055610155565b3390565b61107d806101646000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638da5cb5b11610081578063d47875d01161005b578063d47875d014610199578063f29ee125146101ac578063f2fde38b146101cf576100d4565b80638da5cb5b1461015c5780638f32d59b14610171578063b4decab614610186576100d4565b80631f7b6d32116100b25780631f7b6d321461012c5780634ec63ffe14610141578063715018a614610154576100d4565b80630589912a146100d95780630b30a8d7146100ee5780630ddcecf014610119575b600080fd5b6100ec6100e7366004610c86565b6101e2565b005b6101016100fc366004610c4c565b6102d4565b60405161011093929190610f00565b60405180910390f35b6100ec610127366004610c26565b610514565b6101346105c7565b6040516101109190610f42565b61013461014f366004610c26565b6105cd565b6100ec6105f9565b6101646106a6565b6040516101109190610ef2565b6101796106c2565b6040516101109190610f34565b6100ec610194366004610c86565b610700565b6101346101a7366004610c26565b610799565b6101bf6101ba366004610c26565b6107c4565b6040516101109493929190610f50565b6100ec6101dd366004610c26565b610806565b6101ea6106c2565b610229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022090610fbe565b60405180910390fd5b61023283610850565b15610269576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022090610fce565b61027483838361087a565b600154600101600181905550808373ffffffffffffffffffffffffffffffffffffffff167f62d8270f77cd1e7351e3e92e7001b363e90eed2ef3394dbd51201ceee3672630846040516102c79190610f42565b60405180910390a3505050565b60608060008073ffffffffffffffffffffffffffffffffffffffff861615801590610315575073ffffffffffffffffffffffffffffffffffffffff86811614155b156103515761032386610850565b61034a5750506040805160008082526020820181815282840190935290935090915061050d565b5084610395565b5073ffffffffffffffffffffffffffffffffffffffff600081905260026020527f86cf984b44bed1f7f8b143f6052803e8b74964b2ee297832a77790be6d6308f454165b600085600154106103a657856103aa565b6001545b9050806040519080825280602002602001820160405280156103d6578160200160208202803883390190505b50945080604051908082528060200260200182016040528015610403578160200160208202803883390190505b50935060005b818110801561042e575073ffffffffffffffffffffffffffffffffffffffff83811614155b156105075773ffffffffffffffffffffffffffffffffffffffff8316600090815260026020526040902054865187908390811061046757fe5b602002602001018181525050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548582815181106104c257fe5b60209081029190910181019190915273ffffffffffffffffffffffffffffffffffffffff93841660009081526002909152604090206003015490921691600101610409565b50909150505b9250925092565b61051c6106c2565b610552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022090610fbe565b61055b81610987565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905560405173ffffffffffffffffffffffffffffffffffffffff8216907fded788c834b3ea8a384c1495466a3a4a827c378cd9eafe5c159d90291ce0184490600090a250565b60015481565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600260205260409020545b919050565b6106016106c2565b610637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022090610fbe565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6000805473ffffffffffffffffffffffffffffffffffffffff166106e4610a66565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6107086106c2565b61073e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022090610fbe565b61074783610987565b61075283838361087a565b808373ffffffffffffffffffffffffffffffffffffffff167f62d8270f77cd1e7351e3e92e7001b363e90eed2ef3394dbd51201ceee3672630846040516102c79190610f42565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090206001015490565b6002602081905260009182526040909120805460018201549282015460039092015490929173ffffffffffffffffffffffffffffffffffffffff908116911684565b61080e6106c2565b610844576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022090610fbe565b61084d81610a6a565b50565b73ffffffffffffffffffffffffffffffffffffffff16600090815260026020526040902054151590565b806108b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022090610f9e565b60006108bc83610b44565b73ffffffffffffffffffffffffffffffffffffffff9081166000818152600260208181526040808420830180548716808652828620600390810180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081169e8b169e8f17909155835481168e1790935583516080810185529a8b528a85019b8c528a840191825260608b019788529b8652928490529320965187559651600187015595519585018054821696841696909617909555519290940180549093169190931617905550565b61099081610850565b6109c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022090610fae565b73ffffffffffffffffffffffffffffffffffffffff9081166000818152600260208190526040808320808301805460038084018054928a16808952868920909201805493909a167fffffffffffffffffffffffff00000000000000000000000000000000000000009384168117909a5598875293862090940180548516909317909255938352828455600190930191909155815481169091558154169055565b3390565b73ffffffffffffffffffffffffffffffffffffffff8116610ab7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022090610f8e565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff600081815260026020527f86cf984b44bed1f7f8b143f6052803e8b74964b2ee297832a77790be6d6308f45490911682610baa5773ffffffffffffffffffffffffffffffffffffffff9150506105f4565b5b73ffffffffffffffffffffffffffffffffffffffff81166000908152600260205260409020600101548311610c0a5773ffffffffffffffffffffffffffffffffffffffff90811660009081526002602052604090206003015416610bab565b92915050565b8035610c0a8161101d565b8035610c0a81611031565b600060208284031215610c3857600080fd5b6000610c448484610c10565b949350505050565b60008060408385031215610c5f57600080fd5b6000610c6b8585610c10565b9250506020610c7c85828601610c1b565b9150509250929050565b600080600060608486031215610c9b57600080fd5b6000610ca78686610c10565b9350506020610cb886828701610c1b565b9250506040610cc986828701610c1b565b9150509250925092565b6000610cdf8383610da6565b505060200190565b610cf081610ff1565b82525050565b6000610d0182610fe4565b610d0b8185610fe8565b9350610d1683610fde565b8060005b83811015610d44578151610d2e8882610cd3565b9750610d3983610fde565b925050600101610d1a565b509495945050505050565b6000610d5a82610fe4565b610d648185610fe8565b9350610d6f83610fde565b8060005b83811015610d44578151610d878882610cd3565b9750610d9283610fde565b925050600101610d73565b610cf081610ffc565b610cf081611001565b6000610dbc602683610fe8565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181527f6464726573730000000000000000000000000000000000000000000000000000602082015260400192915050565b6000610e1b601483610fe8565b7f4c4f4341544f525f4d5553545f42455f53454e54000000000000000000000000815260200192915050565b6000610e54601483610fe8565b7f454e5452595f444f45535f4e4f545f4558495354000000000000000000000000815260200192915050565b6000610e8d602083610fe8565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572815260200192915050565b6000610ec6601483610fe8565b7f454e5452595f414c52454144595f455849535453000000000000000000000000815260200192915050565b60208101610c0a8284610ce7565b60608082528101610f118186610cf6565b90508181036020830152610f258185610d4f565b9050610c446040830184610ce7565b60208101610c0a8284610d9d565b60208101610c0a8284610da6565b60808101610f5e8287610da6565b610f6b6020830186610da6565b610f786040830185610ce7565b610f856060830184610ce7565b95945050505050565b60208082528101610c0a81610daf565b60208082528101610c0a81610e0e565b60208082528101610c0a81610e47565b60208082528101610c0a81610e80565b60208082528101610c0a81610eb9565b60200190565b5190565b90815260200190565b6000610c0a82611004565b151590565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b61102681610ff1565b811461084d57600080fd5b6110268161100156fea365627a7a72315820056a7975cdfb66c7db121977a8681e9da5bbbf82bfd11879ec66a3495fd4a4fb6c6578706572696d656e74616cf564736f6c63430005100040a365627a7a72315820b88c4d893f077dda6c0538fe84d16d91752446c85ac7db28ab9db94e30067b5e6c6578706572696d656e74616cf564736f6c634300051000400000000000000000000000001ac0d76f11875317f8a7d791db94cdd82bd02bd1