Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 48 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
House Withdraw | 18719665 | 417 days ago | IN | 0 ETH | 0.00261783 | ||||
Withdraw | 18714354 | 417 days ago | IN | 0 ETH | 0.00192053 | ||||
Invite House | 18687668 | 421 days ago | IN | 0 ETH | 0.00278019 | ||||
Create Game | 18687667 | 421 days ago | IN | 0 ETH | 0.00622608 | ||||
Deposit | 18687657 | 421 days ago | IN | 0 ETH | 0.00296527 | ||||
Withdraw | 18655818 | 426 days ago | IN | 0 ETH | 0.00092189 | ||||
Invite House | 18653284 | 426 days ago | IN | 0 ETH | 0.0012114 | ||||
Create Game | 18653282 | 426 days ago | IN | 0 ETH | 0.00291746 | ||||
Deposit | 18653264 | 426 days ago | IN | 0 ETH | 0.00132733 | ||||
Withdraw | 18647812 | 427 days ago | IN | 0 ETH | 0.00087912 | ||||
Withdraw | 18647809 | 427 days ago | IN | 0 ETH | 0.00102613 | ||||
Deposit | 18647727 | 427 days ago | IN | 0 ETH | 0.00111501 | ||||
Deposit | 18647726 | 427 days ago | IN | 0 ETH | 0.00118125 | ||||
Deposit | 18647720 | 427 days ago | IN | 0 ETH | 0.00166297 | ||||
Withdraw | 18644439 | 427 days ago | IN | 0 ETH | 0.00150115 | ||||
Join Game | 18642071 | 428 days ago | IN | 0 ETH | 0.00248162 | ||||
Create Game | 18641947 | 428 days ago | IN | 0 ETH | 0.00443575 | ||||
Deposit | 18641915 | 428 days ago | IN | 0 ETH | 0.00143833 | ||||
Cancel Game | 18641887 | 428 days ago | IN | 0 ETH | 0.00130891 | ||||
Cancel Game | 18641885 | 428 days ago | IN | 0 ETH | 0.00130076 | ||||
Cancel Game | 18641882 | 428 days ago | IN | 0 ETH | 0.00124196 | ||||
Invite House | 18641854 | 428 days ago | IN | 0 ETH | 0.0021748 | ||||
Create Game | 18641848 | 428 days ago | IN | 0 ETH | 0.00536709 | ||||
Create Game | 18641833 | 428 days ago | IN | 0 ETH | 0.00551585 | ||||
Create Game | 18641827 | 428 days ago | IN | 0 ETH | 0.00466469 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
KEKW_Casino
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-17 */ // SPDX-License-Identifier: MIT // KEKW Casino Contract: 16 November 2023 // Version: 1.1 // Website: https://kekw.gg/ // telegram: https://t.me/kekw_gg // X.com/Twtter: https://x.com/kekw_gg // Token: ($KEKW) 0x0DF596AD12F927e41EC317AF7DD666cA3574845f // Uniswap: https://app.uniswap.org/swap?outputCurrency=0x0DF596AD12F927e41EC317AF7DD666cA3574845f // Dextools: https://www.dextools.io/app/en/ether/pair-explorer/0x14ba508aaf2c15231f9df265980d1d461e54192b pragma solidity ^0.8.18; interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address from, address to, uint256 amount ) external returns (bool); } error BetTooHigh(uint256 maximumBet); contract KEKW_Casino { IERC20 public token; address public manager; mapping(address => uint256) public casinoBalances; uint256 MAX_INT = 115792089237316195423570985008687907853269984665640564039457584007913129639935; struct Game { uint256 index; // servers as Id uint256 betAmount; uint256 totalBetAmount; address player1; address player2; address winner; address gameContractAddress; string player1Outcome; string player2Outcome; } Game[] public games; address[] public gameContracts; uint256 public winnerPercentage = 95; uint256 public casinoPercentage = 3; uint256 public devPercentage = 100 - winnerPercentage - casinoPercentage; event GameCreated(uint256 gameIndex, uint256 betAmount); event GameJoined(uint256 gameIndex, address playerAddress); event GameCanceled(uint256 gameIndex); event GameLeft(uint256 gameIndex, address playerAddress); constructor(address _token) { manager = msg.sender; token = IERC20(_token); } function addNewGameContrtact(address _gameContract) public restricted { gameContracts.push(_gameContract); } function removeGameContract(uint256 _gameContractIndex) public restricted { if (_gameContractIndex >= gameContracts.length) return; for ( uint256 i = _gameContractIndex; i < gameContracts.length - 1; i++ ) { gameContracts[i] = gameContracts[i + 1]; } gameContracts.pop(); } function updateFees( uint256 _winnerFees, uint256 _casinoFees, uint256 _devFees ) public restricted { require( (_winnerFees + _devFees + _casinoFees) == 100, "Total should be 100." ); winnerPercentage = _winnerFees; devPercentage = _devFees; casinoPercentage = _casinoFees; } function getSmartContractBalance() external view returns (uint256) { return token.balanceOf(address(this)); } function getPlayersCasinoBalanace(address playerAddress) external view returns (uint256) { return casinoBalances[playerAddress]; } function deposit(uint256 _amount) public { require(_amount > 0, "Minimum Amount should be greater than 0."); token.transferFrom(msg.sender, address(this), _amount); casinoBalances[msg.sender] += _amount; } function withdraw(uint256 _amount) public { require( casinoBalances[msg.sender] >= _amount, "You can't withdraw more than your balance." ); token.transfer(msg.sender, _amount); casinoBalances[msg.sender] -= _amount; } function donate(uint256 _amount) public { require(_amount > 0, "Minimum Amount should be greater than 0."); token.transferFrom(msg.sender, address(this), _amount); casinoBalances[address(this)] += _amount; } function houseWithdraw(uint256 _amount) public restricted { require( casinoBalances[address(this)] >= _amount, "You can't withdraw more than your balance." ); token.transfer(manager, _amount); casinoBalances[address(this)] -= _amount; } function createGame(uint256 _betAmount, address _gameContractAddress) public { require(_betAmount > 0, "Bet Amount should be greater than 0."); require( existingGameContract(_gameContractAddress), "Invalid Game contract." ); Game storage game = games.push(); uint256 _index = games.length - 1; game.index = _index; game.betAmount = _betAmount; game.gameContractAddress = _gameContractAddress; game.player1 = msg.sender; casinoBalances[msg.sender] -= _betAmount; game.totalBetAmount += _betAmount; emit GameCreated(_index, _betAmount); } function cancelGame(uint256 _index) public { require(_index >= 0, "Index should be greater than 0."); Game storage game = games[_index]; require(game.winner == address(0), "Game already Played."); require( game.player1 == msg.sender, "Game creator can only cancel the game." ); require( game.totalBetAmount > 0, "total bet amount should not be zero." ); require(game.betAmount > 0, "bet amount should not be zero."); if (game.player2 != address(0)) { game.totalBetAmount -= game.betAmount; casinoBalances[game.player2] += game.betAmount; } game.totalBetAmount -= game.betAmount; casinoBalances[game.player1] += game.betAmount; game.player1 = address(0); game.player2 = address(0); emit GameCanceled(_index); } function ensureGameIsNotPlayed(uint256 _index) public view returns (Game memory) { require(_index >= 0, "Index should be greater than 0."); Game memory game = games[_index]; require(game.betAmount > 0, "Bet is played or canceled."); require(game.totalBetAmount > 0, "Bet is played or canceled."); require(game.winner == address(0), "Game already Played."); require(game.player1 != address(0), "Player1 shuld join the game."); require(game.player2 != address(0), "Player2 shuld join the game."); return game; } function getUnplayedGames() public view returns (Game[] memory) { Game[] memory unPlayedGames = new Game[](games.length); uint256 count = 0; for (uint256 i = 0; i < games.length; i++) { if ( games[i].betAmount > 0 && games[i].totalBetAmount > 0 && games[i].winner == address(0) && games[i].player2 == address(0) && games[i].player1 != address(0) ) { unPlayedGames[count] = games[i]; count++; } } // Resize the array to remove any empty slots assembly { mstore(unPlayedGames, count) } return unPlayedGames; } function joinGame(uint256 _index) public { require(_index >= 0, "Index should be greater than 0."); Game storage game = games[_index]; require(game.player1 != address(0), "Game is Canceled."); require(game.winner == address(0), "Game has ended."); require(game.player2 == address(0), "Game is full now."); require( casinoBalances[msg.sender] >= game.betAmount, "You do not have enough balance to join game." ); casinoBalances[msg.sender] -= game.betAmount; game.player2 = msg.sender; game.totalBetAmount += game.betAmount; emit GameJoined(_index, msg.sender); } function leaveGame(uint256 _index) public { require(_index >= 0, "Index should be greater than 0."); Game storage game = games[_index]; require(game.totalBetAmount > 0, "Bet is reset."); require(game.betAmount > 0, "Bet is reset."); require(game.winner == address(0), "Game has ended."); require(game.player2 == msg.sender, "You haven't joined this game."); game.player2 = address(0); game.totalBetAmount -= game.betAmount; casinoBalances[msg.sender] += game.betAmount; emit GameLeft(_index, msg.sender); } function inviteHouse(uint256 _index) public { require(_index >= 0, "Index should be greater than 0."); Game storage game = games[_index]; require( game.player1 == msg.sender, "Game creator can only invite house to play." ); require(game.winner == address(0), "Game has ended."); require(game.player2 == address(0), "Game is full now."); require( casinoBalances[address(this)] >= game.betAmount, "House does not have enough balance to join game." ); uint256 maximumBet = (casinoBalances[address(this)] * 1) / 100; if (game.betAmount > maximumBet) { // https://soliditylang.org/blog/2021/04/21/custom-errors/ revert BetTooHigh({maximumBet: maximumBet}); } casinoBalances[address(this)] -= game.betAmount; game.player2 = address(this); game.totalBetAmount += game.betAmount; emit GameJoined(_index, address(this)); } function existingGameContract(address _gameContract) public view returns (bool) { for (uint256 i = 0; i < gameContracts.length; i++) { if (gameContracts[i] == _gameContract) { return true; } } return false; } function winnerCallback( uint256 gameIndex, address winnerAddress, string memory _player1Outcome, string memory _player2Outcome ) public { require( existingGameContract(msg.sender), "You are not Authorized Game Contract Address." ); require(gameIndex >= 0, "Invalid Game."); Game storage game = games[gameIndex]; require(game.player1 != address(0), "Player1 shuld join the game."); require(game.player2 != address(0), "Player2 shuld join the game."); require(game.winner == address(0), "Game already Played."); require( game.gameContractAddress == msg.sender, "Game type is not correct." ); game.player1Outcome = _player1Outcome; game.player2Outcome = _player2Outcome; casinoBalances[manager] += (game.totalBetAmount * devPercentage) / 100; casinoBalances[address(this)] += (game.totalBetAmount * casinoPercentage) / 100; game.winner = winnerAddress; casinoBalances[winnerAddress] += ((game.totalBetAmount * winnerPercentage) / 100); game.totalBetAmount = 0; } modifier restricted() { require(msg.sender == manager); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"maximumBet","type":"uint256"}],"name":"BetTooHigh","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"gameIndex","type":"uint256"}],"name":"GameCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"gameIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"betAmount","type":"uint256"}],"name":"GameCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"gameIndex","type":"uint256"},{"indexed":false,"internalType":"address","name":"playerAddress","type":"address"}],"name":"GameJoined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"gameIndex","type":"uint256"},{"indexed":false,"internalType":"address","name":"playerAddress","type":"address"}],"name":"GameLeft","type":"event"},{"inputs":[{"internalType":"address","name":"_gameContract","type":"address"}],"name":"addNewGameContrtact","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"cancelGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"casinoBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"casinoPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_betAmount","type":"uint256"},{"internalType":"address","name":"_gameContractAddress","type":"address"}],"name":"createGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"donate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"ensureGameIsNotPlayed","outputs":[{"components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"betAmount","type":"uint256"},{"internalType":"uint256","name":"totalBetAmount","type":"uint256"},{"internalType":"address","name":"player1","type":"address"},{"internalType":"address","name":"player2","type":"address"},{"internalType":"address","name":"winner","type":"address"},{"internalType":"address","name":"gameContractAddress","type":"address"},{"internalType":"string","name":"player1Outcome","type":"string"},{"internalType":"string","name":"player2Outcome","type":"string"}],"internalType":"struct KEKW_Casino.Game","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_gameContract","type":"address"}],"name":"existingGameContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"gameContracts","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"games","outputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"betAmount","type":"uint256"},{"internalType":"uint256","name":"totalBetAmount","type":"uint256"},{"internalType":"address","name":"player1","type":"address"},{"internalType":"address","name":"player2","type":"address"},{"internalType":"address","name":"winner","type":"address"},{"internalType":"address","name":"gameContractAddress","type":"address"},{"internalType":"string","name":"player1Outcome","type":"string"},{"internalType":"string","name":"player2Outcome","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"playerAddress","type":"address"}],"name":"getPlayersCasinoBalanace","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSmartContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnplayedGames","outputs":[{"components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"betAmount","type":"uint256"},{"internalType":"uint256","name":"totalBetAmount","type":"uint256"},{"internalType":"address","name":"player1","type":"address"},{"internalType":"address","name":"player2","type":"address"},{"internalType":"address","name":"winner","type":"address"},{"internalType":"address","name":"gameContractAddress","type":"address"},{"internalType":"string","name":"player1Outcome","type":"string"},{"internalType":"string","name":"player2Outcome","type":"string"}],"internalType":"struct KEKW_Casino.Game[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"houseWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"inviteHouse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"joinGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"leaveGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_gameContractIndex","type":"uint256"}],"name":"removeGameContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_winnerFees","type":"uint256"},{"internalType":"uint256","name":"_casinoFees","type":"uint256"},{"internalType":"uint256","name":"_devFees","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gameIndex","type":"uint256"},{"internalType":"address","name":"winnerAddress","type":"address"},{"internalType":"string","name":"_player1Outcome","type":"string"},{"internalType":"string","name":"_player2Outcome","type":"string"}],"name":"winnerCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"winnerPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600355605f6006556003600755600754600654606462000046919062000149565b62000052919062000149565b6008553480156200006257600080fd5b5060405162005027380380620050278339818101604052810190620000889190620001ee565b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000220565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620001568262000110565b9150620001638362000110565b92508282039050818111156200017e576200017d6200011a565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001b68262000189565b9050919050565b620001c881620001a9565b8114620001d457600080fd5b50565b600081519050620001e881620001bd565b92915050565b60006020828403121562000207576200020662000184565b5b60006200021784828501620001d7565b91505092915050565b614df780620002306000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80638c01d16d116100de578063c449731b11610097578063efaa55a011610071578063efaa55a014610487578063f14faf6f146104a3578063fa638764146104bf578063fc0c546a146104db5761018e565b8063c449731b1461040b578063cd3b356e14610427578063d8bfcf96146104575761018e565b80638c01d16d1461035d578063a169f86f14610379578063a43f15d814610397578063a4a2ca80146103b3578063b6b55f25146103d1578063c3a43824146103ed5761018e565b80633ea112221161014b5780635145cbc0116101255780635145cbc0146102e957806369958ab9146103075780637a1126f01461032357806382b98f9d1461033f5761018e565b80633ea11222146102935780633feef58a146102af578063481c6a75146102cb5761018e565b8063027b7d5b14610193578063117a5b90146101c35780631a1dd086146101fb578063224290851461022b5780632c32bde0146102475780632e1a7d4d14610277575b600080fd5b6101ad60048036038101906101a891906133f7565b6104f9565b6040516101ba91906135d0565b60405180910390f35b6101dd60048036038101906101d891906133f7565b610a01565b6040516101f29998979695949392919061365a565b60405180910390f35b61021560048036038101906102109190613721565b610bef565b6040516102229190613769565b60405180910390f35b61024560048036038101906102409190613784565b610c9d565b005b610261600480360381019061025c9190613721565b610d6a565b60405161026e91906137d7565b60405180910390f35b610291600480360381019061028c91906133f7565b610d82565b005b6102ad60048036038101906102a891906137f2565b610efc565b005b6102c960048036038101906102c491906133f7565b611109565b005b6102d3611420565b6040516102e09190613832565b60405180910390f35b6102f1611446565b6040516102fe91906137d7565b60405180910390f35b610321600480360381019061031c91906133f7565b6114e8565b005b61033d600480360381019061033891906133f7565b61195b565b005b610347611b51565b60405161035491906137d7565b60405180910390f35b610377600480360381019061037291906133f7565b611b57565b005b610381611ce3565b60405161038e91906139db565b60405180910390f35b6103b160048036038101906103ac91906133f7565b61223e565b005b6103bb612685565b6040516103c891906137d7565b60405180910390f35b6103eb60048036038101906103e691906133f7565b61268b565b005b6103f56127c8565b60405161040291906137d7565b60405180910390f35b61042560048036038101906104209190613b32565b6127ce565b005b610441600480360381019061043c91906133f7565b612cbe565b60405161044e9190613832565b60405180910390f35b610471600480360381019061046c9190613721565b612cfd565b60405161047e91906137d7565b60405180910390f35b6104a1600480360381019061049c91906133f7565b612d46565b005b6104bd60048036038101906104b891906133f7565b6130e8565b005b6104d960048036038101906104d49190613721565b613225565b005b6104e36132e5565b6040516104f09190613c30565b60405180910390f35b610501613309565b6000821015610545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053c90613c97565b60405180910390fd5b60006004838154811061055b5761055a613cb7565b5b9060005260206000209060090201604051806101200160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820180546106fb90613d15565b80601f016020809104026020016040519081016040528092919081815260200182805461072790613d15565b80156107745780601f1061074957610100808354040283529160200191610774565b820191906000526020600020905b81548152906001019060200180831161075757829003601f168201915b5050505050815260200160088201805461078d90613d15565b80601f01602080910402602001604051908101604052809291908181526020018280546107b990613d15565b80156108065780601f106107db57610100808354040283529160200191610806565b820191906000526020600020905b8154815290600101906020018083116107e957829003601f168201915b50505050508152505090506000816020015111610858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084f90613d92565b60405180910390fd5b600081604001511161089f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089690613d92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160a0015173ffffffffffffffffffffffffffffffffffffffff1614610912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090990613dfe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff1603610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097c90613e6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16816080015173ffffffffffffffffffffffffffffffffffffffff16036109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef90613ed6565b60405180910390fd5b80915050919050565b60048181548110610a1157600080fd5b90600052602060002090600902016000915090508060000154908060010154908060020154908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806007018054610ade90613d15565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0a90613d15565b8015610b575780601f10610b2c57610100808354040283529160200191610b57565b820191906000526020600020905b815481529060010190602001808311610b3a57829003601f168201915b505050505090806008018054610b6c90613d15565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9890613d15565b8015610be55780601f10610bba57610100808354040283529160200191610be5565b820191906000526020600020905b815481529060010190602001808311610bc857829003601f168201915b5050505050905089565b600080600090505b600580549050811015610c92578273ffffffffffffffffffffffffffffffffffffffff1660058281548110610c2f57610c2e613cb7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c7f576001915050610c98565b8080610c8a90613f25565b915050610bf7565b50600090505b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cf757600080fd5b6064828285610d069190613f6d565b610d109190613f6d565b14610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4790613fed565b60405180910390fd5b826006819055508060088190555081600781905550505050565b60026020528060005260406000206000915090505481565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb9061407f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610e5f92919061409f565b6020604051808303816000875af1158015610e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea291906140f4565b5080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ef29190614121565b9250508190555050565b60008211610f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f36906141c7565b60405180910390fd5b610f4881610bef565b610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e90614233565b60405180910390fd5b60006004600181600181540180825580915050039060005260206000209060090201905060006001600480549050610fbf9190614121565b9050808260000181905550838260010181905550828260060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550338260030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110a89190614121565b92505081905550838260020160008282546110c39190613f6d565b925050819055507fa26856d25e558c79e1632806bc6824075cf59885a115825f2aab62385a3f714281856040516110fb929190614253565b60405180910390a150505050565b600081101561114d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114490613c97565b60405180910390fd5b60006004828154811061116357611162613cb7565b5b9060005260206000209060090201905060008160020154116111ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b1906142c8565b60405180910390fd5b6000816001015411611201576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f8906142c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b90614334565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131d906143a0565b60405180910390fd5b60008160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600101548160020160008282546113829190614121565b925050819055508060010154600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113dc9190613f6d565b925050819055507f601fc33e47b454ed8aee9a1e0d7ed7add91efc6b3398783e1944bbd1f50a258382336040516114149291906143c0565b60405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114a29190613832565b602060405180830381865afa1580156114bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e391906143fe565b905090565b600081101561152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390613c97565b60405180910390fd5b60006004828154811061154257611541613cb7565b5b90600052602060002090600902019050600073ffffffffffffffffffffffffffffffffffffffff168160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc90613dfe565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166e9061449d565b60405180910390fd5b60008160020154116116be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b59061452f565b60405180910390fd5b6000816001015411611705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fc9061459b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fb5780600101548160020160008282546117759190614121565b925050819055508060010154600260008360040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117f39190613f6d565b925050819055505b80600101548160020160008282546118139190614121565b925050819055508060010154600260008360030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118919190613f6d565b9250508190555060008160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f8f1ffb72cf9e5acc4eddafab2be9e2951d12377b9e1e4bdc7bd686b19c91fd898260405161194f91906137d7565b60405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119b557600080fd5b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2e9061407f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611ab492919061409f565b6020604051808303816000875af1158015611ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af791906140f4565b5080600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b479190614121565b9250508190555050565b60065481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bb157600080fd5b600580549050811015611ce05760008190505b6001600580549050611bd69190614121565b811015611c97576005600182611bec9190613f6d565b81548110611bfd57611bfc613cb7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611c3c57611c3b613cb7565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080611c8f90613f25565b915050611bc4565b506005805480611caa57611ca96145bb565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590555b50565b6060600060048054905067ffffffffffffffff811115611d0657611d05613a07565b5b604051908082528060200260200182016040528015611d3f57816020015b611d2c613309565b815260200190600190039081611d245790505b5090506000805b60048054905081101561223257600060048281548110611d6957611d68613cb7565b5b906000526020600020906009020160010154118015611dad5750600060048281548110611d9957611d98613cb7565b5b906000526020600020906009020160020154115b8015611e2a5750600073ffffffffffffffffffffffffffffffffffffffff1660048281548110611de057611ddf613cb7565b5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8015611ea75750600073ffffffffffffffffffffffffffffffffffffffff1660048281548110611e5d57611e5c613cb7565b5b906000526020600020906009020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8015611f255750600073ffffffffffffffffffffffffffffffffffffffff1660048281548110611eda57611ed9613cb7565b5b906000526020600020906009020160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561221f5760048181548110611f3e57611f3d613cb7565b5b9060005260206000209060090201604051806101200160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820180546120de90613d15565b80601f016020809104026020016040519081016040528092919081815260200182805461210a90613d15565b80156121575780601f1061212c57610100808354040283529160200191612157565b820191906000526020600020905b81548152906001019060200180831161213a57829003601f168201915b5050505050815260200160088201805461217090613d15565b80601f016020809104026020016040519081016040528092919081815260200182805461219c90613d15565b80156121e95780601f106121be576101008083540402835291602001916121e9565b820191906000526020600020905b8154815290600101906020018083116121cc57829003601f168201915b50505050508152505083838151811061220557612204613cb7565b5b6020026020010181905250818061221b90613f25565b9250505b808061222a90613f25565b915050611d46565b50808252819250505090565b6000811015612282576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227990613c97565b60405180910390fd5b60006004828154811061229857612297613cb7565b5b906000526020600020906009020190503373ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461233a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123319061465c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c490614334565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612460576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612457906146c8565b60405180910390fd5b8060010154600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156124e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124dd9061475a565b60405180910390fd5b600060646001600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612536919061477a565b61254091906147eb565b9050808260010154111561258b57806040517f33028ba000000000000000000000000000000000000000000000000000000000815260040161258291906137d7565b60405180910390fd5b8160010154600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125de9190614121565b92505081905550308260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600101548260020160008282546126409190613f6d565b925050819055507f45c4f9cbafe186141862608c493f28b823fde4c2142bedc3f5169961a73fdd2283306040516126789291906143c0565b60405180910390a1505050565b60075481565b600081116126ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c59061488e565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161272b939291906148ae565b6020604051808303816000875af115801561274a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276e91906140f4565b5080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127be9190613f6d565b9250508190555050565b60085481565b6127d733610bef565b612816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280d90614957565b60405180910390fd5b600084101561285a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612851906149c3565b60405180910390fd5b6000600485815481106128705761286f613cb7565b5b90600052602060002090600902019050600073ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290a90613e6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036129a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299d90613ed6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3090613dfe565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac290614a2f565b60405180910390fd5b82816007019081612adc9190614bf1565b5081816008019081612aee9190614bf1565b5060646008548260020154612b03919061477a565b612b0d91906147eb565b60026000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b7d9190613f6d565b9250508190555060646007548260020154612b98919061477a565b612ba291906147eb565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bf09190613f6d565b92505081905550838160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060646006548260020154612c4e919061477a565b612c5891906147eb565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ca69190613f6d565b92505081905550600081600201819055505050505050565b60058181548110612cce57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000811015612d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8190613c97565b60405180910390fd5b600060048281548110612da057612d9f613cb7565b5b90600052602060002090600902019050600073ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3a90614d0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecd90614334565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f60906146c8565b60405180910390fd5b8060010154600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fe690614da1565b60405180910390fd5b8060010154600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130429190614121565b92505081905550338160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600101548160020160008282546130a49190613f6d565b925050819055507f45c4f9cbafe186141862608c493f28b823fde4c2142bedc3f5169961a73fdd2282336040516130dc9291906143c0565b60405180910390a15050565b6000811161312b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131229061488e565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401613188939291906148ae565b6020604051808303816000875af11580156131a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131cb91906140f4565b5080600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461321b9190613f6d565b9250508190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461327f57600080fd5b6005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b604051806101200160405280600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081525090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6133d4816133c1565b81146133df57600080fd5b50565b6000813590506133f1816133cb565b92915050565b60006020828403121561340d5761340c6133b7565b5b600061341b848285016133e2565b91505092915050565b61342d816133c1565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061345e82613433565b9050919050565b61346e81613453565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134ae578082015181840152602081019050613493565b60008484015250505050565b6000601f19601f8301169050919050565b60006134d682613474565b6134e0818561347f565b93506134f0818560208601613490565b6134f9816134ba565b840191505092915050565b60006101208301600083015161351d6000860182613424565b5060208301516135306020860182613424565b5060408301516135436040860182613424565b5060608301516135566060860182613465565b5060808301516135696080860182613465565b5060a083015161357c60a0860182613465565b5060c083015161358f60c0860182613465565b5060e083015184820360e08601526135a782826134cb565b9150506101008301518482036101008601526135c382826134cb565b9150508091505092915050565b600060208201905081810360008301526135ea8184613504565b905092915050565b6135fb816133c1565b82525050565b61360a81613453565b82525050565b600082825260208201905092915050565b600061362c82613474565b6136368185613610565b9350613646818560208601613490565b61364f816134ba565b840191505092915050565b600061012082019050613670600083018c6135f2565b61367d602083018b6135f2565b61368a604083018a6135f2565b6136976060830189613601565b6136a46080830188613601565b6136b160a0830187613601565b6136be60c0830186613601565b81810360e08301526136d08185613621565b90508181036101008301526136e58184613621565b90509a9950505050505050505050565b6136fe81613453565b811461370957600080fd5b50565b60008135905061371b816136f5565b92915050565b600060208284031215613737576137366133b7565b5b60006137458482850161370c565b91505092915050565b60008115159050919050565b6137638161374e565b82525050565b600060208201905061377e600083018461375a565b92915050565b60008060006060848603121561379d5761379c6133b7565b5b60006137ab868287016133e2565b93505060206137bc868287016133e2565b92505060406137cd868287016133e2565b9150509250925092565b60006020820190506137ec60008301846135f2565b92915050565b60008060408385031215613809576138086133b7565b5b6000613817858286016133e2565b92505060206138288582860161370c565b9150509250929050565b60006020820190506138476000830184613601565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610120830160008301516138926000860182613424565b5060208301516138a56020860182613424565b5060408301516138b86040860182613424565b5060608301516138cb6060860182613465565b5060808301516138de6080860182613465565b5060a08301516138f160a0860182613465565b5060c083015161390460c0860182613465565b5060e083015184820360e086015261391c82826134cb565b91505061010083015184820361010086015261393882826134cb565b9150508091505092915050565b60006139518383613879565b905092915050565b6000602082019050919050565b60006139718261384d565b61397b8185613858565b93508360208202850161398d85613869565b8060005b858110156139c957848403895281516139aa8582613945565b94506139b583613959565b925060208a01995050600181019050613991565b50829750879550505050505092915050565b600060208201905081810360008301526139f58184613966565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613a3f826134ba565b810181811067ffffffffffffffff82111715613a5e57613a5d613a07565b5b80604052505050565b6000613a716133ad565b9050613a7d8282613a36565b919050565b600067ffffffffffffffff821115613a9d57613a9c613a07565b5b613aa6826134ba565b9050602081019050919050565b82818337600083830152505050565b6000613ad5613ad084613a82565b613a67565b905082815260208101848484011115613af157613af0613a02565b5b613afc848285613ab3565b509392505050565b600082601f830112613b1957613b186139fd565b5b8135613b29848260208601613ac2565b91505092915050565b60008060008060808587031215613b4c57613b4b6133b7565b5b6000613b5a878288016133e2565b9450506020613b6b8782880161370c565b935050604085013567ffffffffffffffff811115613b8c57613b8b6133bc565b5b613b9887828801613b04565b925050606085013567ffffffffffffffff811115613bb957613bb86133bc565b5b613bc587828801613b04565b91505092959194509250565b6000819050919050565b6000613bf6613bf1613bec84613433565b613bd1565b613433565b9050919050565b6000613c0882613bdb565b9050919050565b6000613c1a82613bfd565b9050919050565b613c2a81613c0f565b82525050565b6000602082019050613c456000830184613c21565b92915050565b7f496e6465782073686f756c642062652067726561746572207468616e20302e00600082015250565b6000613c81601f83613610565b9150613c8c82613c4b565b602082019050919050565b60006020820190508181036000830152613cb081613c74565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d2d57607f821691505b602082108103613d4057613d3f613ce6565b5b50919050565b7f42657420697320706c61796564206f722063616e63656c65642e000000000000600082015250565b6000613d7c601a83613610565b9150613d8782613d46565b602082019050919050565b60006020820190508181036000830152613dab81613d6f565b9050919050565b7f47616d6520616c726561647920506c617965642e000000000000000000000000600082015250565b6000613de8601483613610565b9150613df382613db2565b602082019050919050565b60006020820190508181036000830152613e1781613ddb565b9050919050565b7f506c6179657231207368756c64206a6f696e207468652067616d652e00000000600082015250565b6000613e54601c83613610565b9150613e5f82613e1e565b602082019050919050565b60006020820190508181036000830152613e8381613e47565b9050919050565b7f506c6179657232207368756c64206a6f696e207468652067616d652e00000000600082015250565b6000613ec0601c83613610565b9150613ecb82613e8a565b602082019050919050565b60006020820190508181036000830152613eef81613eb3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f30826133c1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613f6257613f61613ef6565b5b600182019050919050565b6000613f78826133c1565b9150613f83836133c1565b9250828201905080821115613f9b57613f9a613ef6565b5b92915050565b7f546f74616c2073686f756c64206265203130302e000000000000000000000000600082015250565b6000613fd7601483613610565b9150613fe282613fa1565b602082019050919050565b6000602082019050818103600083015261400681613fca565b9050919050565b7f596f752063616e2774207769746864726177206d6f7265207468616e20796f7560008201527f722062616c616e63652e00000000000000000000000000000000000000000000602082015250565b6000614069602a83613610565b91506140748261400d565b604082019050919050565b600060208201905081810360008301526140988161405c565b9050919050565b60006040820190506140b46000830185613601565b6140c160208301846135f2565b9392505050565b6140d18161374e565b81146140dc57600080fd5b50565b6000815190506140ee816140c8565b92915050565b60006020828403121561410a576141096133b7565b5b6000614118848285016140df565b91505092915050565b600061412c826133c1565b9150614137836133c1565b925082820390508181111561414f5761414e613ef6565b5b92915050565b7f42657420416d6f756e742073686f756c6420626520677265617465722074686160008201527f6e20302e00000000000000000000000000000000000000000000000000000000602082015250565b60006141b1602483613610565b91506141bc82614155565b604082019050919050565b600060208201905081810360008301526141e0816141a4565b9050919050565b7f496e76616c69642047616d6520636f6e74726163742e00000000000000000000600082015250565b600061421d601683613610565b9150614228826141e7565b602082019050919050565b6000602082019050818103600083015261424c81614210565b9050919050565b600060408201905061426860008301856135f2565b61427560208301846135f2565b9392505050565b7f4265742069732072657365742e00000000000000000000000000000000000000600082015250565b60006142b2600d83613610565b91506142bd8261427c565b602082019050919050565b600060208201905081810360008301526142e1816142a5565b9050919050565b7f47616d652068617320656e6465642e0000000000000000000000000000000000600082015250565b600061431e600f83613610565b9150614329826142e8565b602082019050919050565b6000602082019050818103600083015261434d81614311565b9050919050565b7f596f7520686176656e2774206a6f696e656420746869732067616d652e000000600082015250565b600061438a601d83613610565b915061439582614354565b602082019050919050565b600060208201905081810360008301526143b98161437d565b9050919050565b60006040820190506143d560008301856135f2565b6143e26020830184613601565b9392505050565b6000815190506143f8816133cb565b92915050565b600060208284031215614414576144136133b7565b5b6000614422848285016143e9565b91505092915050565b7f47616d652063726561746f722063616e206f6e6c792063616e63656c2074686560008201527f2067616d652e0000000000000000000000000000000000000000000000000000602082015250565b6000614487602683613610565b91506144928261442b565b604082019050919050565b600060208201905081810360008301526144b68161447a565b9050919050565b7f746f74616c2062657420616d6f756e742073686f756c64206e6f74206265207a60008201527f65726f2e00000000000000000000000000000000000000000000000000000000602082015250565b6000614519602483613610565b9150614524826144bd565b604082019050919050565b600060208201905081810360008301526145488161450c565b9050919050565b7f62657420616d6f756e742073686f756c64206e6f74206265207a65726f2e0000600082015250565b6000614585601e83613610565b91506145908261454f565b602082019050919050565b600060208201905081810360008301526145b481614578565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f47616d652063726561746f722063616e206f6e6c7920696e7669746520686f7560008201527f736520746f20706c61792e000000000000000000000000000000000000000000602082015250565b6000614646602b83613610565b9150614651826145ea565b604082019050919050565b6000602082019050818103600083015261467581614639565b9050919050565b7f47616d652069732066756c6c206e6f772e000000000000000000000000000000600082015250565b60006146b2601183613610565b91506146bd8261467c565b602082019050919050565b600060208201905081810360008301526146e1816146a5565b9050919050565b7f486f75736520646f6573206e6f74206861766520656e6f7567682062616c616e60008201527f636520746f206a6f696e2067616d652e00000000000000000000000000000000602082015250565b6000614744603083613610565b915061474f826146e8565b604082019050919050565b6000602082019050818103600083015261477381614737565b9050919050565b6000614785826133c1565b9150614790836133c1565b925082820261479e816133c1565b915082820484148315176147b5576147b4613ef6565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147f6826133c1565b9150614801836133c1565b925082614811576148106147bc565b5b828204905092915050565b7f4d696e696d756d20416d6f756e742073686f756c64206265206772656174657260008201527f207468616e20302e000000000000000000000000000000000000000000000000602082015250565b6000614878602883613610565b91506148838261481c565b604082019050919050565b600060208201905081810360008301526148a78161486b565b9050919050565b60006060820190506148c36000830186613601565b6148d06020830185613601565b6148dd60408301846135f2565b949350505050565b7f596f7520617265206e6f7420417574686f72697a65642047616d6520436f6e7460008201527f7261637420416464726573732e00000000000000000000000000000000000000602082015250565b6000614941602d83613610565b915061494c826148e5565b604082019050919050565b6000602082019050818103600083015261497081614934565b9050919050565b7f496e76616c69642047616d652e00000000000000000000000000000000000000600082015250565b60006149ad600d83613610565b91506149b882614977565b602082019050919050565b600060208201905081810360008301526149dc816149a0565b9050919050565b7f47616d652074797065206973206e6f7420636f72726563742e00000000000000600082015250565b6000614a19601983613610565b9150614a24826149e3565b602082019050919050565b60006020820190508181036000830152614a4881614a0c565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614ab17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614a74565b614abb8683614a74565b95508019841693508086168417925050509392505050565b6000614aee614ae9614ae4846133c1565b613bd1565b6133c1565b9050919050565b6000819050919050565b614b0883614ad3565b614b1c614b1482614af5565b848454614a81565b825550505050565b600090565b614b31614b24565b614b3c818484614aff565b505050565b5b81811015614b6057614b55600082614b29565b600181019050614b42565b5050565b601f821115614ba557614b7681614a4f565b614b7f84614a64565b81016020851015614b8e578190505b614ba2614b9a85614a64565b830182614b41565b50505b505050565b600082821c905092915050565b6000614bc860001984600802614baa565b1980831691505092915050565b6000614be18383614bb7565b9150826002028217905092915050565b614bfa82613474565b67ffffffffffffffff811115614c1357614c12613a07565b5b614c1d8254613d15565b614c28828285614b64565b600060209050601f831160018114614c5b5760008415614c49578287015190505b614c538582614bd5565b865550614cbb565b601f198416614c6986614a4f565b60005b82811015614c9157848901518255600182019150602085019450602081019050614c6c565b86831015614cae5784890151614caa601f891682614bb7565b8355505b6001600288020188555050505b505050505050565b7f47616d652069732043616e63656c65642e000000000000000000000000000000600082015250565b6000614cf9601183613610565b9150614d0482614cc3565b602082019050919050565b60006020820190508181036000830152614d2881614cec565b9050919050565b7f596f7520646f206e6f74206861766520656e6f7567682062616c616e6365207460008201527f6f206a6f696e2067616d652e0000000000000000000000000000000000000000602082015250565b6000614d8b602c83613610565b9150614d9682614d2f565b604082019050919050565b60006020820190508181036000830152614dba81614d7e565b905091905056fea26469706673582212200adba8c12fd0d9e9184cd3eea9d060e6b4dbd59f453a5720a8ea57ed933673d764736f6c634300081200330000000000000000000000000df596ad12f927e41ec317af7dd666ca3574845f
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80638c01d16d116100de578063c449731b11610097578063efaa55a011610071578063efaa55a014610487578063f14faf6f146104a3578063fa638764146104bf578063fc0c546a146104db5761018e565b8063c449731b1461040b578063cd3b356e14610427578063d8bfcf96146104575761018e565b80638c01d16d1461035d578063a169f86f14610379578063a43f15d814610397578063a4a2ca80146103b3578063b6b55f25146103d1578063c3a43824146103ed5761018e565b80633ea112221161014b5780635145cbc0116101255780635145cbc0146102e957806369958ab9146103075780637a1126f01461032357806382b98f9d1461033f5761018e565b80633ea11222146102935780633feef58a146102af578063481c6a75146102cb5761018e565b8063027b7d5b14610193578063117a5b90146101c35780631a1dd086146101fb578063224290851461022b5780632c32bde0146102475780632e1a7d4d14610277575b600080fd5b6101ad60048036038101906101a891906133f7565b6104f9565b6040516101ba91906135d0565b60405180910390f35b6101dd60048036038101906101d891906133f7565b610a01565b6040516101f29998979695949392919061365a565b60405180910390f35b61021560048036038101906102109190613721565b610bef565b6040516102229190613769565b60405180910390f35b61024560048036038101906102409190613784565b610c9d565b005b610261600480360381019061025c9190613721565b610d6a565b60405161026e91906137d7565b60405180910390f35b610291600480360381019061028c91906133f7565b610d82565b005b6102ad60048036038101906102a891906137f2565b610efc565b005b6102c960048036038101906102c491906133f7565b611109565b005b6102d3611420565b6040516102e09190613832565b60405180910390f35b6102f1611446565b6040516102fe91906137d7565b60405180910390f35b610321600480360381019061031c91906133f7565b6114e8565b005b61033d600480360381019061033891906133f7565b61195b565b005b610347611b51565b60405161035491906137d7565b60405180910390f35b610377600480360381019061037291906133f7565b611b57565b005b610381611ce3565b60405161038e91906139db565b60405180910390f35b6103b160048036038101906103ac91906133f7565b61223e565b005b6103bb612685565b6040516103c891906137d7565b60405180910390f35b6103eb60048036038101906103e691906133f7565b61268b565b005b6103f56127c8565b60405161040291906137d7565b60405180910390f35b61042560048036038101906104209190613b32565b6127ce565b005b610441600480360381019061043c91906133f7565b612cbe565b60405161044e9190613832565b60405180910390f35b610471600480360381019061046c9190613721565b612cfd565b60405161047e91906137d7565b60405180910390f35b6104a1600480360381019061049c91906133f7565b612d46565b005b6104bd60048036038101906104b891906133f7565b6130e8565b005b6104d960048036038101906104d49190613721565b613225565b005b6104e36132e5565b6040516104f09190613c30565b60405180910390f35b610501613309565b6000821015610545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053c90613c97565b60405180910390fd5b60006004838154811061055b5761055a613cb7565b5b9060005260206000209060090201604051806101200160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820180546106fb90613d15565b80601f016020809104026020016040519081016040528092919081815260200182805461072790613d15565b80156107745780601f1061074957610100808354040283529160200191610774565b820191906000526020600020905b81548152906001019060200180831161075757829003601f168201915b5050505050815260200160088201805461078d90613d15565b80601f01602080910402602001604051908101604052809291908181526020018280546107b990613d15565b80156108065780601f106107db57610100808354040283529160200191610806565b820191906000526020600020905b8154815290600101906020018083116107e957829003601f168201915b50505050508152505090506000816020015111610858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084f90613d92565b60405180910390fd5b600081604001511161089f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089690613d92565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160a0015173ffffffffffffffffffffffffffffffffffffffff1614610912576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090990613dfe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff1603610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097c90613e6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16816080015173ffffffffffffffffffffffffffffffffffffffff16036109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef90613ed6565b60405180910390fd5b80915050919050565b60048181548110610a1157600080fd5b90600052602060002090600902016000915090508060000154908060010154908060020154908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806007018054610ade90613d15565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0a90613d15565b8015610b575780601f10610b2c57610100808354040283529160200191610b57565b820191906000526020600020905b815481529060010190602001808311610b3a57829003601f168201915b505050505090806008018054610b6c90613d15565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9890613d15565b8015610be55780601f10610bba57610100808354040283529160200191610be5565b820191906000526020600020905b815481529060010190602001808311610bc857829003601f168201915b5050505050905089565b600080600090505b600580549050811015610c92578273ffffffffffffffffffffffffffffffffffffffff1660058281548110610c2f57610c2e613cb7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c7f576001915050610c98565b8080610c8a90613f25565b915050610bf7565b50600090505b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cf757600080fd5b6064828285610d069190613f6d565b610d109190613f6d565b14610d50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4790613fed565b60405180910390fd5b826006819055508060088190555081600781905550505050565b60026020528060005260406000206000915090505481565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb9061407f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610e5f92919061409f565b6020604051808303816000875af1158015610e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea291906140f4565b5080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ef29190614121565b9250508190555050565b60008211610f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f36906141c7565b60405180910390fd5b610f4881610bef565b610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e90614233565b60405180910390fd5b60006004600181600181540180825580915050039060005260206000209060090201905060006001600480549050610fbf9190614121565b9050808260000181905550838260010181905550828260060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550338260030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110a89190614121565b92505081905550838260020160008282546110c39190613f6d565b925050819055507fa26856d25e558c79e1632806bc6824075cf59885a115825f2aab62385a3f714281856040516110fb929190614253565b60405180910390a150505050565b600081101561114d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114490613c97565b60405180910390fd5b60006004828154811061116357611162613cb7565b5b9060005260206000209060090201905060008160020154116111ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b1906142c8565b60405180910390fd5b6000816001015411611201576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f8906142c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b90614334565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131d906143a0565b60405180910390fd5b60008160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600101548160020160008282546113829190614121565b925050819055508060010154600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113dc9190613f6d565b925050819055507f601fc33e47b454ed8aee9a1e0d7ed7add91efc6b3398783e1944bbd1f50a258382336040516114149291906143c0565b60405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114a29190613832565b602060405180830381865afa1580156114bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e391906143fe565b905090565b600081101561152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390613c97565b60405180910390fd5b60006004828154811061154257611541613cb7565b5b90600052602060002090600902019050600073ffffffffffffffffffffffffffffffffffffffff168160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc90613dfe565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166e9061449d565b60405180910390fd5b60008160020154116116be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b59061452f565b60405180910390fd5b6000816001015411611705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fc9061459b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fb5780600101548160020160008282546117759190614121565b925050819055508060010154600260008360040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117f39190613f6d565b925050819055505b80600101548160020160008282546118139190614121565b925050819055508060010154600260008360030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118919190613f6d565b9250508190555060008160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f8f1ffb72cf9e5acc4eddafab2be9e2951d12377b9e1e4bdc7bd686b19c91fd898260405161194f91906137d7565b60405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119b557600080fd5b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2e9061407f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611ab492919061409f565b6020604051808303816000875af1158015611ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af791906140f4565b5080600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b479190614121565b9250508190555050565b60065481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bb157600080fd5b600580549050811015611ce05760008190505b6001600580549050611bd69190614121565b811015611c97576005600182611bec9190613f6d565b81548110611bfd57611bfc613cb7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611c3c57611c3b613cb7565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080611c8f90613f25565b915050611bc4565b506005805480611caa57611ca96145bb565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590555b50565b6060600060048054905067ffffffffffffffff811115611d0657611d05613a07565b5b604051908082528060200260200182016040528015611d3f57816020015b611d2c613309565b815260200190600190039081611d245790505b5090506000805b60048054905081101561223257600060048281548110611d6957611d68613cb7565b5b906000526020600020906009020160010154118015611dad5750600060048281548110611d9957611d98613cb7565b5b906000526020600020906009020160020154115b8015611e2a5750600073ffffffffffffffffffffffffffffffffffffffff1660048281548110611de057611ddf613cb7565b5b906000526020600020906009020160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8015611ea75750600073ffffffffffffffffffffffffffffffffffffffff1660048281548110611e5d57611e5c613cb7565b5b906000526020600020906009020160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8015611f255750600073ffffffffffffffffffffffffffffffffffffffff1660048281548110611eda57611ed9613cb7565b5b906000526020600020906009020160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561221f5760048181548110611f3e57611f3d613cb7565b5b9060005260206000209060090201604051806101200160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820180546120de90613d15565b80601f016020809104026020016040519081016040528092919081815260200182805461210a90613d15565b80156121575780601f1061212c57610100808354040283529160200191612157565b820191906000526020600020905b81548152906001019060200180831161213a57829003601f168201915b5050505050815260200160088201805461217090613d15565b80601f016020809104026020016040519081016040528092919081815260200182805461219c90613d15565b80156121e95780601f106121be576101008083540402835291602001916121e9565b820191906000526020600020905b8154815290600101906020018083116121cc57829003601f168201915b50505050508152505083838151811061220557612204613cb7565b5b6020026020010181905250818061221b90613f25565b9250505b808061222a90613f25565b915050611d46565b50808252819250505090565b6000811015612282576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227990613c97565b60405180910390fd5b60006004828154811061229857612297613cb7565b5b906000526020600020906009020190503373ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461233a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123319061465c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c490614334565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612460576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612457906146c8565b60405180910390fd5b8060010154600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156124e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124dd9061475a565b60405180910390fd5b600060646001600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612536919061477a565b61254091906147eb565b9050808260010154111561258b57806040517f33028ba000000000000000000000000000000000000000000000000000000000815260040161258291906137d7565b60405180910390fd5b8160010154600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125de9190614121565b92505081905550308260040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600101548260020160008282546126409190613f6d565b925050819055507f45c4f9cbafe186141862608c493f28b823fde4c2142bedc3f5169961a73fdd2283306040516126789291906143c0565b60405180910390a1505050565b60075481565b600081116126ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c59061488e565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161272b939291906148ae565b6020604051808303816000875af115801561274a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276e91906140f4565b5080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127be9190613f6d565b9250508190555050565b60085481565b6127d733610bef565b612816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280d90614957565b60405180910390fd5b600084101561285a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612851906149c3565b60405180910390fd5b6000600485815481106128705761286f613cb7565b5b90600052602060002090600902019050600073ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290a90613e6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036129a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299d90613ed6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a3090613dfe565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac290614a2f565b60405180910390fd5b82816007019081612adc9190614bf1565b5081816008019081612aee9190614bf1565b5060646008548260020154612b03919061477a565b612b0d91906147eb565b60026000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b7d9190613f6d565b9250508190555060646007548260020154612b98919061477a565b612ba291906147eb565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bf09190613f6d565b92505081905550838160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060646006548260020154612c4e919061477a565b612c5891906147eb565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ca69190613f6d565b92505081905550600081600201819055505050505050565b60058181548110612cce57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000811015612d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8190613c97565b60405180910390fd5b600060048281548110612da057612d9f613cb7565b5b90600052602060002090600902019050600073ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e3a90614d0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ecd90614334565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f60906146c8565b60405180910390fd5b8060010154600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fe690614da1565b60405180910390fd5b8060010154600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130429190614121565b92505081905550338160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600101548160020160008282546130a49190613f6d565b925050819055507f45c4f9cbafe186141862608c493f28b823fde4c2142bedc3f5169961a73fdd2282336040516130dc9291906143c0565b60405180910390a15050565b6000811161312b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131229061488e565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401613188939291906148ae565b6020604051808303816000875af11580156131a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131cb91906140f4565b5080600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461321b9190613f6d565b9250508190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461327f57600080fd5b6005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b604051806101200160405280600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081525090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6133d4816133c1565b81146133df57600080fd5b50565b6000813590506133f1816133cb565b92915050565b60006020828403121561340d5761340c6133b7565b5b600061341b848285016133e2565b91505092915050565b61342d816133c1565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061345e82613433565b9050919050565b61346e81613453565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134ae578082015181840152602081019050613493565b60008484015250505050565b6000601f19601f8301169050919050565b60006134d682613474565b6134e0818561347f565b93506134f0818560208601613490565b6134f9816134ba565b840191505092915050565b60006101208301600083015161351d6000860182613424565b5060208301516135306020860182613424565b5060408301516135436040860182613424565b5060608301516135566060860182613465565b5060808301516135696080860182613465565b5060a083015161357c60a0860182613465565b5060c083015161358f60c0860182613465565b5060e083015184820360e08601526135a782826134cb565b9150506101008301518482036101008601526135c382826134cb565b9150508091505092915050565b600060208201905081810360008301526135ea8184613504565b905092915050565b6135fb816133c1565b82525050565b61360a81613453565b82525050565b600082825260208201905092915050565b600061362c82613474565b6136368185613610565b9350613646818560208601613490565b61364f816134ba565b840191505092915050565b600061012082019050613670600083018c6135f2565b61367d602083018b6135f2565b61368a604083018a6135f2565b6136976060830189613601565b6136a46080830188613601565b6136b160a0830187613601565b6136be60c0830186613601565b81810360e08301526136d08185613621565b90508181036101008301526136e58184613621565b90509a9950505050505050505050565b6136fe81613453565b811461370957600080fd5b50565b60008135905061371b816136f5565b92915050565b600060208284031215613737576137366133b7565b5b60006137458482850161370c565b91505092915050565b60008115159050919050565b6137638161374e565b82525050565b600060208201905061377e600083018461375a565b92915050565b60008060006060848603121561379d5761379c6133b7565b5b60006137ab868287016133e2565b93505060206137bc868287016133e2565b92505060406137cd868287016133e2565b9150509250925092565b60006020820190506137ec60008301846135f2565b92915050565b60008060408385031215613809576138086133b7565b5b6000613817858286016133e2565b92505060206138288582860161370c565b9150509250929050565b60006020820190506138476000830184613601565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610120830160008301516138926000860182613424565b5060208301516138a56020860182613424565b5060408301516138b86040860182613424565b5060608301516138cb6060860182613465565b5060808301516138de6080860182613465565b5060a08301516138f160a0860182613465565b5060c083015161390460c0860182613465565b5060e083015184820360e086015261391c82826134cb565b91505061010083015184820361010086015261393882826134cb565b9150508091505092915050565b60006139518383613879565b905092915050565b6000602082019050919050565b60006139718261384d565b61397b8185613858565b93508360208202850161398d85613869565b8060005b858110156139c957848403895281516139aa8582613945565b94506139b583613959565b925060208a01995050600181019050613991565b50829750879550505050505092915050565b600060208201905081810360008301526139f58184613966565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613a3f826134ba565b810181811067ffffffffffffffff82111715613a5e57613a5d613a07565b5b80604052505050565b6000613a716133ad565b9050613a7d8282613a36565b919050565b600067ffffffffffffffff821115613a9d57613a9c613a07565b5b613aa6826134ba565b9050602081019050919050565b82818337600083830152505050565b6000613ad5613ad084613a82565b613a67565b905082815260208101848484011115613af157613af0613a02565b5b613afc848285613ab3565b509392505050565b600082601f830112613b1957613b186139fd565b5b8135613b29848260208601613ac2565b91505092915050565b60008060008060808587031215613b4c57613b4b6133b7565b5b6000613b5a878288016133e2565b9450506020613b6b8782880161370c565b935050604085013567ffffffffffffffff811115613b8c57613b8b6133bc565b5b613b9887828801613b04565b925050606085013567ffffffffffffffff811115613bb957613bb86133bc565b5b613bc587828801613b04565b91505092959194509250565b6000819050919050565b6000613bf6613bf1613bec84613433565b613bd1565b613433565b9050919050565b6000613c0882613bdb565b9050919050565b6000613c1a82613bfd565b9050919050565b613c2a81613c0f565b82525050565b6000602082019050613c456000830184613c21565b92915050565b7f496e6465782073686f756c642062652067726561746572207468616e20302e00600082015250565b6000613c81601f83613610565b9150613c8c82613c4b565b602082019050919050565b60006020820190508181036000830152613cb081613c74565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d2d57607f821691505b602082108103613d4057613d3f613ce6565b5b50919050565b7f42657420697320706c61796564206f722063616e63656c65642e000000000000600082015250565b6000613d7c601a83613610565b9150613d8782613d46565b602082019050919050565b60006020820190508181036000830152613dab81613d6f565b9050919050565b7f47616d6520616c726561647920506c617965642e000000000000000000000000600082015250565b6000613de8601483613610565b9150613df382613db2565b602082019050919050565b60006020820190508181036000830152613e1781613ddb565b9050919050565b7f506c6179657231207368756c64206a6f696e207468652067616d652e00000000600082015250565b6000613e54601c83613610565b9150613e5f82613e1e565b602082019050919050565b60006020820190508181036000830152613e8381613e47565b9050919050565b7f506c6179657232207368756c64206a6f696e207468652067616d652e00000000600082015250565b6000613ec0601c83613610565b9150613ecb82613e8a565b602082019050919050565b60006020820190508181036000830152613eef81613eb3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613f30826133c1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613f6257613f61613ef6565b5b600182019050919050565b6000613f78826133c1565b9150613f83836133c1565b9250828201905080821115613f9b57613f9a613ef6565b5b92915050565b7f546f74616c2073686f756c64206265203130302e000000000000000000000000600082015250565b6000613fd7601483613610565b9150613fe282613fa1565b602082019050919050565b6000602082019050818103600083015261400681613fca565b9050919050565b7f596f752063616e2774207769746864726177206d6f7265207468616e20796f7560008201527f722062616c616e63652e00000000000000000000000000000000000000000000602082015250565b6000614069602a83613610565b91506140748261400d565b604082019050919050565b600060208201905081810360008301526140988161405c565b9050919050565b60006040820190506140b46000830185613601565b6140c160208301846135f2565b9392505050565b6140d18161374e565b81146140dc57600080fd5b50565b6000815190506140ee816140c8565b92915050565b60006020828403121561410a576141096133b7565b5b6000614118848285016140df565b91505092915050565b600061412c826133c1565b9150614137836133c1565b925082820390508181111561414f5761414e613ef6565b5b92915050565b7f42657420416d6f756e742073686f756c6420626520677265617465722074686160008201527f6e20302e00000000000000000000000000000000000000000000000000000000602082015250565b60006141b1602483613610565b91506141bc82614155565b604082019050919050565b600060208201905081810360008301526141e0816141a4565b9050919050565b7f496e76616c69642047616d6520636f6e74726163742e00000000000000000000600082015250565b600061421d601683613610565b9150614228826141e7565b602082019050919050565b6000602082019050818103600083015261424c81614210565b9050919050565b600060408201905061426860008301856135f2565b61427560208301846135f2565b9392505050565b7f4265742069732072657365742e00000000000000000000000000000000000000600082015250565b60006142b2600d83613610565b91506142bd8261427c565b602082019050919050565b600060208201905081810360008301526142e1816142a5565b9050919050565b7f47616d652068617320656e6465642e0000000000000000000000000000000000600082015250565b600061431e600f83613610565b9150614329826142e8565b602082019050919050565b6000602082019050818103600083015261434d81614311565b9050919050565b7f596f7520686176656e2774206a6f696e656420746869732067616d652e000000600082015250565b600061438a601d83613610565b915061439582614354565b602082019050919050565b600060208201905081810360008301526143b98161437d565b9050919050565b60006040820190506143d560008301856135f2565b6143e26020830184613601565b9392505050565b6000815190506143f8816133cb565b92915050565b600060208284031215614414576144136133b7565b5b6000614422848285016143e9565b91505092915050565b7f47616d652063726561746f722063616e206f6e6c792063616e63656c2074686560008201527f2067616d652e0000000000000000000000000000000000000000000000000000602082015250565b6000614487602683613610565b91506144928261442b565b604082019050919050565b600060208201905081810360008301526144b68161447a565b9050919050565b7f746f74616c2062657420616d6f756e742073686f756c64206e6f74206265207a60008201527f65726f2e00000000000000000000000000000000000000000000000000000000602082015250565b6000614519602483613610565b9150614524826144bd565b604082019050919050565b600060208201905081810360008301526145488161450c565b9050919050565b7f62657420616d6f756e742073686f756c64206e6f74206265207a65726f2e0000600082015250565b6000614585601e83613610565b91506145908261454f565b602082019050919050565b600060208201905081810360008301526145b481614578565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f47616d652063726561746f722063616e206f6e6c7920696e7669746520686f7560008201527f736520746f20706c61792e000000000000000000000000000000000000000000602082015250565b6000614646602b83613610565b9150614651826145ea565b604082019050919050565b6000602082019050818103600083015261467581614639565b9050919050565b7f47616d652069732066756c6c206e6f772e000000000000000000000000000000600082015250565b60006146b2601183613610565b91506146bd8261467c565b602082019050919050565b600060208201905081810360008301526146e1816146a5565b9050919050565b7f486f75736520646f6573206e6f74206861766520656e6f7567682062616c616e60008201527f636520746f206a6f696e2067616d652e00000000000000000000000000000000602082015250565b6000614744603083613610565b915061474f826146e8565b604082019050919050565b6000602082019050818103600083015261477381614737565b9050919050565b6000614785826133c1565b9150614790836133c1565b925082820261479e816133c1565b915082820484148315176147b5576147b4613ef6565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006147f6826133c1565b9150614801836133c1565b925082614811576148106147bc565b5b828204905092915050565b7f4d696e696d756d20416d6f756e742073686f756c64206265206772656174657260008201527f207468616e20302e000000000000000000000000000000000000000000000000602082015250565b6000614878602883613610565b91506148838261481c565b604082019050919050565b600060208201905081810360008301526148a78161486b565b9050919050565b60006060820190506148c36000830186613601565b6148d06020830185613601565b6148dd60408301846135f2565b949350505050565b7f596f7520617265206e6f7420417574686f72697a65642047616d6520436f6e7460008201527f7261637420416464726573732e00000000000000000000000000000000000000602082015250565b6000614941602d83613610565b915061494c826148e5565b604082019050919050565b6000602082019050818103600083015261497081614934565b9050919050565b7f496e76616c69642047616d652e00000000000000000000000000000000000000600082015250565b60006149ad600d83613610565b91506149b882614977565b602082019050919050565b600060208201905081810360008301526149dc816149a0565b9050919050565b7f47616d652074797065206973206e6f7420636f72726563742e00000000000000600082015250565b6000614a19601983613610565b9150614a24826149e3565b602082019050919050565b60006020820190508181036000830152614a4881614a0c565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614ab17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614a74565b614abb8683614a74565b95508019841693508086168417925050509392505050565b6000614aee614ae9614ae4846133c1565b613bd1565b6133c1565b9050919050565b6000819050919050565b614b0883614ad3565b614b1c614b1482614af5565b848454614a81565b825550505050565b600090565b614b31614b24565b614b3c818484614aff565b505050565b5b81811015614b6057614b55600082614b29565b600181019050614b42565b5050565b601f821115614ba557614b7681614a4f565b614b7f84614a64565b81016020851015614b8e578190505b614ba2614b9a85614a64565b830182614b41565b50505b505050565b600082821c905092915050565b6000614bc860001984600802614baa565b1980831691505092915050565b6000614be18383614bb7565b9150826002028217905092915050565b614bfa82613474565b67ffffffffffffffff811115614c1357614c12613a07565b5b614c1d8254613d15565b614c28828285614b64565b600060209050601f831160018114614c5b5760008415614c49578287015190505b614c538582614bd5565b865550614cbb565b601f198416614c6986614a4f565b60005b82811015614c9157848901518255600182019150602085019450602081019050614c6c565b86831015614cae5784890151614caa601f891682614bb7565b8355505b6001600288020188555050505b505050505050565b7f47616d652069732043616e63656c65642e000000000000000000000000000000600082015250565b6000614cf9601183613610565b9150614d0482614cc3565b602082019050919050565b60006020820190508181036000830152614d2881614cec565b9050919050565b7f596f7520646f206e6f74206861766520656e6f7567682062616c616e6365207460008201527f6f206a6f696e2067616d652e0000000000000000000000000000000000000000602082015250565b6000614d8b602c83613610565b9150614d9682614d2f565b604082019050919050565b60006020820190508181036000830152614dba81614d7e565b905091905056fea26469706673582212200adba8c12fd0d9e9184cd3eea9d060e6b4dbd59f453a5720a8ea57ed933673d764736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000df596ad12f927e41ec317af7dd666ca3574845f
-----Decoded View---------------
Arg [0] : _token (address): 0x0DF596AD12F927e41EC317AF7DD666cA3574845f
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000df596ad12f927e41ec317af7dd666ca3574845f
Deployed Bytecode Sourcemap
1311:10495:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6396:618;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1873:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;10138:317;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2961:383;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1394:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3912:284;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4762:691;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8490:601;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1365:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3352:123;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5461:927;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4451:303;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1936:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2576:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7022:761;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9099:1031;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1979:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3667:237;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2021:72;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10463:1249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1899:30;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3483:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7791:691;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4204:239;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2446:122;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1339:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6396:618;6491:11;;:::i;:::-;6538:1;6528:6;:11;;6520:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;6586:16;6605:5;6611:6;6605:13;;;;;;;;:::i;:::-;;;;;;;;;;;;6586:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6654:1;6637:4;:14;;;:18;6629:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;6727:1;6705:4;:19;;;:23;6697:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6801:1;6778:25;;:4;:11;;;:25;;;6770:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6871:1;6847:26;;:4;:12;;;:26;;;6839:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6949:1;6925:26;;:4;:12;;;:26;;;6917:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7002:4;6995:11;;;6396:618;;;:::o;1873:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10138:317::-;10239:4;10266:9;10278:1;10266:13;;10261:162;10285:13;:20;;;;10281:1;:24;10261:162;;;10351:13;10331:33;;:13;10345:1;10331:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:33;;;10327:85;;10392:4;10385:11;;;;;10327:85;10307:3;;;;;:::i;:::-;;;;10261:162;;;;10442:5;10435:12;;10138:317;;;;:::o;2961:383::-;11775:7;;;;;;;;;;;11761:21;;:10;:21;;;11753:30;;;;;;3168:3:::1;3152:11;3141:8;3127:11;:22;;;;:::i;:::-;:36;;;;:::i;:::-;3126:45;3104:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;3249:11;3230:16;:30;;;;3287:8;3271:13;:24;;;;3325:11;3306:16;:30;;;;2961:383:::0;;;:::o;1394:49::-;;;;;;;;;;;;;;;;;:::o;3912:284::-;4017:7;3987:14;:26;4002:10;3987:26;;;;;;;;;;;;;;;;:37;;3965:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;4105:5;;;;;;;;;;:14;;;4120:10;4132:7;4105:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4181:7;4151:14;:26;4166:10;4151:26;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;3912:284;:::o;4762:691::-;4885:1;4872:10;:14;4864:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4960:42;4981:20;4960;:42::i;:::-;4938:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;5063:17;5083:5;:12;;;;;;;;;;;;;;;;;;;;;;;;5063:32;;5106:14;5138:1;5123:5;:12;;;;:16;;;;:::i;:::-;5106:33;;5165:6;5152:4;:10;;:19;;;;5199:10;5182:4;:14;;:27;;;;5247:20;5220:4;:24;;;:47;;;;;;;;;;;;;;;;;;5293:10;5278:4;:12;;;:25;;;;;;;;;;;;;;;;;;5344:10;5314:14;:26;5329:10;5314:26;;;;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;5388:10;5365:4;:19;;;:33;;;;;;;:::i;:::-;;;;;;;;5414:31;5426:6;5434:10;5414:31;;;;;;;:::i;:::-;;;;;;;;4853:600;;4762:691;;:::o;8490:601::-;8561:1;8551:6;:11;;8543:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;8609:17;8629:5;8635:6;8629:13;;;;;;;;:::i;:::-;;;;;;;;;;;;8609:33;;8683:1;8661:4;:19;;;:23;8653:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8738:1;8721:4;:14;;;:18;8713:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;8799:1;8776:25;;:4;:11;;;;;;;;;;;;:25;;;8768:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;8856:10;8840:26;;:4;:12;;;;;;;;;;;;:26;;;8832:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8934:1;8911:4;:12;;;:25;;;;;;;;;;;;;;;;;;8970:4;:14;;;8947:4;:19;;;:37;;;;;;;:::i;:::-;;;;;;;;9025:4;:14;;;8995;:26;9010:10;8995:26;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;9055:28;9064:6;9072:10;9055:28;;;;;;;:::i;:::-;;;;;;;;8532:559;8490:601;:::o;1365:22::-;;;;;;;;;;;;;:::o;3352:123::-;3410:7;3437:5;;;;;;;;;;;:15;;;3461:4;3437:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3430:37;;3352:123;:::o;5461:927::-;5533:1;5523:6;:11;;5515:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5581:17;5601:5;5607:6;5601:13;;;;;;;;:::i;:::-;;;;;;;;;;;;5581:33;;5656:1;5633:25;;:4;:11;;;;;;;;;;;;:25;;;5625:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;5732:10;5716:26;;:4;:12;;;;;;;;;;;;:26;;;5694:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;5863:1;5841:4;:19;;;:23;5819:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;5964:1;5947:4;:14;;;:18;5939:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6039:1;6015:26;;:4;:12;;;;;;;;;;;;:26;;;6011:157;;6081:4;:14;;;6058:4;:19;;;:37;;;;;;;:::i;:::-;;;;;;;;6142:4;:14;;;6110;:28;6125:4;:12;;;;;;;;;;;;6110:28;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;6011:157;6201:4;:14;;;6178:4;:19;;;:37;;;;;;;:::i;:::-;;;;;;;;6258:4;:14;;;6226;:28;6241:4;:12;;;;;;;;;;;;6226:28;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;6306:1;6283:4;:12;;;:25;;;;;;;;;;;;;;;;;;6342:1;6319:4;:12;;;:25;;;;;;;;;;;;;;;;;;6360:20;6373:6;6360:20;;;;;;:::i;:::-;;;;;;;;5504:884;5461:927;:::o;4451:303::-;11775:7;;;;;;;;;;;11761:21;;:10;:21;;;11753:30;;;;;;4575:7:::1;4542:14;:29;4565:4;4542:29;;;;;;;;;;;;;;;;:40;;4520:132;;;;;;;;;;;;:::i;:::-;;;;;;;;;4663:5;::::0;::::1;;;;;;;;:14;;;4678:7;;;;;;;;;;;4687;4663:32;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4739:7;4706:14;:29;4729:4;4706:29;;;;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;4451:303:::0;:::o;1936:36::-;;;;:::o;2576:377::-;11775:7;;;;;;;;;;;11761:21;;:10;:21;;;11753:30;;;;;;2687:13:::1;:20;;;;2665:18;:42;2661:55:::0;2709:7:::1;2661:55;2747:9;2759:18;2747:30;;2728:188;2819:1;2796:13;:20;;;;:24;;;;:::i;:::-;2792:1;:28;2728:188;;;2884:13;2902:1;2898;:5;;;;:::i;:::-;2884:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2865:13;2879:1;2865:16;;;;;;;;:::i;:::-;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2835:3;;;;;:::i;:::-;;;;2728:188;;;;2926:13;:19;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;11794:1;2576:377:::0;:::o;7022:761::-;7071:13;7097:27;7138:5;:12;;;;7127:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7097:54;;7164:13;7197:9;7192:421;7216:5;:12;;;;7212:1;:16;7192:421;;;7293:1;7272:5;7278:1;7272:8;;;;;;;;:::i;:::-;;;;;;;;;;;;:18;;;:22;:70;;;;;7341:1;7315:5;7321:1;7315:8;;;;;;;;:::i;:::-;;;;;;;;;;;;:23;;;:27;7272:70;:120;;;;;7390:1;7363:29;;:5;7369:1;7363:8;;;;;;;;:::i;:::-;;;;;;;;;;;;:15;;;;;;;;;;;;:29;;;7272:120;:171;;;;;7441:1;7413:30;;:5;7419:1;7413:8;;;;;;;;:::i;:::-;;;;;;;;;;;;:16;;;;;;;;;;;;:30;;;7272:171;:222;;;;;7492:1;7464:30;;:5;7470:1;7464:8;;;;;;;;:::i;:::-;;;;;;;;;;;;:16;;;;;;;;;;;;:30;;;;7272:222;7250:352;;;7552:5;7558:1;7552:8;;;;;;;;:::i;:::-;;;;;;;;;;;;7529:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;7543:5;7529:20;;;;;;;;:::i;:::-;;;;;;;:31;;;;7579:7;;;;;:::i;:::-;;;;7250:352;7230:3;;;;;:::i;:::-;;;;7192:421;;;;7726:5;7711:13;7704:28;7762:13;7755:20;;;;7022:761;:::o;9099:1031::-;9172:1;9162:6;:11;;9154:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;9220:17;9240:5;9246:6;9240:13;;;;;;;;:::i;:::-;;;;;;;;;;;;9220:33;;9302:10;9286:26;;:4;:12;;;;;;;;;;;;:26;;;9264:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;9425:1;9402:25;;:4;:11;;;;;;;;;;;;:25;;;9394:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;9490:1;9466:26;;:4;:12;;;;;;;;;;;;:26;;;9458:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;9580:4;:14;;;9547;:29;9570:4;9547:29;;;;;;;;;;;;;;;;:47;;9525:145;;;;;;;;;;;;:::i;:::-;;;;;;;;;9681:18;9740:3;9735:1;9703:14;:29;9726:4;9703:29;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;9702:41;;;;:::i;:::-;9681:62;;9775:10;9758:4;:14;;;:27;9754:175;;;9905:10;9881:36;;;;;;;;;;;:::i;:::-;;;;;;;;9754:175;9972:4;:14;;;9939;:29;9962:4;9939:29;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;10020:4;9997;:12;;;:28;;;;;;;;;;;;;;;;;;10059:4;:14;;;10036:4;:19;;;:37;;;;;;;:::i;:::-;;;;;;;;10089:33;10100:6;10116:4;10089:33;;;;;;;:::i;:::-;;;;;;;;9143:987;;9099:1031;:::o;1979:35::-;;;;:::o;3667:237::-;3737:1;3727:7;:11;3719:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3794:5;;;;;;;;;;:18;;;3813:10;3833:4;3840:7;3794:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3889:7;3859:14;:26;3874:10;3859:26;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;3667:237;:::o;2021:72::-;;;;:::o;10463:1249::-;10674:32;10695:10;10674:20;:32::i;:::-;10652:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;10811:1;10798:9;:14;;10790:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;10841:17;10861:5;10867:9;10861:16;;;;;;;;:::i;:::-;;;;;;;;;;;;10841:36;;10920:1;10896:26;;:4;:12;;;;;;;;;;;;:26;;;10888:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10998:1;10974:26;;:4;:12;;;;;;;;;;;;:26;;;10966:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11075:1;11052:25;;:4;:11;;;;;;;;;;;;:25;;;11044:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;11163:10;11135:38;;:4;:24;;;;;;;;;;;;:38;;;11113:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;11259:15;11237:4;:19;;:37;;;;;;:::i;:::-;;11307:15;11285:4;:19;;:37;;;;;;:::i;:::-;;11402:3;11385:13;;11363:4;:19;;;:35;;;;:::i;:::-;11362:43;;;;:::i;:::-;11335:14;:23;11350:7;;;;;;;;;;;11335:23;;;;;;;;;;;;;;;;:70;;;;;;;:::i;:::-;;;;;;;;11518:3;11485:16;;11463:4;:19;;;:38;;;;:::i;:::-;11462:59;;;;:::i;:::-;11416:14;:29;11439:4;11416:29;;;;;;;;;;;;;;;;:105;;;;;;;:::i;:::-;;;;;;;;11548:13;11534:4;:11;;;:27;;;;;;;;;;;;;;;;;;11664:3;11644:16;;11609:4;:19;;;:51;;;;:::i;:::-;11608:59;;;;:::i;:::-;11574:14;:29;11589:13;11574:29;;;;;;;;;;;;;;;;:94;;;;;;;:::i;:::-;;;;;;;;11703:1;11681:4;:19;;:23;;;;10641:1071;10463:1249;;;;:::o;1899:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3483:176::-;3590:7;3622:14;:29;3637:13;3622:29;;;;;;;;;;;;;;;;3615:36;;3483:176;;;:::o;7791:691::-;7861:1;7851:6;:11;;7843:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;7909:17;7929:5;7935:6;7929:13;;;;;;;;:::i;:::-;;;;;;;;;;;;7909:33;;7985:1;7961:26;;:4;:12;;;;;;;;;;;;:26;;;7953:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8051:1;8028:25;;:4;:11;;;;;;;;;;;;:25;;;8020:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;8116:1;8092:26;;:4;:12;;;;;;;;;;;;:26;;;8084:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8203:4;:14;;;8173;:26;8188:10;8173:26;;;;;;;;;;;;;;;;:44;;8151:138;;;;;;;;;;;;:::i;:::-;;;;;;;;;8330:4;:14;;;8300;:26;8315:10;8300:26;;;;;;;;;;;;;;;;:44;;;;;;;:::i;:::-;;;;;;;;8370:10;8355:4;:12;;;:25;;;;;;;;;;;;;;;;;;8414:4;:14;;;8391:4;:19;;;:37;;;;;;;:::i;:::-;;;;;;;;8444:30;8455:6;8463:10;8444:30;;;;;;;:::i;:::-;;;;;;;;7832:650;7791:691;:::o;4204:239::-;4273:1;4263:7;:11;4255:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4330:5;;;;;;;;;;:18;;;4349:10;4369:4;4376:7;4330:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4428:7;4395:14;:29;4418:4;4395:29;;;;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;4204:239;:::o;2446:122::-;11775:7;;;;;;;;;;;11761:21;;:10;:21;;;11753:30;;;;;;2527:13:::1;2546;2527:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2446:122:::0;:::o;1339:19::-;;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:108::-;1102:24;1120:5;1102:24;:::i;:::-;1097:3;1090:37;1025:108;;:::o;1139:126::-;1176:7;1216:42;1209:5;1205:54;1194:65;;1139:126;;;:::o;1271:96::-;1308:7;1337:24;1355:5;1337:24;:::i;:::-;1326:35;;1271:96;;;:::o;1373:108::-;1450:24;1468:5;1450:24;:::i;:::-;1445:3;1438:37;1373:108;;:::o;1487:99::-;1539:6;1573:5;1567:12;1557:22;;1487:99;;;:::o;1592:159::-;1666:11;1700:6;1695:3;1688:19;1740:4;1735:3;1731:14;1716:29;;1592:159;;;;:::o;1757:246::-;1838:1;1848:113;1862:6;1859:1;1856:13;1848:113;;;1947:1;1942:3;1938:11;1932:18;1928:1;1923:3;1919:11;1912:39;1884:2;1881:1;1877:10;1872:15;;1848:113;;;1995:1;1986:6;1981:3;1977:16;1970:27;1819:184;1757:246;;;:::o;2009:102::-;2050:6;2101:2;2097:7;2092:2;2085:5;2081:14;2077:28;2067:38;;2009:102;;;:::o;2117:357::-;2195:3;2223:39;2256:5;2223:39;:::i;:::-;2278:61;2332:6;2327:3;2278:61;:::i;:::-;2271:68;;2348:65;2406:6;2401:3;2394:4;2387:5;2383:16;2348:65;:::i;:::-;2438:29;2460:6;2438:29;:::i;:::-;2433:3;2429:39;2422:46;;2199:275;2117:357;;;;:::o;2538:1952::-;2649:3;2685:6;2680:3;2676:16;2775:4;2768:5;2764:16;2758:23;2794:63;2851:4;2846:3;2842:14;2828:12;2794:63;:::i;:::-;2702:165;2954:4;2947:5;2943:16;2937:23;2973:63;3030:4;3025:3;3021:14;3007:12;2973:63;:::i;:::-;2877:169;3138:4;3131:5;3127:16;3121:23;3157:63;3214:4;3209:3;3205:14;3191:12;3157:63;:::i;:::-;3056:174;3315:4;3308:5;3304:16;3298:23;3334:63;3391:4;3386:3;3382:14;3368:12;3334:63;:::i;:::-;3240:167;3492:4;3485:5;3481:16;3475:23;3511:63;3568:4;3563:3;3559:14;3545:12;3511:63;:::i;:::-;3417:167;3668:4;3661:5;3657:16;3651:23;3687:63;3744:4;3739:3;3735:14;3721:12;3687:63;:::i;:::-;3594:166;3857:4;3850:5;3846:16;3840:23;3876:63;3933:4;3928:3;3924:14;3910:12;3876:63;:::i;:::-;3770:179;4041:4;4034:5;4030:16;4024:23;4094:3;4088:4;4084:14;4077:4;4072:3;4068:14;4061:38;4120:73;4188:4;4174:12;4120:73;:::i;:::-;4112:81;;3959:245;4296:6;4289:5;4285:18;4279:25;4353:3;4347:4;4343:14;4334:6;4329:3;4325:16;4318:40;4379:73;4447:4;4433:12;4379:73;:::i;:::-;4371:81;;4214:249;4480:4;4473:11;;2654:1836;2538:1952;;;;:::o;4496:357::-;4631:4;4669:2;4658:9;4654:18;4646:26;;4718:9;4712:4;4708:20;4704:1;4693:9;4689:17;4682:47;4746:100;4841:4;4832:6;4746:100;:::i;:::-;4738:108;;4496:357;;;;:::o;4859:118::-;4946:24;4964:5;4946:24;:::i;:::-;4941:3;4934:37;4859:118;;:::o;4983:::-;5070:24;5088:5;5070:24;:::i;:::-;5065:3;5058:37;4983:118;;:::o;5107:169::-;5191:11;5225:6;5220:3;5213:19;5265:4;5260:3;5256:14;5241:29;;5107:169;;;;:::o;5282:377::-;5370:3;5398:39;5431:5;5398:39;:::i;:::-;5453:71;5517:6;5512:3;5453:71;:::i;:::-;5446:78;;5533:65;5591:6;5586:3;5579:4;5572:5;5568:16;5533:65;:::i;:::-;5623:29;5645:6;5623:29;:::i;:::-;5618:3;5614:39;5607:46;;5374:285;5282:377;;;;:::o;5665:1290::-;6022:4;6060:3;6049:9;6045:19;6037:27;;6074:71;6142:1;6131:9;6127:17;6118:6;6074:71;:::i;:::-;6155:72;6223:2;6212:9;6208:18;6199:6;6155:72;:::i;:::-;6237;6305:2;6294:9;6290:18;6281:6;6237:72;:::i;:::-;6319;6387:2;6376:9;6372:18;6363:6;6319:72;:::i;:::-;6401:73;6469:3;6458:9;6454:19;6445:6;6401:73;:::i;:::-;6484;6552:3;6541:9;6537:19;6528:6;6484:73;:::i;:::-;6567;6635:3;6624:9;6620:19;6611:6;6567:73;:::i;:::-;6688:9;6682:4;6678:20;6672:3;6661:9;6657:19;6650:49;6716:78;6789:4;6780:6;6716:78;:::i;:::-;6708:86;;6842:9;6836:4;6832:20;6826:3;6815:9;6811:19;6804:49;6870:78;6943:4;6934:6;6870:78;:::i;:::-;6862:86;;5665:1290;;;;;;;;;;;;:::o;6961:122::-;7034:24;7052:5;7034:24;:::i;:::-;7027:5;7024:35;7014:63;;7073:1;7070;7063:12;7014:63;6961:122;:::o;7089:139::-;7135:5;7173:6;7160:20;7151:29;;7189:33;7216:5;7189:33;:::i;:::-;7089:139;;;;:::o;7234:329::-;7293:6;7342:2;7330:9;7321:7;7317:23;7313:32;7310:119;;;7348:79;;:::i;:::-;7310:119;7468:1;7493:53;7538:7;7529:6;7518:9;7514:22;7493:53;:::i;:::-;7483:63;;7439:117;7234:329;;;;:::o;7569:90::-;7603:7;7646:5;7639:13;7632:21;7621:32;;7569:90;;;:::o;7665:109::-;7746:21;7761:5;7746:21;:::i;:::-;7741:3;7734:34;7665:109;;:::o;7780:210::-;7867:4;7905:2;7894:9;7890:18;7882:26;;7918:65;7980:1;7969:9;7965:17;7956:6;7918:65;:::i;:::-;7780:210;;;;:::o;7996:619::-;8073:6;8081;8089;8138:2;8126:9;8117:7;8113:23;8109:32;8106:119;;;8144:79;;:::i;:::-;8106:119;8264:1;8289:53;8334:7;8325:6;8314:9;8310:22;8289:53;:::i;:::-;8279:63;;8235:117;8391:2;8417:53;8462:7;8453:6;8442:9;8438:22;8417:53;:::i;:::-;8407:63;;8362:118;8519:2;8545:53;8590:7;8581:6;8570:9;8566:22;8545:53;:::i;:::-;8535:63;;8490:118;7996:619;;;;;:::o;8621:222::-;8714:4;8752:2;8741:9;8737:18;8729:26;;8765:71;8833:1;8822:9;8818:17;8809:6;8765:71;:::i;:::-;8621:222;;;;:::o;8849:474::-;8917:6;8925;8974:2;8962:9;8953:7;8949:23;8945:32;8942:119;;;8980:79;;:::i;:::-;8942:119;9100:1;9125:53;9170:7;9161:6;9150:9;9146:22;9125:53;:::i;:::-;9115:63;;9071:117;9227:2;9253:53;9298:7;9289:6;9278:9;9274:22;9253:53;:::i;:::-;9243:63;;9198:118;8849:474;;;;;:::o;9329:222::-;9422:4;9460:2;9449:9;9445:18;9437:26;;9473:71;9541:1;9530:9;9526:17;9517:6;9473:71;:::i;:::-;9329:222;;;;:::o;9557:135::-;9645:6;9679:5;9673:12;9663:22;;9557:135;;;:::o;9698:205::-;9818:11;9852:6;9847:3;9840:19;9892:4;9887:3;9883:14;9868:29;;9698:205;;;;:::o;9909:153::-;9997:4;10020:3;10012:11;;10050:4;10045:3;10041:14;10033:22;;9909:153;;;:::o;10126:1942::-;10227:3;10263:6;10258:3;10254:16;10353:4;10346:5;10342:16;10336:23;10372:63;10429:4;10424:3;10420:14;10406:12;10372:63;:::i;:::-;10280:165;10532:4;10525:5;10521:16;10515:23;10551:63;10608:4;10603:3;10599:14;10585:12;10551:63;:::i;:::-;10455:169;10716:4;10709:5;10705:16;10699:23;10735:63;10792:4;10787:3;10783:14;10769:12;10735:63;:::i;:::-;10634:174;10893:4;10886:5;10882:16;10876:23;10912:63;10969:4;10964:3;10960:14;10946:12;10912:63;:::i;:::-;10818:167;11070:4;11063:5;11059:16;11053:23;11089:63;11146:4;11141:3;11137:14;11123:12;11089:63;:::i;:::-;10995:167;11246:4;11239:5;11235:16;11229:23;11265:63;11322:4;11317:3;11313:14;11299:12;11265:63;:::i;:::-;11172:166;11435:4;11428:5;11424:16;11418:23;11454:63;11511:4;11506:3;11502:14;11488:12;11454:63;:::i;:::-;11348:179;11619:4;11612:5;11608:16;11602:23;11672:3;11666:4;11662:14;11655:4;11650:3;11646:14;11639:38;11698:73;11766:4;11752:12;11698:73;:::i;:::-;11690:81;;11537:245;11874:6;11867:5;11863:18;11857:25;11931:3;11925:4;11921:14;11912:6;11907:3;11903:16;11896:40;11957:73;12025:4;12011:12;11957:73;:::i;:::-;11949:81;;11792:249;12058:4;12051:11;;10232:1836;10126:1942;;;;:::o;12074:240::-;12185:10;12220:88;12304:3;12296:6;12220:88;:::i;:::-;12206:102;;12074:240;;;;:::o;12320:134::-;12411:4;12443;12438:3;12434:14;12426:22;;12320:134;;;:::o;12522:1079::-;12683:3;12712:75;12781:5;12712:75;:::i;:::-;12803:107;12903:6;12898:3;12803:107;:::i;:::-;12796:114;;12936:3;12981:4;12973:6;12969:17;12964:3;12960:27;13011:77;13082:5;13011:77;:::i;:::-;13111:7;13142:1;13127:429;13152:6;13149:1;13146:13;13127:429;;;13223:9;13217:4;13213:20;13208:3;13201:33;13274:6;13268:13;13302:106;13403:4;13388:13;13302:106;:::i;:::-;13294:114;;13431:81;13505:6;13431:81;:::i;:::-;13421:91;;13541:4;13536:3;13532:14;13525:21;;13187:369;13174:1;13171;13167:9;13162:14;;13127:429;;;13131:14;13572:4;13565:11;;13592:3;13585:10;;12688:913;;;;;12522:1079;;;;:::o;13607:457::-;13792:4;13830:2;13819:9;13815:18;13807:26;;13879:9;13873:4;13869:20;13865:1;13854:9;13850:17;13843:47;13907:150;14052:4;14043:6;13907:150;:::i;:::-;13899:158;;13607:457;;;;:::o;14070:117::-;14179:1;14176;14169:12;14193:117;14302:1;14299;14292:12;14316:180;14364:77;14361:1;14354:88;14461:4;14458:1;14451:15;14485:4;14482:1;14475:15;14502:281;14585:27;14607:4;14585:27;:::i;:::-;14577:6;14573:40;14715:6;14703:10;14700:22;14679:18;14667:10;14664:34;14661:62;14658:88;;;14726:18;;:::i;:::-;14658:88;14766:10;14762:2;14755:22;14545:238;14502:281;;:::o;14789:129::-;14823:6;14850:20;;:::i;:::-;14840:30;;14879:33;14907:4;14899:6;14879:33;:::i;:::-;14789:129;;;:::o;14924:308::-;14986:4;15076:18;15068:6;15065:30;15062:56;;;15098:18;;:::i;:::-;15062:56;15136:29;15158:6;15136:29;:::i;:::-;15128:37;;15220:4;15214;15210:15;15202:23;;14924:308;;;:::o;15238:146::-;15335:6;15330:3;15325;15312:30;15376:1;15367:6;15362:3;15358:16;15351:27;15238:146;;;:::o;15390:425::-;15468:5;15493:66;15509:49;15551:6;15509:49;:::i;:::-;15493:66;:::i;:::-;15484:75;;15582:6;15575:5;15568:21;15620:4;15613:5;15609:16;15658:3;15649:6;15644:3;15640:16;15637:25;15634:112;;;15665:79;;:::i;:::-;15634:112;15755:54;15802:6;15797:3;15792;15755:54;:::i;:::-;15474:341;15390:425;;;;;:::o;15835:340::-;15891:5;15940:3;15933:4;15925:6;15921:17;15917:27;15907:122;;15948:79;;:::i;:::-;15907:122;16065:6;16052:20;16090:79;16165:3;16157:6;16150:4;16142:6;16138:17;16090:79;:::i;:::-;16081:88;;15897:278;15835:340;;;;:::o;16181:1125::-;16287:6;16295;16303;16311;16360:3;16348:9;16339:7;16335:23;16331:33;16328:120;;;16367:79;;:::i;:::-;16328:120;16487:1;16512:53;16557:7;16548:6;16537:9;16533:22;16512:53;:::i;:::-;16502:63;;16458:117;16614:2;16640:53;16685:7;16676:6;16665:9;16661:22;16640:53;:::i;:::-;16630:63;;16585:118;16770:2;16759:9;16755:18;16742:32;16801:18;16793:6;16790:30;16787:117;;;16823:79;;:::i;:::-;16787:117;16928:63;16983:7;16974:6;16963:9;16959:22;16928:63;:::i;:::-;16918:73;;16713:288;17068:2;17057:9;17053:18;17040:32;17099:18;17091:6;17088:30;17085:117;;;17121:79;;:::i;:::-;17085:117;17226:63;17281:7;17272:6;17261:9;17257:22;17226:63;:::i;:::-;17216:73;;17011:288;16181:1125;;;;;;;:::o;17312:60::-;17340:3;17361:5;17354:12;;17312:60;;;:::o;17378:142::-;17428:9;17461:53;17479:34;17488:24;17506:5;17488:24;:::i;:::-;17479:34;:::i;:::-;17461:53;:::i;:::-;17448:66;;17378:142;;;:::o;17526:126::-;17576:9;17609:37;17640:5;17609:37;:::i;:::-;17596:50;;17526:126;;;:::o;17658:139::-;17721:9;17754:37;17785:5;17754:37;:::i;:::-;17741:50;;17658:139;;;:::o;17803:157::-;17903:50;17947:5;17903:50;:::i;:::-;17898:3;17891:63;17803:157;;:::o;17966:248::-;18072:4;18110:2;18099:9;18095:18;18087:26;;18123:84;18204:1;18193:9;18189:17;18180:6;18123:84;:::i;:::-;17966:248;;;;:::o;18220:181::-;18360:33;18356:1;18348:6;18344:14;18337:57;18220:181;:::o;18407:366::-;18549:3;18570:67;18634:2;18629:3;18570:67;:::i;:::-;18563:74;;18646:93;18735:3;18646:93;:::i;:::-;18764:2;18759:3;18755:12;18748:19;;18407:366;;;:::o;18779:419::-;18945:4;18983:2;18972:9;18968:18;18960:26;;19032:9;19026:4;19022:20;19018:1;19007:9;19003:17;18996:47;19060:131;19186:4;19060:131;:::i;:::-;19052:139;;18779:419;;;:::o;19204:180::-;19252:77;19249:1;19242:88;19349:4;19346:1;19339:15;19373:4;19370:1;19363:15;19390:180;19438:77;19435:1;19428:88;19535:4;19532:1;19525:15;19559:4;19556:1;19549:15;19576:320;19620:6;19657:1;19651:4;19647:12;19637:22;;19704:1;19698:4;19694:12;19725:18;19715:81;;19781:4;19773:6;19769:17;19759:27;;19715:81;19843:2;19835:6;19832:14;19812:18;19809:38;19806:84;;19862:18;;:::i;:::-;19806:84;19627:269;19576:320;;;:::o;19902:176::-;20042:28;20038:1;20030:6;20026:14;20019:52;19902:176;:::o;20084:366::-;20226:3;20247:67;20311:2;20306:3;20247:67;:::i;:::-;20240:74;;20323:93;20412:3;20323:93;:::i;:::-;20441:2;20436:3;20432:12;20425:19;;20084:366;;;:::o;20456:419::-;20622:4;20660:2;20649:9;20645:18;20637:26;;20709:9;20703:4;20699:20;20695:1;20684:9;20680:17;20673:47;20737:131;20863:4;20737:131;:::i;:::-;20729:139;;20456:419;;;:::o;20881:170::-;21021:22;21017:1;21009:6;21005:14;20998:46;20881:170;:::o;21057:366::-;21199:3;21220:67;21284:2;21279:3;21220:67;:::i;:::-;21213:74;;21296:93;21385:3;21296:93;:::i;:::-;21414:2;21409:3;21405:12;21398:19;;21057:366;;;:::o;21429:419::-;21595:4;21633:2;21622:9;21618:18;21610:26;;21682:9;21676:4;21672:20;21668:1;21657:9;21653:17;21646:47;21710:131;21836:4;21710:131;:::i;:::-;21702:139;;21429:419;;;:::o;21854:178::-;21994:30;21990:1;21982:6;21978:14;21971:54;21854:178;:::o;22038:366::-;22180:3;22201:67;22265:2;22260:3;22201:67;:::i;:::-;22194:74;;22277:93;22366:3;22277:93;:::i;:::-;22395:2;22390:3;22386:12;22379:19;;22038:366;;;:::o;22410:419::-;22576:4;22614:2;22603:9;22599:18;22591:26;;22663:9;22657:4;22653:20;22649:1;22638:9;22634:17;22627:47;22691:131;22817:4;22691:131;:::i;:::-;22683:139;;22410:419;;;:::o;22835:178::-;22975:30;22971:1;22963:6;22959:14;22952:54;22835:178;:::o;23019:366::-;23161:3;23182:67;23246:2;23241:3;23182:67;:::i;:::-;23175:74;;23258:93;23347:3;23258:93;:::i;:::-;23376:2;23371:3;23367:12;23360:19;;23019:366;;;:::o;23391:419::-;23557:4;23595:2;23584:9;23580:18;23572:26;;23644:9;23638:4;23634:20;23630:1;23619:9;23615:17;23608:47;23672:131;23798:4;23672:131;:::i;:::-;23664:139;;23391:419;;;:::o;23816:180::-;23864:77;23861:1;23854:88;23961:4;23958:1;23951:15;23985:4;23982:1;23975:15;24002:233;24041:3;24064:24;24082:5;24064:24;:::i;:::-;24055:33;;24110:66;24103:5;24100:77;24097:103;;24180:18;;:::i;:::-;24097:103;24227:1;24220:5;24216:13;24209:20;;24002:233;;;:::o;24241:191::-;24281:3;24300:20;24318:1;24300:20;:::i;:::-;24295:25;;24334:20;24352:1;24334:20;:::i;:::-;24329:25;;24377:1;24374;24370:9;24363:16;;24398:3;24395:1;24392:10;24389:36;;;24405:18;;:::i;:::-;24389:36;24241:191;;;;:::o;24438:170::-;24578:22;24574:1;24566:6;24562:14;24555:46;24438:170;:::o;24614:366::-;24756:3;24777:67;24841:2;24836:3;24777:67;:::i;:::-;24770:74;;24853:93;24942:3;24853:93;:::i;:::-;24971:2;24966:3;24962:12;24955:19;;24614:366;;;:::o;24986:419::-;25152:4;25190:2;25179:9;25175:18;25167:26;;25239:9;25233:4;25229:20;25225:1;25214:9;25210:17;25203:47;25267:131;25393:4;25267:131;:::i;:::-;25259:139;;24986:419;;;:::o;25411:229::-;25551:34;25547:1;25539:6;25535:14;25528:58;25620:12;25615:2;25607:6;25603:15;25596:37;25411:229;:::o;25646:366::-;25788:3;25809:67;25873:2;25868:3;25809:67;:::i;:::-;25802:74;;25885:93;25974:3;25885:93;:::i;:::-;26003:2;25998:3;25994:12;25987:19;;25646:366;;;:::o;26018:419::-;26184:4;26222:2;26211:9;26207:18;26199:26;;26271:9;26265:4;26261:20;26257:1;26246:9;26242:17;26235:47;26299:131;26425:4;26299:131;:::i;:::-;26291:139;;26018:419;;;:::o;26443:332::-;26564:4;26602:2;26591:9;26587:18;26579:26;;26615:71;26683:1;26672:9;26668:17;26659:6;26615:71;:::i;:::-;26696:72;26764:2;26753:9;26749:18;26740:6;26696:72;:::i;:::-;26443:332;;;;;:::o;26781:116::-;26851:21;26866:5;26851:21;:::i;:::-;26844:5;26841:32;26831:60;;26887:1;26884;26877:12;26831:60;26781:116;:::o;26903:137::-;26957:5;26988:6;26982:13;26973:22;;27004:30;27028:5;27004:30;:::i;:::-;26903:137;;;;:::o;27046:345::-;27113:6;27162:2;27150:9;27141:7;27137:23;27133:32;27130:119;;;27168:79;;:::i;:::-;27130:119;27288:1;27313:61;27366:7;27357:6;27346:9;27342:22;27313:61;:::i;:::-;27303:71;;27259:125;27046:345;;;;:::o;27397:194::-;27437:4;27457:20;27475:1;27457:20;:::i;:::-;27452:25;;27491:20;27509:1;27491:20;:::i;:::-;27486:25;;27535:1;27532;27528:9;27520:17;;27559:1;27553:4;27550:11;27547:37;;;27564:18;;:::i;:::-;27547:37;27397:194;;;;:::o;27597:223::-;27737:34;27733:1;27725:6;27721:14;27714:58;27806:6;27801:2;27793:6;27789:15;27782:31;27597:223;:::o;27826:366::-;27968:3;27989:67;28053:2;28048:3;27989:67;:::i;:::-;27982:74;;28065:93;28154:3;28065:93;:::i;:::-;28183:2;28178:3;28174:12;28167:19;;27826:366;;;:::o;28198:419::-;28364:4;28402:2;28391:9;28387:18;28379:26;;28451:9;28445:4;28441:20;28437:1;28426:9;28422:17;28415:47;28479:131;28605:4;28479:131;:::i;:::-;28471:139;;28198:419;;;:::o;28623:172::-;28763:24;28759:1;28751:6;28747:14;28740:48;28623:172;:::o;28801:366::-;28943:3;28964:67;29028:2;29023:3;28964:67;:::i;:::-;28957:74;;29040:93;29129:3;29040:93;:::i;:::-;29158:2;29153:3;29149:12;29142:19;;28801:366;;;:::o;29173:419::-;29339:4;29377:2;29366:9;29362:18;29354:26;;29426:9;29420:4;29416:20;29412:1;29401:9;29397:17;29390:47;29454:131;29580:4;29454:131;:::i;:::-;29446:139;;29173:419;;;:::o;29598:332::-;29719:4;29757:2;29746:9;29742:18;29734:26;;29770:71;29838:1;29827:9;29823:17;29814:6;29770:71;:::i;:::-;29851:72;29919:2;29908:9;29904:18;29895:6;29851:72;:::i;:::-;29598:332;;;;;:::o;29936:163::-;30076:15;30072:1;30064:6;30060:14;30053:39;29936:163;:::o;30105:366::-;30247:3;30268:67;30332:2;30327:3;30268:67;:::i;:::-;30261:74;;30344:93;30433:3;30344:93;:::i;:::-;30462:2;30457:3;30453:12;30446:19;;30105:366;;;:::o;30477:419::-;30643:4;30681:2;30670:9;30666:18;30658:26;;30730:9;30724:4;30720:20;30716:1;30705:9;30701:17;30694:47;30758:131;30884:4;30758:131;:::i;:::-;30750:139;;30477:419;;;:::o;30902:165::-;31042:17;31038:1;31030:6;31026:14;31019:41;30902:165;:::o;31073:366::-;31215:3;31236:67;31300:2;31295:3;31236:67;:::i;:::-;31229:74;;31312:93;31401:3;31312:93;:::i;:::-;31430:2;31425:3;31421:12;31414:19;;31073:366;;;:::o;31445:419::-;31611:4;31649:2;31638:9;31634:18;31626:26;;31698:9;31692:4;31688:20;31684:1;31673:9;31669:17;31662:47;31726:131;31852:4;31726:131;:::i;:::-;31718:139;;31445:419;;;:::o;31870:179::-;32010:31;32006:1;31998:6;31994:14;31987:55;31870:179;:::o;32055:366::-;32197:3;32218:67;32282:2;32277:3;32218:67;:::i;:::-;32211:74;;32294:93;32383:3;32294:93;:::i;:::-;32412:2;32407:3;32403:12;32396:19;;32055:366;;;:::o;32427:419::-;32593:4;32631:2;32620:9;32616:18;32608:26;;32680:9;32674:4;32670:20;32666:1;32655:9;32651:17;32644:47;32708:131;32834:4;32708:131;:::i;:::-;32700:139;;32427:419;;;:::o;32852:332::-;32973:4;33011:2;33000:9;32996:18;32988:26;;33024:71;33092:1;33081:9;33077:17;33068:6;33024:71;:::i;:::-;33105:72;33173:2;33162:9;33158:18;33149:6;33105:72;:::i;:::-;32852:332;;;;;:::o;33190:143::-;33247:5;33278:6;33272:13;33263:22;;33294:33;33321:5;33294:33;:::i;:::-;33190:143;;;;:::o;33339:351::-;33409:6;33458:2;33446:9;33437:7;33433:23;33429:32;33426:119;;;33464:79;;:::i;:::-;33426:119;33584:1;33609:64;33665:7;33656:6;33645:9;33641:22;33609:64;:::i;:::-;33599:74;;33555:128;33339:351;;;;:::o;33696:225::-;33836:34;33832:1;33824:6;33820:14;33813:58;33905:8;33900:2;33892:6;33888:15;33881:33;33696:225;:::o;33927:366::-;34069:3;34090:67;34154:2;34149:3;34090:67;:::i;:::-;34083:74;;34166:93;34255:3;34166:93;:::i;:::-;34284:2;34279:3;34275:12;34268:19;;33927:366;;;:::o;34299:419::-;34465:4;34503:2;34492:9;34488:18;34480:26;;34552:9;34546:4;34542:20;34538:1;34527:9;34523:17;34516:47;34580:131;34706:4;34580:131;:::i;:::-;34572:139;;34299:419;;;:::o;34724:223::-;34864:34;34860:1;34852:6;34848:14;34841:58;34933:6;34928:2;34920:6;34916:15;34909:31;34724:223;:::o;34953:366::-;35095:3;35116:67;35180:2;35175:3;35116:67;:::i;:::-;35109:74;;35192:93;35281:3;35192:93;:::i;:::-;35310:2;35305:3;35301:12;35294:19;;34953:366;;;:::o;35325:419::-;35491:4;35529:2;35518:9;35514:18;35506:26;;35578:9;35572:4;35568:20;35564:1;35553:9;35549:17;35542:47;35606:131;35732:4;35606:131;:::i;:::-;35598:139;;35325:419;;;:::o;35750:180::-;35890:32;35886:1;35878:6;35874:14;35867:56;35750:180;:::o;35936:366::-;36078:3;36099:67;36163:2;36158:3;36099:67;:::i;:::-;36092:74;;36175:93;36264:3;36175:93;:::i;:::-;36293:2;36288:3;36284:12;36277:19;;35936:366;;;:::o;36308:419::-;36474:4;36512:2;36501:9;36497:18;36489:26;;36561:9;36555:4;36551:20;36547:1;36536:9;36532:17;36525:47;36589:131;36715:4;36589:131;:::i;:::-;36581:139;;36308:419;;;:::o;36733:180::-;36781:77;36778:1;36771:88;36878:4;36875:1;36868:15;36902:4;36899:1;36892:15;36919:230;37059:34;37055:1;37047:6;37043:14;37036:58;37128:13;37123:2;37115:6;37111:15;37104:38;36919:230;:::o;37155:366::-;37297:3;37318:67;37382:2;37377:3;37318:67;:::i;:::-;37311:74;;37394:93;37483:3;37394:93;:::i;:::-;37512:2;37507:3;37503:12;37496:19;;37155:366;;;:::o;37527:419::-;37693:4;37731:2;37720:9;37716:18;37708:26;;37780:9;37774:4;37770:20;37766:1;37755:9;37751:17;37744:47;37808:131;37934:4;37808:131;:::i;:::-;37800:139;;37527:419;;;:::o;37952:167::-;38092:19;38088:1;38080:6;38076:14;38069:43;37952:167;:::o;38125:366::-;38267:3;38288:67;38352:2;38347:3;38288:67;:::i;:::-;38281:74;;38364:93;38453:3;38364:93;:::i;:::-;38482:2;38477:3;38473:12;38466:19;;38125:366;;;:::o;38497:419::-;38663:4;38701:2;38690:9;38686:18;38678:26;;38750:9;38744:4;38740:20;38736:1;38725:9;38721:17;38714:47;38778:131;38904:4;38778:131;:::i;:::-;38770:139;;38497:419;;;:::o;38922:235::-;39062:34;39058:1;39050:6;39046:14;39039:58;39131:18;39126:2;39118:6;39114:15;39107:43;38922:235;:::o;39163:366::-;39305:3;39326:67;39390:2;39385:3;39326:67;:::i;:::-;39319:74;;39402:93;39491:3;39402:93;:::i;:::-;39520:2;39515:3;39511:12;39504:19;;39163:366;;;:::o;39535:419::-;39701:4;39739:2;39728:9;39724:18;39716:26;;39788:9;39782:4;39778:20;39774:1;39763:9;39759:17;39752:47;39816:131;39942:4;39816:131;:::i;:::-;39808:139;;39535:419;;;:::o;39960:410::-;40000:7;40023:20;40041:1;40023:20;:::i;:::-;40018:25;;40057:20;40075:1;40057:20;:::i;:::-;40052:25;;40112:1;40109;40105:9;40134:30;40152:11;40134:30;:::i;:::-;40123:41;;40313:1;40304:7;40300:15;40297:1;40294:22;40274:1;40267:9;40247:83;40224:139;;40343:18;;:::i;:::-;40224:139;40008:362;39960:410;;;;:::o;40376:180::-;40424:77;40421:1;40414:88;40521:4;40518:1;40511:15;40545:4;40542:1;40535:15;40562:185;40602:1;40619:20;40637:1;40619:20;:::i;:::-;40614:25;;40653:20;40671:1;40653:20;:::i;:::-;40648:25;;40692:1;40682:35;;40697:18;;:::i;:::-;40682:35;40739:1;40736;40732:9;40727:14;;40562:185;;;;:::o;40753:227::-;40893:34;40889:1;40881:6;40877:14;40870:58;40962:10;40957:2;40949:6;40945:15;40938:35;40753:227;:::o;40986:366::-;41128:3;41149:67;41213:2;41208:3;41149:67;:::i;:::-;41142:74;;41225:93;41314:3;41225:93;:::i;:::-;41343:2;41338:3;41334:12;41327:19;;40986:366;;;:::o;41358:419::-;41524:4;41562:2;41551:9;41547:18;41539:26;;41611:9;41605:4;41601:20;41597:1;41586:9;41582:17;41575:47;41639:131;41765:4;41639:131;:::i;:::-;41631:139;;41358:419;;;:::o;41783:442::-;41932:4;41970:2;41959:9;41955:18;41947:26;;41983:71;42051:1;42040:9;42036:17;42027:6;41983:71;:::i;:::-;42064:72;42132:2;42121:9;42117:18;42108:6;42064:72;:::i;:::-;42146;42214:2;42203:9;42199:18;42190:6;42146:72;:::i;:::-;41783:442;;;;;;:::o;42231:232::-;42371:34;42367:1;42359:6;42355:14;42348:58;42440:15;42435:2;42427:6;42423:15;42416:40;42231:232;:::o;42469:366::-;42611:3;42632:67;42696:2;42691:3;42632:67;:::i;:::-;42625:74;;42708:93;42797:3;42708:93;:::i;:::-;42826:2;42821:3;42817:12;42810:19;;42469:366;;;:::o;42841:419::-;43007:4;43045:2;43034:9;43030:18;43022:26;;43094:9;43088:4;43084:20;43080:1;43069:9;43065:17;43058:47;43122:131;43248:4;43122:131;:::i;:::-;43114:139;;42841:419;;;:::o;43266:163::-;43406:15;43402:1;43394:6;43390:14;43383:39;43266:163;:::o;43435:366::-;43577:3;43598:67;43662:2;43657:3;43598:67;:::i;:::-;43591:74;;43674:93;43763:3;43674:93;:::i;:::-;43792:2;43787:3;43783:12;43776:19;;43435:366;;;:::o;43807:419::-;43973:4;44011:2;44000:9;43996:18;43988:26;;44060:9;44054:4;44050:20;44046:1;44035:9;44031:17;44024:47;44088:131;44214:4;44088:131;:::i;:::-;44080:139;;43807:419;;;:::o;44232:175::-;44372:27;44368:1;44360:6;44356:14;44349:51;44232:175;:::o;44413:366::-;44555:3;44576:67;44640:2;44635:3;44576:67;:::i;:::-;44569:74;;44652:93;44741:3;44652:93;:::i;:::-;44770:2;44765:3;44761:12;44754:19;;44413:366;;;:::o;44785:419::-;44951:4;44989:2;44978:9;44974:18;44966:26;;45038:9;45032:4;45028:20;45024:1;45013:9;45009:17;45002:47;45066:131;45192:4;45066:131;:::i;:::-;45058:139;;44785:419;;;:::o;45210:141::-;45259:4;45282:3;45274:11;;45305:3;45302:1;45295:14;45339:4;45336:1;45326:18;45318:26;;45210:141;;;:::o;45357:93::-;45394:6;45441:2;45436;45429:5;45425:14;45421:23;45411:33;;45357:93;;;:::o;45456:107::-;45500:8;45550:5;45544:4;45540:16;45519:37;;45456:107;;;;:::o;45569:393::-;45638:6;45688:1;45676:10;45672:18;45711:97;45741:66;45730:9;45711:97;:::i;:::-;45829:39;45859:8;45848:9;45829:39;:::i;:::-;45817:51;;45901:4;45897:9;45890:5;45886:21;45877:30;;45950:4;45940:8;45936:19;45929:5;45926:30;45916:40;;45645:317;;45569:393;;;;;:::o;45968:142::-;46018:9;46051:53;46069:34;46078:24;46096:5;46078:24;:::i;:::-;46069:34;:::i;:::-;46051:53;:::i;:::-;46038:66;;45968:142;;;:::o;46116:75::-;46159:3;46180:5;46173:12;;46116:75;;;:::o;46197:269::-;46307:39;46338:7;46307:39;:::i;:::-;46368:91;46417:41;46441:16;46417:41;:::i;:::-;46409:6;46402:4;46396:11;46368:91;:::i;:::-;46362:4;46355:105;46273:193;46197:269;;;:::o;46472:73::-;46517:3;46472:73;:::o;46551:189::-;46628:32;;:::i;:::-;46669:65;46727:6;46719;46713:4;46669:65;:::i;:::-;46604:136;46551:189;;:::o;46746:186::-;46806:120;46823:3;46816:5;46813:14;46806:120;;;46877:39;46914:1;46907:5;46877:39;:::i;:::-;46850:1;46843:5;46839:13;46830:22;;46806:120;;;46746:186;;:::o;46938:543::-;47039:2;47034:3;47031:11;47028:446;;;47073:38;47105:5;47073:38;:::i;:::-;47157:29;47175:10;47157:29;:::i;:::-;47147:8;47143:44;47340:2;47328:10;47325:18;47322:49;;;47361:8;47346:23;;47322:49;47384:80;47440:22;47458:3;47440:22;:::i;:::-;47430:8;47426:37;47413:11;47384:80;:::i;:::-;47043:431;;47028:446;46938:543;;;:::o;47487:117::-;47541:8;47591:5;47585:4;47581:16;47560:37;;47487:117;;;;:::o;47610:169::-;47654:6;47687:51;47735:1;47731:6;47723:5;47720:1;47716:13;47687:51;:::i;:::-;47683:56;47768:4;47762;47758:15;47748:25;;47661:118;47610:169;;;;:::o;47784:295::-;47860:4;48006:29;48031:3;48025:4;48006:29;:::i;:::-;47998:37;;48068:3;48065:1;48061:11;48055:4;48052:21;48044:29;;47784:295;;;;:::o;48084:1395::-;48201:37;48234:3;48201:37;:::i;:::-;48303:18;48295:6;48292:30;48289:56;;;48325:18;;:::i;:::-;48289:56;48369:38;48401:4;48395:11;48369:38;:::i;:::-;48454:67;48514:6;48506;48500:4;48454:67;:::i;:::-;48548:1;48572:4;48559:17;;48604:2;48596:6;48593:14;48621:1;48616:618;;;;49278:1;49295:6;49292:77;;;49344:9;49339:3;49335:19;49329:26;49320:35;;49292:77;49395:67;49455:6;49448:5;49395:67;:::i;:::-;49389:4;49382:81;49251:222;48586:887;;48616:618;48668:4;48664:9;48656:6;48652:22;48702:37;48734:4;48702:37;:::i;:::-;48761:1;48775:208;48789:7;48786:1;48783:14;48775:208;;;48868:9;48863:3;48859:19;48853:26;48845:6;48838:42;48919:1;48911:6;48907:14;48897:24;;48966:2;48955:9;48951:18;48938:31;;48812:4;48809:1;48805:12;48800:17;;48775:208;;;49011:6;49002:7;48999:19;48996:179;;;49069:9;49064:3;49060:19;49054:26;49112:48;49154:4;49146:6;49142:17;49131:9;49112:48;:::i;:::-;49104:6;49097:64;49019:156;48996:179;49221:1;49217;49209:6;49205:14;49201:22;49195:4;49188:36;48623:611;;;48586:887;;48176:1303;;;48084:1395;;:::o;49485:167::-;49625:19;49621:1;49613:6;49609:14;49602:43;49485:167;:::o;49658:366::-;49800:3;49821:67;49885:2;49880:3;49821:67;:::i;:::-;49814:74;;49897:93;49986:3;49897:93;:::i;:::-;50015:2;50010:3;50006:12;49999:19;;49658:366;;;:::o;50030:419::-;50196:4;50234:2;50223:9;50219:18;50211:26;;50283:9;50277:4;50273:20;50269:1;50258:9;50254:17;50247:47;50311:131;50437:4;50311:131;:::i;:::-;50303:139;;50030:419;;;:::o;50455:231::-;50595:34;50591:1;50583:6;50579:14;50572:58;50664:14;50659:2;50651:6;50647:15;50640:39;50455:231;:::o;50692:366::-;50834:3;50855:67;50919:2;50914:3;50855:67;:::i;:::-;50848:74;;50931:93;51020:3;50931:93;:::i;:::-;51049:2;51044:3;51040:12;51033:19;;50692:366;;;:::o;51064:419::-;51230:4;51268:2;51257:9;51253:18;51245:26;;51317:9;51311:4;51307:20;51303:1;51292:9;51288:17;51281:47;51345:131;51471:4;51345:131;:::i;:::-;51337:139;;51064:419;;;:::o
Swarm Source
ipfs://0adba8c12fd0d9e9184cd3eea9d060e6b4dbd59f453a5720a8ea57ed933673d7
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.