« first day (2511 days earlier)      last day (485 days later) » 
00:00 - 19:0019:00 - 00:00

12:02 AM
[rubberduck-vba/Rubberduck] 10 commits. 1167 additions. 1652 deletions.
[Minesweeper] New Users: 19, Games Played: 102, Bombs Used: 65, Moves Performed: 14205
12:22 AM
@Hosch250 I mean that EF does not like it when you don't explicitly declare the get/set in the entity class properties even though VS won't throw an error.
1:05 AM
Ah, you mean like public string Foo;?
If so, those are fields, not properties.
1 hour later…
2:16 AM
> This pull request provides a French resource string for each of the new keys.

@MDoerner @Vogel612 FYI the `ImplicitContainingWorkbookReferenceInspection` and `ImplicitContainingWorksheetReferenceInspection` resource keys from `InspectionInfo.resx` have had their English resource string extended with a suggestion to qualify with `ActiveWorkbook` or `ActiveSheet` depending on the intent, but the corresponding German translations were not updated.
ah YES!! THAT is what we wanted all along!!
It wasn't working until now? (thought it was working)
but more importantly, no more missing docs!
one possible culprit may be that the meta needs to be rebuilt if analyzer was changed but that's ages ago....
2:29 AM
@this maybe it was, but this is the first time I'm seeing a red squiggly underline for a diagnostic I wrote myself :D
now you can rest assured it's working!
@this I did have to rebuild meta yesterday, not sure why though - RD just stopped building had to quit everything
how meta would it be to implement quick-fixes for Roslyn diagnostics that analyze Rubberduck inspection xmldocs?
well that's possible
I just didn't bother with implementing quickfixes.
Check my work on Roslyn if you want xmldoc fixes.
[rubberduck-vba/Rubberduck] build for commit d7e914e5 on unknown branch: AppVeyor build succeeded
2:45 AM
@Hosch250 it's on GitHub? I'll take a look! I think my diagnostics are pretty darn clunky, would be nice if you'd have a look too! (it's in the .Meta project)
(not seeing it on your GH?)
It's on Roslyn.
on the Roslyn lol
Filter by my PRs.
you nuked the fork?
Note that it's a little different than what you'll do because you don't have to support VB as well.
Wasn't worth the effort to try to keep it up to date.
2:52 AM
oh shit
PR is carrying commit 67dd92d5b
eh, might as well
Ttyl, need to get up early to drop my car off. Dog ate a seatbelt :D
3:07 AM
[rubberduck-vba/Rubberduck] build for commit bd073dd7 on unknown branch: AppVeyor build succeeded
3 hours later…
6:10 AM
> This pull requests makes the SelectionService resolve the selected ParameterDeclaration given a selection that's inside an ArgumentContext; the parameter declaration is used for the "current selection" caption when the argument is an expression that doesn't otherwise resolve to another declaration, like when an argument is a literal: ![literal string argument to MsgBox function shows it's the Prompt parameter and it's a...
Variant](user-images.githubusercontent.com/5751684/…) Or when the argument is an expression with late-bound elements selected: !Sheet1.Cells arguments are late-bound per the implicit default member call But any early-bound more specific sub-expression that resolves to a declaration remains the caption for other parameters:...
!image Named arguments in a different order than defined, doesn't break: !image Missing arguments aren't handled and behave as previously: !image
> Tweaking "find all references" to locate argument refs for parameter declarations would be a nice next step.
> Tweaking "find all references" to locate argument refs (not just the named ones) for parameter declarations would be a nice next step.
> Sweet enhancement!

2 small comments based on the images:

1) You probably may want to have it display `Object`, rather than `IDispatch` (2nd image) as that is more familiar to the users.

