tx · 4YPT9MRCQ9ubihs9k5gwfcdiGfoUWT8GTaqaE9dMubAm

3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp:  +0.11319314 Waves.Exchange
———————————————————————————————————:  +0.047500 XTN.
3PPVyyFr9icFAteYoR7wCivHcnx8vHKb5W2:  +36.32885406 Waves.Exchange
———————————————————————————————————:  -100.00000000 TurtleNetwork
———————————————————————————————————:  -0.00500000 Waves
3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R:  -36.46399803 Waves.Exchange
3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg:  +0.02195083 Waves.Exchange
———————————————————————————————————:  +0.013571 XTN.
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ:  -0.061071 XTN.
3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj:  +100.00000000 TurtleNetwork

2023.05.15 12:24 [3644329] transfer 3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj > 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp routingTrade() 0.03636522 Waves.Exchange
2023.05.15 12:24 [3644329] transfer 3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj > 3PPVyyFr9icFAteYoR7wCivHcnx8vHKb5W2 routingTrade() 36.32885406 Waves.Exchange
2023.05.15 12:24 [3644329] transfer 3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R > 3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg callFunction() 0.02195083 Waves.Exchange
2023.05.15 12:24 [3644329] transfer 3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R > 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp callFunction() 0.07682792 Waves.Exchange
2023.05.15 12:24 [3644329] transfer 3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R > 3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj callFunction() 36.36521928 Waves.Exchange
2023.05.15 12:24 [3644329] invoke 3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R > 3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ lockNeutrino() 22.483641 XTN.
2023.05.15 12:24 [3644329] invoke 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE > 3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R stakeUnstake()
2023.05.15 12:24 [3644329] invoke 3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R > 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE exchange()
2023.05.15 12:24 [3644329] invoke 3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj > 3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R callFunction() 22.483641 XTN.
2023.05.15 12:24 [3644329] transfer 3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj > 3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg callFunction() 0.013571 XTN.
2023.05.15 12:24 [3644329] transfer 3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj > 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp callFunction() 0.047500 XTN.
2023.05.15 12:24 [3644329] transfer 3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj > 3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj callFunction() 22.483641 XTN.
2023.05.15 12:24 [3644329] transfer 3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ > 3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj unlockNeutrino() 22.544712 XTN.
2023.05.15 12:24 [3644329] invoke 3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj > 3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ unlockNeutrino()
2023.05.15 12:24 [3644329] invoke 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE > 3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj stakeUnstake()
2023.05.15 12:24 [3644329] invoke 3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj > 3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE exchange()
2023.05.15 12:24 [3644329] invoke 3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj > 3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj callFunction() 100.00000000 TurtleNetwork
2023.05.15 12:24 [3644329] invoke 3PPVyyFr9icFAteYoR7wCivHcnx8vHKb5W2 > 3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj routingTrade() 100.00000000 TurtleNetwork

3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R: B_asset_balance: 147521152250 -> 147543635891
3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R: A_asset_balance: 24007871929396 -> 24004225529593
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p: 100387333669732 -> 100387356153373
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s__stats__activeTotalLocked: 100387333669732 -> 100387356153373
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s__stats__activeUsersCount: 4341 == 4341
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s__stats__locksCount: 433666 -> 433667
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p_3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R: 147521152250 -> 147543635891
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s__paramByUser__3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R__start: 3356249 == 3356249
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s__paramByUser__3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R__amount: 147521152250 -> 147543635891
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s__userRwdFromDepNum__3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R: 1 == 1
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s__rwd__3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p: 0 == 0
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s%s__history__stake__3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R__4YPT9MRCQ9ubihs9k5gwfcdiGfoUWT8GTaqaE9dMubAm: "%s%d%d%d%d__3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R__3644329__1684142688357__147521152250__147543635891"
3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj: B_asset_balance: 44946496329 -> 44923951617
3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj: A_asset_balance: 19860809057288 -> 19870809057288
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p: 100387356214444 -> 100387333669732
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s__stats__activeTotalLocked: 100387356214444 -> 100387333669732
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s__stats__activeUsersCount: 4341 == 4341
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s__stats__locksCount: 433666 == 433666
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p_3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj: 44946496329 -> 44923951617
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s__paramByUser__3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj__start: 3356246 == 3356246
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s__paramByUser__3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj__amount: 44946496329 -> 44923951617
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s__userRwdFromDepNum__3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj: 1 == 1
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s__rwd__3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p: 0 == 0
3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ: %s%s%s%s__history__unstake__3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj__4YPT9MRCQ9ubihs9k5gwfcdiGfoUWT8GTaqaE9dMubAm: "%s%d%d%d%d__3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj__3644329__1684142688357__44946496329__44923951617"

