[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiquidity", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateUniswapV2Router", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "marketingWalletUpdated", "type": "event" }, { "inputs": [ { "internalType": "address[]", "name": "_whitelist", "type": "address[]" } ], "name": "Add", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedMaxTransactionAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "airdrop", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "blocks", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deadAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "updAds", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "excludeFromMaxTransaction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "limitsInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualsend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "manualswap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxSwapAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransactionAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "openTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_buy", "type": "uint256" }, { "internalType": "uint256", "name": "_sell", "type": "uint256" } ], "name": "updateFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newMarketingWallet", "type": "address" } ], "name": "updateMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateMaxSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxTxnAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxWalletAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "updateSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateSwapTokensAtAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_whitelist", "type": "address" }, { "internalType": "bool", "name": "isWL", "type": "bool" } ], "name": "whitelistContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526001600b5f6101000a81548160ff0219169083151502179055505f600b60016101000a81548160ff0219169083151502179055505f600b60026101000a81548160ff0219169083151502179055503480156200005e575f80fd5b506040518060400160405280600681526020017f44657869667900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f44585900000000000000000000000000000000000000000000000000000000008152508160039081620000dc919062000c9b565b508060049081620000ee919062000c9b565b5050506200011162000105620004e160201b60201c565b620004e860201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90506200013c816001620005ab60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e0919062000de4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000246573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026c919062000de4565b6040518363ffffffff1660e01b81526004016200028b92919062000e25565b6020604051808303815f875af1158015620002a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ce919062000de4565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200031660a0516001620005ab60201b60201c565b6200032b60a05160016200069260201b60201c565b5f6b033b2e3c9fd0803ce800000090506a108b2a2c280290940000006007819055506a108b2a2c280290940000006009819055506a01a784379d99db420000006008819055506a069e10de76676d08000000600a819055503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f620003ef6064620003e06055856200073060201b90919060201c565b6200074760201b90919060201c565b90505f6200041d60646200040e600f866200073060201b90919060201c565b6200074760201b90919060201c565b90506200043130836200075e60201b60201c565b6200044333826200075e60201b60201c565b6200046562000457620008ce60201b60201c565b6001620008f660201b60201c565b62000478306001620008f660201b60201c565b6200048d61dead6001620008f660201b60201c565b620004af620004a1620008ce60201b60201c565b6001620005ab60201b60201c565b620004c2306001620005ab60201b60201c565b620004d761dead6001620005ab60201b60201c565b50505050620010b4565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005bb620004e160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005e1620008ce60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200063a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006319062000eae565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f81836200073f919062000efb565b905092915050565b5f818362000756919062000f72565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c69062000ff7565b60405180910390fd5b620007e25f838362000a2d60201b60201c565b8060025f828254620007f5919062001017565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000849919062001017565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008af919062001062565b60405180910390a3620008ca5f838362000a3260201b60201c565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000906620004e160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200092c620008ce60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000985576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200097c9062000eae565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000a21919062001099565b60405180910390a25050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000ab357607f821691505b60208210810362000ac95762000ac862000a6e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000b2d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000af0565b62000b39868362000af0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000b8362000b7d62000b778462000b51565b62000b5a565b62000b51565b9050919050565b5f819050919050565b62000b9e8362000b63565b62000bb662000bad8262000b8a565b84845462000afc565b825550505050565b5f90565b62000bcc62000bbe565b62000bd981848462000b93565b505050565b5b8181101562000c005762000bf45f8262000bc2565b60018101905062000bdf565b5050565b601f82111562000c4f5762000c198162000acf565b62000c248462000ae1565b8101602085101562000c34578190505b62000c4c62000c438562000ae1565b83018262000bde565b50505b505050565b5f82821c905092915050565b5f62000c715f198460080262000c54565b1980831691505092915050565b5f62000c8b838362000c60565b9150826002028217905092915050565b62000ca68262000a37565b67ffffffffffffffff81111562000cc25762000cc162000a41565b5b62000cce825462000a9b565b62000cdb82828562000c04565b5f60209050601f83116001811462000d11575f841562000cfc578287015190505b62000d08858262000c7e565b86555062000d77565b601f19841662000d218662000acf565b5f5b8281101562000d4a5784890151825560018201915060208501945060208101905062000d23565b8683101562000d6a578489015162000d66601f89168262000c60565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000dae8262000d83565b9050919050565b62000dc08162000da2565b811462000dcb575f80fd5b50565b5f8151905062000dde8162000db5565b92915050565b5f6020828403121562000dfc5762000dfb62000d7f565b5b5f62000e0b8482850162000dce565b91505092915050565b62000e1f8162000da2565b82525050565b5f60408201905062000e3a5f83018562000e14565b62000e49602083018462000e14565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000e9660208362000e50565b915062000ea38262000e60565b602082019050919050565b5f6020820190508181035f83015262000ec78162000e88565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000f078262000b51565b915062000f148362000b51565b925082820262000f248162000b51565b9150828204841483151762000f3e5762000f3d62000ece565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f7e8262000b51565b915062000f8b8362000b51565b92508262000f9e5762000f9d62000f45565b5b828204905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000fdf601f8362000e50565b915062000fec8262000fa9565b602082019050919050565b5f6020820190508181035f830152620010108162000fd1565b9050919050565b5f620010238262000b51565b9150620010308362000b51565b92508282019050808211156200104b576200104a62000ece565b5b92915050565b6200105c8162000b51565b82525050565b5f602082019050620010775f83018462001051565b92915050565b5f8115159050919050565b62001093816200107d565b82525050565b5f602082019050620010ae5f83018462001088565b92915050565b60805160a0516149f96200110e5f395f8181610fec0152818161110d015261187401525f8181610ba401528181610f0701528181610f350152818161102801528181612ecf01528181612fae0152612fd501526149f95ff3fe608060405260043610610280575f3560e01c8063881dce601161014e578063bbc0c742116100c0578063d257b34f11610079578063d257b34f14610935578063d85ba0631461095d578063dd62ed3e14610987578063e2f45605146109c3578063f2fde38b146109ed578063f8b45b0514610a1557610287565b8063bbc0c74214610851578063c02466681461087b578063c18bc195146108a3578063c8c8ebe4146108cb578063c9567bf9146108f5578063cce987d41461090b57610287565b80639a7a23d6116101125780639a7a23d614610725578063a457c2d71461074d578063a672990c14610789578063a9059cbb146107b1578063aacebbe3146107ed578063b62496f51461081557610287565b8063881dce60146106575780638da5cb5b1461067f578063924de9b7146106a957806395d89b41146106d1578063967ff23e146106fb57610287565b8063437d6704116101f25780636ddd1713116101ab5780636ddd1713146105875780636fc3eaec146105b157806370a08231146105c7578063715018a614610603578063751039fc146106195780637571336a1461062f57610287565b8063437d67041461049d57806349bd5a5e146104b95780634a62bb65146104e3578063672434821461050d5780636a486a8e146105355780636db794371461055f57610287565b806318160ddd1161024457806318160ddd1461037f578063203e727e146103a957806323b872dd146103d157806327c8f8351461040d578063313ce56714610437578063395093511461046157610287565b806306fdde031461028b578063095ea7b3146102b557806310d5de53146102f1578063150074a31461032d5780631694505e1461035557610287565b3661028757005b5f80fd5b348015610296575f80fd5b5061029f610a3f565b6040516102ac9190613503565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d691906135c1565b610acf565b6040516102e89190613619565b60405180910390f35b3480156102fc575f80fd5b5061031760048036038101906103129190613632565b610aec565b6040516103249190613619565b60405180910390f35b348015610338575f80fd5b50610353600480360381019061034e919061365d565b610b09565b005b348015610360575f80fd5b50610369610ba2565b60405161037691906136e3565b60405180910390f35b34801561038a575f80fd5b50610393610bc6565b6040516103a0919061370b565b60405180910390f35b3480156103b4575f80fd5b506103cf60048036038101906103ca919061365d565b610bcf565b005b3480156103dc575f80fd5b506103f760048036038101906103f29190613724565b610cde565b6040516104049190613619565b60405180910390f35b348015610418575f80fd5b50610421610dd0565b60405161042e9190613783565b60405180910390f35b348015610442575f80fd5b5061044b610dd6565b60405161045891906137b7565b60405180910390f35b34801561046c575f80fd5b50610487600480360381019061048291906135c1565b610dde565b6040516104949190613619565b60405180910390f35b6104b760048036038101906104b29190613910565b610e85565b005b3480156104c4575f80fd5b506104cd61110b565b6040516104da9190613783565b60405180910390f35b3480156104ee575f80fd5b506104f761112f565b6040516105049190613619565b60405180910390f35b348015610518575f80fd5b50610533600480360381019061052e9190613a05565b611141565b005b348015610540575f80fd5b506105496111ea565b604051610556919061370b565b60405180910390f35b34801561056a575f80fd5b5061058560048036038101906105809190613a83565b6111f0565b005b348015610592575f80fd5b5061059b611306565b6040516105a89190613619565b60405180910390f35b3480156105bc575f80fd5b506105c5611319565b005b3480156105d2575f80fd5b506105ed60048036038101906105e89190613632565b6113a7565b6040516105fa919061370b565b60405180910390f35b34801561060e575f80fd5b506106176113ec565b005b348015610624575f80fd5b5061062d611473565b005b34801561063a575f80fd5b5061065560048036038101906106509190613aeb565b61150a565b005b348015610662575f80fd5b5061067d6004803603810190610678919061365d565b6115de565b005b34801561068a575f80fd5b5061069361169f565b6040516106a09190613783565b60405180910390f35b3480156106b4575f80fd5b506106cf60048036038101906106ca9190613b29565b6116c7565b005b3480156106dc575f80fd5b506106e5611760565b6040516106f29190613503565b60405180910390f35b348015610706575f80fd5b5061070f6117f0565b60405161071c919061370b565b60405180910390f35b348015610730575f80fd5b5061074b60048036038101906107469190613aeb565b6117f6565b005b348015610758575f80fd5b50610773600480360381019061076e91906135c1565b61190e565b6040516107809190613619565b60405180910390f35b348015610794575f80fd5b506107af60048036038101906107aa9190613aeb565b6119f4565b005b3480156107bc575f80fd5b506107d760048036038101906107d291906135c1565b611b1c565b6040516107e49190613619565b60405180910390f35b3480156107f8575f80fd5b50610813600480360381019061080e9190613632565b611b39565b005b348015610820575f80fd5b5061083b60048036038101906108369190613632565b611c73565b6040516108489190613619565b60405180910390f35b34801561085c575f80fd5b50610865611c90565b6040516108729190613619565b60405180910390f35b348015610886575f80fd5b506108a1600480360381019061089c9190613aeb565b611ca3565b005b3480156108ae575f80fd5b506108c960048036038101906108c4919061365d565b611dc5565b005b3480156108d6575f80fd5b506108df611ed4565b6040516108ec919061370b565b60405180910390f35b348015610900575f80fd5b50610909611eda565b005b348015610916575f80fd5b5061091f611fa3565b60405161092c919061370b565b60405180910390f35b348015610940575f80fd5b5061095b6004803603810190610956919061365d565b611fa9565b005b348015610968575f80fd5b50610971612042565b60405161097e919061370b565b60405180910390f35b348015610992575f80fd5b506109ad60048036038101906109a89190613b54565b612048565b6040516109ba919061370b565b60405180910390f35b3480156109ce575f80fd5b506109d76120ca565b6040516109e4919061370b565b60405180910390f35b3480156109f8575f80fd5b50610a136004803603810190610a0e9190613632565b6120d0565b005b348015610a20575f80fd5b50610a296121c6565b604051610a36919061370b565b60405180910390f35b606060038054610a4e90613bbf565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7a90613bbf565b8015610ac55780601f10610a9c57610100808354040283529160200191610ac5565b820191905f5260205f20905b815481529060010190602001808311610aa857829003601f168201915b5050505050905090565b5f610ae2610adb6121cc565b84846121d3565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b610b116121cc565b73ffffffffffffffffffffffffffffffffffffffff16610b2f61169f565b73ffffffffffffffffffffffffffffffffffffffff1614610b85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7c90613c39565b60405180910390fd5b670de0b6b3a764000081610b999190613c84565b600a8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610bd76121cc565b73ffffffffffffffffffffffffffffffffffffffff16610bf561169f565b73ffffffffffffffffffffffffffffffffffffffff1614610c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4290613c39565b60405180910390fd5b670de0b6b3a76400006103e86001610c61610bc6565b610c6b9190613c84565b610c759190613cf2565b610c7f9190613cf2565b811015610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb890613d92565b60405180910390fd5b670de0b6b3a764000081610cd59190613c84565b60078190555050565b5f610cea848484612396565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610d316121cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da790613e20565b60405180910390fd5b610dc485610dbc6121cc565b8584036121d3565b60019150509392505050565b61dead81565b5f6012905090565b5f610e7b610dea6121cc565b848460015f610df76121cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e769190613e3e565b6121d3565b6001905092915050565b610e8d6121cc565b73ffffffffffffffffffffffffffffffffffffffff16610eab61169f565b73ffffffffffffffffffffffffffffffffffffffff1614610f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef890613c39565b60405180910390fd5b610f33307f0000000000000000000000000000000000000000000000000000000000000000610f2e610bc6565b6121d3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f7a306113a7565b5f80610f8461169f565b426040518863ffffffff1660e01b8152600401610fa696959493929190613eaa565b60606040518083038185885af1158015610fc2573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fe79190613f1d565b5050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611085929190613f6d565b6020604051808303815f875af11580156110a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c59190613fa8565b505f5b8151811015611107576110f68282815181106110e7576110e6613fd3565b5b602002602001015160016119f4565b8061110090614000565b90506110c8565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b5f9054906101000a900460ff1681565b5f8484905011801561115857508383905082829050145b611160575f80fd5b5f3390505f5b858590508110156111e2576111cf8287878481811061118857611187613fd3565b5b905060200201602081019061119d9190613632565b670de0b6b3a76400008787868181106111b9576111b8613fd3565b5b905060200201356111ca9190613c84565b612396565b80806111da90614000565b915050611166565b505050505050565b60105481565b6111f86121cc565b73ffffffffffffffffffffffffffffffffffffffff1661121661169f565b73ffffffffffffffffffffffffffffffffffffffff161461126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390613c39565b60405180910390fd5b600f8211156112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790614091565b60405180910390fd5b600f8111156112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb90614091565b60405180910390fd5b81600f81905550806010819055505050565b600b60029054906101000a900460ff1681565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161135f906140dc565b5f6040518083038185875af1925050503d805f8114611399576040519150601f19603f3d011682016040523d82523d5f602084013e61139e565b606091505b50508091505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6113f46121cc565b73ffffffffffffffffffffffffffffffffffffffff1661141261169f565b73ffffffffffffffffffffffffffffffffffffffff1614611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f90613c39565b60405180910390fd5b6114715f612d6f565b565b61147b6121cc565b73ffffffffffffffffffffffffffffffffffffffff1661149961169f565b73ffffffffffffffffffffffffffffffffffffffff16146114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690613c39565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b6115126121cc565b73ffffffffffffffffffffffffffffffffffffffff1661153061169f565b73ffffffffffffffffffffffffffffffffffffffff1614611586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157d90613c39565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661161e6121cc565b73ffffffffffffffffffffffffffffffffffffffff161461163d575f80fd5b611646306113a7565b811115801561165457505f81115b611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a9061413a565b60405180910390fd5b61169c81612e32565b50565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6116cf6121cc565b73ffffffffffffffffffffffffffffffffffffffff166116ed61169f565b73ffffffffffffffffffffffffffffffffffffffff1614611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a90613c39565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b60606004805461176f90613bbf565b80601f016020809104026020016040519081016040528092919081815260200182805461179b90613bbf565b80156117e65780601f106117bd576101008083540402835291602001916117e6565b820191905f5260205f20905b8154815290600101906020018083116117c957829003601f168201915b5050505050905090565b600e5481565b6117fe6121cc565b73ffffffffffffffffffffffffffffffffffffffff1661181c61169f565b73ffffffffffffffffffffffffffffffffffffffff1614611872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186990613c39565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f7906141c8565b60405180910390fd5b61190a8282613065565b5050565b5f8060015f61191b6121cc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156119d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cc90614256565b60405180910390fd5b6119e96119e06121cc565b858584036121d3565b600191505092915050565b6119fc6121cc565b73ffffffffffffffffffffffffffffffffffffffff16611a1a61169f565b73ffffffffffffffffffffffffffffffffffffffff1614611a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6790613c39565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611b2f611b286121cc565b8484612396565b6001905092915050565b611b416121cc565b73ffffffffffffffffffffffffffffffffffffffff16611b5f61169f565b73ffffffffffffffffffffffffffffffffffffffff1614611bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bac90613c39565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b611cab6121cc565b73ffffffffffffffffffffffffffffffffffffffff16611cc961169f565b73ffffffffffffffffffffffffffffffffffffffff1614611d1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1690613c39565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611db99190613619565b60405180910390a25050565b611dcd6121cc565b73ffffffffffffffffffffffffffffffffffffffff16611deb61169f565b73ffffffffffffffffffffffffffffffffffffffff1614611e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3890613c39565b60405180910390fd5b670de0b6b3a76400006103e86005611e57610bc6565b611e619190613c84565b611e6b9190613cf2565b611e759190613cf2565b811015611eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eae906142e4565b60405180910390fd5b670de0b6b3a764000081611ecb9190613c84565b60098190555050565b60075481565b611ee26121cc565b73ffffffffffffffffffffffffffffffffffffffff16611f0061169f565b73ffffffffffffffffffffffffffffffffffffffff1614611f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4d90613c39565b60405180910390fd5b5f600e819055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043600c8190555042600d81905550565b600a5481565b611fb16121cc565b73ffffffffffffffffffffffffffffffffffffffff16611fcf61169f565b73ffffffffffffffffffffffffffffffffffffffff1614612025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201c90613c39565b60405180910390fd5b670de0b6b3a7640000816120399190613c84565b60088190555050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b6120d86121cc565b73ffffffffffffffffffffffffffffffffffffffff166120f661169f565b73ffffffffffffffffffffffffffffffffffffffff161461214c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214390613c39565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b190614372565b60405180910390fd5b6121c381612d6f565b50565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612241576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223890614400565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a69061448e565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612389919061370b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fb9061451c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612472576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612469906145aa565b60405180910390fd5b5f81036124895761248483835f613103565b612d6a565b600b5f9054906101000a900460ff1615612994576124a561169f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561251357506124e361169f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561254b57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612585575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561259e5750600560149054906101000a900460ff16155b156129935743600e54600c546125b49190613e3e565b106125ca5760196010819055506019600f819055505b600b60019054906101000a900460ff166126b95760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612679575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126af90614612565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612756575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127fd576007548111156127a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612797906146a0565b60405180910390fd5b6009546127ac836113a7565b826127b79190613e3e565b11156127f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ef90614708565b60405180910390fd5b612992565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561289a575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128e9576007548111156128e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128db90614796565b60405180910390fd5b612991565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661299057600954612943836113a7565b8261294e9190613e3e565b111561298f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298690614708565b60405180910390fd5b5b5b5b5b5b5f61299e306113a7565b90505f60085482101590508080156129c25750600b60029054906101000a900460ff165b80156129db5750600560149054906101000a900460ff16155b8015612a2e575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a81575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ad4575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b6557600360145f4381526020019081526020015f20541015612b64576001600560146101000a81548160ff021916908315150217905550612b16613378565b5f600560146101000a81548160ff021916908315150217905550600160145f4381526020019081526020015f2054612b4e9190613e3e565b60145f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c14575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c1d575f90505b5f8115612d5a5760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c7b57505f601054115b15612caf57612ca86064612c9a6010548861344590919063ffffffff16565b61345a90919063ffffffff16565b9050612d37565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d0657505f600f54115b15612d3657612d336064612d25600f548861344590919063ffffffff16565b61345a90919063ffffffff16565b90505b5b5f811115612d4b57612d4a873083613103565b5b8085612d5791906147b4565b94505b612d65878787613103565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612e4e57612e4d6137d4565b5b604051908082528060200260200182016040528015612e7c5781602001602082028036833780820191505090505b50905030815f81518110612e9357612e92613fd3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f5a91906147fb565b81600181518110612f6e57612f6d613fd3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fd3307f0000000000000000000000000000000000000000000000000000000000000000846121d3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016130349594939291906148dd565b5f604051808303815f87803b15801561304b575f80fd5b505af115801561305d573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613171576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131689061451c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036131df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131d6906145aa565b60405180910390fd5b6131ea83838361346f565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561326d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613264906149a5565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132fb9190613e3e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161335f919061370b565b60405180910390a3613372848484613474565b50505050565b5f613382306113a7565b90505f808203613393575050613443565b600a548211156133a357600a5491505b5f8290506133b081612e32565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516133f9906140dc565b5f6040518083038185875af1925050503d805f8114613433576040519150601f19603f3d011682016040523d82523d5f602084013e613438565b606091505b505080935050505050505b565b5f81836134529190613c84565b905092915050565b5f81836134679190613cf2565b905092915050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156134b0578082015181840152602081019050613495565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6134d582613479565b6134df8185613483565b93506134ef818560208601613493565b6134f8816134bb565b840191505092915050565b5f6020820190508181035f83015261351b81846134cb565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61355d82613534565b9050919050565b61356d81613553565b8114613577575f80fd5b50565b5f8135905061358881613564565b92915050565b5f819050919050565b6135a08161358e565b81146135aa575f80fd5b50565b5f813590506135bb81613597565b92915050565b5f80604083850312156135d7576135d661352c565b5b5f6135e48582860161357a565b92505060206135f5858286016135ad565b9150509250929050565b5f8115159050919050565b613613816135ff565b82525050565b5f60208201905061362c5f83018461360a565b92915050565b5f602082840312156136475761364661352c565b5b5f6136548482850161357a565b91505092915050565b5f602082840312156136725761367161352c565b5b5f61367f848285016135ad565b91505092915050565b5f819050919050565b5f6136ab6136a66136a184613534565b613688565b613534565b9050919050565b5f6136bc82613691565b9050919050565b5f6136cd826136b2565b9050919050565b6136dd816136c3565b82525050565b5f6020820190506136f65f8301846136d4565b92915050565b6137058161358e565b82525050565b5f60208201905061371e5f8301846136fc565b92915050565b5f805f6060848603121561373b5761373a61352c565b5b5f6137488682870161357a565b93505060206137598682870161357a565b925050604061376a868287016135ad565b9150509250925092565b61377d81613553565b82525050565b5f6020820190506137965f830184613774565b92915050565b5f60ff82169050919050565b6137b18161379c565b82525050565b5f6020820190506137ca5f8301846137a8565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61380a826134bb565b810181811067ffffffffffffffff82111715613829576138286137d4565b5b80604052505050565b5f61383b613523565b90506138478282613801565b919050565b5f67ffffffffffffffff821115613866576138656137d4565b5b602082029050602081019050919050565b5f80fd5b5f61388d6138888461384c565b613832565b905080838252602082019050602084028301858111156138b0576138af613877565b5b835b818110156138d957806138c5888261357a565b8452602084019350506020810190506138b2565b5050509392505050565b5f82601f8301126138f7576138f66137d0565b5b813561390784826020860161387b565b91505092915050565b5f602082840312156139255761392461352c565b5b5f82013567ffffffffffffffff81111561394257613941613530565b5b61394e848285016138e3565b91505092915050565b5f80fd5b5f8083601f8401126139705761396f6137d0565b5b8235905067ffffffffffffffff81111561398d5761398c613957565b5b6020830191508360208202830111156139a9576139a8613877565b5b9250929050565b5f8083601f8401126139c5576139c46137d0565b5b8235905067ffffffffffffffff8111156139e2576139e1613957565b5b6020830191508360208202830111156139fe576139fd613877565b5b9250929050565b5f805f8060408587031215613a1d57613a1c61352c565b5b5f85013567ffffffffffffffff811115613a3a57613a39613530565b5b613a468782880161395b565b9450945050602085013567ffffffffffffffff811115613a6957613a68613530565b5b613a75878288016139b0565b925092505092959194509250565b5f8060408385031215613a9957613a9861352c565b5b5f613aa6858286016135ad565b9250506020613ab7858286016135ad565b9150509250929050565b613aca816135ff565b8114613ad4575f80fd5b50565b5f81359050613ae581613ac1565b92915050565b5f8060408385031215613b0157613b0061352c565b5b5f613b0e8582860161357a565b9250506020613b1f85828601613ad7565b9150509250929050565b5f60208284031215613b3e57613b3d61352c565b5b5f613b4b84828501613ad7565b91505092915050565b5f8060408385031215613b6a57613b6961352c565b5b5f613b778582860161357a565b9250506020613b888582860161357a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613bd657607f821691505b602082108103613be957613be8613b92565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613c23602083613483565b9150613c2e82613bef565b602082019050919050565b5f6020820190508181035f830152613c5081613c17565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613c8e8261358e565b9150613c998361358e565b9250828202613ca78161358e565b91508282048414831517613cbe57613cbd613c57565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613cfc8261358e565b9150613d078361358e565b925082613d1757613d16613cc5565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613d7c602f83613483565b9150613d8782613d22565b604082019050919050565b5f6020820190508181035f830152613da981613d70565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613e0a602883613483565b9150613e1582613db0565b604082019050919050565b5f6020820190508181035f830152613e3781613dfe565b9050919050565b5f613e488261358e565b9150613e538361358e565b9250828201905080821115613e6b57613e6a613c57565b5b92915050565b5f819050919050565b5f613e94613e8f613e8a84613e71565b613688565b61358e565b9050919050565b613ea481613e7a565b82525050565b5f60c082019050613ebd5f830189613774565b613eca60208301886136fc565b613ed76040830187613e9b565b613ee46060830186613e9b565b613ef16080830185613774565b613efe60a08301846136fc565b979650505050505050565b5f81519050613f1781613597565b92915050565b5f805f60608486031215613f3457613f3361352c565b5b5f613f4186828701613f09565b9350506020613f5286828701613f09565b9250506040613f6386828701613f09565b9150509250925092565b5f604082019050613f805f830185613774565b613f8d60208301846136fc565b9392505050565b5f81519050613fa281613ac1565b92915050565b5f60208284031215613fbd57613fbc61352c565b5b5f613fca84828501613f94565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61400a8261358e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361403c5761403b613c57565b5b600182019050919050565b7f45786365656420746865206c696d6974000000000000000000000000000000005f82015250565b5f61407b601083613483565b915061408682614047565b602082019050919050565b5f6020820190508181035f8301526140a88161406f565b9050919050565b5f81905092915050565b50565b5f6140c75f836140af565b91506140d2826140b9565b5f82019050919050565b5f6140e6826140bc565b9150819050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f614124600c83613483565b915061412f826140f0565b602082019050919050565b5f6020820190508181035f83015261415181614118565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f6141b2603983613483565b91506141bd82614158565b604082019050919050565b5f6020820190508181035f8301526141df816141a6565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f614240602583613483565b915061424b826141e6565b604082019050919050565b5f6020820190508181035f83015261426d81614234565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f6142ce602483613483565b91506142d982614274565b604082019050919050565b5f6020820190508181035f8301526142fb816142c2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61435c602683613483565b915061436782614302565b604082019050919050565b5f6020820190508181035f83015261438981614350565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6143ea602483613483565b91506143f582614390565b604082019050919050565b5f6020820190508181035f830152614417816143de565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614478602283613483565b91506144838261441e565b604082019050919050565b5f6020820190508181035f8301526144a58161446c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614506602583613483565b9150614511826144ac565b604082019050919050565b5f6020820190508181035f830152614533816144fa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614594602383613483565b915061459f8261453a565b604082019050919050565b5f6020820190508181035f8301526145c181614588565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f6145fc601683613483565b9150614607826145c8565b602082019050919050565b5f6020820190508181035f830152614629816145f0565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61468a603583613483565b915061469582614630565b604082019050919050565b5f6020820190508181035f8301526146b78161467e565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6146f2601383613483565b91506146fd826146be565b602082019050919050565b5f6020820190508181035f83015261471f816146e6565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f614780603683613483565b915061478b82614726565b604082019050919050565b5f6020820190508181035f8301526147ad81614774565b9050919050565b5f6147be8261358e565b91506147c98361358e565b92508282039050818111156147e1576147e0613c57565b5b92915050565b5f815190506147f581613564565b92915050565b5f602082840312156148105761480f61352c565b5b5f61481d848285016147e7565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61485881613553565b82525050565b5f614869838361484f565b60208301905092915050565b5f602082019050919050565b5f61488b82614826565b6148958185614830565b93506148a083614840565b805f5b838110156148d05781516148b7888261485e565b97506148c283614875565b9250506001810190506148a3565b5085935050505092915050565b5f60a0820190506148f05f8301886136fc565b6148fd6020830187613e9b565b818103604083015261490f8186614881565b905061491e6060830185613774565b61492b60808301846136fc565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61498f602683613483565b915061499a82614935565b604082019050919050565b5f6020820190508181035f8301526149bc81614983565b905091905056fea2646970667358221220b02e29229b38ae34f5a9abf8a26ed122e8b3ece4f5830b516987b759957040b264736f6c63430008150033