0x608060405234801561001057600080fd5b506000600181905550610de1806100286000396000f3fe60806040526004361061004a5760003560e01c80636aa14a961461004f5780637257dfc914610078578063c7e2f28e146100a1578063d3e89483146100bd578063de54d429146100fe575b600080fd5b34801561005b57600080fd5b5061007660048036038101906100719190610802565b610129565b005b34801561008457600080fd5b5061009f600480360381019061009a9190610802565b610306565b005b6100bb60048036038101906100b6919061082f565b610525565b005b3480156100c957600080fd5b506100e460048036038101906100df9190610802565b610751565b6040516100f59594939291906108da565b60405180910390f35b34801561010a57600080fd5b506101136107c1565b604051610120919061092d565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146101cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c3906109cb565b60405180910390fd5b60008082815260200190815260200160002060030160009054906101000a900460ff1661022e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022590610a37565b60405180910390fd5b60008082815260200190815260200160002060030160019054906101000a900460ff1615610291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028890610ac9565b60405180910390fd5b600160008083815260200190815260200160002060030160016101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16817f4dfa1d399fc3d748dfe023239c274bdaa380853d97eec367121715b4659d7fdb60405160405180910390a350565b60008082815260200190815260200160002060030160009054906101000a900460ff16610368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035f90610a37565b60405180910390fd5b60008082815260200190815260200160002060030160019054906101000a900460ff166103ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c190610b5b565b60405180910390fd5b600080600083815260200190815260200160002060030160006101000a81548160ff02191690831515021790555060008082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600080848152602001908152602001600020600201549081150290604051600060405180830381858888f19350505050158015610488573d6000803e3d6000fd5b5060008082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16817f786e090d783caced3baddcb29bd555ffb93faf484529ab87feab4ec4c48a81e16000808581526020019081526020016000206002015460405161051a919061092d565b60405180910390a350565b60008211610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055f90610bed565b60405180910390fd5b600081116105ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a290610c7f565b60405180910390fd5b600160008154809291906105be90610cce565b91905055506040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200160011515815260200160001515815250600080600154815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555060808201518160030160016101000a81548160ff0219169083151502179055509050503373ffffffffffffffffffffffffffffffffffffffff166001547ff407f724dd5d2b7754fcbc405960f07c8da0a85e7f71948913fb2997e77bfc868484604051610703929190610d16565b60405180910390a381341461074d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074490610d8b565b60405180910390fd5b5050565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030160009054906101000a900460ff16908060030160019054906101000a900460ff16905085565b60015481565b600080fd5b6000819050919050565b6107df816107cc565b81146107ea57600080fd5b50565b6000813590506107fc816107d6565b92915050565b600060208284031215610818576108176107c7565b5b6000610826848285016107ed565b91505092915050565b60008060408385031215610846576108456107c7565b5b6000610854858286016107ed565b9250506020610865858286016107ed565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061089a8261086f565b9050919050565b6108aa8161088f565b82525050565b6108b9816107cc565b82525050565b60008115159050919050565b6108d4816108bf565b82525050565b600060a0820190506108ef60008301886108a1565b6108fc60208301876108b0565b61090960408301866108b0565b61091660608301856108cb565b61092360808301846108cb565b9695505050505050565b600060208201905061094260008301846108b0565b92915050565b600082825260208201905092915050565b7f4f6e6c792074686520706f6c69637920686f6c6465722063616e207375626d6960008201527f74206120636c61696d0000000000000000000000000000000000000000000000602082015250565b60006109b5602983610948565b91506109c082610959565b604082019050919050565b600060208201905081810360008301526109e4816109a8565b9050919050565b7f506f6c696379206973206e6f7420616374697665000000000000000000000000600082015250565b6000610a21601483610948565b9150610a2c826109eb565b602082019050919050565b60006020820190508181036000830152610a5081610a14565b9050919050565b7f436c61696d2068617320616c7265616479206265656e207375626d697474656460008201527f20666f72207468697320706f6c69637900000000000000000000000000000000602082015250565b6000610ab3603083610948565b9150610abe82610a57565b604082019050919050565b60006020820190508181036000830152610ae281610aa6565b9050919050565b7f4e6f20636c61696d20686173206265656e207375626d697474656420666f722060008201527f7468697320706f6c696379000000000000000000000000000000000000000000602082015250565b6000610b45602b83610948565b9150610b5082610ae9565b604082019050919050565b60006020820190508181036000830152610b7481610b38565b9050919050565b7f5072656d69756d206d7573742062652067726561746572207468616e207a657260008201527f6f00000000000000000000000000000000000000000000000000000000000000602082015250565b6000610bd7602183610948565b9150610be282610b7b565b604082019050919050565b60006020820190508181036000830152610c0681610bca565b9050919050565b7f5061796f757420616d6f756e74206d757374206265206772656174657220746860008201527f616e207a65726f00000000000000000000000000000000000000000000000000602082015250565b6000610c69602783610948565b9150610c7482610c0d565b604082019050919050565b60006020820190508181036000830152610c9881610c5c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610cd9826107cc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610d0b57610d0a610c9f565b5b600182019050919050565b6000604082019050610d2b60008301856108b0565b610d3860208301846108b0565b9392505050565b7f496e636f7272656374207072656d69756d20616d6f756e740000000000000000600082015250565b6000610d75601883610948565b9150610d8082610d3f565b602082019050919050565b60006020820190508181036000830152610da481610d68565b905091905056fea2646970667358221220e75339634738eec3257d380242e9a7a21197269970f088ee3426051f01f35c1664736f6c63430008120033