60806040526003805460ff60a01b1916905534801561001d57600080fd5b50604051610f70380380610f708339818101604052602081101561004057600080fd5b5051600380546001600160a01b031916331790556a084595161401484a00000060018190556100799082906001600160e01b0361008016565b50506100d6565b6001600160a01b0382166000818152602081815260408083208590558051858152905192939284927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928290030190a392915050565b610e8b806100e56000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80636d6a6a4d116100b85780639dc29fac1161007c5780639dc29fac1461033b578063a9059cbb14610367578063be9a655514610393578063d73dd6231461039b578063dd62ed3e146103c7578063f2fde38b146103f557610137565b80636d6a6a4d146102d957806370a08231146102e157806375f12b21146103075780638da5cb5b1461030f57806395d89b411461033357610137565b80632ff2e9dc116100ff5780632ff2e9dc14610253578063313ce5671461025b57806340c10f191461027957806343d726d6146102a557806366188463146102ad57610137565b806306fdde031461013c57806307da68f5146101b9578063095ea7b3146101c357806318160ddd1461020357806323b872dd1461021d575b600080fd5b61014461041b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017e578181015183820152602001610166565b50505050905090810190601f1680156101ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c161043f565b005b6101ef600480360360408110156101d957600080fd5b506001600160a01b0381351690602001356104a1565b604080519115158252519081900360200190f35b61020b610507565b60408051918252519081900360200190f35b6101ef6004803603606081101561023357600080fd5b506001600160a01b0381358116916020810135909116906040013561050d565b61020b61053a565b610263610549565b6040805160ff9092168252519081900360200190f35b6101ef6004803603604081101561028f57600080fd5b506001600160a01b03813516906020013561054e565b6101c16105de565b6101ef600480360360408110156102c357600080fd5b506001600160a01b03813516906020013561062e565b61020b61071e565b61020b600480360360208110156102f757600080fd5b50356001600160a01b031661072a565b6101ef610745565b610317610755565b604080516001600160a01b039092168252519081900360200190f35b610144610764565b6101c16004803603604081101561035157600080fd5b506001600160a01b038135169060200135610783565b6101ef6004803603604081101561037d57600080fd5b506001600160a01b0381351690602001356108c8565b6101c16108e9565b6101ef600480360360408110156103b157600080fd5b506001600160a01b038135169060200135610945565b61020b600480360360408110156103dd57600080fd5b506001600160a01b03813581169160200135166109de565b6101c16004803603602081101561040b57600080fd5b50356001600160a01b0316610a09565b604051806040016040528060088152602001674176616e7465756d60c01b81525081565b6003546001600160a01b0316331461048c576040805162461bcd60e51b81526020600482015260166024820152600080516020610e37833981519152604482015290519081900360640190fd5b6003805460ff60a01b1916600160a01b179055565b3360008181526002602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60015490565b600354600090600160a01b900460ff161561052457fe5b61052f848484610ac5565b506001949350505050565b6a084595161401484a00000081565b601281565b6003546000906001600160a01b0316331461059e576040805162461bcd60e51b81526020600482015260166024820152600080516020610e37833981519152604482015290519081900360640190fd5b6001546000906105b4908463ffffffff610c2816565b90506aa56fa5b99019a5c800000081116105d4576105d28484610c3e565b505b5060019392505050565b6003546001600160a01b0316331461062b576040805162461bcd60e51b81526020600482015260166024820152600080516020610e37833981519152604482015290519081900360640190fd5b33ff5b3360009081526002602090815260408083206001600160a01b038616845290915281205480831115610683573360009081526002602090815260408083206001600160a01b03881684529091528120556106b8565b610693818463ffffffff610ca116565b3360009081526002602090815260408083206001600160a01b03891684529091529020555b3360008181526002602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b670de0b6b3a764000081565b6001600160a01b031660009081526020819052604090205490565b600354600160a01b900460ff1681565b6003546001600160a01b031681565b6040518060400160405280600381526020016241564d60e81b81525081565b6003546001600160a01b031633146107d0576040805162461bcd60e51b81526020600482015260166024820152600080516020610e37833981519152604482015290519081900360640190fd5b6001600160a01b03821660009081526020819052604090205481111561083d576040805162461bcd60e51b815260206004820181905260248201527f4164647265737320646f206e6f74206861766520656e6f75676820746f6b656e604482015290519081900360640190fd5b6001600160a01b038216600090815260208190526040902054610866908263ffffffff610ca116565b6001600160a01b038316600090815260208190526040902055600154610892908263ffffffff610ca116565b6001556040805182815290516000916001600160a01b03851691600080516020610e178339815191529181900360200190a35050565b600354600090600160a01b900460ff16156108df57fe5b6105d48383610cb3565b6003546001600160a01b03163314610936576040805162461bcd60e51b81526020600482015260166024820152600080516020610e37833981519152604482015290519081900360640190fd5b6003805460ff60a01b19169055565b3360009081526002602090815260408083206001600160a01b0386168452909152812054610979908363ffffffff610c2816565b3360008181526002602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6003546001600160a01b03163314610a56576040805162461bcd60e51b81526020600482015260166024820152600080516020610e37833981519152604482015290519081900360640190fd5b6001600160a01b038116610a6957600080fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b038316610ada57600080fd5b6001600160a01b038416600090815260208190526040902054821115610aff57600080fd5b6001600160a01b0384166000908152600260209081526040808320338452909152902054821115610b2f57600080fd5b6001600160a01b038416600090815260208190526040902054610b58908363ffffffff610ca116565b6001600160a01b038086166000908152602081905260408082209390935590851681522054610b8d908363ffffffff610c2816565b6001600160a01b03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610bcf908363ffffffff610ca116565b6001600160a01b0380861660008181526002602090815260408083203384528252918290209490945580518681529051928716939192600080516020610e17833981519152929181900390910190a35060019392505050565b600082820183811015610c3757fe5b9392505050565b6003546000906001600160a01b03163314610c8e576040805162461bcd60e51b81526020600482015260166024820152600080516020610e37833981519152604482015290519081900360640190fd5b610c988383610d80565b50600192915050565b600082821115610cad57fe5b50900390565b60006001600160a01b038316610cc857600080fd5b33600090815260208190526040902054821115610ce457600080fd5b33600090815260208190526040902054610d04908363ffffffff610ca116565b33600090815260208190526040808220929092556001600160a01b03851681522054610d36908363ffffffff610c2816565b6001600160a01b03841660008181526020818152604091829020939093558051858152905191923392600080516020610e178339815191529281900390910190a350600192915050565b6001600160a01b038216610d9357600080fd5b600154610da6908263ffffffff610c2816565b6001556001600160a01b038216600090815260208190526040902054610dd2908263ffffffff610c2816565b6001600160a01b038316600081815260208181526040808320949094558351858152935192939192600080516020610e178339815191529281900390910190a3505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4f6e6c79206f776e65722063616e206578656375746500000000000000000000a265627a7a72305820676ef2d81830a248ad87d9532867f7004c31b14742009592b7012d69358aeaa564736f6c634300050a0032000000000000000000000000b99c023a817780c2a09f3e3fcf5e33de60cc3d3f