Skip to forum
Midlife Crisis? Wha...
 
Notifications
Clear all

Midlife Crisis? What Midlife Crisis?

8,659 Posts
251 Users
37 Reactions
792.4 K Views
jules97
Joined: 10.06.2012
Oldschool Grinder

I had a quick look at the A:d7:s5:d flop.

I copied Janda's ranges, put them into CREV and then worked out how I'd play them. Pretty similar, a few small difference, like:
As CO I value raised a little less (1 set) so my x/c range is a bit stronger.
In both positions we chose similar hands to bluff and bet. I defended a bit wider.

Now comparing to JBMCCFR
Firstly, JBMCCFR is too long an acronym so I'm going with JBR.

It looks like JBR is cbetting that flop as UTG a heck of a lot, maybe around~90%?! (mine was ~35% :f_o: )
On a flop where CO has slightly better equity (and fairly even equity distribution) and position. Must suppress urge to immediately dismiss JBR as an idiot... :f_cool: :f_o:

JBR's UTG really only checks some flush draws or bdfd's sometimes. Seems a bit odd at first glance. If JBR isn't going to bet something, even strong PP's, it better damn well have a diamond in it.

CO folds 72% of the time against a cbet wit QQ's without a diamond. ANd 100% of pp's below without a diamond. JBR really likes flush draws here in both positions.

JBR as UTG is x/r'ing a merged, not polarized (which is what I'd say is standard) range, with 77's, half 55's and then a smattering of a whole heap of stuff, AK, KK, Q:dT:d, K:dT:d

JBR as CO facing a cbet doesn't really have a raising range.

So immediately the two things that stand out to me are:
-UTG's very high cbet%
-merged x/r range

About GUI

-An overview of entire rangess would be nice. So if the output of a node displayed a % breakdown of it's entire range, like x% bet, y% checked etc.
-It's now annoying to see what happened early, because once a new action is displayed for a player the previous one is erased and if want to quickly check previous range have to restart. It's kind of necessary to check what happened earlier given it's using mixed strategies a lot in this example, and its hard to have any idea with what % of combos it gets to the new node with.
-it eats ram like hotcakes


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by jules97
I had a quick look at the A:d7:s5:d flop.

I copied Janda's ranges, put them into CREV and then worked out how I'd play them. Pretty similar, a few small difference, like:
As CO I value raised a little less (1 set) so my x/c range is a bit stronger.
In both positions we chose similar hands to bluff and bet. I defended a bit wider.

Now comparing to JBMCCFR
Firstly, JBMCCFR is too long an acronym so I'm going with JBR.

It looks like JBR is cbetting that flop as UTG a heck of a lot, maybe around~90%?! (mine was ~35% :f_o: )
On a flop where CO has slightly better equity (and fairly even equity distribution) and position. Must suppress urge to immediately dismiss JBR as an idiot... :f_cool: :f_o:

JBR's UTG really only checks some flush draws or bdfd's sometimes. Seems a bit odd at first glance. If JBR isn't going to bet something, even strong PP's, it better damn well have a diamond in it.

CO folds 72% of the time against a cbet wit QQ's without a diamond. ANd 100% of pp's below without a diamond. JBR really likes flush draws here in both positions.

JBR as UTG is x/r'ing a merged, not polarized (which is what I'd say is standard) range, with 77's, half 55's and then a smattering of a whole heap of stuff, AK, KK, Q:dT:d, K:dT:d

JBR as CO facing a cbet doesn't really have a raising range.

So immediately the two things that stand out to me are:
-UTG's very high cbet%
-merged x/r range

I don't have an explanation for any of this. That's the thing about this sort of algorithm. It just gives you the answer. I'm very focussed on the computational issues at the moment, so I'm going to outsource the 'interpreting the results' part of this project to you if that's OK. I hope that goes better than outsourcing writing C++ to my PhD student, which was not a roaring success.....and I hope I don't have a bug somewhere! :f_eek:

About GUI

