• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 18:10
CET 23:10
KST 07:10
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL21] Ro24 Preview Pt1: New Chaos0Team Liquid Map Contest #22 - Presented by Monster Energy7ByuL: The Forgotten Master of ZvT30Behind the Blue - Team Liquid History Book19Clem wins HomeStory Cup 289
Community News
Weekly Cups (March 16-22): herO doubles, Cure surprises3Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool48Weekly Cups (March 9-15): herO, Clem, ByuN win42026 KungFu Cup Announcement6BGE Stara Zagora 2026 cancelled12
StarCraft 2
General
Potential Updates Coming to the SC2 CN Server What mix of new & old maps do you want in the next ladder pool? (SC2) Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool Weekly Cups (March 16-22): herO doubles, Cure surprises Weekly Cups (August 25-31): Clem's Last Straw?
Tourneys
WardiTV Mondays Sparkling Tuna Cup - Weekly Open Tournament World University TeamLeague (500$+) | Signups Open RSL Season 4 announced for March-April WardiTV Team League Season 10
Strategy
Custom Maps
[M] (2) Frigid Storage Publishing has been re-enabled! [Feb 24th 2026]
External Content
The PondCast: SC2 News & Results Mutation # 518 Radiation Zone Mutation # 517 Distant Threat Mutation # 516 Specter of Death
Brood War
General
Gypsy to Korea mca64Launcher - New Version with StarCraft: Remast BGH Auto Balance -> http://bghmmr.eu/ Soulkey's decision to leave C9 How much money terran looses from gas steal?
Tourneys
[ASL21] Ro24 Group C [Megathread] Daily Proleagues [ASL21] Ro24 Group B 2026 Changsha Offline Cup
Strategy
What's the deal with APM & what's its true value Fighting Spirit mining rates Simple Questions, Simple Answers Soma's 9 hatch build from ASL Game 2
Other Games
General Games
Darkest Dungeon Nintendo Switch Thread Stormgate/Frost Giant Megathread General RTS Discussion Thread Path of Exile
Dota 2
Official 'what is Dota anymore' discussion The Story of Wings Gaming
League of Legends
G2 just beat GenG in First stand
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread Five o'clock TL Mafia Mafia Game Mode Feedback/Ideas Vanilla Mini Mafia
Community
General
US Politics Mega-thread European Politico-economics QA Mega-thread Canadian Politics Mega-thread Russo-Ukrainian War Thread Things Aren’t Peaceful in Palestine
Fan Clubs
The IdrA Fan Club
Media & Entertainment
[Req][Books] Good Fantasy/SciFi books Movie Discussion! [Manga] One Piece
Sports
Cricket [SPORT] 2024 - 2026 Football Thread Formula 1 Discussion Tokyo Olympics 2021 Thread General nutrition recommendations
World Cup 2022
Tech Support
[G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
Funny Nicknames
LUCKY_NOOB
Money Laundering In Video Ga…
TrAiDoS
Iranian anarchists: organize…
XenOsky
FS++
Kraekkling
Shocked by a laser…
Spydermine0240
Unintentional protectionism…
Uldridge
ASL S21 English Commentary…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1759 users

BGH Auto Balance -> http://bghmmr.eu/ - Page 8

Forum Index > BW General
Post a Reply
Prev 1 6 7 8 9 10 200 Next
MeSaber
Profile Joined December 2009
Sweden1235 Posts
September 15 2020 21:23 GMT
#141
I would ask for some commands.

Always when i join late i would like to know what stats the guys before me have. A command like !list , or whatever to show it would be nice. To not spam the public chat it could be a whisper.

Another good command would be a vote system to kick laggers. This could probably be abused but still, no one likes a lag game and those koreans know how to lag in EU.

-.-
elKa-ThE-FeArEd
Profile Joined October 2010
Sweden177 Posts
September 17 2020 14:55 GMT
#142
they killed one of our mates early on but we managed to win 2v3.
It counted as a loss, do i have to report that or will it count as win automatically later on?

Jealous
Profile Blog Joined December 2011
10302 Posts
September 17 2020 18:02 GMT
#143
On September 17 2020 23:55 elKa-ThE-FeArEd wrote:
they killed one of our mates early on but we managed to win 2v3.
It counted as a loss, do i have to report that or will it count as win automatically later on?


It counts as a loss if you leave the game before the last opponent. I don't think they are fixing these things but I don't want to say with certainty ;;
"The right to vote is only the oar of the slaveship, I wanna be free." -- бум бум сучка!
elKa-ThE-FeArEd
Profile Joined October 2010
Sweden177 Posts
September 18 2020 06:06 GMT
#144
On September 18 2020 03:02 Jealous wrote:
Show nested quote +
On September 17 2020 23:55 elKa-ThE-FeArEd wrote:
they killed one of our mates early on but we managed to win 2v3.
It counted as a loss, do i have to report that or will it count as win automatically later on?


It counts as a loss if you leave the game before the last opponent. I don't think they are fixing these things but I don't want to say with certainty ;;


I left the game with the end screen tho
D3AD-R3TARD
Profile Joined April 2020
Poland312 Posts
September 18 2020 09:00 GMT
#145
On September 16 2020 06:23 MeSaber wrote:
I would ask for some commands.

Always when i join late i would like to know what stats the guys before me have. A command like !list , or whatever to show it would be nice. To not spam the public chat it could be a whisper.

Another good command would be a vote system to kick laggers. This could probably be abused but still, no one likes a lag game and those koreans know how to lag in EU.



It's a good idea. Right now I'm kinda oveloaded with work but I'll try to add this when I have time.

On September 17 2020 23:55 elKa-ThE-FeArEd wrote:
they killed one of our mates early on but we managed to win 2v3.
It counted as a loss, do i have to report that or will it count as win automatically later on?



Yeah, it's the thing with replays. They only list players actions. So there is info on players leaving the game but not on player elimination. For this reason when you leave before opponent who was eliminated and before hosting bot, only player left according to replay is your opponent. I'll try to fix this but it is slightly more complicated as it requires processing results table. For now what can be done is not leaving before hosting bot and asking eliminated players to leave.
https://bghmmr.eu
MeSaber
Profile Joined December 2009
Sweden1235 Posts
September 18 2020 11:14 GMT
#146
An easy fix could maybe be display all stats when the last player has joined.. That way everyone gets the same information at the same time and no-one can move around to get a "better ally" so to speak.

With early information people can choose to change position to Bottom group to gain advantage. When balancing it usually just change one player and not mixing the teams properly. I.E 2 friends in same group could be playing with each other most of the time.
-.-
elKa-ThE-FeArEd
Profile Joined October 2010
Sweden177 Posts
September 18 2020 11:31 GMT
#147
On September 18 2020 18:00 D3AD-R3TARD wrote:
Show nested quote +
On September 16 2020 06:23 MeSaber wrote:
I would ask for some commands.

Always when i join late i would like to know what stats the guys before me have. A command like !list , or whatever to show it would be nice. To not spam the public chat it could be a whisper.

Another good command would be a vote system to kick laggers. This could probably be abused but still, no one likes a lag game and those koreans know how to lag in EU.



It's a good idea. Right now I'm kinda oveloaded with work but I'll try to add this when I have time.

Show nested quote +
On September 17 2020 23:55 elKa-ThE-FeArEd wrote:
they killed one of our mates early on but we managed to win 2v3.
It counted as a loss, do i have to report that or will it count as win automatically later on?



Yeah, it's the thing with replays. They only list players actions. So there is info on players leaving the game but not on player elimination. For this reason when you leave before opponent who was eliminated and before hosting bot, only player left according to replay is your opponent. I'll try to fix this but it is slightly more complicated as it requires processing results table. For now what can be done is not leaving before hosting bot and asking eliminated players to leave.



Ah alright! thx for the explanation
D3AD-R3TARD
Profile Joined April 2020
Poland312 Posts
September 18 2020 14:13 GMT
#148
On September 18 2020 20:14 MeSaber wrote:
An easy fix could maybe be display all stats when the last player has joined.. That way everyone gets the same information at the same time and no-one can move around to get a "better ally" so to speak.

With early information people can choose to change position to Bottom group to gain advantage. When balancing it usually just change one player and not mixing the teams properly. I.E 2 friends in same group could be playing with each other most of the time.


Ok, I've added feature that whispers to new players stats of players already in the lobby. Kinda like standard custom stats are displayed.

One swap is always enough to get needed teams. Balancer only starts when teams are exactly as needed so changing places doesn't affect anything.
https://bghmmr.eu
Grouhh
Profile Joined May 2019
57 Posts
September 18 2020 22:00 GMT
#149
On September 18 2020 18:00 D3AD-R3TARD wrote:
For now what can be done is not leaving before hosting bot and asking eliminated players to leave.

Hi man, thanks for this awesome bot !

What happened to me once is that the loser refused to leave, so I waited until the bot leaves. But the loser waited too, and he managed to steal the win anyway. I guess the bot has no way to tell who is the actual winner in that case. And I strongly suspect some players are trying to exploit that limitation by leaving as late as possible... which was already BM enough in the first place.

Also, a suggestion: I think it has already been discussed here, but since there are 2-3 bots running, maybe one of them could be "1000+ MMR" or something like that ?

From my experience, the games are for the most part very balanced and enjoyable, but there are two things that can really ruin a game: unknown players, and players with such low skill that no teamplay is possible (like, at all). 1000+ MMR games could be a great way to solve both issues. And I guess the bot dedicated to these games could still turn back to regular mode in case it struggles to find enough players.
D3AD-R3TARD
Profile Joined April 2020
Poland312 Posts
September 20 2020 18:34 GMT
#150
On September 19 2020 07:00 Grouhh wrote:
Show nested quote +
On September 18 2020 18:00 D3AD-R3TARD wrote:
For now what can be done is not leaving before hosting bot and asking eliminated players to leave.

Hi man, thanks for this awesome bot !

What happened to me once is that the loser refused to leave, so I waited until the bot leaves. But the loser waited too, and he managed to steal the win anyway. I guess the bot has no way to tell who is the actual winner in that case. And I strongly suspect some players are trying to exploit that limitation by leaving as late as possible... which was already BM enough in the first place.

Also, a suggestion: I think it has already been discussed here, but since there are 2-3 bots running, maybe one of them could be "1000+ MMR" or something like that ?

From my experience, the games are for the most part very balanced and enjoyable, but there are two things that can really ruin a game: unknown players, and players with such low skill that no teamplay is possible (like, at all). 1000+ MMR games could be a great way to solve both issues. And I guess the bot dedicated to these games could still turn back to regular mode in case it struggles to find enough players.



As for wrong results, I am currently testing solution that will base the winner on a results page, not on replay only. If this works, not leaving after losing all buildings will not affect anything.

As for 1000+ MMR games, I am still experiencing problems with running 3 bots at the same time. However, once I get it to work fine, the third bot could be limited to only ranked players or D+, C+ or something like this. There is not so many 1000+ MMR players so I don't know how often those matches would happen...
https://bghmmr.eu
Grouhh
Profile Joined May 2019
57 Posts
September 21 2020 19:25 GMT
#151
On September 21 2020 03:34 D3AD-R3TARD wrote:
As for wrong results, I am currently testing solution that will base the winner on a results page, not on replay only. If this works, not leaving after losing all buildings will not affect anything.
That's great news, thanks !

On September 21 2020 03:34 D3AD-R3TARD wrote:
As for 1000+ MMR games, I am still experiencing problems with running 3 bots at the same time. However, once I get it to work fine, the third bot could be limited to only ranked players or D+, C+ or something like this. There is not so many 1000+ MMR players so I don't know how often those matches would happen...
Well, maybe not 1000+ then, but you get the idea :-)
I also know there are some good players that are repelled by the BOT because as you rise through the ranks, you get less and less active teammates. From experience, at 2500 MMR, which is not even that high, the odds of getting at least one teammate that will do absolutely nothing during the whole game are substantial.

