0 txs
0 calls
constructor
constructor(string _suffix)
functions
bridgeContract
viewfunction bridgeContract() view returns (address)
bridgedTokenAddress
viewfunction bridgedTokenAddress(address _nativeToken) view returns (address)
getBridgeInterfacesVersion
purefunction getBridgeInterfacesVersion() pure returns (uint64 major, uint64 minor, uint64 patch)
getBridgeMode
purefunction getBridgeMode() pure returns (bytes4 _data)
isBridgedTokenDeployAcknowledged
viewfunction isBridgedTokenDeployAcknowledged(address _token) view returns (bool)
isInitialized
viewfunction isInitialized() view returns (bool)
isRegisteredAsNativeToken
viewfunction isRegisteredAsNativeToken(address _token) view returns (bool)
isTokenBridgingAllowed
viewfunction isTokenBridgingAllowed(address _token) view returns (bool)
isTokenExecutionAllowed
viewfunction isTokenExecutionAllowed(address _token) view returns (bool)
isTokenRegistered
viewfunction isTokenRegistered(address _token) view returns (bool)
mediatorContractOnOtherSide
viewfunction mediatorContractOnOtherSide() view returns (address)
mediatorOwns
viewfunction mediatorOwns(address _token, uint256 _tokenId) view returns (uint256 amount)
messageFixed
viewfunction messageFixed(bytes32 _messageId) view returns (bool)
nativeTokenAddress
viewfunction nativeTokenAddress(address _bridgedToken) view returns (address)
owner
viewfunction owner() view returns (address)
requestGasLimit
viewfunction requestGasLimit() view returns (uint256)
tokenImageERC1155
viewfunction tokenImageERC1155() view returns (address)
tokenImageERC721
viewfunction tokenImageERC721() view returns (address)
deployAndHandleBridgedNFT
nonpayablefunction deployAndHandleBridgedNFT(address _token, string _name, string _symbol, address _recipient, uint256[] _tokenIds, uint256[] _values, string[] _tokenURIs)
disableTokenBridging
nonpayablefunction disableTokenBridging(address _token, bool _disable)
disableTokenExecution
nonpayablefunction disableTokenExecution(address _token, bool _disable)
fixFailedMessage
nonpayablefunction fixFailedMessage(bytes32 _messageId, address _token, address _sender, uint256[] _tokenIds, uint256[] _values)
fixMediatorBalanceERC1155
nonpayablefunction fixMediatorBalanceERC1155(address _token, address _receiver, uint256[] _tokenIds, uint256[] _values)
fixMediatorBalanceERC721
nonpayablefunction fixMediatorBalanceERC721(address _token, address _receiver, uint256[] _tokenIds)
handleBridgedNFT
nonpayablefunction handleBridgedNFT(address _token, address _recipient, uint256[] _tokenIds, uint256[] _values, string[] _tokenURIs)
handleNativeNFT
nonpayablefunction handleNativeNFT(address _token, address _recipient, uint256[] _tokenIds, uint256[] _values)
initialize
nonpayablefunction initialize(address _bridgeContract, address _mediatorContract, uint256 _requestGasLimit, address _owner, address _imageERC721, address _imageERC1155) returns (bool)
migrationTo3_0_0
nonpayablefunction migrationTo3_0_0()
onERC1155BatchReceived
nonpayablefunction onERC1155BatchReceived(address, address _from, uint256[] _tokenIds, uint256[] _values, bytes _data) returns (bytes4)
onERC1155Received
nonpayablefunction onERC1155Received(address, address _from, uint256 _tokenId, uint256 _value, bytes _data) returns (bytes4)
onERC721Received
nonpayablefunction onERC721Received(address, address _from, uint256 _tokenId, bytes _data) returns (bytes4)
relayToken
nonpayablefunction relayToken(address token, address _receiver, uint256 _tokenId)
relayToken
nonpayablefunction relayToken(address token, uint256 _tokenId)
requestFailedMessageFix
nonpayablefunction requestFailedMessageFix(bytes32 _messageId, address _token, address _sender, uint256[] _tokenIds, uint256[] _values)
setBridgeContract
nonpayablefunction setBridgeContract(address _bridgeContract)
setCustomMetadata
nonpayablefunction setCustomMetadata(address _token, string _name, string _symbol)
setCustomTokenAddressPair
nonpayablefunction setCustomTokenAddressPair(address _nativeToken, address _bridgedToken)
setMediatorContractOnOtherSide
nonpayablefunction setMediatorContractOnOtherSide(address _mediatorContract)
setRequestGasLimit
nonpayablefunction setRequestGasLimit(uint256 _gasLimit)
setTokenImageERC1155
nonpayablefunction setTokenImageERC1155(address _image)
setTokenImageERC721
nonpayablefunction setTokenImageERC721(address _image)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
FailedMessageFixed
event FailedMessageFixed(bytes32 indexed messageId, address token)
NewTokenRegistered
event NewTokenRegistered(address indexed nativeToken, address indexed bridgedToken)
OwnershipTransferred
event OwnershipTransferred(address previousOwner, address newOwner)
TokenBridgingDisabled
event TokenBridgingDisabled(address indexed token, bool disabled)
TokenExecutionDisabled
event TokenExecutionDisabled(address indexed token, bool disabled)
TokensBridged
event TokensBridged(address indexed token, address indexed recipient, uint256[] tokenIds, uint256[] values, bytes32 indexed messageId)
TokensBridgingInitiated
event TokensBridgingInitiated(address indexed token, address indexed sender, uint256[] tokenIds, uint256[] values, bytes32 indexed messageId)
errors
No errors.
creation bytecode
0x60c06040523480156200001157600080fd5b506040516200571038038062005710833981016040819052620000349162000058565b806020815111156200004557600080fd5b602081015160a052516080525062000117565b600060208083850312156200006b578182fd5b82516001600160401b038082111562000082578384fd5b818501915085601f83011262000096578384fd5b815181811115620000a357fe5b604051601f8201601f1916810185018381118282101715620000c157fe5b6040528181528382018501881015620000d8578586fd5b8592505b81831015620000fb5783830185015181840186015291840191620000dc565b818311156200010c57858583830101525b979650505050505050565b60805160a0516155d56200013b60003980612f57525080612f9d52506155d56000f3fe60806040523480156200001157600080fd5b5060043610620002985760003560e01c80639cb7595a1162000165578063cd59658311620000d5578063f2fde38b1162000093578063f2fde38b14620005af578063f3b8379114620005c6578063f4ec76d914620005dd578063f92d746814620005f4578063fb0a6f30146200060b578063ff9935cb14620006225762000298565b8063cd5965831462000549578063d79ca76e1462000553578063e1e5e803146200056a578063e853177b1462000581578063f23a6e6114620005985762000298565b8063b7dbbf871162000123578063b7dbbf8714620004d4578063bc197c8114620004eb578063be3b625b1462000502578063c2173d43146200051b578063cba002b914620005325762000298565b80639cb7595a146200046a5780639dd9cde01462000485578063a5bd2942146200048f578063ae813e9f14620004a6578063b701e09414620004bd5762000298565b80634ce5cff4116200020d5780636e5d6bea11620001cb5780636e5d6bea14620004145780637996ad31146200042b5780637f083f691462000442578063871c0760146200044c5780638da5cb5b146200045657806399a935fc14620004605762000298565b80634ce5cff414620003a15780635933998214620003b857806361c04f8414620003cf5780636ca4835714620003e65780636cb4497214620003fd5762000298565b806328f43667116200025b57806328f4366714620003395780632d70061f1462000350578063392e53cd1462000376578063437764df14620003805780634b92d874146200038a5762000298565b80630b26cf66146200029d5780630b71a4a714620002b6578063150b7a0214620002cd57806326aa101f14620002fc578063276fea8a1462000322575b600080fd5b620002b4620002ae36600462003dcd565b62000639565b005b620002b4620002c736600462003e0b565b6200066f565b620002e4620002de3660046200414d565b620006f3565b604051620002f3919062004a04565b60405180910390f35b620003136200030d36600462003dcd565b62000783565b604051620002f39190620049f9565b620002b462000333366004620044fa565b620007b8565b620002b46200034a36600462003dcd565b6200085b565b620003676200036136600462003dcd565b6200088e565b604051620002f39190620046f3565b62000313620008f4565b620002e462000945565b620002b46200039b36600462003dcd565b62000950565b62000313620003b236600462003dcd565b62000983565b62000313620003c936600462004422565b62000a1a565b62000367620003e036600462003dcd565b62000a6d565b620002b4620003f736600462003eb2565b62000ad6565b620002b46200040e36600462004234565b62000b1c565b620002b46200042536600462003dcd565b62000c17565b620002b46200043c36600462003eb2565b62000c4a565b620002b462000df6565b6200036762000eaa565b6200036762000f01565b6200036762000f58565b6200047462000faf565b604051620002f39392919062004a58565b6200036762000fb8565b620002b4620004a036600462004454565b6200100f565b62000313620004b736600462003dcd565b620012da565b620002b4620004ce36600462003f4e565b62001338565b620002b4620004e5366004620043f4565b6200137d565b620002e4620004fc36600462004016565b6200138a565b6200050c62001471565b604051620002f3919062004a19565b620003136200052c36600462003dcd565b620014bf565b6200050c62000543366004620043f4565b6200151c565b6200036762001534565b620002b46200056436600462004594565b6200158b565b620002b46200057b36600462004269565b6200159d565b620002b46200059236600462003e48565b62001687565b620002e4620005a9366004620041c5565b620017d0565b620002b4620005c036600462003dcd565b6200184e565b620002b4620005d736600462004422565b62001881565b62000313620005ee36600462003dcd565b620018b4565b620002b462000605366004620042e0565b62001943565b620002b46200061c36600462004234565b62001a82565b6200031362000633366004620040ca565b62001b7c565b6200064362000f01565b6001600160a01b0316336001600160a01b0316146200066157600080fd5b6200066c8162001d11565b50565b6200067962000f01565b6001600160a01b0316336001600160a01b0316146200069757600080fd5b620006a28162001d90565b620006ac57600080fd5b620006b78162000783565b15620006c257600080fd5b6000620006cf836200088e565b6001600160a01b031614620006e357600080fd5b620006ef828262001d96565b5050565b6000620006ff62001e91565b6200076c576200076c33866200074c8887878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062001eb692505050565b620007578862001ee3565b60408051600081526020810190915262001f28565b506001600160e01b03196000351695945050505050565b60006200079082620014bf565b80620007b057506000620007a48362000a6d565b6001600160a01b031614155b90505b919050565b620007c262001f82565b620007cd8562000a1a565b15620007d857600080fd5b620007e68484848462002035565b620007f18662002113565b14620007fc57600080fd5b620008078562002165565b6200081584848484620021be565b604080516001600160a01b0386168152905186917f1bc59e60074130cba06acb3689c8b1578e753b0ee7f1471c7b9b297fdbd43279919081900360200190a25050505050565b6200086562000f01565b6001600160a01b0316336001600160a01b0316146200088357600080fd5b6200066c81620021e9565b604080516f686f6d65546f6b656e4164647265737360801b60208083019190915260609390931b6001600160601b03191660308201528151808203602401815260449091018252805190830120600090815260029092529020546001600160a01b031690565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc5460ff1690565b63329ff0f760e21b90565b6200095a62000f01565b6001600160a01b0316336001600160a01b0316146200097857600080fd5b6200066c8162002268565b6040805170195e1958dd5d1a5bdb911a5cd8589b1959607a1b6020808301919091526001600160601b0319606085901b1660318301528251602581840301815260459092018352815191810191909120600090815260049091529081205460ff168080620009f857506001600160a01b038316155b1562000a0757159050620007b3565b62000a13600062000983565b9392505050565b604080516b1b595cdcd859d9519a5e195960a21b602080830191909152602c80830185905283518084039091018152604c909201835281519181019190912060009081526004909152205460ff16919050565b6040805172666f726569676e546f6b656e4164647265737360681b60208083019190915260609390931b6001600160601b03191660338201528151808203602701815260479091018252805190830120600090815260029092529020546001600160a01b031690565b62000ae062001f82565b62000aeb86620014bf565b62000af557600080fd5b62000b02866002620022e7565b62000b148660018787878787620023a2565b505050505050565b62000b2662000f01565b6001600160a01b0316336001600160a01b03161462000b4457600080fd5b6001600160a01b038216158062000b61575062000b618262000783565b62000b6b57600080fd5b6040805170195e1958dd5d1a5bdb911a5cd8589b1959607a1b6020808301919091526001600160601b0319606086901b16603183015282516025818403018152604583018085528151918301919091206000908152600490925290839020805485151560ff199091168117909155905290516001600160a01b038416917f7eaed571869fda346fbb60c26259a8598b4943b8e15079704be1a499d7729055919081900360650190a25050565b62000c2162000f01565b6001600160a01b0316336001600160a01b03161462000c3f57600080fd5b6200066c816200248f565b306001600160a01b0316636fde82026040518163ffffffff1660e01b815260040160206040518083038186803b15801562000c8457600080fd5b505afa15801562000c99573d6000803e3d6000fd5b505050506040513d602081101562000cb057600080fd5b50516001600160a01b0316331462000cc757600080fd5b62000cd286620014bf565b62000cdc57600080fd5b82811462000ce957600080fd5b8262000cf457600080fd5b606062000d67878787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808b0282810182019093528a82529093508a925089918291850190849080828437600092019190915250620024f992505050565b9050600062000d7882600162002af9565b905062000dec81898989898080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b91829185019084908082843760009201919091525062002b9e92505050565b5050505050505050565b7fd8ad6d205355cc8dd4d88d650469f4d3230596fa9345b86d1d97034a771009ba600081905260046020527f1df6b671758302a988a7a1c2e31abc99e52ab8cbcd26186ebaa73f13881715fe5460ff161562000e5157600080fd5b62000e70738b9e7c13f98291fe90b38e020bcb046f4a4dd21d620021e9565b62000e8f73f714c3aa632ece07eeba241803b26f806ea1790862002268565b6000908152600460205260409020805460ff19166001179055565b7f98aa806e31e94a687a31c65769cb99670064dd7f5a87526da075c5fb4eab988060005260026020527f0c1206883be66049a02d4937078367c00b3d71dd1a9465df969363c6ddeac96d546001600160a01b031690565b7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e546001600160a01b031690565b7f02e1d283efd236e8b97cefe072f0c863fa2db9f9ba42b0eca53ab31c49067a6760005260026020527f953ab8a758dd553cc38f793a1da5659c9dc6ef69c086214f73ad0b17e262b031546001600160a01b031690565b60036000809192565b7f20b8ca26cc94f39fab299954184cf3a9bd04f69543e4f454fab299f015b8130f60005260026020527f0c25bd6cb8545e46227bc56e841bd085538c74351fb22e98acdfbe596b353cfb546001600160a01b031690565b826200101a57600080fd5b8015806200102757508281145b6200103157600080fd5b60006200103d62001534565b9050806001600160a01b031663cb08a10c896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156200108457600080fd5b505afa15801562001099573d6000803e3d6000fd5b505050506040513d6020811015620010b057600080fd5b505115620010bd57600080fd5b306001600160a01b0316816001600160a01b0316633f9a8e7e8a6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156200110c57600080fd5b505afa15801562001121573d6000803e3d6000fd5b505050506040513d60208110156200113857600080fd5b50516001600160a01b0316146200114e57600080fd5b6200115862000eaa565b6001600160a01b0316816001600160a01b0316634a610b048a6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015620011a657600080fd5b505afa158015620011bb573d6000803e3d6000fd5b505050506040513d6020811015620011d257600080fd5b50516001600160a01b031614620011e857600080fd5b606063276fea8a60e01b8989898989898960405160240180888152602001876001600160a01b03168152602001866001600160a01b0316815260200180602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600081840152601f19601f8201169050808301925050509950505050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050620012ce81600062002af9565b50505050505050505050565b604080516e1d1bdad95b949959da5cdd195c9959608a1b60208083019190915260609390931b6001600160601b031916602f820152815180820360230181526043909101825280519083012060009081529182905290205460021490565b6200134262001f82565b60006200134f896200088e565b9050620013638160008a8a8a8a8a620023a2565b62001372818888868662002c23565b505050505050505050565b620006ef82338362002cfd565b60008584146200139957600080fd5b85620013a457600080fd5b620014573389620013ec8b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062001eb692505050565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525062001f2892505050565b506001600160e01b03196000351698975050505050505050565b7f2dfd6c9f781bb6bbb5369c114e949b69ebb440ef3d4dd6b2836225eb1dc3a2be60009081526020527f2de0d2cdc19d356cb53b5984f91bfd3b31fe0c678a0d190a6db39274bb34753f5490565b604080516e1d1bdad95b949959da5cdd195c9959608a1b60208083019190915260609390931b6001600160601b031916602f8201528151808203602301815260439091018252805190830120600090815291829052902054151590565b6000806200152b848462002daa565b54949350505050565b7f811bbb11e8899da471f0e69a3ed55090fc90215227fc5fb1cb0d6e962ea7b74f60005260026020527fb4ed64697d3ef8518241966f7c6f28b0d72f20f51198717d198d2d55076c593d546001600160a01b031690565b6200159883838362002cfd565b505050565b620015a762000f01565b6001600160a01b0316336001600160a01b031614620015c557600080fd5b6040805169637573746f6d4e616d6560b01b6020808301919091526001600160601b0319606089901b16602a8301528251601e818403018152603e909201835281519181019190912060009081526001909152206200162690858562003b7c565b50604080516b18dd5cdd1bdb54de5b589bdb60a21b6020808301919091526001600160601b0319606089901b16602c8301528251808303820181529183018352815191810191909120600090815260019091522062000b1490838362003b7c565b306001600160a01b0316636fde82026040518163ffffffff1660e01b815260040160206040518083038186803b158015620016c157600080fd5b505afa158015620016d6573d6000803e3d6000fd5b505050506040513d6020811015620016ed57600080fd5b50516001600160a01b031633146200170457600080fd5b6200170f84620014bf565b6200171957600080fd5b806200172457600080fd5b60408051600081526020838102808301840184529082018481529192606092620017719289928992918991899182918a0190849080828437600092019190915250889250620024f9915050565b905060006200178282600162002af9565b9050620017c78188888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508a925062002b9e915050565b50505050505050565b60006200183633876200181a8987878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062001eb692505050565b620018258962001ee3565b620018308962001ee3565b62001f28565b506001600160e01b0319600035169695505050505050565b6200185862000f01565b6001600160a01b0316336001600160a01b0316146200187657600080fd5b6200066c8162002e22565b6200188b62000f01565b6001600160a01b0316336001600160a01b031614620018a957600080fd5b6200066c8162002eed565b604080516f189c9a5919da5b99d11a5cd8589b195960821b6020808301919091526001600160601b0319606085901b1660308301528251602481840301815260449092018352815191810191909120600090815260049091529081205460ff1680806200192857506001600160a01b038316155b156200193757159050620007b3565b62000a136000620018b4565b6200194d62001f82565b60006200195a8b6200088e565b90506001600160a01b03811662001a545789516200198a5760008951116200198157600080fd5b88995062001995565b885162001995578998505b83620019f357620019a562000fb8565b620019b08b62002f51565b8a30604051620019c09062003c11565b620019cf9493929190620048ae565b604051809103906000f080158015620019ec573d6000803e3d6000fd5b5062001a46565b620019fd62000f58565b62001a088b62002f51565b8a3060405162001a189062003c1f565b62001a279493929190620048ae565b604051809103906000f08015801562001a44573d6000803e3d6000fd5b505b905062001a548b8262001d96565b62001a668160008a8a8a8a8a620023a2565b62001a75818888868662002c23565b5050505050505050505050565b62001a8c62000f01565b6001600160a01b0316336001600160a01b03161462001aaa57600080fd5b6001600160a01b038216158062001ac7575062001ac78262000783565b62001ad157600080fd5b604080516f189c9a5919da5b99d11a5cd8589b195960821b6020808301919091526001600160601b0319606086901b16603083015282516024818403018152604483018085528151918301919091206000908152600490925290839020805485151560ff199091168117909155905290516001600160a01b038416917fbeecfafc3eb3de7b89bd034a6a32944da5b2e4972cc6875eaa57b0727642188f919081900360640190a25050565b60408051600481526024810182526020810180516001600160e01b03166337ef410160e11b1781529151815160009384936060933093919290918291908083835b6020831062001bde5780518252601f19909201916020918201910162001bbd565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d806000811462001c40576040519150601f19603f3d011682016040523d82523d6000602084013e62001c45565b606091505b509150915081158062001c8457508051602014801562001c84575080806020019051602081101562001c7657600080fd5b50516001600160a01b031633145b8062001c8f57503330145b62001c9957600080fd5b62001ca3620008f4565b1562001cae57600080fd5b62001cb98962001d11565b62001cc4886200248f565b62001ccf8762002eed565b62001cda8662002e22565b62001ce585620021e9565b62001cf08462002268565b62001cfa62002fc6565b62001d04620008f4565b9998505050505050505050565b62001d1c8162001d90565b62001d2657600080fd5b7f811bbb11e8899da471f0e69a3ed55090fc90215227fc5fb1cb0d6e962ea7b74f60005260026020527fb4ed64697d3ef8518241966f7c6f28b0d72f20f51198717d198d2d55076c593d80546001600160a01b0319166001600160a01b0392909216919091179055565b3b151590565b604080516f686f6d65546f6b656e4164647265737360801b6020808301919091526001600160601b0319606086811b82166030850152845160248186030181526044850186528051908401206000908152600280855286822080546001600160a01b03808b166001600160a01b0319928316811790935572666f726569676e546f6b656e4164647265737360681b60648a0152948a901b90951660778801528751606b818903018152608b909701808952875197870197909720835294529485208054909216908716908117909155909290917f78d063210f4fb6b4cc932390bb8045fa2465e51349590182dab8b9e84c57a6ee9190a35050565b7f6168652c307c1e813ca11cfb3a601f1cf3b22452021a5052d8b05f1f1f8a3e925490565b805182901562001edd57815160141462001ecf57600080fd5b62001eda826200301d565b90505b92915050565b60408051600180825281830190925260609182919060208083019080368337019050509050828160008151811062001f1757fe5b602090810291909101015292915050565b62001f338562000783565b62001f455762001f45856001620022e7565b606062001f5586858585620024f9565b9050600062001f718262001f6b89898962003024565b62002af9565b9050620017c7818888878762002b9e565b600062001f8e62001534565b9050336001600160a01b0382161462001fa657600080fd5b62001fb062000eaa565b6001600160a01b0316816001600160a01b031663d67bdd256040518163ffffffff1660e01b815260040160206040518083038186803b15801562001ff357600080fd5b505afa15801562002008573d6000803e3d6000fd5b505050506040513d60208110156200201f57600080fd5b50516001600160a01b0316146200066c57600080fd5b60008484848460405160200180856001600160a01b03168152602001846001600160a01b031681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015620020a257818101518382015260200162002088565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015620020e3578181015183820152602001620020c9565b5050505090500196505050505050506040516020818303038152906040528051906020012090505b949350505050565b604080516e6d657373616765436865636b73756d60881b602080830191909152602f80830185905283518084039091018152604f90920183528151918101919091206000908152908190522054919050565b604080516b1b595cdcd859d9519a5e195960a21b602080830191909152602c8083019490945282518083039094018452604c9091018252825192810192909220600090815260049092529020805460ff19166001179055565b620021e3846000620021d08262000a6d565b6001600160a01b0316148585856200302d565b50505050565b620021f48162001d90565b620021fe57600080fd5b7f20b8ca26cc94f39fab299954184cf3a9bd04f69543e4f454fab299f015b8130f60005260026020527f0c25bd6cb8545e46227bc56e841bd085538c74351fb22e98acdfbe596b353cfb80546001600160a01b0319166001600160a01b0392909216919091179055565b620022738162001d90565b6200227d57600080fd5b7f02e1d283efd236e8b97cefe072f0c863fa2db9f9ba42b0eca53ab31c49067a6760005260026020527f953ab8a758dd553cc38f793a1da5659c9dc6ef69c086214f73ad0b17e262b03180546001600160a01b0319166001600160a01b0392909216919091179055565b604080516e1d1bdad95b949959da5cdd195c9959608a1b6020808301919091526001600160601b0319606086901b16602f830152825160238184030181526043909201835281519181019190912060009081529081905220548114620006ef57604080516e1d1bdad95b949959da5cdd195c9959608a1b60208083019190915260609490941b6001600160601b031916602f820152815180820360230181526043909101825280519084012060009081529283905290912055565b620023ad8762000983565b620023b757600080fd5b6200242987878787878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808b0282810182019093528a82529093508a9250899182918501908490808284376000920191909152506200302d92505050565b62002433620032ec565b856001600160a01b0316886001600160a01b03167fdba5aae9a9fef2121c9cd75845616e9a0ab4820000f44140995e6c286ef495db878787876040516200247e9493929190620049a5565b60405180910390a450505050505050565b7f98aa806e31e94a687a31c65769cb99670064dd7f5a87526da075c5fb4eab988060005260026020527f0c1206883be66049a02d4937078367c00b3d71dd1a9465df969363c6ddeac96d80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b038416158015906200252f57506200251962000eaa565b6001600160a01b0316846001600160a01b031614155b6200253957600080fd5b6000620025468662000a6d565b90506001600160a01b0381166200299657606084516001600160401b03811180156200257157600080fd5b50604051908082528060200260200182016040528015620025a757816020015b6060815260200190600190039081620025915790505b50845190915015620027205760005b855181101562002719576000620025e289888481518110620025d457fe5b60200260200101516200151c565b905060006200260f878481518110620025f757fe5b6020026020010151836200336490919063ffffffff16565b9050808a6001600160a01b031662fdd58e308b87815181106200262e57fe5b60200260200101516040518363ffffffff1660e01b8152600401620026559291906200498c565b60206040518083038186803b1580156200266e57600080fd5b505afa15801562002683573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026a991906200443b565b1015620026b557600080fd5b620026d68a898581518110620026c757fe5b602002602001015183620033bf565b620026f68a898581518110620026e857fe5b6020026020010151620033d6565b8484815181106200270357fe5b60209081029190910101525050600101620025b6565b5062002863565b60005b855181101562002861576200273f88878381518110620025d457fe5b156200274a57600080fd5b306001600160a01b0316886001600160a01b0316636352211e8884815181106200277057fe5b60200260200101516040518263ffffffff1660e01b815260040162002796919062004a19565b60206040518083038186803b158015620027af57600080fd5b505afa158015620027c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027ea919062003dec565b6001600160a01b031614620027fe57600080fd5b62002820888783815181106200281057fe5b60200260200101516001620033bf565b62002840888783815181106200283257fe5b6020026020010151620035ae565b8282815181106200284d57fe5b602090810291909101015260010162002723565b505b6200286e87620012da565b15620028e5576013855111156200288457600080fd5b604051632dc0782560e21b90620028a8908990899089908990879060240162004754565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915292506200210b915050565b600e85511115620028f557600080fd5b6060620029028862003627565b905060606200291189620038be565b905060008251118062002925575060008151115b6200292f57600080fd5b604051631f25ae8d60e31b9062002957908b90859085908d908d908d908b90602401620048fb565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915294506200210b9350505050565b82511562002a0857604051637265da3760e11b81526001600160a01b0387169063e4cbb46e90620029ce9087908790600401620049d0565b600060405180830381600087803b158015620029e957600080fd5b505af1158015620029fe573d6000803e3d6000fd5b5050505062002a9a565b60005b845181101562002a9857866001600160a01b03166342966c6886838151811062002a3157fe5b60200260200101516040518263ffffffff1660e01b815260040162002a57919062004a19565b600060405180830381600087803b15801562002a7257600080fd5b505af115801562002a87573d6000803e3d6000fd5b50506001909201915062002a0b9050565b505b604051636ca4835760e01b9062002abc90839088908890889060240162004707565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152915050949350505050565b600062002b0562001534565b6001600160a01b031663dc8601b362002b1d62000eaa565b8562002b2862001471565b6040518463ffffffff1660e01b815260040162002b489392919062004878565b602060405180830381600087803b15801562002b6357600080fd5b505af115801562002b78573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001eda91906200443b565b62002ba984620018b4565b62002bb357600080fd5b62002bcc8562002bc68686868662002035565b62003a63565b84836001600160a01b0316856001600160a01b03167f4592bc44d36f208ac23b24a332824c332066017d3978a7d3c6543f992ea17f3d858560405162002c14929190620049d0565b60405180910390a45050505050565b60005b8381101562000b1457600083838381811062002c3e57fe5b905060200281019062002c52919062004a7b565b9050111562002cf457856001600160a01b031663162094c486868481811062002c7757fe5b9050602002013585858581811062002c8b57fe5b905060200281019062002c9f919062004a7b565b6040518463ffffffff1660e01b815260040162002cbf9392919062004a22565b600060405180830381600087803b15801562002cda57600080fd5b505af115801562002cef573d6000803e3d6000fd5b505050505b60010162002c26565b62002d0762001e91565b1562002d1257600080fd5b62002d1e600162003ab5565b604080516323b872dd60e01b81523360048201523060248201526044810183905290516001600160a01b038516916323b872dd91606480830192600092919082900301818387803b15801562002d7357600080fd5b505af115801562002d88573d6000803e3d6000fd5b5050505062002d98600062003ab5565b62001598833384620007578562001ee3565b604080516b6d65646961746f724f776e7360a01b602080830191909152606094851b6001600160601b031916602c8301528183019390935281518082038301815293810182528351938301939093206080840152600460a0808501919091528151808503909101815260c09093019052815191012090565b6001600160a01b03811662002e3657600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e062002e6162000f01565b604080516001600160a01b03928316815291841660208301528051918290030190a17f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e80546001600160a01b0319166001600160a01b0392909216919091179055565b62002ef762003ad9565b81111562002f0457600080fd5b7f2dfd6c9f781bb6bbb5369c114e949b69ebb440ef3d4dd6b2836225eb1dc3a2be60009081526020527f2de0d2cdc19d356cb53b5984f91bfd3b31fe0c678a0d190a6db39274bb34753f55565b606080827f000000000000000000000000000000000000000000000000000000000000000060405160200162002f89929190620046cf565b60408051808303601f1901815291905292517f00000000000000000000000000000000000000000000000000000000000000000183525090919050565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc805460ff19166001179055565b6014015190565b60019392505050565b8051156200318f578315620031225760005b8251811015620030a4576200309b868483815181106200305b57fe5b6020026020010151620030958585815181106200307457fe5b60200260200101516200308e8b898881518110620025d457fe5b9062003b1e565b620033bf565b6001016200303f565b5060408051600081526020810191829052631759616b60e11b9091526001600160a01b03861690632eb2c2d690620030e890309087908790879060248101620047b8565b600060405180830381600087803b1580156200310357600080fd5b505af115801562003118573d6000803e3d6000fd5b5050505062003189565b604051634b93bab560e11b81526001600160a01b03861690639727756a90620031549086908690869060040162004834565b600060405180830381600087803b1580156200316f57600080fd5b505af115801562003184573d6000803e3d6000fd5b505050505b620032e5565b8315620032535760005b82518110156200324c57620031c586848381518110620031b557fe5b60200260200101516000620033bf565b856001600160a01b03166323b872dd3086868581518110620031e357fe5b60200260200101516040518463ffffffff1660e01b81526004016200320b9392919062004810565b600060405180830381600087803b1580156200322657600080fd5b505af11580156200323b573d6000803e3d6000fd5b505060019092019150620031999050565b50620032e5565b60005b825181101562000b1457856001600160a01b03166340c10f19858584815181106200327d57fe5b60200260200101516040518363ffffffff1660e01b8152600401620032a49291906200498c565b600060405180830381600087803b158015620032bf57600080fd5b505af1158015620032d4573d6000803e3d6000fd5b505060019092019150620032569050565b5050505050565b6000620032f862001534565b6001600160a01b031663669f618b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200333157600080fd5b505afa15801562003346573d6000803e3d6000fd5b505050506040513d60208110156200335d57600080fd5b5051905090565b60008282018381101562001eda576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000620033cd848462002daa565b91909155505050565b60408051602480820184905282518083039091018152604490910182526020810180516001600160e01b03166303a24d0760e21b1781529151815160609360009385936001600160a01b03891693919290918291908083835b60208310620034505780518252601f1990920191602091820191016200342f565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114620034b2576040519150601f19603f3d011682016040523d82523d6000602084013e620034b7565b606091505b509150915081620034d85760405180602001604052806000815250620035a5565b808060200190516020811015620034ee57600080fd5b81019080805160405193929190846401000000008211156200350f57600080fd5b9083019060208201858111156200352557600080fd5b82516401000000008111828201881017156200354057600080fd5b82525081516020918201929091019080838360005b838110156200356f57818101518382015260200162003555565b50505050905090810190601f1680156200359d5780820380516001836020036101000a031916815260200191505b506040525050505b95945050505050565b60408051602480820184905282518083039091018152604490910182526020810180516001600160e01b031663c87b56dd60e01b1781529151815160609360009385936001600160a01b038916939192909182919080838360208310620034505780518252601f1990920191602091820191016200342f565b60408051600481526024810182526020810180516001600160e01b03166306fdde0360e01b1781529151815160609360009385936001600160a01b03881693919290918291908083835b60208310620036925780518252601f19909201916020918201910162003671565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114620036f4576040519150601f19603f3d011682016040523d82523d6000602084013e620036f9565b606091505b509150915081620037ea576040805169637573746f6d4e616d6560b01b602080830191909152606087901b6001600160601b031916602a8301528251808303601e018152603e83018085528151918301919091206000908152600180845290859020805460029281161561010002600019011691909104601f81018490049093028401605e908101909552828252909390920182828015620037df5780601f10620037b357610100808354040283529160200191620037df565b820191906000526020600020905b815481529060010190602001808311620037c157829003601f168201915b50505050506200210b565b8080602001905160208110156200380057600080fd5b81019080805160405193929190846401000000008211156200382157600080fd5b9083019060208201858111156200383757600080fd5b82516401000000008111828201881017156200385257600080fd5b82525081516020918201929091019080838360005b838110156200388157818101518382015260200162003867565b50505050905090810190601f168015620038af5780820380516001836020036101000a031916815260200191505b50604052505050949350505050565b60408051600481526024810182526020810180516001600160e01b03166395d89b4160e01b1781529151815160609360009385936001600160a01b03881693919290918291908083835b60208310620039295780518252601f19909201916020918201910162003908565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146200398b576040519150601f19603f3d011682016040523d82523d6000602084013e62003990565b606091505b509150915081620037ea57600160008560405160200180806b18dd5cdd1bdb54de5b589bdb60a21b815250600c01826001600160a01b031660601b81526014019150506040516020818303038152906040528051906020012081526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620037df5780601f10620037b357610100808354040283529160200191620037df565b604080516e6d657373616765436865636b73756d60881b602080830191909152602f8083019590955282518083039095018552604f909101825283519381019390932060009081529283905290912055565b7f6168652c307c1e813ca11cfb3a601f1cf3b22452021a5052d8b05f1f1f8a3e9255565b600062003ae562001534565b6001600160a01b031663e5789d036040518163ffffffff1660e01b815260040160206040518083038186803b1580156200333157600080fd5b60008282111562003b76576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262003bb4576000855562003bff565b82601f1062003bcf5782800160ff1982351617855562003bff565b8280016001018555821562003bff579182015b8281111562003bff57823582559160200191906001019062003be2565b5062003c0d92915062003c2d565b5090565b61053a8062004b2c83390190565b61053a806200506683390190565b5b8082111562003c0d576000815560010162003c2e565b8035620007b38162004b15565b60008083601f84011262003c63578182fd5b5081356001600160401b0381111562003c7a578182fd5b602083019150836020808302850101111562003c9557600080fd5b9250929050565b600082601f83011262003cad578081fd5b81356001600160401b0381111562003cc157fe5b602080820262003cd382820162004ac2565b8381529350818401858301828701840188101562003cf057600080fd5b600092505b8483101562003d1557803582526001929092019190830190830162003cf5565b505050505092915050565b60008083601f84011262003d32578182fd5b5081356001600160401b0381111562003d49578182fd5b60208301915083602082850101111562003c9557600080fd5b600082601f83011262003d73578081fd5b81356001600160401b0381111562003d8757fe5b62003d9c601f8201601f191660200162004ac2565b915080825283602082850101111562003db457600080fd5b8060208401602084013760009082016020015292915050565b60006020828403121562003ddf578081fd5b813562001eda8162004b15565b60006020828403121562003dfe578081fd5b815162001eda8162004b15565b6000806040838503121562003e1e578081fd5b823562003e2b8162004b15565b9150602083013562003e3d8162004b15565b809150509250929050565b6000806000806060858703121562003e5e578182fd5b843562003e6b8162004b15565b9350602085013562003e7d8162004b15565b925060408501356001600160401b0381111562003e98578283fd5b62003ea68782880162003c51565b95989497509550505050565b6000806000806000806080878903121562003ecb578182fd5b863562003ed88162004b15565b9550602087013562003eea8162004b15565b945060408701356001600160401b038082111562003f06578384fd5b62003f148a838b0162003c51565b9096509450606089013591508082111562003f2d578384fd5b5062003f3c89828a0162003c51565b979a9699509497509295939492505050565b60008060008060008060008060a0898b03121562003f6a578182fd5b883562003f778162004b15565b9750602089013562003f898162004b15565b965060408901356001600160401b038082111562003fa5578384fd5b62003fb38c838d0162003c51565b909850965060608b013591508082111562003fcc578384fd5b62003fda8c838d0162003c51565b909650945060808b013591508082111562003ff3578384fd5b50620040028b828c0162003c51565b999c989b5096995094979396929594505050565b60008060008060008060008060a0898b03121562004032578384fd5b88356200403f8162004b15565b97506020890135620040518162004b15565b965060408901356001600160401b03808211156200406d578586fd5b6200407b8c838d0162003c51565b909850965060608b013591508082111562004094578586fd5b620040a28c838d0162003c51565b909650945060808b0135915080821115620040bb578384fd5b50620040028b828c0162003d20565b60008060008060008060c08789031215620040e3578384fd5b8635620040f08162004b15565b95506020870135620041028162004b15565b94506040870135935060608701356200411b8162004b15565b925060808701356200412d8162004b15565b915060a08701356200413f8162004b15565b809150509295509295509295565b60008060008060006080868803121562004165578283fd5b8535620041728162004b15565b94506020860135620041848162004b15565b93506040860135925060608601356001600160401b03811115620041a6578182fd5b620041b48882890162003d20565b969995985093965092949392505050565b60008060008060008060a08789031215620041de578384fd5b8635620041eb8162004b15565b95506020870135620041fd8162004b15565b9450604087013593506060870135925060808701356001600160401b0381111562004226578283fd5b62003f3c89828a0162003d20565b6000806040838503121562004247578182fd5b8235620042548162004b15565b91506020830135801515811462003e3d578182fd5b60008060008060006060868803121562004281578283fd5b85356200428e8162004b15565b945060208601356001600160401b0380821115620042aa578485fd5b620042b889838a0162003d20565b90965094506040880135915080821115620042d1578283fd5b50620041b48882890162003d20565b60008060008060008060008060008060e08b8d031215620042ff578384fd5b6200430a8b62003c44565b995060208b01356001600160401b038082111562004326578586fd5b620043348e838f0162003d62565b9a5060408d01359150808211156200434a578586fd5b620043588e838f0162003d62565b99506200436860608e0162003c44565b985060808d01359150808211156200437e578586fd5b6200438c8e838f0162003c51565b909850965060a08d0135915080821115620043a5578586fd5b620043b38e838f0162003c51565b909650945060c08d0135915080821115620043cc578384fd5b50620043db8d828e0162003c51565b915080935050809150509295989b9194979a5092959850565b6000806040838503121562004407578182fd5b8235620044148162004b15565b946020939093013593505050565b60006020828403121562004434578081fd5b5035919050565b6000602082840312156200444d578081fd5b5051919050565b600080600080600080600060a0888a0312156200446f578081fd5b873596506020880135620044838162004b15565b95506040880135620044958162004b15565b945060608801356001600160401b0380821115620044b1578283fd5b620044bf8b838c0162003c51565b909650945060808a0135915080821115620044d8578283fd5b50620044e78a828b0162003c51565b989b979a50959850939692959293505050565b600080600080600060a0868803121562004512578283fd5b853594506020860135620045268162004b15565b93506040860135620045388162004b15565b925060608601356001600160401b038082111562004554578283fd5b6200456289838a0162003c9c565b9350608088013591508082111562004578578283fd5b50620045878882890162003c9c565b9150509295509295909350565b600080600060608486031215620045a9578081fd5b8335620045b68162004b15565b92506020840135620045c88162004b15565b929592945050506040919091013590565b6000815180845260208085018081965082840281019150828601855b858110156200462357828403895262004610848351620046a1565b98850198935090840190600101620045f5565b5091979650505050505050565b81835260006001600160fb1b0383111562004649578081fd5b6020830280836020870137939093016020019283525090919050565b6000815180845260208085019450808401835b83811015620046965781518752958201959082019060010162004678565b509495945050505050565b60008151808452620046bb81602086016020860162004ae6565b601f01601f19169290920160200192915050565b60008351620046e381846020880162004ae6565b9190910191825250602001919050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152608060408201819052600090620047359083018562004665565b828103606084015262004749818562004665565b979650505050505050565b6001600160a01b0386811682528516602082015260a060408201819052600090620047829083018662004665565b828103606084015262004796818662004665565b90508281036080840152620047ac8185620045d9565b98975050505050505050565b6001600160a01b0386811682528516602082015260a060408201819052600090620047e69083018662004665565b8281036060840152620047fa818662004665565b90508281036080840152620047ac8185620046a1565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03841681526060602082018190526000906200485a9083018562004665565b82810360408401526200486e818562004665565b9695505050505050565b6001600160a01b03841681526060602082018190526000906200489e90830185620046a1565b9050826040830152949350505050565b600060018060a01b03808716835260806020840152620048d26080840187620046a1565b8381036040850152620048e68187620046a1565b92505080841660608401525095945050505050565b600060018060a01b03808a16835260e060208401526200491f60e084018a620046a1565b838103604085015262004933818a620046a1565b90508188166060850152838103608085015262004951818862004665565b91505082810360a084015262004968818662004665565b905082810360c08401526200497e8185620045d9565b9a9950505050505050505050565b6001600160a01b03929092168252602082015260400190565b600060408252620049bb60408301868862004630565b82810360208401526200474981858762004630565b600060408252620049e5604083018562004665565b8281036020840152620035a5818562004665565b901515815260200190565b6001600160e01b031991909116815260200190565b90815260200190565b60008482526040602083015282604083015282846060840137818301606090810191909152601f909201601f1916010192915050565b6001600160401b0393841681529183166020830152909116604082015260600190565b6000808335601e1984360301811262004a92578283fd5b8301803591506001600160401b0382111562004aac578283fd5b60200191503681900382131562003c9557600080fd5b6040518181016001600160401b038111828210171562004ade57fe5b604052919050565b60005b8381101562004b0357818101518382015260200162004ae9565b83811115620021e35750506000910152565b6001600160a01b03811681146200066c57600080fdfe608060405234801561001057600080fd5b5060405161053a38038061053a8339818101604052608081101561003357600080fd5b81516020830180516040519294929383019291908464010000000082111561005a57600080fd5b90830190602082018581111561006f57600080fd5b825164010000000081118282018810171561008957600080fd5b82525081516020918201929091019080838360005b838110156100b657818101518382015260200161009e565b50505050905090810190601f1680156100e35780820380516001836020036101000a031916815260200191505b506040526020018051604051939291908464010000000082111561010657600080fd5b90830190602082018581111561011b57600080fd5b825164010000000081118282018810171561013557600080fd5b82525081516020918201929091019080838360005b8381101561016257818101518382015260200161014a565b50505050905090810190601f16801561018f5780820380516001836020036101000a031916815260200191505b506040526020908101517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc87905585519093506101d29250600691860190610210565b5081516101e6906007906020850190610210565b50600a80546001600160a01b0319166001600160a01b0392909216919091179055506102b1915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282610246576000855561028c565b82601f1061025f57805160ff191683800117855561028c565b8280016001018555821561028c579182015b8281111561028c578251825591602001919060010190610271565b5061029892915061029c565b5090565b5b80821115610298576000815560010161029d565b61027a806102c06000396000f3fe6080604052600436106100345760003560e01c80632f95b6aa1461007d5780635c60da1b146100be578063d784d426146100ef575b600061003e610124565b90506001600160a01b03811661005357600080fd5b60405136600082376000803683855af43d82016040523d6000833e808015610079573d83f35b3d83fd5b34801561008957600080fd5b50610092610149565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b3480156100ca57600080fd5b506100d3610124565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b506101226004803603602081101561011257600080fd5b50356001600160a01b0316610152565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60016000809192565b600a546001600160a01b03163314806101ec5750600a60009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101b457600080fd5b505afa1580156101c8573d6000803e3d6000fd5b505050506040513d60208110156101de57600080fd5b50516001600160a01b031633145b6101f557600080fd5b6001600160a01b03811661020857600080fd5b6102118161023e565b61021a57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fea2646970667358221220bc88bfc34175d5f654e94d2bf5d87e430cfb86f6b1fd721c819c7b4541dfff6264736f6c63430007050033608060405234801561001057600080fd5b5060405161053a38038061053a8339818101604052608081101561003357600080fd5b81516020830180516040519294929383019291908464010000000082111561005a57600080fd5b90830190602082018581111561006f57600080fd5b825164010000000081118282018810171561008957600080fd5b82525081516020918201929091019080838360005b838110156100b657818101518382015260200161009e565b50505050905090810190601f1680156100e35780820380516001836020036101000a031916815260200191505b506040526020018051604051939291908464010000000082111561010657600080fd5b90830190602082018581111561011b57600080fd5b825164010000000081118282018810171561013557600080fd5b82525081516020918201929091019080838360005b8381101561016257818101518382015260200161014a565b50505050905090810190601f16801561018f5780820380516001836020036101000a031916815260200191505b506040526020908101517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc87905585519093506101d29250600491860190610210565b5081516101e6906005906020850190610210565b50600880546001600160a01b0319166001600160a01b0392909216919091179055506102b1915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282610246576000855561028c565b82601f1061025f57805160ff191683800117855561028c565b8280016001018555821561028c579182015b8281111561028c578251825591602001919060010190610271565b5061029892915061029c565b5090565b5b80821115610298576000815560010161029d565b61027a806102c06000396000f3fe6080604052600436106100345760003560e01c80632f95b6aa1461007d5780635c60da1b146100be578063d784d426146100ef575b600061003e610124565b90506001600160a01b03811661005357600080fd5b60405136600082376000803683855af43d82016040523d6000833e808015610079573d83f35b3d83fd5b34801561008957600080fd5b50610092610149565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b3480156100ca57600080fd5b506100d3610124565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b506101226004803603602081101561011257600080fd5b50356001600160a01b0316610152565b005b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60016000809192565b6008546001600160a01b03163314806101ec5750600860009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101b457600080fd5b505afa1580156101c8573d6000803e3d6000fd5b505050506040513d60208110156101de57600080fd5b50516001600160a01b031633145b6101f557600080fd5b6001600160a01b03811661020857600080fd5b6102118161023e565b61021a57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b3b15159056fea2646970667358221220172e5b97c48bf1ecec2125e7f83d61c8663c5d22fba42b7e8eee56182c804c1564736f6c63430007050033a26469706673582212203de2f6327528d76ea9ba329e7bc095eed82f52f2b2395accf5cedfc67813fe0b64736f6c634300070500330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a2066726f6d207844616900000000000000000000000000000000000000000000