-An overview of entire rangess would be nice. So if the output of a node displayed a % breakdown of it's entire range, like x% bet, y% checked etc.
-It's now annoying to see what happened early, because once a new action is displayed for a player the previous one is erased and if want to quickly check previous range have to restart. It's kind of necessary to check what happened earlier given it's using mixed strategies a lot in this example, and its hard to have any idea with what % of combos it gets to the new node with.
-it eats ram like hotcakes

Overview of ranges: Good idea. I can add that.
Back button: Already thought of that. I will add one.
Ram: :f_eek: It doesn't use that much RAM when it's calculating the solution, never mind exploring it in MATLAB. I hope this isn't some ghastly inefficient feature of the MATLAB Runtime Environment. I will check that out later. Number two son is currently sat on my laptop shooting people as a reward for finally having caught up with his homework yesterday.

If Spurs had a different keeper, we'd have lost about 5-1 to the Arse yesterday, at least if what I saw on MOTD is to be believed. :f_mad:


Reply
Quote
mineriva
Joined: 30.04.2008
PokerStrategist

I finally got to this. I downloaded but got an error in installing.

"not a valid Win32 application"

will try on other pc


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by mineriva
I finally got to this. I downloaded but got an error in installing.

"not a valid Win32 application"

will try on other pc

Probably has to be 64 bit.

I managed to get number two son off my PC. I had a look at the memory issue, and the problem is that every time the Start button is pressed, it relaunches the gui and fills up some more RAM. I've fixed this, but not uploaded it yet, because I want to add a back button. I've almost done this, but mrsjb is trying to write an essay opposite me and said 'Are you going to be click, click, clicking for much longer?' Looks like I'd better finish it later. In the meantime, just don't press the Start button more than once before you get to showdown.


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

It's midnight, and I just finished making all the changes to my gui. Adding a back button was a fucking nightmare. I get UTG's overall cbetting range to be 12% in Janda hand 1, and CO defends 62% of his range. I'll check it all tomorrow lunchtime and try to get a revised version out.


Reply
Quote
jules97
Joined: 10.06.2012
Oldschool Grinder

Originally posted by jbpatzer
I'm very focussed on the computational issues at the moment, so I'm going to outsource the 'interpreting the results' part of this project to you if that's OK. I hope that goes better than outsourcing writing C++ to my PhD student, which was not a roaring success.....and I hope I don't have a bug somewhere! fish eek

I'll do my best, but you get what you pay for... :f_grin:

Originally posted by jbpatzer
It's midnight, and I just finished making all the changes to my gui. Adding a back button was a fucking nightmare. I get UTG's overall cbetting range to be 12% in Janda hand 1, and CO defends 62% of his range. I'll check it all tomorrow lunchtime and try to get a revised version out.

Ah yes, I messed it up good. I see now. I might need an idiot proof fold/check/raise on the GUI instead of numbers... :f_cry:

Anyway, I believe that's good news. Both for JBR and my ego... I think. It looks right and I was right.... but I can't read.
At least JBR and I are on the same page now.

So replacing what I thought were bets with checks. JBR is cbetting a strong valueishy merged range for value and with the weaker equity hands it heavily favours bdfd's.
This makes a lot more sense to me.

Firstly regarding the small cbet %, I think recently we've started to see a lot of guys cbet low %'s in these spots. Some check their entire range. So I'm happy to see that this idea is on the right path. Many don't, but I think they're wrong :f_cool: and have very exploitable checking lines. I knew the ~35% cbet I went with was a little high, but thought I could bet for value a little thinner than JBR and still have somewhat balanced checking lines. Beforehand I would have guessed it would come up with something around 20%. So perhaps there is a bigger edge here in current games than I thought.

