60806040523480156200001157600080fd5b506040518060400160405280600981526020016804d6f636b45524332360bc1b815250604051806040016040528060048152602001634d4f434b60e01b8152508160039081620000629190620002d0565b506004620000718282620002d0565b505050620000ab3362000089620000b160201b60201c565b6200009690600a620004b1565b620000a590620f4240620004c9565b620000b6565b620004f9565b601290565b6001600160a01b038216620000e65760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620000f460008383620000f8565b5050565b6001600160a01b038316620001275780600260008282546200011b9190620004e3565b909155506200019b9050565b6001600160a01b038316600090815260208190526040902054818110156200017c5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000dd565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001b957600280548290039055620001d8565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200021e91815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200025657607f821691505b6020821081036200027757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002cb57600081815260208120601f850160051c81016020861015620002a65750805b601f850160051c820191505b81811015620002c757828155600101620002b2565b5050505b505050565b81516001600160401b03811115620002ec57620002ec6200022b565b6200030481620002fd845462000241565b846200027d565b602080601f8311600181146200033c5760008415620003235750858301515b600019600386901b1c1916600185901b178555620002c7565b600085815260208120601f198616915b828110156200036d578886015182559484019460019091019084016200034c565b50858210156200038c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003f3578160001904821115620003d757620003d76200039c565b80851615620003e557918102915b93841c9390800290620003b7565b509250929050565b6000826200040c57506001620004ab565b816200041b57506000620004ab565b81600181146200043457600281146200043f576200045f565b6001915050620004ab565b60ff8411156200045357620004536200039c565b50506001821b620004ab565b5060208310610133831016604e8410600b841016171562000484575081810a620004ab565b620004908383620003b2565b8060001904821115620004a757620004a76200039c565b0290505b92915050565b6000620004c260ff841683620003fb565b9392505050565b8082028115828204841417620004ab57620004ab6200039c565b80820180821115620004ab57620004ab6200039c565b61089c80620005096000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c806370a0823111610076578063a9059cbb1161005b578063a9059cbb14610169578063dd62ed3e1461017c578063de5f72fd146101b557600080fd5b806370a082311461013857806395d89b411461016157600080fd5b806318160ddd116100a757806318160ddd1461010457806323b872dd14610116578063313ce5671461012957600080fd5b806306fdde03146100c3578063095ea7b3146100e1575b600080fd5b6100cb6101bf565b6040516100d891906105fd565b60405180910390f35b6100f46100ef366004610667565b610251565b60405190151581526020016100d8565b6002545b6040519081526020016100d8565b6100f4610124366004610691565b61026b565b604051601281526020016100d8565b6101086101463660046106cd565b6001600160a01b031660009081526020819052604090205490565b6100cb61028f565b6100f4610177366004610667565b61029e565b61010861018a3660046106ef565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101bd6102ac565b005b6060600380546101ce90610722565b80601f01602080910402602001604051908101604052809291908181526020018280546101fa90610722565b80156102475780601f1061021c57610100808354040283529160200191610247565b820191906000526020600020905b81548152906001019060200180831161022a57829003601f168201915b5050505050905090565b60003361025f8185856102d0565b60019150505b92915050565b6000336102798582856102e2565b610284858585610365565b506001949350505050565b6060600480546101ce90610722565b60003361025f818585610365565b6102ce336102bc6012600a610856565b6102c990620f4240610865565b6103c4565b565b6102dd83838360016103fe565b505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461035f578181101561035057604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b61035f848484840360006103fe565b50505050565b6001600160a01b03831661038f57604051634b637e8f60e11b815260006004820152602401610347565b6001600160a01b0382166103b95760405163ec442f0560e01b815260006004820152602401610347565b6102dd8383836104d3565b6001600160a01b0382166103ee5760405163ec442f0560e01b815260006004820152602401610347565b6103fa600083836104d3565b5050565b6001600160a01b0384166104285760405163e602df0560e01b815260006004820152602401610347565b6001600160a01b03831661045257604051634a1406b160e11b815260006004820152602401610347565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561035f57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104c591815260200190565b60405180910390a350505050565b6001600160a01b0383166104fe5780600260008282546104f3919061087c565b909155506105709050565b6001600160a01b038316600090815260208190526040902054818110156105515760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610347565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b03821661058c576002805482900390556105ab565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105f091815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561062a5785810183015185820160400152820161060e565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461066257600080fd5b919050565b6000806040838503121561067a57600080fd5b6106838361064b565b946020939093013593505050565b6000806000606084860312156106a657600080fd5b6106af8461064b565b92506106bd6020850161064b565b9150604084013590509250925092565b6000602082840312156106df57600080fd5b6106e88261064b565b9392505050565b6000806040838503121561070257600080fd5b61070b8361064b565b91506107196020840161064b565b90509250929050565b600181811c9082168061073657607f821691505b60208210810361075657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156107ad5781600019048211156107935761079361075c565b808516156107a057918102915b93841c9390800290610777565b509250929050565b6000826107c457506001610265565b816107d157506000610265565b81600181146107e757600281146107f15761080d565b6001915050610265565b60ff8411156108025761080261075c565b50506001821b610265565b5060208310610133831016604e8410600b8410161715610830575081810a610265565b61083a8383610772565b806000190482111561084e5761084e61075c565b029392505050565b60006106e860ff8416836107b5565b80820281158282048414176102655761026561075c565b808201808211156102655761026561075c56fea164736f6c6343000814000a