0x608060405234801561001057600080fd5b50600436106100c95760003560e01c806370904ded11610081578063a9059cbb1161005b578063a9059cbb146101a5578063dd62ed3e146101b8578063f767b4da146101f157600080fd5b806370904ded1461014957806370a082311461017457806395d89b411461019d57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d6610206565b6040516100e391906107f8565b60405180910390f35b6100ff6100fa366004610862565b610298565b60405190151581526020016100e3565b6005545b6040519081526020016100e3565b6100ff61012f36600461088c565b6102af565b60045460405160ff90911681526020016100e3565b60065461015c906001600160a01b031681565b6040516001600160a01b0390911681526020016100e3565b6101136101823660046108c8565b6001600160a01b031660009081526020819052604090205490565b6100d6610318565b6100ff6101b3366004610862565b610327565b6101136101c63660046108e3565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102046101ff366004610945565b610334565b005b60606002805461021590610a0a565b80601f016020809104026020016040519081016040528092919081815260200182805461024190610a0a565b801561028e5780601f106102635761010080835404028352916020019161028e565b820191906000526020600020905b81548152906001019060200180831161027157829003601f168201915b5050505050905090565b60006102a53384846104be565b5060015b92915050565b60006102bc848484610617565b61030e843361030985604051806060016040528060288152602001610b2d602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906107cc565b6104be565b5060019392505050565b60606003805461021590610a0a565b60006102a5338484610617565b6006546001600160a01b031633146103935760405162461bcd60e51b815260206004820152600b60248201527f4e6f7420616c6c6f77656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005b81518110156104a75760008282815181106103b3576103b3610a5d565b6020908102919091018101516001600160a01b03811660008181528084526040808220548151808301909252600582527f4552524f520000000000000000000000000000000000000000000000000000008287015292825293529092509061041e90829081906107cc565b6001600160a01b03831660009081526020819052604081209190915580527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461046890826104ab565b60008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5555081905061049f81610abb565b915050610396565b5050565b60006104b78284610af3565b9392505050565b6001600160a01b0383166105395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161038a565b6001600160a01b0382166105b55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161038a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166106935760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161038a565b6001600160a01b03821661070f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161038a565b61074c81604051806060016040528060268152602001610b07602691396001600160a01b03861660009081526020819052604090205491906107cc565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461077b90826104ab565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161060a565b600081848411156107f05760405162461bcd60e51b815260040161038a91906107f8565b505050900390565b600060208083528351808285015260005b8181101561082557858101830151858201604001528201610809565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461085d57600080fd5b919050565b6000806040838503121561087557600080fd5b61087e83610846565b946020939093013593505050565b6000806000606084860312156108a157600080fd5b6108aa84610846565b92506108b860208501610846565b9150604084013590509250925092565b6000602082840312156108da57600080fd5b6104b782610846565b600080604083850312156108f657600080fd5b6108ff83610846565b915061090d60208401610846565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602080838503121561095857600080fd5b823567ffffffffffffffff8082111561097057600080fd5b818501915085601f83011261098457600080fd5b81358181111561099657610996610916565b8060051b604051601f19603f830116810181811085821117156109bb576109bb610916565b6040529182528482019250838101850191888311156109d957600080fd5b938501935b828510156109fe576109ef85610846565b845293850193928501926109de565b98975050505050505050565b600181811c90821680610a1e57607f821691505b602082108103610a57577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610aec57610aec610a8c565b5060010190565b808201808211156102a9576102a9610a8c56fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122038e8a2ec5cca49cd1811010b09a910bcc3ebaf13b76d2d731ab1a5b9d6ce4f7864736f6c63430008120033
0x60806040523480156200001157600080fd5b506040805180820190915260068152652424aa2622a960d11b60208201526002906200003e908262000275565b506040805180820190915260068152652424aa2622a960d11b60208201526003906200006b908262000275565b506004805460ff19166012179055600680546001600160a01b031916339081179091556319fcd50090620000b390620000ad83670de0b6b3a764000062000357565b620000ba565b5062000387565b6001600160a01b038216620001155760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b6200013181600554620001b960201b620004ab1790919060201c565b6005556001600160a01b0382166000908152602081815260409091205462000164918390620004ab620001b9821b17901c565b6001600160a01b038316600081815260208181526040808320949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000620001c7828462000371565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001fb57607f821691505b6020821081036200021c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200027057600081815260208120601f850160051c810160208610156200024b5750805b601f850160051c820191505b818110156200026c5782815560010162000257565b5050505b505050565b81516001600160401b03811115620002915762000291620001d0565b620002a981620002a28454620001e6565b8462000222565b602080601f831160018114620002e15760008415620002c85750858301515b600019600386901b1c1916600185901b1785556200026c565b600085815260208120601f198616915b828110156200031257888601518255948401946001909101908401620002f1565b5085821015620003315787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620001ca57620001ca62000341565b80820180821115620001ca57620001ca62000341565b610b8a80620003976000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806370904ded11610081578063a9059cbb1161005b578063a9059cbb146101a5578063dd62ed3e146101b8578063f767b4da146101f157600080fd5b806370904ded1461014957806370a082311461017457806395d89b411461019d57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d6610206565b6040516100e391906107f8565b60405180910390f35b6100ff6100fa366004610862565b610298565b60405190151581526020016100e3565b6005545b6040519081526020016100e3565b6100ff61012f36600461088c565b6102af565b60045460405160ff90911681526020016100e3565b60065461015c906001600160a01b031681565b6040516001600160a01b0390911681526020016100e3565b6101136101823660046108c8565b6001600160a01b031660009081526020819052604090205490565b6100d6610318565b6100ff6101b3366004610862565b610327565b6101136101c63660046108e3565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6102046101ff366004610945565b610334565b005b60606002805461021590610a0a565b80601f016020809104026020016040519081016040528092919081815260200182805461024190610a0a565b801561028e5780601f106102635761010080835404028352916020019161028e565b820191906000526020600020905b81548152906001019060200180831161027157829003601f168201915b5050505050905090565b60006102a53384846104be565b5060015b92915050565b60006102bc848484610617565b61030e843361030985604051806060016040528060288152602001610b2d602891396001600160a01b038a16600090815260016020908152604080832033845290915290205491906107cc565b6104be565b5060019392505050565b60606003805461021590610a0a565b60006102a5338484610617565b6006546001600160a01b031633146103935760405162461bcd60e51b815260206004820152600b60248201527f4e6f7420616c6c6f77656400000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005b81518110156104a75760008282815181106103b3576103b3610a5d565b6020908102919091018101516001600160a01b03811660008181528084526040808220548151808301909252600582527f4552524f520000000000000000000000000000000000000000000000000000008287015292825293529092509061041e90829081906107cc565b6001600160a01b03831660009081526020819052604081209190915580527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461046890826104ab565b60008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5555081905061049f81610abb565b915050610396565b5050565b60006104b78284610af3565b9392505050565b6001600160a01b0383166105395760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161038a565b6001600160a01b0382166105b55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161038a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166106935760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161038a565b6001600160a01b03821661070f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161038a565b61074c81604051806060016040528060268152602001610b07602691396001600160a01b03861660009081526020819052604090205491906107cc565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461077b90826104ab565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161060a565b600081848411156107f05760405162461bcd60e51b815260040161038a91906107f8565b505050900390565b600060208083528351808285015260005b8181101561082557858101830151858201604001528201610809565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461085d57600080fd5b919050565b6000806040838503121561087557600080fd5b61087e83610846565b946020939093013593505050565b6000806000606084860312156108a157600080fd5b6108aa84610846565b92506108b860208501610846565b9150604084013590509250925092565b6000602082840312156108da57600080fd5b6104b782610846565b600080604083850312156108f657600080fd5b6108ff83610846565b915061090d60208401610846565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602080838503121561095857600080fd5b823567ffffffffffffffff8082111561097057600080fd5b818501915085601f83011261098457600080fd5b81358181111561099657610996610916565b8060051b604051601f19603f830116810181811085821117156109bb576109bb610916565b6040529182528482019250838101850191888311156109d957600080fd5b938501935b828510156109fe576109ef85610846565b845293850193928501926109de565b98975050505050505050565b600181811c90821680610a1e57607f821691505b602082108103610a57577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610aec57610aec610a8c565b5060010190565b808201808211156102a9576102a9610a8c56fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122038e8a2ec5cca49cd1811010b09a910bcc3ebaf13b76d2d731ab1a5b9d6ce4f7864736f6c63430008120033