So I would not be surprised to see the pool of "good players" increase if the 3rd bot gets dedicated to them.
kurrrak
Profile Joined March 2020
Poland156 Posts
September 22 2020 20:16 GMT
#152
I'm reporting major backstabber whose nickname is 1+2-3+4-5+6-7+8. For me it happened 3-4 times with him, playing mmr or casual games. Also very bm the whole game. I didn't report earlier thinking that everyone can have a bad day, but it seems this case is incurable. Confirmation can be seen on replay from match played on 2020-09-22 22:03 (and probably many more).
Grouhh
Profile Joined May 2019
57 Posts
September 22 2020 20:34 GMT
#153
On September 23 2020 05:16 kurrrak wrote:
I'm reporting major backstabber whose nickname is 1+2-3+4-5+6-7+8. For me it happened 3-4 times with him, playing mmr or casual games. Also very bm the whole game. I didn't report earlier thinking that everyone can have a bad day, but it seems this case is incurable. Confirmation can be seen on replay from match played on 2020-09-22 22:03 (and probably many more).

Haha, yeah, that guy is also a very notorious BM team killer. Up to the point I always suspected he was Bossman himself under a different ID.
And he just can't stop talking trash during the game. Very annoying.
D3AD-R3TARD
Profile Joined April 2020
Poland312 Posts
September 23 2020 05:55 GMT
#154
On September 23 2020 05:16 kurrrak wrote:
I'm reporting major backstabber whose nickname is 1+2-3+4-5+6-7+8. For me it happened 3-4 times with him, playing mmr or casual games. Also very bm the whole game. I didn't report earlier thinking that everyone can have a bad day, but it seems this case is incurable. Confirmation can be seen on replay from match played on 2020-09-22 22:03 (and probably many more).


Confirmed and banned.
https://bghmmr.eu
kurrrak
Profile Joined March 2020
Poland156 Posts
September 23 2020 07:48 GMT
#155
On September 23 2020 14:55 D3AD-R3TARD wrote:
Show nested quote +
On September 23 2020 05:16 kurrrak wrote:
I'm reporting major backstabber whose nickname is 1+2-3+4-5+6-7+8. For me it happened 3-4 times with him, playing mmr or casual games. Also very bm the whole game. I didn't report earlier thinking that everyone can have a bad day, but it seems this case is incurable. Confirmation can be seen on replay from match played on 2020-09-22 22:03 (and probably many more).


Confirmed and banned.


Thank You.
Veps
Profile Joined October 2020
1 Post
October 05 2020 02:38 GMT
#156
Thanks for the bot.
I had a look into my stats and I wonder how do you calculate the MMR? I've noticed on some games a "random" player on the winning team just gains almost half 1k of MMR without noticeable reason while the rest just wins 75 points of MMR. While this guy, relatively to it's team mates, isn't the one with an extraordinary high initial MMR nor very low on MMR.

Also noticed similar effect on the negative side: While every team member has about 1k initial MMR and two of them lose about -75 points, one guy just loses -9 points. (Can send you the game dates via pm if needed.)