The main difference here between JBR and humans is the slightly mergedish ranges (with bdfd's) it bets with. But given this example cbet is a very small % perhaps it's better to wait a bit before making too many conclusions.

Most humans usually bet more polarized ranges. I believe because polarized ranges are a hell of a lot easier to play. Both in balancing the range at the action (balancing merged ranges is hard zomg... I need some game theory expert to release some content on this) and then later on in the hand when one has a mid strength hand and is rather clueless in a tough spot. I suppose while clueless one would at least have the advantage having their opponent clueless too.

The bulk of JBR's x/r range on the flop is similar to janda'/mine. It's a little bit narrower, which is no surprise. And the construction is very similar, with the bulk being stuff like sets, set blockers, some fd's & then some hands with good equity against CO's x/f range, like 88-KK with a diamond . Then there's a small small % of stuff like Ak-AJ (especially with bdfd's) which I don't often see in humans. I really don't know what to make of it. It is only a small part though.
But I'm really interested to see how it chooses to construct raising ranges in particular in other scenarios.

On a completely different note I woke up today to some koala intestines and an perfectly intact heart sitting out the back door. Reminded me of that scene from Indiana Jones where the bad guy rips out a still beating heart in a human sacrifice. The poor guy stumbled into the wrong side of town.
There's now 2 malamutes out there after my sister's dog who is temporarily vacationing with me after he escaped and ate a neighbouring sheep & alpaca. Koala never had a chance. The kill count is rising...


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by jules97
On a completely different note I woke up today to some koala intestines and an perfectly intact heart sitting out the back door. Reminded me of that scene from Indiana Jones where the bad guy rips out a still beating heart in a human sacrifice. The poor guy stumbled into the wrong side of town.
There's now 2 malamutes out there after my sister's dog who is temporarily vacationing with me after he escaped and ate a neighbouring sheep & alpaca. Koala never had a chance. The kill count is rising...

Our cat does similar stuff all the time.

New version of code uploaded to

https://drive.google.com/folderview?id=0BzxBAPz7tbHNNGQxVU5lVWhxblk&usp=sharing

If you've copied the data files elsewhere, please use the versions currently on Google Drive, as the old ones are missing some information needed to run the latest version. And you can create a desktop shortcut safely now.

Feedback please!

:f_biggrin:


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Found a bug. Updated version uploaded. I also added something that removes hands from the player's range if the GTO solution says he doesn't take a given action with that hand. This is v useful I think.


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Just back from the first lecture of term. Had a look at my new gui to cheer myself up. I'd have to say, with characteristic modesty, that it's pretty awesome now that you can see only the hands that make it to the next street. :megusta:

To do list
----------
1) Compute some more solutions.
(Currently running the BB3betvUTGcall range on 6h7h8c - breaking news, BB cbets every hand! - and will do all Janda's example hands).
2) Change storage method so that I can do bigger game trees. (And try to run it on one of our big machines)
3) Keep tuning gui and code. (Lots of tidying up to do there)


Reply
Quote
jules97
Joined: 10.06.2012
Oldschool Grinder

Downloaded the latest, seems to be working fine.

I'd have to say, with characteristic modesty, that it's pretty awesome now that you can see only the hands that make it to the next street. Me gusta

I don't understand what this?

I noticed JBR doesn't have the new "In total" line at the top on the turn.

Even with the back button, it's still annoying to not be able to see what % of hand it gets to the turn with. It would be nice if there was something like another % to the far right or left of the main ones that let us know what total % of combos it got there with or alternatively what total % this/these combos make of the current range at that node.

I went over couple of different turns on the A:d7:s5:s 3/4. Nothing too unusual I didn't think. Very balanced with flushes. A little more aggressive with straight draws. But this is probably because they have less showdown value/equity, given they are mostly lower cards &/or not made hands on the turns I used.

6:h7:h8:c
That BB v UTG 3b range is a bit odd, to be nice. UTG's a little tight.
I'm not terribly surprised it's cbetting everything given half the range is AK, KK-AA and all those suited connectors in BB's range hit that pretty hard. BB's range has 64.6% equity on that flop. Which is just about the highest I can remember seeing. The equity distribution is similarly lopsided. This looks to me like a good example, of how important it is to know what retarded preflop range ones opponent is using! :f_cool: If their preflop ranges are funky then funky postflop play for them could be optimal!

It is interesting that JBR chooses to pot it half the time. WIth a range of what I think looks to be nut hands that have a chance to be outdrawn (like 2p) and some other stuff. And then when UTG sees this, he folds 70%, calls a bit and Jams 6%!! TT and A:hQ:h, BB then calls with KK's & AA's and 2p it has. I suppose jamming here stops BB from betting larger with more hands on the flop, allows UTG to call less on the flop and folds out some equity of BB's b/f range. Must all be pretty thin, but interesting none the less.

Oooh and I just importted 300K hands of Tartanian7 from the ACPC... This should be interesting... _pleased:


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by jules97

I'd have to say, with characteristic modesty, that it's pretty awesome now that you can see only the hands that make it to the next street. Me gusta

I don't understand what this?

For example, if you load the 6h7h8c data file, you'll see that the GTO solution for Player 1 is to bet pot with 44 with no heart. If you choose to bet half pot, you'll see that these hands disappear from Player 1's strategy. Click 'Enter' then 'Back' and repeat a few times. This happens on every street, and often there aren't many hands left by the river. It wasn't doing this before. I have however noticed that it's not doing this on the action before a new card, but waits until after the card is entered. I'll fix that in the next release.

I noticed JBR doesn't have the new "In total" line at the top on the turn.

Even with the back button, it's still annoying to not be able to see what % of hand it gets to the turn with. It would be nice if there was something like another % to the far right or left of the main ones that let us know what total % of combos it got there with or alternatively what total % this/these combos make of the current range at that node.

Yes. I just added that on the flop. I wasn't entirely sure what would be best on later streets, so I didn't put anything. So you think total % of hands that make it to the next street? It's not obvious, because many hands are played with a mixed strategy. For example, if AKo is raised half pot 45% and full pot 55%, how does that affect the total % I display on the next street?

I went over couple of different turns on the A:d7:s5:s 3/4. Nothing too unusual I didn't think. Very balanced with flushes. A little more aggressive with straight draws. But this is probably because they have less showdown value/equity, given they are mostly lower cards &/or not made hands on the turns I used.

6:h7:h8:c
That BB v UTG 3b range is a bit odd, to be nice. UTG's a little tight.
I'm not terribly surprised it's cbetting everything given half the range is AK, KK-AA and all those suited connectors in BB's range hit that pretty hard. BB's range has 64.6% equity on that flop. Which is just about the highest I can remember seeing. The equity distribution is similarly lopsided. This looks to me like a good example, of how important it is to know what retarded preflop range ones opponent is using! :f_cool: If their preflop ranges are funky then funky postflop play for them could be optimal!

It is interesting that JBR chooses to pot it half the time. WIth a range of what I think looks to be nut hands that have a chance to be outdrawn (like 2p) and some other stuff. And then when UTG sees this, he folds 70%, calls a bit and Jams 6%!! TT and A:hQ:h, BB then calls with KK's & AA's and 2p it has. I suppose jamming here stops BB from betting larger with more hands on the flop, allows UTG to call less on the flop and folds out some equity of BB's b/f range. Must all be pretty thin, but interesting none the less.

I'm glad it's all still looking sensible. I chose the 6h7h8c flop because it so clearly exposes the weaknesses of UTG's calling range, but I didn't expect it to be quite so disastrous for him.

I keep meaning to add in a subroutine to calculate the value of the GTO strategy to each player. It's not hard, but I didn't do it before because it was so slow. Should be very fast in C++. You have to visit every node of the game tree, for every combination of hands, turns and rivers. It's something I can postprocess and tack on to the current data files. I'll add that to my list and do it this week.

Oooh and I just importted 300K hands of Tartanian7 from the ACPC... This should be interesting... _pleased:

Yes. Tell me about its bet sizings. Last night I downloaded a load of Sandholm's papers from the last couple of years to see what I've missed and get some ideas for efficient choice of bet size. _evil:


Reply
Quote
dooleslovs
Joined: 17.02.2011
BlackMember

Hi. Are you trying to make something like pokersnowie? And did you try testing some pokersnowie ranges?


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by dooleslovs
Hi. Are you trying to make something like pokersnowie? And did you try testing some pokersnowie ranges?

