60806040526040516108da3803806108da8339818101604052606081101561002657600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005157600080fd5b90830190602082018581111561006657600080fd5b825164010000000081118282018810171561008057600080fd5b82525081516020918201929091019080838360005b838110156100ad578181015183820152602001610095565b50505050905090810190601f1680156100da5780820380516001836020036101000a031916815260200191505b50604052508491508290506100ee826101bf565b8051156101a6576000826001600160a01b0316826040518082805190602001908083835b602083106101315780518252601f199092019160209182019101610112565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610191576040519150601f19603f3d011682016040523d82523d6000602084013e610196565b606091505b50509050806101a457600080fd5b505b506101ae9050565b6101b782610231565b50505061025b565b6101d28161025560201b6103b21760201c565b61020d5760405162461bcd60e51b81526004018080602001828103825260368152602001806108a46036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b3b151590565b61063a8061026a6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100985780635c60da1b146101165780638f28397014610147578063f851a4401461017a5761005d565b3661005d5761005b61018f565b005b61005b61018f565b34801561007157600080fd5b5061005b6004803603602081101561008857600080fd5b50356001600160a01b03166101a9565b61005b600480360360408110156100ae57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156100d857600080fd5b8201836020820111156100ea57600080fd5b803590602001918460018302840111600160201b8311171561010b57600080fd5b5090925090506101e3565b34801561012257600080fd5b5061012b610290565b604080516001600160a01b039092168252519081900360200190f35b34801561015357600080fd5b5061005b6004803603602081101561016a57600080fd5b50356001600160a01b03166102cd565b34801561018657600080fd5b5061012b610387565b6101976103b8565b6101a76101a2610418565b61043d565b565b6101b1610461565b6001600160a01b0316336001600160a01b031614156101d8576101d381610486565b6101e0565b6101e061018f565b50565b6101eb610461565b6001600160a01b0316336001600160a01b031614156102835761020d83610486565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d806000811461026a576040519150601f19603f3d011682016040523d82523d6000602084013e61026f565b606091505b505090508061027d57600080fd5b5061028b565b61028b61018f565b505050565b600061029a610461565b6001600160a01b0316336001600160a01b031614156102c2576102bb610418565b90506102ca565b6102ca61018f565b90565b6102d5610461565b6001600160a01b0316336001600160a01b031614156101d8576001600160a01b0381166103335760405162461bcd60e51b815260040180806020018281038252603a815260200180610553603a913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61035c610461565b604080516001600160a01b03928316815291841660208301528051918290030190a16101d3816104c6565b6000610391610461565b6001600160a01b0316336001600160a01b031614156102c2576102bb610461565b3b151590565b6103c0610461565b6001600160a01b0316336001600160a01b031614156104105760405162461bcd60e51b81526004018080602001828103825260428152602001806105c36042913960600191505060405180910390fd5b6101a76101a7565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561045c573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b61048f816104ea565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6104f3816103b2565b61052e5760405162461bcd60e51b815260040180806020018281038252603681526020018061058d6036913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5556fe5472616e73706172656e745570677261646561626c6550726f78793a206e65772061646d696e20697320746865207a65726f20616464726573735570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e74726163745472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574a2646970667358221220bc9e83ced1154891d7111a7898501d4459698ef4bf8e5598d4a92b36c267d9a164736f6c634300070600335570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e74726163740000000000000000000000004f6326bb7b20a629363bb46eceeaac703c4091ad000000000000000000000000223be12a735de582e2001307be250cbda57b361a00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000