2) I am not sure I agree that missing argument should be skipped. I don't know if it's easy/feasible but I think I would rather see the missing argument name & type shown as a hint. Think about how many time people made a mistake of `MsgBox "foo", "my title"`....
6:37 AM
[rubberduck-vba/Rubberduck] build for commit 78782772 on unknown branch: AppVeyor build succeeded
4 hours later…
1 hour later…
1:09 PM
@Duga Unfortunately, my example of Msgbox "foo", "my title" is not a great one because there's no missing argument in this case and there would be no hints after the 2nd parameter anyway. An better example would be DoCmd.OpenForm which has several optional arguments.
A common mistake is something like DoCmd.OpenForm "foo", ,"id = 1" which is actually incorrect and causes a runtime error. They usually intend DoCmd.OpenForm "foo", , , "id = 1" or better yet, DoCmd.OpenForm FormName:="foo", WhereCondition:="id=1"
skipped args are also common in macro-recorder code I think
yeah, it's even more egregious when you have specified arguments in position 3 and 5 but not in 2 and 4. Too much cognitive load if you ask me.
Matt, so
• I've installed new VS2019 wih Applications (C#, ...) package
• Downloaded totally clean RD from https://github.com/rubberduck-vba/Rubberduck.git
• Opened it and set to Deployment
It does not like me.
lol it's not you
you must build the Rubberduck.Meta solution first
(it builds analyzers that inspect the RD source code, among other things)
it also looks like you're missing some nuget packages as well
think you may need to do a nuget restore.
1:20 PM
hm, doesn't it automatically restore packages on build?
it should....
like the meta should automatically build
Meta built succesfully
but we understand that if shoulds, coulds and woulds were horses, everyone would ride.
there's that
@SonGokussj4 try via package manager console Update-Package -Reinstall
1:22 PM
@SonGokussj4 now the main solution should build; I'd recommend you get the ResXManager VS extension (it's free) if you don't already have it installed
Why not just nuget restore?
I like that they finally updated the ESC key to just pop out of the edit box instead of nuking the entire tab
Okay, better. now it errored on

