608060405260126006557f437572696f20476f7665726e616e636520546f6b656e0000000000000000000060075534801561003957600080fd5b506040516112063803806112068339818101604052602081101561005c57600080fd5b5051600180546001600160a01b031916339081179091556040517fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a2600555611158806100ae6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80637a9e5e4b116100de578063b753a98c11610097578063bf7e214f11610071578063bf7e214f1461040d578063daea85c514610415578063dd62ed3e1461043b578063f2d5d56b1461046957610173565b8063b753a98c146103a3578063bb35783b146103cf578063be9a65551461040557610173565b80637a9e5e4b146102dc5780638da5cb5b1461030257806395d89b41146103265780639dc29fac1461032e578063a0712d681461035a578063a9059cbb1461037757610173565b8063313ce56711610130578063313ce5671461024057806340c10f191461024857806342966c68146102745780635ac801fe1461029157806370a08231146102ae57806375f12b21146102d457610173565b806306fdde031461017857806307da68f514610192578063095ea7b31461019c57806313af4035146101dc57806318160ddd1461020257806323b872dd1461020a575b600080fd5b610180610495565b60408051918252519081900360200190f35b61019a61049b565b005b6101c8600480360360408110156101b257600080fd5b506001600160a01b038135169060200135610537565b604080519115158252519081900360200190f35b61019a600480360360208110156101f257600080fd5b50356001600160a01b03166105f6565b6101806106a4565b6101c86004803603606081101561022057600080fd5b506001600160a01b038135811691602081013590911690604001356106aa565b61018061092f565b61019a6004803603604081101561025e57600080fd5b506001600160a01b038135169060200135610935565b61019a6004803603602081101561028a57600080fd5b5035610a76565b61019a600480360360208110156102a757600080fd5b5035610a83565b610180600480360360208110156102c457600080fd5b50356001600160a01b0316610ae6565b6101c8610af8565b61019a600480360360208110156102f257600080fd5b50356001600160a01b0316610b08565b61030a610bb2565b604080516001600160a01b039092168252519081900360200190f35b610180610bc1565b61019a6004803603604081101561034457600080fd5b506001600160a01b038135169060200135610bc7565b61019a6004803603602081101561037057600080fd5b5035610e83565b6101c86004803603604081101561038d57600080fd5b506001600160a01b038135169060200135610e8d565b61019a600480360360408110156103b957600080fd5b506001600160a01b038135169060200135610ea1565b61019a600480360360608110156103e557600080fd5b506001600160a01b03813581169160208101359091169060400135610eb1565b61019a610ec2565b61030a610f58565b6101c86004803603602081101561042b57600080fd5b50356001600160a01b0316610f67565b6101806004803603604081101561045157600080fd5b506001600160a01b0381358116916020013516610f75565b61019a6004803603604081101561047f57600080fd5b506001600160a01b038135169060200135610f92565b60075481565b6104b1336000356001600160e01b031916610f9d565b6104f9576040805162461bcd60e51b8152602060048201526014602482015273191ccb585d5d1a0b5d5b985d5d1a1bdc9a5e995960621b604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b1790556040517fbedf0f4abfe86d4ffad593d9607fe70e83ea706033d44d24b3b6283cf3fc4f6b90600090a1565b600154600090600160a01b900460ff161561058e576040805162461bcd60e51b8152602060048201526012602482015271191ccb5cdd1bdc0b5a5ccb5cdd1bdc1c195960721b604482015290519081900360640190fd5b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b61060c336000356001600160e01b031916610f9d565b610654576040805162461bcd60e51b8152602060048201526014602482015273191ccb585d5d1a0b5d5b985d5d1a1bdc9a5e995960621b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b60025481565b600154600090600160a01b900460ff1615610701576040805162461bcd60e51b8152602060048201526012602482015271191ccb5cdd1bdc0b5a5ccb5cdd1bdc1c195960721b604482015290519081900360640190fd5b6001600160a01b038416331480159061073f57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b1561080f576001600160a01b03841660009081526004602090815260408083203384529091529020548211156107bc576040805162461bcd60e51b815260206004820152601e60248201527f64732d746f6b656e2d696e73756666696369656e742d617070726f76616c0000604482015290519081900360640190fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020546107ea9083611084565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b6001600160a01b03841660009081526003602052604090205482111561087c576040805162461bcd60e51b815260206004820152601d60248201527f64732d746f6b656e2d696e73756666696369656e742d62616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03841660009081526003602052604090205461089f9083611084565b6001600160a01b0380861660009081526003602052604080822093909355908516815220546108ce90836110d4565b6001600160a01b0380851660008181526003602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60065481565b61094b336000356001600160e01b031916610f9d565b610993576040805162461bcd60e51b8152602060048201526014602482015273191ccb585d5d1a0b5d5b985d5d1a1bdc9a5e995960621b604482015290519081900360640190fd5b600154600160a01b900460ff16156109e7576040805162461bcd60e51b8152602060048201526012602482015271191ccb5cdd1bdc0b5a5ccb5cdd1bdc1c195960721b604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040902054610a0a90826110d4565b6001600160a01b038316600090815260036020526040902055600254610a3090826110d4565b6002556040805182815290516001600160a01b038416917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a25050565b610a803382610bc7565b50565b610a99336000356001600160e01b031916610f9d565b610ae1576040805162461bcd60e51b8152602060048201526014602482015273191ccb585d5d1a0b5d5b985d5d1a1bdc9a5e995960621b604482015290519081900360640190fd5b600755565b60036020526000908152604090205481565b600154600160a01b900460ff1681565b610b1e336000356001600160e01b031916610f9d565b610b66576040805162461bcd60e51b8152602060048201526014602482015273191ccb585d5d1a0b5d5b985d5d1a1bdc9a5e995960621b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b6001546001600160a01b031681565b60055481565b610bdd336000356001600160e01b031916610f9d565b610c25576040805162461bcd60e51b8152602060048201526014602482015273191ccb585d5d1a0b5d5b985d5d1a1bdc9a5e995960621b604482015290519081900360640190fd5b600154600160a01b900460ff1615610c79576040805162461bcd60e51b8152602060048201526012602482015271191ccb5cdd1bdc0b5a5ccb5cdd1bdc1c195960721b604482015290519081900360640190fd5b6001600160a01b0382163314801590610cb757506001600160a01b038216600090815260046020908152604080832033845290915290205460001914155b15610d87576001600160a01b0382166000908152600460209081526040808320338452909152902054811115610d34576040805162461bcd60e51b815260206004820152601e60248201527f64732d746f6b656e2d696e73756666696369656e742d617070726f76616c0000604482015290519081900360640190fd5b6001600160a01b0382166000908152600460209081526040808320338452909152902054610d629082611084565b6001600160a01b03831660009081526004602090815260408083203384529091529020555b6001600160a01b038216600090815260036020526040902054811115610df4576040805162461bcd60e51b815260206004820152601d60248201527f64732d746f6b656e2d696e73756666696369656e742d62616c616e6365000000604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040902054610e179082611084565b6001600160a01b038316600090815260036020526040902055600254610e3d9082611084565b6002556040805182815290516001600160a01b038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b610a803382610935565b6000610e9a3384846106aa565b9392505050565b610eac3383836106aa565b505050565b610ebc8383836106aa565b50505050565b610ed8336000356001600160e01b031916610f9d565b610f20576040805162461bcd60e51b8152602060048201526014602482015273191ccb585d5d1a0b5d5b985d5d1a1bdc9a5e995960621b604482015290519081900360640190fd5b6001805460ff60a01b191690556040517f1b55ba3aa851a46be3b365aee5b5c140edd620d578922f3e8466d2cbd96f954b90600090a1565b6000546001600160a01b031681565b60006105f082600019610537565b600460209081526000928352604080842090915290825290205481565b610eac8233836106aa565b60006001600160a01b038316301415610fb8575060016105f0565b6001546001600160a01b0384811691161415610fd6575060016105f0565b6000546001600160a01b0316610fee575060006105f0565b6000546040805163b700961360e01b81526001600160a01b0386811660048301523060248301526001600160e01b0319861660448301529151919092169163b7009613916064808301926020929190829003018186803b15801561105157600080fd5b505afa158015611065573d6000803e3d6000fd5b505050506040513d602081101561107b57600080fd5b505190506105f0565b808203828111156105f0576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b808201828110156105f0576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea265627a7a72315820e9958db1f7546d641b200b2f6b0461e2cada6045a4fe76b5f5ac098f029183fa64736f6c634300050c00324347540000000000000000000000000000000000000000000000000000000000