Thanks Martin,
amore=: 13 : '({: y) * rmf % (1-(>: rmf=. 1200 %~ {. y)^- 1&{ y)'
amort=: {: * (1200 %~ {.) % 1 - ([: >: 1200 %~ {.) ^ [: - 1&{
(amore 5.75 240 12500);amort 5.75 240 12500
âââââââââ¬ââââââââ
â87.7604â87.7604â
âââââââââ´ââââââââ
amore
{: * (1200 %~ {.) % 1 - ([: >: 1200 %~ {.) ^ [: - 1&{
amort
{: * (1200 %~ {.) % 1 - ([: >: 1200 %~ {.) ^ [: - 1&{
Now for any simplifications. Where did your 1200 come from?
We need t0 get an explicit definition.
It's looking better all the time. I think
Raul's adds an interesting twist. More later.
Linda
It
-----Original Message-----
From: Programming
<programming-boun...@forums.jsoftware.com> On Behalf Of Martin Kreuzer
Sent: Thursday, September 13, 2018 11:22 AM
To: programm...@jsoftware.com
Subject: Re: [Jprogramming] Tacit form: How to handle intermediate
This I put together independently a couple of
days ago (sorry for possible similarities in
other posts as I didn't check them all).
NB. * amor | monad | y: list (of: annual rate
[percent], no of periods (months), principal)
NB. * amore (explicit) NB. * amort (tacit)
NB. explicit, with body
amor=: 3 : 0 NB. periodic
amortization payment a= p * r %
(1+r)^-n
'rap n p'=. y NB. rap: annual
rate [percent], n: no of (monthly) periods, p: principal (loan)
rmf=. rap%12*100 NB. monthly rate
as fraction (instead of percent)
a=. p * rmf % (1-(>: rmf)^-n) NB. monthly payment
)
NB. explicit one-liner
({. , 1&{ ,: {:) 5.75 240 12500 NB. extracting values from list
5.75
240
12500
amore=: 13 : '({: y) * rmf % (1-(>: rmf=. 1200 %~ {. y)^- 1&{ y)'
NB. tacit version (output from (13 :) - probably with room for improvement)
amort=: {: * (1200 %~ {.) % 1 - ([: >: 1200 %~ {.) ^ [: - 1&{
amor 5.75 240 12500
87.7604
amore 5.75 240 12500
87.7604
amort 5.75 240 12500
87.7604
-M
At 2018-09-13 14:34, you wrote:
>Here are two tacit verb for pmt from Raul,
>
>
>pmt1200=:(%<:)@D * 1 0 1 */ .# ]
> pmt=: pmt1200@(%&1200 1 1)
> pmt 5.75 240 12500
>87.7604
>
> D
>[: (^~ >:)/ (2 3$0 1 0 1 0 0) +/ .* ]
>
> pmt1200
>(% <:)@D * 1 0 1 */ .# ]
>
>Can anyone other than Raul or Rob) writ an explicit OR tacit single
>sentence definition for:
>
>PMREX=:
>
>PMTTA=:
>
>Cheers, Linda
>
>(Raul and Bob can coach tacits and I'll respond to explicits) Try 5.75
>240 12500
>
>-----Original Message-----
>From: Programming
><programming-boun...@forums.jsoftware.com> On Behalf Of 'Rob
>Hodgkinson' via Programming
>Sent: Thursday, September 13, 2018 2:23 AM
>To: programm...@jsoftware.com
>Subject: Re: [Jprogramming] Tacit form: How to handle intermediate
>
>Ahh IâÂÂm sorry Linda, that was my bad copy/paste into the email Â
>
>Please ignore previous email, I have ccorrected the transcript below
>(and verified) so this should run without conflict (aside from being
>careful of quotes on copy/paste perhaps):
>
>RaulâÂÂs functions:
> D=:[: (^~ >:)/ (2 3$0 1 0 1 0 0) +/ .* ]
> pmt1200=:(%<:)@D * 1 0 1 */ .# ]
> pmt=: pmt1200@(%&1200 1 1)
> pmt 5.75 240 12500
>87.7604
>
>My revised input for 13 : is also included here, as I had a mis-copy
>there too.
> Da=:13 : '(^~ >:)/ (2 3$0 1 0 1 0 0) +/ .*
> yâ NB. Removed the leading [: as not
> required for explicit (I could have left it in, but IâÂÂm trying to
>exactly reproduce RaulâÂÂs tacit definitions above), and added last
>term y to the explicit expression
> pmt1200a=: 13 : '((%<:)@Da y) * 1 0 1 */ .#
> yâ NB. Added last term y to the first and
> last âÂÂtineâ of the fork Raul produced
> pmta=: 13 : 'pmt1200a@(%&1200 1 1)
> yâ NB. Added last term y (although
> this is not required as composition can be applied directly as Raul
>did without requiring explicit)
>
>NB. LetâÂÂs compare to RaulâÂÂs solution in email below ...
> Da
>[: (^~ >:)/ (2 3$0 1 0 1 0 0) +/ .*
>] NB. Same definition as Raul above
> pmt1200a
>(% <:)@Da * 1 0 1 */ .# ] NB. Same
> pmta
>pmt1200a@(%&1200 1 1) NB. Same
>
> pmta 5.75 240 12500
>87.7604
>NB. Results match
>
>
>Sorry if I confused with previous transcript paste.
>
>Â
/Regards Rob
>
>
> > On 13 Sep 2018, at 3:21 pm, LLinda Alvord
> <lindaalvor...@outlook.com> wrote:
> >
> > Here's a problem. I'm not having trouble
> with cut and paste so could you show the working version.
> >
> > Also do not remove caps [: from tacit
> results as they are needed for the explicit versions you are writing
> to work correctly.
> >
> >
> > D=:[: (^~ >:)/ (2 3$0 1 0 1 0 0) +/ .* ]
> > pmt1200a=:(%<:)@Da * 1 0 1 */ .#
> > |value error: Da
> > | pmt1200a=: (%<:)@Da*1 0 1*/ .#
> > |[-1] c:\users\linda\j64-807-user\temp\15.ijs
> >
> >
> >
> > Linda
> >
> > -----Original Message-----
> > From: Programming <programming-boun...@forums.jsoftware.com> On
> > Behalf Of 'Rob Hodgkinson' via Programming
> > Sent: Wednesday, September 12, 2018 11:26 PM
> > To: programm...@jsoftware.com
> > Subject: Re: [Jprogramming] Tacit form: How to handle intermediate
> >
> > Hi Linda, RaulâÂÂs functions may be input to 13: as shown here:
> >
> > RaulâÂÂs functions:
> > D=:[: (^~ >:)/ (2 3$0 1 0 1 0 0) +/ .* ]
> > pmt1200a=:(%<:)@Da * 1 0 1 */ .#
> > pmta=:pmt1200@(%&1200 1 1)
> > pmta 5.75 240 12500
> > 87.7604
> >
> > Revised as input to 13 : (note in the below
> the space required between âÂÂ13â and
âÂÂ:â and that I have
> âÂÂremovedâ any tacit addons (such as [:) to exactly reproduce
> RaulâÂÂs tacit definitions ...
> > Da=:13 : '(^~ >:)/ (2 3$0 1 0 1 0 0) +/ .*
> yâ NB. Removed the leading [:
> as not required for explicit (I could have left it in, but IâÂÂm
> trying to exactly reproduce RaulâÂÂs tacit definitions above), and
> added last term y to the explicit expression
> > pmt1200a=: 13 : '(%<:)@Da * 1 0 1 */ .#
> yâ NB. Added last term y
> > pmta=: 13 : 'pmt1200@(%&1200 1 1)
> yâ NB. Added last term y
> (although this is not required as composition can be applied directly
> as Raul did) without requiring explicit)
> >
> > NB. LetâÂÂs compare to RaulâÂÂs solution in email below ...
> > Da
> > [: (^~ >:)/ (2 3$0 1 0 1 0 0) +/ .*
> ] NB. Same definition as Raul
> > pmt1200a
> > [: (% <:)@Da [: * 1 0 1 */ .#
> ] NB. Same
> > pmta
> > pmt1200@(%&1200 1 1)
> > pmta 5.75 240 12500
> > 87.7604
> >
> > HTH but if still unclear please expand ?
> >
> > For further reference re [: only having
> meaning in tacit form (which is why I removed it for explicit form) it
> may be helpful to read this link:
> >
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fco
> > de
> > .jsoftware.com%2Fwiki%2FVocabulary%2Fsquarelfco&data=02%7C01%7C%
> > 7C
> > c059f09bd44446fc424708d61928c374%7C84df9e7fe9f640afb435aaaaaaaaaaaa%
> > 7C
> > 1%7C0%7C636724060199447363&sdata=OrnLHRv1N%2Fe5lnADLmIGobGEQkw5k
> > xY
> > mbnHMVx84AIs%3D&reserved=0
> >
> <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcod> >
> e.jsoftware.com%2Fwiki%2FVocabulary%2Fsquarelfco&data=02%7C01%7C%7
> > Cc059f09bd44446fc424708d61928c374%7C84df9e7fe9f640afb435aaaaaaaaaaaa
> > %7
> > C1%7C0%7C636724060199447363&sdata=OrnLHRv1N%2Fe5lnADLmIGobGEQkw5
> > kx
> > YmbnHMVx84AIs%3D&reserved=0>
> >
> > Thanks, Rob
> >
> >
> >> On 13 Sep 2018, at 1:05 am, Linda Alvord
> <lindaalvor...@outlook.com> wrote:
> >>
> >>
> >>
> >> When you'e're done f=: 13 :'...
> >>
> >> enter
> >> f
> >>
> >> If the result is tacit there will be no x or
> y. Instead you get a string of separate J symbols which J uses from
> right to left to follow your instructions.
> >>
> >> I need a laptop to check. Raul's function.
> >>
> >> Linda
> >>
> >>
> >>
> >> '
> >>
> >> Sent from my Verizon, Samsung Galaxy smartphone
> >> -------- Original message --------
> >> From: Raul Miller <rauldmil...@gmail.com
> >> <mailto:rauldmil...@gmail.com>>
> >> Date: 9/10/18 12:55 AM (GMT-05:00)
> >> To: Programming forum <programm...@jsoftware.com
> >> <mailto:programm...@jsoftware.com>>
> >> Subject: Re: [Jprogramming] Tacit form: How to handle intermediate
> >>
> >> x=:0 is bad form, so I am going to ignore that part.
> >>
> >> In fact, I'd eliminate all internal =: from
> that definition and start with:
> >>
> >> pmt=: 3 : 0
> >> 0 pmt y
> >> :
> >> 'r t b'=. y
> >> D=.(1 + r % 1200) ^ t
> >> b*(r % 1200) * D % D - 1
> >> )
> >>
> >> And our paranoia test is:
> >> pmt 5.75 240 12500
> >> 87.7604
> >>
> >> The next issue is that we're working with more than two values,
> >> that makes it a bit complicated.
> >>
> >> On the other hand, we never use x - if it's provide we ignore it.
> >> So I'm going to ignore it here. If that bothers you, use pmt=: pmt&] f.
> >> after we've got the tacit expression. (Using f. on the final
> >> expression will also protect from some damage if you happen to run
> >> the original with it's D=: expression...).
> >>
> >> Anyways...
> >>
> >> To simplify this slightly, notice that we never want to use the
> >> value of r. Instead, we always want r%1200. So we can divide y by
> >> 1200 1 1 and work the remainder of the dyadic expression becomes:
> >>
> >> pmt1200=: 3 : 0
> >> 'r t b'=. y
> >> D=.(1 + r) ^ t
> >> b*r * D % D - 1
> >> )
> >>
> >> A tacit expression to compute D directly from this y would be:
> >> D=: [: (^~ >:)/ (2 3$0 1 0 1 0 0) +/ .* ]
> >>
> >> with that definition of D, pmt1200 can be
> >> pmt1200 =: (%<:)@D * 1 0 1 */ .# ]
> >>
> >> and our tacit pmt becomes
> >> pmt=: pmt1200@(%&1200 1 1)
> >>
> >> Trying it out:
> >> pmt 5.75 240 12500
> >> 87.7604
> >>
> >> Good enough?
> >>
> >> --
> >> Raul
> >> On Sun, Sep 9, 2018 at 9:55 PM Linda Alvord
> <lindaalvor...@outlook.com <mailto:lindaalvor...@outlook.com>> wrote:
> >>>
> >>> Here's a classic. Can anyone write this in tacit?
> >>>
> >>> NB. Mortgage is Rate Months Loan
> >>>
> >>> pmt=: 3 : 0
> >>> (x =: 0) pmt y
> >>> :
> >>> 'r t b'=:y
> >>> D=:(1 + r % 1200) ^ t
> >>> b*(r % 1200) * D % D - 1
> >>> )
> >>>
> >>> pmt 5.75 240 12500
> >>>
> >>> In 1961 I bought a house for $17,000. With
> a loan of $12,000 at 5.75 interest for 20 years. As a tenured teacher
> and a woman no bank would give me a mortgage but for 20 years I payed
> the previous woman owner $87.77. At the last payment it just so
> happened that I sold it.
> >>>
> >>> Linda
> >>>
> >>> -----Original Message-----
> >>> From: Programming <programming-boun...@forums.jsoftware.com
> >>> <mailto:programming-boun...@forums.jsoftware.com>> On Behalf Of
> >>> 'Mike Day' via Programming
> >>> Sent: Saturday, September 8, 2018 1:45 PM
> >>> To: programm...@jsoftware.com <mailto:programm...@jsoftware.com>
> >>> Subject: Re: [Jprogramming] Tacit form: How to handle intermediate
> >>>
> >>> Agreed on the "strong hint" in herona below. I got into that
> >>> habit
> >>>
> >>> years ago in Fortran....
> >>>
> >>> And Sorry for the unintentional extra characters. (I'm seeing
> >>>
> >>> A-circumflex where I'd typed space!) Just
as well we're not talking APL!
> >>>
> >>> Mike
> >>>
> >>>
> >>> On 08/09/2018 09:40, Martin Kreuzer wrote:
> >>>> @Linda
> >>>>
> >>>> I think that your
> >>>> heron=: 13 :'%:*/(s y),(s y)-y'
> >>>> looks superior to my initial approach as it gathers _all four_
> >>>> factors under the (*/) Times Insert.
> >>>>
> >>>> btw "Hope you have good classes!"
> >>>>
> >>>> For quite some time, I don't have classes any more, but once in a
> >>>> while do private tutoring; my last two students finished their
> >>>> 'matura' at Easter this year (and one of them is on 'work & travel'
> >>>> in New Zealand presently).
> >>>>
> >>>> @Mike
> >>>>
> >>>> Looking at your 'minor change' and the resulting tacit code,
> >>>> methinks that (sy=. s - y) is giving the interpreter a much
> >>>> stronger hint that there's a re-used
> intemediate result than the construct (' ... [ s2=.
> >>>> .... ') I used initially.
> >>>>
> >>>> -M
> >>>>
> >>>> At 2018-09-07 09:43, you wrote:
> >>>>
> >>>>> Fair enough,ÃÂ it looks neat,ÃÂ but doesn't deal with Martin
> >>>>> Kreuzer's original requirement to apply s just the once, ie how
> >>>>> should we handle the intermediate result, s?
> >>>>>
> >>>>> On the other hand, David Lambert and others propose variations
> >>>>> on how to factor the formula so as to use the result of s.
> >>>>>
> >>>>> It's usually easy in explicit form,ÃÂ harder in tacit form.ÃÂ
> >>>>> It seems to me that using 13 : ... is very helpful in developing
> >>>>> a tacit form,ÃÂ but it often fails to spot opportunities to
> >>>>> save intermediate results.ÃÂ 13 : ... isn't an optimising
> >>>>> compiler - or is it? It certainly doesn't spot the opportunity
> >>>>> to save the repeated (s y) in Linda's example.
> >>>>>
> >>>>> Somewhat to my surprise,ÃÂ a minor change to Linda's explicit
> >>>>> expression does result in a single applicaton of s in a quite
> >>>>> elegant tacit form:
> >>>>>
> >>>>> ÃÂ ÃÂ ÃÂ herona=: 13 :'%:*/sy,(sy=.s y)-y'
> >>>>>
> >>>>> ÃÂ ÃÂ ÃÂ herona 3 4 5
> >>>>>
> >>>>>
> >>>>>
> >>>>> ÃÂ ÃÂ ÃÂ herona 5 12 13
> >>>>>
> >>>>> 30
> >>>>>
> >>>>> ÃÂ ÃÂ ÃÂ herona
> >>>>>
> >>>>> [: %: [: */ s ([ , -) ]
> >>>>>
> >>>>>
> >>>>> Cheers,
> >>>>>
> >>>>> Mike
> >>>>>
> >>>>> On 07/09/2018 08:19, Linda Alvord wrote:
> >>>>>> It keeps getting simpler:
> >>>>>
> >>>>>> s=: 13 :'-:+/y'
> >>>>>> heron=: 13 :'%:*/(s y),(s y)-y'
> >>>>>> heron 3 4 5
> >>>>>> heron 4 5 6
> >>>>>> d
> >>>>>
> >>>>>
> >>>>>> ;:'[: -: +/'
> >>>>>
> >>>>>> heron
> >>>>>
> >>>>>> ;:'[: %: [: */ s , s - ]'
> >>>>>>
> >>>>>
> >>>>>> Explisit sentences are like English and the new language is the
> >>>>>> computers J anguage. First learn the words and then learn to
> >>>>>> read ghe ords in sentences. And just as you might when learning
> >>>>>> Spanish, you might in time begin to speak it.
> >>>>>
> >>>>>> Linda
> >>>>>
> >>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: Programming <programming-boun...@forums.jsoftware.com> On
> >>>>>> Behalf Of David Lambert
> >>>>>> Sent: Thursday, September 6, 2018 6:11 PM
> >>>>>> To: programming <programm...@jsoftware.com>
> >>>>>> Subject: Re: [Jprogramming] Tacit form: How to handle
> >>>>>> intermediate
> >>>>>
> >>>>>> A hook can save recomputation.
> >>>>>
> >>>>>> (computation with original data and reused me)ÃÂ (resuse me)
> >>>>>
> >>>>>
> >>>>>> ÃÂ ÃÂ test=: [: %: ([: -: +/) * [: */ ([: -: +/) - ]
> >>>>>
> >>>>>> ÃÂ ÃÂ NB. play with the half factor ÃÂ
> ÃÂ f=:ÃÂ ÃÂ ÃÂ 4 %~ [: %: [:
> >>>>>> */ (([ , (- +:))~ +/)
> >>>>>
> >>>>>> ÃÂ ÃÂ NB. shorter
> >>>>>
> >>>>>> ÃÂ ÃÂ NB.ÃÂ ÃÂ ÃÂ c o m p u t a t i o
> nÃÂ ÃÂ ÃÂ r e u s e ÃÂ ÃÂ g=:ÃÂ ÃÂ
> >>>>>> ÃÂ ([: %: [: */ [ , -)~ÃÂ ÃÂ ÃÂ ÃÂ ([: -: +/)
> >>>>>
> >>>>>> ÃÂ ÃÂ g2=:ÃÂ ÃÂ ([: %: [: */ [ , -)~ -:@:(+/)
> >>>>>
> >>>>>
> >>>>>> ÃÂ ÃÂ %/ (g , test) 3?@:$0
> >>>>>> 1
> >>>>>
> >>>>>
> >>>>>> On 09/04/2018 08:00 AM,
> programming-requ...@forums.jsoftware.com wrote:
> >>>>>>> Date: Tue, 04 Sep 2018 11:50:43 +0000
> >>>>>>> From: Martin Kreuzer<i...@airkreuzer.com>
> >>>>>>> To:programm...@jsoftware.com
> >>>>>>> Subject: [Jprogramming] Tacit form: How to handle intermediate
> >>>>>>> result..?
> >>>>>>> Message-ID:
> >>>>>>> <5b8e71a5.1c69fb81.65e5c.4a9esmtpin_added_miss...@mx.google.co
> >>>>>>> m>
> >>>>>>> Content-Type: text/plain; charset="us-ascii"; format=flowed
> >>>>>>>
> >>>>>>> Hi all -
> >>>>>>>
> >>>>>>> To calculate the area of a flat triangle, using Heron's
> >>>>>>> formula, A(a,b,c)= sqrt( s2*(s2-a)*(s2-b)*(s2-c) ) I wrote a
> >>>>>>> simple function doing this:
> >>>>>>>
> >>>>>>> * get the three sides (as list input y)
> >>>>>>> * compute the half perimeter s2
> >>>>>>> * build the differences s2-y
> >>>>>>> * build product
> >>>>>>> * take square root
> >>>>>>>
> >>>>>>> My explicit solution looks like this
> >>>>>>>
> >>>>>>> taher=: 13 : '%: s2 * */ s2-y [ s2=. -: +/ y'
> >>>>>>>
> >>>>>>> and works
> >>>>>>>
> >>>>>>> taher 3 4 5
> >>>>>>> 6
> >>>>>>>
> >>>>>>> Suggested tacit version looks like this (and works too)
> >>>>>>>
> >>>>>>> tahert=: [: %: ([: -: +/) * [: */ ([: -: +/) - ]
> >>>>>>>
> >>>>>>> Q: Is there a way to reference the intermediate result of ([: -:
> >>>>>>> +/) the half perimeter s2 within the tacit expression, as has
> >>>>>>> +been
> >>>>>>> done in the explicit..?
> >>>>>>> [Guess the interpreter takes care of this anyway; my question
> >>>>>>> aims at whether a shorter formulation could be reached.]
> >>>>>>>
> >>>>>>> Thanks
> >>>>>>> -M
> >>>>>> ---------------------------------------------------------------
> >>>>>> --
> >>>>>> -
> >>>>>> --
> >>>>>> --
> >>>>>> For information about J forums see
> >>>>>> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%
> >>>>>> 2F
> >>>>>> w
> >>>>>> ww
> >>>>>> .jsoftware.com%2Fforums.htm&data=02%7C01%7C%7C8d21472404434
> >>>>>> 85
> >>>>>> c
> >>>>>> 7f
> >>>>>> 8c08d61445ac18%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636
> >>>>>> 71
> >>>>>> 8
> >>>>>> 68
> >>>>>> 6798916834&sdata=Yuys8QE3yMvBtUraCohR9dRgPugZDeNaNh3BoBCzJj
> >>>>>> U%
> >>>>>> 3
> >>>>>> D&
> >>>>>> amp;reserved=0
> >>>>>> ---------------------------------------------------------------
> >>>>>> --
> >>>>>> -
> >>>>>> --
> >>>>>> -- For information about J forums see
> >>>>>> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%
> >>>>>> 2F
> >>>>>> w
> >>>>>> ww
> >>>>>>
> <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2>>>>>
> > F
> >>>>>> www> .jsoftware.com
> >>>>>>
> <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2>>>>>
> > F
> >>>>>> jsoftware.com%2F&data=02%7C01%7C%7Cc059f09bd44446fc424708d6
> >>>>>> 19
> >>>>>> 2
> >>>>>> 8c374%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636724060199
> >>>>>> 44
> >>>>>> 7
> >>>>>> 363&sdata=7%2BW%2FWnVdGUyO5afICJRXaEqL4lZbDhslLmJ%2BUZmjYbA
> >>>>>> %3
> >>>>>> D
> >>>>>> &reserved=0>%2Fforums.htm&data=02%7C01%7C%7Cfbcf68689be
> >>>>>> d4
> >>>>>> e
> >>>>>> 31e2
> >>>>>> 8108d615b2cfcc%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636
> >>>>>> 72
> >>>>>> 0
> >>>>>> 25
> >>>>>> 5064176871&sdata=0sleKYElksLSP%2BOT8BYYtyzcuL3GTBuL14taSrgJ
> >>>>>> QS
> >>>>>> 8
> >>>>>> %3
> >>>>>> D&reserved=0
> >>>>>
> >>>>>
> >>>>>
> >>>>> ---
> >>>>> This email has been checked for viruses by Avast antivirus software.
> >>>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%
> >>>>> 2F
> >>>>> w
> >>>>> ww
> >>>>>
> <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2>>>>
> > F
> >>>>> www> .avast.com
> >>>>>
> <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2F>>>>
> > a
> >>>>> vast.com%2F&data=02%7C01%7C%7Cc059f09bd44446fc424708d61928c3
> >>>>> 74
> >>>>> %
> >>>>> 7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636724060199447363&
> >>>>> am
> >>>>> p
> >>>>> ;sdata=XUS7U9Sp%2Fsu9gliyJpYPu%2BHef8xB0i5gk5HcNcCNgWY%3D&re
> >>>>> se
> >>>>> r
> >>>>> ved=0>%2Fantivirus&data=02%7C01%7C%7Cfbcf68689bed4e31e28108d
> >>>>> 6
> >>>>> 15b2cfcc%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C6367202550
> >>>>> 64
> >>>>> 1
> >>>>> 76
> >>>>> 871&sdata=kMQGWHLjMejRbJOuSn5EvWU4j39TqVPCX73QNKV6k7g%3D&
> >>>>> ;r
> >>>>> e
> >>>>> se
> >>>>> rved=0
> >>>>> ----------------------------------------------------------------
> >>>>> --
> >>>>> -
> >>>>> --
> >>>>> - For information about J forums see
> >>>>>
> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww
> <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww>.
> >>>>> jsoftware.com
> >>>>>
> <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2F>>>>
> > j
> >>>>> software.com%2F&data=02%7C01%7C%7Cc059f09bd44446fc424708d619
> >>>>> 28
> >>>>> c
> >>>>> 374%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636724060199447
> >>>>> 36
> >>>>> 3
> >>>>> &sdata=7%2BW%2FWnVdGUyO5afICJRXaEqL4lZbDhslLmJ%2BUZmjYbA%3D&
> >>>>> am
> >>>>> p
> >>>>> ;reserved=0>%2Fforums.htm&data=02%7C01%7C%7Cfbcf68689bed4e31
> >>>>> e2
> >>>>> 8
> >>>>> 1
> >>>>> 08d615b2cfcc%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636720
> >>>>> 25
> >>>>> 5
> >>>>> 06
> >>>>> 4176871&sdata=0sleKYElksLSP%2BOT8BYYtyzcuL3GTBuL14taSrgJQS8%
> >>>>> 3D
> >>>>> &
> >>>>> am
> >>>>> p;reserved=0
> >>>>
> >>>> -----------------------------------------------------------------
> >>>> --
> >>>> -
> >>>> --
> >>>> For information about J forums see
> >>>> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2F
> >>>> ww
> >>>> w
> >>>> .j
> >>>>
> <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fw>>>
> > w
> >>>> w.j> software.com
> >>>>
> <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fs>>>
> > o
> >>>> ftware.com%2F&data=02%7C01%7C%7Cc059f09bd44446fc424708d61928c
> >>>> 37
> >>>> 4
> >>>> %7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636724060199447363&
> >>>> am
> >>>> p
> >>>> ;sdata=I5dd02BNrDeI3jYXGw0GcF7sw%2BdPwPm2Fx4TjtCFsXI%3D&reser
> >>>> ve
> >>>> d
> >>>> =0>%2Fforums.htm&data=02%7C01%7C%7Cfbcf68689bed4e31e28108
> >>>> d615b2cfcc%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636720255
> >>>> 06
> >>>> 4
> >>>> 17
> >>>> 6871&sdata=0sleKYElksLSP%2BOT8BYYtyzcuL3GTBuL14taSrgJQS8%3D&a
> >>>> mp
> >>>> ;
> >>>> re
> >>>> served=0
> >>>
> >>> ------------------------------------------------------------------
> >>> --
> >>> -
> >>> - For information about J forums see
> >>> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.
> >>> jsoftware.com%2Fforums.htm&data=02%7C01%7C%7Cfbcf68689bed4e31e
> >>> 28
> >>> 1
> >>> 08d615b2cfcc%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C63672025
> >>> 50
> >>> 6
> >>> 4176871&sdata=0sleKYElksLSP%2BOT8BYYtyzcuL3GTBuL14taSrgJQS8%3D
> >>> &a
> >>> m
> >>> p;reserved=0
> >>>
<https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2F> >>> ww>>> w
> >>> .jsoftware.com%2Fforums.htm&data=02%7C01%7C%7Cfbcf68689bed4e31
> >>> e2
> >>> 8
> >>> 108d615b2cfcc%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C6367202
> >>> 55
> >>> 0
> >>> 64176871&sdata=0sleKYElksLSP%2BOT8BYYtyzcuL3GTBuL14taSrgJQS8%3
> >>> D&
> >>> a
> >>> mp;reserved=0>
> >>> ------------------------------------------------------------------
> >>> --
> >>> -
> >>> - For information about J forums see
> >>> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.
> >>> jsoftware.com%2Fforums.htm&data=02%7C01%7C%7Ce7a73deaeb854a9b4
> >>> fc
> >>> 2
> >>> 08d616d9b2cc%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C63672152
> >>> 15
> >>> 8
> >>> 8434559&sdata=EFzoMQ0co%2BInvoiD40hpSqWLJ6gWZVRGz4EbFGlJOcQ%3D
> >>> &a
> >>> m
> >>> p;reserved=0
> >>>
> <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fww>>
> > w
> >>> .jsoftware.com%2Fforums.htm&data=02%7C01%7C%7Ce7a73deaeb854a9b
> >>> 4f
> >>> c
> >>> 208d616d9b2cc%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C6367215
> >>> 21
> >>> 5
> >>> 88434559&sdata=EFzoMQ0co%2BInvoiD40hpSqWLJ6gWZVRGz4EbFGlJOcQ%3
> >>> D&
> >>> a
> >>> mp;reserved=0>
> >> -------------------------------------------------------------------
> >> --
> >> -
> >> For information about J forums see
> >> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.
> >> j
> >> software.com%2Fforums.htm&data=02%7C01%7C%7Ce7a73deaeb854a9b4fc
> >> 20
> >> 8
> >> d616d9b2cc%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C63672152158
> >> 84
> >> 3
> >> 4559&sdata=EFzoMQ0co%2BInvoiD40hpSqWLJ6gWZVRGz4EbFGlJOcQ%3D&
> >> ;r
> >> e
> >> served=0
> >>
> <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.> >>
> jsoftware.com%2Fforums.htm&data=02%7C01%7C%7Ce7a73deaeb854a9b4fc2
> >> 0
> >> 8d616d9b2cc%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C6367215215
> >> 88
> >> 4
> >> 34559&sdata=EFzoMQ0co%2BInvoiD40hpSqWLJ6gWZVRGz4EbFGlJOcQ%3D&am
> >> p;
> >> r
> >> eserved=0>
> >> -------------------------------------------------------------------
> >> --
> >> -
> >> For information about J forums see
> >> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.
> >> j
> >> software.com%2Fforums.htm&data=02%7C01%7C%7Cc059f09bd44446fc424
> >> 70
> >> 8
> >> d61928c374%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C63672406019
> >> 94
> >> 4
> >> 7363&sdata=b9I4sMX5jSddFL6qyxLiN3W1DBv2S51N1UjbNoO6zVQ%3D&r
> >> es
> >> e
> >> rved=0
> >>
> <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.> >>
> jsoftware.com%2Fforums.htm&data=02%7C01%7C%7Cc059f09bd44446fc4247
> >> 0
> >> 8d61928c374%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C6367240601
> >> 99
> >> 4
> >> 47363&sdata=b9I4sMX5jSddFL6qyxLiN3W1DBv2S51N1UjbNoO6zVQ%3D&
> >> re
> >> s
> >> erved=0>
> > --------------------------------------------------------------------
> > --
> > For information about J forums see
> > https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww
> > .j
> > software.com%2Fforums.htm&data=02%7C01%7C%7Cc059f09bd44446fc4247
> > 08
> > d61928c374%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636724060199
> > 44
> > 7363&sdata=b9I4sMX5jSddFL6qyxLiN3W1DBv2S51N1UjbNoO6zVQ%3D&re
> > se
> > rved=0
> > --------------------------------------------------------------------
> > --
> > For information about J forums see
> > https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww
> > .j
> > software.com%2Fforums.htm&data=02%7C01%7C%7C237bc63d997246b70661
> > 08
> > d619416625%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636724166001
> > 41
> > 8640&sdata=Jp5nfDw%2B3SBLBgQKH84M2zVtZ72SONyBNlxcLSKaDaQ%3D&
> > re
> > served=0
>
>----------------------------------------------------------------------
>For information about J forums see
>https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.js
>oftware.com%2Fforums.htm&data=02%7C01%7C%7C237bc63d997246b7066108d6
>19416625%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C63672416600141864
>0&sdata=Jp5nfDw%2B3SBLBgQKH84M2zVtZ72SONyBNlxcLSKaDaQ%3D&reserv
>ed=0
>----------------------------------------------------------------------
>For information about J forums see
>https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.js
>oftware.com%2Fforums.htm&data=02%7C01%7C%7C919e497619ad428e956908d6
>198ca83b%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C63672448923576846
>7&sdata=lo61DAxsCrYJWfdZ7JYexQBOPVnLhctTOxZiWhlZXcQ%3D&reserved
>=0
----------------------------------------------------------------------
For information about J forums see
https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.jsoftware.com%2Fforums.htm&data=02%7C01%7C%7C919e497619ad428e956908d6198ca83b%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636724489235768467&sdata=lo61DAxsCrYJWfdZ7JYexQBOPVnLhctTOxZiWhlZXcQ%3D&reserved=0
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm