0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146101ff578063a457c2d714610207578063a9059cbb1461021a578063dd62ed3e1461022d578063f2fde38b146102665761010b565b806370a08231146101ad578063715018a6146101c05780638456cb59146101c85780638da5cb5b146101d05761010b565b8063313ce567116100de578063313ce5671461017657806339509351146101855780633f4ba83a146101985780635c975abb146101a25761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015157806323b872dd14610163575b600080fd5b610118610279565b6040516101259190610bb1565b60405180910390f35b61014161013c366004610b88565b61030b565b6040519015158152602001610125565b6002545b604051908152602001610125565b610141610171366004610b4d565b610321565b60405160128152602001610125565b610141610193366004610b88565b6103d0565b6101a061040c565b005b60055460ff16610141565b6101556101bb366004610afa565b610446565b6101a0610465565b6101a061049f565b6101e760055461010090046001600160a01b031690565b6040516001600160a01b039091168152602001610125565b6101186104d7565b610141610215366004610b88565b6104e6565b610141610228366004610b88565b61057f565b61015561023b366004610b1b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101a0610274366004610afa565b61058c565b60606003805461028890610c5d565b80601f01602080910402602001604051908101604052809291908181526020018280546102b490610c5d565b80156103015780601f106102d657610100808354040283529160200191610301565b820191906000526020600020905b8154815290600101906020018083116102e457829003601f168201915b5050505050905090565b6000610318338484610632565b50600192915050565b600061032e848484610756565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103b85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6103c58533858403610632565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610318918590610407908690610c39565b610632565b6005546001600160a01b0361010090910416331461043c5760405162461bcd60e51b81526004016103af90610c04565b610444610930565b565b6001600160a01b0381166000908152602081905260409020545b919050565b6005546001600160a01b036101009091041633146104955760405162461bcd60e51b81526004016103af90610c04565b61044460006109c3565b6005546001600160a01b036101009091041633146104cf5760405162461bcd60e51b81526004016103af90610c04565b610444610a1d565b60606004805461028890610c5d565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156105685760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103af565b6105753385858403610632565b5060019392505050565b6000610318338484610756565b6005546001600160a01b036101009091041633146105bc5760405162461bcd60e51b81526004016103af90610c04565b6001600160a01b0381166106215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103af565b61062a816109c3565b50565b505050565b6001600160a01b0383166106945760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166106f55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b03821661081c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b610827838383610a98565b6001600160a01b0383166000908152602081905260409020548181101561089f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906108d6908490610c39565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161092291815260200190565b60405180910390a350505050565b60055460ff166109795760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016103af565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60055460ff1615610a635760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016103af565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586109a63390565b60055460ff1615610ade5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016103af565b61062d565b80356001600160a01b038116811461046057600080fd5b600060208284031215610b0b578081fd5b610b1482610ae3565b9392505050565b60008060408385031215610b2d578081fd5b610b3683610ae3565b9150610b4460208401610ae3565b90509250929050565b600080600060608486031215610b61578081fd5b610b6a84610ae3565b9250610b7860208501610ae3565b9150604084013590509250925092565b60008060408385031215610b9a578182fd5b610ba383610ae3565b946020939093013593505050565b6000602080835283518082850152825b81811015610bdd57858101830151858201604001528201610bc1565b81811115610bee5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610c5857634e487b7160e01b81526011600452602481fd5b500190565b600281046001821680610c7157607f821691505b60208210811415610c9257634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212203f861635a43e954006c63716d0629495e5e195b548358c63d2d91faa39784bd064736f6c63430008020033
0x60806040523480156200001157600080fd5b50604080518082018252601a81527f55727573202d20742e6d652f55727573476f7665726e616e63650000000000006020808301918252835180850190945260048452635552555360e01b908401528151919291620000739160039162000287565b5080516200008990600490602084019062000287565b50506005805460ff1916905550620000a133620000d1565b620000cb33620000b46012600a62000395565b620000c59064e8d4a510006200048d565b6200012b565b62000502565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001875760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b620001956000838362000222565b8060026000828254620001a991906200032d565b90915550506001600160a01b03821660009081526020819052604081208054839290620001d89084906200032d565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60055460ff16156200026a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016200017e565b620002828383836200028260201b6200062d1760201c565b505050565b8280546200029590620004af565b90600052602060002090601f016020900481019282620002b9576000855562000304565b82601f10620002d457805160ff191683800117855562000304565b8280016001018555821562000304579182015b8281111562000304578251825591602001919060010190620002e7565b506200031292915062000316565b5090565b5b8082111562000312576000815560010162000317565b60008219821115620003435762000343620004ec565b500190565b80825b60018086116200035c57506200038c565b818704821115620003715762000371620004ec565b808616156200037f57918102915b9490941c9380026200034b565b94509492505050565b6000620003a960001960ff851684620003b0565b9392505050565b600082620003c157506001620003a9565b81620003d057506000620003a9565b8160018114620003e95760028114620003f45762000428565b6001915050620003a9565b60ff841115620004085762000408620004ec565b6001841b915084821115620004215762000421620004ec565b50620003a9565b5060208310610133831016604e8410600b841016171562000460575081810a838111156200045a576200045a620004ec565b620003a9565b6200046f848484600162000348565b808604821115620004845762000484620004ec565b02949350505050565b6000816000190483118215151615620004aa57620004aa620004ec565b500290565b600281046001821680620004c457607f821691505b60208210811415620004e657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b610cce80620005126000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146101ff578063a457c2d714610207578063a9059cbb1461021a578063dd62ed3e1461022d578063f2fde38b146102665761010b565b806370a08231146101ad578063715018a6146101c05780638456cb59146101c85780638da5cb5b146101d05761010b565b8063313ce567116100de578063313ce5671461017657806339509351146101855780633f4ba83a146101985780635c975abb146101a25761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015157806323b872dd14610163575b600080fd5b610118610279565b6040516101259190610bb1565b60405180910390f35b61014161013c366004610b88565b61030b565b6040519015158152602001610125565b6002545b604051908152602001610125565b610141610171366004610b4d565b610321565b60405160128152602001610125565b610141610193366004610b88565b6103d0565b6101a061040c565b005b60055460ff16610141565b6101556101bb366004610afa565b610446565b6101a0610465565b6101a061049f565b6101e760055461010090046001600160a01b031690565b6040516001600160a01b039091168152602001610125565b6101186104d7565b610141610215366004610b88565b6104e6565b610141610228366004610b88565b61057f565b61015561023b366004610b1b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101a0610274366004610afa565b61058c565b60606003805461028890610c5d565b80601f01602080910402602001604051908101604052809291908181526020018280546102b490610c5d565b80156103015780601f106102d657610100808354040283529160200191610301565b820191906000526020600020905b8154815290600101906020018083116102e457829003601f168201915b5050505050905090565b6000610318338484610632565b50600192915050565b600061032e848484610756565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156103b85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6103c58533858403610632565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610318918590610407908690610c39565b610632565b6005546001600160a01b0361010090910416331461043c5760405162461bcd60e51b81526004016103af90610c04565b610444610930565b565b6001600160a01b0381166000908152602081905260409020545b919050565b6005546001600160a01b036101009091041633146104955760405162461bcd60e51b81526004016103af90610c04565b61044460006109c3565b6005546001600160a01b036101009091041633146104cf5760405162461bcd60e51b81526004016103af90610c04565b610444610a1d565b60606004805461028890610c5d565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156105685760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103af565b6105753385858403610632565b5060019392505050565b6000610318338484610756565b6005546001600160a01b036101009091041633146105bc5760405162461bcd60e51b81526004016103af90610c04565b6001600160a01b0381166106215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103af565b61062a816109c3565b50565b505050565b6001600160a01b0383166106945760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166106f55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b03821661081c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b610827838383610a98565b6001600160a01b0383166000908152602081905260409020548181101561089f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906108d6908490610c39565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161092291815260200190565b60405180910390a350505050565b60055460ff166109795760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016103af565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60055460ff1615610a635760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016103af565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586109a63390565b60055460ff1615610ade5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016103af565b61062d565b80356001600160a01b038116811461046057600080fd5b600060208284031215610b0b578081fd5b610b1482610ae3565b9392505050565b60008060408385031215610b2d578081fd5b610b3683610ae3565b9150610b4460208401610ae3565b90509250929050565b600080600060608486031215610b61578081fd5b610b6a84610ae3565b9250610b7860208501610ae3565b9150604084013590509250925092565b60008060408385031215610b9a578182fd5b610ba383610ae3565b946020939093013593505050565b6000602080835283518082850152825b81811015610bdd57858101830151858201604001528201610bc1565b81811115610bee5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610c5857634e487b7160e01b81526011600452602481fd5b500190565b600281046001821680610c7157607f821691505b60208210811415610c9257634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212203f861635a43e954006c63716d0629495e5e195b548358c63d2d91faa39784bd064736f6c63430008020033