0 txs
53k calls
constructor
No constructor.
functions
balanceOf
viewfunction balanceOf(address) view returns (uint256)
bridge
viewfunction bridge() view returns (address)
isTrustedForwarder
viewfunction isTrustedForwarder(address forwarder) view returns (bool)
metaRouter
viewfunction metaRouter() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
requestCount
viewfunction requestCount() view returns (uint256)
requests
viewfunction requests(bytes32) view returns (address recipient, address chain2address, uint256 amount, address rtoken, uint8 state)
tokenThreshold
viewfunction tokenThreshold(address) view returns (uint256)
tokenWhitelist
viewfunction tokenWhitelist(address) view returns (bool)
unsynthesizeStates
viewfunction unsynthesizeStates(bytes32) view returns (uint8)
versionRecipient
purefunction versionRecipient() pure returns (string)
wrapper
viewfunction wrapper() view returns (address)
initialize
nonpayablefunction initialize(address _bridge, address _trustedForwarder, address _wrapper, address _whitelistedToken, address _metaRouter)
metaRevertRequest
nonpayablefunction metaRevertRequest(tuple _metaRevertTransaction)
metaSynthesize
nonpayablefunction metaSynthesize(tuple _metaSynthesizeTransaction) returns (bytes32)
metaUnsynthesize
nonpayablefunction metaUnsynthesize(uint256 _stableBridgingFee, bytes32 _crossChainID, bytes32 _externalID, address _to, uint256 _amount, address _rToken, address _finalReceiveSide, bytes _finalCalldata, uint256 _finalOffset)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
revertBurnRequest
nonpayablefunction revertBurnRequest(uint256 _stableBridgingFee, bytes32 _internalID, address _receiveSide, address _oppositeBridge, uint256 _chainId, bytes32 _clientID)
revertSynthesize
nonpayablefunction revertSynthesize(uint256 _stableBridgingFee, bytes32 _externalID)
setBalanceOf
nonpayablefunction setBalanceOf(address[] _tokens)
setMetaRouter
nonpayablefunction setMetaRouter(address _metaRouter)
setTokenThreshold
nonpayablefunction setTokenThreshold(address _token, uint256 _threshold)
setWhitelistToken
nonpayablefunction setWhitelistToken(address _token, bool _activate)
setWrapper
nonpayablefunction setWrapper(address _wrapper)
synthesize
nonpayablefunction synthesize(uint256 _stableBridgingFee, address _token, uint256 _amount, address _chain2address, address _receiveSide, address _oppositeBridge, address _revertableAddress, uint256 _chainID, bytes32 _clientID) returns (bytes32)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
unsynthesize
nonpayablefunction unsynthesize(uint256 _stableBridgingFee, bytes32 _externalID, bytes32 _crossChainID, address _token, uint256 _amount, address _to)
events
BurnCompleted
event BurnCompleted(bytes32 indexed id, bytes32 indexed crossChainID, address indexed to, uint256 amount, uint256 bridgingFee, address token)
ClientIdLog
event ClientIdLog(bytes32 requestId, bytes32 indexed clientId)
MetaRevertRequest
event MetaRevertRequest(bytes32 indexed id, address indexed to)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
RevertBurnRequest
event RevertBurnRequest(bytes32 indexed id, address indexed to)
RevertSynthesizeCompleted
event RevertSynthesizeCompleted(bytes32 indexed id, address indexed to, uint256 amount, uint256 bridgingFee, address token)
SetBalanceOf
event SetBalanceOf(address[] tokens)
SetMetaRouter
event SetMetaRouter(address metaRouter)
SetTokenThreshold
event SetTokenThreshold(address token, uint256 threshold)
SetWhitelistToken
event SetWhitelistToken(address token, bool activate)
SetWrapper
event SetWrapper(address wrapper)
SynthesizeRequest
event SynthesizeRequest(bytes32 id, address indexed from, uint256 indexed chainID, address indexed revertableAddress, address to, uint256 amount, address token)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60808060405234610016576131e6908161001c8239f35b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c806308759e9b146123e25780631459457a146122035780631ebe53ef146120cb5780633f4ba83a1461206c578063486ff0cd1461200a5780634a91366414611eb1578063572b6c0514611e7d5780635badbe4c14611e5f5780635c975abb14611e3c5780636877527814611e0457806370a0823114611dcc578063715018a614611d55578063753d756314611d185780637c374f9914611c895780638456cb5914611c1c5780638bb3980214611b8a5780638da5cb5b14611b635780639d86698514611af3578063ac210cc714611acc578063b1659a3c1461168f578063c2167d931461160e578063c23a4c881461157c578063c42a2894146113ab578063ce654c1714610c31578063dbec15bb14610c0a578063e78cea9214610be3578063eadd5c3414610af1578063f2fde38b14610a3a578063fab9289414610a045763fce633c21461016757600080fd5b34610a01576003196020813601126105ee5767ffffffffffffffff600435116105ee576101a09060043536030112610a01576040516101a581612726565b6004356004013581526024600435013560208201526101c86044600435016126a2565b60408201526101db6064600435016126a2565b60608201526101ee6084600435016126a2565b608082015260043560a481013560a083015260c481013560c08301526102169060e4016126a2565b60e0820152610104600435013567ffffffffffffffff81116109fd57610243906004369181350101612866565b610100820152610258610124600435016126a2565b61012082015261026d610144600435016126a2565b610140820152610164600435013567ffffffffffffffff81116109fd5761029b906004369181350101612866565b61016082015261018460043501356101808201526102be60ff606954161561294d565b6101008101515115610601578160208201516103226103306102de61316d565b926040519283916020830195469130908892606894929184526bffffffffffffffffffffffff19809260601b16602085015260601b16603483015260488201520190565b03601f198101835282612798565b519020808252606b602052610358600160ff6040852054166103518161282a565b1415612fb6565b808252606b60205260408220600260ff198254161790556104c57fffffffff0000000000000000000000000000000000000000000000000000000060436040516103a18161275f565b8181527f6573290000000000000000000000000000000000000000000000000000000000606060208301927f7265766572744d6574614275726e2875696e743235362c627974657333322c6184527f6464726573732c62797465732c616464726573732c616464726573732c6279746040820152015220166103228551936001600160a01b0360e088015116906101008801519161048b6001600160a01b036101208b015116936001600160a01b036101408c015116926101608c0151946040519a8b9960208b015260248a01526044890152606488015260e060848801526101048701906126b6565b9260a486015260c48501527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8483030160e48501526126b6565b6001600160a01b0360675416906001600160a01b03604085015116916001600160a01b036060860151169060a086015193813b156105fd5785809461052060405197889687958694633675e4e160e11b865260048601613026565b03925af180156105f2576105da575b5050806020809201517f5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5836001600160a01b0361056a61316d565b1660405190847f40590cc12db0488520ce425059f83f8caed91bdf98de5ff829dc57c63843161b8980a3610180850151938152a25b01516001600160a01b036105b161316d565b16907fbd03c66ec5bd3d01fbf22bc794f68ac88b693023b438724019205a4b42aefb208380a380f35b6105e3906126f6565b6105ee57813861052f565b5080fd5b6040513d84823e3d90fd5b8580fd5b61016081015151156108765760208101516103226106206102de61316d565b519020808352606b602052610641600160ff6040862054166103518161282a565b808352606b60205260408320600260ff198254161790556001600160a01b037fffffffff00000000000000000000000000000000000000000000000000000000604260405161068f8161275f565b8181527f7329000000000000000000000000000000000000000000000000000000000000606060208301927f7265766572744275726e416e644275726e2875696e743235362c62797465733384527f322c616464726573732c616464726573732c75696e743235362c61646472657360408201520152201691835190826080860151169061071b61316d565b926040519560208701526024860152604485015230606485015260848401524660a48401521660c482015260c48152610100810181811067ffffffffffffffff821117610860578391816040526001600160a01b0360675416906001600160a01b0361012086015116916001600160a01b036060870151169260a0870151823b1561085c5760ff1986946107c489979388948896633675e4e160e11b8852846101048101613026565b0301925af180156105f257610848575b5050806020809201517f5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5836001600160a01b0361080f61316d565b1660405190847f40590cc12db0488520ce425059f83f8caed91bdf98de5ff829dc57c63843161b8980a3610180850151938152a261059f565b610851906126f6565b6105ee5781386107d4565b8680fd5b634e487b7160e01b600052604160045260246000fd5b817fffffffff0000000000000000000000000000000000000000000000000000000060586040516108a68161275f565b8181527f75696e743235362c616464726573732c62797465733332290000000000000000606060208301927f72657665727453796e74686573697a655265717565737442794272696467652884527f75696e743235362c627974657333322c616464726573732c616464726573732c6040820152015220168251906020840151916001600160a01b03809381604088015116826080890151169061094861316d565b926101808a01519560405197602089015260248801526044870152606486015260848501524660a48501521660c483015260e482015260e4815261098b8161277b565b81606754168261012086015116926060860151169060a086015193813b156105fd578580946109d060405197889687958694633675e4e160e11b865260048601613026565b03925af180156105f2576109e9575b505060209061059f565b6109f2906126f6565b6105ee5781386109df565b8280fd5b80fd5b5034610a01576020600319360112610a015760ff60406020926004358152606b845220541660405190610a368161282a565b8152f35b5034610a01576020600319360112610a0157610a54612634565b6001600160a01b03610a74816033541682610a6d61316d565b16146128ad565b811615610a8757610a84906128f8565b80f35b608460405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b5034610a01576020600319360112610a0157610b0b612634565b6001600160a01b0390610b25826033541683610a6d61316d565b168015610b79576020817fd5c54ab1d37bfef4dd2253d9d73c292e46f5bd8a67ca5920aab4c2e1993178e79273ffffffffffffffffffffffffffffffffffffffff19606f541617606f55604051908152a180f35b608460405162461bcd60e51b815260206004820152602760248201527f53796d623a206d657461526f757465722063616e6e6f74206265207a65726f2060448201527f61646472657373000000000000000000000000000000000000000000000000006064820152fd5b5034610a015780600319360112610a015760206001600160a01b0360675416604051908152f35b5034610a015780600319360112610a015760206001600160a01b03606f5416604051908152f35b5034610a015760031990602082360112610a015767ffffffffffffffff60043511610a0157610200809260043536030112610a015760405191820182811067ffffffffffffffff82111761086057604052600435600401358252602460043501356020830152610ca56044600435016126a2565b6040830152610cb86064600435016126a2565b6060830152610ccb6084600435016126a2565b6080830152610cde60a4600435016126a2565b60a0830152610cf160c4600435016126a2565b60c083015260e4600435013560e083015267ffffffffffffffff610104600435013511610a0157610d2d366004803561010481013501016127bb565b610100830152610d42610124600435016126a2565b61012083015267ffffffffffffffff610144600435013511610a0157610d7336600480356101448101350101612866565b610140830152610d88610164600435016126a2565b61016083015267ffffffffffffffff610184600435013511610a0157610db936600480356101848101350101612866565b6101808301526101a460043501356101a0830152610ddc6101c4600435016126a2565b6101c08301526101e460043501356101e0830152610dff60ff606954161561294d565b6001600160a01b036040830151168152606e602052610e2460ff604083205416612998565b610e4d60208301516001600160a01b036040850151168352606d602052604083205411156129e3565b610e746001600160a01b03604084015116610e6661316d565b906020850151913091612a76565b6001600160a01b036040830151168152606c602052610e9c60408220546020840151906130ef565b6001600160a01b036040840151168252606c60205260408220556001600160a01b036101c08301511615611392575b6068546040513060601b6bffffffffffffffffffffffff191660208201526034810191909152466054820152610f048160748101610322565b60208151910120906001600160a01b036080840151166001600160a01b036101c085015116610f7560e0860151916103226040519384926020840196898892606894929184526bffffffffffffffffffffffff19809260601b16602085015260601b16603483015260488201520190565b51902061122d8451916020860151866001600160a01b036040820151166001600160a01b036060830151166101008301516001600160a01b036101208501511690610140850151926001600160a01b0361016087015116946101a0610180880151970151976040519b610fe78d612726565b8c5260208c01528c60408c01528860608c015260808b01524660a08b015260c08a015260e089015261010088015261012087015261014086015261016085015261018084015261116e60405180947fc29a91bc00000000000000000000000000000000000000000000000000000000602083015260206024830152805160448301526020810151606483015260408101516084830152606081015160a48301526001600160a01b0360808201511660c483015260a081015160e48301526001600160a01b0360c0820151166101048301526101806111576110da60e08401516101a06101248701526101e48601906130b2565b6001600160a01b036101008501511661014486015261112b610120850151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc9283888303016101648901526126b6565b906001600160a01b036101408601511661018487015261016085015190868303016101a48701526126b6565b9101516101c483015203601f198101855284612798565b6001600160a01b0360c087015116906001600160a01b036060880151166001600160a01b0360038160408b0151169460208b0151604051916111af8361270a565b82526020820194855260408201908152606082019687526080820195600187528a52606a6020528360408b209251169473ffffffffffffffffffffffffffffffffffffffff199586845416178355846001840191511686825416179055516002820155019351169083541617825551906112288261282a565b612bd1565b61123860685461305b565b6068556001600160a01b03606754166001600160a01b03608086015116906001600160a01b0360a0870151169160e087015193823b156105fd5790858094939261129860405197889687958694633675e4e160e11b865260048601613026565b03925af180156105f25761137e575b6020836101e0866001600160a01b0360c08201511660e08201516001600160a01b036101c084015116917f31325fe0a1a2e6a5b1e41572156ba5b4e94f0fae7e7f63ec21e9b5ce1e4b3eab6001600160a01b0360608601511688860151906113486001600160a01b036040890151166040519384938c859293606092919594608085019685526001600160a01b038093166020860152604085015216910152565b0390a401517f5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f583604051848152a2604051908152f35b61138882916126f6565b610a0157806112a7565b6001600160a01b036060830151166101c0830152610ecb565b5034610a01576040600319360112610a01576004356024356001600160a01b036113da81606754163314612b86565b6113e960ff606954161561294d565b818452606a6020526040842092600384018054600160ff8260a01c1661140e8161282a565b0361151257836114e184827fefcdf9ea4e65571d2ce9c030c46954e950662df8a7d8bd039fc4417e37b2f88c9785740200000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff61150c981617885516998a8c52606c60205260408c20549a61149b600283019c8d5490612c20565b908d52606c60205260408d20556114c5828854168c6114bf86868654169254612c20565b91612c43565b6114d88383895416846067541690612c43565b54169854612c20565b925416604051938493849160409194936001600160a01b039160608501968552602085015216910152565b0390a380f35b608460405162461bcd60e51b815260206004820152602960248201527f53796d623a207374617465206e6f74206f70656e206f7220747820646f65732060448201527f6e6f7420657869737400000000000000000000000000000000000000000000006064820152fd5b5034610a0157610120600319360112610a015761159761261e565b61159f612660565b906115a861268c565b9160e4359267ffffffffffffffff841161160a576115cd610a84943690600401612866565b916115e46001600160a01b03606754163314612b86565b6115f360ff606954161561294d565b610104359360843590604435602435600435612dbf565b8480fd5b5034610a01576020600319360112610a01577fce42f6a6b3d7a9e5602623686f752d848285a87b22f0168a666c9c6064d2d230602061164b612634565b6001600160a01b0390611665826033541683610a6d61316d565b168073ffffffffffffffffffffffffffffffffffffffff196066541617606655604051908152a180f35b5034610a0157610120600319360112610a01576116aa61264a565b6116b261261e565b906116bb612676565b916116c4612660565b926116cd61268c565b906116dd60ff606954161561294d565b6001600160a01b0384168652606e6020526116fe60ff604088205416612998565b6001600160a01b0384168652606d602052611721604087205460443510156129e3565b61173861172c61316d565b60443590309087612a76565b6001600160a01b03828186168852606c60205261175b60443560408a20546130ef565b8287168952606c60205260408920551615611ac4575b856068546040516117af81610322602082019446903087916bffffffffffffffffffffffff196054949260601b168352601483015260348201520190565b519020956040516117fa8161032260e43588888d6020860192606894929184526bffffffffffffffffffffffff19809260601b16602085015260601b16603483015260488201520190565b60208151910120906119a3877fffffffff00000000000000000000000000000000000000000000000000000000604b6040516118358161275f565b8181527f35362c6164647265737329000000000000000000000000000000000000000000606060208301927f6d696e7453796e746865746963546f6b656e2875696e743235362c627974657384527f33322c627974657333322c616464726573732c75696e743235362c75696e74326040820152015220169360405194602086015260043560248601528060448601528a60648601526001600160a01b03821660848601524660a486015260443560c48601526001600160a01b0389168060e487015260e486526119058661277b565b6001600160a01b03600361191761316d565b82604051916119258361270a565b168152602081019384526040810160443581528360608301971687526080820195600187528b52606a6020528360408c209251169473ffffffffffffffffffffffffffffffffffffffff199586845416178355846001840191511686825416179055516002820155019351169083541617825551906112288261282a565b6119ae60685461305b565b6068556001600160a01b036067541690813b15611ac057836119eb9560405196879586948593633675e4e160e11b855260e4359260048601613026565b03925af18015611ab557611aa1575b50602094507f31325fe0a1a2e6a5b1e41572156ba5b4e94f0fae7e7f63ec21e9b5ce1e4b3eab6001600160a01b0380611a3161316d565b604080518981526001600160a01b0397881660208201526044359181019190915296909516606087015292169360e435939290921691608090a46040518181527f5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5836101043592a2604051908152f35b611aab86916126f6565b61160a57846119fa565b6040513d88823e3d90fd5b8380fd5b829150611771565b5034610a015780600319360112610a015760206001600160a01b0360665416604051908152f35b5034610a01576020600319360112610a0157604060a0916004358152606a602052206001600160a01b039081815416918060018301541691600360028201549101549060ff82871c169360405195865260208601526040850152166060830152611b5c8161282a565b6080820152f35b5034610a015780600319360112610a015760206001600160a01b0360335416604051908152f35b5034610a01576040600319360112610a01577fa6742efd4f410d6fd9688a6cf6a15b6d51121097a263056a3576baaacdc4a9ae611bc5612634565b602435906001600160a01b03611be2816033541682610a6d61316d565b81168452606d602052816040852055611c1660405192839283602090939291936001600160a01b0360408201951681520152565b0390a180f35b5034610a015780600319360112610a01577f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25860206001600160a01b03611c69816033541682610a6d61316d565b600160ff196069541617606955611c7e61316d565b60405191168152a180f35b5034610a01576040600319360112610a0157611ca3612634565b602435908115158092036109fd577f0a4552f1105808db6a44587c9ef0a7c4064bf620b9d843b514ad7365bd52239a916040916001600160a01b0390611cf0826033541683610a6d61316d565b1690818552606e60205282852060ff1981541660ff831617905582519182526020820152a180f35b5034610a01576020600319360112610a015760ff60406020926001600160a01b03611d41612634565b168152606e84522054166040519015158152f35b5034610a015780600319360112610a0157600060335473ffffffffffffffffffffffffffffffffffffffff196001600160a01b0391611da183821693611d9961316d565b1684146128ad565b166033557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610a01576020600319360112610a015760406020916001600160a01b03611df3612634565b168152606c83522054604051908152f35b5034610a01576020600319360112610a015760406020916001600160a01b03611e2b612634565b168152606d83522054604051908152f35b5034610a015780600319360112610a0157602060ff606954166040519015158152f35b5034610a015780600319360112610a01576020606854604051908152f35b5034610a01576020600319360112610a01576020611e99612634565b6001600160a01b038060655416911614604051908152f35b5034610a01576020806003193601126105ee5760043567ffffffffffffffff81116109fd57611ee49036906004016127bb565b906001600160a01b0390611eff826033541683610a6d61316d565b835b8351811015611fd3578083611f1860249387613088565b51168652606e8352611f3060ff604088205416612998565b8284611f3c8388613088565b5116604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015611ab5578690611fa4575b611f9f925084611f8d8388613088565b51168752606c8452604087205561305b565b611f01565b508282813d8311611fcc575b611fba8183612798565b810103126105fd57611f9f9151611f7d565b503d611fb0565b60405182815285907f5a980ed3bb4dd09162988674fd35c7002fa70e44dd03d2942ac38c074b1a638e9080611c16818701896130b2565b5034610a015780600319360112610a015761206860405161202a81612743565b600581527f322e302e3100000000000000000000000000000000000000000000000000000060208201526040519182916020835260208301906126b6565b0390f35b5034610a015780600319360112610a01577f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa60206001600160a01b036120b9816033541682610a6d61316d565b60ff1960695416606955611c7e61316d565b5034610a015760c0600319360112610a01576004356024356120eb61261e565b907faeef64b7687b985665b6620c7fa271b6f051a3fbe2bfc366fb9c964602eb6d26608435612118612660565b6121fd6121ce876001600160a01b039461213786606754163314612b86565b61214660ff606954161561294d565b878b52606b60205261216860ff60408d2054166121628161282a565b15612d4e565b8a612182826040898d1693848152606c6020522054612c20565b908c52606c60205260408c2055878b52606b60205260408b20600160ff198254161790556121ba6121b38383612c20565b868b612c43565b6121c98287606754168b612c43565b612c20565b95604051938493169760443597849160409194936001600160a01b039160608501968552602085015216910152565b0390a480f35b5034610a015760a0600319360112610a015761221d612634565b61222561264a565b61222d612603565b9061223661261e565b9061223f612676565b9385549460ff8660081c16806000146123d857303b155b1561236e57159586612340575b5061228f60ff885460081c16612278816130fc565b612281816130fc565b61228a816130fc565b6130fc565b61229f61229a61316d565b6128f8565b6001600160a01b0380958180948173ffffffffffffffffffffffffffffffffffffffff19971687606554161760655516856067541617606755168360665416176066551690606f541617606f551680612324575b506122fb5780f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff815416815580f35b8252606e60205260408220600160ff19825416179055386122f3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661010117875538612263565b608460405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b60ff871615612256565b5034610a015760c0600319360112610a01576024356123ff612603565b61240761261e565b61241660ff606954161561294d565b61241e61316d565b91846040519360209461246a81610322888201944690308c8892606894929184526bffffffffffffffffffffffff19809260601b16602085015260601b16603483015260488201520190565b519020808252606b855261248a600160ff6040852054166103518161282a565b808252606b855260408220600260ff198254161790557f7265766572744275726e2875696e743235362c62797465733332290000000000856040516124ce81612743565b601b81520152604051907ff70519ae000000000000000000000000000000000000000000000000000000008683015260043560248301526044820152604481526125178161275f565b6001600160a01b0393846067541690813b15611ac057836125539560405196879586948593633675e4e160e11b85526084359260048601613026565b03925af180156125f8576125c3575b50907f5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f59161258e61316d565b169260405193817f40590cc12db0488520ce425059f83f8caed91bdf98de5ff829dc57c63843161b8780a3835260a43592a280f35b936125f07f5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f59392956126f6565b939091612562565b6040513d87823e3d90fd5b604435906001600160a01b038216820361261957565b600080fd5b606435906001600160a01b038216820361261957565b600435906001600160a01b038216820361261957565b602435906001600160a01b038216820361261957565b60a435906001600160a01b038216820361261957565b608435906001600160a01b038216820361261957565b60c435906001600160a01b038216820361261957565b35906001600160a01b038216820361261957565b919082519283825260005b8481106126e2575050601f19601f8460006020809697860101520116010190565b6020818301810151848301820152016126c1565b67ffffffffffffffff811161086057604052565b60a0810190811067ffffffffffffffff82111761086057604052565b6101a0810190811067ffffffffffffffff82111761086057604052565b6040810190811067ffffffffffffffff82111761086057604052565b6080810190811067ffffffffffffffff82111761086057604052565b610120810190811067ffffffffffffffff82111761086057604052565b90601f601f19910116810190811067ffffffffffffffff82111761086057604052565b9080601f830112156126195781359067ffffffffffffffff8211610860578160051b604051936020936127f085840187612798565b85528380860192820101928311612619578301905b828210612813575050505090565b83809161281f846126a2565b815201910190612805565b6003111561283457565b634e487b7160e01b600052602160045260246000fd5b67ffffffffffffffff811161086057601f01601f191660200190565b81601f820112156126195780359061287d8261284a565b9261288b6040519485612798565b8284526020838301011161261957816000926020809301838601378301015290565b156128b457565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b603354906001600160a01b03809116918273ffffffffffffffffffffffffffffffffffffffff19821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b1561295457565b606460405162461bcd60e51b815260206004820152600c60248201527f53796d623a2070617573656400000000000000000000000000000000000000006044820152fd5b1561299f57565b606460405162461bcd60e51b815260206004820152601860248201527f53796d623a20756e617574686f72697a656420746f6b656e00000000000000006044820152fd5b156129ea57565b606460405162461bcd60e51b815260206004820152601c60248201527f53796d623a20616d6f756e7420756e646572207468726573686f6c64000000006044820152fd5b3d15612a59573d90612a3f8261284a565b91612a4d6040519384612798565b82523d6000602084013e565b606090565b90816020910312612619575180151581036126195790565b9091600080949381946040519160208301947f23b872dd0000000000000000000000000000000000000000000000000000000086526001600160a01b038092166024850152166044830152606482015260648152612ad38161270a565b51925af1612adf612a2e565b81612b57575b5015612aed57565b608460405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a20747260448201527f616e7366657246726f6d206661696c65640000000000000000000000000000006064820152fd5b8051801592508215612b6c575b505038612ae5565b612b7f9250602080918301019101612a5e565b3880612b64565b15612b8d57565b606460405162461bcd60e51b815260206004820152601e60248201527f53796d623a2063616c6c6572206973206e6f74207468652062726964676500006044820152fd5b90612bdb8161282a565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000083549260a01b169116179055565b91908203918211612c2d57565b634e487b7160e01b600052601160045260246000fd5b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082019081526001600160a01b03909316602482015260448101939093526000928392908390612c9b8160648101610322565b51925af1612ca7612a2e565b81612d1f575b5015612cb557565b608460405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201527f616e73666572206661696c6564000000000000000000000000000000000000006064820152fd5b8051801592508215612d34575b505038612cad565b612d479250602080918301019101612a5e565b3880612d2c565b15612d5557565b608460405162461bcd60e51b815260206004820152602660248201527f53796d623a2073796e74686574696320746f6b656e7320656d657267656e637960448201527f556e6275726e00000000000000000000000000000000000000000000000000006064820152fd5b9492939195969096600091878352606b602052612de660ff6040852054166121628161282a565b6001600160a01b0393612e408886881692838752606c602052612e0d816040892054612c20565b848852606c60205260408820558b8752606b60205260408720600160ff198254161790556121c98289606754168b612c43565b96825115612f4f57612e578887606f541689612c43565b85606f541692833b156105fd5785949392878a93612ebe88946040519b8c998a9889977ff5b697a50000000000000000000000000000000000000000000000000000000089526004890152602488015216604486015260c0606486015260c48501906126b6565b9f6084840152169d8e60a483015203925af1908115612f43575091612f2f917faeef64b7687b985665b6620c7fa271b6f051a3fbe2bfc366fb9c964602eb6d26959493612f34575b50604051938493849160409194936001600160a01b039160608501968552602085015216910152565b0390a4565b612f3d906126f6565b38612f06565b604051903d90823e3d90fd5b879b5086819795507faeef64b7687b985665b6620c7fa271b6f051a3fbe2bfc366fb9c964602eb6d26999450612f8c9350612f2f96989250612c43565b6040519485941698849160409194936001600160a01b039160608501968552602085015216910152565b15612fbd57565b608460405162461bcd60e51b8152602060048201526024808201527f53796d623a205265616c20746f6b656e7320616c7265616479207472616e736660448201527f65726564000000000000000000000000000000000000000000000000000000006064820152fd5b9091613040606093969594966080845260808401906126b6565b956001600160a01b0380921660208401521660408201520152565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612c2d5760010190565b805182101561309c5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b90815180825260208080930193019160005b8281106130d2575050505090565b83516001600160a01b0316855293810193928101926001016130c4565b91908201809211612c2d57565b1561310357565b608460405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b6001600160a01b036065541633146000146131ac577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90565b339056fea2646970667358221220edb25540e5ff648d93597d377dd3d714d73fef74966c730186c1466131bd97e964736f6c63430008130033