0x608060405234801561001057600080fd5b50604051610f0c380380610f0c8339818101604052810190610032919061011d565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061015d565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ea826100bf565b9050919050565b6100fa816100df565b811461010557600080fd5b50565b600081519050610117816100f1565b92915050565b60008060408385031215610134576101336100ba565b5b600061014285828601610108565b925050602061015385828601610108565b9150509250929050565b610da08061016c6000396000f3fe60806040526004361061003f5760003560e01c8063412ca6a91461004457806357ea89b6146100605780635b7633d0146100775780638da5cb5b146100a2575b600080fd5b61005e600480360381019061005991906107f4565b6100cd565b005b34801561006c57600080fd5b5061007561028f565b005b34801561008357600080fd5b5061008c6103ef565b60405161009991906108a9565b60405180910390f35b3480156100ae57600080fd5b506100b7610415565b6040516100c491906108a9565b60405180910390f35b42811015610110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010790610921565b60405180910390fd5b60006101473384348560405160200161012c94939291906109aa565b60405160208183030381529060405280519060200120610439565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166101d986868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508361046f90919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff161461022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022690610a44565b60405180910390fd5b600083633b9aca00346102429190610a93565b61024c9190610b04565b90507f1027a425782977e3813afc94e489dccce57fecec47b5b531804d7d8e9eb26bff338260405161027f929190610b44565b60405180910390a1505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461031d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031490610bb9565b60405180910390fd5b60008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161036490610c0a565b60006040518083038185875af1925050503d80600081146103a1576040519150601f19603f3d011682016040523d82523d6000602084013e6103a6565b606091505b5091509150816103eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e290610c6b565b60405180910390fd5b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f19457468657265756d205369676e6564204d6573736167653a0a33320000000060005281601c52603c6000209050919050565b60008060008061047f868661049b565b92509250925061048f82826104f7565b82935050505092915050565b600080600060418451036104e05760008060006020870151925060408701519150606087015160001a90506104d28882858561065b565b9550955095505050506104f0565b60006002855160001b9250925092505b9250925092565b6000600381111561050b5761050a610c8b565b5b82600381111561051e5761051d610c8b565b5b0315610657576001600381111561053857610537610c8b565b5b82600381111561054b5761054a610c8b565b5b03610582576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600381111561059657610595610c8b565b5b8260038111156105a9576105a8610c8b565b5b036105ee578060001c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016105e59190610cba565b60405180910390fd5b60038081111561060157610600610c8b565b5b82600381111561061457610613610c8b565b5b0361065657806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161064d9190610cee565b60405180910390fd5b5b5050565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c111561069b576000600385925092509250610745565b6000600188888888604051600081526020016040526040516106c09493929190610d25565b6020604051602081039080840390855afa1580156106e2573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361073657600060016000801b93509350935050610745565b8060008060001b935093509350505b9450945094915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f84011261077e5761077d610759565b5b8235905067ffffffffffffffff81111561079b5761079a61075e565b5b6020830191508360018202830111156107b7576107b6610763565b5b9250929050565b6000819050919050565b6107d1816107be565b81146107dc57600080fd5b50565b6000813590506107ee816107c8565b92915050565b6000806000806060858703121561080e5761080d61074f565b5b600085013567ffffffffffffffff81111561082c5761082b610754565b5b61083887828801610768565b9450945050602061084b878288016107df565b925050604061085c878288016107df565b91505092959194509250565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061089382610868565b9050919050565b6108a381610888565b82525050565b60006020820190506108be600083018461089a565b92915050565b600082825260208201905092915050565b7f446561646c696e65207061737365640000000000000000000000000000000000600082015250565b600061090b600f836108c4565b9150610916826108d5565b602082019050919050565b6000602082019050818103600083015261093a816108fe565b9050919050565b60008160601b9050919050565b600061095982610941565b9050919050565b600061096b8261094e565b9050919050565b61098361097e82610888565b610960565b82525050565b6000819050919050565b6109a461099f826107be565b610989565b82525050565b60006109b68287610972565b6014820191506109c68286610993565b6020820191506109d68285610993565b6020820191506109e68284610993565b60208201915081905095945050505050565b7f57726f6e67207369676e65722100000000000000000000000000000000000000600082015250565b6000610a2e600d836108c4565b9150610a39826109f8565b602082019050919050565b60006020820190508181036000830152610a5d81610a21565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610a9e826107be565b9150610aa9836107be565b9250828202610ab7816107be565b91508282048414831517610ace57610acd610a64565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610b0f826107be565b9150610b1a836107be565b925082610b2a57610b29610ad5565b5b828204905092915050565b610b3e816107be565b82525050565b6000604082019050610b59600083018561089a565b610b666020830184610b35565b9392505050565b7f4e6f7420616e206f776e65720000000000000000000000000000000000000000600082015250565b6000610ba3600c836108c4565b9150610bae82610b6d565b602082019050919050565b60006020820190508181036000830152610bd281610b96565b9050919050565b600081905092915050565b50565b6000610bf4600083610bd9565b9150610bff82610be4565b600082019050919050565b6000610c1582610be7565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b6000610c556014836108c4565b9150610c6082610c1f565b602082019050919050565b60006020820190508181036000830152610c8481610c48565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082019050610ccf6000830184610b35565b92915050565b6000819050919050565b610ce881610cd5565b82525050565b6000602082019050610d036000830184610cdf565b92915050565b600060ff82169050919050565b610d1f81610d09565b82525050565b6000608082019050610d3a6000830187610cdf565b610d476020830186610d16565b610d546040830185610cdf565b610d616060830184610cdf565b9594505050505056fea26469706673582212207932701867147af5003563a584d630aa7a1dd5210d0b242309dc98dd23447d4764736f6c634300081b0033000000000000000000000000d319cf4ea5aed2b64360d983ac7f0f16b813b70b0000000000000000000000001b82d8b7b1480c5da27a6011d37a08ca2ea65f02