[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "AMMPair", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isPair", "type": "bool" } ], "name": "AMMPairsUpdated", "type": "event" }, { "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": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromLimits", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "maxBuyAmount", "type": "uint256" } ], "name": "MaxBuyAmountUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "maxWalletAmount", "type": "uint256" } ], "name": "MaxWalletAmountUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferStarted", "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": "routerV2", "type": "address" } ], "name": "RouterV2Updated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "swapThresholdRatio", "type": "uint16" } ], "name": "SwapThresholdUpdated", "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": false, "internalType": "address", "name": "taxwalletAddress", "type": "address" } ], "name": "taxwalletAddressUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "taxwalletFeeSent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "buyFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "sellFee", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "transferFee", "type": "uint16" } ], "name": "taxwalletFeesUpdated", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "AMMPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "acceptOwnership", "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": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "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": "isExcluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "excludeFromLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getAllPending", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getSwapThresholdAmount", "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": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isExcludedFromLimits", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxBuyAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWalletAmount", "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": "pairV2", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "routerV2", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "isPair", "type": "bool" } ], "name": "setAMMPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapThresholdRatio", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "taxwalletAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newAddress", "type": "address" } ], "name": "taxwalletAddressSetup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "taxwalletFees", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_buyFee", "type": "uint16" }, { "internalType": "uint16", "name": "_sellFee", "type": "uint16" }, { "internalType": "uint16", "name": "_transferFee", "type": "uint16" } ], "name": "taxwalletFeesSetup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "totalFees", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxBuyAmount", "type": "uint256" } ], "name": "updateMaxBuyAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxWalletAmount", "type": "uint256" } ], "name": "updateMaxWalletAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_swapThresholdRatio", "type": "uint16" } ], "name": "updateSwapThreshold", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040523480156200001157600080fd5b506040518060400160405280600681526020017f4d6f6e65746100000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4d4e544100000000000000000000000000000000000000000000000000000000815250816003908051906020019062000096929190620013ed565b508060049080519060200190620000af929190620013ed565b505050620000d2620000c66200023f60201b60201c565b6200024760201b60201c565b6000739f10a3e3b917fd3a5906626bc6d181793575706c9050620000fd60326200028560201b60201c565b62000122739f10a3e3b917fd3a5906626bc6d181793575706c6200034b60201b60201c565b6200013b6109c4610fa06101f46200047160201b60201c565b6200014e8160016200083c60201b60201c565b620001613060016200083c60201b60201c565b62000174816001620008f760201b60201c565b62000187306001620008f760201b60201c565b6200019b60006001620008f760201b60201c565b620001b6690cb49b44ba602d800000620009a260201b60201c565b620001d1690cb49b44ba602d80000062000a4a60201b60201c565b620001ee816a027b46536c66c8e300000062000af260201b60201c565b62000213739f10a3e3b917fd3a5906626bc6d181793575706c6200024760201b60201c565b62000238737a250d5630b4cf539739df2c5dacb4c659f2488d62000c6060201b60201c565b5062001ea2565b600033905090565b600660006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055620002828162000f1860201b620018071760201c565b50565b6200029562000fde60201b60201c565b60008161ffff16118015620002b057506101f48161ffff1611155b620002f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002e990620015ee565b60405180910390fd5b80600660146101000a81548161ffff021916908361ffff1602179055507fcf1366790fe21e66c9df9dcf67218b1e10acd64d3c99ae8a7429a68de91f1720816040516200034091906200162f565b60405180910390a150565b6200035b62000fde60201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620003ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003c590620016e8565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004228160016200083c60201b60201c565b62000435816001620008f760201b60201c565b7f6e25174a1c60e9d62c82eed735a7d443dd0b6ea68bc2d0d936273e08fb532cac816040516200046691906200174f565b60405180910390a150565b6200048162000fde60201b60201c565b8260096000600381106200049a57620004996200176c565b5b601091828204019190066002029054906101000a900461ffff16600b600060038110620004cc57620004cb6200176c565b5b601091828204019190066002029054906101000a900461ffff16620004f29190620017ca565b620004fe919062001805565b600b6000600381106200051657620005156200176c565b5b601091828204019190066002026101000a81548161ffff021916908361ffff1602179055508160096001600381106200055457620005536200176c565b5b601091828204019190066002029054906101000a900461ffff16600b6001600381106200058657620005856200176c565b5b601091828204019190066002029054906101000a900461ffff16620005ac9190620017ca565b620005b8919062001805565b600b600160038110620005d057620005cf6200176c565b5b601091828204019190066002026101000a81548161ffff021916908361ffff1602179055508060096002600381106200060e576200060d6200176c565b5b601091828204019190066002029054906101000a900461ffff16600b60026003811062000640576200063f6200176c565b5b601091828204019190066002029054906101000a900461ffff16620006669190620017ca565b62000672919062001805565b600b6002600381106200068a57620006896200176c565b5b601091828204019190066002026101000a81548161ffff021916908361ffff160217905550611388600b600060038110620006ca57620006c96200176c565b5b601091828204019190066002029054906101000a900461ffff1661ffff16111580156200072e5750611388600b6001600381106200070d576200070c6200176c565b5b601091828204019190066002029054906101000a900461ffff1661ffff1611155b8015620007725750611388600b6002600381106200075157620007506200176c565b5b601091828204019190066002029054906101000a900461ffff1661ffff1611155b620007b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007ab90620018ba565b60405180910390fd5b60405180606001604052808461ffff1661ffff1681526020018361ffff1661ffff1681526020018261ffff1661ffff168152506009906003620007f99291906200147e565b507f4963431b187ee291501376bba89c8c815c04c831b33839c8b2ec099899153df48383836040516200082f93929190620018dc565b60405180910390a1505050565b6200084c62000fde60201b60201c565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620008eb919062001936565b60405180910390a25050565b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc928260405162000996919062001936565b60405180910390a25050565b620009b262000fde60201b60201c565b620009c26200106f60201b60201c565b81101562000a07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009fe90620019a3565b60405180910390fd5b806010819055507f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e0018160405162000a3f9190620019e0565b60405180910390a150565b62000a5a62000fde60201b60201c565b62000a6a6200109560201b60201c565b81101562000aaf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000aa69062001a4d565b60405180910390fd5b806011819055507fd0459d371e1defb856088ceda9d33bfed2a31a105e0bae2113cdc7dcc9e77e9d8160405162000ae79190620019e0565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000b65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b5c9062001abf565b60405180910390fd5b62000b7960008383620010c960201b60201c565b806002600082825462000b8d919062001ae1565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000c409190620019e0565b60405180910390a362000c5c60008383620011d960201b60201c565b5050565b80600c60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000d0f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d35919062001b74565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000dbf573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000de5919062001b74565b6040518363ffffffff1660e01b815260040162000e0492919062001ba6565b6020604051808303816000875af115801562000e24573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e4a919062001b74565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000e9d816001620008f760201b60201c565b62000ed2600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620012a160201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff167fbc052db65df144ad4f71f02da93cae3d4401104c30ac374d7cc10d87ee07b60260405160405180910390a250565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b62000fee6200023f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620010146200136760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200106d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010649062001c23565b60405180910390fd5b565b60006103e8620010846200139160201b60201c565b62001090919062001c74565b905090565b60006127106005620010ac6200139160201b60201c565b620010b8919062001cac565b620010c4919062001c74565b905090565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156200116d5750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15620011bc57601154811115620011bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620011b29062001d83565b60405180910390fd5b5b620011d48383836200139b60201b620018cd1760201c565b505050565b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662001284576010546200123f83620013a060201b60201c565b111562001283576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200127a9062001e1b565b60405180910390fd5b5b6200129c838383620013e860201b620018d21760201c565b505050565b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015620013135762001312826001620008f760201b60201c565b5b8173ffffffffffffffffffffffffffffffffffffffff167f911aa18ddbbbc33c9b4c704a71bdaa0984b0aa2e82726a7f51e64bad0b0a8455826040516200135b919062001936565b60405180910390a25050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600254905090565b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b505050565b828054620013fb9062001e6c565b90600052602060002090601f0160209004810192826200141f57600085556200146b565b82601f106200143a57805160ff19168380011785556200146b565b828001600101855582156200146b579182015b828111156200146a5782518255916020019190600101906200144d565b5b5090506200147a919062001522565b5090565b826003600f016010900481019282156200150f5791602002820160005b83821115620014dd57835183826101000a81548161ffff021916908361ffff16021790555092602001926002016020816001010492830192600103026200149b565b80156200150d5782816101000a81549061ffff0219169055600201602081600101049283019260010302620014dd565b505b5090506200151e919062001522565b5090565b5b808211156200153d57600081600090555060010162001523565b5090565b600082825260208201905092915050565b7f537761705468726573686f6c643a2043616e6e6f7420657863656564206c696d60008201527f6974732066726f6d20302e30312520746f20352520666f72206e65772073776160208201527f70207468726573686f6c64000000000000000000000000000000000000000000604082015250565b6000620015d6604b8362001541565b9150620015e38262001552565b606082019050919050565b600060208201905081810360008301526200160981620015c7565b9050919050565b600061ffff82169050919050565b620016298162001610565b82525050565b60006020820190506200164660008301846200161e565b92915050565b7f546178657344656661756c74526f7574657257616c6c65743a2057616c6c657460008201527f2074617820726563697069656e742063616e6e6f74206265206120307830206160208201527f6464726573730000000000000000000000000000000000000000000000000000604082015250565b6000620016d060468362001541565b9150620016dd826200164c565b606082019050919050565b600060208201905081810360008301526200170381620016c1565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062001737826200170a565b9050919050565b62001749816200172a565b82525050565b60006020820190506200176660008301846200173e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620017d78262001610565b9150620017e48362001610565b925082821015620017fa57620017f96200179b565b5b828203905092915050565b6000620018128262001610565b91506200181f8362001610565b92508261ffff038211156200183957620018386200179b565b5b828201905092915050565b7f546178657344656661756c74526f757465723a2043616e6e6f7420657863656560008201527f64206d617820746f74616c20666565206f662035302500000000000000000000602082015250565b6000620018a260368362001541565b9150620018af8262001844565b604082019050919050565b60006020820190508181036000830152620018d58162001893565b9050919050565b6000606082019050620018f360008301866200161e565b6200190260208301856200161e565b6200191160408301846200161e565b949350505050565b60008115159050919050565b620019308162001919565b82525050565b60006020820190506200194d600083018462001925565b92915050565b7f4d617857616c6c65743a204c696d697420746f6f206c6f770000000000000000600082015250565b60006200198b60188362001541565b9150620019988262001953565b602082019050919050565b60006020820190508181036000830152620019be816200197c565b9050919050565b6000819050919050565b620019da81620019c5565b82525050565b6000602082019050620019f76000830184620019cf565b92915050565b7f4d617854783a204c696d697420746f6f206c6f77000000000000000000000000600082015250565b600062001a3560148362001541565b915062001a4282620019fd565b602082019050919050565b6000602082019050818103600083015262001a688162001a26565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001aa7601f8362001541565b915062001ab48262001a6f565b602082019050919050565b6000602082019050818103600083015262001ada8162001a98565b9050919050565b600062001aee82620019c5565b915062001afb83620019c5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562001b335762001b326200179b565b5b828201905092915050565b600080fd5b62001b4e816200172a565b811462001b5a57600080fd5b50565b60008151905062001b6e8162001b43565b92915050565b60006020828403121562001b8d5762001b8c62001b3e565b5b600062001b9d8482850162001b5d565b91505092915050565b600060408201905062001bbd60008301856200173e565b62001bcc60208301846200173e565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062001c0b60208362001541565b915062001c188262001bd3565b602082019050919050565b6000602082019050818103600083015262001c3e8162001bfc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062001c8182620019c5565b915062001c8e83620019c5565b92508262001ca15762001ca062001c45565b5b828204905092915050565b600062001cb982620019c5565b915062001cc683620019c5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001d025762001d016200179b565b5b828202905092915050565b7f4d617854783a2043616e6e6f7420657863656564206d617820627579206c696d60008201527f6974000000000000000000000000000000000000000000000000000000000000602082015250565b600062001d6b60228362001541565b915062001d788262001d0d565b604082019050919050565b6000602082019050818103600083015262001d9e8162001d5c565b9050919050565b7f4d617857616c6c65743a2043616e6e6f7420657863656564206d61782077616c60008201527f6c6574206c696d69740000000000000000000000000000000000000000000000602082015250565b600062001e0360298362001541565b915062001e108262001da5565b604082019050919050565b6000602082019050818103600083015262001e368162001df4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062001e8557607f821691505b6020821081141562001e9c5762001e9b62001e3d565b5b50919050565b61411d8062001eb26000396000f3fe6080604052600436106102345760003560e01c8063768565571161012e578063c0246668116100ab578063dd62ed3e1161006f578063dd62ed3e14610882578063e30c3978146108bf578063f112ba72146108ea578063f2fde38b14610915578063f7d3eca51461093e5761023b565b8063c0246668146107b1578063c0a904a2146107da578063c18bc19514610803578063c1d4212d1461082c578063d9477526146108575761023b565b80638fffabed116100f25780638fffabed146106b657806395d89b41146106e1578063a457c2d71461070c578063a9059cbb14610749578063aa4bde28146107865761023b565b806376856557146105e357806379ba50971461062057806379cc67901461063757806388e765ff146106605780638da5cb5b1461068b5761023b565b8063408ccbdf116101bc57806356417fef1161018057806356417fef146104ec5780635cce86cd1461051557806370a0823114610552578063715018a61461058f57806375c211e0146105a65761023b565b8063408ccbdf146103f357806342966c68146104305780634f011b83146104595780634fbee19314610484578063502f7446146104c15761023b565b806323b872dd1161020357806323b872dd146102fc5780632be32b61146103395780632d99d32e14610362578063313ce5671461038b57806339509351146103b65761023b565b806306fdde0314610240578063095ea7b31461026b57806318160ddd146102a85780631a0e718c146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610967565b6040516102629190612d57565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612e12565b6109f9565b60405161029f9190612e6d565b60405180910390f35b3480156102b457600080fd5b506102bd610a1c565b6040516102ca9190612e97565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190612eec565b610a26565b005b34801561030857600080fd5b50610323600480360381019061031e9190612f19565b610ade565b6040516103309190612e6d565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190612f6c565b610b0d565b005b34801561036e57600080fd5b5061038960048036038101906103849190612fc5565b610ba0565b005b34801561039757600080fd5b506103a0610c47565b6040516103ad9190613021565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d89190612e12565b610c50565b6040516103ea9190612e6d565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190612f6c565b610c87565b604051610427919061304b565b60405180910390f35b34801561043c57600080fd5b5061045760048036038101906104529190612f6c565b610cb5565b005b34801561046557600080fd5b5061046e610cc9565b60405161047b919061304b565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190613066565b610cdd565b6040516104b89190612e6d565b60405180910390f35b3480156104cd57600080fd5b506104d6610cfd565b6040516104e391906130f2565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e9190613066565b610d23565b005b34801561052157600080fd5b5061053c60048036038101906105379190613066565b610e2c565b6040516105499190612e6d565b60405180910390f35b34801561055e57600080fd5b5061057960048036038101906105749190613066565b610e4c565b6040516105869190612e97565b60405180910390f35b34801561059b57600080fd5b506105a4610e94565b005b3480156105b257600080fd5b506105cd60048036038101906105c89190612f6c565b610ea8565b6040516105da919061304b565b60405180910390f35b3480156105ef57600080fd5b5061060a60048036038101906106059190613066565b610ed6565b6040516106179190612e6d565b60405180910390f35b34801561062c57600080fd5b50610635610ef6565b005b34801561064357600080fd5b5061065e60048036038101906106599190612e12565b610f83565b005b34801561066c57600080fd5b50610675610fa3565b6040516106829190612e97565b60405180910390f35b34801561069757600080fd5b506106a0610fa9565b6040516106ad919061311c565b60405180910390f35b3480156106c257600080fd5b506106cb610fd3565b6040516106d8919061311c565b60405180910390f35b3480156106ed57600080fd5b506106f6610ff9565b6040516107039190612d57565b60405180910390f35b34801561071857600080fd5b50610733600480360381019061072e9190612e12565b61108b565b6040516107409190612e6d565b60405180910390f35b34801561075557600080fd5b50610770600480360381019061076b9190612e12565b611102565b60405161077d9190612e6d565b60405180910390f35b34801561079257600080fd5b5061079b611125565b6040516107a89190612e97565b60405180910390f35b3480156107bd57600080fd5b506107d860048036038101906107d39190612fc5565b61112b565b005b3480156107e657600080fd5b5061080160048036038101906107fc9190612fc5565b6111dc565b005b34801561080f57600080fd5b5061082a60048036038101906108259190612f6c565b6111f2565b005b34801561083857600080fd5b50610841611285565b60405161084e919061311c565b60405180910390f35b34801561086357600080fd5b5061086c6112ab565b6040516108799190612e97565b60405180910390f35b34801561088e57600080fd5b506108a960048036038101906108a49190613137565b611309565b6040516108b69190612e97565b60405180910390f35b3480156108cb57600080fd5b506108d4611390565b6040516108e1919061311c565b60405180910390f35b3480156108f657600080fd5b506108ff6113ba565b60405161090c9190612e97565b60405180910390f35b34801561092157600080fd5b5061093c60048036038101906109379190613066565b6113d0565b005b34801561094a57600080fd5b5061096560048036038101906109609190613177565b61147d565b005b606060038054610976906131f9565b80601f01602080910402602001604051908101604052809291908181526020018280546109a2906131f9565b80156109ef5780601f106109c4576101008083540402835291602001916109ef565b820191906000526020600020905b8154815290600101906020018083116109d257829003601f168201915b5050505050905090565b600080610a046118d7565b9050610a118185856118df565b600191505092915050565b6000600254905090565b610a2e611aaa565b60008161ffff16118015610a4857506101f48161ffff1611155b610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7e906132c3565b60405180910390fd5b80600660146101000a81548161ffff021916908361ffff1602179055507fcf1366790fe21e66c9df9dcf67218b1e10acd64d3c99ae8a7429a68de91f172081604051610ad3919061304b565b60405180910390a150565b600080610ae96118d7565b9050610af6858285611b28565b610b01858585611bb4565b60019150509392505050565b610b15611aaa565b610b1d6121f5565b811015610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b569061332f565b60405180910390fd5b806011819055507fd0459d371e1defb856088ceda9d33bfed2a31a105e0bae2113cdc7dcc9e77e9d81604051610b959190612e97565b60405180910390a150565b610ba8611aaa565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c30906133c1565b60405180910390fd5b610c43828261221d565b5050565b60006012905090565b600080610c5b6118d7565b9050610c7c818585610c6d8589611309565b610c779190613410565b6118df565b600191505092915050565b600b8160038110610c9757600080fd5b60109182820401919006600202915054906101000a900461ffff1681565b610cc6610cc06118d7565b826122d8565b50565b600660149054906101000a900461ffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d2b611aaa565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d92906134fe565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610de781600161112b565b610df28160016124a6565b7f6e25174a1c60e9d62c82eed735a7d443dd0b6ea68bc2d0d936273e08fb532cac81604051610e21919061311c565b60405180910390a150565b600f6020528060005260406000206000915054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e9c611aaa565b610ea6600061254f565b565b60098160038110610eb857600080fd5b60109182820401919006600202915054906101000a900461ffff1681565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000610f006118d7565b90508073ffffffffffffffffffffffffffffffffffffffff16610f21611390565b73ffffffffffffffffffffffffffffffffffffffff1614610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90613590565b60405180910390fd5b610f808161254f565b50565b610f9582610f8f6118d7565b83611b28565b610f9f82826122d8565b5050565b60115481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054611008906131f9565b80601f0160208091040260200160405190810160405280929190818152602001828054611034906131f9565b80156110815780601f1061105657610100808354040283529160200191611081565b820191906000526020600020905b81548152906001019060200180831161106457829003601f168201915b5050505050905090565b6000806110966118d7565b905060006110a48286611309565b9050838110156110e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e090613622565b60405180910390fd5b6110f682868684036118df565b60019250505092915050565b60008061110d6118d7565b905061111a818585611bb4565b600191505092915050565b60105481565b611133611aaa565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516111d09190612e6d565b60405180910390a25050565b6111e4611aaa565b6111ee82826124a6565b5050565b6111fa611aaa565b611202612580565b811015611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b9061368e565b60405180910390fd5b806010819055507f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e0018160405161127a9190612e97565b60405180910390a150565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000612710600660149054906101000a900461ffff1661ffff166112f0600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e4c565b6112fa91906136ae565b6113049190613737565b905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600060075460006113cb9190613410565b905090565b6113d8611aaa565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611438610fa9565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b611485611aaa565b82600960006003811061149b5761149a613768565b5b601091828204019190066002029054906101000a900461ffff16600b6000600381106114ca576114c9613768565b5b601091828204019190066002029054906101000a900461ffff166114ee9190613797565b6114f891906137cb565b600b60006003811061150d5761150c613768565b5b601091828204019190066002026101000a81548161ffff021916908361ffff16021790555081600960016003811061154857611547613768565b5b601091828204019190066002029054906101000a900461ffff16600b60016003811061157757611576613768565b5b601091828204019190066002029054906101000a900461ffff1661159b9190613797565b6115a591906137cb565b600b6001600381106115ba576115b9613768565b5b601091828204019190066002026101000a81548161ffff021916908361ffff1602179055508060096002600381106115f5576115f4613768565b5b601091828204019190066002029054906101000a900461ffff16600b60026003811061162457611623613768565b5b601091828204019190066002029054906101000a900461ffff166116489190613797565b61165291906137cb565b600b60026003811061166757611666613768565b5b601091828204019190066002026101000a81548161ffff021916908361ffff160217905550611388600b6000600381106116a4576116a3613768565b5b601091828204019190066002029054906101000a900461ffff1661ffff16111580156117045750611388600b6001600381106116e3576116e2613768565b5b601091828204019190066002029054906101000a900461ffff1661ffff1611155b80156117445750611388600b60026003811061172357611722613768565b5b601091828204019190066002029054906101000a900461ffff1661ffff1611155b611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90613875565b60405180910390fd5b60405180606001604052808461ffff1661ffff1681526020018361ffff1661ffff1681526020018261ffff1661ffff1681525060099060036117c6929190612c04565b507f4963431b187ee291501376bba89c8c815c04c831b33839c8b2ec099899153df48383836040516117fa93929190613895565b60405180910390a1505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561194f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119469061393e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b6906139d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a9d9190612e97565b60405180910390a3505050565b611ab26118d7565b73ffffffffffffffffffffffffffffffffffffffff16611ad0610fa9565b73ffffffffffffffffffffffffffffffffffffffff1614611b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1d90613a3c565b60405180910390fd5b565b6000611b348484611309565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611bae5781811015611ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9790613aa8565b60405180910390fd5b611bad84848484036118df565b5b50505050565b600c60009054906101000a900460ff16158015611bd15750600081115b8015611c2b5750600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611c815750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cd75750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f6c5760008060039050600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7a576000600b600060038110611d4c57611d4b613768565b5b601091828204019190066002029054906101000a900461ffff1661ffff161115611d7557600090505b611e53565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e11576000600b600160038110611de357611de2613768565b5b601091828204019190066002029054906101000a900461ffff1661ffff161115611e0c57600190505b611e52565b6000600b600260038110611e2857611e27613768565b5b601091828204019190066002029054906101000a900461ffff1661ffff161115611e5157600290505b5b5b60038160ff161015611f5457612710600b8260ff1660038110611e7957611e78613768565b5b601091828204019190066002029054906101000a900461ffff1661ffff1684611ea291906136ae565b611eac9190613737565b91508183611eba9190613ac8565b9250600b8160ff1660038110611ed357611ed2613768565b5b601091828204019190066002029054906101000a900461ffff1661ffff1660098260ff1660038110611f0857611f07613768565b5b601091828204019190066002029054906101000a900461ffff1661ffff1683611f3191906136ae565b611f3b9190613737565b60076000828254611f4c9190613410565b925050819055505b6000821115611f6957611f6885308461259c565b5b50505b6000611f766112ab565b611f7e6113ba565b10158015611fb657506000611fb4600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e4c565b115b9050600c60009054906101000a900460ff1615801561201f5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120795750600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120825750805b156121e4576001600c60006101000a81548160ff0219169083151502179055506000806120b157506000600754115b156121c857600060075460006120c79190613410565b905060006120d482612814565b6000479050600083600754836120ea91906136ae565b6120f49190613737565b905060008111156121bb57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050925082156121ba577ff7a420e2cb7d3033ead185c897359ebf9011c07c771221fe5dbc21ca43cb684a600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826040516121b1929190613afc565b60405180910390a15b5b6000600781905550505050505b6000600c60006101000a81548160ff0219169083151502179055505b6121ef84848461259c565b50505050565b60006127106005612204610a1c565b61220e91906136ae565b6122189190613737565b905090565b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612286576122858260016124a6565b5b8173ffffffffffffffffffffffffffffffffffffffff167f911aa18ddbbbc33c9b4c704a71bdaa0984b0aa2e82726a7f51e64bad0b0a8455826040516122cc9190612e6d565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233f90613b97565b60405180910390fd5b61235482600083612a57565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156123da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d190613c29565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161248d9190612e97565b60405180910390a36124a183600084612b55565b505050565b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc92826040516125439190612e6d565b60405180910390a25050565b600660006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561257d81611807565b50565b60006103e861258d610a1c565b6125979190613737565b905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561260c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260390613cbb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561267c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267390613d4d565b60405180910390fd5b612687838383612a57565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561270d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270490613ddf565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127fb9190612e97565b60405180910390a361280e848484612b55565b50505050565b6000600267ffffffffffffffff81111561283157612830613dff565b5b60405190808252806020026020018201604052801561285f5781602001602082028036833780820191505090505b509050308160008151811061287757612876613768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561291e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129429190613e43565b8160018151811061295657612955613768565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129bd30600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118df565b600c60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a21959493929190613f69565b600060405180830381600087803b158015612a3b57600080fd5b505af1158015612a4f573d6000803e3d6000fd5b505050505050565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612afa5750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b4557601154811115612b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3b90614035565b60405180910390fd5b5b612b508383836118cd565b505050565b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612bf457601054612bb283610e4c565b1115612bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bea906140c7565b60405180910390fd5b5b612bff8383836118d2565b505050565b826003600f01601090048101928215612c905791602002820160005b83821115612c6057835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302612c20565b8015612c8e5782816101000a81549061ffff0219169055600201602081600101049283019260010302612c60565b505b509050612c9d9190612ca1565b5090565b5b80821115612cba576000816000905550600101612ca2565b5090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cf8578082015181840152602081019050612cdd565b83811115612d07576000848401525b50505050565b6000601f19601f8301169050919050565b6000612d2982612cbe565b612d338185612cc9565b9350612d43818560208601612cda565b612d4c81612d0d565b840191505092915050565b60006020820190508181036000830152612d718184612d1e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612da982612d7e565b9050919050565b612db981612d9e565b8114612dc457600080fd5b50565b600081359050612dd681612db0565b92915050565b6000819050919050565b612def81612ddc565b8114612dfa57600080fd5b50565b600081359050612e0c81612de6565b92915050565b60008060408385031215612e2957612e28612d79565b5b6000612e3785828601612dc7565b9250506020612e4885828601612dfd565b9150509250929050565b60008115159050919050565b612e6781612e52565b82525050565b6000602082019050612e826000830184612e5e565b92915050565b612e9181612ddc565b82525050565b6000602082019050612eac6000830184612e88565b92915050565b600061ffff82169050919050565b612ec981612eb2565b8114612ed457600080fd5b50565b600081359050612ee681612ec0565b92915050565b600060208284031215612f0257612f01612d79565b5b6000612f1084828501612ed7565b91505092915050565b600080600060608486031215612f3257612f31612d79565b5b6000612f4086828701612dc7565b9350506020612f5186828701612dc7565b9250506040612f6286828701612dfd565b9150509250925092565b600060208284031215612f8257612f81612d79565b5b6000612f9084828501612dfd565b91505092915050565b612fa281612e52565b8114612fad57600080fd5b50565b600081359050612fbf81612f99565b92915050565b60008060408385031215612fdc57612fdb612d79565b5b6000612fea85828601612dc7565b9250506020612ffb85828601612fb0565b9150509250929050565b600060ff82169050919050565b61301b81613005565b82525050565b60006020820190506130366000830184613012565b92915050565b61304581612eb2565b82525050565b6000602082019050613060600083018461303c565b92915050565b60006020828403121561307c5761307b612d79565b5b600061308a84828501612dc7565b91505092915050565b6000819050919050565b60006130b86130b36130ae84612d7e565b613093565b612d7e565b9050919050565b60006130ca8261309d565b9050919050565b60006130dc826130bf565b9050919050565b6130ec816130d1565b82525050565b600060208201905061310760008301846130e3565b92915050565b61311681612d9e565b82525050565b6000602082019050613131600083018461310d565b92915050565b6000806040838503121561314e5761314d612d79565b5b600061315c85828601612dc7565b925050602061316d85828601612dc7565b9150509250929050565b6000806000606084860312156131905761318f612d79565b5b600061319e86828701612ed7565b93505060206131af86828701612ed7565b92505060406131c086828701612ed7565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061321157607f821691505b60208210811415613225576132246131ca565b5b50919050565b7f537761705468726573686f6c643a2043616e6e6f7420657863656564206c696d60008201527f6974732066726f6d20302e30312520746f20352520666f72206e65772073776160208201527f70207468726573686f6c64000000000000000000000000000000000000000000604082015250565b60006132ad604b83612cc9565b91506132b88261322b565b606082019050919050565b600060208201905081810360008301526132dc816132a0565b9050919050565b7f4d617854783a204c696d697420746f6f206c6f77000000000000000000000000600082015250565b6000613319601483612cc9565b9150613324826132e3565b602082019050919050565b600060208201905081810360008301526133488161330c565b9050919050565b7f44656661756c74526f757465723a2043616e6e6f742072656d6f766520696e6960008201527f7469616c20706169722066726f6d206c69737400000000000000000000000000602082015250565b60006133ab603383612cc9565b91506133b68261334f565b604082019050919050565b600060208201905081810360008301526133da8161339e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061341b82612ddc565b915061342683612ddc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561345b5761345a6133e1565b5b828201905092915050565b7f546178657344656661756c74526f7574657257616c6c65743a2057616c6c657460008201527f2074617820726563697069656e742063616e6e6f74206265206120307830206160208201527f6464726573730000000000000000000000000000000000000000000000000000604082015250565b60006134e8604683612cc9565b91506134f382613466565b606082019050919050565b60006020820190508181036000830152613517816134db565b9050919050565b7f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060008201527f6e6577206f776e65720000000000000000000000000000000000000000000000602082015250565b600061357a602983612cc9565b91506135858261351e565b604082019050919050565b600060208201905081810360008301526135a98161356d565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061360c602583612cc9565b9150613617826135b0565b604082019050919050565b6000602082019050818103600083015261363b816135ff565b9050919050565b7f4d617857616c6c65743a204c696d697420746f6f206c6f770000000000000000600082015250565b6000613678601883612cc9565b915061368382613642565b602082019050919050565b600060208201905081810360008301526136a78161366b565b9050919050565b60006136b982612ddc565b91506136c483612ddc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136fd576136fc6133e1565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061374282612ddc565b915061374d83612ddc565b92508261375d5761375c613708565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006137a282612eb2565b91506137ad83612eb2565b9250828210156137c0576137bf6133e1565b5b828203905092915050565b60006137d682612eb2565b91506137e183612eb2565b92508261ffff038211156137f8576137f76133e1565b5b828201905092915050565b7f546178657344656661756c74526f757465723a2043616e6e6f7420657863656560008201527f64206d617820746f74616c20666565206f662035302500000000000000000000602082015250565b600061385f603683612cc9565b915061386a82613803565b604082019050919050565b6000602082019050818103600083015261388e81613852565b9050919050565b60006060820190506138aa600083018661303c565b6138b7602083018561303c565b6138c4604083018461303c565b949350505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613928602483612cc9565b9150613933826138cc565b604082019050919050565b600060208201905081810360008301526139578161391b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006139ba602283612cc9565b91506139c58261395e565b604082019050919050565b600060208201905081810360008301526139e9816139ad565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a26602083612cc9565b9150613a31826139f0565b602082019050919050565b60006020820190508181036000830152613a5581613a19565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a92601d83612cc9565b9150613a9d82613a5c565b602082019050919050565b60006020820190508181036000830152613ac181613a85565b9050919050565b6000613ad382612ddc565b9150613ade83612ddc565b925082821015613af157613af06133e1565b5b828203905092915050565b6000604082019050613b11600083018561310d565b613b1e6020830184612e88565b9392505050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b81602183612cc9565b9150613b8c82613b25565b604082019050919050565b60006020820190508181036000830152613bb081613b74565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c13602283612cc9565b9150613c1e82613bb7565b604082019050919050565b60006020820190508181036000830152613c4281613c06565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ca5602583612cc9565b9150613cb082613c49565b604082019050919050565b60006020820190508181036000830152613cd481613c98565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d37602383612cc9565b9150613d4282613cdb565b604082019050919050565b60006020820190508181036000830152613d6681613d2a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613dc9602683612cc9565b9150613dd482613d6d565b604082019050919050565b60006020820190508181036000830152613df881613dbc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613e3d81612db0565b92915050565b600060208284031215613e5957613e58612d79565b5b6000613e6784828501613e2e565b91505092915050565b6000819050919050565b6000613e95613e90613e8b84613e70565b613093565b612ddc565b9050919050565b613ea581613e7a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ee081612d9e565b82525050565b6000613ef28383613ed7565b60208301905092915050565b6000602082019050919050565b6000613f1682613eab565b613f208185613eb6565b9350613f2b83613ec7565b8060005b83811015613f5c578151613f438882613ee6565b9750613f4e83613efe565b925050600181019050613f2f565b5085935050505092915050565b600060a082019050613f7e6000830188612e88565b613f8b6020830187613e9c565b8181036040830152613f9d8186613f0b565b9050613fac606083018561310d565b613fb96080830184612e88565b9695505050505050565b7f4d617854783a2043616e6e6f7420657863656564206d617820627579206c696d60008201527f6974000000000000000000000000000000000000000000000000000000000000602082015250565b600061401f602283612cc9565b915061402a82613fc3565b604082019050919050565b6000602082019050818103600083015261404e81614012565b9050919050565b7f4d617857616c6c65743a2043616e6e6f7420657863656564206d61782077616c60008201527f6c6574206c696d69740000000000000000000000000000000000000000000000602082015250565b60006140b1602983612cc9565b91506140bc82614055565b604082019050919050565b600060208201905081810360008301526140e0816140a4565b905091905056fea2646970667358221220021605ad137414aba97d71743d69d44dd0d589def67795240080291d7260c21d64736f6c634300080b0033