0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c6b806100606000396000f3fe6080604052600436106100345760003560e01c8063204206e1146100395780633aaa74b214610055578063865c51721461006c575b600080fd5b610053600480360381019061004e91906105ae565b610097565b005b34801561006157600080fd5b5061006a610211565b005b34801561007857600080fd5b50610081610271565b60405161008e919061082b565b60405180910390f35b600034116100da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d1906108aa565b60405180910390fd5b600160405180608001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200142815260200184815260200183815250908060018154018082558091505060019003906000526020600020906004020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020190816101a29190610ad6565b5060608201518160030190816101b89190610ad6565b5050503373ffffffffffffffffffffffffffffffffffffffff167fc56140e05f516509ae28110e0f72e17558a7561630dad2647c3ae87d986e365c42848460405161020593929190610bf0565b60405180910390a25050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505061026f57600080fd5b565b60606001805480602002602001604051908101604052809291908181526020016000905b8282101561044b57838290600052602060002090600402016040518060800160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282018054610328906108f9565b80601f0160208091040260200160405190810160405280929190818152602001828054610354906108f9565b80156103a15780601f10610376576101008083540402835291602001916103a1565b820191906000526020600020905b81548152906001019060200180831161038457829003601f168201915b505050505081526020016003820180546103ba906108f9565b80601f01602080910402602001604051908101604052809291908181526020018280546103e6906108f9565b80156104335780601f1061040857610100808354040283529160200191610433565b820191906000526020600020905b81548152906001019060200180831161041657829003601f168201915b50505050508152505081526020019060010190610295565b50505050905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6104bb82610472565b810181811067ffffffffffffffff821117156104da576104d9610483565b5b80604052505050565b60006104ed610454565b90506104f982826104b2565b919050565b600067ffffffffffffffff82111561051957610518610483565b5b61052282610472565b9050602081019050919050565b82818337600083830152505050565b600061055161054c846104fe565b6104e3565b90508281526020810184848401111561056d5761056c61046d565b5b61057884828561052f565b509392505050565b600082601f83011261059557610594610468565b5b81356105a584826020860161053e565b91505092915050565b600080604083850312156105c5576105c461045e565b5b600083013567ffffffffffffffff8111156105e3576105e2610463565b5b6105ef85828601610580565b925050602083013567ffffffffffffffff8111156106105761060f610463565b5b61061c85828601610580565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061067d82610652565b9050919050565b61068d81610672565b82525050565b6000819050919050565b6106a681610693565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156106e65780820151818401526020810190506106cb565b60008484015250505050565b60006106fd826106ac565b61070781856106b7565b93506107178185602086016106c8565b61072081610472565b840191505092915050565b60006080830160008301516107436000860182610684565b506020830151610756602086018261069d565b506040830151848203604086015261076e82826106f2565b9150506060830151848203606086015261078882826106f2565b9150508091505092915050565b60006107a1838361072b565b905092915050565b6000602082019050919050565b60006107c182610626565b6107cb8185610631565b9350836020820285016107dd85610642565b8060005b8581101561081957848403895281516107fa8582610795565b9450610805836107a9565b925060208a019950506001810190506107e1565b50829750879550505050505092915050565b6000602082019050818103600083015261084581846107b6565b905092915050565b600082825260208201905092915050565b7f63616e27742062757920636f6666656520666f72206672656521000000000000600082015250565b6000610894601a8361084d565b915061089f8261085e565b602082019050919050565b600060208201905081810360008301526108c381610887565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061091157607f821691505b602082108103610924576109236108ca565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261098c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261094f565b610996868361094f565b95508019841693508086168417925050509392505050565b6000819050919050565b60006109d36109ce6109c984610693565b6109ae565b610693565b9050919050565b6000819050919050565b6109ed836109b8565b610a016109f9826109da565b84845461095c565b825550505050565b600090565b610a16610a09565b610a218184846109e4565b505050565b5b81811015610a4557610a3a600082610a0e565b600181019050610a27565b5050565b601f821115610a8a57610a5b8161092a565b610a648461093f565b81016020851015610a73578190505b610a87610a7f8561093f565b830182610a26565b50505b505050565b600082821c905092915050565b6000610aad60001984600802610a8f565b1980831691505092915050565b6000610ac68383610a9c565b9150826002028217905092915050565b610adf826106ac565b67ffffffffffffffff811115610af857610af7610483565b5b610b0282546108f9565b610b0d828285610a49565b600060209050601f831160018114610b405760008415610b2e578287015190505b610b388582610aba565b865550610ba0565b601f198416610b4e8661092a565b60005b82811015610b7657848901518255600182019150602085019450602081019050610b51565b86831015610b935784890151610b8f601f891682610a9c565b8355505b6001600288020188555050505b505050505050565b610bb181610693565b82525050565b6000610bc2826106ac565b610bcc818561084d565b9350610bdc8185602086016106c8565b610be581610472565b840191505092915050565b6000606082019050610c056000830186610ba8565b8181036020830152610c178185610bb7565b90508181036040830152610c2b8184610bb7565b905094935050505056fea2646970667358221220d72ee9c36b776eeefc9d259a568a99f2a40e53572e690eeba9a747a005d32d4d64736f6c63430008110033