0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bfb806100745f395ff3fe608060405234801561000f575f5ffd5b506004361061007b575f3560e01c8063bc6af73b11610059578063bc6af73b146100e9578063c93f977a14610119578063d9616d8514610149578063f2fde38b146101795761007b565b80633b111c251461007f5780636571c2381461009b5780638da5cb5b146100cb575b5f5ffd5b610099600480360381019061009491906105d7565b610195565b005b6100b560048036038101906100b0919061064a565b61033f565b6040516100c29190610684565b60405180910390f35b6100d3610348565b6040516100e09190610684565b60405180910390f35b61010360048036038101906100fe91906107d9565b61036d565b60405161011091906108c1565b60405180910390f35b610133600480360381019061012e91906108e1565b6103ae565b60405161014091906108c1565b60405180910390f35b610163600480360381019061015e9190610931565b6103ef565b6040516101709190610987565b60405180910390f35b610193600480360381019061018e91906109a0565b6103f9565b005b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fa90610a15565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16828360405160240161022d9190610987565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516102b79190610a77565b5f6040518083038185875af1925050503d805f81146102f1576040519150601f19603f3d011682016040523d82523d5f602084013e6102f6565b606091505b505090508061033a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033190610ad7565b60405180910390fd5b505050565b5f5f9050919050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600781526020017f537563636573730000000000000000000000000000000000000000000000000081525090509392505050565b60606040518060400160405280600781526020017f537563636573730000000000000000000000000000000000000000000000000081525090509392505050565b5f602a9050919050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610488576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047f90610b3f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ed90610ba7565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105738261054a565b9050919050565b61058381610569565b811461058d575f5ffd5b50565b5f8135905061059e8161057a565b92915050565b5f819050919050565b6105b6816105a4565b81146105c0575f5ffd5b50565b5f813590506105d1816105ad565b92915050565b5f5f604083850312156105ed576105ec610542565b5b5f6105fa85828601610590565b925050602061060b858286016105c3565b9150509250929050565b5f8115159050919050565b61062981610615565b8114610633575f5ffd5b50565b5f8135905061064481610620565b92915050565b5f6020828403121561065f5761065e610542565b5b5f61066c84828501610636565b91505092915050565b61067e81610569565b82525050565b5f6020820190506106975f830184610675565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106eb826106a5565b810181811067ffffffffffffffff8211171561070a576107096106b5565b5b80604052505050565b5f61071c610539565b905061072882826106e2565b919050565b5f67ffffffffffffffff821115610747576107466106b5565b5b610750826106a5565b9050602081019050919050565b828183375f83830152505050565b5f61077d6107788461072d565b610713565b905082815260208101848484011115610799576107986106a1565b5b6107a484828561075d565b509392505050565b5f82601f8301126107c0576107bf61069d565b5b81356107d084826020860161076b565b91505092915050565b5f5f5f606084860312156107f0576107ef610542565b5b5f6107fd868287016105c3565b935050602084013567ffffffffffffffff81111561081e5761081d610546565b5b61082a868287016107ac565b925050604084013567ffffffffffffffff81111561084b5761084a610546565b5b610857868287016107ac565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61089382610861565b61089d818561086b565b93506108ad81856020860161087b565b6108b6816106a5565b840191505092915050565b5f6020820190508181035f8301526108d98184610889565b905092915050565b5f5f5f606084860312156108f8576108f7610542565b5b5f61090586828701610590565b935050602061091686828701610636565b9250506040610927868287016105c3565b9150509250925092565b5f6020828403121561094657610945610542565b5b5f82013567ffffffffffffffff81111561096357610962610546565b5b61096f848285016107ac565b91505092915050565b610981816105a4565b82525050565b5f60208201905061099a5f830184610978565b92915050565b5f602082840312156109b5576109b4610542565b5b5f6109c284828501610590565b91505092915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f6109ff60188361086b565b9150610a0a826109cb565b602082019050919050565b5f6020820190508181035f830152610a2c816109f3565b9050919050565b5f81519050919050565b5f81905092915050565b5f610a5182610a33565b610a5b8185610a3d565b9350610a6b81856020860161087b565b80840191505092915050565b5f610a828284610a47565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610ac1601d8361086b565b9150610acc82610a8d565b602082019050919050565b5f6020820190508181035f830152610aee81610ab5565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610b2960178361086b565b9150610b3482610af5565b602082019050919050565b5f6020820190508181035f830152610b5681610b1d565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610b91601d8361086b565b9150610b9c82610b5d565b602082019050919050565b5f6020820190508181035f830152610bbe81610b85565b905091905056fea264697066735822122081f329e1ea006494f4fe6c4990be80f1deb917c4cfb604627ec7afd8fc3e13c264736f6c634300081c0033