60806040523480156200001157600080fd5b50604051620011dd380380620011dd833981016040819052620000349162000120565b6200003f33620000b3565b60018055620000516012600a6200026d565b62000061906301406f4062000282565b60028190556001600160a01b0392831660009081526007602052604090205560058054606460038190556004556001600160a81b031916610100929093169190910260ff1916919091179055620002a4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200011b57600080fd5b919050565b600080604083850312156200013457600080fd5b6200013f8362000103565b91506200014f6020840162000103565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001af57816000190482111562000193576200019362000158565b80851615620001a157918102915b93841c939080029062000173565b509250929050565b600082620001c85750600162000267565b81620001d75750600062000267565b8160018114620001f05760028114620001fb576200021b565b600191505062000267565b60ff8411156200020f576200020f62000158565b50506001821b62000267565b5060208310610133831016604e8410600b841016171562000240575081810a62000267565b6200024c83836200016e565b806000190482111562000263576200026362000158565b0290505b92915050565b60006200027b8383620001b7565b9392505050565b60008160001904831182151516156200029f576200029f62000158565b500290565b610f2980620002b46000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063a9059cbb1161007c578063a9059cbb14610307578063bed998501461031a578063c635995914610323578063dd62ed3e14610336578063ea414b2814610349578063f2fde38b1461035c57600080fd5b8063715018a61461029b5780637b2c835f146102a35780637dc2ecce146102b6578063837221e5146102c95780638da5cb5b146102d257806395d89b41146102e357600080fd5b80632dc0562d116101155780632dc0562d146101f5578063313ce5671461022557806342966c681461023f5780634795bca5146102525780635dc96d161461026557806370a082311461027257600080fd5b806306fdde0314610152578063095ea7b31461019357806318160ddd146101b6578063189d165e146101cd57806323b872dd146101e2575b600080fd5b61017d6040518060400160405280600c81526020016b43727970746f42726f736b6960a01b81525081565b60405161018a9190610c43565b60405180910390f35b6101a66101a1366004610cad565b61036f565b604051901515815260200161018a565b6101bf60025481565b60405190815260200161018a565b6101e06101db366004610cd7565b610408565b005b6101a66101f0366004610cf0565b610489565b60055461020d9061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161018a565b61022d601281565b60405160ff909116815260200161018a565b6101e061024d366004610cd7565b610604565b60065461020d906001600160a01b031681565b6005546101a69060ff1681565b6101bf610280366004610d2c565b6001600160a01b031660009081526007602052604090205490565b6101e06106a7565b6101e06102b1366004610d4e565b6106dd565b6101e06102c4366004610cd7565b61071a565b6101bf60035481565b6000546001600160a01b031661020d565b61017d604051806040016040528060058152602001644342534b4960d81b81525081565b6101a6610315366004610cad565b61079b565b6101bf60045481565b6101e0610331366004610d2c565b610801565b6101bf610344366004610d70565b61084d565b6101e0610357366004610d2c565b61087a565b6101e061036a366004610d2c565b6108f2565b600060026001540361039c5760405162461bcd60e51b815260040161039390610da3565b60405180910390fd5b60026001553360008181526008602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600180805592915050565b6000546001600160a01b031633146104325760405162461bcd60e51b815260040161039390610dda565b61012c8111156104845760405162461bcd60e51b815260206004820152601960248201527f4275726e207261746520746f6f20686967682062726f736b69000000000000006044820152606401610393565b600455565b60006002600154036104ad5760405162461bcd60e51b815260040161039390610da3565b60026001556001600160a01b038416158015906104d257506001600160a01b03831615155b6104ee5760405162461bcd60e51b815260040161039390610e0f565b6001600160a01b0384166000908152600760205260409020548211156105265760405162461bcd60e51b815260040161039390610e3f565b6001600160a01b03841660009081526008602090815260408083203384529091529020548211156105995760405162461bcd60e51b815260206004820152601960248201527f416c6c6f77616e63652065786365656465642062726f736b69000000000000006044820152606401610393565b6001600160a01b03841660009081526008602090815260408083203384529091529020546105c8908390610e8c565b6001600160a01b03851660009081526008602090815260408083203384529091529020556105f784848461098d565b5060018080559392505050565b336000908152600760205260409020548111156106335760405162461bcd60e51b815260040161039390610e3f565b3360009081526007602052604090205461064e908290610e8c565b3360009081526007602052604090205560025461066c908290610e8c565b60025560405181815233907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59060200160405180910390a250565b6000546001600160a01b031633146106d15760405162461bcd60e51b815260040161039390610dda565b6106db6000610bf3565b565b6000546001600160a01b031633146107075760405162461bcd60e51b815260040161039390610dda565b6005805460ff1916911515919091179055565b6000546001600160a01b031633146107445760405162461bcd60e51b815260040161039390610dda565b61012c8111156107965760405162461bcd60e51b815260206004820152601860248201527f546178207261746520746f6f20686967682062726f736b6900000000000000006044820152606401610393565b600355565b60006002600154036107bf5760405162461bcd60e51b815260040161039390610da3565b60026001556001600160a01b0383166107ea5760405162461bcd60e51b815260040161039390610e0f565b6107f533848461098d565b50600180805592915050565b6000546001600160a01b0316331461082b5760405162461bcd60e51b815260040161039390610dda565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038083166000908152600860209081526040808320938516835292905220545b92915050565b6000546001600160a01b031633146108a45760405162461bcd60e51b815260040161039390610dda565b6001600160a01b0381166108ca5760405162461bcd60e51b815260040161039390610e0f565b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000546001600160a01b0316331461091c5760405162461bcd60e51b815260040161039390610dda565b6001600160a01b0381166109815760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610393565b61098a81610bf3565b50565b6001600160a01b0383166000908152600760205260409020548111156109c55760405162461bcd60e51b815260040161039390610e3f565b6000806001600160a01b03841615806109e857506001600160a01b03841661dead145b156109f4575081610a6c565b6000546001600160a01b03868116911614801590610a2057506006546001600160a01b03868116911614155b15610a6c5761271060035484610a369190610e9f565b610a409190610ebe565b60055490925060ff1615610a6c5761271060045484610a5f9190610e9f565b610a699190610ebe565b90505b600081610a798486610e8c565b610a839190610e8c565b6001600160a01b038716600090815260076020526040902054909150610aaa908590610e8c565b6001600160a01b0387166000908152600760205260409020558115610b195781600254610ad79190610e8c565b6002556040518281526001600160a01b038716907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59060200160405180910390a25b6001600160a01b038516600090815260076020526040902054610b3d908290610ee0565b6001600160a01b0380871660008181526007602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b919085815260200190565b60405180910390a38215610beb5760055461010090046001600160a01b0316600090815260076020526040902054610bca908490610ee0565b60055461010090046001600160a01b03166000908152600760205260409020555b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b81811015610c7057858101830151858201604001528201610c54565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610ca857600080fd5b919050565b60008060408385031215610cc057600080fd5b610cc983610c91565b946020939093013593505050565b600060208284031215610ce957600080fd5b5035919050565b600080600060608486031215610d0557600080fd5b610d0e84610c91565b9250610d1c60208501610c91565b9150604084013590509250925092565b600060208284031215610d3e57600080fd5b610d4782610c91565b9392505050565b600060208284031215610d6057600080fd5b81358015158114610d4757600080fd5b60008060408385031215610d8357600080fd5b610d8c83610c91565b9150610d9a60208401610c91565b90509250929050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b602080825260169082015275496e76616c696420616464726573732062726f736b6960501b604082015260600190565b6020808252601b908201527f496e73756666696369656e742062616c616e63652062726f736b690000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561087457610874610e76565b6000816000190483118215151615610eb957610eb9610e76565b500290565b600082610edb57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561087457610874610e7656fea2646970667358221220497bb9c402a2bc4baca1ed5e250bfe83bbe5ded1ba4951dafc8dfa633148d90f64736f6c6343000810003300000000000000000000000080c339a338fde6636ffa43fb55e2bd9ca71d2f8900000000000000000000000080c339a338fde6636ffa43fb55e2bd9ca71d2f89