60806040523480156200001157600080fd5b50604051806040016040528060048152602001633947414760e01b815250604051806040016040528060048152602001633947414760e01b8152506200006662000060620000d360201b60201c565b620000d7565b6004620000748382620003d3565b506005620000838282620003d3565b506a3913517ebd3c0c6500000091506127109050620000a4826019620004b5565b620000b09190620004d5565b6007556006805460ff19166001179055620000cc338262000127565b506200050e565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620001835760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b6200019160008383620001fe565b8060036000828254620001a59190620004f8565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6008546001600160a01b031662000289576000546001600160a01b03163214806200023657506000546001600160a01b038381169116145b620002845760405162461bcd60e51b815260206004820152601660248201527f74726164696e67206973206e6f7420737461727465640000000000000000000060448201526064016200017a565b505050565b60065460ff168015620002a957506008546001600160a01b038481169116145b15620002845760075481620002d3846001600160a01b031660009081526001602052604090205490565b620002df9190620004f8565b1115620002845760405162461bcd60e51b815260206004820152601a60248201527f4d41582057414c4c455420414d4f554e5420455843454544454400000000000060448201526064016200017a565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200035a57607f821691505b6020821081036200037b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200028457600081815260208120601f850160051c81016020861015620003aa5750805b601f850160051c820191505b81811015620003cb57828155600101620003b6565b505050505050565b81516001600160401b03811115620003ef57620003ef6200032f565b620004078162000400845462000345565b8462000381565b602080601f8311600181146200043f5760008415620004265750858301515b600019600386901b1c1916600185901b178555620003cb565b600085815260208120601f198616915b8281101562000470578886015182559484019460019091019084016200044f565b50858210156200048f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620004cf57620004cf6200049f565b92915050565b600082620004f357634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004cf57620004cf6200049f565b610c2f806200051e6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063860a32ec116100ad578063a9059cbb11610071578063a9059cbb1461024a578063bdd3d8251461025d578063d21079e614610270578063dd62ed3e14610283578063f2fde38b1461029657600080fd5b8063860a32ec146101f457806389f9a1d3146102015780638da5cb5b1461020a57806395d89b411461022f578063a457c2d71461023757600080fd5b8063313ce567116100f4578063313ce5671461018c578063395093511461019b5780634437152a146101ae57806370a08231146101c3578063715018a6146101ec57600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102a9565b60405161013b9190610a56565b60405180910390f35b610157610152366004610ac0565b61033b565b604051901515815260200161013b565b6003545b60405190815260200161013b565b610157610187366004610aea565b610355565b6040516012815260200161013b565b6101576101a9366004610ac0565b610379565b6101c16101bc366004610b26565b61039b565b005b61016b6101d1366004610b26565b6001600160a01b031660009081526001602052604090205490565b6101c16103c5565b6006546101579060ff1681565b61016b60075481565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b61012e6103d9565b610157610245366004610ac0565b6103e8565b610157610258366004610ac0565b610468565b600854610217906001600160a01b031681565b6101c161027e366004610b48565b610476565b61016b610291366004610b6b565b610495565b6101c16102a4366004610b26565b6104c0565b6060600480546102b890610b9e565b80601f01602080910402602001604051908101604052809291908181526020018280546102e490610b9e565b80156103315780601f1061030657610100808354040283529160200191610331565b820191906000526020600020905b81548152906001019060200180831161031457829003601f168201915b5050505050905090565b600033610349818585610539565b60019150505b92915050565b60003361036385828561065d565b61036e8585856106d7565b506001949350505050565b60003361034981858561038c8383610495565b6103969190610bd8565b610539565b6103a361088d565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6103cd61088d565b6103d760006108e7565b565b6060600580546102b890610b9e565b600033816103f68286610495565b90508381101561045b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61036e8286868403610539565b6000336103498185856106d7565b61047e61088d565b6006805460ff191692151592909217909155600755565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6104c861088d565b6001600160a01b03811661052d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610452565b610536816108e7565b50565b6001600160a01b03831661059b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610452565b6001600160a01b0382166105fc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610452565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006106698484610495565b905060001981146106d157818110156106c45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610452565b6106d18484848403610539565b50505050565b6001600160a01b03831661073b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610452565b6001600160a01b03821661079d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610452565b6107a8838383610937565b6001600160a01b038316600090815260016020526040902054818110156108205760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610452565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108809086815260200190565b60405180910390a36106d1565b6000546001600160a01b031633146103d75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610452565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008546001600160a01b03166109b7576000546001600160a01b031632148061096d57506000546001600160a01b038381169116145b6109b25760405162461bcd60e51b81526020600482015260166024820152751d1c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b6044820152606401610452565b505050565b60065460ff1680156109d657506008546001600160a01b038481169116145b156109b257600754816109fe846001600160a01b031660009081526001602052604090205490565b610a089190610bd8565b11156109b25760405162461bcd60e51b815260206004820152601a60248201527f4d41582057414c4c455420414d4f554e542045584345454445440000000000006044820152606401610452565b600060208083528351808285015260005b81811015610a8357858101830151858201604001528201610a67565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610abb57600080fd5b919050565b60008060408385031215610ad357600080fd5b610adc83610aa4565b946020939093013593505050565b600080600060608486031215610aff57600080fd5b610b0884610aa4565b9250610b1660208501610aa4565b9150604084013590509250925092565b600060208284031215610b3857600080fd5b610b4182610aa4565b9392505050565b60008060408385031215610b5b57600080fd5b82358015158114610adc57600080fd5b60008060408385031215610b7e57600080fd5b610b8783610aa4565b9150610b9560208401610aa4565b90509250929050565b600181811c90821680610bb257607f821691505b602082108103610bd257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561034f57634e487b7160e01b600052601160045260246000fdfea2646970667358221220a0ec287a7856d33d2a76a3c27d391de1203bed216b7b3ee22b09008ae3ee280464736f6c63430008150033