[ { "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": [], "name": "AutoNukeLP", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sniper", "type": "address" } ], "name": "BoughtEarly", "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": [], "name": "ManualNukeLP", "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": "devWalletUpdated", "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": "", "type": "address" } ], "name": "_isExcludedMaxTransactionAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "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": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "isBlacklisted", "type": "bool" } ], "name": "blacklistAccount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "buyDevFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyMarketingFee", "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": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "devWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "disableTransferDelay", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "earlySellLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "earlySellMarketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enableEarlySellTax", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [], "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": [], "name": "getBuyLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getIsBlockLatest", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getSellEarlyMarketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isBlockLatest", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "limitsInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "marketingWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellDevFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellLiquidityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellMarketingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": [ { "internalType": "bool", "name": "onoff", "type": "bool" } ], "name": "setEarlySellTax", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_isBlockLatest", "type": "bool" } ], "name": "setIsBlockLatest", "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": "teamWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForDev", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForLiquidity", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokensForMarketing", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "transferDelayEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" } ], "name": "updateBuyFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "updateDevWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newMarketingWallet", "type": "address" } ], "name": "updateMarketingWallet", "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": "uint256", "name": "_marketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "_liquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" }, { "internalType": "uint256", "name": "_earlySellLiquidityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_earlySellMarketingFee", "type": "uint256" } ], "name": "updateSellFees", "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": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526001600c5f6101000a81548160ff0219169083151502179055505f600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff0219169083151502179055505f600c60036101000a81548160ff0219169083151502179055506001600c60046101000a81548160ff021916908315150217905550600160105f6101000a81548160ff0219169083151502179055503480156100ad575f80fd5b506040518060400160405280600881526020017f4c696c45746865720000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4c494c4500000000000000000000000000000000000000000000000000000000815250816003908161012991906126e6565b50806004908161013991906126e6565b5050505f61014b61070c60201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d905061021181600161071360201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561028e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102b29190612813565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610317573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061033b9190612813565b6040518363ffffffff1660e01b815260040161035892919061284d565b6020604051808303815f875af1158015610374573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103989190612813565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506103de60a051600161071360201b60201c565b6103f160a051600161080760201b60201c565b5f601490505f805f601e90505f805f805f6d14bddab3e51a57cff87a5000000090506c35193a1e7376a35c15b40000006009819055506c6a32743ce6ed46b82b68000000600b8190555061271060058261044b91906128a1565b610455919061290f565b600a81905550886012819055508760138190555086601481905550601454601354601254610483919061293f565b61048d919061293f565b6011819055508560168190555084601781905550836018819055506018546017546016546104bb919061293f565b6104c5919061293f565b6015819055508260198190555081601a81905550736d58b4e0ee88e39573fd62a4a796dcb9cd2165f360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ecb365f110efc9526e01ad77680714f41405716860075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507333bb079ffa411acbf5c9091fed59c2a59200276f60085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506105f36105e66108a560201b60201c565b60016108cd60201b60201c565b6106043060016108cd60201b60201c565b61061761dead60016108cd60201b60201c565b6106356106286108a560201b60201c565b600161071360201b60201c565b61064630600161071360201b60201c565b61065961dead600161071360201b60201c565b6106693382610a0f60201b60201c565b6106b33360065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460038561069e91906128a1565b6106a8919061290f565b610ba160201b60201c565b6106fd3360085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660646002856106e891906128a1565b6106f2919061290f565b610ba160201b60201c565b50505050505050505050613368565b5f33905090565b61072161070c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a6906129cc565b60405180910390fd5b8060205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060215f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6108db61070c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610969576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610960906129cc565b60405180910390fd5b80601f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051610a039190612a04565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7490612a67565b60405180910390fd5b610a8e5f83836119c260201b60201c565b610aa3816002546119c760201b90919060201c565b600281905550610af8815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119c760201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b959190612a94565b60405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0690612b1d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490612bab565b60405180910390fd5b600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610d1b5750600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b610d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5190612c39565b60405180910390fd5b5f8103610d7757610d7283835f611a2460201b60201c565b6119bd565b600c5f9054906101000a900460ff161561140057610d996108a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e0d5750610ddd6108a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610e4557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610e7f575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610e985750600560149054906101000a900460ff16155b156113ff57600c60019054906101000a900460ff16610f8c57601f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610f4c5750601f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8290612ca1565b60405180910390fd5b5b60105f9054906101000a900460ff161561111957610fae6108a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611017575060805173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611051575060a05173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156111185743600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106110d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cc90612d55565b60405180910390fd5b43600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60215f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156111b6575060205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561126357600954811115611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f790612de3565b60405180910390fd5b600b5461121283611cb360201b60201c565b8261121d919061293f565b111561125e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125590612e4b565b60405180910390fd5b6113fe565b60215f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611300575060205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561134f5760095481111561134a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134190612ed9565b60405180910390fd5b6113fd565b60205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166113fc57600b546113af83611cb360201b60201c565b826113ba919061293f565b11156113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290612e4b565b60405180910390fd5b5b5b5b5b5b5f601e5461140e919061293f565b431115801561144b575060a05173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114975750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156114f1575f600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5f61150130611cb360201b60201c565b90505f600a5482101590508080156115255750600c60039054906101000a900460ff165b801561153e5750600560149054906101000a900460ff16155b8015611591575060215f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156115e45750601f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156116375750601f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611680576001600560146101000a81548160ff021916908315150217905550611665611cf860201b60201c565b5f600560146101000a81548160ff0219169083151502179055505b5f600560149054906101000a900460ff16159050601f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061172f5750601f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611738575f90505b5f81156119a75760215f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561179657505f601554115b15611860576117c360646117b560155488611f3260201b90919060201c565b611fa960201b90919060201c565b9050601554601754826117d691906128a1565b6117e0919061290f565b601c5f8282546117f0919061293f565b925050819055506015546018548261180891906128a1565b611812919061290f565b601d5f828254611822919061293f565b925050819055506015546016548261183a91906128a1565b611844919061290f565b601b5f828254611854919061293f565b9250508190555061197e565b60215f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156118b757505f601154115b1561197d576118e460646118d660115488611f3260201b90919060201c565b611fa960201b90919060201c565b9050601154601354826118f791906128a1565b611901919061290f565b601c5f828254611911919061293f565b925050819055506011546014548261192991906128a1565b611933919061290f565b601d5f828254611943919061293f565b925050819055506011546012548261195b91906128a1565b611965919061290f565b601b5f828254611975919061293f565b925050819055505b5b5f81111561199857611997873083611a2460201b60201c565b5b80856119a49190612ef7565b94505b6119b8878787611a2460201b60201c565b505050505b505050565b505050565b5f8082846119d5919061293f565b905083811015611a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1190612f74565b60405180910390fd5b8091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8990612b1d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af790612bab565b60405180910390fd5b611b118383836119c260201b60201c565b611b7a81604051806060016040528060268152602001618bb5602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ff860201b9092919060201c565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c09815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119c760201b90919060201c565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ca69190612a94565b60405180910390a3505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f611d0830611cb360201b60201c565b90505f601d54601b54601c54611d1e919061293f565b611d28919061293f565b90505f80831480611d3857505f82145b15611d4557505050611f30565b6014600a54611d5491906128a1565b831115611d6d576014600a54611d6a91906128a1565b92505b5f600283601c5486611d7f91906128a1565b611d89919061290f565b611d93919061290f565b90505f611da9828661205a60201b90919060201c565b90505f479050611dbe826120a960201b60201c565b5f611dd2824761205a60201b90919060201c565b90505f611dfc87611dee601d5485611f3260201b90919060201c565b611fa960201b90919060201c565b90505f601c819055505f601b819055505f601d8190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051611e5890612fbf565b5f6040518083038185875af1925050503d805f8114611e92576040519150601f19603f3d011682016040523d82523d5f602084013e611e97565b606091505b50508096505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051611ee290612fbf565b5f6040518083038185875af1925050503d805f8114611f1c576040519150601f19603f3d011682016040523d82523d5f602084013e611f21565b606091505b50508096505050505050505050505b565b5f808303611f42575f9050611fa3565b5f8284611f4f91906128a1565b9050828482611f5e919061290f565b14611f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9590613043565b60405180910390fd5b809150505b92915050565b5f611ff083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061228860201b60201c565b905092915050565b5f83831115829061203f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203691906130b7565b60405180910390fd5b505f838561204d9190612ef7565b9050809150509392505050565b5f6120a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ff860201b60201c565b905092915050565b5f600267ffffffffffffffff8111156120c5576120c46124b6565b5b6040519080825280602002602001820160405280156120f35781602001602082028036833780820191505090505b50905030815f8151811061210a576121096130d7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561218f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121b39190612813565b816001815181106121c7576121c66130d7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061221430608051846122e960201b60201c565b60805173ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122579594939291906131f4565b5f604051808303815f87803b15801561226e575f80fd5b505af1158015612280573d5f803e3d5ffd5b505050505050565b5f80831182906122ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c591906130b7565b60405180910390fd5b505f83856122dc919061290f565b9050809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234e906132bc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bc9061334a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161249f9190612a94565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061252757607f821691505b60208210810361253a576125396124e3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261259c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612561565b6125a68683612561565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6125ea6125e56125e0846125be565b6125c7565b6125be565b9050919050565b5f819050919050565b612603836125d0565b61261761260f826125f1565b84845461256d565b825550505050565b5f90565b61262b61261f565b6126368184846125fa565b505050565b5b818110156126595761264e5f82612623565b60018101905061263c565b5050565b601f82111561269e5761266f81612540565b61267884612552565b81016020851015612687578190505b61269b61269385612552565b83018261263b565b50505b505050565b5f82821c905092915050565b5f6126be5f19846008026126a3565b1980831691505092915050565b5f6126d683836126af565b9150826002028217905092915050565b6126ef826124ac565b67ffffffffffffffff811115612708576127076124b6565b5b6127128254612510565b61271d82828561265d565b5f60209050601f83116001811461274e575f841561273c578287015190505b61274685826126cb565b8655506127ad565b601f19841661275c86612540565b5f5b828110156127835784890151825560018201915060208501945060208101905061275e565b868310156127a0578489015161279c601f8916826126af565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6127e2826127b9565b9050919050565b6127f2816127d8565b81146127fc575f80fd5b50565b5f8151905061280d816127e9565b92915050565b5f60208284031215612828576128276127b5565b5b5f612835848285016127ff565b91505092915050565b612847816127d8565b82525050565b5f6040820190506128605f83018561283e565b61286d602083018461283e565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6128ab826125be565b91506128b6836125be565b92508282026128c4816125be565b915082820484148315176128db576128da612874565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612919826125be565b9150612924836125be565b925082612934576129336128e2565b5b828204905092915050565b5f612949826125be565b9150612954836125be565b925082820190508082111561296c5761296b612874565b5b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129b6602083612972565b91506129c182612982565b602082019050919050565b5f6020820190508181035f8301526129e3816129aa565b9050919050565b5f8115159050919050565b6129fe816129ea565b82525050565b5f602082019050612a175f8301846129f5565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f612a51601f83612972565b9150612a5c82612a1d565b602082019050919050565b5f6020820190508181035f830152612a7e81612a45565b9050919050565b612a8e816125be565b82525050565b5f602082019050612aa75f830184612a85565b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b07602583612972565b9150612b1282612aad565b604082019050919050565b5f6020820190508181035f830152612b3481612afb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b95602383612972565b9150612ba082612b3b565b604082019050919050565b5f6020820190508181035f830152612bc281612b89565b9050919050565b7f596f752068617665206265656e20626c61636b6c69737465642066726f6d20745f8201527f72616e73666572696e6720746f6b656e73000000000000000000000000000000602082015250565b5f612c23603183612972565b9150612c2e82612bc9565b604082019050919050565b5f6020820190508181035f830152612c5081612c17565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f612c8b601683612972565b9150612c9682612c57565b602082019050919050565b5f6020820190508181035f830152612cb881612c7f565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612d3f604983612972565b9150612d4a82612cbf565b606082019050919050565b5f6020820190508181035f830152612d6c81612d33565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f612dcd603583612972565b9150612dd882612d73565b604082019050919050565b5f6020820190508181035f830152612dfa81612dc1565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f612e35601383612972565b9150612e4082612e01565b602082019050919050565b5f6020820190508181035f830152612e6281612e29565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f612ec3603683612972565b9150612ece82612e69565b604082019050919050565b5f6020820190508181035f830152612ef081612eb7565b9050919050565b5f612f01826125be565b9150612f0c836125be565b9250828203905081811115612f2457612f23612874565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f5e601b83612972565b9150612f6982612f2a565b602082019050919050565b5f6020820190508181035f830152612f8b81612f52565b9050919050565b5f81905092915050565b50565b5f612faa5f83612f92565b9150612fb582612f9c565b5f82019050919050565b5f612fc982612f9f565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61302d602183612972565b915061303882612fd3565b604082019050919050565b5f6020820190508181035f83015261305a81613021565b9050919050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f613089826124ac565b6130938185612972565b93506130a3818560208601613061565b6130ac8161306f565b840191505092915050565b5f6020820190508181035f8301526130cf818461307f565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f61312761312261311d84613104565b6125c7565b6125be565b9050919050565b6131378161310d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61316f816127d8565b82525050565b5f6131808383613166565b60208301905092915050565b5f602082019050919050565b5f6131a28261313d565b6131ac8185613147565b93506131b783613157565b805f5b838110156131e75781516131ce8882613175565b97506131d98361318c565b9250506001810190506131ba565b5085935050505092915050565b5f60a0820190506132075f830188612a85565b613214602083018761312e565b81810360408301526132268186613198565b9050613235606083018561283e565b6132426080830184612a85565b9695505050505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6132a6602483612972565b91506132b18261324c565b604082019050919050565b5f6020820190508181035f8301526132d38161329a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613334602283612972565b915061333f826132da565b604082019050919050565b5f6020820190508181035f83015261336181613328565b9050919050565b60805160a0516157fb6133ba5f395f81816114fb01528181611e2201528181613082015261348e01525f8181610f9e0152818161302a015281816141fb015281816142da015261430101526157fb5ff3fe6080604052600436106103c6575f3560e01c80638a8c523c116101f1578063bbc0c7421161010c578063e2f456051161009f578063f63696bd1161006e578063f63696bd14610e2d578063f637434214610e57578063f8b45b0514610e81578063ff935af614610eab576103cd565b8063e2f4560514610d87578063e884f26014610db1578063f11a24d314610ddb578063f2fde38b14610e05576103cd565b8063c8c8ebe4116100db578063c8c8ebe414610cbb578063d257b34f14610ce5578063d85ba06314610d21578063dd62ed3e14610d4b576103cd565b8063bbc0c74214610c17578063c024666814610c41578063c18bc19514610c69578063c876d0b914610c91576103cd565b80639fccce3211610184578063a4d15b6411610153578063a4d15b6414610b4d578063a9059cbb14610b77578063aacebbe314610bb3578063b62496f514610bdb576103cd565b80639fccce3214610a95578063a0d82dc514610abf578063a265777814610ae9578063a457c2d714610b11576103cd565b8063924de9b7116101c0578063924de9b7146109f157806395d89b4114610a195780639a7a23d614610a435780639c3b4fdc14610a6b576103cd565b80638a8c523c1461095d5780638da5cb5b146109735780638ea5220f1461099d57806392136913146109c7576103cd565b806349bd5a5e116102e1578063715018a611610274578063793c85e211610243578063793c85e2146108b95780637bce5a04146108e15780637d78ba1f1461090b5780638095d56414610935576103cd565b8063715018a614610827578063751039fc1461083d5780637571336a1461086757806375f0a8741461088f576103cd565b806359927044116102b0578063599270441461076d5780636a486a8e146107975780636ddd1713146107c157806370a08231146107eb576103cd565b806349bd5a5e146106b35780634a62bb65146106dd5780634fbee19314610707578063541a43cf14610743576103cd565b8063203e727e116103595780632d5a5d34116103285780632d5a5d34146105fb578063313ce56714610623578063395093511461064d5780633e2dc5b214610689576103cd565b8063203e727e1461054357806323b872dd1461056b5780632bab8882146105a75780632bf3d42d146105d1576103cd565b806318160ddd1161039557806318160ddd1461049d5780631816467f146104c75780631a8145bb146104ef5780631f3fed8f14610519576103cd565b806306fdde03146103d1578063095ea7b3146103fb57806310d5de53146104375780631694505e14610473576103cd565b366103cd57005b5f80fd5b3480156103dc575f80fd5b506103e5610ed3565b6040516103f29190614462565b60405180910390f35b348015610406575f80fd5b50610421600480360381019061041c9190614513565b610f63565b60405161042e919061456b565b60405180910390f35b348015610442575f80fd5b5061045d60048036038101906104589190614584565b610f80565b60405161046a919061456b565b60405180910390f35b34801561047e575f80fd5b50610487610f9c565b604051610494919061460a565b60405180910390f35b3480156104a8575f80fd5b506104b1610fc0565b6040516104be9190614632565b60405180910390f35b3480156104d2575f80fd5b506104ed60048036038101906104e89190614584565b610fc9565b005b3480156104fa575f80fd5b5061050361111d565b6040516105109190614632565b60405180910390f35b348015610524575f80fd5b5061052d611123565b60405161053a9190614632565b60405180910390f35b34801561054e575f80fd5b506105696004803603810190610564919061464b565b611129565b005b348015610576575f80fd5b50610591600480360381019061058c9190614676565b611252565b60405161059e919061456b565b60405180910390f35b3480156105b2575f80fd5b506105bb611326565b6040516105c8919061456b565b60405180910390f35b3480156105dc575f80fd5b506105e5611339565b6040516105f29190614632565b60405180910390f35b348015610606575f80fd5b50610621600480360381019061061c91906146f0565b61133f565b005b34801561062e575f80fd5b5061063761142d565b6040516106449190614749565b60405180910390f35b348015610658575f80fd5b50610673600480360381019061066e9190614513565b611435565b604051610680919061456b565b60405180910390f35b348015610694575f80fd5b5061069d6114e3565b6040516106aa919061456b565b60405180910390f35b3480156106be575f80fd5b506106c76114f9565b6040516106d49190614771565b60405180910390f35b3480156106e8575f80fd5b506106f161151d565b6040516106fe919061456b565b60405180910390f35b348015610712575f80fd5b5061072d60048036038101906107289190614584565b61152f565b60405161073a919061456b565b60405180910390f35b34801561074e575f80fd5b50610757611581565b6040516107649190614632565b60405180910390f35b348015610778575f80fd5b50610781611587565b60405161078e9190614771565b60405180910390f35b3480156107a2575f80fd5b506107ab6115ac565b6040516107b89190614632565b60405180910390f35b3480156107cc575f80fd5b506107d56115b2565b6040516107e2919061456b565b60405180910390f35b3480156107f6575f80fd5b50610811600480360381019061080c9190614584565b6115c5565b60405161081e9190614632565b60405180910390f35b348015610832575f80fd5b5061083b61160a565b005b348015610848575f80fd5b5061085161175d565b60405161085e919061456b565b60405180910390f35b348015610872575f80fd5b5061088d600480360381019061088891906146f0565b611814565b005b34801561089a575f80fd5b506108a3611902565b6040516108b09190614771565b60405180910390f35b3480156108c4575f80fd5b506108df60048036038101906108da919061478a565b611927565b005b3480156108ec575f80fd5b506108f56119da565b6040516109029190614632565b60405180910390f35b348015610916575f80fd5b5061091f6119e0565b60405161092c9190614632565b60405180910390f35b348015610940575f80fd5b5061095b600480360381019061095691906147b5565b611a06565b005b348015610968575f80fd5b50610971611b1f565b005b34801561097e575f80fd5b50610987611bf4565b6040516109949190614771565b60405180910390f35b3480156109a8575f80fd5b506109b1611c1c565b6040516109be9190614771565b60405180910390f35b3480156109d2575f80fd5b506109db611c41565b6040516109e89190614632565b60405180910390f35b3480156109fc575f80fd5b50610a176004803603810190610a12919061478a565b611c47565b005b348015610a24575f80fd5b50610a2d611cfa565b604051610a3a9190614462565b60405180910390f35b348015610a4e575f80fd5b50610a696004803603810190610a6491906146f0565b611d8a565b005b348015610a76575f80fd5b50610a7f611ebc565b604051610a8c9190614632565b60405180910390f35b348015610aa0575f80fd5b50610aa9611ec2565b604051610ab69190614632565b60405180910390f35b348015610aca575f80fd5b50610ad3611ec8565b604051610ae09190614632565b60405180910390f35b348015610af4575f80fd5b50610b0f6004803603810190610b0a919061478a565b611ece565b005b348015610b1c575f80fd5b50610b376004803603810190610b329190614513565b611f81565b604051610b44919061456b565b60405180910390f35b348015610b58575f80fd5b50610b61612049565b604051610b6e919061456b565b60405180910390f35b348015610b82575f80fd5b50610b9d6004803603810190610b989190614513565b61205c565b604051610baa919061456b565b60405180910390f35b348015610bbe575f80fd5b50610bd96004803603810190610bd49190614584565b612079565b005b348015610be6575f80fd5b50610c016004803603810190610bfc9190614584565b6121cd565b604051610c0e919061456b565b60405180910390f35b348015610c22575f80fd5b50610c2b6121ea565b604051610c38919061456b565b60405180910390f35b348015610c4c575f80fd5b50610c676004803603810190610c6291906146f0565b6121fd565b005b348015610c74575f80fd5b50610c8f6004803603810190610c8a919061464b565b612339565b005b348015610c9c575f80fd5b50610ca5612462565b604051610cb2919061456b565b60405180910390f35b348015610cc6575f80fd5b50610ccf612474565b604051610cdc9190614632565b60405180910390f35b348015610cf0575f80fd5b50610d0b6004803603810190610d06919061464b565b61247a565b604051610d18919061456b565b60405180910390f35b348015610d2c575f80fd5b50610d356125e8565b604051610d429190614632565b60405180910390f35b348015610d56575f80fd5b50610d716004803603810190610d6c9190614805565b6125ee565b604051610d7e9190614632565b60405180910390f35b348015610d92575f80fd5b50610d9b612670565b604051610da89190614632565b60405180910390f35b348015610dbc575f80fd5b50610dc5612676565b604051610dd2919061456b565b60405180910390f35b348015610de6575f80fd5b50610def61272d565b604051610dfc9190614632565b60405180910390f35b348015610e10575f80fd5b50610e2b6004803603810190610e269190614584565b612733565b005b348015610e38575f80fd5b50610e416128f5565b604051610e4e9190614632565b60405180910390f35b348015610e62575f80fd5b50610e6b6128fe565b604051610e789190614632565b60405180910390f35b348015610e8c575f80fd5b50610e95612904565b604051610ea29190614632565b60405180910390f35b348015610eb6575f80fd5b50610ed16004803603810190610ecc9190614843565b61290a565b005b606060038054610ee2906148e7565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0e906148e7565b8015610f595780601f10610f3057610100808354040283529160200191610f59565b820191905f5260205f20905b815481529060010190602001808311610f3c57829003601f168201915b5050505050905090565b5f610f76610f6f612a33565b8484612a3a565b6001905092915050565b60208052805f5260405f205f915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610fd1612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105690614961565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a38060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601c5481565b601b5481565b611131612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690614961565b60405180910390fd5b670de0b6b3a76400006103e860056111d5610fc0565b6111df91906149ac565b6111e99190614a1a565b6111f39190614a1a565b811015611235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122c90614aba565b60405180910390fd5b670de0b6b3a76400008161124991906149ac565b60098190555050565b5f61125e848484612bfd565b61131b8461126a612a33565b611316856040518060600160405280602881526020016157796028913960015f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6112cd612a33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054613a3c9092919063ffffffff16565b612a3a565b600190509392505050565b600c60029054906101000a900460ff1681565b601a5481565b611347612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cc90614961565b60405180910390fd5b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6012905090565b5f6114d9611441612a33565b846114d48560015f611451612a33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054613a9e90919063ffffffff16565b612a3a565b6001905092915050565b5f600c60029054906101000a900460ff16905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600c5f9054906101000a900460ff1681565b5f601f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60195481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b600c60039054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611612612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169790614961565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f611766612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117eb90614961565b60405180910390fd5b5f600c5f6101000a81548160ff0219169083151502179055506001905090565b61181c612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a190614961565b60405180910390fd5b8060205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61192f612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b490614961565b60405180910390fd5b80600c60026101000a81548160ff02191690831515021790555050565b60125481565b5f600c60049054906101000a900460ff166119fd57601654611a01565b601a545b905090565b611a0e612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9390614961565b60405180910390fd5b826012819055508160138190555080601481905550601454601354601254611ac49190614ad8565b611ace9190614ad8565b60118190555060326011541115611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1190614b55565b60405180910390fd5b505050565b611b27612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bac90614961565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60036101000a81548160ff02191690831515021790555043601e81905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b611c4f612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd490614961565b60405180910390fd5b80600c60036101000a81548160ff02191690831515021790555050565b606060048054611d09906148e7565b80601f0160208091040260200160405190810160405280929190818152602001828054611d35906148e7565b8015611d805780601f10611d5757610100808354040283529160200191611d80565b820191905f5260205f20905b815481529060010190602001808311611d6357829003601f168201915b5050505050905090565b611d92612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1790614961565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea590614be3565b60405180910390fd5b611eb88282613afb565b5050565b60145481565b601d5481565b60185481565b611ed6612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5b90614961565b60405180910390fd5b80600c60046101000a81548160ff02191690831515021790555050565b5f61203f611f8d612a33565b8461203a856040518060600160405280602581526020016157a16025913960015f611fb6612a33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054613a3c9092919063ffffffff16565b612a3a565b6001905092915050565b600c60049054906101000a900460ff1681565b5f61206f612068612a33565b8484612bfd565b6001905092915050565b612081612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461210f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210690614961565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6021602052805f5260405f205f915054906101000a900460ff1681565b600c60019054906101000a900460ff1681565b612205612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228a90614961565b60405180910390fd5b80601f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161232d919061456b565b60405180910390a25050565b612341612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c690614961565b60405180910390fd5b670de0b6b3a76400006103e8600f6123e5610fc0565b6123ef91906149ac565b6123f99190614a1a565b6124039190614a1a565b811015612445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243c90614c71565b60405180910390fd5b670de0b6b3a76400008161245991906149ac565b600b8190555050565b60105f9054906101000a900460ff1681565b60095481565b5f612483612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250890614961565b60405180910390fd5b620186a0600161251f610fc0565b61252991906149ac565b6125339190614a1a565b821015612575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256c90614cff565b60405180910390fd5b6103e86005612582610fc0565b61258c91906149ac565b6125969190614a1a565b8211156125d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cf90614d8d565b60405180910390fd5b81600a8190555060019050919050565b60115481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5481565b5f61267f612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461270d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270490614961565b60405180910390fd5b5f60105f6101000a81548160ff0219169083151502179055506001905090565b60135481565b61273b612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c090614961565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282e90614e1b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f601354905090565b60175481565b600b5481565b612912612a33565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299790614961565b60405180910390fd5b8460168190555083601781905550826018819055508160198190555080601a819055506018546017546016546129d69190614ad8565b6129e09190614ad8565b60158190555060636015541115612a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2390614e83565b60405180910390fd5b5050505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9f90614f11565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0d90614f9f565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612bf09190614632565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c629061502d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612cd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd0906150bb565b60405180910390fd5b600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612d775750600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dad90615149565b60405180910390fd5b5f8103612dcd57612dc883835f613b99565b613a37565b600c5f9054906101000a900460ff161561347457612de9611bf4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612e575750612e27611bf4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612e8f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612ec9575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612ee25750600560149054906101000a900460ff16155b1561347357600c60019054906101000a900460ff16612fd657601f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612f965750601f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fcc906151b1565b60405180910390fd5b5b60105f9054906101000a900460ff161561319957612ff2611bf4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561307957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156130d157507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156131985743600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410613155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314c90615265565b60405180910390fd5b43600d5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60215f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015613236575060205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156132dd57600954811115613280576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613277906152f3565b60405180910390fd5b600b5461328c836115c5565b826132979190614ad8565b11156132d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132cf9061535b565b60405180910390fd5b613472565b60215f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561337a575060205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156133c9576009548111156133c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133bb906153e9565b60405180910390fd5b613471565b60205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661347057600b54613423836115c5565b8261342e9190614ad8565b111561346f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134669061535b565b60405180910390fd5b5b5b5b5b5b5f601e546134829190614ad8565b43111580156134dd57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156135295750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15613583575f600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5f61358d306115c5565b90505f600a5482101590508080156135b15750600c60039054906101000a900460ff165b80156135ca5750600560149054906101000a900460ff16155b801561361d575060215f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156136705750601f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156136c35750601f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15613706576001600560146101000a81548160ff0219169083151502179055506136eb613e22565b5f600560146101000a81548160ff0219169083151502179055505b5f600560149054906101000a900460ff16159050601f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806137b55750601f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156137be575f90505b5f8115613a275760215f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561381c57505f601554115b156138e657613849606461383b6015548861405090919063ffffffff16565b6140c790919063ffffffff16565b90506015546017548261385c91906149ac565b6138669190614a1a565b601c5f8282546138769190614ad8565b925050819055506015546018548261388e91906149ac565b6138989190614a1a565b601d5f8282546138a89190614ad8565b92505081905550601554601654826138c091906149ac565b6138ca9190614a1a565b601b5f8282546138da9190614ad8565b92505081905550613a04565b60215f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561393d57505f601154115b15613a035761396a606461395c6011548861405090919063ffffffff16565b6140c790919063ffffffff16565b90506011546013548261397d91906149ac565b6139879190614a1a565b601c5f8282546139979190614ad8565b92505081905550601154601454826139af91906149ac565b6139b99190614a1a565b601d5f8282546139c99190614ad8565b92505081905550601154601254826139e191906149ac565b6139eb9190614a1a565b601b5f8282546139fb9190614ad8565b925050819055505b5b5f811115613a1857613a17873083613b99565b5b8085613a249190615407565b94505b613a32878787613b99565b505050505b505050565b5f838311158290613a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a7a9190614462565b60405180910390fd5b505f8385613a919190615407565b9050809150509392505050565b5f808284613aac9190614ad8565b905083811015613af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ae890615484565b60405180910390fd5b8091505092915050565b8060215f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bfe9061502d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c6c906150bb565b60405180910390fd5b613c80838383614110565b613ce981604051806060016040528060268152602001615753602691395f808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054613a3c9092919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550613d78815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054613a9e90919063ffffffff16565b5f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613e159190614632565b60405180910390a3505050565b5f613e2c306115c5565b90505f601d54601b54601c54613e429190614ad8565b613e4c9190614ad8565b90505f80831480613e5c57505f82145b15613e695750505061404e565b6014600a54613e7891906149ac565b831115613e91576014600a54613e8e91906149ac565b92505b5f600283601c5486613ea391906149ac565b613ead9190614a1a565b613eb79190614a1a565b90505f613ecd828661411590919063ffffffff16565b90505f479050613edc8261415e565b5f613ef0824761411590919063ffffffff16565b90505f613f1a87613f0c601d548561405090919063ffffffff16565b6140c790919063ffffffff16565b90505f601c819055505f601b819055505f601d8190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051613f76906154cf565b5f6040518083038185875af1925050503d805f8114613fb0576040519150601f19603f3d011682016040523d82523d5f602084013e613fb5565b606091505b50508096505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051614000906154cf565b5f6040518083038185875af1925050503d805f811461403a576040519150601f19603f3d011682016040523d82523d5f602084013e61403f565b606091505b50508096505050505050505050505b565b5f808303614060575f90506140c1565b5f828461406d91906149ac565b905082848261407c9190614a1a565b146140bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140b390615553565b60405180910390fd5b809150505b92915050565b5f61410883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614391565b905092915050565b505050565b5f61415683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613a3c565b905092915050565b5f600267ffffffffffffffff81111561417a57614179615571565b5b6040519080825280602002602001820160405280156141a85781602001602082028036833780820191505090505b50905030815f815181106141bf576141be61559e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614262573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061428691906155df565b8160018151811061429a5761429961559e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506142ff307f000000000000000000000000000000000000000000000000000000000000000084612a3a565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016143609594939291906156fa565b5f604051808303815f87803b158015614377575f80fd5b505af1158015614389573d5f803e3d5ffd5b505050505050565b5f80831182906143d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016143ce9190614462565b60405180910390fd5b505f83856143e59190614a1a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f614434826143f2565b61443e81856143fc565b935061444e81856020860161440c565b6144578161441a565b840191505092915050565b5f6020820190508181035f83015261447a818461442a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6144af82614486565b9050919050565b6144bf816144a5565b81146144c9575f80fd5b50565b5f813590506144da816144b6565b92915050565b5f819050919050565b6144f2816144e0565b81146144fc575f80fd5b50565b5f8135905061450d816144e9565b92915050565b5f806040838503121561452957614528614482565b5b5f614536858286016144cc565b9250506020614547858286016144ff565b9150509250929050565b5f8115159050919050565b61456581614551565b82525050565b5f60208201905061457e5f83018461455c565b92915050565b5f6020828403121561459957614598614482565b5b5f6145a6848285016144cc565b91505092915050565b5f819050919050565b5f6145d26145cd6145c884614486565b6145af565b614486565b9050919050565b5f6145e3826145b8565b9050919050565b5f6145f4826145d9565b9050919050565b614604816145ea565b82525050565b5f60208201905061461d5f8301846145fb565b92915050565b61462c816144e0565b82525050565b5f6020820190506146455f830184614623565b92915050565b5f602082840312156146605761465f614482565b5b5f61466d848285016144ff565b91505092915050565b5f805f6060848603121561468d5761468c614482565b5b5f61469a868287016144cc565b93505060206146ab868287016144cc565b92505060406146bc868287016144ff565b9150509250925092565b6146cf81614551565b81146146d9575f80fd5b50565b5f813590506146ea816146c6565b92915050565b5f806040838503121561470657614705614482565b5b5f614713858286016144cc565b9250506020614724858286016146dc565b9150509250929050565b5f60ff82169050919050565b6147438161472e565b82525050565b5f60208201905061475c5f83018461473a565b92915050565b61476b816144a5565b82525050565b5f6020820190506147845f830184614762565b92915050565b5f6020828403121561479f5761479e614482565b5b5f6147ac848285016146dc565b91505092915050565b5f805f606084860312156147cc576147cb614482565b5b5f6147d9868287016144ff565b93505060206147ea868287016144ff565b92505060406147fb868287016144ff565b9150509250925092565b5f806040838503121561481b5761481a614482565b5b5f614828858286016144cc565b9250506020614839858286016144cc565b9150509250929050565b5f805f805f60a0868803121561485c5761485b614482565b5b5f614869888289016144ff565b955050602061487a888289016144ff565b945050604061488b888289016144ff565b935050606061489c888289016144ff565b92505060806148ad888289016144ff565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806148fe57607f821691505b602082108103614911576149106148ba565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61494b6020836143fc565b915061495682614917565b602082019050919050565b5f6020820190508181035f8301526149788161493f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6149b6826144e0565b91506149c1836144e0565b92508282026149cf816144e0565b915082820484148315176149e6576149e561497f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614a24826144e0565b9150614a2f836144e0565b925082614a3f57614a3e6149ed565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e35250000000000000000000000000000000000602082015250565b5f614aa4602f836143fc565b9150614aaf82614a4a565b604082019050919050565b5f6020820190508181035f830152614ad181614a98565b9050919050565b5f614ae2826144e0565b9150614aed836144e0565b9250828201905080821115614b0557614b0461497f565b5b92915050565b7f4d757374206b656570206665657320617420353025206f72206c6573730000005f82015250565b5f614b3f601d836143fc565b9150614b4a82614b0b565b602082019050919050565b5f6020820190508181035f830152614b6c81614b33565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f614bcd6039836143fc565b9150614bd882614b73565b604082019050919050565b5f6020820190508181035f830152614bfa81614bc1565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f312e352500000000000000000000000000000000000000000000000000000000602082015250565b5f614c5b6024836143fc565b9150614c6682614c01565b604082019050919050565b5f6020820190508181035f830152614c8881614c4f565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f614ce96035836143fc565b9150614cf482614c8f565b604082019050919050565b5f6020820190508181035f830152614d1681614cdd565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b5f614d776034836143fc565b9150614d8282614d1d565b604082019050919050565b5f6020820190508181035f830152614da481614d6b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f614e056026836143fc565b9150614e1082614dab565b604082019050919050565b5f6020820190508181035f830152614e3281614df9565b9050919050565b7f4d757374206b656570206665657320617420393925206f72206c6573730000005f82015250565b5f614e6d601d836143fc565b9150614e7882614e39565b602082019050919050565b5f6020820190508181035f830152614e9a81614e61565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614efb6024836143fc565b9150614f0682614ea1565b604082019050919050565b5f6020820190508181035f830152614f2881614eef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f614f896022836143fc565b9150614f9482614f2f565b604082019050919050565b5f6020820190508181035f830152614fb681614f7d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6150176025836143fc565b915061502282614fbd565b604082019050919050565b5f6020820190508181035f8301526150448161500b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6150a56023836143fc565b91506150b08261504b565b604082019050919050565b5f6020820190508181035f8301526150d281615099565b9050919050565b7f596f752068617665206265656e20626c61636b6c69737465642066726f6d20745f8201527f72616e73666572696e6720746f6b656e73000000000000000000000000000000602082015250565b5f6151336031836143fc565b915061513e826150d9565b604082019050919050565b5f6020820190508181035f83015261516081615127565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61519b6016836143fc565b91506151a682615167565b602082019050919050565b5f6020820190508181035f8301526151c88161518f565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f61524f6049836143fc565b915061525a826151cf565b606082019050919050565b5f6020820190508181035f83015261527c81615243565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6152dd6035836143fc565b91506152e882615283565b604082019050919050565b5f6020820190508181035f83015261530a816152d1565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f6153456013836143fc565b915061535082615311565b602082019050919050565b5f6020820190508181035f83015261537281615339565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6153d36036836143fc565b91506153de82615379565b604082019050919050565b5f6020820190508181035f830152615400816153c7565b9050919050565b5f615411826144e0565b915061541c836144e0565b92508282039050818111156154345761543361497f565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61546e601b836143fc565b91506154798261543a565b602082019050919050565b5f6020820190508181035f83015261549b81615462565b9050919050565b5f81905092915050565b50565b5f6154ba5f836154a2565b91506154c5826154ac565b5f82019050919050565b5f6154d9826154af565b9150819050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61553d6021836143fc565b9150615548826154e3565b604082019050919050565b5f6020820190508181035f83015261556a81615531565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506155d9816144b6565b92915050565b5f602082840312156155f4576155f3614482565b5b5f615601848285016155cb565b91505092915050565b5f819050919050565b5f61562d6156286156238461560a565b6145af565b6144e0565b9050919050565b61563d81615613565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b615675816144a5565b82525050565b5f615686838361566c565b60208301905092915050565b5f602082019050919050565b5f6156a882615643565b6156b2818561564d565b93506156bd8361565d565b805f5b838110156156ed5781516156d4888261567b565b97506156df83615692565b9250506001810190506156c0565b5085935050505092915050565b5f60a08201905061570d5f830188614623565b61571a6020830187615634565b818103604083015261572c818661569e565b905061573b6060830185614762565b6157486080830184614623565b969550505050505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200224979ec2b1a10959c7cf53124591e5411dc67bfa1243022a7962cbbb03e6b964736f6c634300081a003345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365