60806040526004805460ff1916905534801561001a57600080fd5b5060018054600160a060020a031916331790556040805180820190915260168082527f456c656374726f6e696320456e6572677920436f696e0000000000000000000060209092019182526100719160059161014a565b506040805180820190915260038082527f453243000000000000000000000000000000000000000000000000000000000060209092019182526100b69160069161014a565b506007805460ff191660121790556a6ce3158981a5ecd34c0000600081815560048054746784520ac7fbfad578abb5575d333a3f8739a5af0061010060a860020a03199091161790553380825260026020908152604080842085905580519485525191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a36101e5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061018b57805160ff19168380011785556101b8565b828001600101855582156101b8579182015b828111156101b857825182559160200191906001019061019d565b506101c49291506101c8565b5090565b6101e291905b808211156101c457600081556001016101ce565b90565b610caf806101f46000396000f3006080604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100f5578063095ea7b31461017f57806318160ddd146101b757806323b872dd146101de578063313ce567146102085780633f4ba83a146102335780634d853ee51461024a5780635c975abb1461027b578063661884631461029057806370a08231146102b45780638456cb59146102d55780638da5cb5b146102ea57806395d89b41146102ff578063a9059cbb14610314578063d73dd62314610338578063dd62ed3e1461035c578063f2fde38b14610383575b600080fd5b34801561010157600080fd5b5061010a6103a4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014457818101518382015260200161012c565b50505050905090810190601f1680156101715780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018b57600080fd5b506101a3600160a060020a0360043516602435610432565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101cc610472565b60408051918252519081900360200190f35b3480156101ea57600080fd5b506101a3600160a060020a0360043581169060243516604435610478565b34801561021457600080fd5b5061021d6104ba565b6040805160ff9092168252519081900360200190f35b34801561023f57600080fd5b506102486104c3565b005b34801561025657600080fd5b5061025f610520565b60408051600160a060020a039092168252519081900360200190f35b34801561028757600080fd5b506101a3610534565b34801561029c57600080fd5b506101a3600160a060020a036004351660243561053d565b3480156102c057600080fd5b506101cc600160a060020a0360043516610576565b3480156102e157600080fd5b50610248610591565b3480156102f657600080fd5b5061025f61060c565b34801561030b57600080fd5b5061010a61061b565b34801561032057600080fd5b506101a3600160a060020a0360043516602435610676565b34801561034457600080fd5b506101a3600160a060020a03600435166024356106af565b34801561036857600080fd5b506101cc600160a060020a03600435811690602435166106e8565b34801561038f57600080fd5b50610248600160a060020a0360043516610713565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561042a5780601f106103ff5761010080835404028352916020019161042a565b820191906000526020600020905b81548152906001019060200180831161040d57829003601f168201915b505050505081565b60045460009060ff16158061045657506004546101009004600160a060020a031633145b151561046157600080fd5b61046b83836107a8565b9392505050565b60005481565b60045460009060ff16158061049c57506004546101009004600160a060020a031633145b15156104a757600080fd5b6104b284848461084a565b949350505050565b60075460ff1681565b600154600160a060020a031633146104da57600080fd5b60045460ff1615156104eb57600080fd5b6004805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b6004546101009004600160a060020a031681565b60045460ff1681565b60045460009060ff16158061056157506004546101009004600160a060020a031633145b151561056c57600080fd5b61046b83836109f6565b600160a060020a031660009081526002602052604090205490565b600154600160a060020a031633146105a857600080fd5b60045460ff1615806105c957506004546101009004600160a060020a031633145b15156105d457600080fd5b6004805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600154600160a060020a031681565b6006805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561042a5780601f106103ff5761010080835404028352916020019161042a565b60045460009060ff16158061069a57506004546101009004600160a060020a031633145b15156106a557600080fd5b61046b8383610ae6565b60045460009060ff1615806106d357506004546101009004600160a060020a031633145b15156106de57600080fd5b61046b8383610bc9565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600154600160a060020a0316331461072a57600080fd5b600160a060020a038116151561073f57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008115806107d85750336000908152600360209081526040808320600160a060020a0387168452909152902054155b15156107e357600080fd5b336000818152600360209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b6000600160a060020a038316151561086157600080fd5b600160a060020a038416600090815260036020908152604080832033845290915290205482111561089157600080fd5b600160a060020a0384166000908152600260205260409020548211156108b657600080fd5b600160a060020a0383166000908152600260205260409020546108df818463ffffffff610c6216565b116108e957600080fd5b600160a060020a038416600090815260026020526040902054610912908363ffffffff610c7116565b600160a060020a038086166000908152600260205260408082209390935590851681522054610947908363ffffffff610c6216565b600160a060020a03808516600090815260026020908152604080832094909455918716815260038252828120338252909152205461098b908363ffffffff610c7116565b600160a060020a03808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b336000908152600360209081526040808320600160a060020a038616845290915281205480831115610a4b57336000908152600360209081526040808320600160a060020a0388168452909152812055610a80565b610a5b818463ffffffff610c7116565b336000908152600360209081526040808320600160a060020a03891684529091529020555b336000818152600360209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000600160a060020a0383161515610afd57600080fd5b33600090815260026020526040902054821115610b1957600080fd5b33600090815260026020526040902054610b39908363ffffffff610c7116565b3360009081526002602052604080822092909255600160a060020a03851681522054610b6b908363ffffffff610c6216565b600160a060020a0384166000818152600260209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b336000908152600360209081526040808320600160a060020a0386168452909152812054610bfd908363ffffffff610c6216565b336000818152600360209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b60008282018381101561046b57fe5b600082821115610c7d57fe5b509003905600a165627a7a72305820f01c7f480032e41bd3ef7a44c36c51feabc28028c02fc0ef8f2e0ba33eec8bbd0029