ETH Price: $1,796.77 (+0.02%)

Token

TaoBank (TBANK)
 

Overview

Max Total Supply

184,095.767349 TBANK

Holders

645 (0.00%)

Market

Price

$0.0042 @ 0.000002 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

$62,994.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
321.570657148932732656 TBANK

Value
$1.35 ( ~0.000751348252697897 ETH) [0.1747%]
0xd17eF8f1cc4ee78EFA9E292235e0aa968D47DDc1
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

TaoBank is an innovative lending protocol designed for $TAO. One critical issue $TAO holders face is the inability to leverage their digital assets for liquidity without having to sell them. TaoBank solves this problem by allowing $TAO holders to use their assets as collateral for loans.

Market

Volume (24H):$7.82
Market Capitalization:$62,994.00
Circulating Supply:15,000,000.00 TBANK
Market Data Source: Coinmarketcap

Source Code Verified Exact Match

Contract Name

TBANK

Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled
No with 200 runs
Other Settings
paris EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here

Contract Security Audit

Contract ABI
API
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_layerZeroEndpoint","type":"address"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidDelegate","type":"error"},{"inputs":[],"name":"InvalidEndpointCall","type":"error"},{"inputs":[],"name":"InvalidLocalDecimals","type":"error"},{"inputs":[{"internalType":"bytes","name":"options","type":"bytes"}],"name":"InvalidOptions","type":"error"},{"inputs":[],"name":"LzTokenUnavailable","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"NoPeer","type":"error"},{"inputs":[{"internalType":"uint256","name":"msgValue","type":"uint256"}],"name":"NotEnoughNative","type":"error"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"OnlyEndpoint","type":"error"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"}],"name":"OnlyPeer","type":"error"},{"inputs":[],"name":"OnlySelf","type":"error"},{"inputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"name":"SimulationResult","type":"error"},{"inputs":[{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"}],"name":"SlippageExceeded","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"indexed":false,"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"EnforcedOptionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"inspector","type":"address"}],"name":"MsgInspectorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"srcEid","type":"uint32"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountReceivedLD","type":"uint256"}],"name":"OFTReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"guid","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"dstEid","type":"uint32"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountSentLD","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountReceivedLD","type":"uint256"}],"name":"OFTSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"eid","type":"uint32"},{"indexed":false,"internalType":"bytes32","name":"peer","type":"bytes32"}],"name":"PeerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"preCrimeAddress","type":"address"}],"name":"PreCrimeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"SEND","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SEND_AND_CALL","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"addressToBytes32","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"}],"name":"allowInitializePath","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalRequired","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"uint16","name":"_msgType","type":"uint16"},{"internalType":"bytes","name":"_extraOptions","type":"bytes"}],"name":"combineOptions","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"composeMsgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimalConversionRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endpoint","outputs":[{"internalType":"contract ILayerZeroEndpointV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"}],"name":"enforcedOptions","outputs":[{"internalType":"bytes","name":"enforcedOption","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"isPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"origin","type":"tuple"},{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"executor","type":"address"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct InboundPacket[]","name":"_packets","type":"tuple[]"}],"name":"lzReceiveAndRevert","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"srcEid","type":"uint32"},{"internalType":"bytes32","name":"sender","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"}],"internalType":"struct Origin","name":"_origin","type":"tuple"},{"internalType":"bytes32","name":"_guid","type":"bytes32"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"address","name":"_executor","type":"address"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"lzReceiveSimulate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"msgInspector","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"nextNonce","outputs":[{"internalType":"uint64","name":"nonce","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oApp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oAppVersion","outputs":[{"internalType":"uint64","name":"senderVersion","type":"uint64"},{"internalType":"uint64","name":"receiverVersion","type":"uint64"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"oftVersion","outputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"},{"internalType":"uint64","name":"version","type":"uint64"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"eid","type":"uint32"}],"name":"peers","outputs":[{"internalType":"bytes32","name":"peer","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"preCrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"oftCmd","type":"bytes"}],"internalType":"struct SendParam","name":"_sendParam","type":"tuple"}],"name":"quoteOFT","outputs":[{"components":[{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"uint256","name":"maxAmountLD","type":"uint256"}],"internalType":"struct OFTLimit","name":"oftLimit","type":"tuple"},{"components":[{"internalType":"int256","name":"feeAmountLD","type":"int256"},{"internalType":"string","name":"description","type":"string"}],"internalType":"struct OFTFeeDetail[]","name":"oftFeeDetails","type":"tuple[]"},{"components":[{"internalType":"uint256","name":"amountSentLD","type":"uint256"},{"internalType":"uint256","name":"amountReceivedLD","type":"uint256"}],"internalType":"struct OFTReceipt","name":"oftReceipt","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"oftCmd","type":"bytes"}],"internalType":"struct SendParam","name":"_sendParam","type":"tuple"},{"internalType":"bool","name":"_payInLzToken","type":"bool"}],"name":"quoteSend","outputs":[{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"msgFee","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"dstEid","type":"uint32"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint256","name":"amountLD","type":"uint256"},{"internalType":"uint256","name":"minAmountLD","type":"uint256"},{"internalType":"bytes","name":"extraOptions","type":"bytes"},{"internalType":"bytes","name":"composeMsg","type":"bytes"},{"internalType":"bytes","name":"oftCmd","type":"bytes"}],"internalType":"struct SendParam","name":"_sendParam","type":"tuple"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"_fee","type":"tuple"},{"internalType":"address","name":"_refundAddress","type":"address"}],"name":"send","outputs":[{"components":[{"internalType":"bytes32","name":"guid","type":"bytes32"},{"internalType":"uint64","name":"nonce","type":"uint64"},{"components":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"lzTokenFee","type":"uint256"}],"internalType":"struct MessagingFee","name":"fee","type":"tuple"}],"internalType":"struct MessagingReceipt","name":"msgReceipt","type":"tuple"},{"components":[{"internalType":"uint256","name":"amountSentLD","type":"uint256"},{"internalType":"uint256","name":"amountReceivedLD","type":"uint256"}],"internalType":"struct OFTReceipt","name":"oftReceipt","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint32","name":"eid","type":"uint32"},{"internalType":"uint16","name":"msgType","type":"uint16"},{"internalType":"bytes","name":"options","type":"bytes"}],"internalType":"struct EnforcedOptionParam[]","name":"_enforcedOptions","type":"tuple[]"}],"name":"setEnforcedOptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_msgInspector","type":"address"}],"name":"setMsgInspector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_eid","type":"uint32"},{"internalType":"bytes32","name":"_peer","type":"bytes32"}],"name":"setPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_preCrime","type":"address"}],"name":"setPreCrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sharedDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
60c06040523480156200001157600080fd5b50604051620069b9380380620069b9833981810160405281019062000037919062000512565b8383838383836200004d6200023c60201b60201c565b84848181818162000073620000676200024560201b60201c565b6200024d60201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200010e576040517fb586360400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60805173ffffffffffffffffffffffffffffffffffffffff1663ca5eb5e1826040518263ffffffff1660e01b81526004016200014b9190620005d3565b600060405180830381600087803b1580156200016657600080fd5b505af11580156200017b573d6000803e3d6000fd5b5050505050505050620001936200031160201b60201c565b60ff168360ff161015620001d3576040517f1e9714b000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620001e36200031160201b60201c565b83620001f091906200062c565b600a620001fe9190620007c6565b60a08181525050505050816008908162000219919062000a58565b5080600990816200022b919062000a58565b505050505050505050505062000b3f565b60006012905090565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006006905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620003838262000338565b810181811067ffffffffffffffff82111715620003a557620003a462000349565b5b80604052505050565b6000620003ba6200031a565b9050620003c8828262000378565b919050565b600067ffffffffffffffff821115620003eb57620003ea62000349565b5b620003f68262000338565b9050602081019050919050565b60005b838110156200042357808201518184015260208101905062000406565b60008484015250505050565b6000620004466200044084620003cd565b620003ae565b90508281526020810184848401111562000465576200046462000333565b5b6200047284828562000403565b509392505050565b600082601f8301126200049257620004916200032e565b5b8151620004a48482602086016200042f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004da82620004ad565b9050919050565b620004ec81620004cd565b8114620004f857600080fd5b50565b6000815190506200050c81620004e1565b92915050565b600080600080608085870312156200052f576200052e62000324565b5b600085015167ffffffffffffffff81111562000550576200054f62000329565b5b6200055e878288016200047a565b945050602085015167ffffffffffffffff81111562000582576200058162000329565b5b62000590878288016200047a565b9350506040620005a387828801620004fb565b9250506060620005b687828801620004fb565b91505092959194509250565b620005cd81620004cd565b82525050565b6000602082019050620005ea6000830184620005c2565b92915050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200063982620005f0565b91506200064683620005f0565b9250828203905060ff811115620006625762000661620005fd565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115620006c7578086048111156200069f576200069e620005fd565b5b6001851615620006af5780820291505b8081029050620006bf8562000668565b94506200067f565b94509492505050565b600082620006e25760019050620007b5565b81620006f25760009050620007b5565b81600181146200070b576002811462000716576200074c565b6001915050620007b5565b60ff8411156200072b576200072a620005fd565b5b8360020a915084821115620007455762000744620005fd565b5b50620007b5565b5060208310610133831016604e8410600b8410161715620007865782820a90508381111562000780576200077f620005fd565b5b620007b5565b62000795848484600162000675565b92509050818404811115620007af57620007ae620005fd565b5b81810290505b9392505050565b6000819050919050565b6000620007d382620007bc565b9150620007e083620005f0565b92506200080f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006d0565b905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200086a57607f821691505b60208210810362000880576200087f62000822565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008ea7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008ab565b620008f68683620008ab565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000939620009336200092d84620007bc565b6200090e565b620007bc565b9050919050565b6000819050919050565b620009558362000918565b6200096d620009648262000940565b848454620008b8565b825550505050565b600090565b6200098462000975565b620009918184846200094a565b505050565b5b81811015620009b957620009ad6000826200097a565b60018101905062000997565b5050565b601f82111562000a0857620009d28162000886565b620009dd846200089b565b81016020851015620009ed578190505b62000a05620009fc856200089b565b83018262000996565b50505b505050565b600082821c905092915050565b600062000a2d6000198460080262000a0d565b1980831691505092915050565b600062000a48838362000a1a565b9150826002028217905092915050565b62000a638262000817565b67ffffffffffffffff81111562000a7f5762000a7e62000349565b5b62000a8b825462000851565b62000a98828285620009bd565b600060209050601f83116001811462000ad0576000841562000abb578287015190505b62000ac7858262000a3a565b86555062000b37565b601f19841662000ae08662000886565b60005b8281101562000b0a5784890151825560018201915060208501945060208101905062000ae3565b8683101562000b2a578489015162000b26601f89168262000a1a565b8355505b6001600288020188555050505b505050505050565b60805160a051615e0762000bb2600039600081816112280152818161293e0152818161295f01528181612a090152612b11015260008181610cb5015281816110350152818161196901528181611f84015281816125c70152818161283c01528181612dd20152612ecd0152615e076000f3fe6080604052600436106102725760003560e01c80637d25a05e1161014f578063b98bd070116100c1578063d045a0dc1161007a578063d045a0dc146109d0578063d4243885146109ec578063dd62ed3e14610a15578063f2fde38b14610a52578063fc0c546a14610a7b578063ff7bd03d14610aa657610272565b8063b98bd070146108b7578063bb0b6a53146108e0578063bc70b3541461091d578063bd815db01461095a578063c7c7f5b314610976578063ca5eb5e1146109a757610272565b8063963efcaa11610113578063963efcaa146107915780639f68b964146107bc578063a457c2d7146107e7578063a9059cbb14610824578063b731ea0a14610861578063b92d0eff1461088c57610272565b80637d25a05e1461069657806382c947b7146106d3578063857749b0146107105780638da5cb5b1461073b57806395d89b411461076657610272565b8063313ce567116101e85780635535d461116101ac5780635535d461146105745780635a0dfe4d146105b15780635e280f11146105ee5780636fc1b31e1461061957806370a0823114610642578063715018a61461067f57610272565b8063313ce5671461047b5780633400288b146104a657806339509351146104cf5780633b6f743b1461050c57806352ae28791461054957610272565b8063134d4f251161023a578063134d4f2514610365578063156a0d0f1461039057806317442b70146103bc57806318160ddd146103e85780631f5e13341461041357806323b872dd1461043e57610272565b806306fdde0314610277578063095ea7b3146102a25780630d35b415146102df578063111ecdad1461031e57806313137d6514610349575b600080fd5b34801561028357600080fd5b5061028c610ae3565b60405161029991906134dc565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c491906135a6565b610b75565b6040516102d69190613601565b60405180910390f35b3480156102eb57600080fd5b5061030660048036038101906103019190613640565b610b98565b60405161031593929190613858565b60405180910390f35b34801561032a57600080fd5b50610333610c76565b60405161034091906138a5565b60405180910390f35b610363600480360381019061035e919061397a565b610c9c565b005b34801561037157600080fd5b5061037a610dbe565b6040516103879190613a53565b60405180910390f35b34801561039c57600080fd5b506103a5610dc3565b6040516103b3929190613acc565b60405180910390f35b3480156103c857600080fd5b506103d1610df1565b6040516103df929190613af5565b60405180910390f35b3480156103f457600080fd5b506103fd610dff565b60405161040a9190613b2d565b60405180910390f35b34801561041f57600080fd5b50610428610e09565b6040516104359190613a53565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190613b48565b610e0e565b6040516104729190613601565b60405180910390f35b34801561048757600080fd5b50610490610e3d565b60405161049d9190613bb7565b60405180910390f35b3480156104b257600080fd5b506104cd60048036038101906104c89190613c0e565b610e46565b005b3480156104db57600080fd5b506104f660048036038101906104f191906135a6565b610eaf565b6040516105039190613601565b60405180910390f35b34801561051857600080fd5b50610533600480360381019061052e9190613c7a565b610ee6565b6040516105409190613d05565b60405180910390f35b34801561055557600080fd5b5061055e610f52565b60405161056b91906138a5565b60405180910390f35b34801561058057600080fd5b5061059b60048036038101906105969190613d4c565b610f5a565b6040516105a89190613de1565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d39190613c0e565b611007565b6040516105e59190613601565b60405180910390f35b3480156105fa57600080fd5b50610603611033565b6040516106109190613e62565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b9190613e7d565b611057565b005b34801561064e57600080fd5b5061066960048036038101906106649190613e7d565b6110da565b6040516106769190613b2d565b60405180910390f35b34801561068b57600080fd5b50610694611123565b005b3480156106a257600080fd5b506106bd60048036038101906106b89190613c0e565b611137565b6040516106ca9190613eaa565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f59190613e7d565b61113f565b6040516107079190613ed4565b60405180910390f35b34801561071c57600080fd5b50610725611162565b6040516107329190613bb7565b60405180910390f35b34801561074757600080fd5b5061075061116b565b60405161075d91906138a5565b60405180910390f35b34801561077257600080fd5b5061077b611194565b60405161078891906134dc565b60405180910390f35b34801561079d57600080fd5b506107a6611226565b6040516107b39190613b2d565b60405180910390f35b3480156107c857600080fd5b506107d161124a565b6040516107de9190613601565b60405180910390f35b3480156107f357600080fd5b5061080e600480360381019061080991906135a6565b61124f565b60405161081b9190613601565b60405180910390f35b34801561083057600080fd5b5061084b600480360381019061084691906135a6565b6112c6565b6040516108589190613601565b60405180910390f35b34801561086d57600080fd5b506108766112e9565b60405161088391906138a5565b60405180910390f35b34801561089857600080fd5b506108a161130f565b6040516108ae91906138a5565b60405180910390f35b3480156108c357600080fd5b506108de60048036038101906108d99190613f45565b611317565b005b3480156108ec57600080fd5b5061090760048036038101906109029190613f92565b61149a565b6040516109149190613ed4565b60405180910390f35b34801561092957600080fd5b50610944600480360381019061093f9190613fbf565b6114b2565b6040516109519190613de1565b60405180910390f35b610974600480360381019061096f9190614089565b61167c565b005b610990600480360381019061098b91906140f5565b611855565b60405161099e9291906141f3565b60405180910390f35b3480156109b357600080fd5b506109ce60048036038101906109c99190613e7d565b61195f565b005b6109ea60048036038101906109e5919061397a565b6119f5565b005b3480156109f857600080fd5b50610a136004803603810190610a0e9190613e7d565b611a72565b005b348015610a2157600080fd5b50610a3c6004803603810190610a37919061421c565b611af5565b604051610a499190613b2d565b60405180910390f35b348015610a5e57600080fd5b50610a796004803603810190610a749190613e7d565b611b7c565b005b348015610a8757600080fd5b50610a90611bff565b604051610a9d91906138a5565b60405180910390f35b348015610ab257600080fd5b50610acd6004803603810190610ac8919061425c565b611c07565b604051610ada9190613601565b60405180910390f35b606060088054610af2906142b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1e906142b8565b8015610b6b5780601f10610b4057610100808354040283529160200191610b6b565b820191906000526020600020905b815481529060010190602001808311610b4e57829003601f168201915b5050505050905090565b600080610b80611c48565b9050610b8d818585611c50565b600191505092915050565b610ba06133b0565b6060610baa6133ca565b60008067ffffffffffffffff801690506040518060400160405280838152602001828152509450600067ffffffffffffffff811115610bec57610beb6142e9565b5b604051908082528060200260200182016040528015610c2557816020015b610c126133e4565b815260200190600190039081610c0a5790505b509350600080610c50886040013589606001358a6000016020810190610c4b9190613f92565b611e19565b915091506040518060400160405280838152602001828152509450505050509193909250565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610d2c57336040517f91ac5e4f000000000000000000000000000000000000000000000000000000008152600401610d2391906138a5565b60405180910390fd5b8660200135610d4c886000016020810190610d479190613f92565b611e79565b14610da657866000016020810190610d649190613f92565b87602001356040517fc26bebcc000000000000000000000000000000000000000000000000000000008152600401610d9d929190614327565b60405180910390fd5b610db587878787878787611eee565b50505050505050565b600281565b6000807f02e49c2c000000000000000000000000000000000000000000000000000000006001915091509091565b600080600180915091509091565b6000600754905090565b600181565b600080610e19611c48565b9050610e26858285612084565b610e31858585612110565b60019150509392505050565b60006012905090565b610e4e612389565b80600160008463ffffffff1663ffffffff168152602001908152602001600020819055507f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b8282604051610ea3929190614327565b60405180910390a15050565b600080610eba611c48565b9050610edb818585610ecc8589611af5565b610ed6919061437f565b611c50565b600191505092915050565b610eee6133fe565b6000610f1584604001358560600135866000016020810190610f109190613f92565b611e19565b915050600080610f258684612407565b91509150610f47866000016020810190610f3f9190613f92565b8383886125bd565b935050505092915050565b600030905090565b6003602052816000526040600020602052806000526040600020600091509150508054610f86906142b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb2906142b8565b8015610fff5780601f10610fd457610100808354040283529160200191610fff565b820191906000526020600020905b815481529060010190602001808311610fe257829003601f168201915b505050505081565b600081600160008563ffffffff1663ffffffff1681526020019081526020016000205414905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61105f612389565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197816040516110cf91906138a5565b60405180910390a150565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61112b612389565b61113560006126a0565b565b600092915050565b60008173ffffffffffffffffffffffffffffffffffffffff1660001b9050919050565b60006006905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546111a3906142b8565b80601f01602080910402602001604051908101604052809291908181526020018280546111cf906142b8565b801561121c5780601f106111f15761010080835404028352916020019161121c565b820191906000526020600020905b8154815290600101906020018083116111ff57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600090565b60008061125a611c48565b905060006112688286611af5565b9050838110156112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490614425565b60405180910390fd5b6112ba8286868403611c50565b60019250505092915050565b6000806112d1611c48565b90506112de818585612110565b600191505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600030905090565b61131f612389565b60005b8282905081101561145c5761136983838381811061134357611342614445565b5b90506020028101906113559190614483565b806040019061136491906144ab565b612764565b82828281811061137c5761137b614445565b5b905060200281019061138e9190614483565b806040019061139d91906144ab565b600360008686868181106113b4576113b3614445565b5b90506020028101906113c69190614483565b60000160208101906113d89190613f92565b63ffffffff1663ffffffff168152602001908152602001600020600086868681811061140757611406614445565b5b90506020028101906114199190614483565b602001602081019061142b919061450e565b61ffff1661ffff168152602001908152602001600020918261144e9291906146e8565b508080600101915050611322565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674828260405161148e929190614a05565b60405180910390a15050565b60016020528060005260406000206000915090505481565b60606000600360008763ffffffff1663ffffffff16815260200190815260200160002060008661ffff1661ffff16815260200190815260200160002080546114f9906142b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611525906142b8565b80156115725780601f1061154757610100808354040283529160200191611572565b820191906000526020600020905b81548152906001019060200180831161155557829003601f168201915b5050505050905060008151036115cf5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050915050611674565b600084849050036115e35780915050611674565b60028484905010611635576115f88484612764565b808484600290809261160c93929190614a33565b60405160200161161e93929190614acf565b604051602081830303815290604052915050611674565b83836040517f9a6d49cd00000000000000000000000000000000000000000000000000000000815260040161166b929190614b22565b60405180910390fd5b949350505050565b60005b828290508110156117a4573683838381811061169e5761169d614445565b5b90506020028101906116b09190614b46565b90506116d88160000160000160208101906116cb9190613f92565b8260000160200135611007565b6116e25750611797565b3073ffffffffffffffffffffffffffffffffffffffff1663d045a0dc8260c00135836000018460a001358580610100019061171d91906144ab565b8760e00160208101906117309190613e7d565b8880610120019061174191906144ab565b6040518963ffffffff1660e01b81526004016117639796959493929190614c23565b6000604051808303818588803b15801561177c57600080fd5b505af1158015611790573d6000803e3d6000fd5b5050505050505b808060010191505061167f565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa1580156117f0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906118199190614d7a565b6040517f8351eea700000000000000000000000000000000000000000000000000000000815260040161184c9190613de1565b60405180910390fd5b61185d613418565b6118656133ca565b60008061188d876040013588606001358960000160208101906118889190613f92565b6127de565b9150915060008061189e8984612407565b915091506118d18960000160208101906118b89190613f92565b83838b8036038101906118cb9190614e18565b8b612806565b955060405180604001604052808581526020018481525094503373ffffffffffffffffffffffffffffffffffffffff1686600001517f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a8b600001602081019061193a9190613f92565b878760405161194b93929190614e45565b60405180910390a350505050935093915050565b611967612389565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ca5eb5e1826040518263ffffffff1660e01b81526004016119c091906138a5565b600060405180830381600087803b1580156119da57600080fd5b505af11580156119ee573d6000803e3d6000fd5b5050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a5a576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a6987878787878787612922565b50505050505050565b611a7a612389565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776081604051611aea91906138a5565b60405180910390a150565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b84612389565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bea90614eee565b60405180910390fd5b611bfc816126a0565b50565b600030905090565b6000816020013560016000846000016020810190611c259190613f92565b63ffffffff1663ffffffff16815260200190815260200160002054149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb690614f80565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2590615012565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e0c9190613b2d565b60405180910390a3505050565b600080611e258561293a565b915081905083811015611e715780846040517f71c4efed000000000000000000000000000000000000000000000000000000008152600401611e68929190615032565b60405180910390fd5b935093915050565b600080600160008463ffffffff1663ffffffff1681526020019081526020016000205490506000801b8103611ee557826040517ff6ff4fb7000000000000000000000000000000000000000000000000000000008152600401611edc919061505b565b60405180910390fd5b80915050919050565b6000611f02611efd878761299a565b6129c6565b90506000611f3482611f1c611f178a8a6129d3565b612a05565b8b6000016020810190611f2f9190613f92565b612a44565b9050611f408787612a5a565b15612016576000611f808a6040016020810190611f5d9190615076565b8b6000016020810190611f709190613f92565b84611f7b8c8c612a6e565b612ad1565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637cb59012848b6000856040518563ffffffff1660e01b8152600401611fe294939291906150de565b600060405180830381600087803b158015611ffc57600080fd5b505af1158015612010573d6000803e3d6000fd5b50505050505b8173ffffffffffffffffffffffffffffffffffffffff16887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c8b60000160208101906120629190613f92565b8460405161207192919061512a565b60405180910390a3505050505050505050565b60006120908484611af5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461210a57818110156120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f39061519f565b60405180910390fd5b6121098484848403611c50565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361217f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217690615231565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e5906152c3565b60405180910390fd5b6121f9838383612b03565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227790615355565b60405180910390fd5b818103600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123709190613b2d565b60405180910390a3612383848484612b08565b50505050565b612391611c48565b73ffffffffffffffffffffffffffffffffffffffff166123af61116b565b73ffffffffffffffffffffffffffffffffffffffff1614612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc906153c1565b60405180910390fd5b565b6060806000612475856020013561241d86612b0d565b878060a0019061242d91906144ab565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612b42565b809250819450505060008161248b57600161248e565b60025b90506124bc8660000160208101906124a69190613f92565b828880608001906124b791906144ab565b6114b2565b9250600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125b457600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663043a78eb85856040518363ffffffff1660e01b81526004016125719291906153e1565b602060405180830381865afa15801561258e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b2919061542d565b505b50509250929050565b6125c56133fe565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff16815260200161262189611e79565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161265692919061551f565b6040805180830381865afa158015612672573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269691906155b4565b9050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000828260009060029261277a93929190614a33565b90612785919061560d565b60f01c9050600361ffff168161ffff16146127d95782826040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016127d0929190614b22565b60405180910390fd5b505050565b6000806127ec858585611e19565b80925081935050506127fe3383612bb1565b935093915050565b61280e613418565b600061281d8460000151612d80565b905060008460200151111561283a576128398460200151612dce565b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff1681526020016128978c611e79565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016128d392919061551f565b60806040518083038185885af11580156128f1573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061291691906156fa565b91505095945050505050565b61293187878787878787611eee565b50505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000836129899190615756565b6129939190615787565b9050919050565b60008282600090602060ff16926129b393929190614a33565b906129be91906157c9565b905092915050565b60008160001c9050919050565b60008282602060ff1690602860ff16926129ef93929190614a33565b906129fa9190615854565b60c01c905092915050565b60007f00000000000000000000000000000000000000000000000000000000000000008267ffffffffffffffff16612a3d9190615787565b9050919050565b6000612a508484612f18565b8290509392505050565b6000602860ff168383905011905092915050565b60608282602860ff16908092612a8693929190614a33565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905092915050565b606084848484604051602001612aea9493929190615940565b6040516020818303038152906040529050949350505050565b505050565b505050565b60007f000000000000000000000000000000000000000000000000000000000000000082612b3b9190615756565b9050919050565b6060600080835111905080612b78578484604051602001612b649291906159ab565b604051602081830303815290604052612ba7565b8484612b833361306f565b85604051602001612b9794939291906159d7565b6040516020818303038152906040525b9150935093915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1790615a93565b60405180910390fd5b612c2c82600083612b03565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612caa90615b25565b60405180910390fd5b818103600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d679190613b2d565b60405180910390a3612d7b83600084612b08565b505050565b6000813414612dc657346040517f9f704120000000000000000000000000000000000000000000000000000000008152600401612dbd9190613b2d565b60405180910390fd5b819050919050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5f9190615b5a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612ec7576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612f14337f0000000000000000000000000000000000000000000000000000000000000000848473ffffffffffffffffffffffffffffffffffffffff16613092909392919063ffffffff16565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f7e90615bd3565b60405180910390fd5b612f9360008383612b03565b8060076000828254612fa5919061437f565b9250508190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130579190613b2d565b60405180910390a361306b60008383612b08565b5050565b60008173ffffffffffffffffffffffffffffffffffffffff1660001b9050919050565b613115846323b872dd60e01b8585856040516024016130b393929190615bf3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061311b565b50505050565b600061317d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166131e39092919063ffffffff16565b905060008151148061319f57508080602001905181019061319e919061542d565b5b6131de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d590615c9c565b60405180910390fd5b505050565b60606131f284846000856131fb565b90509392505050565b606082471015613240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323790615d2e565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516132699190615d4e565b60006040518083038185875af1925050503d80600081146132a6576040519150601f19603f3d011682016040523d82523d6000602084013e6132ab565b606091505b50915091506132bc878383876132c8565b92505050949350505050565b6060831561332a576000835103613322576132e28561333d565b613321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331890615db1565b60405180910390fd5b5b829050613335565b6133348383613360565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156133735781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133a791906134dc565b60405180910390fd5b604051806040016040528060008152602001600081525090565b604051806040016040528060008152602001600081525090565b604051806040016040528060008152602001606081525090565b604051806040016040528060008152602001600081525090565b604051806060016040528060008019168152602001600067ffffffffffffffff1681526020016134466133fe565b81525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561348657808201518184015260208101905061346b565b60008484015250505050565b6000601f19601f8301169050919050565b60006134ae8261344c565b6134b88185613457565b93506134c8818560208601613468565b6134d181613492565b840191505092915050565b600060208201905081810360008301526134f681846134a3565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061353d82613512565b9050919050565b61354d81613532565b811461355857600080fd5b50565b60008135905061356a81613544565b92915050565b6000819050919050565b61358381613570565b811461358e57600080fd5b50565b6000813590506135a08161357a565b92915050565b600080604083850312156135bd576135bc613508565b5b60006135cb8582860161355b565b92505060206135dc85828601613591565b9150509250929050565b60008115159050919050565b6135fb816135e6565b82525050565b600060208201905061361660008301846135f2565b92915050565b600080fd5b600060e082840312156136375761363661361c565b5b81905092915050565b60006020828403121561365657613655613508565b5b600082013567ffffffffffffffff8111156136745761367361350d565b5b61368084828501613621565b91505092915050565b61369281613570565b82525050565b6040820160008201516136ae6000850182613689565b5060208201516136c16020850182613689565b50505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b613706816136f3565b82525050565b600082825260208201905092915050565b60006137288261344c565b613732818561370c565b9350613742818560208601613468565b61374b81613492565b840191505092915050565b600060408301600083015161376e60008601826136fd565b5060208301518482036020860152613786828261371d565b9150508091505092915050565b600061379f8383613756565b905092915050565b6000602082019050919050565b60006137bf826136c7565b6137c981856136d2565b9350836020820285016137db856136e3565b8060005b8581101561381757848403895281516137f88582613793565b9450613803836137a7565b925060208a019950506001810190506137df565b50829750879550505050505092915050565b60408201600082015161383f6000850182613689565b5060208201516138526020850182613689565b50505050565b600060a08201905061386d6000830186613698565b818103604083015261387f81856137b4565b905061388e6060830184613829565b949350505050565b61389f81613532565b82525050565b60006020820190506138ba6000830184613896565b92915050565b6000606082840312156138d6576138d561361c565b5b81905092915050565b6000819050919050565b6138f2816138df565b81146138fd57600080fd5b50565b60008135905061390f816138e9565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261393a57613939613915565b5b8235905067ffffffffffffffff8111156139575761395661391a565b5b6020830191508360018202830111156139735761397261391f565b5b9250929050565b600080600080600080600060e0888a03121561399957613998613508565b5b60006139a78a828b016138c0565b97505060606139b88a828b01613900565b965050608088013567ffffffffffffffff8111156139d9576139d861350d565b5b6139e58a828b01613924565b955095505060a06139f88a828b0161355b565b93505060c088013567ffffffffffffffff811115613a1957613a1861350d565b5b613a258a828b01613924565b925092505092959891949750929550565b600061ffff82169050919050565b613a4d81613a36565b82525050565b6000602082019050613a686000830184613a44565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613aa381613a6e565b82525050565b600067ffffffffffffffff82169050919050565b613ac681613aa9565b82525050565b6000604082019050613ae16000830185613a9a565b613aee6020830184613abd565b9392505050565b6000604082019050613b0a6000830185613abd565b613b176020830184613abd565b9392505050565b613b2781613570565b82525050565b6000602082019050613b426000830184613b1e565b92915050565b600080600060608486031215613b6157613b60613508565b5b6000613b6f8682870161355b565b9350506020613b808682870161355b565b9250506040613b9186828701613591565b9150509250925092565b600060ff82169050919050565b613bb181613b9b565b82525050565b6000602082019050613bcc6000830184613ba8565b92915050565b600063ffffffff82169050919050565b613beb81613bd2565b8114613bf657600080fd5b50565b600081359050613c0881613be2565b92915050565b60008060408385031215613c2557613c24613508565b5b6000613c3385828601613bf9565b9250506020613c4485828601613900565b9150509250929050565b613c57816135e6565b8114613c6257600080fd5b50565b600081359050613c7481613c4e565b92915050565b60008060408385031215613c9157613c90613508565b5b600083013567ffffffffffffffff811115613caf57613cae61350d565b5b613cbb85828601613621565b9250506020613ccc85828601613c65565b9150509250929050565b604082016000820151613cec6000850182613689565b506020820151613cff6020850182613689565b50505050565b6000604082019050613d1a6000830184613cd6565b92915050565b613d2981613a36565b8114613d3457600080fd5b50565b600081359050613d4681613d20565b92915050565b60008060408385031215613d6357613d62613508565b5b6000613d7185828601613bf9565b9250506020613d8285828601613d37565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000613db382613d8c565b613dbd8185613d97565b9350613dcd818560208601613468565b613dd681613492565b840191505092915050565b60006020820190508181036000830152613dfb8184613da8565b905092915050565b6000819050919050565b6000613e28613e23613e1e84613512565b613e03565b613512565b9050919050565b6000613e3a82613e0d565b9050919050565b6000613e4c82613e2f565b9050919050565b613e5c81613e41565b82525050565b6000602082019050613e776000830184613e53565b92915050565b600060208284031215613e9357613e92613508565b5b6000613ea18482850161355b565b91505092915050565b6000602082019050613ebf6000830184613abd565b92915050565b613ece816138df565b82525050565b6000602082019050613ee96000830184613ec5565b92915050565b60008083601f840112613f0557613f04613915565b5b8235905067ffffffffffffffff811115613f2257613f2161391a565b5b602083019150836020820283011115613f3e57613f3d61391f565b5b9250929050565b60008060208385031215613f5c57613f5b613508565b5b600083013567ffffffffffffffff811115613f7a57613f7961350d565b5b613f8685828601613eef565b92509250509250929050565b600060208284031215613fa857613fa7613508565b5b6000613fb684828501613bf9565b91505092915050565b60008060008060608587031215613fd957613fd8613508565b5b6000613fe787828801613bf9565b9450506020613ff887828801613d37565b935050604085013567ffffffffffffffff8111156140195761401861350d565b5b61402587828801613924565b925092505092959194509250565b60008083601f84011261404957614048613915565b5b8235905067ffffffffffffffff8111156140665761406561391a565b5b6020830191508360208202830111156140825761408161391f565b5b9250929050565b600080602083850312156140a05761409f613508565b5b600083013567ffffffffffffffff8111156140be576140bd61350d565b5b6140ca85828601614033565b92509250509250929050565b6000604082840312156140ec576140eb61361c565b5b81905092915050565b60008060006080848603121561410e5761410d613508565b5b600084013567ffffffffffffffff81111561412c5761412b61350d565b5b61413886828701613621565b9350506020614149868287016140d6565b925050606061415a8682870161355b565b9150509250925092565b61416d816138df565b82525050565b61417c81613aa9565b82525050565b6040820160008201516141986000850182613689565b5060208201516141ab6020850182613689565b50505050565b6080820160008201516141c76000850182614164565b5060208201516141da6020850182614173565b5060408201516141ed6040850182614182565b50505050565b600060c08201905061420860008301856141b1565b6142156080830184613829565b9392505050565b6000806040838503121561423357614232613508565b5b60006142418582860161355b565b92505060206142528582860161355b565b9150509250929050565b60006060828403121561427257614271613508565b5b6000614280848285016138c0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806142d057607f821691505b6020821081036142e3576142e2614289565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61432181613bd2565b82525050565b600060408201905061433c6000830185614318565b6143496020830184613ec5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061438a82613570565b915061439583613570565b92508282019050808211156143ad576143ac614350565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061440f602583613457565b915061441a826143b3565b604082019050919050565b6000602082019050818103600083015261443e81614402565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160600383360303811261449f5761449e614474565b5b80830191505092915050565b600080833560016020038436030381126144c8576144c7614474565b5b80840192508235915067ffffffffffffffff8211156144ea576144e9614479565b5b6020830192506001820236038313156145065761450561447e565b5b509250929050565b60006020828403121561452457614523613508565b5b600061453284828501613d37565b91505092915050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026145a87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261456b565b6145b2868361456b565b95508019841693508086168417925050509392505050565b60006145e56145e06145db84613570565b613e03565b613570565b9050919050565b6000819050919050565b6145ff836145ca565b61461361460b826145ec565b848454614578565b825550505050565b600090565b61462861461b565b6146338184846145f6565b505050565b5b818110156146575761464c600082614620565b600181019050614639565b5050565b601f82111561469c5761466d81614546565b6146768461455b565b81016020851015614685578190505b6146996146918561455b565b830182614638565b50505b505050565b600082821c905092915050565b60006146bf600019846008026146a1565b1980831691505092915050565b60006146d883836146ae565b9150826002028217905092915050565b6146f2838361453b565b67ffffffffffffffff81111561470b5761470a6142e9565b5b61471582546142b8565b61472082828561465b565b6000601f83116001811461474f576000841561473d578287013590505b61474785826146cc565b8655506147af565b601f19841661475d86614546565b60005b8281101561478557848901358255600182019150602085019450602081019050614760565b868310156147a2578489013561479e601f8916826146ae565b8355505b6001600288020188555050505b50505050505050565b600082825260208201905092915050565b6000819050919050565b60006147e26020840184613bf9565b905092915050565b6147f381613bd2565b82525050565b60006148086020840184613d37565b905092915050565b61481981613a36565b82525050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261484b5761484a614829565b5b83810192508235915060208301925067ffffffffffffffff8211156148735761487261481f565b5b60018202360383131561488957614888614824565b5b509250929050565b600082825260208201905092915050565b82818337600083830152505050565b60006148bd8385614891565b93506148ca8385846148a2565b6148d383613492565b840190509392505050565b6000606083016148f160008401846147d3565b6148fe60008601826147ea565b5061490c60208401846147f9565b6149196020860182614810565b50614927604084018461482e565b858303604087015261493a8382846148b1565b925050508091505092915050565b600061495483836148de565b905092915050565b60008235600160600383360303811261497857614977614829565b5b82810191505092915050565b6000602082019050919050565b600061499d83856147b8565b9350836020840285016149af846147c9565b8060005b878110156149f35784840389526149ca828461495c565b6149d48582614948565b94506149df83614984565b925060208a019950506001810190506149b3565b50829750879450505050509392505050565b60006020820190508181036000830152614a20818486614991565b90509392505050565b600080fd5b600080fd5b60008085851115614a4757614a46614a29565b5b83861115614a5857614a57614a2e565b5b6001850283019150848603905094509492505050565b600081905092915050565b6000614a8482613d8c565b614a8e8185614a6e565b9350614a9e818560208601613468565b80840191505092915050565b6000614ab68385614a6e565b9350614ac38385846148a2565b82840190509392505050565b6000614adb8286614a79565b9150614ae8828486614aaa565b9150819050949350505050565b6000614b018385613d97565b9350614b0e8385846148a2565b614b1783613492565b840190509392505050565b60006020820190508181036000830152614b3d818486614af5565b90509392505050565b60008235600161014003833603038112614b6357614b62614474565b5b80830191505092915050565b6000614b7e6020840184613900565b905092915050565b614b8f81613aa9565b8114614b9a57600080fd5b50565b600081359050614bac81614b86565b92915050565b6000614bc16020840184614b9d565b905092915050565b60608201614bda60008301836147d3565b614be760008501826147ea565b50614bf56020830183614b6f565b614c026020850182614164565b50614c106040830183614bb2565b614c1d6040850182614173565b50505050565b600060e082019050614c38600083018a614bc9565b614c456060830189613ec5565b8181036080830152614c58818789614af5565b9050614c6760a0830186613896565b81810360c0830152614c7a818486614af5565b905098975050505050505050565b600080fd5b614c9682613492565b810181811067ffffffffffffffff82111715614cb557614cb46142e9565b5b80604052505050565b6000614cc86134fe565b9050614cd48282614c8d565b919050565b600067ffffffffffffffff821115614cf457614cf36142e9565b5b614cfd82613492565b9050602081019050919050565b6000614d1d614d1884614cd9565b614cbe565b905082815260208101848484011115614d3957614d38614c88565b5b614d44848285613468565b509392505050565b600082601f830112614d6157614d60613915565b5b8151614d71848260208601614d0a565b91505092915050565b600060208284031215614d9057614d8f613508565b5b600082015167ffffffffffffffff811115614dae57614dad61350d565b5b614dba84828501614d4c565b91505092915050565b600080fd5b600060408284031215614dde57614ddd614dc3565b5b614de86040614cbe565b90506000614df884828501613591565b6000830152506020614e0c84828501613591565b60208301525092915050565b600060408284031215614e2e57614e2d613508565b5b6000614e3c84828501614dc8565b91505092915050565b6000606082019050614e5a6000830186614318565b614e676020830185613b1e565b614e746040830184613b1e565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614ed8602683613457565b9150614ee382614e7c565b604082019050919050565b60006020820190508181036000830152614f0781614ecb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614f6a602483613457565b9150614f7582614f0e565b604082019050919050565b60006020820190508181036000830152614f9981614f5d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614ffc602283613457565b915061500782614fa0565b604082019050919050565b6000602082019050818103600083015261502b81614fef565b9050919050565b60006040820190506150476000830185613b1e565b6150546020830184613b1e565b9392505050565b60006020820190506150706000830184614318565b92915050565b60006020828403121561508c5761508b613508565b5b600061509a84828501614b9d565b91505092915050565b6000819050919050565b60006150c86150c36150be846150a3565b613e03565b613a36565b9050919050565b6150d8816150ad565b82525050565b60006080820190506150f36000830187613896565b6151006020830186613ec5565b61510d60408301856150cf565b818103606083015261511f8184613da8565b905095945050505050565b600060408201905061513f6000830185614318565b61514c6020830184613b1e565b9392505050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000615189601d83613457565b915061519482615153565b602082019050919050565b600060208201905081810360008301526151b88161517c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061521b602583613457565b9150615226826151bf565b604082019050919050565b6000602082019050818103600083015261524a8161520e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006152ad602383613457565b91506152b882615251565b604082019050919050565b600060208201905081810360008301526152dc816152a0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061533f602683613457565b915061534a826152e3565b604082019050919050565b6000602082019050818103600083015261536e81615332565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006153ab602083613457565b91506153b682615375565b602082019050919050565b600060208201905081810360008301526153da8161539e565b9050919050565b600060408201905081810360008301526153fb8185613da8565b9050818103602083015261540f8184613da8565b90509392505050565b60008151905061542781613c4e565b92915050565b60006020828403121561544357615442613508565b5b600061545184828501615418565b91505092915050565b600061546582613d8c565b61546f8185614891565b935061547f818560208601613468565b61548881613492565b840191505092915050565b61549c816135e6565b82525050565b600060a0830160008301516154ba60008601826147ea565b5060208301516154cd6020860182614164565b50604083015184820360408601526154e5828261545a565b915050606083015184820360608601526154ff828261545a565b91505060808301516155146080860182615493565b508091505092915050565b6000604082019050818103600083015261553981856154a2565b90506155486020830184613896565b9392505050565b60008151905061555e8161357a565b92915050565b60006040828403121561557a57615579614dc3565b5b6155846040614cbe565b905060006155948482850161554f565b60008301525060206155a88482850161554f565b60208301525092915050565b6000604082840312156155ca576155c9613508565b5b60006155d884828501615564565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b6000615619838361453b565b8261562481356155e1565b925060028210156156645761565f7fffff0000000000000000000000000000000000000000000000000000000000008360020360080261456b565b831692505b505092915050565b60008151905061567b816138e9565b92915050565b60008151905061569081614b86565b92915050565b6000608082840312156156ac576156ab614dc3565b5b6156b66060614cbe565b905060006156c68482850161566c565b60008301525060206156da84828501615681565b60208301525060406156ee84828501615564565b60408301525092915050565b6000608082840312156157105761570f613508565b5b600061571e84828501615696565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061576182613570565b915061576c83613570565b92508261577c5761577b615727565b5b828204905092915050565b600061579282613570565b915061579d83613570565b92508282026157ab81613570565b915082820484148315176157c2576157c1614350565b5b5092915050565b60006157d5838361453b565b826157e081356138df565b925060208210156158205761581b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080261456b565b831692505b505092915050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6000615860838361453b565b8261586b8135615828565b925060088210156158ab576158a67fffffffffffffffff0000000000000000000000000000000000000000000000008360080360080261456b565b831692505b505092915050565b60008160c01b9050919050565b60006158cb826158b3565b9050919050565b6158e36158de82613aa9565b6158c0565b82525050565b60008160e01b9050919050565b6000615901826158e9565b9050919050565b61591961591482613bd2565b6158f6565b82525050565b6000819050919050565b61593a61593582613570565b61591f565b82525050565b600061594c82876158d2565b60088201915061595c8286615908565b60048201915061596c8285615929565b60208201915061597c8284614a79565b915081905095945050505050565b6000819050919050565b6159a56159a0826138df565b61598a565b82525050565b60006159b78285615994565b6020820191506159c782846158d2565b6008820191508190509392505050565b60006159e38287615994565b6020820191506159f382866158d2565b600882019150615a038285615994565b602082019150615a138284614a79565b915081905095945050505050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000615a7d602183613457565b9150615a8882615a21565b604082019050919050565b60006020820190508181036000830152615aac81615a70565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000615b0f602283613457565b9150615b1a82615ab3565b604082019050919050565b60006020820190508181036000830152615b3e81615b02565b9050919050565b600081519050615b5481613544565b92915050565b600060208284031215615b7057615b6f613508565b5b6000615b7e84828501615b45565b91505092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000615bbd601f83613457565b9150615bc882615b87565b602082019050919050565b60006020820190508181036000830152615bec81615bb0565b9050919050565b6000606082019050615c086000830186613896565b615c156020830185613896565b615c226040830184613b1e565b949350505050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000615c86602a83613457565b9150615c9182615c2a565b604082019050919050565b60006020820190508181036000830152615cb581615c79565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000615d18602683613457565b9150615d2382615cbc565b604082019050919050565b60006020820190508181036000830152615d4781615d0b565b9050919050565b6000615d5a8284614a79565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000615d9b601d83613457565b9150615da682615d65565b602082019050919050565b60006020820190508181036000830152615dca81615d8e565b905091905056fea2646970667358221220fb99b80ffcf77c6f24aded677bf65844b370653c7e5a3faecb1c5c21ee4273ae64736f6c63430008170033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000001a44076050125825900e736c501f859c50fe728c00000000000000000000000033c78a4ebe7950277b0ba8b8f4c66526db73c502000000000000000000000000000000000000000000000000000000000000000754616f42616e6b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055442414e4b000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102725760003560e01c80637d25a05e1161014f578063b98bd070116100c1578063d045a0dc1161007a578063d045a0dc146109d0578063d4243885146109ec578063dd62ed3e14610a15578063f2fde38b14610a52578063fc0c546a14610a7b578063ff7bd03d14610aa657610272565b8063b98bd070146108b7578063bb0b6a53146108e0578063bc70b3541461091d578063bd815db01461095a578063c7c7f5b314610976578063ca5eb5e1146109a757610272565b8063963efcaa11610113578063963efcaa146107915780639f68b964146107bc578063a457c2d7146107e7578063a9059cbb14610824578063b731ea0a14610861578063b92d0eff1461088c57610272565b80637d25a05e1461069657806382c947b7146106d3578063857749b0146107105780638da5cb5b1461073b57806395d89b411461076657610272565b8063313ce567116101e85780635535d461116101ac5780635535d461146105745780635a0dfe4d146105b15780635e280f11146105ee5780636fc1b31e1461061957806370a0823114610642578063715018a61461067f57610272565b8063313ce5671461047b5780633400288b146104a657806339509351146104cf5780633b6f743b1461050c57806352ae28791461054957610272565b8063134d4f251161023a578063134d4f2514610365578063156a0d0f1461039057806317442b70146103bc57806318160ddd146103e85780631f5e13341461041357806323b872dd1461043e57610272565b806306fdde0314610277578063095ea7b3146102a25780630d35b415146102df578063111ecdad1461031e57806313137d6514610349575b600080fd5b34801561028357600080fd5b5061028c610ae3565b60405161029991906134dc565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c491906135a6565b610b75565b6040516102d69190613601565b60405180910390f35b3480156102eb57600080fd5b5061030660048036038101906103019190613640565b610b98565b60405161031593929190613858565b60405180910390f35b34801561032a57600080fd5b50610333610c76565b60405161034091906138a5565b60405180910390f35b610363600480360381019061035e919061397a565b610c9c565b005b34801561037157600080fd5b5061037a610dbe565b6040516103879190613a53565b60405180910390f35b34801561039c57600080fd5b506103a5610dc3565b6040516103b3929190613acc565b60405180910390f35b3480156103c857600080fd5b506103d1610df1565b6040516103df929190613af5565b60405180910390f35b3480156103f457600080fd5b506103fd610dff565b60405161040a9190613b2d565b60405180910390f35b34801561041f57600080fd5b50610428610e09565b6040516104359190613a53565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190613b48565b610e0e565b6040516104729190613601565b60405180910390f35b34801561048757600080fd5b50610490610e3d565b60405161049d9190613bb7565b60405180910390f35b3480156104b257600080fd5b506104cd60048036038101906104c89190613c0e565b610e46565b005b3480156104db57600080fd5b506104f660048036038101906104f191906135a6565b610eaf565b6040516105039190613601565b60405180910390f35b34801561051857600080fd5b50610533600480360381019061052e9190613c7a565b610ee6565b6040516105409190613d05565b60405180910390f35b34801561055557600080fd5b5061055e610f52565b60405161056b91906138a5565b60405180910390f35b34801561058057600080fd5b5061059b60048036038101906105969190613d4c565b610f5a565b6040516105a89190613de1565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d39190613c0e565b611007565b6040516105e59190613601565b60405180910390f35b3480156105fa57600080fd5b50610603611033565b6040516106109190613e62565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b9190613e7d565b611057565b005b34801561064e57600080fd5b5061066960048036038101906106649190613e7d565b6110da565b6040516106769190613b2d565b60405180910390f35b34801561068b57600080fd5b50610694611123565b005b3480156106a257600080fd5b506106bd60048036038101906106b89190613c0e565b611137565b6040516106ca9190613eaa565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f59190613e7d565b61113f565b6040516107079190613ed4565b60405180910390f35b34801561071c57600080fd5b50610725611162565b6040516107329190613bb7565b60405180910390f35b34801561074757600080fd5b5061075061116b565b60405161075d91906138a5565b60405180910390f35b34801561077257600080fd5b5061077b611194565b60405161078891906134dc565b60405180910390f35b34801561079d57600080fd5b506107a6611226565b6040516107b39190613b2d565b60405180910390f35b3480156107c857600080fd5b506107d161124a565b6040516107de9190613601565b60405180910390f35b3480156107f357600080fd5b5061080e600480360381019061080991906135a6565b61124f565b60405161081b9190613601565b60405180910390f35b34801561083057600080fd5b5061084b600480360381019061084691906135a6565b6112c6565b6040516108589190613601565b60405180910390f35b34801561086d57600080fd5b506108766112e9565b60405161088391906138a5565b60405180910390f35b34801561089857600080fd5b506108a161130f565b6040516108ae91906138a5565b60405180910390f35b3480156108c357600080fd5b506108de60048036038101906108d99190613f45565b611317565b005b3480156108ec57600080fd5b5061090760048036038101906109029190613f92565b61149a565b6040516109149190613ed4565b60405180910390f35b34801561092957600080fd5b50610944600480360381019061093f9190613fbf565b6114b2565b6040516109519190613de1565b60405180910390f35b610974600480360381019061096f9190614089565b61167c565b005b610990600480360381019061098b91906140f5565b611855565b60405161099e9291906141f3565b60405180910390f35b3480156109b357600080fd5b506109ce60048036038101906109c99190613e7d565b61195f565b005b6109ea60048036038101906109e5919061397a565b6119f5565b005b3480156109f857600080fd5b50610a136004803603810190610a0e9190613e7d565b611a72565b005b348015610a2157600080fd5b50610a3c6004803603810190610a37919061421c565b611af5565b604051610a499190613b2d565b60405180910390f35b348015610a5e57600080fd5b50610a796004803603810190610a749190613e7d565b611b7c565b005b348015610a8757600080fd5b50610a90611bff565b604051610a9d91906138a5565b60405180910390f35b348015610ab257600080fd5b50610acd6004803603810190610ac8919061425c565b611c07565b604051610ada9190613601565b60405180910390f35b606060088054610af2906142b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1e906142b8565b8015610b6b5780601f10610b4057610100808354040283529160200191610b6b565b820191906000526020600020905b815481529060010190602001808311610b4e57829003601f168201915b5050505050905090565b600080610b80611c48565b9050610b8d818585611c50565b600191505092915050565b610ba06133b0565b6060610baa6133ca565b60008067ffffffffffffffff801690506040518060400160405280838152602001828152509450600067ffffffffffffffff811115610bec57610beb6142e9565b5b604051908082528060200260200182016040528015610c2557816020015b610c126133e4565b815260200190600190039081610c0a5790505b509350600080610c50886040013589606001358a6000016020810190610c4b9190613f92565b611e19565b915091506040518060400160405280838152602001828152509450505050509193909250565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff167f0000000000000000000000001a44076050125825900e736c501f859c50fe728c73ffffffffffffffffffffffffffffffffffffffff1614610d2c57336040517f91ac5e4f000000000000000000000000000000000000000000000000000000008152600401610d2391906138a5565b60405180910390fd5b8660200135610d4c886000016020810190610d479190613f92565b611e79565b14610da657866000016020810190610d649190613f92565b87602001356040517fc26bebcc000000000000000000000000000000000000000000000000000000008152600401610d9d929190614327565b60405180910390fd5b610db587878787878787611eee565b50505050505050565b600281565b6000807f02e49c2c000000000000000000000000000000000000000000000000000000006001915091509091565b600080600180915091509091565b6000600754905090565b600181565b600080610e19611c48565b9050610e26858285612084565b610e31858585612110565b60019150509392505050565b60006012905090565b610e4e612389565b80600160008463ffffffff1663ffffffff168152602001908152602001600020819055507f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b8282604051610ea3929190614327565b60405180910390a15050565b600080610eba611c48565b9050610edb818585610ecc8589611af5565b610ed6919061437f565b611c50565b600191505092915050565b610eee6133fe565b6000610f1584604001358560600135866000016020810190610f109190613f92565b611e19565b915050600080610f258684612407565b91509150610f47866000016020810190610f3f9190613f92565b8383886125bd565b935050505092915050565b600030905090565b6003602052816000526040600020602052806000526040600020600091509150508054610f86906142b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb2906142b8565b8015610fff5780601f10610fd457610100808354040283529160200191610fff565b820191906000526020600020905b815481529060010190602001808311610fe257829003601f168201915b505050505081565b600081600160008563ffffffff1663ffffffff1681526020019081526020016000205414905092915050565b7f0000000000000000000000001a44076050125825900e736c501f859c50fe728c81565b61105f612389565b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197816040516110cf91906138a5565b60405180910390a150565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61112b612389565b61113560006126a0565b565b600092915050565b60008173ffffffffffffffffffffffffffffffffffffffff1660001b9050919050565b60006006905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546111a3906142b8565b80601f01602080910402602001604051908101604052809291908181526020018280546111cf906142b8565b801561121c5780601f106111f15761010080835404028352916020019161121c565b820191906000526020600020905b8154815290600101906020018083116111ff57829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000e8d4a5100081565b600090565b60008061125a611c48565b905060006112688286611af5565b9050838110156112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490614425565b60405180910390fd5b6112ba8286868403611c50565b60019250505092915050565b6000806112d1611c48565b90506112de818585612110565b600191505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600030905090565b61131f612389565b60005b8282905081101561145c5761136983838381811061134357611342614445565b5b90506020028101906113559190614483565b806040019061136491906144ab565b612764565b82828281811061137c5761137b614445565b5b905060200281019061138e9190614483565b806040019061139d91906144ab565b600360008686868181106113b4576113b3614445565b5b90506020028101906113c69190614483565b60000160208101906113d89190613f92565b63ffffffff1663ffffffff168152602001908152602001600020600086868681811061140757611406614445565b5b90506020028101906114199190614483565b602001602081019061142b919061450e565b61ffff1661ffff168152602001908152602001600020918261144e9291906146e8565b508080600101915050611322565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674828260405161148e929190614a05565b60405180910390a15050565b60016020528060005260406000206000915090505481565b60606000600360008763ffffffff1663ffffffff16815260200190815260200160002060008661ffff1661ffff16815260200190815260200160002080546114f9906142b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611525906142b8565b80156115725780601f1061154757610100808354040283529160200191611572565b820191906000526020600020905b81548152906001019060200180831161155557829003601f168201915b5050505050905060008151036115cf5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050915050611674565b600084849050036115e35780915050611674565b60028484905010611635576115f88484612764565b808484600290809261160c93929190614a33565b60405160200161161e93929190614acf565b604051602081830303815290604052915050611674565b83836040517f9a6d49cd00000000000000000000000000000000000000000000000000000000815260040161166b929190614b22565b60405180910390fd5b949350505050565b60005b828290508110156117a4573683838381811061169e5761169d614445565b5b90506020028101906116b09190614b46565b90506116d88160000160000160208101906116cb9190613f92565b8260000160200135611007565b6116e25750611797565b3073ffffffffffffffffffffffffffffffffffffffff1663d045a0dc8260c00135836000018460a001358580610100019061171d91906144ab565b8760e00160208101906117309190613e7d565b8880610120019061174191906144ab565b6040518963ffffffff1660e01b81526004016117639796959493929190614c23565b6000604051808303818588803b15801561177c57600080fd5b505af1158015611790573d6000803e3d6000fd5b5050505050505b808060010191505061167f565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa1580156117f0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906118199190614d7a565b6040517f8351eea700000000000000000000000000000000000000000000000000000000815260040161184c9190613de1565b60405180910390fd5b61185d613418565b6118656133ca565b60008061188d876040013588606001358960000160208101906118889190613f92565b6127de565b9150915060008061189e8984612407565b915091506118d18960000160208101906118b89190613f92565b83838b8036038101906118cb9190614e18565b8b612806565b955060405180604001604052808581526020018481525094503373ffffffffffffffffffffffffffffffffffffffff1686600001517f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a8b600001602081019061193a9190613f92565b878760405161194b93929190614e45565b60405180910390a350505050935093915050565b611967612389565b7f0000000000000000000000001a44076050125825900e736c501f859c50fe728c73ffffffffffffffffffffffffffffffffffffffff1663ca5eb5e1826040518263ffffffff1660e01b81526004016119c091906138a5565b600060405180830381600087803b1580156119da57600080fd5b505af11580156119ee573d6000803e3d6000fd5b5050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a5a576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a6987878787878787612922565b50505050505050565b611a7a612389565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776081604051611aea91906138a5565b60405180910390a150565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b84612389565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bea90614eee565b60405180910390fd5b611bfc816126a0565b50565b600030905090565b6000816020013560016000846000016020810190611c259190613f92565b63ffffffff1663ffffffff16815260200190815260200160002054149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb690614f80565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2590615012565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e0c9190613b2d565b60405180910390a3505050565b600080611e258561293a565b915081905083811015611e715780846040517f71c4efed000000000000000000000000000000000000000000000000000000008152600401611e68929190615032565b60405180910390fd5b935093915050565b600080600160008463ffffffff1663ffffffff1681526020019081526020016000205490506000801b8103611ee557826040517ff6ff4fb7000000000000000000000000000000000000000000000000000000008152600401611edc919061505b565b60405180910390fd5b80915050919050565b6000611f02611efd878761299a565b6129c6565b90506000611f3482611f1c611f178a8a6129d3565b612a05565b8b6000016020810190611f2f9190613f92565b612a44565b9050611f408787612a5a565b15612016576000611f808a6040016020810190611f5d9190615076565b8b6000016020810190611f709190613f92565b84611f7b8c8c612a6e565b612ad1565b90507f0000000000000000000000001a44076050125825900e736c501f859c50fe728c73ffffffffffffffffffffffffffffffffffffffff16637cb59012848b6000856040518563ffffffff1660e01b8152600401611fe294939291906150de565b600060405180830381600087803b158015611ffc57600080fd5b505af1158015612010573d6000803e3d6000fd5b50505050505b8173ffffffffffffffffffffffffffffffffffffffff16887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c8b60000160208101906120629190613f92565b8460405161207192919061512a565b60405180910390a3505050505050505050565b60006120908484611af5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461210a57818110156120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f39061519f565b60405180910390fd5b6121098484848403611c50565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361217f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217690615231565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e5906152c3565b60405180910390fd5b6121f9838383612b03565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227790615355565b60405180910390fd5b818103600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123709190613b2d565b60405180910390a3612383848484612b08565b50505050565b612391611c48565b73ffffffffffffffffffffffffffffffffffffffff166123af61116b565b73ffffffffffffffffffffffffffffffffffffffff1614612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc906153c1565b60405180910390fd5b565b6060806000612475856020013561241d86612b0d565b878060a0019061242d91906144ab565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612b42565b809250819450505060008161248b57600161248e565b60025b90506124bc8660000160208101906124a69190613f92565b828880608001906124b791906144ab565b6114b2565b9250600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125b457600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663043a78eb85856040518363ffffffff1660e01b81526004016125719291906153e1565b602060405180830381865afa15801561258e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b2919061542d565b505b50509250929050565b6125c56133fe565b7f0000000000000000000000001a44076050125825900e736c501f859c50fe728c73ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff16815260200161262189611e79565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161265692919061551f565b6040805180830381865afa158015612672573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269691906155b4565b9050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000828260009060029261277a93929190614a33565b90612785919061560d565b60f01c9050600361ffff168161ffff16146127d95782826040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016127d0929190614b22565b60405180910390fd5b505050565b6000806127ec858585611e19565b80925081935050506127fe3383612bb1565b935093915050565b61280e613418565b600061281d8460000151612d80565b905060008460200151111561283a576128398460200151612dce565b5b7f0000000000000000000000001a44076050125825900e736c501f859c50fe728c73ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff1681526020016128978c611e79565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016128d392919061551f565b60806040518083038185885af11580156128f1573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061291691906156fa565b91505095945050505050565b61293187878787878787611eee565b50505050505050565b60007f000000000000000000000000000000000000000000000000000000e8d4a510007f000000000000000000000000000000000000000000000000000000e8d4a51000836129899190615756565b6129939190615787565b9050919050565b60008282600090602060ff16926129b393929190614a33565b906129be91906157c9565b905092915050565b60008160001c9050919050565b60008282602060ff1690602860ff16926129ef93929190614a33565b906129fa9190615854565b60c01c905092915050565b60007f000000000000000000000000000000000000000000000000000000e8d4a510008267ffffffffffffffff16612a3d9190615787565b9050919050565b6000612a508484612f18565b8290509392505050565b6000602860ff168383905011905092915050565b60608282602860ff16908092612a8693929190614a33565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050905092915050565b606084848484604051602001612aea9493929190615940565b6040516020818303038152906040529050949350505050565b505050565b505050565b60007f000000000000000000000000000000000000000000000000000000e8d4a5100082612b3b9190615756565b9050919050565b6060600080835111905080612b78578484604051602001612b649291906159ab565b604051602081830303815290604052612ba7565b8484612b833361306f565b85604051602001612b9794939291906159d7565b6040516020818303038152906040525b9150935093915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1790615a93565b60405180910390fd5b612c2c82600083612b03565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612caa90615b25565b60405180910390fd5b818103600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612d679190613b2d565b60405180910390a3612d7b83600084612b08565b505050565b6000813414612dc657346040517f9f704120000000000000000000000000000000000000000000000000000000008152600401612dbd9190613b2d565b60405180910390fd5b819050919050565b60007f0000000000000000000000001a44076050125825900e736c501f859c50fe728c73ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5f9190615b5a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612ec7576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612f14337f0000000000000000000000001a44076050125825900e736c501f859c50fe728c848473ffffffffffffffffffffffffffffffffffffffff16613092909392919063ffffffff16565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f7e90615bd3565b60405180910390fd5b612f9360008383612b03565b8060076000828254612fa5919061437f565b9250508190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130579190613b2d565b60405180910390a361306b60008383612b08565b5050565b60008173ffffffffffffffffffffffffffffffffffffffff1660001b9050919050565b613115846323b872dd60e01b8585856040516024016130b393929190615bf3565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061311b565b50505050565b600061317d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166131e39092919063ffffffff16565b905060008151148061319f57508080602001905181019061319e919061542d565b5b6131de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d590615c9c565b60405180910390fd5b505050565b60606131f284846000856131fb565b90509392505050565b606082471015613240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161323790615d2e565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516132699190615d4e565b60006040518083038185875af1925050503d80600081146132a6576040519150601f19603f3d011682016040523d82523d6000602084013e6132ab565b606091505b50915091506132bc878383876132c8565b92505050949350505050565b6060831561332a576000835103613322576132e28561333d565b613321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331890615db1565b60405180910390fd5b5b829050613335565b6133348383613360565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156133735781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133a791906134dc565b60405180910390fd5b604051806040016040528060008152602001600081525090565b604051806040016040528060008152602001600081525090565b604051806040016040528060008152602001606081525090565b604051806040016040528060008152602001600081525090565b604051806060016040528060008019168152602001600067ffffffffffffffff1681526020016134466133fe565b81525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561348657808201518184015260208101905061346b565b60008484015250505050565b6000601f19601f8301169050919050565b60006134ae8261344c565b6134b88185613457565b93506134c8818560208601613468565b6134d181613492565b840191505092915050565b600060208201905081810360008301526134f681846134a3565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061353d82613512565b9050919050565b61354d81613532565b811461355857600080fd5b50565b60008135905061356a81613544565b92915050565b6000819050919050565b61358381613570565b811461358e57600080fd5b50565b6000813590506135a08161357a565b92915050565b600080604083850312156135bd576135bc613508565b5b60006135cb8582860161355b565b92505060206135dc85828601613591565b9150509250929050565b60008115159050919050565b6135fb816135e6565b82525050565b600060208201905061361660008301846135f2565b92915050565b600080fd5b600060e082840312156136375761363661361c565b5b81905092915050565b60006020828403121561365657613655613508565b5b600082013567ffffffffffffffff8111156136745761367361350d565b5b61368084828501613621565b91505092915050565b61369281613570565b82525050565b6040820160008201516136ae6000850182613689565b5060208201516136c16020850182613689565b50505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b613706816136f3565b82525050565b600082825260208201905092915050565b60006137288261344c565b613732818561370c565b9350613742818560208601613468565b61374b81613492565b840191505092915050565b600060408301600083015161376e60008601826136fd565b5060208301518482036020860152613786828261371d565b9150508091505092915050565b600061379f8383613756565b905092915050565b6000602082019050919050565b60006137bf826136c7565b6137c981856136d2565b9350836020820285016137db856136e3565b8060005b8581101561381757848403895281516137f88582613793565b9450613803836137a7565b925060208a019950506001810190506137df565b50829750879550505050505092915050565b60408201600082015161383f6000850182613689565b5060208201516138526020850182613689565b50505050565b600060a08201905061386d6000830186613698565b818103604083015261387f81856137b4565b905061388e6060830184613829565b949350505050565b61389f81613532565b82525050565b60006020820190506138ba6000830184613896565b92915050565b6000606082840312156138d6576138d561361c565b5b81905092915050565b6000819050919050565b6138f2816138df565b81146138fd57600080fd5b50565b60008135905061390f816138e9565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261393a57613939613915565b5b8235905067ffffffffffffffff8111156139575761395661391a565b5b6020830191508360018202830111156139735761397261391f565b5b9250929050565b600080600080600080600060e0888a03121561399957613998613508565b5b60006139a78a828b016138c0565b97505060606139b88a828b01613900565b965050608088013567ffffffffffffffff8111156139d9576139d861350d565b5b6139e58a828b01613924565b955095505060a06139f88a828b0161355b565b93505060c088013567ffffffffffffffff811115613a1957613a1861350d565b5b613a258a828b01613924565b925092505092959891949750929550565b600061ffff82169050919050565b613a4d81613a36565b82525050565b6000602082019050613a686000830184613a44565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613aa381613a6e565b82525050565b600067ffffffffffffffff82169050919050565b613ac681613aa9565b82525050565b6000604082019050613ae16000830185613a9a565b613aee6020830184613abd565b9392505050565b6000604082019050613b0a6000830185613abd565b613b176020830184613abd565b9392505050565b613b2781613570565b82525050565b6000602082019050613b426000830184613b1e565b92915050565b600080600060608486031215613b6157613b60613508565b5b6000613b6f8682870161355b565b9350506020613b808682870161355b565b9250506040613b9186828701613591565b9150509250925092565b600060ff82169050919050565b613bb181613b9b565b82525050565b6000602082019050613bcc6000830184613ba8565b92915050565b600063ffffffff82169050919050565b613beb81613bd2565b8114613bf657600080fd5b50565b600081359050613c0881613be2565b92915050565b60008060408385031215613c2557613c24613508565b5b6000613c3385828601613bf9565b9250506020613c4485828601613900565b9150509250929050565b613c57816135e6565b8114613c6257600080fd5b50565b600081359050613c7481613c4e565b92915050565b60008060408385031215613c9157613c90613508565b5b600083013567ffffffffffffffff811115613caf57613cae61350d565b5b613cbb85828601613621565b9250506020613ccc85828601613c65565b9150509250929050565b604082016000820151613cec6000850182613689565b506020820151613cff6020850182613689565b50505050565b6000604082019050613d1a6000830184613cd6565b92915050565b613d2981613a36565b8114613d3457600080fd5b50565b600081359050613d4681613d20565b92915050565b60008060408385031215613d6357613d62613508565b5b6000613d7185828601613bf9565b9250506020613d8285828601613d37565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000613db382613d8c565b613dbd8185613d97565b9350613dcd818560208601613468565b613dd681613492565b840191505092915050565b60006020820190508181036000830152613dfb8184613da8565b905092915050565b6000819050919050565b6000613e28613e23613e1e84613512565b613e03565b613512565b9050919050565b6000613e3a82613e0d565b9050919050565b6000613e4c82613e2f565b9050919050565b613e5c81613e41565b82525050565b6000602082019050613e776000830184613e53565b92915050565b600060208284031215613e9357613e92613508565b5b6000613ea18482850161355b565b91505092915050565b6000602082019050613ebf6000830184613abd565b92915050565b613ece816138df565b82525050565b6000602082019050613ee96000830184613ec5565b92915050565b60008083601f840112613f0557613f04613915565b5b8235905067ffffffffffffffff811115613f2257613f2161391a565b5b602083019150836020820283011115613f3e57613f3d61391f565b5b9250929050565b60008060208385031215613f5c57613f5b613508565b5b600083013567ffffffffffffffff811115613f7a57613f7961350d565b5b613f8685828601613eef565b92509250509250929050565b600060208284031215613fa857613fa7613508565b5b6000613fb684828501613bf9565b91505092915050565b60008060008060608587031215613fd957613fd8613508565b5b6000613fe787828801613bf9565b9450506020613ff887828801613d37565b935050604085013567ffffffffffffffff8111156140195761401861350d565b5b61402587828801613924565b925092505092959194509250565b60008083601f84011261404957614048613915565b5b8235905067ffffffffffffffff8111156140665761406561391a565b5b6020830191508360208202830111156140825761408161391f565b5b9250929050565b600080602083850312156140a05761409f613508565b5b600083013567ffffffffffffffff8111156140be576140bd61350d565b5b6140ca85828601614033565b92509250509250929050565b6000604082840312156140ec576140eb61361c565b5b81905092915050565b60008060006080848603121561410e5761410d613508565b5b600084013567ffffffffffffffff81111561412c5761412b61350d565b5b61413886828701613621565b9350506020614149868287016140d6565b925050606061415a8682870161355b565b9150509250925092565b61416d816138df565b82525050565b61417c81613aa9565b82525050565b6040820160008201516141986000850182613689565b5060208201516141ab6020850182613689565b50505050565b6080820160008201516141c76000850182614164565b5060208201516141da6020850182614173565b5060408201516141ed6040850182614182565b50505050565b600060c08201905061420860008301856141b1565b6142156080830184613829565b9392505050565b6000806040838503121561423357614232613508565b5b60006142418582860161355b565b92505060206142528582860161355b565b9150509250929050565b60006060828403121561427257614271613508565b5b6000614280848285016138c0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806142d057607f821691505b6020821081036142e3576142e2614289565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61432181613bd2565b82525050565b600060408201905061433c6000830185614318565b6143496020830184613ec5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061438a82613570565b915061439583613570565b92508282019050808211156143ad576143ac614350565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061440f602583613457565b915061441a826143b3565b604082019050919050565b6000602082019050818103600083015261443e81614402565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160600383360303811261449f5761449e614474565b5b80830191505092915050565b600080833560016020038436030381126144c8576144c7614474565b5b80840192508235915067ffffffffffffffff8211156144ea576144e9614479565b5b6020830192506001820236038313156145065761450561447e565b5b509250929050565b60006020828403121561452457614523613508565b5b600061453284828501613d37565b91505092915050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026145a87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261456b565b6145b2868361456b565b95508019841693508086168417925050509392505050565b60006145e56145e06145db84613570565b613e03565b613570565b9050919050565b6000819050919050565b6145ff836145ca565b61461361460b826145ec565b848454614578565b825550505050565b600090565b61462861461b565b6146338184846145f6565b505050565b5b818110156146575761464c600082614620565b600181019050614639565b5050565b601f82111561469c5761466d81614546565b6146768461455b565b81016020851015614685578190505b6146996146918561455b565b830182614638565b50505b505050565b600082821c905092915050565b60006146bf600019846008026146a1565b1980831691505092915050565b60006146d883836146ae565b9150826002028217905092915050565b6146f2838361453b565b67ffffffffffffffff81111561470b5761470a6142e9565b5b61471582546142b8565b61472082828561465b565b6000601f83116001811461474f576000841561473d578287013590505b61474785826146cc565b8655506147af565b601f19841661475d86614546565b60005b8281101561478557848901358255600182019150602085019450602081019050614760565b868310156147a2578489013561479e601f8916826146ae565b8355505b6001600288020188555050505b50505050505050565b600082825260208201905092915050565b6000819050919050565b60006147e26020840184613bf9565b905092915050565b6147f381613bd2565b82525050565b60006148086020840184613d37565b905092915050565b61481981613a36565b82525050565b600080fd5b600080fd5b600080fd5b6000808335600160200384360303811261484b5761484a614829565b5b83810192508235915060208301925067ffffffffffffffff8211156148735761487261481f565b5b60018202360383131561488957614888614824565b5b509250929050565b600082825260208201905092915050565b82818337600083830152505050565b60006148bd8385614891565b93506148ca8385846148a2565b6148d383613492565b840190509392505050565b6000606083016148f160008401846147d3565b6148fe60008601826147ea565b5061490c60208401846147f9565b6149196020860182614810565b50614927604084018461482e565b858303604087015261493a8382846148b1565b925050508091505092915050565b600061495483836148de565b905092915050565b60008235600160600383360303811261497857614977614829565b5b82810191505092915050565b6000602082019050919050565b600061499d83856147b8565b9350836020840285016149af846147c9565b8060005b878110156149f35784840389526149ca828461495c565b6149d48582614948565b94506149df83614984565b925060208a019950506001810190506149b3565b50829750879450505050509392505050565b60006020820190508181036000830152614a20818486614991565b90509392505050565b600080fd5b600080fd5b60008085851115614a4757614a46614a29565b5b83861115614a5857614a57614a2e565b5b6001850283019150848603905094509492505050565b600081905092915050565b6000614a8482613d8c565b614a8e8185614a6e565b9350614a9e818560208601613468565b80840191505092915050565b6000614ab68385614a6e565b9350614ac38385846148a2565b82840190509392505050565b6000614adb8286614a79565b9150614ae8828486614aaa565b9150819050949350505050565b6000614b018385613d97565b9350614b0e8385846148a2565b614b1783613492565b840190509392505050565b60006020820190508181036000830152614b3d818486614af5565b90509392505050565b60008235600161014003833603038112614b6357614b62614474565b5b80830191505092915050565b6000614b7e6020840184613900565b905092915050565b614b8f81613aa9565b8114614b9a57600080fd5b50565b600081359050614bac81614b86565b92915050565b6000614bc16020840184614b9d565b905092915050565b60608201614bda60008301836147d3565b614be760008501826147ea565b50614bf56020830183614b6f565b614c026020850182614164565b50614c106040830183614bb2565b614c1d6040850182614173565b50505050565b600060e082019050614c38600083018a614bc9565b614c456060830189613ec5565b8181036080830152614c58818789614af5565b9050614c6760a0830186613896565b81810360c0830152614c7a818486614af5565b905098975050505050505050565b600080fd5b614c9682613492565b810181811067ffffffffffffffff82111715614cb557614cb46142e9565b5b80604052505050565b6000614cc86134fe565b9050614cd48282614c8d565b919050565b600067ffffffffffffffff821115614cf457614cf36142e9565b5b614cfd82613492565b9050602081019050919050565b6000614d1d614d1884614cd9565b614cbe565b905082815260208101848484011115614d3957614d38614c88565b5b614d44848285613468565b509392505050565b600082601f830112614d6157614d60613915565b5b8151614d71848260208601614d0a565b91505092915050565b600060208284031215614d9057614d8f613508565b5b600082015167ffffffffffffffff811115614dae57614dad61350d565b5b614dba84828501614d4c565b91505092915050565b600080fd5b600060408284031215614dde57614ddd614dc3565b5b614de86040614cbe565b90506000614df884828501613591565b6000830152506020614e0c84828501613591565b60208301525092915050565b600060408284031215614e2e57614e2d613508565b5b6000614e3c84828501614dc8565b91505092915050565b6000606082019050614e5a6000830186614318565b614e676020830185613b1e565b614e746040830184613b1e565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614ed8602683613457565b9150614ee382614e7c565b604082019050919050565b60006020820190508181036000830152614f0781614ecb565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614f6a602483613457565b9150614f7582614f0e565b604082019050919050565b60006020820190508181036000830152614f9981614f5d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614ffc602283613457565b915061500782614fa0565b604082019050919050565b6000602082019050818103600083015261502b81614fef565b9050919050565b60006040820190506150476000830185613b1e565b6150546020830184613b1e565b9392505050565b60006020820190506150706000830184614318565b92915050565b60006020828403121561508c5761508b613508565b5b600061509a84828501614b9d565b91505092915050565b6000819050919050565b60006150c86150c36150be846150a3565b613e03565b613a36565b9050919050565b6150d8816150ad565b82525050565b60006080820190506150f36000830187613896565b6151006020830186613ec5565b61510d60408301856150cf565b818103606083015261511f8184613da8565b905095945050505050565b600060408201905061513f6000830185614318565b61514c6020830184613b1e565b9392505050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000615189601d83613457565b915061519482615153565b602082019050919050565b600060208201905081810360008301526151b88161517c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061521b602583613457565b9150615226826151bf565b604082019050919050565b6000602082019050818103600083015261524a8161520e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006152ad602383613457565b91506152b882615251565b604082019050919050565b600060208201905081810360008301526152dc816152a0565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061533f602683613457565b915061534a826152e3565b604082019050919050565b6000602082019050818103600083015261536e81615332565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006153ab602083613457565b91506153b682615375565b602082019050919050565b600060208201905081810360008301526153da8161539e565b9050919050565b600060408201905081810360008301526153fb8185613da8565b9050818103602083015261540f8184613da8565b90509392505050565b60008151905061542781613c4e565b92915050565b60006020828403121561544357615442613508565b5b600061545184828501615418565b91505092915050565b600061546582613d8c565b61546f8185614891565b935061547f818560208601613468565b61548881613492565b840191505092915050565b61549c816135e6565b82525050565b600060a0830160008301516154ba60008601826147ea565b5060208301516154cd6020860182614164565b50604083015184820360408601526154e5828261545a565b915050606083015184820360608601526154ff828261545a565b91505060808301516155146080860182615493565b508091505092915050565b6000604082019050818103600083015261553981856154a2565b90506155486020830184613896565b9392505050565b60008151905061555e8161357a565b92915050565b60006040828403121561557a57615579614dc3565b5b6155846040614cbe565b905060006155948482850161554f565b60008301525060206155a88482850161554f565b60208301525092915050565b6000604082840312156155ca576155c9613508565b5b60006155d884828501615564565b91505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b6000615619838361453b565b8261562481356155e1565b925060028210156156645761565f7fffff0000000000000000000000000000000000000000000000000000000000008360020360080261456b565b831692505b505092915050565b60008151905061567b816138e9565b92915050565b60008151905061569081614b86565b92915050565b6000608082840312156156ac576156ab614dc3565b5b6156b66060614cbe565b905060006156c68482850161566c565b60008301525060206156da84828501615681565b60208301525060406156ee84828501615564565b60408301525092915050565b6000608082840312156157105761570f613508565b5b600061571e84828501615696565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061576182613570565b915061576c83613570565b92508261577c5761577b615727565b5b828204905092915050565b600061579282613570565b915061579d83613570565b92508282026157ab81613570565b915082820484148315176157c2576157c1614350565b5b5092915050565b60006157d5838361453b565b826157e081356138df565b925060208210156158205761581b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080261456b565b831692505b505092915050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b6000615860838361453b565b8261586b8135615828565b925060088210156158ab576158a67fffffffffffffffff0000000000000000000000000000000000000000000000008360080360080261456b565b831692505b505092915050565b60008160c01b9050919050565b60006158cb826158b3565b9050919050565b6158e36158de82613aa9565b6158c0565b82525050565b60008160e01b9050919050565b6000615901826158e9565b9050919050565b61591961591482613bd2565b6158f6565b82525050565b6000819050919050565b61593a61593582613570565b61591f565b82525050565b600061594c82876158d2565b60088201915061595c8286615908565b60048201915061596c8285615929565b60208201915061597c8284614a79565b915081905095945050505050565b6000819050919050565b6159a56159a0826138df565b61598a565b82525050565b60006159b78285615994565b6020820191506159c782846158d2565b6008820191508190509392505050565b60006159e38287615994565b6020820191506159f382866158d2565b600882019150615a038285615994565b602082019150615a138284614a79565b915081905095945050505050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000615a7d602183613457565b9150615a8882615a21565b604082019050919050565b60006020820190508181036000830152615aac81615a70565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000615b0f602283613457565b9150615b1a82615ab3565b604082019050919050565b60006020820190508181036000830152615b3e81615b02565b9050919050565b600081519050615b5481613544565b92915050565b600060208284031215615b7057615b6f613508565b5b6000615b7e84828501615b45565b91505092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000615bbd601f83613457565b9150615bc882615b87565b602082019050919050565b60006020820190508181036000830152615bec81615bb0565b9050919050565b6000606082019050615c086000830186613896565b615c156020830185613896565b615c226040830184613b1e565b949350505050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000615c86602a83613457565b9150615c9182615c2a565b604082019050919050565b60006020820190508181036000830152615cb581615c79565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000615d18602683613457565b9150615d2382615cbc565b604082019050919050565b60006020820190508181036000830152615d4781615d0b565b9050919050565b6000615d5a8284614a79565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000615d9b601d83613457565b9150615da682615d65565b602082019050919050565b60006020820190508181036000830152615dca81615d8e565b905091905056fea2646970667358221220fb99b80ffcf77c6f24aded677bf65844b370653c7e5a3faecb1c5c21ee4273ae64736f6c63430008170033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000001a44076050125825900e736c501f859c50fe728c00000000000000000000000033c78a4ebe7950277b0ba8b8f4c66526db73c502000000000000000000000000000000000000000000000000000000000000000754616f42616e6b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055442414e4b000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): TaoBank
Arg [1] : _symbol (string): TBANK
Arg [2] : _layerZeroEndpoint (address): 0x1a44076050125825900e736c501f859c50fE728c
Arg [3] : _owner (address): 0x33C78a4EBE7950277B0Ba8b8F4C66526db73C502

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000001a44076050125825900e736c501f859c50fe728c
Arg [3] : 00000000000000000000000033c78a4ebe7950277b0ba8b8f4c66526db73c502
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [5] : 54616f42616e6b00000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 5442414e4b000000000000000000000000000000000000000000000000000000

🤖 Code Reader

Generate instant answers for your smart contract questions using Al Models. Read more.

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.