Severity Code Description Project File Line Suppression State
Error MSB3073 The command ""C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\tlbexp.exe" "C:\GIT\RubberDuckNew\Rubberduck.Deployment\bin\Rubberduck.dll" /win32 /out:"C:\GIT\RubberDuckNew\Rubberduck.Deployment\bin\Rubberduck.x32.tlb"" exited with code 3. Rubberduck.Deployment C:\GIT\RubberDuckNew\Rubberduck.Deployment\Rubberduck.Deployment.csproj 60
not a .dot net project
@this Will try that.
1:23 PM
at least the last time I tried, I got an error
hmm. I wonder if the path is a problem.
open a developer command prompt and do where tlbexp.exe What is the path?
C:\Users\jverner>where tlbexp.exe
INFO: Could not find files for the given pattern(s).
(cmd, not ps)
hmm that seems to be the problem
the assumption was that there's tlbexp.exe installed
Just to double-check because your path is your user folder -- you used the VS developer prompt, not a regular cmd window, right?
19 hours ago, by this
IIRC just C# desktop should be sufficient
@this Ah, no. regular. sorry.
1:27 PM
I think that needed the build tools no?
@MathieuGuindon tlbexp is the fallback when there's no build tools present
through developer command prompt:
C:\GIT\RubberDuckNew>where tlbexp.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\TlbExp.exe
was it present, it would have run the midl compiler instead of tlbexp
Ok, that's definitely the problem
the path doesn't match
why do you have to make it so complicated, Mr. Billy Goates?
thinking about it some more... I wonder if you are supposed to install the .NET framework 4.6.1 specifically.
installing VS is getting ...complicated tbh
1:30 PM
It's kinda a shame there isn't a web-based ResxManager - that would really lower the barrier...
@MathieuGuindon that's a understatement.
other day, I couldn't open some project because it kept on bleating about how I didn't have a specific .NET framework version and asked if I wanted to change or download. Download it from the webpage it helpfully sends me to (oh wait, I have to chose the version manually and between the SDK or runtime install) and it STILL won't load hte project.
@MathieuGuindon So should I install Build Tools? (.NET desktop I assume?)
ah yes, you probably need that. That'd be where the tlbexp would be.... I think. I see 4.6.1 is in there so that's probably what we need.
why wasn't this included with C# desktop development....
but just for FYI - Mathieu was referring to C++ build tools, which is not required in your case.
Mr. Billy Goates, you're a piece of work!
@mansellan Super easy to do with Blazor.
Would maybe be a fun project.
yeah was thinking that
1:43 PM
@this So that didn't help. 4.6.1 still not installed. So I changed it:
<RubberduckPostBuildTask Config="$(ConfigurationName)" NetToolsDir="$(SdkPath)bin\NETFX 4.7.2 Tools\" ... And it build successfully
good to know
now i need to figure how to get rid of that hard coded fragment
i think he feeds on pain and misery. i really do
(now if I want to see my translation changes, do I need to uninstall .exe installed rubberduck? And then close Excel, build solution, open Excel, Alt+F11, Find the gui, see changes?)
@this :-D Well it did work. Last time I tried we weren't able to get it to work even with all of your help... So something is better. :-)
and I appreciate you reporting!
@SonGokussj4 yes
2:05 PM
So... I know I have a lot of problems, but...
I uninstalled manualy installed version of RD from Github.
Then rebuilt solution
Run Excel.
I vaguely remember having this problem last time too.
Can you verify there are no other Rubberduck instances installed?
So the answer is no, thee's no others.
go ahead and click Yes
close Excel, then rebuild the solution
then see if it works. Also to make sure - you are not running Visual Studio as an administrator?
Exactly this I did before I wrote it here.
I hope not. It says "admin" top right. But I¨m running it by just double-clicking on the RD solution.
So not sure how to run it without admin.
that would be it
2:10 PM
there's an issue with registering as an admin (thanks, Mr. Billy Goates!)
try and open VS as non-admin - you may need to right-click the VS and go to properties and make sure it's not checked to run as an admin
Yeah I read that on the RD wiki.
Really don't know how. Even if I make a shortcut and do Advanced properties, admin is unchecked, still ADMIN on the right top corner.
that's the shortcut
need go directly to the EXE and open the properties there
I created a shortcut because I don't see any "run as admin" option otherwise.
One thought is to remove Admin permissions maybe? ¯_(ツ)_/¯
Just to rule it out - if you run VS as an admin, do you get an UAC and does it look different fromt he one you're running?
2:22 PM
omg. I needed to change owner.
On my end, I can confirm that if I right-click VS, Run as administrator, I get that ADMIN button
but when I run VS normally that button is not there
running anything whatsoever as administrator should never be the default
Ok. No. That didn't help either (changing owner from Administrators to my account).
(Because I am administrator...)
2:27 PM
but I'm also an administrator
@MathieuGuindon I agree. I work on Linux at work so I like being not-admin. But on Windows I'm admin by default.
and even so, I must explicitly run as administrator to elevate it
^ same here
2:34 PM
@this I don't get UAC because disabling it is the second thing I do on a new windows installation. When I turned it on, it still doesn't ask (I haven't logged out yet)
I think that's the problem
You may need to log out then log in back for it to take effort
maybe restart, even
if UAC is disabled, then everything is effectively Run as administrator
2:37 PM
Ouch... Why windows. WHY.
well, without UAC, it's basically just like logging into linux as root. UAC is windows' equivalent to sudo
Ah classic Windows. Even before I log in to my account, my previously opened and paused youtube video started to play.....
@this rly? I always thought that it just doesn't ask if you "Run as Admin" but otherwise run it normally...
Nope. If it's disabled, how will it know you are running elevated or running as a normal user?
@this So why do I need to "Run as Admin" for example cmd or powershell :-D Where's the logic. Or few other programs. Or elevate for example AltGrab (superb app to mimic ALT moving/resizing from Linux) etc.
@this It works. It's alive!
I honestly don't know. Just consider that UAC was tacked on Windows rather than being a part of the Windows from the start. Therefore, there'll be inconsistencies.
Great! I'm glad you got that sorted. I guess we could add to the FAQ to turn on UAC. :)
That said, running with UAC is the expected & normal situation and that should be what we should use anyway.
2:53 PM
Yeah. As with everything in Windows. But glad you told me about that. For the next windows reinstall, I think I'll just create a normal user and when I need something elevated, I just fill admin user/pass...
sure, that's one way to do it.
that would be closer to what Linux does anyway. In my case, i was too lazy to make another account. X_X
I agree. But maybe edit the FAQ anyway :-D And maybe the need of changing the version of the TlbExp. :-)