Is there some logic behind I didn't grasp or is it just a bug?
Jealous
Profile Blog Joined December 2011
10302 Posts
Last Edited: 2020-10-05 03:03:55
October 05 2020 02:53 GMT
#157
On October 05 2020 11:38 Veps wrote:
Thanks for the bot.
I had a look into my stats and I wonder how do you calculate the MMR? I've noticed on some games a "random" player on the winning team just gains almost half 1k of MMR without noticeable reason while the rest just wins 75 points of MMR. While this guy, relatively to it's team mates, isn't the one with an extraordinary high initial MMR nor very low on MMR.

Also noticed similar effect on the negative side: While every team member has about 1k initial MMR and two of them lose about -75 points, one guy just loses -9 points. (Can send you the game dates via pm if needed.)

Is there some logic behind I didn't grasp or is it just a bug?

Not the creator but I imagine it is due to "confidence interval" or a similar mechanic which gets narrower as you play more games. The easiest way I can think of to explain this is by walking through an example.

Let's say it is your first ranked game. You start at 1000 MMR, let's say. How good are you? Probably somewhere between 0 and 2000 MMR, but it's kinda hard to tell since we have no data. In order to most quickly arrive at your "true" rank, your early games get more points skew until you arrive at your "true" rank. So, if you win or lose the first game, you may gain or lose 100 points to bring you closer to your true rank. If you win or lose the second game, you can gain or lose 75 points, so on and so forth. That way, someone who has lost their first 5 games is likely closer to their "true" rank of being a 200 MMR scrub, and a pro who wins their first 5 games is closer to being 1700 MMR, or whatever. A person who wins 50% of their games will gain 100, lose 75, lose 50, gain 25, gain 12.5, and will end up at around the initial starting point, for example. Please note: all numbers are just to make a point, not how any actual system works; the numbers would depend on other players in the game, so it'd be closer to like win 99.2, lose 82.3, etc..

