0x608060405234801561001057600080fd5b50610c7b806100206000396000f3fe6080604052600436106100225760003560e01c8063fa461e331461039457610029565b3661002957005b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000803560601c9182906370a0823190602401602060405180830381865afa158015610085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100a9919061080e565b6040805160ff808252610120820190925291925060009182916020820181803683370190505060283560f01c6024810182526014803560601c94509192506004602e602085013780601e830160248501378481602401840152506000808473ffffffffffffffffffffffffffffffffffffffff168460405161012b919061087a565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b5091509150816101ba5761017e816103b6565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b19190610896565b60405180910390fd5b6000818060200190518101906101d0919061080e565b9050833560601c9550601484013560f01c600481018652600460168601602088013780601e86016024880137508573ffffffffffffffffffffffffffffffffffffffff1685604051610222919061087a565b600060405180830381855af49150503d806000811461025d576040519150601f19603f3d011682016040523d82523d6000602084013e610262565b606091505b509093509150826102765761017e826103b6565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8a16906370a0823190602401602060405180830381865afa1580156102e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610307919061080e565b90506103128861042c565b61031b8361042c565b6103248361042c565b604051602001610336939291906108e7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526101b191600401610896565b3480156103a057600080fd5b506103b46103af36600461095d565b610569565b005b60606004825111156103f3576103da8260048085516103d59190610a0c565b610591565b8060200190518101906103ed9190610a1f565b92915050565b505060408051808201909152600781527f3c656d7074793e00000000000000000000000000000000000000000000000000602082015290565b60608160000361046f57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115610499578061048381610aea565b91506104929050600a83610b51565b9150610473565b60008167ffffffffffffffff8111156104b4576104b4610827565b6040519080825280601f01601f1916602001820160405280156104de576020820181803683370190505b5090505b8415610561576104f3600183610a0c565b9150610500600a86610b65565b61050b906030610b79565b60f81b81838151811061052057610520610b8c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061055a600a86610b51565b94506104e2565b949350505050565b3360008061057984860186610bbb565b9150915061058882848361070b565b50505050505050565b60608161059f81601f610b79565b1015610607576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016101b1565b6106118284610b79565b8451101561067b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e647300000000000000000000000000000060448201526064016101b1565b60608215801561069a5760405191506000825260208201604052610702565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156106d35780518352602092830192016106bb565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916107a2919061087a565b6000604051808303816000865af19150503d80600081146107df576040519150601f19603f3d011682016040523d82523d6000602084013e6107e4565b606091505b509150915081610807576107f7816103b6565b6040516020016103369190610c00565b5050505050565b60006020828403121561082057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005b83811015610871578181015183820152602001610859565b50506000910152565b6000825161088c818460208701610856565b9190910192915050565b60208152600082518060208401526108b5816040850160208701610856565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600084516108f9818460208901610856565b80830190507f20000000000000000000000000000000000000000000000000000000000000008082528551610935816001850160208a01610856565b60019201918201528351610950816002840160208801610856565b0160020195945050505050565b6000806000806060858703121561097357600080fd5b8435935060208501359250604085013567ffffffffffffffff8082111561099957600080fd5b818701915087601f8301126109ad57600080fd5b8135818111156109bc57600080fd5b8860208285010111156109ce57600080fd5b95989497505060200194505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156103ed576103ed6109dd565b600060208284031215610a3157600080fd5b815167ffffffffffffffff80821115610a4957600080fd5b818401915084601f830112610a5d57600080fd5b815181811115610a6f57610a6f610827565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610ab557610ab5610827565b81604052828152876020848701011115610ace57600080fd5b610adf836020830160208801610856565b979650505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b1b57610b1b6109dd565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082610b6057610b60610b22565b500490565b600082610b7457610b74610b22565b500690565b808201808211156103ed576103ed6109dd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008060408385031215610bce57600080fd5b823573ffffffffffffffffffffffffffffffffffffffff81168114610bf257600080fd5b946020939093013593505050565b7f5472616e7366657248656c7065723a3a736166655472616e736665723a200000815260008251610c3881601e850160208701610856565b91909101601e019291505056fea2646970667358221220b134bed496b88092243c06a8437126e7132d12efc66c4afb05f85a4f20e064e664736f6c63430008110033