I've started another thread about the code in case other people start getting interested. All the information's in my blog, but it's probably a bit spread out.

HU Postflop GTO software (JBMCCFR)

Pokersnowie tries to find a good strategy for multiplayer poker, which is too hard imo, and a static preflop strategy can never be correct for reasons that I go into in the other thread.

With regard to pokersnowie ranges, they're generally quite wide, and the wider the range, the longer the calculations take, so I've started tight and will start to expand ranges as I tune the code.


Reply
Quote
jules97
Joined: 10.06.2012
Oldschool Grinder

I noticed JBR doesn't have the new "In total" line at the top on the turn.

Even with the back button, it's still annoying to not be able to see what % of hand it gets to the turn with. It would be nice if there was something like another % to the far right or left of the main ones that let us know what total % of combos it got there with or alternatively what total % this/these combos make of the current range at that node.

Yes. I just added that on the flop. I wasn't entirely sure what would be best on later streets, so I didn't put anything. So you think total % of hands that make it to the next street? It's not obvious, because many hands are played with a mixed strategy. For example, if AKo is raised half pot 45% and full pot 55%, how does that affect the total % I display on the next street?

Yeah thats what I'm trying to get at. It's pretty confusing to work out what's going on with the mixed strategies sometimes once we get a few nodes deep. I don't know the best way to deal with this.

For the turn 'in total' line, I definitely think that the total hands that make it to that street/node make the most sense. When it has a mixed strategy, so like say in your AKo example, it gets to the new half pot node with 45%, couldn't you just add 45% of the AKo to the 'in total' and leave the other 55% out for the other node?

I keep meaning to add in a subroutine to calculate the value of the GTO strategy to each player. It's not hard, but I didn't do it before because it was so slow. Should be very fast in C++. You have to visit every node of the game tree, for every combination of hands, turns and rivers. It's something I can postprocess and tack on to the current data files. I'll add that to my list and do it this week.

If it's easy, it may be worth doing this for each pair of hole cards too. GTROB does this. It's not super important, but I think it would be more useful in your program, because seeing the EV's of a range preflop range that one can change is more important than seeing the range one is stuck with seeing a river with.
It may also help decipher how it's using some of it's hands.

Re: Tartanian7 bet sizes

With flop bets, in single raised and 3b pots, appears to be the same.

It has betsizes in multiples of 25% pot when making a potsize bet or or below. There are a lot of 1/4 pot sized bets, overbets are a little more rare than the other sizes, but still happen somewhat frequently.
Of the times it bets up to potsize (~90% of the time):

1/4 pot ~40% of the time
1/2 pot -38% of the time
3/4 pot ~14% of the time
pot ~8% of the time

And then above pot, 1.5 seems to be the most common overbet a little more than 2/3 of the time when overbetting, 1/3 of the time a 2x overbet. Only one, 1/1000 4x overbet! Cbetting 9:s8:s 4x pot on Q:cJ:c6:s fwiw


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by jules97

I noticed JBR doesn't have the new "In total" line at the top on the turn.

Even with the back button, it's still annoying to not be able to see what % of hand it gets to the turn with. It would be nice if there was something like another % to the far right or left of the main ones that let us know what total % of combos it got there with or alternatively what total % this/these combos make of the current range at that node.

Yes. I just added that on the flop. I wasn't entirely sure what would be best on later streets, so I didn't put anything. So you think total % of hands that make it to the next street? It's not obvious, because many hands are played with a mixed strategy. For example, if AKo is raised half pot 45% and full pot 55%, how does that affect the total % I display on the next street?

Yeah thats what I'm trying to get at. It's pretty confusing to work out what's going on with the mixed strategies sometimes once we get a few nodes deep. I don't know the best way to deal with this.

For the turn 'in total' line, I definitely think that the total hands that make it to that street/node make the most sense. When it has a mixed strategy, so like say in your AKo example, it gets to the new half pot node with 45%, couldn't you just add 45% of the AKo to the 'in total' and leave the other 55% out for the other node?

I'll do something along those lines then.