{ "type": 16, "id": "4YPT9MRCQ9ubihs9k5gwfcdiGfoUWT8GTaqaE9dMubAm", "fee": 500000, "feeAssetId": null, "timestamp": 1684142747937, "version": 2, "chainId": 87, "sender": "3PPVyyFr9icFAteYoR7wCivHcnx8vHKb5W2", "senderPublicKey": "BiY93coff5dgJ53jDYcFpjbCe8QwVLWK34D5AZrBLbC4", "proofs": [ "5FVD8uN2HJDr79ASKD1TeGeh8J3GF34DFYY9WpcdgmuQYwUp7gqpepx5ohcSKMBiGJN6mnFzH2nvDmKdDbbW6Poi" ], "dApp": "3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj", "payment": [ { "amount": 10000000000, "assetId": "bPWkA3MNyEr1TuDchWgdpqJZhGhfPXj7dJdr3qiW2kD" } ], "call": { "function": "routingTrade", "args": [ { "type": "list", "value": [ { "type": "string", "value": "3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj" }, { "type": "string", "value": "3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R" } ] }, { "type": "list", "value": [ { "type": "string", "value": "cpmm" }, { "type": "string", "value": "cpmm" } ] }, { "type": "list", "value": [ { "type": "integer", "value": 1 }, { "type": "integer", "value": 3600156708 } ] }, { "type": "list", "value": [ { "type": "integer", "value": 0 }, { "type": "integer", "value": 0 } ] }, { "type": "list", "value": [ { "type": "string", "value": "A_asset_balance" }, { "type": "string", "value": "B_asset_balance" }, { "type": "string", "value": "B_asset_balance" }, { "type": "string", "value": "A_asset_balance" } ] }, { "type": "integer", "value": 3596556551 } ] }, "height": 3644329, "applicationStatus": "succeeded", "spentComplexity": 3251, "stateChanges": { "data": [], "transfers": [ { "address": "3PPVyyFr9icFAteYoR7wCivHcnx8vHKb5W2", "asset": "Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on", "amount": 3632885406 }, { "address": "3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp", "asset": "Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on", "amount": 3636522 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj", "call": { "function": "callFunction", "args": [ { "type": "String", "value": "exchange" }, { "type": "Array", "value": [ { "type": "String", "value": "1" } ] } ] }, "payment": [ { "assetId": "bPWkA3MNyEr1TuDchWgdpqJZhGhfPXj7dJdr3qiW2kD", "amount": 10000000000 } ], "stateChanges": { "data": [ { "key": "A_asset_balance", "type": "integer", "value": 19870809057288 }, { "key": "B_asset_balance", "type": "integer", "value": 44923951617 } ], "transfers": [ { "address": "3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj", "asset": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "amount": 22483641 }, { "address": "3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp", "asset": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "amount": 47500 }, { "address": "3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg", "asset": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "amount": 13571 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE", "call": { "function": "exchange", "args": [ { "type": "ByteVector", "value": "3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj" }, { "type": "Array", "value": [ { "type": "String", "value": "1" } ] }, { "type": "Array", "value": [ { "type": "Int", "value": 10000000000 } ] }, { "type": "Array", "value": [ { "type": "ByteVector", "value": "bPWkA3MNyEr1TuDchWgdpqJZhGhfPXj7dJdr3qiW2kD" } ] } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj", "call": { "function": "stakeUnstake", "args": [ { "type": "Boolean", "value": false }, { "type": "Int", "value": 22544712 }, { "type": "String", "value": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ", "call": { "function": "unlockNeutrino", "args": [ { "type": "Int", "value": 22544712 }, { "type": "String", "value": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" } ] }, "payment": [], "stateChanges": { "data": [ { "key": "%s%s%s%s__history__unstake__3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj__4YPT9MRCQ9ubihs9k5gwfcdiGfoUWT8GTaqaE9dMubAm", "type": "string", "value": "%s%d%d%d%d__3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj__3644329__1684142688357__44946496329__44923951617" }, { "key": "%s%s%s__rwd__3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "type": "integer", "value": 0 }, { "key": "%s%s%s__userRwdFromDepNum__3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj", "type": "integer", "value": 1 }, { "key": "%s%s%s__paramByUser__3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj__amount", "type": "integer", "value": 44923951617 }, { "key": "%s%s%s__paramByUser__3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj__start", "type": "integer", "value": 3356246 }, { "key": "rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p_3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj", "type": "integer", "value": 44923951617 }, { "key": "%s%s__stats__locksCount", "type": "integer", "value": 433666 }, { "key": "%s%s__stats__activeUsersCount", "type": "integer", "value": 4341 }, { "key": "%s%s__stats__activeTotalLocked", "type": "integer", "value": 100387333669732 }, { "key": "rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "type": "integer", "value": 100387333669732 } ], "transfers": [ { "address": "3PCdNCULgjM9ZMLEt61M45qxV26ro6o48Jj", "asset": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "amount": 22544712 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } } ] } } ] } } ] } }, { "dApp": "3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R", "call": { "function": "callFunction", "args": [ { "type": "String", "value": "exchange" }, { "type": "Array", "value": [ { "type": "String", "value": "3600156708" } ] } ] }, "payment": [ { "assetId": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "amount": 22483641 } ], "stateChanges": { "data": [ { "key": "A_asset_balance", "type": "integer", "value": 24004225529593 }, { "key": "B_asset_balance", "type": "integer", "value": 147543635891 } ], "transfers": [ { "address": "3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj", "asset": "Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on", "amount": 3636521928 }, { "address": "3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp", "asset": "Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on", "amount": 7682792 }, { "address": "3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg", "asset": "Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on", "amount": 2195083 } ], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PBFHAHS4PZaXpS7gT5SPLnuPh7YPoJgCfE", "call": { "function": "exchange", "args": [ { "type": "ByteVector", "value": "3P4v7QaMk6us7PdxSuoR5LmZmemv5ruD6oj" }, { "type": "Array", "value": [ { "type": "String", "value": "3600156708" } ] }, { "type": "Array", "value": [ { "type": "Int", "value": 22483641 } ] }, { "type": "Array", "value": [ { "type": "ByteVector", "value": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" } ] } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R", "call": { "function": "stakeUnstake", "args": [ { "type": "Boolean", "value": true }, { "type": "Int", "value": 22483641 }, { "type": "String", "value": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p" } ] }, "payment": [], "stateChanges": { "data": [], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [ { "dApp": "3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ", "call": { "function": "lockNeutrino", "args": [] }, "payment": [ { "assetId": "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "amount": 22483641 } ], "stateChanges": { "data": [ { "key": "%s%s%s%s__history__stake__3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R__4YPT9MRCQ9ubihs9k5gwfcdiGfoUWT8GTaqaE9dMubAm", "type": "string", "value": "%s%d%d%d%d__3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R__3644329__1684142688357__147521152250__147543635891" }, { "key": "%s%s%s__rwd__3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R__DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "type": "integer", "value": 0 }, { "key": "%s%s%s__userRwdFromDepNum__3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R", "type": "integer", "value": 1 }, { "key": "%s%s%s__paramByUser__3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R__amount", "type": "integer", "value": 147543635891 }, { "key": "%s%s%s__paramByUser__3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R__start", "type": "integer", "value": 3356249 }, { "key": "rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p_3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R", "type": "integer", "value": 147543635891 }, { "key": "%s%s__stats__locksCount", "type": "integer", "value": 433667 }, { "key": "%s%s__stats__activeUsersCount", "type": "integer", "value": 4341 }, { "key": "%s%s__stats__activeTotalLocked", "type": "integer", "value": 100387356153373 }, { "key": "rpd_balance_DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p", "type": "integer", "value": 100387356153373 } ], "transfers": [], "issues": [], "reissues": [], "burns": [], "sponsorFees": [], "leases": [], "leaseCancels": [], "invokes": [] } } ] } } ] } } ] } } ] } }

github/deemru/w8io/3ef1775 
28.95 ms