Thanks again. After 2 years, I have working RD (dev version) on my PC. Refreshing :-D
Yes I need to look into this to not depend on a particular path
MS does not make it easy. oh, joy!
maybe I should just call the TypeLibConverter and be done with it. We'll see
3:14 PM
Ha, surprise. I thought there would be much more lines. Is it really just these? I'm pulling from next branch.
looks like it yeah - there's only a handful of new keys this time
@SonGokussj4 hold on a second
I'm holding my beer.
I have small diffs in CS resx files, I'll merge my own translation PR then you can pull the changes from next and then there won't be any conflicts when you PR
Ah ok. np :-)
@SonGokussj4 should be good for git pull upstream next now
[rubberduck-vba/Rubberduck] retailcoder pushed commit 67dd92d5 to next: address or suppress most warnings and messages
[rubberduck-vba/Rubberduck] retailcoder pushed commit 013f2ead to next: Merge branch 'next' of git://github.com/rubberduck-vba/Rubberduck into next
[rubberduck-vba/Rubberduck] retailcoder pushed commit bcce32a6 to next: Merge branch 'next' of git://github.com/rubberduck-vba/Rubberduck into translate252
[rubberduck-vba/Rubberduck] retailcoder pushed commit c4980c9a to next: Mise à jour des traductions pour v2.5.2
[rubberduck-vba/Rubberduck] retailcoder pushed commit d7e914e5 to next: extended reasoning
[rubberduck-vba/Rubberduck] retailcoder pushed commit bd073dd7 to next: xmldocs edits; adjusted RequiredLibrary/RequiredHost attributes.
Merge pull request #5739 from retailcoder/translate252