I keep meaning to add in a subroutine to calculate the value of the GTO strategy to each player. It's not hard, but I didn't do it before because it was so slow. Should be very fast in C++. You have to visit every node of the game tree, for every combination of hands, turns and rivers. It's something I can postprocess and tack on to the current data files. I'll add that to my list and do it this week.

If it's easy, it may be worth doing this for each pair of hole cards too. GTROB does this. It's not super important, but I think it would be more useful in your program, because seeing the EV's of a range preflop range that one can change is more important than seeing the range one is stuck with seeing a river with.
It may also help decipher how it's using some of it's hands.

I'll add in preflop bucket v range and range v range. Bucket v bucket or hand v hand is easy enough, and I'll start by calculating that, but building it into the gui would be tricky I think.

Re: Tartanian7 bet sizes

With flop bets, in single raised and 3b pots, appears to be the same.

It has betsizes in multiples of 25% pot when making a potsize bet or or below. There are a lot of 1/4 pot sized bets, overbets are a little more rare than the other sizes, but still happen somewhat frequently.
Of the times it bets up to potsize (~90% of the time):

1/4 pot ~40% of the time
1/2 pot -38% of the time
3/4 pot ~14% of the time
pot ~8% of the time

And then above pot, 1.5 seems to be the most common overbet a little more than 2/3 of the time when overbetting, 1/3 of the time a 2x overbet. Only one, 1/1000 4x overbet! Cbetting 9:s8:s 4x pot on Q:cJ:c6:s fwiw

Quarter pot increments has always been what I've had in mind, so it seems I'm in good company..... _biggrin:

They probably always have jamming as an option too, which may well be the 4x pot bet. Sounds like they use 0.25, 0.5, 0.75, 1, 1.5, 2 and AI as their sizes, which sounds very reasonable. As I said before, small bets are the bastards, because they grow the game tree so much.


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Much improved version posted.

Details here.

HU Postflop GTO software (JBMCCFR)

I'm going to bed now before mrsjb comes downstairs and kills me.


Reply
Quote
jules97
Joined: 10.06.2012
Oldschool Grinder

Originally posted by jbpatzer
Quarter pot increments has always been what I've had in mind, so it seems I'm in good company..... _biggrin:

They probably always have jamming as an option too, which may well be the 4x pot bet. Sounds like they use 0.25, 0.5, 0.75, 1, 1.5, 2 and AI as their sizes, which sounds very reasonable. As I said before, small bets are the bastards, because they grow the game tree so much.

Yeah, it's rather annoying from my point of view too. :f_frown: I've spent some effort working with and becoming familiar with ranges of larger betsizes. But it looks like this is one area that some hard work may pay off. Not only because it will have slightly more EV, but also exploitably there will be some terrible adaptations to these small bet sizes.

Unfortunately we can't see exactly what Tar7 is doing with it's ranges with smaller betsizes when we can only see one hand being played. Can make some educated guesses, but I think there will be a lot to learn once we can see entire ranges at smaller betsizes with JBR.


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by jules97

Unfortunately we can't see exactly what Tar7 is doing with it's ranges with smaller betsizes when we can only see one hand being played. Can make some educated guesses, but I think there will be a lot to learn if we can see entire ranges at smaller betsizes with JBR.

FYP


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Originally posted by jbpatzer
Much improved version posted.

Details here.

HU Postflop GTO software (JBMCCFR)

I'm going to bed now before mrsjb comes downstairs and kills me.

Apparently the latest version didn't upload from my laptop last night, and my laptop's at home. :facepalm: I'll have to upload it when I get home. :f_mad: In the meantime, I've uploaded the data for Janda hand 2 (7K iterations looked like it was plenty).


Reply
Quote
jbpatzer Topic starter
jbpatzer
Joined: 23.11.2009
Oldschool Grinder

Just played two Spin and Go (my iPad autocorrected that to Sin and Go - maybe it knows better than me) SNGs on Stars, while waiting for my dinner to appear. So much fun. I am the archetypal recreational player, and proud of it! :f_cool:


Reply
Quote
Share: