false
false
0

Contract Address Details This is the testnet address; do not send mainnet coins here!

0x8A6D30796c3EBD3332FD3d9c2c3196B0Ac274e20

Contract Name
GameItemContract
Creator
0xb80042–1c51ab at 0x5247d8–bc7948
Balance
0.00 GUN (0.00 USD)
Tokens
Fetching tokens...
Transactions
0 Transactions
Transfers
0 Transfers
Gas Used
0
Last Balance Update
28571273
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
GameItemContract




Optimization enabled
true
Compiler version
v0.8.9+commit.e5eed63a




Optimization runs
200
EVM Version
default




Verified at
2024-12-18T13:19:46.689549Z

Contract source code

// Sources flattened with hardhat v2.22.10 https://hardhat.org
// SPDX-License-Identifier: MIT
// File contracts/interfaces/IGameItem.sol
// Original license: SPDX_License_Identifier: MIT
pragma solidity ^0.8.0;
/// @notice Interface for GameItemContract
interface IGameItem {
/// @notice this event is emitted when NFT GameItem is minted
/// @param to new owner of GameItem
/// @param tokenID id ow new GameItem
/// @param quality quality(0-4) of new GameItem
/// @param hacker the hacker who minted this item
/// @param licenseId the id of hacker license who minted this item
event Minted(
address indexed to,
uint256 indexed tokenID,
uint8 quality,
address hacker,
uint256 licenseId);
event MintedForUser(
address indexed to,
uint256 indexed tokenID,
uint8 quality,
uint256 financialWalletPayment,
address hacker,
uint256 licenseId);
function version() external view returns (uint32);
/// @notice gets creator's address of specific GameItem
/// @param _tokenID token id of specific GameItem
/// @return minter's address
function getItemCreator(uint256 _tokenID) external view returns(address);
/// @notice gets (hacker) address of specific GameItem
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract ABI

[{"type":"error","name":"CallerNotDataCubeContractNorDecoder","inputs":[{"type":"address","name":"caller","internalType":"address"}]},{"type":"error","name":"CallerNotOwner","inputs":[{"type":"address","name":"caller","internalType":"address"},{"type":"address","name":"owner","internalType":"address"},{"type":"uint256","name":"tokenID","internalType":"uint256"}]},{"type":"error","name":"ContractsIsNotPaused","inputs":[]},{"type":"error","name":"ContractsIsPaused","inputs":[]},{"type":"error","name":"DeadlineExpired","inputs":[{"type":"uint256","name":"deadline","internalType":"uint256"},{"type":"uint256","name":"currentTimestamp","internalType":"uint256"}]},{"type":"error","name":"IncorrectSigner","inputs":[{"type":"address","name":"signer","internalType":"address"}]},{"type":"error","name":"IncorrectValue","inputs":[{"type":"uint256","name":"value","internalType":"uint256"},{"type":"uint256","name":"price","internalType":"uint256"}]},{"type":"error","name":"InvalidRole","inputs":[{"type":"address","name":"caller","internalType":"address"},{"type":"bytes32","name":"role","internalType":"bytes32"}]},{"type":"error","name":"UnsuccessfulPayment","inputs":[{"type":"address","name":"from","internalType":"address"},{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"approved","internalType":"address","indexed":true},{"type":"uint256","name":"tokenId","internalType":"uint256","indexed":true}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"operator","internalType":"address","indexed":true},{"type":"bool","name":"approved","internalType":"bool","indexed":false}],"anonymous":false},{"type":"event","name":"Minted","inputs":[{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"tokenID","internalType":"uint256","indexed":true},{"type":"uint8","name":"quality","internalType":"uint8","indexed":false},{"type":"address","name":"hacker","internalType":"address","indexed":false},{"type":"uint256","name":"licenseId","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"MintedForUser","inputs":[{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"tokenID","internalType":"uint256","indexed":true},{"type":"uint8","name":"quality","internalType":"uint8","indexed":false},{"type":"uint256","name":"financialWalletPayment","internalType":"uint256","indexed":false},{"type":"address","name":"hacker","internalType":"address","indexed":false},{"type":"uint256","name":"licenseId","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"tokenId","internalType":"uint256","indexed":true}],"anonymous":false},{"type":"event","name":"setHackerForItem","inputs":[{"type":"uint256","name":"tokenID","internalType":"uint256","indexed":false},{"type":"address","name":"hacker","internalType":"address","indexed":false}],"anonymous":false},{"type":"fallback","stateMutability":"payable"},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"approve","inputs":[{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"tokenId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"owner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"batchApprove","inputs":[{"type":"address","name":"to","internalType":"address"},{"type":"uint256[]","name":"tokenIDs","internalType":"uint256[]"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"battlePassContractAddress","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"bridgeBurn","inputs":[{"type":"uint256","name":"_tokenID","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"bridgeMint","inputs":[{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"_tokenID","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"burn","inputs":[{"type":"uint256","name":"_tokenID","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"changeItemState","inputs":[{"type":"uint256","name":"_tokenID","internalType":"uint256"},{"type":"uint8","name":"_state","internalType":"uint8"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"dataCubeContractAddress","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"decoderAddress","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"getApproved","inputs":[{"type":"uint256","name":"tokenId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"getItemCreator","inputs":[{"type":"uint256","name":"_tokenID","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"getItemHacker","inputs":[{"type":"uint256","name":"_tokenID","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"getItemQuality","inputs":[{"type":"uint256","name":"_tokenID","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getItemSeason","inputs":[{"type":"uint256","name":"_tokenID","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"getItemState","inputs":[{"type":"uint256","name":"_tokenID","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getItemValidator","inputs":[{"type":"uint256","name":"_tokenID","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"initialize","inputs":[{"type":"address","name":"_dataCubeContractAddress","internalType":"address"},{"type":"address","name":"_platformSettingsContractAddress","internalType":"address"},{"type":"address","name":"_validatorLicenseContractAddress","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isApprovedForAll","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"operator","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"creator","internalType":"address"},{"type":"uint256","name":"validator","internalType":"uint256"},{"type":"uint8","name":"quality","internalType":"enum GameItemContract.Quality"},{"type":"uint256","name":"season","internalType":"uint256"},{"type":"uint8","name":"state","internalType":"enum GameItemContract.MarketState"},{"type":"string","name":"metadataURL","internalType":"string"},{"type":"address","name":"hacker","internalType":"address"}],"name":"items","inputs":[{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"lastMintedTokenID","inputs":[]},{"type":"function","stateMutability":"payable","outputs":[],"name":"mintForUser","inputs":[{"type":"uint256","name":"_VLTokenID","internalType":"uint256"},{"type":"uint256","name":"_seasonID","internalType":"uint256"},{"type":"uint8","name":"_quality","internalType":"uint8"},{"type":"uint256","name":"_price","internalType":"uint256"},{"type":"string","name":"_metadataURL","internalType":"string"},{"type":"address","name":"receiver","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"mintFromCube","inputs":[{"type":"address","name":"_receiver","internalType":"address"},{"type":"uint256","name":"_VLTokenID","internalType":"uint256"},{"type":"uint256","name":"_seasonID","internalType":"uint256"},{"type":"uint8","name":"_DCQuality","internalType":"uint8"},{"type":"string","name":"_metadataURL","internalType":"string"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"ownerOf","inputs":[{"type":"uint256","name":"tokenId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"platformSettingsContractAddress","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"safeTransferFrom","inputs":[{"type":"address","name":"from","internalType":"address"},{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"tokenId","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"safeTransferFrom","inputs":[{"type":"address","name":"from","internalType":"address"},{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"tokenId","internalType":"uint256"},{"type":"bytes","name":"_data","internalType":"bytes"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setApprovalForAll","inputs":[{"type":"address","name":"operator","internalType":"address"},{"type":"bool","name":"approved","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setDecoderAddress","inputs":[{"type":"address","name":"_contractAddress","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setItemHacker","inputs":[{"type":"uint256","name":"_tokenID","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setValidatorLicenseAddress","inputs":[{"type":"address","name":"_contractAddress","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"supportsInterface","inputs":[{"type":"bytes4","name":"interfaceId","internalType":"bytes4"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"tokenByIndex","inputs":[{"type":"uint256","name":"index","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"tokenOfOwnerByIndex","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"uint256","name":"index","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"tokenURI","inputs":[{"type":"uint256","name":"_tokenID","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferFrom","inputs":[{"type":"address","name":"from","internalType":"address"},{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"tokenId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"validatorLicenseContractAddress","inputs":[]},{"type":"function","stateMutability":"pure","outputs":[{"type":"uint32","name":"","internalType":"uint32"}],"name":"version","inputs":[]},{"type":"receive","stateMutability":"payable"}]
              

Contract Creation Code

0x608060405234801561001057600080fd5b50613ad0806100206000396000f3fe6080604052600436106102325760003560e01c80636744be5d1161012d578063b88d4fde116100b0578063d615797211610077578063d615797214610709578063dcc67de914610729578063e34128e414610749578063e985e9c51461076a578063f52d779f146107b3578063f7d00423146107ed57005b8063b88d4fde14610655578063bfb231d214610675578063c0c53b8b146106a8578063c6a319fa146106c8578063c87b56dd146106e957005b806395d89b41116100f457806395d89b41146105ca57806396786ed4146105df5780639b1075c0146105ff578063a22cb46514610615578063a869f9931461063557005b80636744be5d1461053657806370a082311461055757806371ab618c146105775780637fa56211146105975780638c2a993e146105aa57005b806342842e0e116101b55780635686f69e1161017c5780635686f69e1461046e5780636236921e1461048e57806362848c0f146104bf5780636352211e146104f657806365d5a9d01461051657005b806342842e0e146103be57806342966c68146103de57806345bdac10146103fe5780634f6ccce71461043057806354fd4d501461045057005b806318160ddd116101f957806318160ddd1461032957806323b872dd1461033e5780632e1a09b31461035e5780632f745c591461037e5780633407fc511461039e57005b806301ffc9a71461023b578063036e7da11461027057806306fdde03146102af578063081812fc146102d1578063095ea7b31461030957005b3661023957005b005b34801561024757600080fd5b5061025b6102563660046131dc565b61080d565b60405190151581526020015b60405180910390f35b34801561027c57600080fd5b506102a161028b3660046131f9565b6000908152610102602052604090206003015490565b604051908152602001610267565b3480156102bb57600080fd5b506102c4610838565b604051610267919061326a565b3480156102dd57600080fd5b506102f16102ec3660046131f9565b6108ca565b6040516001600160a01b039091168152602001610267565b34801561031557600080fd5b50610239610324366004613292565b610964565b34801561033557600080fd5b506099546102a1565b34801561034a57600080fd5b506102396103593660046132be565b610a7a565b34801561036a57600080fd5b506102396103793660046132ff565b610aab565b34801561038a57600080fd5b506102a1610399366004613292565b610d75565b3480156103aa57600080fd5b5060fe546102f1906001600160a01b031681565b3480156103ca57600080fd5b506102396103d93660046132be565b610e0b565b3480156103ea57600080fd5b506102396103f93660046131f9565b610e26565b34801561040a57600080fd5b5061041e6104193660046131f9565b610e87565b60405160ff9091168152602001610267565b34801561043c57600080fd5b506102a161044b3660046131f9565b610eae565b34801561045c57600080fd5b50604051620f42448152602001610267565b34801561047a57600080fd5b5060ff546102f1906001600160a01b031681565b34801561049a57600080fd5b506102a16104a93660046131f9565b6000908152610102602052604090206001015490565b3480156104cb57600080fd5b506102f16104da3660046131f9565b600090815261010260205260409020546001600160a01b031690565b34801561050257600080fd5b506102f16105113660046131f9565b610f41565b34801561052257600080fd5b50610239610531366004613363565b610fb8565b34801561054257600080fd5b50610103546102f1906001600160a01b031681565b34801561056357600080fd5b506102a16105723660046132ff565b610ff7565b34801561058357600080fd5b506102396105923660046131f9565b61107e565b6102396105a53660046134ac565b6113cd565b3480156105b657600080fd5b506102396105c5366004613292565b6119c5565b3480156105d657600080fd5b506102c4611a98565b3480156105eb57600080fd5b506102396105fa36600461352a565b611aa7565b34801561060b57600080fd5b506102a160fd5481565b34801561062157600080fd5b50610239610630366004613564565b611af1565b34801561064157600080fd5b5061023961065036600461359d565b611afc565b34801561066157600080fd5b50610239610670366004613611565b611d15565b34801561068157600080fd5b506106956106903660046131f9565b611d4d565b60405161026797969594939291906136a7565b3480156106b457600080fd5b506102396106c336600461371b565b611e2e565b3480156106d457600080fd5b50610101546102f1906001600160a01b031681565b3480156106f557600080fd5b506102c46107043660046131f9565b611f6b565b34801561071557600080fd5b5061041e6107243660046131f9565b612066565b34801561073557600080fd5b506102396107443660046131f9565b61208d565b34801561075557600080fd5b50610100546102f1906001600160a01b031681565b34801561077657600080fd5b5061025b610785366004613766565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b3480156107bf57600080fd5b506102f16107ce3660046131f9565b600090815261010260205260409020600601546001600160a01b031690565b3480156107f957600080fd5b506102396108083660046132ff565b612152565b60006001600160e01b0319821663780e9d6360e01b14806108325750610832826123b9565b92915050565b60606065805461084790613794565b80601f016020809104026020016040519081016040528092919081815260200182805461087390613794565b80156108c05780601f10610895576101008083540402835291602001916108c0565b820191906000526020600020905b8154815290600101906020018083116108a357829003601f168201915b5050505050905090565b6000818152606760205260408120546001600160a01b03166109485760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b600061096f82610f41565b9050806001600160a01b0316836001600160a01b031614156109dd5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161093f565b336001600160a01b03821614806109f957506109f98133610785565b610a6b5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606482015260840161093f565b610a758383612409565b505050565b610a843382612477565b610aa05760405162461bcd60e51b815260040161093f906137cf565b610a7583838361256e565b610101546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b158015610af957600080fd5b505afa158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b319190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015610b6e57600080fd5b505afa158015610b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba69190613839565b80610ca75750610101546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b158015610bfa57600080fd5b505afa158015610c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c329190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015610c6f57600080fd5b505afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190613839565b610d5257610101546040805163a6b4321160e01b8152905133926001600160a01b03169163a6b43211916004808301926020929190829003018186803b158015610cf057600080fd5b505afa158015610d04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d289190613820565b6040516316b4d34b60e31b81526001600160a01b039092166004830152602482015260440161093f565b61010380546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d8083610ff7565b8210610de25760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161093f565b506001600160a01b03919091166000908152609760209081526040808320938352929052205490565b610a7583838360405180602001604052806000815250611d15565b33610e3082610f41565b6001600160a01b031614610e7b5733610e4882610f41565b60405163f604c2ef60e01b81526001600160a01b039283166004820152911660248201526044810182905260640161093f565b610e8481612719565b50565b6000818152610102602052604081206004015460ff16600281111561083257610832613691565b6000610eb960995490565b8210610f1c5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161093f565b60998281548110610f2f57610f2f613856565b90600052602060002001549050919050565b6000818152606760205260408120546001600160a01b0316806108325760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b606482015260840161093f565b60005b8151811015610a7557610fe783838381518110610fda57610fda613856565b6020026020010151610964565b610ff081613882565b9050610fbb565b60006001600160a01b0382166110625760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b606482015260840161093f565b506001600160a01b031660009081526068602052604090205490565b610101546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b1580156110cc57600080fd5b505afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111049190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561114157600080fd5b505afa158015611155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111799190613839565b8061127a5750610101546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b1580156111cd57600080fd5b505afa1580156111e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112059190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561124257600080fd5b505afa158015611256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127a9190613839565b6112c357610101546040805163a6b4321160e01b8152905133926001600160a01b03169163a6b43211916004808301926020929190829003018186803b158015610cf057600080fd5b610103546000906001600160a01b0316636352211e6112f2846000908152610102602052604090206001015490565b6040518263ffffffff1660e01b815260040161131091815260200190565b60206040518083038186803b15801561132857600080fd5b505afa15801561133c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611360919061389d565b6000838152610102602090815260409182902060060180546001600160a01b0319166001600160a01b0385169081179091558251868152918201529192507f8a3a14dacbb53f545e020304630c1255fcd812d52819ad6e2f6ca608c20e6aa7910160405180910390a15050565b61010160009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561141c57600080fd5b505afa158015611430573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114549190613839565b156114725760405163b5c05c3160e01b815260040160405180910390fd5b610101546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b1580156114c057600080fd5b505afa1580156114d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f89190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561153557600080fd5b505afa158015611549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156d9190613839565b8061166e5750610101546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b1580156115c157600080fd5b505afa1580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561163657600080fd5b505afa15801561164a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166e9190613839565b6116b757610101546040805163a6b4321160e01b8152905133926001600160a01b03169163a6b43211916004808301926020929190829003018186803b158015610cf057600080fd5b8234146116e057604051635928816d60e11b81523460048201526024810184905260440161093f565b610101546040805163220ce7e760e21b815290516000926001600160a01b0316916388339f9c916004808301926020929190829003018186803b15801561172657600080fd5b505afa15801561173a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175e919061389d565b90506000816001600160a01b03168560405160006040518083038185875af1925050503d80600081146117ad576040519150601f19603f3d011682016040523d82523d6000602084013e6117b2565b606091505b50509050806117ec57604051634eb3d3e160e11b81523060048201526001600160a01b03831660248201526044810186905260640161093f565b600060fd600081546117fd90613882565b9182905550610103546040516331a9108f60e11b8152600481018c90529192506000916001600160a01b0390911690636352211e9060240160206040518083038186803b15801561184d57600080fd5b505afa158015611861573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611885919061389d565b905061189185836127c0565b60008281526101026020526040902080546001600160a01b0319166001600160a01b03871617905560ff881660048111156118ce576118ce613691565b600083815261010260205260409020600201805460ff191660018360048111156118fa576118fa613691565b0217905550600082815261010260209081526040909120600181018c90556006810180546001600160a01b0319166001600160a01b03851617905587516119499260059092019189019061312d565b50600082815261010260209081526040918290206003018b9055815160ff8b1681529081018990526001600160a01b0383811682840152606082018d9052915184928816917f696d324a13be6af938c8cc2b09b3efd358159b398c7a04b9da02b7caee377257919081900360800190a350505050505050505050565b61010154604051633db50c8560e11b81523360048201526001600160a01b0390911690637b6a190a9060240160206040518083038186803b158015611a0957600080fd5b505afa158015611a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a419190613839565b611a8a576101015460408051635adfeef560e11b8152905133926001600160a01b03169163b5bfddea916004808301926020929190829003018186803b158015610cf057600080fd5b611a9482826127da565b5050565b60606066805461084790613794565b8060ff166002811115611abc57611abc613691565b600083815261010260205260409020600401805460ff19166001836002811115611ae857611ae8613691565b02179055505050565b611a94338383612928565b60fe546001600160a01b03163314801590611b22575060ff546001600160a01b03163314155b15611b425760405163e250604360e01b815233600482015260240161093f565b600060fd60008154611b5390613882565b9182905550610103546040516331a9108f60e11b8152600481018890529192506000916001600160a01b0390911690636352211e9060240160206040518083038186803b158015611ba357600080fd5b505afa158015611bb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdb919061389d565b9050611be787836127c0565b60008281526101026020526040902080546001600160a01b0319166001600160a01b03891617905560ff84166004811115611c2457611c24613691565b600083815261010260205260409020600201805460ff19166001836004811115611c5057611c50613691565b0217905550600082815261010260209081526040909120600181018890556006810180546001600160a01b0319166001600160a01b0385161790558451611c9f9260059092019186019061312d565b5060008281526101026020908152604091829020600301879055815160ff871681526001600160a01b03848116928201929092529182018890528391908916907f0916c07271eb54ee68eb9c4d3a156a965a6b981d04e63cec012d81c0c8562ce49060600160405180910390a350505050505050565b611d1f3383612477565b611d3b5760405162461bcd60e51b815260040161093f906137cf565b611d47848484846129f7565b50505050565b610102602052600090815260409020805460018201546002830154600384015460048501546005860180546001600160a01b0390961696949560ff9485169593949092169291611d9c90613794565b80601f0160208091040260200160405190810160405280929190818152602001828054611dc890613794565b8015611e155780601f10611dea57610100808354040283529160200191611e15565b820191906000526020600020905b815481529060010190602001808311611df857829003601f168201915b505050600690930154919250506001600160a01b031687565b600054610100900460ff1680611e47575060005460ff16155b611e635760405162461bcd60e51b815260040161093f906138ba565b600054610100900460ff16158015611e85576000805461ffff19166101011790555b611eca6040518060400160405280600981526020016847616d65204974656d60b81b81525060405180604001604052806002815260200161474960f01b815250612a2a565b611f156040518060400160405280601081526020016f11d85b59525d195b50dbdb9d1c9858dd60821b815250604051806040016040528060018152602001603160f81b815250612ab1565b60ff80546001600160a01b038087166001600160a01b03199283161790925561010180548684169083161790556101038054928516929091169190911790558015611d47576000805461ff001916905550505050565b60008181526101026020526040812060050180546060929190611f8d90613794565b80601f0160208091040260200160405190810160405280929190818152602001828054611fb990613794565b80156120065780601f10611fdb57610100808354040283529160200191612006565b820191906000526020600020905b815481529060010190602001808311611fe957829003601f168201915b50505050509050600081511161203457604051806060016040528060348152602001613a676034913961205f565b8061203e84612b12565b60405160200161204f929190613908565b6040516020818303038152906040525b9392505050565b6000818152610102602052604081206002015460ff16600481111561083257610832613691565b61010154604051633db50c8560e11b81523360048201526001600160a01b0390911690637b6a190a9060240160206040518083038186803b1580156120d157600080fd5b505afa1580156120e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121099190613839565b610e7b576101015460408051635adfeef560e11b8152905133926001600160a01b03169163b5bfddea916004808301926020929190829003018186803b158015610cf057600080fd5b610101546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b1580156121a057600080fd5b505afa1580156121b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d89190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561221557600080fd5b505afa158015612229573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224d9190613839565b8061234e5750610101546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b1580156122a157600080fd5b505afa1580156122b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d99190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561231657600080fd5b505afa15801561232a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234e9190613839565b61239757610101546040805163a6b4321160e01b8152905133926001600160a01b03169163a6b43211916004808301926020929190829003018186803b158015610cf057600080fd5b60fe80546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160e01b031982166380ac58cd60e01b14806123ea57506001600160e01b03198216635b5e139f60e01b145b8061083257506301ffc9a760e01b6001600160e01b0319831614610832565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061243e82610f41565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152606760205260408120546001600160a01b03166124f05760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161093f565b60006124fb83610f41565b9050806001600160a01b0316846001600160a01b031614806125365750836001600160a01b031661252b846108ca565b6001600160a01b0316145b8061256657506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b031661258182610f41565b6001600160a01b0316146125e95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b606482015260840161093f565b6001600160a01b03821661264b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161093f565b612656838383612c10565b612661600082612409565b6001600160a01b038316600090815260686020526040812080546001929061268a908490613937565b90915550506001600160a01b03821660009081526068602052604081208054600192906126b890849061394e565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061272482610f41565b905061273281600084612c10565b61273d600083612409565b6001600160a01b0381166000908152606860205260408120805460019290612766908490613937565b909155505060008281526067602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b611a94828260405180602001604052806000815250612c1b565b6001600160a01b0382166128305760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161093f565b6000818152606760205260409020546001600160a01b0316156128955760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161093f565b6128a160008383612c10565b6001600160a01b03821660009081526068602052604081208054600192906128ca90849061394e565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b816001600160a01b0316836001600160a01b0316141561298a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161093f565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612a0284848461256e565b612a0e84848484612c4e565b611d475760405162461bcd60e51b815260040161093f90613966565b600054610100900460ff1680612a43575060005460ff16155b612a5f5760405162461bcd60e51b815260040161093f906138ba565b600054610100900460ff16158015612a81576000805461ffff19166101011790555b612a89612d5b565b612a91612d5b565b612a9b8383612dc6565b8015610a75576000805461ff0019169055505050565b600054610100900460ff1680612aca575060005460ff16155b612ae65760405162461bcd60e51b815260040161093f906138ba565b600054610100900460ff16158015612b08576000805461ffff19166101011790555b612a9b8383612e5b565b606081612b365750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612b605780612b4a81613882565b9150612b599050600a836139ce565b9150612b3a565b60008167ffffffffffffffff811115612b7b57612b7b61331c565b6040519080825280601f01601f191660200182016040528015612ba5576020820181803683370190505b5090505b841561256657612bba600183613937565b9150612bc7600a866139e2565b612bd290603061394e565b60f81b818381518110612be757612be7613856565b60200101906001600160f81b031916908160001a905350612c09600a866139ce565b9450612ba9565b610a75838383612ee5565b612c2583836127da565b612c326000848484612c4e565b610a755760405162461bcd60e51b815260040161093f90613966565b60006001600160a01b0384163b15612d5057604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612c929033908990889088906004016139f6565b602060405180830381600087803b158015612cac57600080fd5b505af1925050508015612cdc575060408051601f3d908101601f19168201909252612cd991810190613a33565b60015b612d36573d808015612d0a576040519150601f19603f3d011682016040523d82523d6000602084013e612d0f565b606091505b508051612d2e5760405162461bcd60e51b815260040161093f90613966565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612566565b506001949350505050565b600054610100900460ff1680612d74575060005460ff16155b612d905760405162461bcd60e51b815260040161093f906138ba565b600054610100900460ff16158015612db2576000805461ffff19166101011790555b8015610e84576000805461ff001916905550565b600054610100900460ff1680612ddf575060005460ff16155b612dfb5760405162461bcd60e51b815260040161093f906138ba565b600054610100900460ff16158015612e1d576000805461ffff19166101011790555b8251612e3090606590602086019061312d565b508151612e4490606690602085019061312d565b508015610a75576000805461ff0019169055505050565b600054610100900460ff1680612e74575060005460ff16155b612e905760405162461bcd60e51b815260040161093f906138ba565b600054610100900460ff16158015612eb2576000805461ffff19166101011790555b825160208085019190912083519184019190912060c99190915560ca558015610a75576000805461ff0019169055505050565b6001600160a01b038316612f4057612f3b81609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b612f63565b816001600160a01b0316836001600160a01b031614612f6357612f638382612f9d565b6001600160a01b038216612f7a57610a758161303a565b826001600160a01b0316826001600160a01b031614610a7557610a7582826130e9565b60006001612faa84610ff7565b612fb49190613937565b600083815260986020526040902054909150808214613007576001600160a01b03841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b5060009182526098602090815260408084208490556001600160a01b039094168352609781528383209183525290812055565b60995460009061304c90600190613937565b6000838152609a60205260408120546099805493945090928490811061307457613074613856565b90600052602060002001549050806099838154811061309557613095613856565b6000918252602080832090910192909255828152609a909152604080822084905585825281205560998054806130cd576130cd613a50565b6001900381819060005260206000200160009055905550505050565b60006130f483610ff7565b6001600160a01b039093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b82805461313990613794565b90600052602060002090601f01602090048101928261315b57600085556131a1565b82601f1061317457805160ff19168380011785556131a1565b828001600101855582156131a1579182015b828111156131a1578251825591602001919060010190613186565b506131ad9291506131b1565b5090565b5b808211156131ad57600081556001016131b2565b6001600160e01b031981168114610e8457600080fd5b6000602082840312156131ee57600080fd5b813561205f816131c6565b60006020828403121561320b57600080fd5b5035919050565b60005b8381101561322d578181015183820152602001613215565b83811115611d475750506000910152565b60008151808452613256816020860160208601613212565b601f01601f19169290920160200192915050565b60208152600061205f602083018461323e565b6001600160a01b0381168114610e8457600080fd5b600080604083850312156132a557600080fd5b82356132b08161327d565b946020939093013593505050565b6000806000606084860312156132d357600080fd5b83356132de8161327d565b925060208401356132ee8161327d565b929592945050506040919091013590565b60006020828403121561331157600080fd5b813561205f8161327d565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561335b5761335b61331c565b604052919050565b6000806040838503121561337657600080fd5b82356133818161327d565b915060208381013567ffffffffffffffff8082111561339f57600080fd5b818601915086601f8301126133b357600080fd5b8135818111156133c5576133c561331c565b8060051b91506133d6848301613332565b81815291830184019184810190898411156133f057600080fd5b938501935b8385101561340e578435825293850193908501906133f5565b8096505050505050509250929050565b803560ff8116811461342f57600080fd5b919050565b600067ffffffffffffffff83111561344e5761344e61331c565b613461601f8401601f1916602001613332565b905082815283838301111561347557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261349d57600080fd5b61205f83833560208501613434565b60008060008060008060c087890312156134c557600080fd5b86359550602087013594506134dc6040880161341e565b935060608701359250608087013567ffffffffffffffff8111156134ff57600080fd5b61350b89828a0161348c565b92505060a087013561351c8161327d565b809150509295509295509295565b6000806040838503121561353d57600080fd5b8235915061354d6020840161341e565b90509250929050565b8015158114610e8457600080fd5b6000806040838503121561357757600080fd5b82356135828161327d565b9150602083013561359281613556565b809150509250929050565b600080600080600060a086880312156135b557600080fd5b85356135c08161327d565b945060208601359350604086013592506135dc6060870161341e565b9150608086013567ffffffffffffffff8111156135f857600080fd5b6136048882890161348c565b9150509295509295909350565b6000806000806080858703121561362757600080fd5b84356136328161327d565b935060208501356136428161327d565b925060408501359150606085013567ffffffffffffffff81111561366557600080fd5b8501601f8101871361367657600080fd5b61368587823560208401613434565b91505092959194509250565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03888116825260208201889052600090600588106136ce576136ce613691565b876040840152866060840152600386106136ea576136ea613691565b85608084015260e060a084015261370460e084018661323e565b915080841660c08401525098975050505050505050565b60008060006060848603121561373057600080fd5b833561373b8161327d565b9250602084013561374b8161327d565b9150604084013561375b8161327d565b809150509250925092565b6000806040838503121561377957600080fd5b82356137848161327d565b915060208301356135928161327d565b600181811c908216806137a857607f821691505b602082108114156137c957634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60006020828403121561383257600080fd5b5051919050565b60006020828403121561384b57600080fd5b815161205f81613556565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156138965761389661386c565b5060010190565b6000602082840312156138af57600080fd5b815161205f8161327d565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000835161391a818460208801613212565b83519083019061392e818360208801613212565b01949350505050565b6000828210156139495761394961386c565b500390565b600082198211156139615761396161386c565b500190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826139dd576139dd6139b8565b500490565b6000826139f1576139f16139b8565b500690565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613a299083018461323e565b9695505050505050565b600060208284031215613a4557600080fd5b815161205f816131c6565b634e487b7160e01b600052603160045260246000fdfe47616d654974656d436f6e74726163743a2054686572652069736e6074206d6574616461746120666f722074686973206974656da2646970667358221220548a8e863a661e2f12cbcab9c8e1dc21d5a77d9c9baf83e92c2b558fd985e4ae64736f6c63430008090033

Deployed ByteCode

0x6080604052600436106102325760003560e01c80636744be5d1161012d578063b88d4fde116100b0578063d615797211610077578063d615797214610709578063dcc67de914610729578063e34128e414610749578063e985e9c51461076a578063f52d779f146107b3578063f7d00423146107ed57005b8063b88d4fde14610655578063bfb231d214610675578063c0c53b8b146106a8578063c6a319fa146106c8578063c87b56dd146106e957005b806395d89b41116100f457806395d89b41146105ca57806396786ed4146105df5780639b1075c0146105ff578063a22cb46514610615578063a869f9931461063557005b80636744be5d1461053657806370a082311461055757806371ab618c146105775780637fa56211146105975780638c2a993e146105aa57005b806342842e0e116101b55780635686f69e1161017c5780635686f69e1461046e5780636236921e1461048e57806362848c0f146104bf5780636352211e146104f657806365d5a9d01461051657005b806342842e0e146103be57806342966c68146103de57806345bdac10146103fe5780634f6ccce71461043057806354fd4d501461045057005b806318160ddd116101f957806318160ddd1461032957806323b872dd1461033e5780632e1a09b31461035e5780632f745c591461037e5780633407fc511461039e57005b806301ffc9a71461023b578063036e7da11461027057806306fdde03146102af578063081812fc146102d1578063095ea7b31461030957005b3661023957005b005b34801561024757600080fd5b5061025b6102563660046131dc565b61080d565b60405190151581526020015b60405180910390f35b34801561027c57600080fd5b506102a161028b3660046131f9565b6000908152610102602052604090206003015490565b604051908152602001610267565b3480156102bb57600080fd5b506102c4610838565b604051610267919061326a565b3480156102dd57600080fd5b506102f16102ec3660046131f9565b6108ca565b6040516001600160a01b039091168152602001610267565b34801561031557600080fd5b50610239610324366004613292565b610964565b34801561033557600080fd5b506099546102a1565b34801561034a57600080fd5b506102396103593660046132be565b610a7a565b34801561036a57600080fd5b506102396103793660046132ff565b610aab565b34801561038a57600080fd5b506102a1610399366004613292565b610d75565b3480156103aa57600080fd5b5060fe546102f1906001600160a01b031681565b3480156103ca57600080fd5b506102396103d93660046132be565b610e0b565b3480156103ea57600080fd5b506102396103f93660046131f9565b610e26565b34801561040a57600080fd5b5061041e6104193660046131f9565b610e87565b60405160ff9091168152602001610267565b34801561043c57600080fd5b506102a161044b3660046131f9565b610eae565b34801561045c57600080fd5b50604051620f42448152602001610267565b34801561047a57600080fd5b5060ff546102f1906001600160a01b031681565b34801561049a57600080fd5b506102a16104a93660046131f9565b6000908152610102602052604090206001015490565b3480156104cb57600080fd5b506102f16104da3660046131f9565b600090815261010260205260409020546001600160a01b031690565b34801561050257600080fd5b506102f16105113660046131f9565b610f41565b34801561052257600080fd5b50610239610531366004613363565b610fb8565b34801561054257600080fd5b50610103546102f1906001600160a01b031681565b34801561056357600080fd5b506102a16105723660046132ff565b610ff7565b34801561058357600080fd5b506102396105923660046131f9565b61107e565b6102396105a53660046134ac565b6113cd565b3480156105b657600080fd5b506102396105c5366004613292565b6119c5565b3480156105d657600080fd5b506102c4611a98565b3480156105eb57600080fd5b506102396105fa36600461352a565b611aa7565b34801561060b57600080fd5b506102a160fd5481565b34801561062157600080fd5b50610239610630366004613564565b611af1565b34801561064157600080fd5b5061023961065036600461359d565b611afc565b34801561066157600080fd5b50610239610670366004613611565b611d15565b34801561068157600080fd5b506106956106903660046131f9565b611d4d565b60405161026797969594939291906136a7565b3480156106b457600080fd5b506102396106c336600461371b565b611e2e565b3480156106d457600080fd5b50610101546102f1906001600160a01b031681565b3480156106f557600080fd5b506102c46107043660046131f9565b611f6b565b34801561071557600080fd5b5061041e6107243660046131f9565b612066565b34801561073557600080fd5b506102396107443660046131f9565b61208d565b34801561075557600080fd5b50610100546102f1906001600160a01b031681565b34801561077657600080fd5b5061025b610785366004613766565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b3480156107bf57600080fd5b506102f16107ce3660046131f9565b600090815261010260205260409020600601546001600160a01b031690565b3480156107f957600080fd5b506102396108083660046132ff565b612152565b60006001600160e01b0319821663780e9d6360e01b14806108325750610832826123b9565b92915050565b60606065805461084790613794565b80601f016020809104026020016040519081016040528092919081815260200182805461087390613794565b80156108c05780601f10610895576101008083540402835291602001916108c0565b820191906000526020600020905b8154815290600101906020018083116108a357829003601f168201915b5050505050905090565b6000818152606760205260408120546001600160a01b03166109485760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b600061096f82610f41565b9050806001600160a01b0316836001600160a01b031614156109dd5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161093f565b336001600160a01b03821614806109f957506109f98133610785565b610a6b5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606482015260840161093f565b610a758383612409565b505050565b610a843382612477565b610aa05760405162461bcd60e51b815260040161093f906137cf565b610a7583838361256e565b610101546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b158015610af957600080fd5b505afa158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b319190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015610b6e57600080fd5b505afa158015610b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba69190613839565b80610ca75750610101546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b158015610bfa57600080fd5b505afa158015610c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c329190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b158015610c6f57600080fd5b505afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190613839565b610d5257610101546040805163a6b4321160e01b8152905133926001600160a01b03169163a6b43211916004808301926020929190829003018186803b158015610cf057600080fd5b505afa158015610d04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d289190613820565b6040516316b4d34b60e31b81526001600160a01b039092166004830152602482015260440161093f565b61010380546001600160a01b0319166001600160a01b0392909216919091179055565b6000610d8083610ff7565b8210610de25760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161093f565b506001600160a01b03919091166000908152609760209081526040808320938352929052205490565b610a7583838360405180602001604052806000815250611d15565b33610e3082610f41565b6001600160a01b031614610e7b5733610e4882610f41565b60405163f604c2ef60e01b81526001600160a01b039283166004820152911660248201526044810182905260640161093f565b610e8481612719565b50565b6000818152610102602052604081206004015460ff16600281111561083257610832613691565b6000610eb960995490565b8210610f1c5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161093f565b60998281548110610f2f57610f2f613856565b90600052602060002001549050919050565b6000818152606760205260408120546001600160a01b0316806108325760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b606482015260840161093f565b60005b8151811015610a7557610fe783838381518110610fda57610fda613856565b6020026020010151610964565b610ff081613882565b9050610fbb565b60006001600160a01b0382166110625760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b606482015260840161093f565b506001600160a01b031660009081526068602052604090205490565b610101546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b1580156110cc57600080fd5b505afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111049190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561114157600080fd5b505afa158015611155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111799190613839565b8061127a5750610101546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b1580156111cd57600080fd5b505afa1580156111e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112059190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561124257600080fd5b505afa158015611256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127a9190613839565b6112c357610101546040805163a6b4321160e01b8152905133926001600160a01b03169163a6b43211916004808301926020929190829003018186803b158015610cf057600080fd5b610103546000906001600160a01b0316636352211e6112f2846000908152610102602052604090206001015490565b6040518263ffffffff1660e01b815260040161131091815260200190565b60206040518083038186803b15801561132857600080fd5b505afa15801561133c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611360919061389d565b6000838152610102602090815260409182902060060180546001600160a01b0319166001600160a01b0385169081179091558251868152918201529192507f8a3a14dacbb53f545e020304630c1255fcd812d52819ad6e2f6ca608c20e6aa7910160405180910390a15050565b61010160009054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561141c57600080fd5b505afa158015611430573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114549190613839565b156114725760405163b5c05c3160e01b815260040160405180910390fd5b610101546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b1580156114c057600080fd5b505afa1580156114d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f89190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561153557600080fd5b505afa158015611549573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156d9190613839565b8061166e5750610101546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b1580156115c157600080fd5b505afa1580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561163657600080fd5b505afa15801561164a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166e9190613839565b6116b757610101546040805163a6b4321160e01b8152905133926001600160a01b03169163a6b43211916004808301926020929190829003018186803b158015610cf057600080fd5b8234146116e057604051635928816d60e11b81523460048201526024810184905260440161093f565b610101546040805163220ce7e760e21b815290516000926001600160a01b0316916388339f9c916004808301926020929190829003018186803b15801561172657600080fd5b505afa15801561173a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175e919061389d565b90506000816001600160a01b03168560405160006040518083038185875af1925050503d80600081146117ad576040519150601f19603f3d011682016040523d82523d6000602084013e6117b2565b606091505b50509050806117ec57604051634eb3d3e160e11b81523060048201526001600160a01b03831660248201526044810186905260640161093f565b600060fd600081546117fd90613882565b9182905550610103546040516331a9108f60e11b8152600481018c90529192506000916001600160a01b0390911690636352211e9060240160206040518083038186803b15801561184d57600080fd5b505afa158015611861573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611885919061389d565b905061189185836127c0565b60008281526101026020526040902080546001600160a01b0319166001600160a01b03871617905560ff881660048111156118ce576118ce613691565b600083815261010260205260409020600201805460ff191660018360048111156118fa576118fa613691565b0217905550600082815261010260209081526040909120600181018c90556006810180546001600160a01b0319166001600160a01b03851617905587516119499260059092019189019061312d565b50600082815261010260209081526040918290206003018b9055815160ff8b1681529081018990526001600160a01b0383811682840152606082018d9052915184928816917f696d324a13be6af938c8cc2b09b3efd358159b398c7a04b9da02b7caee377257919081900360800190a350505050505050505050565b61010154604051633db50c8560e11b81523360048201526001600160a01b0390911690637b6a190a9060240160206040518083038186803b158015611a0957600080fd5b505afa158015611a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a419190613839565b611a8a576101015460408051635adfeef560e11b8152905133926001600160a01b03169163b5bfddea916004808301926020929190829003018186803b158015610cf057600080fd5b611a9482826127da565b5050565b60606066805461084790613794565b8060ff166002811115611abc57611abc613691565b600083815261010260205260409020600401805460ff19166001836002811115611ae857611ae8613691565b02179055505050565b611a94338383612928565b60fe546001600160a01b03163314801590611b22575060ff546001600160a01b03163314155b15611b425760405163e250604360e01b815233600482015260240161093f565b600060fd60008154611b5390613882565b9182905550610103546040516331a9108f60e11b8152600481018890529192506000916001600160a01b0390911690636352211e9060240160206040518083038186803b158015611ba357600080fd5b505afa158015611bb7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdb919061389d565b9050611be787836127c0565b60008281526101026020526040902080546001600160a01b0319166001600160a01b03891617905560ff84166004811115611c2457611c24613691565b600083815261010260205260409020600201805460ff19166001836004811115611c5057611c50613691565b0217905550600082815261010260209081526040909120600181018890556006810180546001600160a01b0319166001600160a01b0385161790558451611c9f9260059092019186019061312d565b5060008281526101026020908152604091829020600301879055815160ff871681526001600160a01b03848116928201929092529182018890528391908916907f0916c07271eb54ee68eb9c4d3a156a965a6b981d04e63cec012d81c0c8562ce49060600160405180910390a350505050505050565b611d1f3383612477565b611d3b5760405162461bcd60e51b815260040161093f906137cf565b611d47848484846129f7565b50505050565b610102602052600090815260409020805460018201546002830154600384015460048501546005860180546001600160a01b0390961696949560ff9485169593949092169291611d9c90613794565b80601f0160208091040260200160405190810160405280929190818152602001828054611dc890613794565b8015611e155780601f10611dea57610100808354040283529160200191611e15565b820191906000526020600020905b815481529060010190602001808311611df857829003601f168201915b505050600690930154919250506001600160a01b031687565b600054610100900460ff1680611e47575060005460ff16155b611e635760405162461bcd60e51b815260040161093f906138ba565b600054610100900460ff16158015611e85576000805461ffff19166101011790555b611eca6040518060400160405280600981526020016847616d65204974656d60b81b81525060405180604001604052806002815260200161474960f01b815250612a2a565b611f156040518060400160405280601081526020016f11d85b59525d195b50dbdb9d1c9858dd60821b815250604051806040016040528060018152602001603160f81b815250612ab1565b60ff80546001600160a01b038087166001600160a01b03199283161790925561010180548684169083161790556101038054928516929091169190911790558015611d47576000805461ff001916905550505050565b60008181526101026020526040812060050180546060929190611f8d90613794565b80601f0160208091040260200160405190810160405280929190818152602001828054611fb990613794565b80156120065780601f10611fdb57610100808354040283529160200191612006565b820191906000526020600020905b815481529060010190602001808311611fe957829003601f168201915b50505050509050600081511161203457604051806060016040528060348152602001613a676034913961205f565b8061203e84612b12565b60405160200161204f929190613908565b6040516020818303038152906040525b9392505050565b6000818152610102602052604081206002015460ff16600481111561083257610832613691565b61010154604051633db50c8560e11b81523360048201526001600160a01b0390911690637b6a190a9060240160206040518083038186803b1580156120d157600080fd5b505afa1580156120e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121099190613839565b610e7b576101015460408051635adfeef560e11b8152905133926001600160a01b03169163b5bfddea916004808301926020929190829003018186803b158015610cf057600080fd5b610101546040805163a217fddf60e01b815290516001600160a01b03909216916391d1485491839163a217fddf91600480820192602092909190829003018186803b1580156121a057600080fd5b505afa1580156121b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d89190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561221557600080fd5b505afa158015612229573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224d9190613839565b8061234e5750610101546040805163a6b4321160e01b815290516001600160a01b03909216916391d1485491839163a6b4321191600480820192602092909190829003018186803b1580156122a157600080fd5b505afa1580156122b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d99190613820565b6040516001600160e01b031960e084901b168152600481019190915233602482015260440160206040518083038186803b15801561231657600080fd5b505afa15801561232a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234e9190613839565b61239757610101546040805163a6b4321160e01b8152905133926001600160a01b03169163a6b43211916004808301926020929190829003018186803b158015610cf057600080fd5b60fe80546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160e01b031982166380ac58cd60e01b14806123ea57506001600160e01b03198216635b5e139f60e01b145b8061083257506301ffc9a760e01b6001600160e01b0319831614610832565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061243e82610f41565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152606760205260408120546001600160a01b03166124f05760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161093f565b60006124fb83610f41565b9050806001600160a01b0316846001600160a01b031614806125365750836001600160a01b031661252b846108ca565b6001600160a01b0316145b8061256657506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b031661258182610f41565b6001600160a01b0316146125e95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b606482015260840161093f565b6001600160a01b03821661264b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161093f565b612656838383612c10565b612661600082612409565b6001600160a01b038316600090815260686020526040812080546001929061268a908490613937565b90915550506001600160a01b03821660009081526068602052604081208054600192906126b890849061394e565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061272482610f41565b905061273281600084612c10565b61273d600083612409565b6001600160a01b0381166000908152606860205260408120805460019290612766908490613937565b909155505060008281526067602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b611a94828260405180602001604052806000815250612c1b565b6001600160a01b0382166128305760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161093f565b6000818152606760205260409020546001600160a01b0316156128955760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161093f565b6128a160008383612c10565b6001600160a01b03821660009081526068602052604081208054600192906128ca90849061394e565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b816001600160a01b0316836001600160a01b0316141561298a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161093f565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612a0284848461256e565b612a0e84848484612c4e565b611d475760405162461bcd60e51b815260040161093f90613966565b600054610100900460ff1680612a43575060005460ff16155b612a5f5760405162461bcd60e51b815260040161093f906138ba565b600054610100900460ff16158015612a81576000805461ffff19166101011790555b612a89612d5b565b612a91612d5b565b612a9b8383612dc6565b8015610a75576000805461ff0019169055505050565b600054610100900460ff1680612aca575060005460ff16155b612ae65760405162461bcd60e51b815260040161093f906138ba565b600054610100900460ff16158015612b08576000805461ffff19166101011790555b612a9b8383612e5b565b606081612b365750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612b605780612b4a81613882565b9150612b599050600a836139ce565b9150612b3a565b60008167ffffffffffffffff811115612b7b57612b7b61331c565b6040519080825280601f01601f191660200182016040528015612ba5576020820181803683370190505b5090505b841561256657612bba600183613937565b9150612bc7600a866139e2565b612bd290603061394e565b60f81b818381518110612be757612be7613856565b60200101906001600160f81b031916908160001a905350612c09600a866139ce565b9450612ba9565b610a75838383612ee5565b612c2583836127da565b612c326000848484612c4e565b610a755760405162461bcd60e51b815260040161093f90613966565b60006001600160a01b0384163b15612d5057604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612c929033908990889088906004016139f6565b602060405180830381600087803b158015612cac57600080fd5b505af1925050508015612cdc575060408051601f3d908101601f19168201909252612cd991810190613a33565b60015b612d36573d808015612d0a576040519150601f19603f3d011682016040523d82523d6000602084013e612d0f565b606091505b508051612d2e5760405162461bcd60e51b815260040161093f90613966565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612566565b506001949350505050565b600054610100900460ff1680612d74575060005460ff16155b612d905760405162461bcd60e51b815260040161093f906138ba565b600054610100900460ff16158015612db2576000805461ffff19166101011790555b8015610e84576000805461ff001916905550565b600054610100900460ff1680612ddf575060005460ff16155b612dfb5760405162461bcd60e51b815260040161093f906138ba565b600054610100900460ff16158015612e1d576000805461ffff19166101011790555b8251612e3090606590602086019061312d565b508151612e4490606690602085019061312d565b508015610a75576000805461ff0019169055505050565b600054610100900460ff1680612e74575060005460ff16155b612e905760405162461bcd60e51b815260040161093f906138ba565b600054610100900460ff16158015612eb2576000805461ffff19166101011790555b825160208085019190912083519184019190912060c99190915560ca558015610a75576000805461ff0019169055505050565b6001600160a01b038316612f4057612f3b81609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b612f63565b816001600160a01b0316836001600160a01b031614612f6357612f638382612f9d565b6001600160a01b038216612f7a57610a758161303a565b826001600160a01b0316826001600160a01b031614610a7557610a7582826130e9565b60006001612faa84610ff7565b612fb49190613937565b600083815260986020526040902054909150808214613007576001600160a01b03841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b5060009182526098602090815260408084208490556001600160a01b039094168352609781528383209183525290812055565b60995460009061304c90600190613937565b6000838152609a60205260408120546099805493945090928490811061307457613074613856565b90600052602060002001549050806099838154811061309557613095613856565b6000918252602080832090910192909255828152609a909152604080822084905585825281205560998054806130cd576130cd613a50565b6001900381819060005260206000200160009055905550505050565b60006130f483610ff7565b6001600160a01b039093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b82805461313990613794565b90600052602060002090601f01602090048101928261315b57600085556131a1565b82601f1061317457805160ff19168380011785556131a1565b828001600101855582156131a1579182015b828111156131a1578251825591602001919060010190613186565b506131ad9291506131b1565b5090565b5b808211156131ad57600081556001016131b2565b6001600160e01b031981168114610e8457600080fd5b6000602082840312156131ee57600080fd5b813561205f816131c6565b60006020828403121561320b57600080fd5b5035919050565b60005b8381101561322d578181015183820152602001613215565b83811115611d475750506000910152565b60008151808452613256816020860160208601613212565b601f01601f19169290920160200192915050565b60208152600061205f602083018461323e565b6001600160a01b0381168114610e8457600080fd5b600080604083850312156132a557600080fd5b82356132b08161327d565b946020939093013593505050565b6000806000606084860312156132d357600080fd5b83356132de8161327d565b925060208401356132ee8161327d565b929592945050506040919091013590565b60006020828403121561331157600080fd5b813561205f8161327d565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561335b5761335b61331c565b604052919050565b6000806040838503121561337657600080fd5b82356133818161327d565b915060208381013567ffffffffffffffff8082111561339f57600080fd5b818601915086601f8301126133b357600080fd5b8135818111156133c5576133c561331c565b8060051b91506133d6848301613332565b81815291830184019184810190898411156133f057600080fd5b938501935b8385101561340e578435825293850193908501906133f5565b8096505050505050509250929050565b803560ff8116811461342f57600080fd5b919050565b600067ffffffffffffffff83111561344e5761344e61331c565b613461601f8401601f1916602001613332565b905082815283838301111561347557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261349d57600080fd5b61205f83833560208501613434565b60008060008060008060c087890312156134c557600080fd5b86359550602087013594506134dc6040880161341e565b935060608701359250608087013567ffffffffffffffff8111156134ff57600080fd5b61350b89828a0161348c565b92505060a087013561351c8161327d565b809150509295509295509295565b6000806040838503121561353d57600080fd5b8235915061354d6020840161341e565b90509250929050565b8015158114610e8457600080fd5b6000806040838503121561357757600080fd5b82356135828161327d565b9150602083013561359281613556565b809150509250929050565b600080600080600060a086880312156135b557600080fd5b85356135c08161327d565b945060208601359350604086013592506135dc6060870161341e565b9150608086013567ffffffffffffffff8111156135f857600080fd5b6136048882890161348c565b9150509295509295909350565b6000806000806080858703121561362757600080fd5b84356136328161327d565b935060208501356136428161327d565b925060408501359150606085013567ffffffffffffffff81111561366557600080fd5b8501601f8101871361367657600080fd5b61368587823560208401613434565b91505092959194509250565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03888116825260208201889052600090600588106136ce576136ce613691565b876040840152866060840152600386106136ea576136ea613691565b85608084015260e060a084015261370460e084018661323e565b915080841660c08401525098975050505050505050565b60008060006060848603121561373057600080fd5b833561373b8161327d565b9250602084013561374b8161327d565b9150604084013561375b8161327d565b809150509250925092565b6000806040838503121561377957600080fd5b82356137848161327d565b915060208301356135928161327d565b600181811c908216806137a857607f821691505b602082108114156137c957634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60006020828403121561383257600080fd5b5051919050565b60006020828403121561384b57600080fd5b815161205f81613556565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156138965761389661386c565b5060010190565b6000602082840312156138af57600080fd5b815161205f8161327d565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000835161391a818460208801613212565b83519083019061392e818360208801613212565b01949350505050565b6000828210156139495761394961386c565b500390565b600082198211156139615761396161386c565b500190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826139dd576139dd6139b8565b500490565b6000826139f1576139f16139b8565b500690565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613a299083018461323e565b9695505050505050565b600060208284031215613a4557600080fd5b815161205f816131c6565b634e487b7160e01b600052603160045260246000fdfe47616d654974656d436f6e74726163743a2054686572652069736e6074206d6574616461746120666f722074686973206974656da2646970667358221220548a8e863a661e2f12cbcab9c8e1dc21d5a77d9c9baf83e92c2b558fd985e4ae64736f6c63430008090033