0 txs
117 calls
constructor
No constructor.
functions
allowReentrantRequests
viewfunction allowReentrantRequests() view returns (bool)
decimalShift
viewfunction decimalShift() view returns (int256)
deployedAtBlock
viewfunction deployedAtBlock() view returns (uint256)
destinationChainId
viewfunction destinationChainId() view returns (uint256)
failedMessageDataHash
viewfunction failedMessageDataHash(bytes32 _messageId) view returns (bytes32)
failedMessageReceiver
viewfunction failedMessageReceiver(bytes32 _messageId) view returns (address)
failedMessageSender
viewfunction failedMessageSender(bytes32 _messageId) view returns (address)
gasPrice
viewfunction gasPrice() view returns (uint256)
getBridgeInterfacesVersion
purefunction getBridgeInterfacesVersion() pure returns (uint64 major, uint64 minor, uint64 patch)
getBridgeMode
purefunction getBridgeMode() pure returns (bytes4 _data)
getMinimumGasUsage
purefunction getMinimumGasUsage(bytes _data) pure returns (uint256 gas)
isInitialized
viewfunction isInitialized() view returns (bool)
maxGasPerTx
viewfunction maxGasPerTx() view returns (uint256)
messageCallStatus
viewfunction messageCallStatus(bytes32 _messageId) view returns (bool)
messageId
viewfunction messageId() view returns (bytes32 id)
messageSender
viewfunction messageSender() view returns (address sender)
messageSourceChainId
viewfunction messageSourceChainId() view returns (uint256 id)
owner
viewfunction owner() view returns (address)
relayedMessages
viewfunction relayedMessages(bytes32 _txHash) view returns (bool)
requiredBlockConfirmations
viewfunction requiredBlockConfirmations() view returns (uint256)
requiredSignatures
viewfunction requiredSignatures() view returns (uint256)
sourceChainId
viewfunction sourceChainId() view returns (uint256)
transactionHash
viewfunction transactionHash() view returns (bytes32)
validatorContract
viewfunction validatorContract() view returns (address)
_sendMessage
nonpayablefunction _sendMessage(address _contract, bytes _data, uint256 _gas, uint256 _dataType) returns (bytes32)
executeSignatures
nonpayablefunction executeSignatures(bytes _data, bytes _signatures)
initialize
nonpayablefunction initialize(uint256 _sourceChainId, uint256 _destinationChainId, address _validatorContract, uint256 _maxGasPerTx, uint256 _gasPrice, uint256 _requiredBlockConfirmations, address _owner) returns (bool)
requireToPassMessage
nonpayablefunction requireToPassMessage(address _contract, bytes _data, uint256 _gas) returns (bytes32)
safeExecuteSignatures
nonpayablefunction safeExecuteSignatures(bytes _data, bytes _signatures)
safeExecuteSignaturesWithAutoGasLimit
nonpayablefunction safeExecuteSignaturesWithAutoGasLimit(bytes _data, bytes _signatures)
safeExecuteSignaturesWithGasLimit
nonpayablefunction safeExecuteSignaturesWithGasLimit(bytes _data, bytes _signatures, uint32 _gas)
setAllowReentrantRequests
nonpayablefunction setAllowReentrantRequests(bool _enable)
setChainIds
nonpayablefunction setChainIds(uint256 _sourceChainId, uint256 _destinationChainId)
setGasPrice
nonpayablefunction setGasPrice(uint256 _gasPrice)
setMaxGasPerTx
nonpayablefunction setMaxGasPerTx(uint256 _maxGasPerTx)
setRequiredBlockConfirmations
nonpayablefunction setRequiredBlockConfirmations(uint256 _blockConfirmations)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
GasPriceChanged
event GasPriceChanged(uint256 gasPrice)
OwnershipTransferred
event OwnershipTransferred(address previousOwner, address newOwner)
RelayedMessage
event RelayedMessage(address indexed sender, address indexed executor, bytes32 indexed messageId, bool status)
RequiredBlockConfirmationChanged
event RequiredBlockConfirmationChanged(uint256 requiredBlockConfirmations)
UserRequestForAffirmation
event UserRequestForAffirmation(bytes32 indexed messageId, bytes encodedData)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50612ca7806100206000396000f3006080604052600436106101b35763ffffffff60e060020a6000350416630ac1c31381146101b85780631544298e146101df578063163cef35146101f457806321d800ec1461026457806323caab491461029057806325fbf4ee146102be578063392e53cd146102f75780633f0a9f651461030c5780633f7658fd146103215780633f768c06146103b85780633f9a8e7e14610411578063437764df14610445578063467ad35a1461048c5780634a610b04146104a75780634d4cb7a2146104bf578063669f618b146104d45780637bac29c7146104e95780638d068043146105015780638da5cb5b14610516578063994390891461052b5780639a454b99146105405780639cb7595a146105555780639e307dff14610596578063acf5c689146105ab578063b0750611146105c3578063bf1fe420146105d8578063c2231ad2146105f0578063cb08a10c1461060a578063d67bdd2514610622578063dae5f0fd14610637578063dc8601b31461064c578063e37c3289146106b5578063e5789d03146106cd578063e6d562a1146106e2578063eaa820d714610781578063f2fde38b146107ad578063fe173b97146107ce575b600080fd5b3480156101c457600080fd5b506101cd6107e3565b60408051918252519081900360200190f35b3480156101eb57600080fd5b506101cd6107f2565b34801561020057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101cd958335600160a060020a03169536956044949193909101919081908401838280828437509497505084359550505060209092013591506108409050565b34801561027057600080fd5b5061027c600435610983565b604080519115158252519081900360200190f35b34801561029c57600080fd5b506102bc6024600480358281019290820135918135918201910135610a4c565b005b3480156102ca57600080fd5b5061027c600435602435600160a060020a03604435811690606435906084359060a4359060c43516610abf565b34801561030357600080fd5b5061027c610d33565b34801561031857600080fd5b506101cd610d84565b34801561032d57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102bc94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750610dd29650505050505050565b3480156103c457600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101cd943694929360249392840191908190840183828082843750949750610e229650505050505050565b34801561041d57600080fd5b50610429600435610e3e565b60408051600160a060020a039092168252519081900360200190f35b34801561045157600080fd5b5061045a610f0d565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199092168252519081900360200190f35b34801561049857600080fd5b506102bc600435602435610f31565b3480156104b357600080fd5b50610429600435610f5b565b3480156104cb57600080fd5b5061027c610fdf565b3480156104e057600080fd5b506101cd611030565b3480156104f557600080fd5b506102bc600435611055565b34801561050d57600080fd5b506101cd6110be565b34801561052257600080fd5b50610429611136565b34801561053757600080fd5b5061042961118d565b34801561054c57600080fd5b506101cd6111e4565b34801561056157600080fd5b5061056a611232565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b3480156105a257600080fd5b506101cd61123d565b3480156105b757600080fd5b506102bc600435611262565b3480156105cf57600080fd5b506101cd61128a565b3480156105e457600080fd5b506102bc6004356112d8565b3480156105fc57600080fd5b506102bc60043515156112fd565b34801561061657600080fd5b5061027c600435611374565b34801561062e57600080fd5b506104296113f8565b34801561064357600080fd5b506101cd61141d565b34801561065857600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101cd958335600160a060020a0316953695604494919390910191908190840183828082843750949750509335945061146b9350505050565b3480156106c157600080fd5b506101cd600435611482565b3480156106d957600080fd5b506101cd611547565b3480156106ee57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102bc94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923563ffffffff16935061159592505050565b34801561078d57600080fd5b506102bc60246004803582810192908201359181359182019101356115db565b3480156107b957600080fd5b506102bc600160a060020a0360043516611642565b3480156107da57600080fd5b506101cd611667565b60006107ed611030565b905090565b7f67d6f42a1ed69c62022f2d160ddc6f2f0acd37ad1db0c24f4702d7d3343a4add60009081526020527ff6c66672b1a9fe5622677597b0da8fd180a2c85696efbcf7fe4b1e0f4f0f61085490565b6000806060808261084f611030565b148061085e575061085e610fdf565b151561086957600080fd5b61087287610e22565b86101580156108885750610884611547565b8611155b151561089357600080fd5b61089e8887876116b5565b91506108b36108ab611851565b60010161189f565b6020820151925081876040516020018083805190602001908083835b602083106108ee5780518252601f1990920191602091820191016108cf565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106109365780518252601f199092019160209182019101610917565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052905061097783826118f6565b50909695505050505050565b6000600460008360405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610a085780518252601f1990920191602091820191016109e9565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1695945050505050565b610ab984848080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f8a01819004810282018101909252888152945088935087925082915084018382808284375063ffffffff94506115959350505050565b50505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6fde8202000000000000000000000000000000000000000000000000000000001781529151815160009330939291829190808383895b83811015610b40578181015183820152602001610b28565b50505050905090810190601f168015610b6d5780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af19150501580610bff575030600160a060020a0316636fde82026040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050506040513d6020811015610bf157600080fd5b5051600160a060020a031633145b80610c0957503330145b1515610c1457600080fd5b610c1c610d33565b15610c2657600080fd5b610c2f86611993565b1515610c3a57600080fd5b610c44888861199b565b7fab54f3fbbe62c59b7876a9bf9bd5e0c22dbae93f4d8ee0438f7ce62b198eb0e0805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03881617905560006020819052437fe66bef0282a446f9848e2903380099bb6e431483ee78778868f33b4a154c818b557f2670ecc91ec356e32067fd27b36614132d727b84a1e03e08f412a4f2cf07597490527f3d7fe2ee9790702383ef0118b516833ef2542132d3ca4ac6c77f62f1230fa610859055610d0584611aeb565b610d0e83611b01565b610d1782611b94565b610d1f611c6b565b610d27610d33565b98975050505050505050565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc5460ff1690565b7f916daedf6915000ff68ced2f0b6773fe6f2582237f92c3c95bb4d7940723007160009081526020527fd2ea0feb732edb0ffe32efd33a6b9d24d46b16eb34a4d07ce256537b6f131e425490565b6000806000806000610de2612c60565b6060610dee8989611cc2565b610df789611cea565b959c50939a509198509650945092509050610e1787878787878787611ddb565b505050505050505050565b8051600090610e3890601063ffffffff611e4b16565b92915050565b6000600260008360405160200180807f6661696c65644d6573736167655265636569766572000000000000000000000081525060150182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610ec35780518252601f199092019160209182019101610ea4565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054600160a060020a031695945050505050565b7f2544fbb90000000000000000000000000000000000000000000000000000000090565b610f39611136565b600160a060020a03163314610f4d57600080fd5b610f57828261199b565b5050565b6000600260008360405160200180807f6661696c65644d65737361676553656e64657200000000000000000000000000815250601301826000191660001916815260200191505060405160208183030381529060405260405180828051906020019080838360208310610ec35780518252601f199092019160209182019101610ea4565b7fffa3a5a0e192028fc343362a39c5688e5a60819a4dc5ab3ee70c25bc25b78dd660005260046020527f265a43ea29ede07170a30cb6d77d0ab5810eee752b72432f7be348bde74aa08f5460ff1690565b7fe34bb2103dc34f2c144cc216c132d6ffb55dac57575c22e089161bbe650833045490565b61105d611136565b600160a060020a0316331461107157600080fd5b7f2670ecc91ec356e32067fd27b36614132d727b84a1e03e08f412a4f2cf07597460009081526020527f3d7fe2ee9790702383ef0118b516833ef2542132d3ca4ac6c77f62f1230fa61055565b60006110c861118d565b600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561110557600080fd5b505af1158015611119573d6000803e3d6000fd5b505050506040513d602081101561112f57600080fd5b5051905090565b7f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e54600160a060020a031690565b7f5a74bb7e202fb8e4bf311841c7d64ec19df195fee77d7e7ae749b27921b6ddfe60005260026020527fab54f3fbbe62c59b7876a9bf9bd5e0c22dbae93f4d8ee0438f7ce62b198eb0e054600160a060020a031690565b7fb120ceec05576ad0c710bc6e85f1768535e27554458f05dcbb5c65b8c7a749b060009081526020527fe66bef0282a446f9848e2903380099bb6e431483ee78778868f33b4a154c818b5490565b600560076000909192565b7f7f0fcd9e49860f055dd0c1682d635d309ecb5e3011654c716d9eb59a7ddec7d25490565b61126a611136565b600160a060020a0316331461127e57600080fd5b61128781611b01565b50565b7fbbd454018e72a3f6c02bbd785bacc49e46292744f3f6761276723823aa33232060009081526020527f242329173dfc316001df0a0c3d5a8f58a7ffb1a8b7d99c268303b9a741bacdf95490565b6112e0611136565b600160a060020a031633146112f457600080fd5b61128781611aeb565b611305611136565b600160a060020a0316331461131957600080fd5b7fffa3a5a0e192028fc343362a39c5688e5a60819a4dc5ab3ee70c25bc25b78dd660005260046020527f265a43ea29ede07170a30cb6d77d0ab5810eee752b72432f7be348bde74aa08f805460ff1916911515919091179055565b6000600460008360405160200180807f6d65737361676543616c6c537461747573000000000000000000000000000000815250601101826000191660001916815260200191505060405160208183030381529060405260405180828051906020019080838360208310610a085780518252601f1990920191602091820191016109e9565b7f7b58b2a669d8e0992eae9eaef641092c0f686fd31070e7236865557fa1571b5b5490565b7f1e8ecaafaddea96ed9ac6d2642dcdfe1bebe58a930b1085842d8fc122b371ee560009081526020527fd5c78dd9468716ca9bb96be25d56436811b20aab3523a9904b12deef1cab239d5490565b600061147a8484846000610840565b949350505050565b60008060008360405160200180807f6661696c65644d6573736167654461746148617368000000000000000000000081525060150182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106115065780518252601f1990920191602091820191016114e7565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b7f2670ecc91ec356e32067fd27b36614132d727b84a1e03e08f412a4f2cf07597460009081526020527f3d7fe2ee9790702383ef0118b516833ef2542132d3ca4ac6c77f62f1230fa6105490565b6000806000806115a3612c60565b60606115af8989611cc2565b6115b889611cea565b959b50939950919750909550909350909150610e1790508686868a878787611ddb565b610ab984848080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f8a018190048102820181019092528881529450889350879250829150840183828082843750610dd2945050505050565b61164a611136565b600160a060020a0316331461165e57600080fd5b61128781611b94565b7f55b3774520b5993024893d303890baa4e84b1244a43c60034d1ced2d3cf2b04b60009081526020527ff7d5eefab3776d7f0450bd0193564bcb4f832ce313ff2836c450fc63a4b944195490565b606060008060008060008060006116ca6107f2565b96506116d4611e74565b95506116de61128a565b94506116e8611ec2565b93507e050000000000000000000000000000000000000000000000000000000000009250611714611851565b6040805160208082018b90526c0100000000000000000000000030028284015282516034818403018152605490920192839052815167ffffffffffffffff949094169550909282918401908083835b602083106117825780518252601f199092019160209182019101611763565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390207bffffffffffffffffffffffffffffffffffffffff00000000000000006001021690508386604f01016040519080825280601f01601f191660200182016040528015611805578160200160208202803883390190505b50975087518801858152878582035289604f8a015284604e8a015286604d8a01528a604c8a01528b60488a01523360348a0152828217841760208a015250505050505050509392505050565b7f7ab1577440dd7bedf920cb6de2f9fc6bf7ba98c78c85a3fa1f8311aac95e175960009081526020527fa9b0f75b23e377b9b22d27feaca5d8a12329c0049ebce1dc695b905f3aa4cd005490565b7f7ab1577440dd7bedf920cb6de2f9fc6bf7ba98c78c85a3fa1f8311aac95e1759600090815260205267ffffffffffffffff167fa9b0f75b23e377b9b22d27feaca5d8a12329c0049ebce1dc695b905f3aa4cd0055565b604080516020808252835181830152835185937f482515ce3d9494a37ce83f18b72b363449458435fafdd7a53ddea7460fe01b589386939092839283019185019080838360005b8381101561195557818101518382015260200161193d565b50505050905090810190601f1680156119825780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b6000903b1190565b6000806000806000861180156119b15750600085115b15156119bc57600080fd5b858514156119c957600080fd5b506000925082915060ff905060015b8315806119e3575082155b15611a2b57831580156119f7575085828716145b15611a00578093505b82158015611a0f575084828616145b15611a18578092505b6101009190910260ff17906001016119d8565b5050600060208190527ff6c66672b1a9fe5622677597b0da8fd180a2c85696efbcf7fe4b1e0f4f0f6108949094557f2f30286a16f86ee067618e1a246990e40c07b7749418a6dd3133f9cfb7e814cc919091557f242329173dfc316001df0a0c3d5a8f58a7ffb1a8b7d99c268303b9a741bacdf9919091557ffb792ae4ad11102b93f26a51b3749c2b3667f8b561566a4806d49896928115949091527f7b62b32ff48350e85ce95b571fde6f8b1096bc44a26db769ad6d0b3a26bf1c6d55565b60008111611af857600080fd5b61128781611f10565b60008111611b0e57600080fd5b7f916daedf6915000ff68ced2f0b6773fe6f2582237f92c3c95bb4d79407230071600090815260209081527fd2ea0feb732edb0ffe32efd33a6b9d24d46b16eb34a4d07ce256537b6f131e428290556040805183815290517f4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb929181900390910190a150565b600160a060020a0381161515611ba957600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0611bd2611136565b60408051600160a060020a03928316815291841660208301528051918290030190a17f02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c060005260026020527fb7802e97e87ef2842a6cce7da7ffaeaedaa2f61a6a7870b23d9d01fc9b73712e805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b7f0a6f646cd611241d8073675e00d1a1ff700fbf1b53fcf473de56d1e6e4b714ba60005260046020527f078d888f9b66f3f8bfa10909e31f1e16240db73449f0500afdbbe3a70da457cc805460ff19166001179055565b6000611ccc611030565b14611cd657600080fd5b610f578282611ce361118d565b6001611f96565b6000806000806000611cfa612c60565b6060600080604f915060208a01519850600160a060020a0360348b015116975060548a01518060601c975063ffffffff8160401c16965080601a1a95506000607f87161115611d4857600080fd5b8060181a6001808260031b1b03818501945080858e01511687528260191a91506001808360031b1b039050818501945080858e0151166020880152848d51039350505050806040519080825280601f01601f191660200182016040528015611dba578160200160208202803883390190505b50925060248201915080826004350160208501375050919395979092949650565b611de487612220565b1515611def57600080fd5b6020820151611dfd90612266565b1515611e0857600080fd5b611e1187610983565b15611e1b57600080fd5b611e26876001612278565b611e4286868963ffffffff88168787600060200201518761234a565b50505050505050565b6000821515611e5c57506000610e38565b50818102818382811515611e6c57fe5b0414610e3857fe5b7fe504ae1fd6471eea80f18b8532a61a9bb91fba4f5b837f80a1cfb6752350af4460009081526020527f2f30286a16f86ee067618e1a246990e40c07b7749418a6dd3133f9cfb7e814cc5490565b7ffb792ae4ad11102b93f26a51b3749c2b3667f8b561566a4806d498969281159460009081526020527f7b62b32ff48350e85ce95b571fde6f8b1096bc44a26db769ad6d0b3a26bf1c6d5490565b7f55b3774520b5993024893d303890baa4e84b1244a43c60034d1ced2d3cf2b04b600090815260209081527ff7d5eefab3776d7f0450bd0193564bcb4f832ce313ff2836c450fc63a4b944198290556040805183815290517f52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e929181900390910190a150565b6000806000606060008060008060008060008b80611fb85750611fb88f6123a1565b1515611fc357600080fd5b8c600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561200157600080fd5b505af1158015612015573d6000803e3d6000fd5b505050506040513d602081101561202b57600080fd5b505160018f0151909b5060ff1699508a8a101561204757600080fd5b6120518f8d6123b5565b98508a60405190808252806020026020018201604052801561207d578160200160208202803883390190505b509750600096505b8a87101561220f57866020028a6021010192508960200283019150866002018e01519550828e01519450818e01519350600189878787604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561212c573d6000803e3d6000fd5b5050506020604051035190508c600160a060020a031663facd743b826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561219357600080fd5b505af11580156121a7573d6000803e3d6000fd5b505050506040513d60208110156121bd57600080fd5b505115156121ca57600080fd5b6121d488826125cf565b156121de57600080fd5b8088888151811015156121ed57fe5b600160a060020a03909216602092830290910190910152600190960195612085565b505050505050505050505050505050565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981167e0500000000000000000000000000000000000000000000000000000000000014919050565b60006122706107f2565b909114919050565b80600460008460405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106122fc5780518252601f1990920191602091820191016122dd565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff1916941515949094179093555050505050565b600061235a888884888a8861262a565b90506123668682612720565b80151561238b5761237786836127a3565b61238186886128b2565b61238b86896129a0565b61239788888884612a23565b5050505050505050565b60006123ab612a71565b8251149050919050565b60408051808201909152601a81527f19457468657265756d205369676e6564204d6573736167653a0a00000000000060208201526000906060831561255b57816123ff8651612a76565b866040516020018084805190602001908083835b602083106124325780518252601f199092019160209182019101612413565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b6020831061247a5780518252601f19909201916020918201910161245b565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106124c25780518252601f1990920191602091820191016124a3565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b602083106125275780518252601f199092019160209182019101612508565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902092506125c7565b6040805190810160405280600381526020017f31303400000000000000000000000000000000000000000000000000000000008152509050818186604051602001808480519060200190808383602083106124325780518252601f199092019160209182019101612413565b505092915050565b6000805b835181101561261e5782600160a060020a031684828151811015156125f457fe5b90602001906020020151600160a060020a031614156126165760019150612623565b6001016125d3565b600091505b5092915050565b60008061263688612b9d565b61263f84612bc1565b61264883612be5565b8463ffffffff148061266857508460405a603f0281151561266557fe5b04115b151561267357600080fd5b86600160a060020a0316858760405180828051906020019080838360005b838110156126a9578181015183820152602001612691565b50505050905090810190601f1680156126d65780820380516001836020036101000a031916815260200191505b5091505060006040518083038160008787f19250505090506126f781612c09565b6127016000612b9d565b61270b6000612bc1565b6127156000612be5565b979650505050505050565b80600460008460405160200180807f6d65737361676543616c6c5374617475730000000000000000000000000000008152506011018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106122fc5780518252601f1990920191602091820191016122dd565b806040518082805190602001908083835b602083106127d35780518252601f1990920191602091820191016127b4565b51815160209384036101000a6000190180199092169116179052604080519290940182900382207f6661696c65644d657373616765446174614861736800000000000000000000008383015260358084018a905285518085039091018152605590930194859052825190965060009550859492935082918401908083835b602083106128705780518252601f199092019160209182019101612851565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555050505050565b80600260008460405160200180807f6661696c65644d6573736167655265636569766572000000000000000000000081525060150182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106129365780518252601f199092019160209182019101612917565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0395909516949094179093555050505050565b80600260008460405160200180807f6661696c65644d65737361676553656e646572000000000000000000000000008152506013018260001916600019168152602001915050604051602081830303815290604052604051808280519060200190808383602083106129365780518252601f199092019160209182019101612917565b60408051821515815290518391600160a060020a0380871692908816917f27333edb8bdcd40a0ae944fb121b5e2d62ea782683946654a0f5e607a908d578919081900360200190a450505050565b606890565b60606000808281851515612abf5760408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201529450612b94565b8593505b8315612ada57600190920191600a84049350612ac3565b826040519080825280601f01601f191660200182016040528015612b08578160200160208202803883390190505b5091505060001982015b8515612b905781516000198201917f01000000000000000000000000000000000000000000000000000000000000006030600a8a060102918491908110612b5557fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a86049550612b12565b8194505b50505050919050565b7f7b58b2a669d8e0992eae9eaef641092c0f686fd31070e7236865557fa1571b5b55565b7fe34bb2103dc34f2c144cc216c132d6ffb55dac57575c22e089161bbe6508330455565b7f7f0fcd9e49860f055dd0c1682d635d309ecb5e3011654c716d9eb59a7ddec7d255565b8080612c5557506000357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f3f7658fd00000000000000000000000000000000000000000000000000000000145b151561128757600080fd5b604080518082018252906002908290803883395091929150505600a165627a7a72305820c06419a9fd2a7ec341c113306f6fa3824a061e4eb1f3f1068d05f8c7f9a621fd0029