0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063715018a61161008c578063a9059cbb11610066578063a9059cbb146101cb578063b4a99a4e146101de578063dd62ed3e146101f9578063f2fde38b1461023257600080fd5b8063715018a6146101a657806395d89b41146101b0578063a457c2d7146101b857600080fd5b806323b872dd116100c857806323b872dd14610142578063313ce56714610155578063395093511461016a57806370a082311461017d57600080fd5b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610245565b6040516101049190610906565b60405180910390f35b61012061011b366004610970565b6102d7565b6040519015158152602001610104565b6003545b604051908152602001610104565b61012061015036600461099a565b6102ee565b60025460405160ff9091168152602001610104565b610120610178366004610970565b610393565b61013461018b3660046109d6565b6001600160a01b031660009081526004602052604090205490565b6101ae6103c9565b005b6100f7610405565b6101206101c6366004610970565b610414565b6101206101d9366004610970565b61044a565b6006546040516001600160a01b039091168152602001610104565b6101346102073660046109f1565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6101ae6102403660046109d6565b6104a6565b60606000805461025490610a24565b80601f016020809104026020016040519081016040528092919081815260200182805461028090610a24565b80156102cd5780601f106102a2576101008083540402835291602001916102cd565b820191906000526020600020905b8154815290600101906020018083116102b057829003601f168201915b5050505050905090565b60006102e433848461053c565b5060015b92915050565b60008082116103445760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f60448201526064015b60405180910390fd5b61034f84848461059d565b6001600160a01b038416600090815260056020908152604080832033808552925290912054610389918691610384908661075b565b61053c565b5060019392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916102e491859061038490866107c1565b6006546001600160a01b031633146103f35760405162461bcd60e51b815260040161033b90610a5e565b600680546001600160a01b0319169055565b60606001805461025490610a24565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916102e4918590610384908661075b565b600080821161049b5760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f604482015260640161033b565b6102e433848461059d565b6006546001600160a01b031633146104d05760405162461bcd60e51b815260040161033b90610a5e565b6001600160a01b03811661051a5760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b2103732bb9037bbb732b960791b604482015260640161033b565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006105b560646105af846001610827565b906108a9565b905060006105c3838361075b565b6001600160a01b0386166000908152600460205260409020549091506105e9908461075b565b6001600160a01b03808716600090815260046020526040808220939093559086168152205461061890826107c1565b6001600160a01b0385166000908152600460205260408120919091557377cda7c7db3f71bc7dbfc2ded9848773c1afb3c290527f93713b0da7e72447c5e4f0ad253a7214590f6f3193d69094916d347b7d6041d45461067790836107c1565b7377cda7c7db3f71bc7dbfc2ded9848773c1afb3c260005260046020527f93713b0da7e72447c5e4f0ad253a7214590f6f3193d69094916d347b7d6041d4556040516001600160a01b0385811691908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106f89085815260200190565b60405180910390a36040518281527377cda7c7db3f71bc7dbfc2ded9848773c1afb3c2906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6000828211156107ad5760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015260640161033b565b60006107b98385610abe565b949350505050565b6000806107ce8385610ad1565b9050838110156108205760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161033b565b9392505050565b600082600003610839575060006102e8565b60006108458385610ae4565b9050826108528583610afb565b146108205760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161033b565b60008082116108fa5760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015260640161033b565b60006107b98385610afb565b600060208083528351808285015260005b8181101561093357858101830151858201604001528201610917565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461096b57600080fd5b919050565b6000806040838503121561098357600080fd5b61098c83610954565b946020939093013593505050565b6000806000606084860312156109af57600080fd5b6109b884610954565b92506109c660208501610954565b9150604084013590509250925092565b6000602082840312156109e857600080fd5b61082082610954565b60008060408385031215610a0457600080fd5b610a0d83610954565b9150610a1b60208401610954565b90509250929050565b600181811c90821680610a3857607f821691505b602082108103610a5857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602a908201527f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c207468696040820152693990333ab731ba34b7b760b11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156102e8576102e8610aa8565b808201808211156102e8576102e8610aa8565b80820281158282048414176102e8576102e8610aa8565b600082610b1857634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220f53dc786349691228cc4a1ec18f2668454a66f8a48c29bf9cc8637cd859a67cd64736f6c63430008130033
0x60c060405260086080908152670564f4c5420332e360c41b60a052600090620000299082620001a8565b506040805180820190915260078152660564f4c54332e360cc1b6020820152600190620000579082620001a8565b506002805460ff191660129081179091556200007590600a62000389565b620000889066017dfcdece40006200039e565b6003553480156200009857600080fd5b50600680546001600160a01b031916339081179091556003546000828152600460205260408082208390555190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620000f591815260200190565b60405180910390a3620003b8565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200012e57607f821691505b6020821081036200014f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001a357600081815260208120601f850160051c810160208610156200017e5750805b601f850160051c820191505b818110156200019f578281556001016200018a565b5050505b505050565b81516001600160401b03811115620001c457620001c462000103565b620001dc81620001d5845462000119565b8462000155565b602080601f831160018114620002145760008415620001fb5750858301515b600019600386901b1c1916600185901b1785556200019f565b600085815260208120601f198616915b82811015620002455788860151825594840194600190910190840162000224565b5085821015620002645787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002cb578160001904821115620002af57620002af62000274565b80851615620002bd57918102915b93841c93908002906200028f565b509250929050565b600082620002e45750600162000383565b81620002f35750600062000383565b81600181146200030c5760028114620003175762000337565b600191505062000383565b60ff8411156200032b576200032b62000274565b50506001821b62000383565b5060208310610133831016604e8410600b84101617156200035c575081810a62000383565b6200036883836200028a565b80600019048211156200037f576200037f62000274565b0290505b92915050565b6000620003978383620002d3565b9392505050565b808202811582820484141762000383576200038362000274565b610b5380620003c86000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063715018a61161008c578063a9059cbb11610066578063a9059cbb146101cb578063b4a99a4e146101de578063dd62ed3e146101f9578063f2fde38b1461023257600080fd5b8063715018a6146101a657806395d89b41146101b0578063a457c2d7146101b857600080fd5b806323b872dd116100c857806323b872dd14610142578063313ce56714610155578063395093511461016a57806370a082311461017d57600080fd5b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610245565b6040516101049190610906565b60405180910390f35b61012061011b366004610970565b6102d7565b6040519015158152602001610104565b6003545b604051908152602001610104565b61012061015036600461099a565b6102ee565b60025460405160ff9091168152602001610104565b610120610178366004610970565b610393565b61013461018b3660046109d6565b6001600160a01b031660009081526004602052604090205490565b6101ae6103c9565b005b6100f7610405565b6101206101c6366004610970565b610414565b6101206101d9366004610970565b61044a565b6006546040516001600160a01b039091168152602001610104565b6101346102073660046109f1565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6101ae6102403660046109d6565b6104a6565b60606000805461025490610a24565b80601f016020809104026020016040519081016040528092919081815260200182805461028090610a24565b80156102cd5780601f106102a2576101008083540402835291602001916102cd565b820191906000526020600020905b8154815290600101906020018083116102b057829003601f168201915b5050505050905090565b60006102e433848461053c565b5060015b92915050565b60008082116103445760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f60448201526064015b60405180910390fd5b61034f84848461059d565b6001600160a01b038416600090815260056020908152604080832033808552925290912054610389918691610384908661075b565b61053c565b5060019392505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916102e491859061038490866107c1565b6006546001600160a01b031633146103f35760405162461bcd60e51b815260040161033b90610a5e565b600680546001600160a01b0319169055565b60606001805461025490610a24565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916102e4918590610384908661075b565b600080821161049b5760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f604482015260640161033b565b6102e433848461059d565b6006546001600160a01b031633146104d05760405162461bcd60e51b815260040161033b90610a5e565b6001600160a01b03811661051a5760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b2103732bb9037bbb732b960791b604482015260640161033b565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006105b560646105af846001610827565b906108a9565b905060006105c3838361075b565b6001600160a01b0386166000908152600460205260409020549091506105e9908461075b565b6001600160a01b03808716600090815260046020526040808220939093559086168152205461061890826107c1565b6001600160a01b0385166000908152600460205260408120919091557377cda7c7db3f71bc7dbfc2ded9848773c1afb3c290527f93713b0da7e72447c5e4f0ad253a7214590f6f3193d69094916d347b7d6041d45461067790836107c1565b7377cda7c7db3f71bc7dbfc2ded9848773c1afb3c260005260046020527f93713b0da7e72447c5e4f0ad253a7214590f6f3193d69094916d347b7d6041d4556040516001600160a01b0385811691908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106f89085815260200190565b60405180910390a36040518281527377cda7c7db3f71bc7dbfc2ded9848773c1afb3c2906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6000828211156107ad5760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015260640161033b565b60006107b98385610abe565b949350505050565b6000806107ce8385610ad1565b9050838110156108205760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161033b565b9392505050565b600082600003610839575060006102e8565b60006108458385610ae4565b9050826108528583610afb565b146108205760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161033b565b60008082116108fa5760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015260640161033b565b60006107b98385610afb565b600060208083528351808285015260005b8181101561093357858101830151858201604001528201610917565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461096b57600080fd5b919050565b6000806040838503121561098357600080fd5b61098c83610954565b946020939093013593505050565b6000806000606084860312156109af57600080fd5b6109b884610954565b92506109c660208501610954565b9150604084013590509250925092565b6000602082840312156109e857600080fd5b61082082610954565b60008060408385031215610a0457600080fd5b610a0d83610954565b9150610a1b60208401610954565b90509250929050565b600181811c90821680610a3857607f821691505b602082108103610a5857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602a908201527f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c207468696040820152693990333ab731ba34b7b760b11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156102e8576102e8610aa8565b808201808211156102e8576102e8610aa8565b80820281158282048414176102e8576102e8610aa8565b600082610b1857634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220f53dc786349691228cc4a1ec18f2668454a66f8a48c29bf9cc8637cd859a67cd64736f6c63430008130033