Updating French Translations for v2.5.2
small note - commit d7e914e5 has extended the reasoning behind two inspections; ResX Manager wouldn't be highlighting these, but ideally the translations should take the added part into account :)
damn I'm bad at this
the commit only extends one, the other is in another commit
@Duga Dude... git commit comments in French? That ain't fair!
basically just review the wording for the "enclosing workbook" and "enclosing worksheet" implicit reference inspections
3:22 PM
@FreeMan what, you telling me you never built a model plane before?
uh, whut??
misses the joke totally
like totally, dude...
well, to build a model plane, you have to be fluent in english, french, spanish and german.
I've built plenty of model planes, but never a modal plane.
All the ones I built had instructions in English, plus...
3:26 PM
@MathieuGuindon What about those 3 lines I have translated but English is now missing? IllegalAnotationInspection. Should I delete them?
I know, I know, not funny if you have to explain it....
@SonGokussj4 that one was renamed, the key should be InvalidAnnotationInspection, but that inspection was split up in 3 separate ones, so make sure the translation still makes sense :)
Oh and is there for me to find out if any lines were edited? I'm remembering that last time there were a few I found accidentally so I changed translation accordingly. I think the only way is to do a checkout to last version and to a folder diff between these two folders?
yeah that's the hard part - there's the "enclosing book/sheet" inspections I know of
Okay. I'll look into that. :-)
@this Reminded me of some magazines I found at my grandmothers some decade ago from year 196x? :-D
3:31 PM
@this Ahhh... got it!
in my case at least model planes were more egregious because you had all those languages directly adjacent to one other for each step. Most manuals have the courtesy of putting the other languages toward middle/end of the manual
My current job ruined model planes.
They did a team building thing where they gave us 2 minutes or something to build planes, and changed the requirements, and had us make more.
The team with the most valid planes at the end won.
only 2 minutes? A decent model usually take hours if not days....
I hate this place.
Just folded paper.
3:46 PM
They give us a deadline before they even know what the ui will look like.
skips the French translation update. Pfffft!
They are making us redo months of work because they changed their mind on the ui.
^and this is different from any other place how?
What’s a deadline? At least you have those.
3:48 PM
Have you ever heard of SAFe?
With release trains and stuff. Scaled agile for enterprise.
It's a fancy term for doing waterfall while trying to sound hip and modern.
Idk about most places, bit my last job made up their mind before they came to the devs.
There might be a day or few of rework, but not literal months.
Right now we're listening to a bunch of teams present their plans for the next 14 weeks to business.
they can't admit that they are just winging it.
Instead of, you know, doing something relevant to our job titles.
they have to show they are worth big bucks, so ten dollars words
My boss is looking for a new contract for me, but most contracts aren't remote.
I like my company, but I would never work for this one again. They are looking for a new employee too. One of my teammates noped out of there.
It's a multi million dollar health care company.
Healthcare benefits for employers.
IMO, the gov should just ban private healthcare, add the health care premium to taxes, and give everyone a 5k deductible, and they'd probably make money. Bonus points for putting this shithole out of business.
If someone wants to save and pay out of pocket for healthcare, that should be legal too.
Agree to strongly disagree. Nothing the government does is efficient or cost effective
4:02 PM
But insurance is a huge scam.
You think this company is?
I'd argue the company is a scam because it's enabled by the government.
I've seen them throw away easily $1m in the past year.
The more government intervenes, the worse things get.
I don't like public healthcare myself, because it vastly reduces access to care. I know Canadians who buy us insurance so they can get care over here.
But this needs to stop, and that's the only way it will.
No, what need to stop is the reliance on a third-party pay system. Nobody will control costs if it's always someone else paying
4:04 PM
So much @this!
this all started because once a time, employers found it more attractive to offer their employees health pans over higher wages or something (they also got a tax break out of it as well).
tying healthcare to employment is the biggest part of the many stupid things about US healthcare
but since then the loopholes, the exceptions, the headaches has ballooned since. It ain't getting better with more rules and regulations.
Sure, I'll settle for that too.
Either way, healthcare insurance today is a scam.
And that stupid insurance for all bill they passed has made it twice as bad, and vastly reduced access to care, too.
My parents insurance used to have access to every licensed doctor in the state of mn. They lost access to most, and their insurance costs doubled.
[rubberduck-vba/Rubberduck] build for commit c9c6b922 on next: AppVeyor build failed
4:20 PM
US politics in general make my blood boil tbh. best keep that topic elsewhere.
5:01 PM
So I was haunted by this random number appearing in my VBE Project under the HelpFile property. I first noticed it showing up in my Version Control system when I export an Access DB project to text files. We discussed it in the version control project. Some members were seeing it and others were not. What did we have in common? The RubberDuck: stackoverflow.com/questions/62095622/…
I found it mentioned in a GitHub issue and briefly in the the Wiki. Is RD still using the HelpFile property as a ProjectID?
@HackSlash yes
that might change though now that ITypeLib API is loading user projects, but ProjectId is wired in many places
Aha, It causes an error when we are importing properties from source files. I think Access wants that string to be a valid path.
fml nothing was ever using that property...
There is a numeric right next to it called HelpContextId which could be used for a ProjectId
Yeah, It's not that I really want to use it. We had to change the import function to ignore numeric HelpFile entries to avoid the error on import.
wiping the project ID is safe as long as RD doesn't re-parse afterwards... it'll think there's a new project loaded and will double-up all the declarations and references
(or if it hasn't initially parsed)
5:08 PM
We close and re-open on import but not on export. I haven't seen any issues from clearing it yet
@Duga lovely
@HackSlash it'll cause mayhem if it's cleared between any two parse runs
@Duga wtf did I break again, 6K tests ran, build failed, and we have the build assets
Good to know. Would it be better to store it in some invisible place like where Attribute things hide?
> Build execution time has reached the maximum allowed time for your plan (60 minutes).
EXAMPLE: Attribute VB_ProjectId = 123
no because it must live at the project level
and there aren't many options for anything project-level
how tf did build time go from 20-ish minutes to >60
this used to time out at 30 lol
5:12 PM
He did? No wonder he'd quit answering my questions...
Maybe your build server is mining bitcoins
@FreeMan took me way too long lol
I know in Access we can make our own properties. Not sure if you can do that on any arbitrary host Application
@MathieuGuindon lol :D
But even using HelpContextId would get around the error I am seeing
5:14 PM
this jokes. They just write themselves!
could be... except ProjectId is a String IIRC
Is it always a number string? could it survive String -> Long round trip?
it's a hash, but if the HelpContextId is a 8-bit or 16-bit integer it won't do
makes me wonder why we went with the string one, there had to be a reason
@MathieuGuindon Clearing the project id will only cause problems till the next parse. After that, RD will no longer see the old one and throw everything related to it away.
@HackSlash if there's a legit path in that property, we leave it alone and treat it as the ID IIRC
5:22 PM
Here is the discussion we had in version control land: github.com/joyfullservice/msaccess-vcs-integration/issues/197
@Hosch250 I know SAFE. We are using it in a current project and it makes little sense.
Thanks @MathieuGuindon! That might be the best solution yet!
It mostly generates additional overhead.
@M.Doerner my condolences.
In the end, the only thing really agile in the project is that we do CI.
The biggest problem right now is something not related to SAFE though, but something that is hardly ever treated in an agile way: budgeting.
5:27 PM
CI isn't even an agile thing. CD is.
We actually do that as well.
Lots of waterfall shops do pre-check-in validation.
@HackSlash commented
@HackSlash I'm not sure what's going on, but why are you guys even looking at the HelpFile property? Are you creating Win98 help files for your VBA projects???
Thanks @MathieuGuindon. We are not but we are attempting to version control every single bit of everything that can be version controlled. This surfaced when we began saving all writeable properties. If it can be written to then we back it up so we can restore it from version control later.
perhaps catch that it's not a valid path, and treat it as empty when that's the case?
5:41 PM
We were trading files back and forth. This random number kept showing up in each Pull request. Then we noticed that you can't import a number in to this field. It throws an error. I'm not sure how you are loading a value in there without getting the same error we are.
Yes, that is what the code does currently.
that should be a permanent solution tbh
5:52 PM
how are you writing it back? I'm wondering why you'd get an error while we don't have that issue.
@FreeMan had to. Otherwise, I'd have to start charging.
@MathieuGuindon soo .... RD is now officially enterprise software?
FWIW if I do it interactively, it doesn't even complain that I put in a number in that property.
@this looks like the code is using CallByName to set property values. docs.microsoft.com/en-us/office/vba/Language/Reference/…
@HackSlash tested in Access' VBIDE immediate:
application.VBE.ActiveVBProject.HelpFile = "94928621"
CallByName application.VBE.ActiveVBProject, "HelpFile", VbLet, "94928621"
no errors.
additional test just in case it doesn't throw an error:
application.VBE.ActiveVBProject.HelpFile = "123"
CallByName application.VBE.ActiveVBProject, "HelpFile", VbLet, "94928621"
even removing the quotes around the number, no error. I think there's something else going on.
6:08 PM
@this I just did the same test. You're right. I can assign it directly. I know we fixed the automation error by clearing that property on export.
> Now that Rubberduck is loading `ITypeInfo` metadata from user code, we should look into whether have a better way to get a unique project ID for everything loaded in the VBE, one that doesn't involve actually persisting the ID in the host project's `HelpFile` property.

In fact, persisting the ID was useful for the defunct *Source Control Panel* circa 2015, when we needed the ID to remain the same between sessions; I don't think that's needed anymore.
@Duga this relies on whether the host is assigning a GUID to the VBA project.
If it doesn't we can assign a GUID ourselves no?
in theory
we have commented out code to do that.
but IIRC, Wayne said it was unreliable
we just need a unique ID per project, doesnt matter where it comes from
in fact we don't even need the ITypeInfo stuff to do this
6:13 PM
well, a pointer would suffice, maybe. No, it wouldn't if it can be moved between runs.
6:26 PM
@Hosch250 Eww.... I saw some slides on SAFE, that was bad enough... We're somewhere between lean and Kanban, and that's just enough process for my liking.
i think i'm in wrong line of work. I should be a business consultant inventing some new buzzwords.
goes to trademark this™
"The Holistic Instrumental System"
yeah, that'll do.
> Actually we probably don't even need the `ITypeInfo` API stuff for this; the sole reason for persisting the ID between sessions was for the source control panel to track the correct project even if it had the default name.

We don't need to persist it anymore; the `ProjectDeclaration.ProjectId` string can probably become a GUID that only needs to exist for disambiguating same-name projects in a multiple-document host.
Tbh, our process is not much heavier than GH projects, just in Azure DevOps
Gotta say though, if I ever emigrated, the thing I'd miss most would be the National Health Service in the UK. It's pretty amazing.
From what I've read, Canada has a pretty good setup too though.
@mansellan but by golly, you better have acronyms! Only square unhip people don't have acronyms! Keep up with the jones!
Hey did you see VS 2022 is going 64-bit?
6:38 PM
oh wow
> opens a solution with 1,600 projects and ~300k files. Here’s to no more out-of-memory exceptions. 🎉
only took them ~12 years...
00:00 - 19:0019:00 - 00:00

« first day (2511 days earlier)      last day (485 days later) »