60806040526b033b2e3c9fd0803ce800000060015534801561001f575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600154335f81815260026020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610a78806100b75f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c8063715018a611610088578063a457c2d711610063578063a457c2d7146101f3578063a9059cbb14610206578063dd62ed3e14610219578063f2fde38b14610251575f80fd5b8063715018a6146101b05780638da5cb5b146101ba57806395d89b41146101d4575f80fd5b806323b872dd116100c357806323b872dd14610153578063313ce56714610166578063395093511461017557806370a0823114610188575f80fd5b806306fdde03146100e9578063095ea7b31461011e57806318160ddd14610141575b5f80fd5b604080518082019091526007815266148c08151154d560ca1b60208201525b6040516101159190610883565b60405180910390f35b61013161012c3660046108e9565b610264565b6040519015158152602001610115565b6001545b604051908152602001610115565b610131610161366004610911565b6102d0565b60405160128152602001610115565b6101316101833660046108e9565b610337565b61014561019636600461094a565b6001600160a01b03165f9081526002602052604090205490565b6101b8610375565b005b5f546040516001600160a01b039091168152602001610115565b604080518082019091526003815262148c1560ea1b6020820152610108565b6101316102013660046108e9565b61041b565b6101316102143660046108e9565b610468565b61014561022736600461096a565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b6101b861025f36600461094a565b610474565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102be9086815260200190565b60405180910390a35060015b92915050565b5f6102dc8484846104d9565b61032d8433610328856040518060600160405280602681526020016109d6602691396001600160a01b038a165f9081526003602090815260408083203384529091529020549190610665565b61069d565b5060019392505050565b335f8181526003602090815260408083206001600160a01b0387168452909152812054909161036c91859061032890866107ac565b50600192915050565b5f546001600160a01b031633146103d35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f61036c338461032885604051806060016040528060238152602001610a2060239139335f9081526003602090815260408083206001600160a01b038d1684529091529020549190610665565b5f61036c3384846104d9565b5f546001600160a01b031633146104cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ca565b6104d6816107c5565b50565b6001600160a01b03831661053b5760405162461bcd60e51b815260206004820152602360248201527f4d4d423a207472616e736665722066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016103ca565b6001600160a01b03821661059b5760405162461bcd60e51b815260206004820152602160248201527f4d4d423a207472616e7366657220746f20746865207a65726f206164647265736044820152607360f81b60648201526084016103ca565b6105d7816040518060600160405280602481526020016109fc602491396001600160a01b0386165f908152600260205260409020549190610665565b6001600160a01b038085165f90815260026020526040808220939093559084168152205461060590826107ac565b6001600160a01b038084165f8181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106589085815260200190565b60405180910390a3505050565b5f81848411156106885760405162461bcd60e51b81526004016103ca9190610883565b505f61069484866109af565b95945050505050565b6001600160a01b0383166106fe5760405162461bcd60e51b815260206004820152602260248201527f4d4d423a20617070726f76652066726f6d20746865207a65726f206164647265604482015261737360f01b60648201526084016103ca565b6001600160a01b0382166107545760405162461bcd60e51b815260206004820181905260248201527f4d4d423a20617070726f766520746f20746865207a65726f206164647265737360448201526064016103ca565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610658565b5f6107b782846109c2565b9050828110156102ca575f80fd5b6001600160a01b03811661082a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103ca565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6020808352835180828501525f5b818110156108ae57858101830151858201604001528201610892565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108e4575f80fd5b919050565b5f80604083850312156108fa575f80fd5b610903836108ce565b946020939093013593505050565b5f805f60608486031215610923575f80fd5b61092c846108ce565b925061093a602085016108ce565b9150604084013590509250925092565b5f6020828403121561095a575f80fd5b610963826108ce565b9392505050565b5f806040838503121561097b575f80fd5b610984836108ce565b9150610992602084016108ce565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102ca576102ca61099b565b808201808211156102ca576102ca61099b56fe4d4d423a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654d4d423a207472616e7366657220616d6f756e7420657863656564732062616c616e63654d4d423a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205aa5b6dd95d108ce04f61cef8f016b5783eaedc08e600673f584cac6cab9624664736f6c63430008140033