-
-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider a fix for the Docking Ports on KSP 1.12 - and a lot of similar issues since KSP 1.2 #27
Comments
First attempt on commit f590b7f |
Moar data: Unfixed bug on bugtraker: https://bugs.kerbalspaceprogram.com/issues/28311 Sample craft: DriftTimeWarpBug.zip |
I completely misunderstood the problem (as usual). The problem happens under stress, not at rest. |
I do not aim to fix the thing, I'm focused only on undo the bad deeds. So apparently I'm not too far from the right direction. I need to understand where is the point in which things goes down to the tubes. Once I detect this sweet spot, I can undo it later once the TimeWarp is unapplied. Let's see what I get later once I get some sleep. :) |
Oh, well… Apparently I was ran over by a KSP Dev. :) https://github.com/JPLRepo/FixDockingNodes/blob/master/FixDockingNodes.cs However... Inheritance in KSP is terribly flawed, not only a lot of critical code is using the class name (instead of checking inheritance), but also the way things are loaded and saved gets messed up, completely screwing up the savegame. |
So I did this test:
This is the Module section of one of the parts:
Note the QuickSave: quicksave.zip |
Second test.
quicksave: quicksave.zip The is the respective module section:
Note the Everything on this module section was recreated from scratch, as the entire section is ripped off and a new one is injected. On every part on every craft on the savegame. |
TL;DR : Using https://github.com/JPLRepo/FixDockingNodes is destructive. All your savegames wil have the And all your savegames will have it reset again if the FixDockingNodes is not installed (or the DLL does not loads by any reason). Technically, I will not use it, and I'll probably have to write a note about it on KSP-Recall thread. |
There's something else I didn't considered (but someone else did) https://github.com/search?q=HAS%5B%40MODULE%5BModuleDockingNode%5D%5D&type=code Every legacy add'on that supports ModuleDockingNode is going to need to be reworked to cope with the It's one more problem to be worried about. |
On the bright side, migrating savegames from KSP 1.11 didn't added any new considerations. Neither from 1.10. I will skip 1.9 and 1.8 by lack of time, but there's a pretty good chance that they will work fine. I think that migrating savegames from 1.7 may be problematic (it was for people extending the |
I found this (KSPCommunityFixes, also on Forum). This one is promising, it does not present any of the problems I described here. And it plays nicely with KSP-Recall, so in essence I have absolutely no reason to pursue this problem on Recall. I'm considering pinpoint it on a Warning on startup. I will think on it for a couple days and then I will take a decision and implement it. EDIT: it was pinpointed on Forum that |
Oukey. Found something pretty serious now. This problem was misdiagnosed! It's not enough that the "fix" from the Developers created lot of collateral effects, and ended up in drama! The whole premisse is at fault!!! #facePalm The root problem is not related to the ModuleDockingNode, it's something that changed on KSP guts while dealing with part's deformation, and it affects everything - the PartModule itself, and not only the ModuleDockingNode or even the Robotics! This changed happened on KSP 1.8.0 probably (I tested it down to 1.8.1, as I don't have a 1.8.0 test bed available anymore. The following posts will demonstrate the problem. |
So, this is the test craft: And this is the craft file: Untitled Space Craft.craft.zip Once launched, the fuels tanks will bounce crazily, deforming the craft: By hitting Stage, the fuel tanks will be ejected, and we will have a deformed craft!! Note how the docking ports were affected (and this is 1.8.1, way before the Rotating Docking Node on KSP 1.12!!). |
This is the same test craft on KSP 1.12.3, where allegedly the ModuleDockingNode was "fixed": And on launch: And after staging: Same thing - even worse…. :( Test Craft: Untitled Space Craft.craft.zip |
And, finally, the same test on KSP 1.7.3, the last version where things worked fine: After Staging: And everything is fine: Test Craft: Untitled Space Craft.craft.zip |
Nope. If you launch the craft using the launchpad, without using the editor to load it, the craft is launched all right. Whatever is happening, happens only on Editor. But the scaling code is the same for both scenarios.
What I think it's happening is the Editor, when merging a craft or subassembly, is shoving back prefab data on the craft being loaded instead of trusting the values on the craft file. And since TweakScale's code was made relying on the data of the craft file, the code ends up recalculating the positions wrongly, because the data it relies is not reliable anymore.
If you had spent some time reading things here, you would had found that I already had stablished that. EDIT: yes, I'm cranky about this issue. you are clearly spending time trying to help, but sometimes you jump into conclusions in a way that it's not productive, and simetimes this affects my temper.
On the other hand, in order to this be an TweakScale issue we would need to explain why it was working until KSP 1.7.3 - and what changed on KSP on 1.9.0 in order to induce TweskScale to misbehave. It's interesting to note that TweakScale DID NOT misbehaved on KSP 1.8.1. Things started to happen on 1.9.0. Again, hardly to just rule TweakScale is at fault, as the same code works fine even on 1.8.1. EDIT: Found a place where this can happen, and it targets KSP 1.9 specifically. Without understanding EXACTLY what changed on 1.9.0 to induce the problem, there's no ground to pinpoint TweakScale as the source of the problem. Granted, doesn't rules it out neighter. |
Lines are being crossed here, and I think this is start to create confusion. We have the TweakScale problem, that I think it's not TweakScale and something that was unduly changed on KSP 1.9.0, probably to patch up some other unduly change. And we have this another troublemaker, the parts being unduly deformed. The problem on TweakScale happens only on Editor. The problem with the parts being unduly deformed happens, obviously, only on Flight Scene. There can or cannot be some relation between them, but since TweakScale started to misbehave on 1.9.0, when a lot of changes happened on KSP due the changes on KSP 1.8.x, I'm working with the theory these misbehaviours can be related. If I'm right, I need t be careful about what I do on TweakScale, otherwise I will screw up living crafts once the savegame is loaded. The problem on Editor is a pain in the ass, but it's not a savegame corrupter - I do the wrong thing here, I will corrupt savegames. And THIS is the reason I'm terribly cranky about this issue. |
The point I was making is that this has nothing to do with docking ports or the kind of deformation issues that you can see with 1.12 docking ports or BG robotics (since the deformation is actually purely in-physics, and not propagated to orgPos/orgRot). And I was pointing the fact that since your craft file show this issue in a stock install, this mean TweakScale is borking some of the stock data at the VesselConstruct level. Said otherwise, TweakScale is altering some stock data in an unsupported way. Also, when loading that craft in a stock install, I get very strange and unstable behaviors, like the camera target being offset, or the craft shifting positions when engaging non-phys timewarp. All this point to the some of the persisted craft data being in an unsupported state, due to some plugin altering it in an unsupported way. |
Again, NOT. You are misunderstanding cause and effect. There's not a PartModule for deformation, if you load a craft and the parts are incorrectly placed, you have someone mangling with the positions.
As I said, you are jumping into conclusions. EDIT: and there's a chance I'm too
The Camera Target is offset because it was calculated based on the size of the craft while saving the file. Once you remove TweakScale, the total size (and mass) of the craft will obviously change, so obviously any data that relies on this size need to be recalculated. What's not happening. Again, not a TweakScale issue - TweakScale can't be responsible for what happens when it's unduly uninstalled! |
DAMN. I managed to create a situation where the deformation is not happening after staging even with TweakScaled parts. ON THE SAME FREAKING INSTALMENT, ON THE SAME FREAKING SAVEGAME. BOTH OF US are wrong. Or, at least, not that right. This is the craft file that behave as expected: Untitled Space Craft 2.craft.zip What I can be sure I know by this point:
Since this testbed doesn't have anything installed by KSP-Recall and TweakScale (besides the usual scaffold: KSPe, MM e PartInfo), this still suggests KSP as the probable cause of the problem, as I still can't reproduce the issue on KSP 1.7.3 (and I'm trying). |
So what changed between 1.7 and 1.8? |
@staticalliam7
For starters, they changed from Unity 2017 to 2019. A lot of changes on the physics engine's behaviour is due that. But this is not what's affecting us right now - at least not directly, we may be facing a bug introduced while writing the new support on some key handlers. Right now, we are dealing with a change somewhere on the KSP's guts that under certain circumstances is deforming the craft. My previous guess was an intentional change on something that runs when you change the craft part count or something like that (let's call this, for while, as " Right now, my current working theory is an unintended change somewhere else that may be exploding an exception on the mentioned code (or perhaps someone that calls it). So the exception handler is missing something, or the exception handler itself is missing, leading to the premature closure of the thread. I suspect that such premature closure or missing exception handling can be happening also on KSP 1.7.3, but since pre-1.8.x KSP apparently does not changes the parts' position at Flight Scene, whatever was happening was not immediately visible. From KSP 1.8.x, some code is changing the parts' position at Flight Scene and so from 1.8.x the missing/borking handler is starting to bite! It was by plain luck, but right now we are in a INFINITELY better position than before: we have two test crafts, one that borks and another that doesn't on the very same savegame on the same KSP installment. And the crafts are pretty similar, using almost the same parts, so it's feasible to eyeball them looking for differences while trying to break the good one and to fix the broken one. Once we manage to do that, we will know exactly what is the trigger of the problem, and knowing exactly what this trigger are, we can try to zero in on the perpetrator. |
1.8 was a pretty bad version update. my bug reports for it totalled over 30 (or 40) over the space of 1.8.0 and 1.8.1 I wouldn't be surprised if was the cause of a lot of unexpected things. (encounters was one of them. went from working ok to being much worse, even to this day) Here's a few more bug reports relating to crafts being deformed. https://bugs.kerbalspaceprogram.com/issues/28159 (Docking crafts on the ground can be displaced/twisted permanently) The deforming recovers in 1.11.2 but doesnt recover in pre 1.12.3 |
The deformings on this issue are not recovering on 1.12.3. Whatever the problem is, Squad work around it by shoving a call that "undo" the deforming everywhere they found this is happening, instead of fixing the source of the problem. The aftermath is that they didn't found every possible place where the deforming is "leaking" - they just patched the most obvious places, and left the rest as is. We manage to find the source of the deformations, we fix the problem for good. |
I am such person and almost everything you said is wrong. Especially that :
Original positions are only being updated by robotics partmodules, by 1.12.0 to 1.12.2 docking ports partmodules, and by 1.12.3 unlocked docking ports, but that's it. Again, whatever issue that craft file is causing, it is entirely unrelated to orgPos/orgRot updates. And again, the bug you encounter is caused by a plugin messing around. Yes, something changed between 1.7 and 1.8, causing your 1.7 code to be incompatible with 1.8+. I won't spend any time investigating it, since I don't really care, but I've seen enough to be certain that the actual issue is this :
Since you have two crafts, one that work and one that doesn't, I would suggest to closely compare the craft file persistent data. There has to be something different here, that will maybe point you at what that incorrect data/state is more precisely. But frankly, you won't be able to fix that one by punching at random things in the dark like you usually do. Give yourself the psychological freedom to analyze the KSP source code. Nobody cares. |
Unfortunately, you are also the person that can't tell cause from effect.
So please explain why the test crafts are having the parts deformed even after uninstalling TweakScale on KSP 1.8.1, but not on KSP 1.7.3. Without any hint about how and why this is happening, there's no other line of investigation other than considering KSP doing itself the trouble.
Exactly. And since the TweakScale's code is exactly the same for KSP 1.7.3 and KSP 1.8.1, the only variable now is the KSP itself - what, again, suggests I'm right on this line of investigation. For you being right, KSP 1.8.1 should had stopped doing something it was doing in the past and that was beneficing TweakScale somehow - what's, again, a change on KSP. It may be something like checking for Zero Mass as KSP start do on 1.5 or 1.6, and that was suddenly removed. It's a possibility, but then we would need to explain why the very same parts are working on a craft file and not on another. Same Parts, same TweakScale code, same TweakScale Exponents. The only variable is KSP - one craft file borks on KSP 1.8.1 but not on KSP 1.7.3. And on the bottom line, it's that simple.
Your lack of communication and social skills are notorious, and already had However, "punching random things" are definitively a huge misjudgment of yours - a misjudgment that tends to erodes any chance of successful collaboration since you consistently insists on a line of arguing when every presented evidence suggests you are wrong - or at least, not entirely right. Had we at least one example on this misbehaviour under KSP 1.7.x or earlier, I would be spending more time on your line of investigation - but the evidences I have suggest exactly the opposite, and I'm investing my time on the evidences I have at hands now. Remember: unscalled parts are being deformed too, and I'm damned sure TweakScale can't be doing anything on them because the Module is disabled when not needed. It's just that simple. Even by reading the source code, I need to know first where to read. This is a misbehaviour on KSP (being it induced by 3rd parties or not), and you will not find a code calling |
Am I missing something, or does tweakscale keep causing issues? |
You are missing the whole thread. TweakScale is, at best, the screaming victim and, at worst, the trigger for a problem that, until the moment, everything pinpoints to be something that changed on KSP on Release 1.8.x, as the problem just doesn't happens on 1.7.3 and before.
Already done it. See above. The problem was reproduced the same. The thing is that I have ONE test craft where the problem happens, and another one where it doesn't. And since I was testing TweakScale when I triggered the problem, both test crafts have Tweakscale. I didn't managed to create a new craft, with or without TweakScale, where the problem happens. So I'm trying to mangle one of the test crafts to match the borking one, and since the borking one uses TweakScale, I'm using it too on the new one. The only way to definitively rule out TweakScale (or realise exactly what's borking on it, in the case I'm wrong) is to reproduce the problem deterministically with or without TweakScale. My current task is to take the working craft and somehow induce it to break. Until the moment, mangling with TweakScale module's data DID NOT reproduced the problem. The "version 3" of the working craft has now exactly the same parts the borking one uses, using exactly the same data from the respective TweakScale Modules. And yet, the "new craft" doesn't borks. |
Well… Just realised that the Version 3 was not exactly equal - I was using the TS-12 Stack separator instead of the (used on the borking craft) TD-12 Decoupler. Version 4 of the subject craft now uses the TD-12 - but the (good) behaviour didn't changed. Still Work In Progress. |
And just for the peace of mind, I just reproduced the problem using the original borking craft file. I had to reboot the computer today, and suddenly I remembered a terribly weird issue a fellow Kerbonaut had with Module Manager that I reproduced and documented, just to have the misbehaviour vanished from the surface of Kerbin after rebooting the machine (an obviously uninitialised memory somewhere, I'm guessing on the Mono runtime). So I thought it could be a good idea to check that craft again, just in case. Well, at least the thing misbehave the same - so it's still something that we can, eventually, try to fix once we figure out the damned problem. |
Ohhh ok. |
ERRATA The following statement of mine, quoted from a post of mine above, is UNFAIR. GotMachine was the trigger of the problems, the cause was some "Lead Engineer" that was unable to cope with criticism and probably jealously.
He, indeed, has some problems on his communication skills that ended up triggering a situation - but as can be easily noted, so do I. My apologies, I will try to control my verbiage and avoid such mistake again. |
I have no intent of collaborating. I stumbled upon your forum post, and decided to test your "borking" craft file myself. Mainly because I did a fair bit of research on the whole part position drift issue, and because you were making a link between your tweakscale issue and the drift issue, and I wanted to see for myself. I could have let you alone with your mess, but I figured I should at least warn you that some of your hypothesis were wrong, and give you my opinion on what the actual issue is.
Even if it feels pointless, I will repeat a third time : because TweakScale alter the stock data in the editor. Resulting in that data being incorrect when the stock KSP code parse it in the flight scene. Yes, something probably changed between 1.7 and 1.8. I can only guess, my my take on this is that TweakScale always did something vaguely wrong/unsupported, but it didn't affect a critical stock code path until 1.8. And unless you're able to reproduce that issue with a craft that was designed in the editor with a 100% stock install, that's the only possible explanation. Now, I will see myself out to stop annoying you with my terrible social skills. |
JESUS <insert your favorite non github aproved expletive here> CHRIST. It's the AUTO-STRUTS. I was so focused on the TweakScale and PartModule data in order to get gotmachine's hypothesis out of my way, that I forgot to look on the other Modules!!! The diference between the working craft and the broking craft is that the Truss and the 3 M-Beams are using AutoStrut to Grand-Parent on the borking craft, and no Auto-Struts at all on the working one! I managed to induce the Version 4 of the (good) test subject craft to bork by applying Auto-Strut to GrandParent on these 4 parts!! The Version 5 of the subject now borks the same!!!! V4 (good boy): Untitled Space Craft 2-d.craft.zip V5 (corrupted, ex-good boy): Untitled Space Craft 2-e.craft.zip And now, for the counter-proof: I uninstalled both TweakScale AND KSP-Recall from the test bed, and created the following (new) misbehaving craft: Good Boy: Untitled Space Craft - good.craft.zip Corrupted, ex-good Boy: Untitled Space Craft - bad.craft.zip Both crafts were created from scratch on a new SandBox savegame on KSP 1.9.1 installment WITHOUT KSP-Recall neither TweakScale (neither anything else). The Bad craft leaded to this result: It was not determined, yet, if the misbehaviour is triggered by the Grand-Parent Autostrut, if by any AutoStrut neither if every part is affected or just some (hey, I'm on working hours - the coffee break is over!). I will further investigate this by night. |
This is more than clear by now.
And, again, you are wrong. See my post above. EVERY Add'On on KSP does something unsupported. The most interesting ones ends up doing things "vaguely wrong" in order to achieve the feature. Every Single One Of Them. It's the very nature off the Add'On coding. My last post above DEFINITIVELY proves that:
There're problems on TweakScale, it's the reason I maintain a bug track for it. But nearly 80% of the support tickets I had and have are due KSP bugs, or 3rd Parties borking themselves in a way that affects TweakScale. KSP-Recall was born due this crap. You could be right? OF COURSE YOU COULD BE RIGHT. Something changes enough inside KSP and the technics used to scale things will bork for sure, as they are tied to the current way KSP does things - but such event will be catastrophic for everybody and TweakScale will complain on the KSP.log anyway, because it has a very big mouth and yells on anything that smells funny. So in order to promote TweakScale as prime suspect, proper evidence is needed - evidence that most of the time TweakScale will provide itself. Evidence that you consistently failed to provide, while consistently failing to interpret the ones you provided. Your insistence on pinpointing TweakScale as a source of KSP or 3rd parties problems is, from now on, being considered FUD and misinformation. And it will be handled as such - I'm just fed up of idiots slandering TweakScale to try to promote themselves or to cover up theirs or KSP's flaws and you appears to be one of them. The alternative being you are not up to the task you are carrying on KSPModdingLibs by lack of judgment and analysis skills (at least, by now). You just can't tell cause from effect, your own evidences were supporting my hypothesis - but you, apparently, was unable to interpret even the data provided by yourself! Besides being able to read the source code you (or someone else) reverse engineered, you failed to understand the relationship between the craft's mass and size on the Camera movements, something that it should be obvious to any KSP heavy player by now. Had you ever crashed a very heavy craft? Of course I can't tell which of the hypotheses above is right, but since both leads to the same logical consequence, one doesn't need to know it anyway. The simple and sad consequence is that you are not trustworthy and that it's very hard to tell information from noise from your contributions to the discussions at hand. And if I can't trust you, I can't trust your code. In the end, it's simple like that. |
These are the WHOLE savegame directory with a "good" craft and a "bad" craft for this problem for the following KSP versions: On every one of them, no TweakScale or Recall (or anything else) were available on the GameData. The savegame was created from scratch, and the craft files were remade on each savegame to rule out any influence from the UpgradePipeline. The misbehaviour was, obviously, reproduced on all mentioned KSP versions above (see the "bad" craft). The only diference between the "good" and the "bad" crafts are the use of Grand Parent AutoStrut. And now, A COMPLETE SURPRISE!!!! :) I Reproduced the problem on KSP 1.7.3 !!!!! I wrongly pinpointed KSP 1.8.x series as where the problem happened because I didn't properly tested for the problem on KSP 1.7.3 - not a surprise, as I didn't really knew what the problem was at first place. NOW I know better, and I will pursue the KSP release where this started to happen - assuming it's not something that it was there since the beginning of times, of course. |
The problem was reproduced on KSP 1.4.1 (same scheme: clean GameData, new savegame, crafts made from scratch). The craft is not exactly the same, since KSP 1.4.1 doesn't have Mission History parts available - but this helped to rule out ModulePartVariants influence on the matter anyway. |
And the problem was also reproduced on KSP 1.3.1 !!! Same scheme: clean GameData, new savegame, crafts made from scratch. Since KSP 1.3.1 has a smaller palette of parts available, some different parts were used. But the misbehaviour happened the same. |
Misbehaviour reproduced on KSP 1.2.2 . As usual, clean GameData, new savegame, crafts made from scratch. it appears to be something happening since the inception of the AutoStrut feature, as it appears… When this feature was introduced? |
Unsurprisingly, KSP 1.1.3 DOES NOT presents the misbehaviour - as it doesn't have the AutoStrut feature yet. :) You know the drill - clean GameData, new savegame, craft made from scratch. Since KSp 1.1.3 doesn't have AutoStruts, I didn't made a craft with them and, so, didn't reproduced the problem. KSP 1.1.3 was tested anyway to mark a point on time where the problem probably started to happen. I will dig out a KSP 1.2.0 and 1.2.1 installment just for completude, as for all practical purposes this bug is with us since the first implementation of the AutoStrut feature. |
Reproduced on KSP 1.2.0 . I will not test 1.2.1 (as 1.2.2. also presents it). Yada yada yada, clean GameData, new savegame, craft made from scratch. |
I made a quick search on the bugtrack to try to find something that could be related , but on a superficial eyeballing, I didn't. There're a lot of mentions on AutoStrut, and even some bugs directly related to it - but none of them mentions deformations. It's extremely unlikely that I'm the first to experiment this misbehaviour, so I'm guessing that this was recorded on the bugtrack without mentioning AutoStruts, as nobody had pinpointed the root cause of the deformation to it. https://bugs.kerbalspaceprogram.com/projects/ksp/search?page=1&q=autostrut&scope=subprojects&utf8=✓ |
Found some issues on the KSP's bug track that may (or may not) be related, I'm registering them here so I can resume the research later. "Breaking ground parts deformation not recoverable"https://bugs.kerbalspaceprogram.com/issues/22928
|
I made a Well, the problem is consistent - every part appears to be affected by it. This is a screen shot of a test session made on KSP 1.2.2: And this is the respective savegame (check the |
This is very interesting, I retook the tests with the I removed the AutoStruts from all non M-Beam parts, and also from the Beam attached to the Girder: However, aparently having ONE targetting a part is not enough - the first Beam to have the AutoStrut Grand Parent set is targetting the Girder, but the Girder "survived" the process unaffected! I'm guessing that you must have two AutoStruts chained up in order to trigger the problem... It appears that the AutoStrut (at least the Grand Parent one) is messing up with the positions/rotations of the target part, and not exactly the part in which it's set. Savegame: temp2.zip (see the |
Nope, no need for chaining up AutoStruts. Each AutoStrut Grand Parent screws up his target independently - so more parts with AutoStruts, more targeted parts being screwed up and this fooled me on believing on a chaining only problem. The following tests demonstrates that: The "Alternating" craft have the Beams on the extreme of the segments (the one connected to the Girder and the one Connected to the Separator) set to AutoStrut Grand Parent. The "Just One" one have only the middle Beam set to AutoStrut Grand Parent. savegame: Uploading temp2.zip… |
Now I took the original "Bad" craft and changed the AutoStruts to Heaviest and to Root respectivelly: savegame: temp2.zip The problem is happening on every AutoStrut, it's not something related to Grand Parent only. And my diagnosis apparently is less than correct (or perhaps correct only for Grand Parent). When using the heaviest auto-strut, the target part is the fuel tank that would be ejected by staging. When using Root, the target part is C7 Brand Adapter (I had to shove a lot of Launch Stability Enhancers to keep it on the place). In both cases, the deformed part was one of the docking ports. The Girder was affected only on the Heaviest one. I probably will need some more tests to identify exactly how the AS Root and Heaviest are screwing these parts - perhaps the M.O. would be the same as Grand Parent, and the daisy chaining of the deformation would be a collateral effect of the problem, and not a direct result of the problem. In a way or another, the conclusion is clear by now: somehow, the AutoStrut Module is screwing up part's positions and rotations when the craft changes somehow (staging for sure, perhaps any kind of part count change, or perhaps any craft change at all). I don't think further testing is relevant from this point - since every AutoStrut is screwing up things, the fix or workaround will be (probably) the same for all of them anyway. |
On Forum, Fellow Kerbonaut Anth12 commented about how DockingPorts were handled on KSP < 1.12, and how they are done now:
Consider how KSP-Recall could help on this issue. KSP 1.12.2 is going to stay around for some time, as it appears.
The text was updated successfully, but these errors were encountered: