[ { "inputs": [ { "internalType": "address", "name": "_rToken", "type": "address" }, { "internalType": "uint24", "name": "_fee", "type": "uint24" }, { "internalType": "uint256", "name": "minDist", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "indexed": false, "internalType": "address[]", "name": "path", "type": "address[]" } ], "name": "SwapTokensForETH", "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" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "IsChargePair", "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": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dexPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dexRouter", "outputs": [ { "internalType": "contract IDexSwapRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dividendReciever", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "fee", "outputs": [ { "internalType": "uint256", "name": "buyRewardFee", "type": "uint256" }, { "internalType": "uint256", "name": "buyMarketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "sellMarketingFee", "type": "uint256" }, { "internalType": "uint256", "name": "sellRewardFee", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isDividendExempt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isMarketPair", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "manualProcess", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "marketingWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransaction", "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": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "rescueFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "rescueTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "secureWhale", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_per", "type": "uint256" } ], "name": "setAntiWhalePercentage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_adr", "type": "address" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "setChargeFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "gas", "type": "uint256" } ], "name": "setDistributorSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "bool", "name": "exempt", "type": "bool" } ], "name": "setDividendOrder", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_buyMarketing", "type": "uint256" }, { "internalType": "uint256", "name": "_buyReward", "type": "uint256" }, { "internalType": "uint256", "name": "_sellMarketing", "type": "uint256" }, { "internalType": "uint256", "name": "_sellReward", "type": "uint256" } ], "name": "setFeeSetting", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAddress", "type": "address" } ], "name": "setMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enabled", "type": "bool" }, { "internalType": "bool", "name": "_limited", "type": "bool" }, { "internalType": "uint256", "name": "_threshold", "type": "uint256" } ], "name": "setSwapBackSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapbylimit", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526040518060400160405280600881526020017f4254432042616e6b000000000000000000000000000000000000000000000000815250600190816200004a919062000f5d565b506040518060400160405280600681526020017f425443424e4b00000000000000000000000000000000000000000000000000008152506002908162000091919062000f5d565b50600960035f6101000a81548160ff021916908360ff160217905550734331469d1d18df1dd82a975dd59d8704ce0e51eb600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035f9054906101000a900460ff16600a6200011f9190620011ca565b6301406f406200013091906200121a565b600e55620001606064620001516002600e5462000aec60201b90919060201c565b62000b6c60201b90919060201c565b600f55620001906064620001816002600e5462000aec60201b90919060201c565b62000b6c60201b90919060201c565b601055620001c1612710620001b26005600e5462000aec60201b90919060201c565b62000b6c60201b90919060201c565b601155600160125f6101000a81548160ff0219169083151502179055505f601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff0219169083151502179055506207a12060145534801562000226575f80fd5b50604051620083b4380380620083b483398181016040528101906200024c919062001335565b6200026c6200026062000bbd60201b60201c565b62000bc460201b60201c565b5f734752ba5dbc23f44d87826276bf6fd6b1c372ad2490505f732626664c2603336e57b271c5c0b26f421741e48190505f8290505f8673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002eb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003119190620013bd565b60ff1690505f8160035f9054906101000a900460ff1660ff16620003369190620013ed565b90505f8373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000383573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003a9919062001427565b90508373ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200041b919062001427565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000481573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004a7919062001427565b6040518363ffffffff1660e01b8152600401620004c692919062001468565b6020604051808303815f875af1158015620004e3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000509919062001427565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508481898b858b336040516200055d9062000ceb565b6200056f9796959493929190620014b5565b604051809103905ff08015801562000589573d5f803e3d5ffd5b50601260036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506040518060a0016040528060018152602001600181526020016003815260200160058152602001606481525060045f820151815f015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050600e5460095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405162000ad5919062001530565b60405180910390a3505050505050505050620016ef565b5f80830362000afe575f905062000b66565b5f828462000b0d91906200121a565b905082848262000b1e919062001578565b1462000b61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b589062001633565b60405180910390fd5b809150505b92915050565b5f62000bb583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000c8560201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808311829062000cce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cc59190620016cd565b60405180910390fd5b505f838562000cde919062001578565b9050809150509392505050565b6127e88062005bcc83390190565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000d7557607f821691505b60208210810362000d8b5762000d8a62000d30565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000def7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000db2565b62000dfb868362000db2565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000e4562000e3f62000e398462000e13565b62000e1c565b62000e13565b9050919050565b5f819050919050565b62000e608362000e25565b62000e7862000e6f8262000e4c565b84845462000dbe565b825550505050565b5f90565b62000e8e62000e80565b62000e9b81848462000e55565b505050565b5b8181101562000ec25762000eb65f8262000e84565b60018101905062000ea1565b5050565b601f82111562000f115762000edb8162000d91565b62000ee68462000da3565b8101602085101562000ef6578190505b62000f0e62000f058562000da3565b83018262000ea0565b50505b505050565b5f82821c905092915050565b5f62000f335f198460080262000f16565b1980831691505092915050565b5f62000f4d838362000f22565b9150826002028217905092915050565b62000f688262000cf9565b67ffffffffffffffff81111562000f845762000f8362000d03565b5b62000f90825462000d5d565b62000f9d82828562000ec6565b5f60209050601f83116001811462000fd3575f841562000fbe578287015190505b62000fca858262000f40565b86555062001039565b601f19841662000fe38662000d91565b5f5b828110156200100c5784890151825560018201915060208501945060208101905062000fe5565b868310156200102c578489015162001028601f89168262000f22565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620010cb57808604811115620010a357620010a262001041565b5b6001851615620010b35780820291505b8081029050620010c3856200106e565b945062001083565b94509492505050565b5f82620010e55760019050620011b7565b81620010f4575f9050620011b7565b81600181146200110d576002811462001118576200114e565b6001915050620011b7565b60ff8411156200112d576200112c62001041565b5b8360020a91508482111562001147576200114662001041565b5b50620011b7565b5060208310610133831016604e8410600b8410161715620011885782820a90508381111562001182576200118162001041565b5b620011b7565b6200119784848460016200107a565b92509050818404811115620011b157620011b062001041565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620011d68262000e13565b9150620011e383620011be565b9250620012127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620010d4565b905092915050565b5f620012268262000e13565b9150620012338362000e13565b9250828202620012438162000e13565b915082820484148315176200125d576200125c62001041565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620012938262001268565b9050919050565b620012a58162001287565b8114620012b0575f80fd5b50565b5f81519050620012c3816200129a565b92915050565b5f62ffffff82169050919050565b620012e281620012c9565b8114620012ed575f80fd5b50565b5f815190506200130081620012d7565b92915050565b620013118162000e13565b81146200131c575f80fd5b50565b5f815190506200132f8162001306565b92915050565b5f805f606084860312156200134f576200134e62001264565b5b5f6200135e86828701620012b3565b93505060206200137186828701620012f0565b925050604062001384868287016200131f565b9150509250925092565b6200139981620011be565b8114620013a4575f80fd5b50565b5f81519050620013b7816200138e565b92915050565b5f60208284031215620013d557620013d462001264565b5b5f620013e484828501620013a7565b91505092915050565b5f620013f98262000e13565b9150620014068362000e13565b925082820190508082111562001421576200142062001041565b5b92915050565b5f602082840312156200143f576200143e62001264565b5b5f6200144e84828501620012b3565b91505092915050565b620014628162001287565b82525050565b5f6040820190506200147d5f83018562001457565b6200148c602083018462001457565b9392505050565b6200149e81620012c9565b82525050565b620014af8162000e13565b82525050565b5f60e082019050620014ca5f83018a62001457565b620014d9602083018962001457565b620014e8604083018862001493565b620014f7606083018762001457565b620015066080830186620014a4565b6200151560a0830185620014a4565b6200152460c083018462001457565b98975050505050505050565b5f602082019050620015455f830184620014a4565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620015848262000e13565b9150620015918362000e13565b925082620015a457620015a36200154b565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200161b602183620015af565b91506200162882620015bf565b604082019050919050565b5f6020820190508181035f8301526200164c816200160d565b9050919050565b5f5b838110156200167257808201518184015260208101905062001655565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620016998262000cf9565b620016a58185620015af565b9350620016b781856020860162001653565b620016c2816200167d565b840191505092915050565b5f6020820190508181035f830152620016e781846200168d565b905092915050565b6144cf80620016fd5f395ff3fe60806040526004361061021d575f3560e01c8063715018a611610122578063c3f70b52116100aa578063e9fd33941161006e578063e9fd33941461079e578063f242ab41146107c8578063f2fde38b146107f2578063f8b45b051461081a578063fa0486dc1461084457610224565b8063c3f70b52146106cc578063cea9d26f146106f6578063dd62ed3e1461071e578063ddca3f431461075a578063e6b2603b1461078857610224565b80638ccf3715116100f15780638ccf3715146105ec5780638da5cb5b1461061457806395d89b411461063e5780639d1944f514610668578063a9059cbb1461069057610224565b8063715018a61461056e578063751039fc1461058457806375f0a8741461059a57806388700798146105c457610224565b8063313ce567116101a55780634b2c8998116101745780634b2c89981461048e5780635d098b38146104a45780635e8bf1d6146104cc5780636ddd17131461050857806370a082311461053257610224565b8063313ce567146103c45780633a91a700146103ee5780633ecad271146104165780634355855a1461045257610224565b80630758d924116101ec5780630758d924146102ce578063095ea7b3146102f857806318160ddd1461033457806323b872dd1461035e5780632f15d34a1461039a57610224565b806301ae592b146102285780630445b66714610250578063062ae9b11461027a57806306fdde03146102a457610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061024e600480360381019061024991906132f5565b61086c565b005b34801561025b575f80fd5b50610264610927565b6040516102719190613354565b60405180910390f35b348015610285575f80fd5b5061028e61092d565b60405161029b91906133ac565b60405180910390f35b3480156102af575f80fd5b506102b8610952565b6040516102c5919061344f565b60405180910390f35b3480156102d9575f80fd5b506102e26109e2565b6040516102ef91906134ca565b60405180910390f35b348015610303575f80fd5b5061031e6004803603810190610319919061350d565b610a07565b60405161032b919061355a565b60405180910390f35b34801561033f575f80fd5b50610348610a24565b6040516103559190613354565b60405180910390f35b348015610369575f80fd5b50610384600480360381019061037f9190613573565b610a2d565b604051610391919061355a565b60405180910390f35b3480156103a5575f80fd5b506103ae610b02565b6040516103bb919061355a565b60405180910390f35b3480156103cf575f80fd5b506103d8610b15565b6040516103e591906135de565b60405180910390f35b3480156103f9575f80fd5b50610414600480360381019061040f91906135f7565b610b2a565b005b348015610421575f80fd5b5061043c6004803603810190610437919061365b565b610ca3565b604051610449919061355a565b60405180910390f35b34801561045d575f80fd5b506104786004803603810190610473919061365b565b610cc0565b604051610485919061355a565b60405180910390f35b348015610499575f80fd5b506104a2610cdd565b005b3480156104af575f80fd5b506104ca60048036038101906104c5919061365b565b610d65565b005b3480156104d7575f80fd5b506104f260048036038101906104ed919061365b565b610e25565b6040516104ff919061355a565b60405180910390f35b348015610513575f80fd5b5061051c610e42565b604051610529919061355a565b60405180910390f35b34801561053d575f80fd5b506105586004803603810190610553919061365b565b610e54565b6040516105659190613354565b60405180910390f35b348015610579575f80fd5b50610582610e9a565b005b34801561058f575f80fd5b50610598610f21565b005b3480156105a5575f80fd5b506105ae610fcb565b6040516105bb91906133ac565b60405180910390f35b3480156105cf575f80fd5b506105ea60048036038101906105e59190613686565b610ff1565b005b3480156105f7575f80fd5b50610612600480360381019061060d9190613686565b6110c5565b005b34801561061f575f80fd5b5061062861134c565b60405161063591906133ac565b60405180910390f35b348015610649575f80fd5b50610652611373565b60405161065f919061344f565b60405180910390f35b348015610673575f80fd5b5061068e600480360381019061068991906136c4565b611403565b005b34801561069b575f80fd5b506106b660048036038101906106b1919061350d565b6114ce565b6040516106c3919061355a565b60405180910390f35b3480156106d7575f80fd5b506106e06114ec565b6040516106ed9190613354565b60405180910390f35b348015610701575f80fd5b5061071c60048036038101906107179190613573565b6114f2565b005b348015610729575f80fd5b50610744600480360381019061073f91906136ef565b6116ab565b6040516107519190613354565b60405180910390f35b348015610765575f80fd5b5061076e61172d565b60405161077f95949392919061372d565b60405180910390f35b348015610793575f80fd5b5061079c611750565b005b3480156107a9575f80fd5b506107b2611877565b6040516107bf919061355a565b60405180910390f35b3480156107d3575f80fd5b506107dc61188a565b6040516107e991906133ac565b60405180910390f35b3480156107fd575f80fd5b506108186004803603810190610813919061365b565b6118af565b005b348015610825575f80fd5b5061082e6119a5565b60405161083b9190613354565b60405180910390f35b34801561084f575f80fd5b5061086a600480360381019061086591906136c4565b6119ab565b005b610874611ae4565b73ffffffffffffffffffffffffffffffffffffffff1661089261134c565b73ffffffffffffffffffffffffffffffffffffffff16146108e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108df906137c8565b60405180910390fd5b8260125f6101000a81548160ff02191690831515021790555081601260016101000a81548160ff02191690831515021790555080601181905550505050565b60115481565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606001805461096190613813565b80601f016020809104026020016040519081016040528092919081815260200182805461098d90613813565b80156109d85780601f106109af576101008083540402835291602001916109d8565b820191905f5260205f20905b8154815290600101906020018083116109bb57829003601f168201915b5050505050905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610a1a610a13611ae4565b8484611aeb565b6001905092915050565b5f600e54905090565b5f610a39848484611cae565b50610af784610a46611ae4565b610af28560405180606001604052806028815260200161447260289139600a5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610aa9611ae4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125219092919063ffffffff16565b611aeb565b600190509392505050565b601260029054906101000a900460ff1681565b5f60035f9054906101000a900460ff16905090565b610b32611ae4565b73ffffffffffffffffffffffffffffffffffffffff16610b5061134c565b73ffffffffffffffffffffffffffffffffffffffff1614610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d906137c8565b60405180910390fd5b5f808460045f0181905550856004600101819055508360046002018190555082600460030181905550610be2868661258390919063ffffffff16565b9150610bf7838561258390919063ffffffff16565b905060018210158015610c0b575060018110155b610c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c419061388d565b60405180910390fd5b601e8211158015610c5c5750601e8111155b610c9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c929061391b565b60405180910390fd5b505050505050565b600c602052805f5260405f205f915054906101000a900460ff1681565b600d602052805f5260405f205f915054906101000a900460ff1681565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796014546040518263ffffffff1660e01b8152600401610d3a9190613354565b5f604051808303815f87803b158015610d51575f80fd5b505af1925050508015610d62575060015b50565b610d6d611ae4565b73ffffffffffffffffffffffffffffffffffffffff16610d8b61134c565b73ffffffffffffffffffffffffffffffffffffffff1614610de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd8906137c8565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900460ff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610ea2611ae4565b73ffffffffffffffffffffffffffffffffffffffff16610ec061134c565b73ffffffffffffffffffffffffffffffffffffffff1614610f16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0d906137c8565b60405180910390fd5b610f1f5f6125e0565b565b610f29611ae4565b73ffffffffffffffffffffffffffffffffffffffff16610f4761134c565b73ffffffffffffffffffffffffffffffffffffffff1614610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f94906137c8565b60405180910390fd5b600e54600f81905550600e546010819055505f601260026101000a81548160ff021916908315150217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ff9611ae4565b73ffffffffffffffffffffffffffffffffffffffff1661101761134c565b73ffffffffffffffffffffffffffffffffffffffff161461106d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611064906137c8565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6110cd611ae4565b73ffffffffffffffffffffffffffffffffffffffff166110eb61134c565b73ffffffffffffffffffffffffffffffffffffffff1614611141576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611138906137c8565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156111c45750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6111cc575f80fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080156112b557601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca96835f6040518363ffffffff1660e01b8152600401611283929190613972565b5f604051808303815f87803b15801561129a575f80fd5b505af11580156112ac573d5f803e3d5ffd5b50505050611348565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca96836112fd85610e54565b6040518363ffffffff1660e01b815260040161131a929190613999565b5f604051808303815f87803b158015611331575f80fd5b505af1158015611343573d5f803e3d5ffd5b505050505b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461138290613813565b80601f01602080910402602001604051908101604052809291908181526020018280546113ae90613813565b80156113f95780601f106113d0576101008083540402835291602001916113f9565b820191905f5260205f20905b8154815290600101906020018083116113dc57829003601f168201915b5050505050905090565b61140b611ae4565b73ffffffffffffffffffffffffffffffffffffffff1661142961134c565b73ffffffffffffffffffffffffffffffffffffffff161461147f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611476906137c8565b60405180910390fd5b620b71b081106114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90613a0a565b60405180910390fd5b8060148190555050565b5f6114e16114da611ae4565b8484611cae565b506001905092915050565b600f5481565b6114fa611ae4565b73ffffffffffffffffffffffffffffffffffffffff1661151861134c565b73ffffffffffffffffffffffffffffffffffffffff161461156e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611565906137c8565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff168383604051602401611599929190613999565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516116239190613a6c565b5f604051808303815f865af19150503d805f811461165c576040519150601f19603f3d011682016040523d82523d5f602084013e611661565b606091505b50509050806116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c90613acc565b60405180910390fd5b50505050565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6004805f0154908060010154908060020154908060030154908060040154905085565b611758611ae4565b73ffffffffffffffffffffffffffffffffffffffff1661177661134c565b73ffffffffffffffffffffffffffffffffffffffff16146117cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c3906137c8565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff16476040516117f190613b0d565b5f6040518083038185875af1925050503d805f811461182b576040519150601f19603f3d011682016040523d82523d5f602084013e611830565b606091505b5050905080611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b90613b6b565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118b7611ae4565b73ffffffffffffffffffffffffffffffffffffffff166118d561134c565b73ffffffffffffffffffffffffffffffffffffffff161461192b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611922906137c8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199090613bf9565b60405180910390fd5b6119a2816125e0565b50565b60105481565b6119b3611ae4565b73ffffffffffffffffffffffffffffffffffffffff166119d161134c565b73ffffffffffffffffffffffffffffffffffffffff1614611a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1e906137c8565b60405180910390fd5b60058110158015611a445750601260029054906101000a900460ff165b611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a90613c87565b60405180910390fd5b611aac6103e8611a9e83600e546126a190919063ffffffff16565b61271890919063ffffffff16565b600f81905550611adb6103e8611acd83600e546126a190919063ffffffff16565b61271890919063ffffffff16565b60108190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5090613d15565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbe90613da3565b60405180910390fd5b80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ca19190613354565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1490613e31565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290613ebf565b60405180910390fd5b5f8211611dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc490613f4d565b60405180910390fd5b601660149054906101000a900460ff1615611df457611ded848484612761565b905061251a565b600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e925750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611eaa5750601260029054906101000a900460ff165b15611fa357600f54821115611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb90613fb5565b60405180910390fd5b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611fa257601054611f6083611f5286610e54565b61258390919063ffffffff16565b1115611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f989061401d565b60405180910390fd5b5b5b5f611fad30610e54565b90505f6011548210159050808015611fd25750601660149054906101000a900460ff16155b80156120255750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561203c575060125f9054906101000a900460ff165b801561208f5750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120e25750600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156120f1576120f08261292b565b5b612178846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125219092919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6121c48787612b56565b6121d8576121d3878787612cb3565b6121da565b845b905061222c8160095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461258390919063ffffffff16565b60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600d5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661234a57601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca96886123038a610e54565b6040518363ffffffff1660e01b8152600401612320929190613999565b5f604051808303815f87803b158015612337575f80fd5b505af1925050508015612348575060015b505b600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661242757601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca96876123e089610e54565b6040518363ffffffff1660e01b81526004016123fd929190613999565b5f604051808303815f87803b158015612414575f80fd5b505af1925050508015612425575060015b505b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ffb2c4796014546040518263ffffffff1660e01b81526004016124849190613354565b5f604051808303815f87803b15801561249b575f80fd5b505af19250505080156124ac575060015b508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161250a9190613354565b60405180910390a3600193505050505b9392505050565b5f838311158290612568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255f919061344f565b60405180910390fd5b505f83856125769190614068565b9050809150509392505050565b5f808284612591919061409b565b9050838110156125d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cd90614118565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083036126b1575f9050612712565b5f82846126be9190614136565b90508284826126cd91906141a4565b1461270d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270490614244565b60405180910390fd5b809150505b92915050565b5f61275983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f63565b905092915050565b5f6127e9826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125219092919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061287a8260095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461258390919063ffffffff16565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129189190613354565b60405180910390a3600190509392505050565b6001601660146101000a81548160ff021916908315150217905550601260019054906101000a900460ff16156129615760115490505b5f61297d60045f015460045f015461258390919063ffffffff16565b90505f61299d60046002015460046001015461258390919063ffffffff16565b90505f6129b3828461258390919063ffffffff16565b90505f4790506129c285612fc4565b5f6129d6824761324090919063ffffffff16565b90505f6129fe846129f087856126a190919063ffffffff16565b61271890919063ffffffff16565b90505f612a14828461324090919063ffffffff16565b90505f811115612a9a57601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015612a86575f80fd5b505af193505050508015612a98575060015b505b5f821115612b32575f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612ae990613b0d565b5f6040518083038185875af1925050503d805f8114612b23576040519150601f19603f3d011682016040523d82523d5f602084013e612b28565b606091505b5050905060019050505b505050505050505f601660146101000a81548160ff02191690831515021790555050565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612bf25750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c005760019050612cad565b600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c9b5750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612ca8575f9050612cad565b600190505b92915050565b5f805f80600c5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612d7f57612d346004800154612d26600460010154886126a190919063ffffffff16565b61271890919063ffffffff16565b9050612d636004800154612d5560045f0154886126a190919063ffffffff16565b61271890919063ffffffff16565b9150612d78828261258390919063ffffffff16565b9250612e45565b600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612e4457612dfc6004800154612dee600460020154886126a190919063ffffffff16565b61271890919063ffffffff16565b9050612e2c6004800154612e1e600460030154886126a190919063ffffffff16565b61271890919063ffffffff16565b9150612e41828261258390919063ffffffff16565b92505b5b5f831115612f4457612e9d8360095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461258390919063ffffffff16565b60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612f3b9190613354565b60405180910390a35b612f57838661324090919063ffffffff16565b93505050509392505050565b5f8083118290612fa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fa0919061344f565b60405180910390fd5b505f8385612fb791906141a4565b9050809150509392505050565b5f600267ffffffffffffffff811115612fe057612fdf614262565b5b60405190808252806020026020018201604052801561300e5781602001602082028036833780820191505090505b50905030815f815181106130255761302461428f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130ed91906142d0565b816001815181106131015761310061428f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506131673060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611aeb565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360018430601e426131b6919061409b565b6040518663ffffffff1660e01b81526004016131d69594939291906143eb565b5f604051808303815f87803b1580156131ed575f80fd5b505af11580156131ff573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613234929190614443565b60405180910390a15050565b5f61328183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612521565b905092915050565b5f80fd5b5f8115159050919050565b6132a18161328d565b81146132ab575f80fd5b50565b5f813590506132bc81613298565b92915050565b5f819050919050565b6132d4816132c2565b81146132de575f80fd5b50565b5f813590506132ef816132cb565b92915050565b5f805f6060848603121561330c5761330b613289565b5b5f613319868287016132ae565b935050602061332a868287016132ae565b925050604061333b868287016132e1565b9150509250925092565b61334e816132c2565b82525050565b5f6020820190506133675f830184613345565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6133968261336d565b9050919050565b6133a68161338c565b82525050565b5f6020820190506133bf5f83018461339d565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156133fc5780820151818401526020810190506133e1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613421826133c5565b61342b81856133cf565b935061343b8185602086016133df565b61344481613407565b840191505092915050565b5f6020820190508181035f8301526134678184613417565b905092915050565b5f819050919050565b5f61349261348d6134888461336d565b61346f565b61336d565b9050919050565b5f6134a382613478565b9050919050565b5f6134b482613499565b9050919050565b6134c4816134aa565b82525050565b5f6020820190506134dd5f8301846134bb565b92915050565b6134ec8161338c565b81146134f6575f80fd5b50565b5f81359050613507816134e3565b92915050565b5f806040838503121561352357613522613289565b5b5f613530858286016134f9565b9250506020613541858286016132e1565b9150509250929050565b6135548161328d565b82525050565b5f60208201905061356d5f83018461354b565b92915050565b5f805f6060848603121561358a57613589613289565b5b5f613597868287016134f9565b93505060206135a8868287016134f9565b92505060406135b9868287016132e1565b9150509250925092565b5f60ff82169050919050565b6135d8816135c3565b82525050565b5f6020820190506135f15f8301846135cf565b92915050565b5f805f806080858703121561360f5761360e613289565b5b5f61361c878288016132e1565b945050602061362d878288016132e1565b935050604061363e878288016132e1565b925050606061364f878288016132e1565b91505092959194509250565b5f602082840312156136705761366f613289565b5b5f61367d848285016134f9565b91505092915050565b5f806040838503121561369c5761369b613289565b5b5f6136a9858286016134f9565b92505060206136ba858286016132ae565b9150509250929050565b5f602082840312156136d9576136d8613289565b5b5f6136e6848285016132e1565b91505092915050565b5f806040838503121561370557613704613289565b5b5f613712858286016134f9565b9250506020613723858286016134f9565b9150509250929050565b5f60a0820190506137405f830188613345565b61374d6020830187613345565b61375a6040830186613345565b6137676060830185613345565b6137746080830184613345565b9695505050505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6137b26020836133cf565b91506137bd8261377e565b602082019050919050565b5f6020820190508181035f8301526137df816137a6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061382a57607f821691505b60208210810361383d5761383c6137e6565b5b50919050565b7f4572726f723a2043616e7420736574206c65737320746178207468616e2031255f82015250565b5f6138776020836133cf565b915061388282613843565b602082019050919050565b5f6020820190508181035f8301526138a48161386b565b9050919050565b7f4572726f723a2043616e7420736574206d6f726520746178207468616e2033305f8201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b5f6139056021836133cf565b9150613910826138ab565b604082019050919050565b5f6020820190508181035f830152613932816138f9565b9050919050565b5f819050919050565b5f61395c61395761395284613939565b61346f565b6132c2565b9050919050565b61396c81613942565b82525050565b5f6040820190506139855f83018561339d565b6139926020830184613963565b9392505050565b5f6040820190506139ac5f83018561339d565b6139b96020830184613345565b9392505050565b7f476173206d757374206265206c6f776572207468616e203735303030300000005f82015250565b5f6139f4601d836133cf565b91506139ff826139c0565b602082019050919050565b5f6020820190508181035f830152613a21816139e8565b9050919050565b5f81519050919050565b5f81905092915050565b5f613a4682613a28565b613a508185613a32565b9350613a608185602086016133df565b80840191505092915050565b5f613a778284613a3c565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f613ab66014836133cf565b9150613ac182613a82565b602082019050919050565b5f6020820190508181035f830152613ae381613aaa565b9050919050565b50565b5f613af85f83613a32565b9150613b0382613aea565b5f82019050919050565b5f613b1782613aed565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f613b556014836133cf565b9150613b6082613b21565b602082019050919050565b5f6020820190508181035f830152613b8281613b49565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613be36026836133cf565b9150613bee82613b89565b604082019050919050565b5f6020820190508181035f830152613c1081613bd7565b9050919050565b7f4d696e696d756d204c696d697420697320302e3525206f72205768616c65204d5f8201527f7573742062652041637469766500000000000000000000000000000000000000602082015250565b5f613c71602d836133cf565b9150613c7c82613c17565b604082019050919050565b5f6020820190508181035f830152613c9e81613c65565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613cff6024836133cf565b9150613d0a82613ca5565b604082019050919050565b5f6020820190508181035f830152613d2c81613cf3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d8d6022836133cf565b9150613d9882613d33565b604082019050919050565b5f6020820190508181035f830152613dba81613d81565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613e1b6025836133cf565b9150613e2682613dc1565b604082019050919050565b5f6020820190508181035f830152613e4881613e0f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613ea96023836133cf565b9150613eb482613e4f565b604082019050919050565b5f6020820190508181035f830152613ed681613e9d565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613f376029836133cf565b9150613f4282613edd565b604082019050919050565b5f6020820190508181035f830152613f6481613f2b565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613f9f6013836133cf565b9150613faa82613f6b565b602082019050919050565b5f6020820190508181035f830152613fcc81613f93565b9050919050565b7f45786365656473206d617857616c6c65740000000000000000000000000000005f82015250565b5f6140076011836133cf565b915061401282613fd3565b602082019050919050565b5f6020820190508181035f83015261403481613ffb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614072826132c2565b915061407d836132c2565b92508282039050818111156140955761409461403b565b5b92915050565b5f6140a5826132c2565b91506140b0836132c2565b92508282019050808211156140c8576140c761403b565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614102601b836133cf565b915061410d826140ce565b602082019050919050565b5f6020820190508181035f83015261412f816140f6565b9050919050565b5f614140826132c2565b915061414b836132c2565b9250828202614159816132c2565b915082820484148315176141705761416f61403b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6141ae826132c2565b91506141b9836132c2565b9250826141c9576141c8614177565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61422e6021836133cf565b9150614239826141d4565b604082019050919050565b5f6020820190508181035f83015261425b81614222565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506142ca816134e3565b92915050565b5f602082840312156142e5576142e4613289565b5b5f6142f2848285016142bc565b91505092915050565b5f819050919050565b5f61431e614319614314846142fb565b61346f565b6132c2565b9050919050565b61432e81614304565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6143668161338c565b82525050565b5f614377838361435d565b60208301905092915050565b5f602082019050919050565b5f61439982614334565b6143a3818561433e565b93506143ae8361434e565b805f5b838110156143de5781516143c5888261436c565b97506143d083614383565b9250506001810190506143b1565b5085935050505092915050565b5f60a0820190506143fe5f830188613345565b61440b6020830187614325565b818103604083015261441d818661438f565b905061442c606083018561339d565b6144396080830184613345565b9695505050505050565b5f6040820190506144565f830185613345565b8181036020830152614468818461438f565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f2576ea6f68519857c17a680429c2e5ffd9d0bfc2715b3074ac641d0e85970e964736f6c63430008160033608060405261012c600f5534801562000016575f80fd5b50604051620027e8380380620027e883398181016040528101906200003c91906200029d565b8660035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508560045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260146101000a81548162ffffff021916908362ffffff1602179055508360025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160108190555082600a620001319190620004c8565b600e81905550335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505062000518565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620001f282620001c7565b9050919050565b6200020481620001e6565b81146200020f575f80fd5b50565b5f815190506200022281620001f9565b92915050565b5f62ffffff82169050919050565b620002418162000228565b81146200024c575f80fd5b50565b5f815190506200025f8162000236565b92915050565b5f819050919050565b620002798162000265565b811462000284575f80fd5b50565b5f8151905062000297816200026e565b92915050565b5f805f805f805f60e0888a031215620002bb57620002ba620001c3565b5b5f620002ca8a828b0162000212565b9750506020620002dd8a828b0162000212565b9650506040620002f08a828b016200024f565b9550506060620003038a828b0162000212565b9450506080620003168a828b0162000287565b93505060a0620003298a828b0162000287565b92505060c06200033c8a828b0162000212565b91505092959891949750929550565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620003d557808604811115620003ad57620003ac6200034b565b5b6001851615620003bd5780820291505b8081029050620003cd8562000378565b94506200038d565b94509492505050565b5f82620003ef5760019050620004c1565b81620003fe575f9050620004c1565b8160018114620004175760028114620004225762000458565b6001915050620004c1565b60ff8411156200043757620004366200034b565b5b8360020a9150848211156200045157620004506200034b565b5b50620004c1565b5060208310610133831016604e8410600b8410161715620004925782820a9050838111156200048c576200048b6200034b565b5b620004c1565b620004a1848484600162000384565b92509050818404811115620004bb57620004ba6200034b565b5b81810290505b9392505050565b5f620004d48262000265565b9150620004e18362000265565b9250620005107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620003de565b905092915050565b6122c280620005265f395ff3fe608060405260043610610138575f3560e01c8063997664d7116100aa578063e5711e8b1161006e578063e5711e8b146103e3578063efca2eed1461040b578063f0fc6bca14610435578063f2fde38b1461044b578063ffb2c47914610473578063ffd49c841461049b5761013f565b8063997664d71461031d578063ad5c464814610347578063ce7c2ac214610371578063d0e30db0146103af578063e2d2e219146103b95761013f565b80632d48e896116100fc5780632d48e896146102255780633a98ef391461024d57806340b61d9b1461027757806345599136146102a15780634fab0ae8146102cb57806378e3214f146102f55761013f565b806311ce023d1461014357806314b6ca961461016d57806326987b601461019557806328fd3198146101bf5780632c76d7a6146101fb5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104c5565b6040516101649190611a7c565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190611b1d565b6104cb565b005b3480156101a0575f80fd5b506101a961076f565b6040516101b69190611a7c565b60405180910390f35b3480156101ca575f80fd5b506101e560048036038101906101e09190611b5b565b610775565b6040516101f29190611a7c565b60405180910390f35b348015610206575f80fd5b5061020f610881565b60405161021c9190611be1565b60405180910390f35b348015610230575f80fd5b5061024b60048036038101906102469190611bfa565b6108a6565b005b348015610258575f80fd5b50610261610910565b60405161026e9190611a7c565b60405180910390f35b348015610282575f80fd5b5061028b610916565b6040516102989190611c47565b60405180910390f35b3480156102ac575f80fd5b506102b561093b565b6040516102c29190611c7d565b60405180910390f35b3480156102d6575f80fd5b506102df610950565b6040516102ec9190611a7c565b60405180910390f35b348015610300575f80fd5b5061031b60048036038101906103169190611b1d565b610956565b005b348015610328575f80fd5b506103316109f6565b60405161033e9190611a7c565b60405180910390f35b348015610352575f80fd5b5061035b6109fc565b6040516103689190611c47565b60405180910390f35b34801561037c575f80fd5b5061039760048036038101906103929190611b5b565b610a21565b6040516103a693929190611c96565b60405180910390f35b6103b7610a47565b005b3480156103c4575f80fd5b506103cd610eed565b6040516103da9190611a7c565b60405180910390f35b3480156103ee575f80fd5b5061040960048036038101906104049190611ccb565b610ef3565b005b348015610416575f80fd5b5061041f610fcc565b60405161042c9190611a7c565b60405180910390f35b348015610440575f80fd5b50610449610fd2565b005b348015610456575f80fd5b50610471600480360381019061046c9190611b5b565b610fdd565b005b34801561047e575f80fd5b5061049960048036038101906104949190611d1b565b6110f8565b005b3480156104a6575f80fd5b506104af61127d565b6040516104bc9190611a7c565b60405180910390f35b600e5481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610521575f80fd5b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015411156105725761057182611283565b5b5f811180156105bf57505f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154145b156105d2576105cd82611501565b61062f565b5f8114801561061f57505f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154115b1561062e5761062d826115ab565b5b5b6106958161068760085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01546009546117a090919063ffffffff16565b6117e990919063ffffffff16565b6009819055508060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f018190555061072760085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154611846565b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101819055505050565b600d5481565b5f8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154036107c4575f905061087c565b5f61080d60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154611846565b90505f60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600101549050808211610864575f9250505061087c565b61087781836117a090919063ffffffff16565b925050505b919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108fe575f80fd5b81600f81905550806010819055505050565b60095481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260149054906101000a900462ffffff1681565b60105481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109ae575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156109f1573d5f803e3d5ffd5b505050565b600a5481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6008602052805f5260405f205f91509050805f0154908060010154908060020154905083565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a9d575f80fd5b5f3490505f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afc9190611c47565b602060405180830381865afa158015610b17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3b9190611d5a565b90505f600267ffffffffffffffff811115610b5957610b58611d85565b5b604051908082528060200260200182016040528015610b875781602001602082028036833780820191505090505b50905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815f81518110610bbf57610bbe611db2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110610c2f57610c2e611db2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166304e45aaf846040518060e00160405280855f81518110610cc557610cc4611db2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16815260200185600181518110610cfc57610cfb611db2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168152602001600260149054906101000a900462ffffff1662ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff1681526020018781526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff168152506040518363ffffffff1660e01b8152600401610d999190611ea7565b60206040518083038185885af1158015610db5573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610dda9190611d5a565b505f610e878360025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e3a9190611c47565b602060405180830381865afa158015610e55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e799190611d5a565b6117a090919063ffffffff16565b9050610e9e81600a546117e990919063ffffffff16565b600a81905550610ee1610ed0600954610ec284600e5461187790919063ffffffff16565b6118ee90919063ffffffff16565b600c546117e990919063ffffffff16565b600c8190555050505050565b600c5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f4b575f80fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610f86929190611ec0565b6020604051808303815f875af1158015610fa2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc69190611f1c565b50505050565b600b5481565b610fdb33611283565b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611035575f80fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114e575f80fd5b5f60058054905090505f8103611164575061127a565b5f805a90505f5b848310801561117957508381105b156112755783600d541061118f575f600d819055505b6111d56005600d54815481106111a8576111a7611db2565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611937565b15611221576112206005600d54815481106111f3576111f2611db2565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611283565b5b6112466112375a846117a090919063ffffffff16565b846117e990919063ffffffff16565b92505a9150600d5f81548092919061125d90611f74565b9190505550808061126d90611f74565b91505061116b565b505050505b50565b600f5481565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015403156114fe575f6112d482610775565b90505f8111156114fc576112f381600b546117e990919063ffffffff16565b600b819055504260075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061138e8160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600201546117e990919063ffffffff16565b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002018190555061141a60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0154611846565b60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001018190555060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016114ba929190611ec0565b6020604051808303815f875af11580156114d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114fa9190611f1c565b505b505b50565b60058054905060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600581908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560016005805490506115bf9190611fbb565b815481106115d0576115cf611db2565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548154811061164957611648611db2565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460065f600560016005805490506116e39190611fbb565b815481106116f4576116f3611db2565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600580548061176b5761176a611fee565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b5f6117e183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119a1565b905092915050565b5f8082846117f7919061201b565b90508381101561183c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611833906120a8565b60405180910390fd5b8091505092915050565b5f611870600e54611862600c548561187790919063ffffffff16565b6118ee90919063ffffffff16565b9050919050565b5f808303611887575f90506118e8565b5f828461189491906120c6565b90508284826118a39190612134565b146118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da906121d4565b60405180910390fd5b809150505b92915050565b5f61192f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a03565b905092915050565b5f42600f5460075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611984919061201b565b10801561199a575060105461199883610775565b115b9050919050565b5f8383111582906119e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119df919061226c565b60405180910390fd5b505f83856119f69190611fbb565b9050809150509392505050565b5f8083118290611a49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a40919061226c565b60405180910390fd5b505f8385611a579190612134565b9050809150509392505050565b5f819050919050565b611a7681611a64565b82525050565b5f602082019050611a8f5f830184611a6d565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ac282611a99565b9050919050565b611ad281611ab8565b8114611adc575f80fd5b50565b5f81359050611aed81611ac9565b92915050565b611afc81611a64565b8114611b06575f80fd5b50565b5f81359050611b1781611af3565b92915050565b5f8060408385031215611b3357611b32611a95565b5b5f611b4085828601611adf565b9250506020611b5185828601611b09565b9150509250929050565b5f60208284031215611b7057611b6f611a95565b5b5f611b7d84828501611adf565b91505092915050565b5f819050919050565b5f611ba9611ba4611b9f84611a99565b611b86565b611a99565b9050919050565b5f611bba82611b8f565b9050919050565b5f611bcb82611bb0565b9050919050565b611bdb81611bc1565b82525050565b5f602082019050611bf45f830184611bd2565b92915050565b5f8060408385031215611c1057611c0f611a95565b5b5f611c1d85828601611b09565b9250506020611c2e85828601611b09565b9150509250929050565b611c4181611ab8565b82525050565b5f602082019050611c5a5f830184611c38565b92915050565b5f62ffffff82169050919050565b611c7781611c60565b82525050565b5f602082019050611c905f830184611c6e565b92915050565b5f606082019050611ca95f830186611a6d565b611cb66020830185611a6d565b611cc36040830184611a6d565b949350505050565b5f805f60608486031215611ce257611ce1611a95565b5b5f611cef86828701611adf565b9350506020611d0086828701611adf565b9250506040611d1186828701611b09565b9150509250925092565b5f60208284031215611d3057611d2f611a95565b5b5f611d3d84828501611b09565b91505092915050565b5f81519050611d5481611af3565b92915050565b5f60208284031215611d6f57611d6e611a95565b5b5f611d7c84828501611d46565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611de881611ab8565b82525050565b611df781611c60565b82525050565b611e0681611a64565b82525050565b611e1581611a99565b82525050565b60e082015f820151611e2f5f850182611ddf565b506020820151611e426020850182611ddf565b506040820151611e556040850182611dee565b506060820151611e686060850182611ddf565b506080820151611e7b6080850182611dfd565b5060a0820151611e8e60a0850182611dfd565b5060c0820151611ea160c0850182611e0c565b50505050565b5f60e082019050611eba5f830184611e1b565b92915050565b5f604082019050611ed35f830185611c38565b611ee06020830184611a6d565b9392505050565b5f8115159050919050565b611efb81611ee7565b8114611f05575f80fd5b50565b5f81519050611f1681611ef2565b92915050565b5f60208284031215611f3157611f30611a95565b5b5f611f3e84828501611f08565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f7e82611a64565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611fb057611faf611f47565b5b600182019050919050565b5f611fc582611a64565b9150611fd083611a64565b9250828203905081811115611fe857611fe7611f47565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f61202582611a64565b915061203083611a64565b925082820190508082111561204857612047611f47565b5b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612092601b8361204e565b915061209d8261205e565b602082019050919050565b5f6020820190508181035f8301526120bf81612086565b9050919050565b5f6120d082611a64565b91506120db83611a64565b92508282026120e981611a64565b91508282048414831517612100576120ff611f47565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61213e82611a64565b915061214983611a64565b92508261215957612158612107565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6121be60218361204e565b91506121c982612164565b604082019050919050565b5f6020820190508181035f8301526121eb816121b2565b9050919050565b5f81519050919050565b5f5b838110156122195780820151818401526020810190506121fe565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61223e826121f2565b612248818561204e565b93506122588185602086016121fc565b61226181612224565b840191505092915050565b5f6020820190508181035f8301526122848184612234565b90509291505056fea26469706673582212205f8b82ebe1f94968f3da47071bf4cbe7a92e79c51654a80720f82abc142bea8864736f6c63430008160033000000000000000000000000cbb7c0000ab88b473b1f5afd9ef808440eed33bf0000000000000000000000000000000000000000000000000000000000000bb80000000000000000000000000000000000000000000000000000000000000064