If each win/loss was a set amount of points, or just a weighted average of all players, then a player who is "actually" a 1700 MMR player would likely have to play a hundred games before getting even close to their "real" rank - and same can be said for the noob, who will ruin countless games by being overrated and placed on teams where they don't belong, so on and so forth.

Modern ranking systems use approaches such as these in very interesting ways. You may find this Wikipedia link interesting.
"The right to vote is only the oar of the slaveship, I wanna be free." -- бум бум сучка!
D3AD-R3TARD
Profile Joined April 2020
Poland312 Posts
Last Edited: 2020-10-05 06:25:56
October 05 2020 06:24 GMT
#158
On October 05 2020 11:38 Veps wrote:
Thanks for the bot.
I had a look into my stats and I wonder how do you calculate the MMR? I've noticed on some games a "random" player on the winning team just gains almost half 1k of MMR without noticeable reason while the rest just wins 75 points of MMR. While this guy, relatively to it's team mates, isn't the one with an extraordinary high initial MMR nor very low on MMR.

Also noticed similar effect on the negative side: While every team member has about 1k initial MMR and two of them lose about -75 points, one guy just loses -9 points. (Can send you the game dates via pm if needed.)

Is there some logic behind I didn't grasp or is it just a bug?


It's not a bug. What you see are most likely two groups of players.

Players with very big and very small (like 9 points) changes are players in first 4 placement matches. Other players are already ranked.

In first 4 matches MMR has to be quickly set to an appropriate level. For this APM is used along with initial custom game stats and match results. In case of a player with big gain he probably had poor custom game stats, but won the game and had good APM so system pushes his MMR up rapidly. In case of player with small change MMR gain from good APM was neutralized by APM drop caused by loss.

After 4 matches APM is no longer used and also MMR changes are less significant. As Jealous pointed out this method is used in most modern rating systems. Basically the more certainty there is about player's skill the less change is made after each game/result.

Overall, I think that ranking system is working pretty well, although I still think about ways to improve it.
https://bghmmr.eu
plaetschernderbach
Profile Joined April 2017
Switzerland2 Posts
Last Edited: 2020-10-08 20:34:21
October 08 2020 20:33 GMT
#159
Can't you not just use /stats of each user to decide which team has won.

Formula example: /s username A (after the game has ended) - /s username A (before the game has started)

You should end up with 1-0-0, or 0-1-0 or 0-0-1

