2024.06.24 06:43 [4230297] transfer 3P94EnCep6qDRWqnzE7iK3mJe6x11q71KTG > 3P8auNWJkxxByyJtwErFXaxiXcGM45qQ1hA default() 0.00500000 Waves
2024.06.24 06:43 [4230297] transfer 3PFjHWuH6WXNJbwnfLHqNFBpwBS5dkYjTfv > 3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo default() 766.273114 XTN.
2024.06.24 06:43 [4230297] transfer 3PFjHWuH6WXNJbwnfLHqNFBpwBS5dkYjTfv > 3P94EnCep6qDRWqnzE7iK3mJe6x11q71KTG default() 0.01000000 Waves
2024.06.24 06:43 [4230297] transfer 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg exchange() 0.462539 XTN.
2024.06.24 06:43 [4230297] transfer 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp exchange() 1.618886 XTN.
2024.06.24 06:43 [4230297] transfer 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PFjHWuH6WXNJbwnfLHqNFBpwBS5dkYjTfv exchange() 766.273114 XTN.
2024.06.24 06:43 [4230297] lease 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PLXMk37Nn7Wtm3uAK1gbxDc87JZmTh4gnU stakeUnstake() 62851.32869744 Waves
2024.06.24 06:43 [4230297] unlease 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PLXMk37Nn7Wtm3uAK1gbxDc87JZmTh4gnU stakeUnstake() +62838.32869744 Waves
2024.06.24 06:43 [4230297] invoke 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE > 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG stakeUnstake()
2024.06.24 06:43 [4230297] invoke 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG > 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE exchange()
2024.06.24 06:43 [4230297] invoke 3PFjHWuH6WXNJbwnfLHqNFBpwBS5dkYjTfv > 3PHaNgomBkrvEL2QnuJarQVJa71wjw9qiqG exchange() 13.00000000 Waves
2024.06.24 06:43 [4230297] invoke 3P94EnCep6qDRWqnzE7iK3mJe6x11q71KTG > 3PFjHWuH6WXNJbwnfLHqNFBpwBS5dkYjTfv default()
2024.06.24 06:43 [4230297] invoke 3P94EnCep6qDRWqnzE7iK3mJe6x11q71KTG > xtnr default()
2024.06.24 06:42 [4230296] fees GENERATOR > 3PNEqDkLfEXoDqTCy1KwXNRVbxsSuDNUWfz 0.03740000 Waves
2024.06.24 06:42 [4230296] reward 3PNEqDkLfEXoDqTCy1KwXNRVbxsSuDNUWfz > 3PFjHWuH6WXNJbwnfLHqNFBpwBS5dkYjTfv 2.00000000 Waves
2024.06.24 06:42 [4230296] reward 3PNEqDkLfEXoDqTCy1KwXNRVbxsSuDNUWfz > 3PEgG7eZHLFhcfsTSaYxgRhZsh4AxMvA4Ms 2.00000000 Waves
2024.06.24 06:42 [4230296] reward GENERATOR > 3PNEqDkLfEXoDqTCy1KwXNRVbxsSuDNUWfz 6.00000000 Waves
2024.06.24 06:42 [4230296] invoke 3PKSw5WZ5x9TZ9EXZsiEiQWDx6HVs8s79uP > 3PHNNEZmpW7jWg54Q7jKRtGxfCG1XwZRZwh finalizeDORA2()
2024.06.24 06:42 [4230296] transfer 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > 3PRE5KH9oPGfFPs7fGnQcJ4wNshEDUPGj1t x() 0.00948309 Waves
2024.06.24 06:42 [4230296] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM swap() 0.001196 USDT-ERC20-PPT
2024.06.24 06:42 [4230296] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu swap() 0.001196 USDT-ERC20-PPT
2024.06.24 06:42 [4230296] transfer 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez calculateAmountOutForSwapAndSendTokens() 0.63793021 Waves
2024.06.24 06:42 [4230296] transfer 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3PCoDJZ4R95qFdiAwdhjf9y2jtTiskJ9STo calculateAmountOutForSwapAndSendTokens() 0.00021758 sWAVES
2024.06.24 06:42 [4230296] transfer 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM withdraw() 0.51034417 Waves
2024.06.24 06:42 [4230296] transfer 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn withdraw() 0.51034417 Waves
2024.06.24 06:42 [4230296] burn 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > SELF withdraw() 0.45334400 sWAVES
2024.06.24 06:42 [4230296] transfer 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV unstake() 0.51034417 Waves
2024.06.24 06:42 [4230296] lease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj unstake() 1651425.40601736 Waves
2024.06.24 06:42 [4230296] unlease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj unstake() +1651425.91636153 Waves
2024.06.24 06:42 [4230296] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt unstake()
2024.06.24 06:42 [4230296] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt claimReward()
2024.06.24 06:42 [4230296] invoke 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV withdraw() 0.45334400 sWAVES
2024.06.24 06:42 [4230296] invoke 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn withdraw() 0.45334400 sWAVES
2024.06.24 06:42 [4230296] invoke 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV getRate()
2024.06.24 06:42 [4230296] invoke 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn getRate()
2024.06.24 06:42 [4230296] invoke 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.24 06:42 [4230296] invoke 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.24 06:42 [4230296] invoke 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapContractREADONLY()
2024.06.24 06:42 [4230296] invoke 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolSwapDisabledREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM calculateAmountOutForSwapAndSendTokens() 0.595674 USDT-ERC20-PPT
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapFeeREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolAddressFromLpAssetREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2024.06.24 06:42 [4230296] invoke 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 swap() 0.598066 USDT-ERC20-PPT
2024.06.24 06:42 [4230296] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z swap() 0.43334034 L2MP
2024.06.24 06:42 [4230296] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu swap() 0.43334034 L2MP
2024.06.24 06:42 [4230296] transfer 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z > 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez calculateAmountOutForSwapAndSendTokens() 0.598066 USDT-ERC20-PPT
2024.06.24 06:42 [4230296] invoke 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.24 06:42 [4230296] invoke 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.24 06:42 [4230296] invoke 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapContractREADONLY()
2024.06.24 06:42 [4230296] invoke 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolSwapDisabledREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3P6owaNkvqMySosXwH2fQZUc6VcRXWhab6z calculateAmountOutForSwapAndSendTokens() 215.80349325 L2MP
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapFeeREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolAddressFromLpAssetREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2024.06.24 06:42 [4230296] invoke 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 swap() 216.67017393 L2MP
2024.06.24 06:42 [4230296] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3P7UePyKRB1eEGww7D6tWcHzvpmKm8zJVd7 swap() 0.01611564 PETE
2024.06.24 06:42 [4230296] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu swap() 0.01611564 PETE
2024.06.24 06:42 [4230296] transfer 3P7UePyKRB1eEGww7D6tWcHzvpmKm8zJVd7 > 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez calculateAmountOutForSwapAndSendTokens() 216.67017393 L2MP
2024.06.24 06:42 [4230296] invoke 3P7UePyKRB1eEGww7D6tWcHzvpmKm8zJVd7 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.24 06:42 [4230296] invoke 3P7UePyKRB1eEGww7D6tWcHzvpmKm8zJVd7 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.24 06:42 [4230296] invoke 3P7UePyKRB1eEGww7D6tWcHzvpmKm8zJVd7 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapContractREADONLY()
2024.06.24 06:42 [4230296] invoke 3P7UePyKRB1eEGww7D6tWcHzvpmKm8zJVd7 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolSwapDisabledREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3P7UePyKRB1eEGww7D6tWcHzvpmKm8zJVd7 calculateAmountOutForSwapAndSendTokens() 8.02559004 PETE
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapFeeREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolStatusREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolAddressFromLpAssetREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getLpAssetFromPoolAssetsREADONLY()
2024.06.24 06:42 [4230296] invoke 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 swap() 8.05782132 PETE
2024.06.24 06:42 [4230296] transfer 3PNgyownSHR3bye2NYisiPqMW21swkkzRWm > 3PFWAVKmXjfHXyzJb12jCbhP4Uhi9t4uWiD swap() 0.00754136 Waves
2024.06.24 06:42 [4230296] transfer 3PNgyownSHR3bye2NYisiPqMW21swkkzRWm > 3P8bxPavni6rQjNXWFnP6Xw68Bb8gyAB3pb swap() 0.00188534 Waves
2024.06.24 06:42 [4230296] transfer 3PNgyownSHR3bye2NYisiPqMW21swkkzRWm > 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez swap() 8.05782132 PETE
2024.06.24 06:42 [4230296] invoke 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > 3PNgyownSHR3bye2NYisiPqMW21swkkzRWm swap() 0.62844712 Waves
2024.06.24 06:42 [4230296] invoke 3PRE5KH9oPGfFPs7fGnQcJ4wNshEDUPGj1t > 94ez x()
2024.06.24 06:42 [4230296] transfer 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez > 3PRE5KH9oPGfFPs7fGnQcJ4wNshEDUPGj1t y() 0.01022123 Waves
2024.06.24 06:42 [4230296] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM swap() 0.008252 USDT-ERC20-PPT
2024.06.24 06:42 [4230296] transfer 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PEjHv3JGjcWNpYEEkif2w8NXV4kbhnoGgu swap() 0.008252 USDT-ERC20-PPT
2024.06.24 06:42 [4230296] transfer 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3P3qCUfvbDUjRnjrfM5XFMrXrzxxiad94Ez calculateAmountOutForSwapAndSendTokens() 4.40935110 Waves
2024.06.24 06:42 [4230296] transfer 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3PCoDJZ4R95qFdiAwdhjf9y2jtTiskJ9STo calculateAmountOutForSwapAndSendTokens() 0.00150388 sWAVES
2024.06.24 06:42 [4230296] transfer 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM withdraw() 3.52748087 Waves
2024.06.24 06:42 [4230296] transfer 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn withdraw() 3.52748087 Waves
2024.06.24 06:42 [4230296] burn 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > SELF withdraw() 3.13349770 sWAVES
2024.06.24 06:42 [4230296] transfer 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV unstake() 3.52748087 Waves
2024.06.24 06:42 [4230296] lease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj unstake() 1651425.91636153 Waves
2024.06.24 06:42 [4230296] unlease 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt > 3PDETXtiaErZncMduS8h9G6aopcjT7wheqj unstake() +1651429.44384240 Waves
2024.06.24 06:42 [4230296] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt unstake()
2024.06.24 06:42 [4230296] invoke 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV > 3PHTxmSNQsrZocZRAWidNbdcxqRpzHiK5Mt claimReward()
2024.06.24 06:42 [4230296] invoke 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV withdraw() 3.13349770 sWAVES
2024.06.24 06:42 [4230296] invoke 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn withdraw() 3.13349770 sWAVES
2024.06.24 06:42 [4230296] invoke 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn > 3PDPzZVLhN1EuzGy4xAxjjTVkawKDLEaHiV getRate()
2024.06.24 06:42 [4230296] invoke 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3P4dXbaBwREskBrTvx3UjvSCmJWcnqpnJVn getRate()
2024.06.24 06:42 [4230296] invoke 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.24 06:42 [4230296] invoke 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getPoolLeaseConfigREADONLY()
2024.06.24 06:42 [4230296] invoke 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapContractREADONLY()
2024.06.24 06:42 [4230296] invoke 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv isPoolSwapDisabledREADONLY()
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PPeWowdyQLKwW9AExN5CgFa7X9ts7D4LkM calculateAmountOutForSwapAndSendTokens() 4.109683 USDT-ERC20-PPT
2024.06.24 06:42 [4230296] invoke 3P68zNiufsu1viZpu1aY3cdahRRKcvV5N93 > 3PCuHsTU58WKhCqotbcSwABvdPzqqVAbbTv getSwapFeeREADONLY()
...

github/deemru/w8io/873ac7e 
11.34 ms