Do you know what I mean?

Abuse Blizzard's WIN - LOSS Statistik. Its build in and free
SirGlinG
Profile Blog Joined January 2008
Sweden933 Posts
October 09 2020 02:34 GMT
#160
On October 09 2020 05:33 plaetschernderbach wrote:
Can't you not just use /stats of each user to decide which team has won.

Formula example: /s username A (after the game has ended) - /s username A (before the game has started)

You should end up with 1-0-0, or 0-1-0 or 0-0-1

Do you know what I mean?

Abuse Blizzard's WIN - LOSS Statistik. Its build in and free


Could be a good solution.
To handle those who stay at loss screen it'd require looking at the last player to leave, if he won or lost.
If the bot /stats searches the players before/during the game and then looks at stats of the last player to leave.
Not sure how quickly b.net stats updates but if it's within 2 minutes then no loser who stayed in the game can create a game and 4pool a quick win right after the game.
Not my chair. Not my problem. That's what I say
Prev 1 6 7 8 9 10 200 Next
Please log in or register to reply.
Live Events Refresh
OSC
18:00
OSC Elite Rising Star #18
SteadfastSC151
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Liquid`TLO 309
SteadfastSC 151
UpATreeSC 122
StarCraft: Brood War
Britney 9646
Backho 66
soO 23
Super Smash Bros
C9.Mang0156
Other Games
summit1g7793
tarik_tv4404
Grubby2055
shahzam388
mouzStarbuck357
ViBE27
Organizations
Other Games
gamesdonequick1819
BasetradeTV77
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 20 non-featured ]
StarCraft 2
• davetesta11
• Reevou 6
• Kozan
• sooper7s
• Migwel
• AfreecaTV YouTube
• LaughNgamezSOOP
• intothetv
• IndyKCrew
StarCraft: Brood War
• RayReign 42
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• masondota21162
• WagamamaTV703
• lizZardDota285
League of Legends
• Doublelift2392
Other Games
• imaqtpie727
• Scarra657
• Shiphtur118
Upcoming Events
Replay Cast
1h 50m
WardiTV Team League
13h 50m
Big Brain Bouts
18h 50m
Fjant vs SortOf
YoungYakov vs Krystianer
Reynor vs HeRoMaRinE
RSL Revival
1d 11h
Cure vs Zoun
herO vs Rogue
WardiTV Team League
1d 13h
Platinum Heroes Events
1d 16h
BSL
1d 21h
RSL Revival
2 days
ByuN vs Maru
MaxPax vs TriGGeR
WardiTV Team League
2 days
BSL
2 days
[ Show More ]
Replay Cast
3 days
Replay Cast
3 days
Afreeca Starleague
3 days
Light vs Calm
Royal vs Mind
Wardi Open
3 days
Monday Night Weeklies
3 days
OSC
4 days
Sparkling Tuna Cup
4 days
Afreeca Starleague
4 days
Rush vs PianO
Flash vs Speed
Replay Cast
5 days
Afreeca Starleague
5 days
BeSt vs Leta
Queen vs Jaedong
Replay Cast
6 days
The PondCast
6 days
Liquipedia Results

Completed

Proleague 2026-03-25
WardiTV Winter 2026
Underdog Cup #3

Ongoing

KCM Race Survival 2026 Season 1
BSL Season 22
CSL Elite League 2026
CSL Season 20: Qualifier 1
ASL Season 21
Acropolis #4 - TS6
RSL Revival: Season 4
Nations Cup 2026
NationLESS Cup
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual

Upcoming

2026 Changsha Offline CUP
CSL Season 20: Qualifier 2
CSL 2026 SPRING (S20)
Acropolis #4
IPSL Spring 2026
BSL 22 Non-Korean Championship
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
IEM Atlanta 2026
Asian Champions League 2026
PGL Astana 2026
BLAST Rivals Spring 2026
CCT Season 3 Global Finals
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.