• From JoyceUlysses.txt -- words occurring exactly once

    From HenHanna@21:1/5 to All on Thu May 30 13:03:33 2024
    Given a text file of a novel (JoyceUlysses.txt) ...

    could someone give me a pretty fast (and simple) Python program that'd
    give me a list of all words occurring exactly once?

    -- Also, a list of words occurring once, twice or 3 times



    re: hyphenated words (you can treat it anyway you like)

    but ideally, i'd treat [editor-in-chief]
    [go-ahead] [pen-knife]
    [know-how] [far-fetched] ...
    as one unit.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From dn@21:1/5 to HenHanna via Python-list on Fri May 31 09:18:44 2024
    On 31/05/24 08:03, HenHanna via Python-list wrote:

    Given a text file of a novel (JoyceUlysses.txt) ...

    could someone give me a pretty fast (and simple) Python program that'd
    give me a list of all words occurring exactly once?

                  -- Also, a list of words occurring once, twice or 3 times



    re: hyphenated words        (you can treat it anyway you like)

           but ideally, i'd treat  [editor-in-chief]
                                   [go-ahead]  [pen-knife]
                                   [know-how]  [far-fetched] ...
           as one unit.


    Did you mention the pay-rate for this work?


    Split into words - defined as you will.
    Use Counter.

    Show some (of your) code and we'll be happy to critique...
    --
    Regards,
    =dn

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From HenHanna@21:1/5 to All on Thu May 30 19:26:37 2024
    On 5/30/2024 2:18 PM, dn wrote:
    On 31/05/24 08:03, HenHanna via Python-list wrote:

    Given a text file of a novel (JoyceUlysses.txt) ...

    could someone give me a pretty fast (and simple) Python program that'd
    give me a list of all words occurring exactly once?

                   -- Also, a list of words occurring once, twice or 3 times



    re: hyphenated words        (you can treat it anyway you like)

            but ideally, i'd treat  [editor-in-chief]
                                    [go-ahead]  [pen-knife]
                                    [know-how]  [far-fetched] ...
            as one unit.



    Split into words - defined as you will.
    Use Counter.

    Show some (of your) code and we'll be happy to critique...


    hard to decide what to do with hyphens
    and apostrophes
    (I'd, he's, can't, haven't, A's and B's)


    2-step-Process

    1. make a file listing all words (one word per line)

    2. then, doing the counting. using
    from collections import Counter


    Related code (for 1) that i'd used before:

    Rfile = open("JoyceUlysses.txt", 'r')

    with open( 'Out.txt', 'w' ) as fo:
    for line in Rfile:
    line = line.rstrip()
    wLis = line.split()
    for w in wLis:
    if w != "":
    w = w.rstrip(";:,'\"[]()*&^%$#@!,./<>?_-+=")
    w = w.lstrip(";:,'\"[]()*&^%$#@!,./<>?_-+=")
    fo.write(w.lower())
    fo.write('\n')

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Pieter van Oostrum@21:1/5 to HenHanna on Fri May 31 14:39:37 2024
    HenHanna <[email protected]> writes:

    Given a text file of a novel (JoyceUlysses.txt) ...

    could someone give me a pretty fast (and simple) Python program that'd
    give me a list of all words occurring exactly once?

    -- Also, a list of words occurring once, twice or 3 times



    re: hyphenated words (you can treat it anyway you like)

    but ideally, i'd treat [editor-in-chief]
    [go-ahead] [pen-knife]
    [know-how] [far-fetched] ...
    as one unit.


    That is a famous Unix task : (Sorry, no Python)

    grep -o '\w*' JoyceUlysses.txt | sort | uniq -c | sort -n


    --
    Pieter van Oostrum <[email protected]>
    www: http://pieter.vanoostrum.org/
    PGP key: [8DAE142BE17999C4]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to HenHanna on Fri May 31 19:59:15 2024
    HenHanna wrote at 2024-5-30 13:03 -0700:

    Given a text file of a novel (JoyceUlysses.txt) ...

    could someone give me a pretty fast (and simple) Python program that'd
    give me a list of all words occurring exactly once?

    Your task can be split into several subtasks:
    * parse the text into words

    This depends on your notion of "word".
    In the simplest case, a word is any maximal sequence of non-whitespace
    characters. In this case, you can use `split` for this task

    * Make a list unique -- you can use `set` for this

    -- Also, a list of words occurring once, twice or 3 times

    For this you count the number of occurrences in a `list`.
    You can use the `count` method of lists for this.

    All individual subtasks are simple. I am confident that
    you will be able to solve them by yourself (if you are willing
    to invest a bit of time).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Passin@21:1/5 to HenHanna via Python-list on Fri May 31 17:27:00 2024
    On 5/30/2024 4:03 PM, HenHanna via Python-list wrote:

    Given a text file of a novel (JoyceUlysses.txt) ...

    could someone give me a pretty fast (and simple) Python program that'd
    give me a list of all words occurring exactly once?

                  -- Also, a list of words occurring once, twice or 3 times



    re: hyphenated words        (you can treat it anyway you like)

           but ideally, i'd treat  [editor-in-chief]
                                   [go-ahead]  [pen-knife]
                                   [know-how]  [far-fetched] ...
           as one unit.

    You will probably get a thousand different suggestions, but here's a
    fairly direct and readable one in Python:

    s1 = 'Is this word is the only word repeated in this string'

    counts = {}
    for w in s1.lower().split():
    counts[w] = counts.get(w, 0) + 1
    print(sorted(counts.items()))
    # [('in', 1), ('is', 2), ('only', 1), ('repeated', 1), ('string', 1),
    ('the', 1), ('this', 2), ('word', 2)]

    Of course you can adjust the definition of what constitutes a word,
    handle punctuation and so on, and tinker with the output format to suit yourself. You would replace s1.lower().split() with, e.g., my_custom_word_splitter(s1).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Peter J. Holzer@21:1/5 to HenHanna via Python-list on Sat Jun 1 10:04:29 2024
    On 2024-05-30 19:26:37 -0700, HenHanna via Python-list wrote:
    hard to decide what to do with hyphens
    and apostrophes
    (I'd, he's, can't, haven't, A's and B's)

    Especially since the same character is used as both an apostrophe and a
    closing quotation mark. And while that's pretty unambiguous between to characters it isn't at the end of a word:

    This is Alex’ house.
    This type of building is called an ‘Alex’ house.
    The sentence ‘We are meeting at Alex’ house’ contains an apostrophe.

    (using proper unicode quotation marks. It get's worse if you stick to
    ASCII.)

    Personally I like to use U+0027 APOSTROPHE as an apostrophe and U+2018
    LEFT SINGLE QUOTATION MARK and U+2019 RIGHT SINGLE QUOTATION MARK as
    single quotation marks[1], but despite the suggestive names, this is not
    the common typographical convention, so your texts are unlikely to make
    this distinction.

    hp

    [1] Which I use rarely, anyway.

    --
    _ | Peter J. Holzer | Story must make more sense than reality.
    |_|_) | |
    | | | [email protected] | -- Charles Stross, "Creative writing
    __/ | http://www.hjp.at/ | challenge!"

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEETtJbRjyPwVTYGJ5k8g5IURL+KF0FAmZa1ggACgkQ8g5IURL+ KF2R7Q//fb65EJLMp/Z8u6JNHMsLh5J03y5Ta7PQW+YTjZU53+DUikVacvU/8iPw TlbhxdNXdUS0MCKB/EYIJNIujgafkAvbH/ItxOKutBYdGUKo/udAxU0HVJlbixQ3 Q4K/feTMy9lAPWSa4t0VWk4CaSaU9uiRQEHQaS16U5NI38RAMoovzWVZXexfXcNH YiUrfvOMGI1yfIGzHleXGV5Zxx2HVVjWgbzKep63dKh6wlM6myev6q9ggw9/UpSL gEfCbE65m77gVp7g/3DQYaCZzJ5m4fK+rxyuJCJgNDWQ1MRN8B/ohnzbN20LjdFq x4VNzKjCNLiAziPicRsWk8toDMZ0dNdibTNFORX0z/UelvBED1si6kq8tsP88zwQ qPn4p4yO2ifg2n9aC4eUm6sq5GyoaWAeGmPEXM8jubv5PndTPqJPb+TsvFiAHx5p klblfJUabuEjCNKYiKKPSuHdFbxajKWRkcLbbATZZfDYg/75CCXgDhyD6XKumP9t dcT3TFHZzbJe4ZjCRLjHPMWNY5fHnJnDKUG+h7YmgkUW2S8EwG/L2tp8MnkQLvju tjm6Abi+MNNao3ySQJqqBAJ3d9aB6JS5Qru0LARPTV7pBPomTleeEcdY8Jc21VM2 Zn+NSbxSOlVw932rJJy09tWFjC04PTDsh9/QqPk
  • From Thomas Passin@21:1/5 to Peter J. Holzer via Python-list on Sat Jun 1 09:38:51 2024
    On 6/1/2024 4:04 AM, Peter J. Holzer via Python-list wrote:
    On 2024-05-30 19:26:37 -0700, HenHanna via Python-list wrote:
    hard to decide what to do with hyphens
    and apostrophes
    (I'd, he's, can't, haven't, A's and B's)

    Especially since the same character is used as both an apostrophe and a closing quotation mark. And while that's pretty unambiguous between to characters it isn't at the end of a word:

    This is Alex’ house.
    This type of building is called an ‘Alex’ house.
    The sentence ‘We are meeting at Alex’ house’ contains an apostrophe.

    (using proper unicode quotation marks. It get's worse if you stick to
    ASCII.)

    Personally I like to use U+0027 APOSTROPHE as an apostrophe and U+2018
    LEFT SINGLE QUOTATION MARK and U+2019 RIGHT SINGLE QUOTATION MARK as
    single quotation marks[1], but despite the suggestive names, this is not
    the common typographical convention, so your texts are unlikely to make
    this distinction.

    hp

    [1] Which I use rarely, anyway.

    My usual approach is to replace punctuation by spaces and then to
    discard anything remaining that is only one character long (or sometimes
    two, depending on what I'm working on). Yes, OK, I will miss words like
    "I". Usually I don't care about them. Make exceptions to the policy if
    you like.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mats Wichmann@21:1/5 to Just in case it hasn't All Been on Sat Jun 1 13:34:11 2024
    On 5/31/24 11:59, Dieter Maurer via Python-list wrote:

    hmmm, I "sent" this but there was some problem and it remained unsent.
    Just in case it hasn't All Been Said Already, here's the retry:

    HenHanna wrote at 2024-5-30 13:03 -0700:

    Given a text file of a novel (JoyceUlysses.txt) ...

    could someone give me a pretty fast (and simple) Python program that'd
    give me a list of all words occurring exactly once?

    Your task can be split into several subtasks:
    * parse the text into words

    This depends on your notion of "word".
    In the simplest case, a word is any maximal sequence of non-whitespace
    characters. In this case, you can use `split` for this task

    This piece is by far "the hard part", because of the ambiguity. For
    example, if I just say non-whitespace, then I get as distinct words
    followed by punctuation. What about hyphenation - of which there's both
    the compound word forms and the ones at the end of lines if the source
    text has been formatted that way. Are all-lowercase words different
    than the same word starting with a capital? What about non-initial
    capitals, as happens a fair bit in modern usage with acronyms,
    trademarks (perhaps not in Ulysses? :-) ), etc. What about accented letters?

    If you want what's at least a quick starting point to play with, you
    could use a very simple regex - a fair amount of thought has gone into
    what a "word character" is (\w), so it deals with excluding both
    punctuation and whitespace.

    import re
    from collections import Counter

    with open("JoyceUlysses/txt", "r") as f:
    wordcount = Counter(re.findall(r'\w+', f.read().lower()))

    Now you have a Counter object counting all the "words" with their
    occurrence counts (by this definition) in the document. You can fish
    through that to answer the questions asked (find entries with a count of
    1, 2, 3, etc.)

    Some people Go Big and use something that actually tries to recognize
    the language, and opposed to making assumptions from ranges of
    characters. nltk is a choice there. But at this point it's not really "simple" any longer (though nltk experts might end up disagreeing with
    that).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Edward Teach@21:1/5 to Mats Wichmann on Mon Jun 3 10:47:42 2024
    On Sat, 1 Jun 2024 13:34:11 -0600
    Mats Wichmann <[email protected]> wrote:

    On 5/31/24 11:59, Dieter Maurer via Python-list wrote:

    hmmm, I "sent" this but there was some problem and it remained
    unsent. Just in case it hasn't All Been Said Already, here's the
    retry:

    HenHanna wrote at 2024-5-30 13:03 -0700:

    Given a text file of a novel (JoyceUlysses.txt) ...

    could someone give me a pretty fast (and simple) Python program
    that'd give me a list of all words occurring exactly once?

    Your task can be split into several subtasks:
    * parse the text into words

    This depends on your notion of "word".
    In the simplest case, a word is any maximal sequence of
    non-whitespace characters. In this case, you can use `split` for
    this task

    This piece is by far "the hard part", because of the ambiguity. For
    example, if I just say non-whitespace, then I get as distinct words
    followed by punctuation. What about hyphenation - of which there's
    both the compound word forms and the ones at the end of lines if the
    source text has been formatted that way. Are all-lowercase words
    different than the same word starting with a capital? What about
    non-initial capitals, as happens a fair bit in modern usage with
    acronyms, trademarks (perhaps not in Ulysses? :-) ), etc. What about
    accented letters?

    If you want what's at least a quick starting point to play with, you
    could use a very simple regex - a fair amount of thought has gone
    into what a "word character" is (\w), so it deals with excluding both punctuation and whitespace.

    import re
    from collections import Counter

    with open("JoyceUlysses/txt", "r") as f:
    wordcount = Counter(re.findall(r'\w+', f.read().lower()))

    Now you have a Counter object counting all the "words" with their
    occurrence counts (by this definition) in the document. You can fish
    through that to answer the questions asked (find entries with a count
    of 1, 2, 3, etc.)

    Some people Go Big and use something that actually tries to recognize
    the language, and opposed to making assumptions from ranges of
    characters. nltk is a choice there. But at this point it's not
    really "simple" any longer (though nltk experts might end up
    disagreeing with that).



    The Gutenburg Project publishes "plain text". That's another problem,
    because "plain text" means UTF-8....and that means unicode...and that
    means running some sort of unicode-to-ascii conversion in order to get something like "words". A couple of hours....a couple of hundred lines
    of C....problem solved!

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Edward Teach@21:1/5 to Grant Edwards on Tue Jun 4 12:21:34 2024
    On Mon, 03 Jun 2024 14:58:26 -0400 (EDT)
    Grant Edwards <[email protected]> wrote:

    On 2024-06-03, Edward Teach via Python-list <[email protected]>
    wrote:

    The Gutenburg Project publishes "plain text". That's another
    problem, because "plain text" means UTF-8....and that means
    unicode...and that means running some sort of unicode-to-ascii
    conversion in order to get something like "words". A couple of
    hours....a couple of hundred lines of C....problem solved!

    I'm curious. Why does it need to be converted frum Unicode to ASCII?

    When you read it into Python, it gets converted right back to
    Unicode...




    Well.....when using the file linux.words as a useful master list of "words".....linux.words is strict ASCII........

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to Edward Teach on Tue Jun 4 18:13:47 2024
    Edward Teach wrote at 2024-6-3 10:47 +0100:
    ...
    The Gutenburg Project publishes "plain text". That's another problem, >because "plain text" means UTF-8....and that means unicode...and that
    means running some sort of unicode-to-ascii conversion in order to get >something like "words". A couple of hours....a couple of hundred lines
    of C....problem solved!

    Unicode supports the notion "owrd" even better "ASCII".
    For example, the `\w` (word charavter) regular expression wild card,
    works for Unicode like for ASCII (of course with enhanced letter,
    digits, punctuation, etc.)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From dn@21:1/5 to HenHanna via Python-list on Wed Jun 5 16:33:15 2024
    On 31/05/24 14:26, HenHanna via Python-list wrote:
    On 5/30/2024 2:18 PM, dn wrote:
    On 31/05/24 08:03, HenHanna via Python-list wrote:

    Given a text file of a novel (JoyceUlysses.txt) ...

    could someone give me a pretty fast (and simple) Python program
    that'd give me a list of all words occurring exactly once?

                   -- Also, a list of words occurring once, twice or 3 times



    re: hyphenated words        (you can treat it anyway you like)

            but ideally, i'd treat  [editor-in-chief]
                                    [go-ahead]  [pen-knife]
                                    [know-how]  [far-fetched] ...
            as one unit.



    Split into words - defined as you will.
    Use Counter.

    Show some (of your) code and we'll be happy to critique...


    hard to decide what to do with hyphens
                   and apostrophes
                 (I'd,  he's,  can't, haven't,  A's  and  B's)


    2-step-Process

              1. make a file listing all words (one word per line)

              2.  then, doing the counting.  using
                                  from collections import Counter


    Apologies for lateness - only just able to come back to this.

    This issue is not Python, and is not solved by code!

    If you/your teacher can't define a "word", the code, any code, will almost-certainly be wrong!


    One of the interesting aspects of our work is that we can write all
    manner of tests to try to ensure that the code is correct: unit tests, integration tests, system tests, acceptance tests, eye-tests, ...

    However, there is no such thing as a test (or proof) that statements of requirements are complete or correct!
    (nor for any other previous stages of the full project life-cycle)

    As coders we need to learn to require clear specifications and not
    attempt to read-between-the-lines, use our initiative, or otherwise 'not
    bother the ...'. When there is ambiguity, we should go back to the user/client/boss and seek clarification. They are the
    domain/subject-matter experts...

    I'm reminded of a cartoon, possibly from some IBM source, first seen in black-and-white but here in living-color: https://www.monolithic.org/blogs/presidents-sphere/what-the-customer-really-wants

    That has been the sad history of programming and dev.projects - wherein
    we are blamed for every short-coming, because no-one else understands
    the nuances of development projects.

    If we don't insist on clarity, are we our own worst enemy?


    --
    Regards,
    =dn

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Passin@21:1/5 to dn via Python-list on Wed Jun 5 07:10:19 2024
    On 6/5/2024 12:33 AM, dn via Python-list wrote:
    On 31/05/24 14:26, HenHanna via Python-list wrote:
    On 5/30/2024 2:18 PM, dn wrote:
    On 31/05/24 08:03, HenHanna via Python-list wrote:

    Given a text file of a novel (JoyceUlysses.txt) ...

    could someone give me a pretty fast (and simple) Python program
    that'd give me a list of all words occurring exactly once?

                   -- Also, a list of words occurring once, twice or 3
    times



    re: hyphenated words        (you can treat it anyway you like)

            but ideally, i'd treat  [editor-in-chief]
                                    [go-ahead]  [pen-knife]
                                    [know-how]  [far-fetched] ...
            as one unit.



    Split into words - defined as you will.
    Use Counter.

    Show some (of your) code and we'll be happy to critique...


    hard to decide what to do with hyphens
                    and apostrophes
                  (I'd,  he's,  can't, haven't,  A's  and  B's)


    2-step-Process

               1. make a file listing all words (one word per line)

               2.  then, doing the counting.  using
                                   from collections import Counter


    Apologies for lateness - only just able to come back to this.

    This issue is not Python, and is not solved by code!

    If you/your teacher can't define a "word", the code, any code, will almost-certainly be wrong!


    One of the interesting aspects of our work is that we can write all
    manner of tests to try to ensure that the code is correct: unit tests, integration tests, system tests, acceptance tests, eye-tests, ...

    However, there is no such thing as a test (or proof) that statements of requirements are complete or correct!
    (nor for any other previous stages of the full project life-cycle)

    As coders we need to learn to require clear specifications and not
    attempt to read-between-the-lines, use our initiative, or otherwise 'not bother the ...'. When there is ambiguity, we should go back to the user/client/boss and seek clarification. They are the
    domain/subject-matter experts...

    I'm reminded of a cartoon, possibly from some IBM source, first seen in black-and-white but here in living-color: https://www.monolithic.org/blogs/presidents-sphere/what-the-customer-really-wants

    That one's been kicking around for years ... good job in finding a link
    for it!

    That has been the sad history of programming and dev.projects - wherein
    we are blamed for every short-coming, because no-one else understands
    the nuances of development projects.

    Of course, we see this lack of clarity all the time in questions to the
    list. I often wonder how these askers can possibly come up with
    acceptable code if they don't realize they don't truly know what it's
    supposed to do.

    If we don't insist on clarity, are we our own worst enemy?



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stefan Ram@21:1/5 to Larry Martell on Sat Jun 8 16:06:07 2024
    Larry Martell <[email protected]> wrote or quoted:
    People need to see something to help them know what they really want.

    |The hardest single part of building a software system is
    |deciding precisely what to build.
    Brooks, F.P. Jr., The Mythical Man-Month: Essays on Software
    Engineering, Addison Wesley, Reading, MA, 1995, Second Edition.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mats Wichmann@21:1/5 to Thomas Passin via Python-list on Fri Jun 7 08:37:07 2024
    On 6/5/24 05:10, Thomas Passin via Python-list wrote:

    Of course, we see this lack of clarity all the time in questions to the list.  I often wonder how these askers can possibly come up with
    acceptable code if they don't realize they don't truly know what it's supposed to do.

    Fortunately, having to explain to someone else why something is giving
    you trouble can help shed light on the fact the problem statement isn't
    clear, or isn't clearly understood. Sometimes (sadly, many times it
    doesn't).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Passin@21:1/5 to Larry Martell via Python-list on Sat Jun 8 13:10:13 2024
    On 6/8/2024 11:54 AM, Larry Martell via Python-list wrote:
    On Sat, Jun 8, 2024 at 10:39 AM Mats Wichmann via Python-list < [email protected]> wrote:

    On 6/5/24 05:10, Thomas Passin via Python-list wrote:

    Of course, we see this lack of clarity all the time in questions to the
    list. I often wonder how these askers can possibly come up with
    acceptable code if they don't realize they don't truly know what it's
    supposed to do.

    Fortunately, having to explain to someone else why something is giving
    you trouble can help shed light on the fact the problem statement isn't
    clear, or isn't clearly understood. Sometimes (sadly, many times it
    doesn't).


    The original question struck me as homework or an interview question for a junior position. But having no clear requirements or specifications is good training for the real world where that is often the case. When you question that, you are told to just do something, and then you’re told it’s not what
    is wanted. That frustrates people but it’s often part of the process. People need to see something to help them know what they really want.

    At the extremes, there are two kinds of approaches you are alluding to.
    One is what I learned to call "rock management": "Bring me a rock ...
    no, that's not the right one, bring me another ... no that's not what
    I'm looking for, bring me another...". If this is your situation, so,
    so sorry!

    At the other end, there is a mutual evolution of the requirements
    because you and your client could not have known what they should be
    until you have spent effort and time feeling your way along. With the
    right client and management, this kind of project can be a joy to work
    on. I've been lucky enough to have worked on several projects of this kind.

    In truth, there always are requirements. Often (usually?) they are not
    thought out, not consistent, not articulated clearly, and not
    communicated well. They may live only in the mind of one person.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Passin@21:1/5 to All on Sat Jun 8 15:41:03 2024
    T24gNi84LzIwMjQgMjo0NiBQTSwgYXZpLmUuZ3Jvc3NAZ21haWwuY29tIHdyb3RlOg0KPiBB Z3JlZWQsIFRob21hcy4NCj4gDQo+IEFzIHNvbWVvbmUgd2hvIGhhcyBzcGVudCBsb3RzIG9m IHRpbWUgd3JpdGluZyBjb2RlIE9SIHJlcXVpcmVtZW50cyBvZiB2YXJpb3VzIGxldmVscyBv ciBoYXZpbmcgdG8gZGVhbCB3aXRoIHRoZSBidWdzIGFmdGVyd2FyZHMsIHRoZXJlIGNhbiBi ZSBhIGh1Z2UgZGlzY29ubmVjdCBiZXR3ZWVuIHRoZSBwZW9wbGUgdHJ5aW5nIHRvIGRlY2lk ZSB3aGF0IHRvIGRvIGFuZCB0aGUgcGVvcGxlIGhhdmluZyB0byBkbyBpdC4gSXQgaXMgbm90 IG5lY2Vzc2FyaWx5IGVhc3kgdG8gY29tZSBiYWNrIGxhdGVyIGFuZCBhc2sgZm9yIGNoYW5n ZXMgdGhhdCB3ZXdyZSBub3QgYW50aWNpcGF0ZWQgaW4gdGhlIGRlc2lnbiBvciBpbXBsZW1l bnRhdGlvbi4NCg0KQW5kIHR5cGljYWwgY29udHJhY3QgdmVoaWNsZXMgYXJlbid0IG9mdGVu IGZsZXhpYmxlIHRvIGFsbG93IGZvciB0aGlzIA0Ka2luZCBvZiB0aGluZy4gSSd2ZSBhbHdh eXMgdHJpZWQgdG8gcGVyc3VhZGUgbXkgbWFuYWdlbWVudCB0byBhbGxvdyANCmJ1aWx0LWlu IHBoYXNlcyB3aGVyZSByZS1ldmFsdWF0aW9uIGNhbiB0YWtlIHBsYWNlIGJhc2VkIG9uIHdo YXQncyBiZWVuIA0KbGVhcm5lZC4gVG8gaGF2ZSBhIGhvcGUgb2YgdGhhdCB3b3JraW5nLCB0 aG91Z2gsIHRoZXJlIG5lZWRzIHRvIGJlIGEgbG90IA0Kb2YgdHJ1c3QgYmV0d2VlbiBjbGll bnQgYW5kIGRldmVsb3BtZW50IGZvbGtzLiAgQ2FuIGJlIGhhcmQgdG8gY29tZSBieS4NCg0K PiBJIHJlY2VudGx5IHdyb3RlIGEgcHJvZ3JhbSB3aGVyZSB0aGUgb3JpZ2luYWwgc3BlY2lm aWNhdGlvbnMgc2VlbWVkIHJlYXNvbmFibGUuIEluIG9uZSBwYXJ0LCBJIHdhcyBhc2tlZCB0 byBtYWtlIGEgZ3JhcGggd2l0aCBzb21lIHJhbmRvbSBudW1iZXIgKG9yIGFsbCkgb2YgdGhl IGRhdGEgc2hvd24gYXMgYSBzZXJpZXMgb2YgY29ubmVjdGVkIGxpbmUgc2VnbWVudHMgc2hv d2luZyB2YWx1ZXMgZm9yIHRoZSBzYW1lIGVudGl0eSBhdCBkaWZmZXJlbnQgbWVhc3VyZW1l bnQgcGVyaW9kcyBhbmQgdGhlbiBzdXBlcmltcG9zZSB0aGUgbWVhbiBmb3IgYWxsIHRoZSBv cmlnaW5hbCBkYXRhLCBub3QganVzdCB0aGUgc3Vic2FtcGxlIHNob3duLiBUaGlzIG5lZWRl ZCB0byBiZSBkb25lIG9uIG11bHRpcGxlIHN1YnNhbXBsZXMgb2YgdGhlIG9yaWdpbmFsL2Nh bGN1bGF0ZWQgZGF0YSBzbyBJIG1hZGUgaXQgaW50byBhIGZ1bmN0aW9uLg0KPiANCj4gT25l IG9mIHRoZSBkYXRhc2V0cyBjb250YWluZWQgYSBjb2x1bW4gdGhhdCB3YXMgZWl0aGVyIEEg b3IgQiBhbmQgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gc2hv dyB3aGF0IGEgcmFuZG9tIHNhbXBsZSBvZiBBK0IsIGp1c3QgQSBhbmQganVzdCBCIGdyYXBo ZWQgbGlrZSBhbG9uZyB3aXRoIHRoZSBtZWFuIG9mIHRoZSBzcGVjaWZpYyBkYXRhIGl0IHdh cyBkcmF3biBmcm9tLiBCdXQgdGhlbiwgSSBnb3QgYW4gaW5ub2N1b3VzbHkgc2ltcGxlIHJl cXVlc3QuDQo+IA0KPiBDb3VsZCB3ZSBncmFwaCBBK0IgYW5kIG92ZXJsYXkgbm90IG9ubHkg dGhlIG1lYW5zIGZvciBBK0IgYXMgd2FzIG5vdyBkb25lLCBidXQgYWxzbyB0aGUgbWVhbiBm b3IgQSBhbmQgdGhlIG1lYW4gZm9yIEIuIElkZWFsbHksIHRoaXMgd291bGQgbWVhbiB0aHJl ZSBib2xkZXIgamFnZWQgbGluZXMgc3VwZXJpbXBvc2VkIGFib3ZlIHRoZSBwbG90IGFuZCBz ZWVtZWQgc2ltcGxlIGVub3VnaC4NCj4gDQo+IEJ1dCB3YXMgaXQ/IFRvIGdyYXBoIHRoZSBt ZWFucyBpbiB0aGUgZmlyc3QgcGxhY2UsIEkgbWFkZSBhIG1vcmUgY29tcGxleCBkYXRhIHN0 cnVjdHVyZSBuZWVkZWQgc28gd2hlbiBncmFwaGVkLCBpdCBhbGlnbmVkIHdlbGwgd2l0aCB3 aGF0IHdhcyBiZWxvdyBpdC4gQnV0IHRoYXQgd2FzIGhhcmQgY29kZWQgaW4gbXkgZnVuY3Rp b24sIGJ1dCBpbiBvbmUgaW1wbGVtZW50YXRpb24sIEkgbm93IG5lZWRlZCBpdCB0aHJlZSB0 aW1lcy4gRXh0cmFjdGluZyBpdCBpbnRvIGEgbmV3IGZ1bmN0aW9uIHdhcyBub3QgdHJpdmlh bCBhcyBpdCBkZXBlbmRlZCBpbml0aWFsbHkgb24gb3RoZXIgdGhpbmdzIHdpdGhpbiB0aGUg Ym9keSBvZiB0aGUgZnVuY3Rpb24uIEJ1dCwgaXQgd2FzIGRvYWJsZSBhbmQgbWlnaHQgaGF2 ZSBiZWVuIGRvbmUgdGhhdCB3YXkgaGFkIEkga25vd24gc3VjaCBhIG5lZWQgbWlnaHQgYXJp c2UuIEl0IG9mdGVuIGlzIGxpa2UgdGhhdCB3aGVuIHRoZXJlIHNlZW1zIG5vIG5lZWQgdG8g d3JpdGUgYSBmdW5jdGlvbiBmb3IganVzdCBvbmUgdXNlLiBUaGUgbWFpbiBmdW5jdGlvbiBu b3cgbmVlZGVkIHRvIGJlIG1vZGlmaWVkIHRvIGFsbG93IG9wdGlvbmFsbHkgYWRkaW5nIG9u ZSBvciB0d28gbW9yZSBkYXRhc2V0cyBhbmQgaWYgYXZhaWxhYmxlLCBjYWxsIHRoZSBuZXcg ZnVuY3Rpb24gb24gZWFjaCBhbmQgYWRkIGxheWVycyB0byB0aGUgZ3JhcGggd2l0aCB0aGUg YWRkaXRpb25hbCBtZWFucyAoZGFzaGVkIGFuZCBkb3R0ZWQpIGlmIHRoZXkgYXJlIGNhbGxl ZCB3aGlsZSBvdGhlcndpc2UsIHRoZSBmdW5jdGlvbiB3b3JrZWQgYXMgYmVmb3JlLg0KDQpJ IGZlZWwgeW91ciBwYWluLiBJbiB0aGUgZ2VuZXJhbGl6ZWQgWC1ZIGdyYXBoaW5nIHByb2dy YW0gSSd2ZSBldm9sdmVkIA0Kb3ZlciBzZXZlcmFsIGdlbmVyYXRpb25zLCBJIGhhdmUgZ3Jh cGhpbmcgbWV0aG9kcyB0aGF0IGNhbiBwbG90IHBvaW50cyANCmFuZCBjdXJ2ZXMsIG9wdGlv bmFsbHkgb3ZlcmxheWluZyB0aGVtLiAgQW55IGZ1bmN0aW9uIHRoYXQgd2FudHMgdG8gcGxv dCANCnNvbWV0aGluZyBoYXMgdG8gZ2VuZXJhdGUgYSBkYXRhc2V0IG9iamVjdCBvZiB0aGUg dHlwZSB0aGF0IHRoZSBwbG90dGVyIA0Ka25vd3MgaG93IHRvIHBsb3QuICBObyBleGNlcHRp b25zLiBOb3RoaW5nIGVsc2UgZXZlciBwbG90cyB0byB0aGUgDQpzY3JlZW4uICBJdCdzIHNp bXBsZSBhbmQgd29ya3MgdmVyeSB3ZWxsIC4uLiBidXQgSSBvbmx5IGRlc2lnbmVkIGl0IHRv IA0KaGF2ZSBheGlzIGxhYmVscyBhbmQgdGhlIHRpdGxlIG9mIHRoZSBwbG90LiBUaGV5IGFy ZSBhbGwgdGhyZWUgDQppbnRlcmFjdGl2ZSwgZWRpdGFibGUgYnkgdGhlIHVzZXIuICBUaGF0 J3MgZ29vZCwgYnV0IGZvciBhbnl0aGluZyBlbHNlIA0KaXQncyBoYWNrIHRpbWUuICBXaXRu ZXNzIGxpbmVzLCBsZWdlbmRzLCBwb2ludCBsYWJlbHMsIGV0Yy4sIGV0Yy4gZG9uJ3QgDQpo YXZlIGEgbmF0dXJhbCBob21lLg0KDQo+IEJ1dCBkaWQgSSBkbyBpdCByaWdodD8gV2VsbCwg aWYgbmV4dCB0aW1lIEkgYW0gYXNrZWQgdG8gaGF2ZSB0aGUgZGF0YSBleHRlbmRlZCB0byBo YXZlIG1vcmUgbWVhc3VyZW1lbnRzIGluIG1vcmUgY29sdW1ucyBhdCBtb3JlIHRpbWVzLCBJ IG1pZ2h0IGhhdmUgdG8gcmV3cml0ZSBxdWl0ZSBhIGJpdCBvZiB0aGUgY29kZS4gTXkgbG9j YWxpemVkIGNoYW5nZSBhbGxvd2VkIG9uZSBvciB0d28gYWRkaXRpb25hbCBtZWFucyB0byBi ZSBwbG90dGVkLiBBZGRpbmcgYW4gYXJiaXRyYXJ5IG51bWJlciB0YWtlcyBhIGRpZmZlcmVu dCBhcHByb2FjaCBhbmQsIGZyYW5rbHksIHRoZXJlIGFyZSBsaW1pdHMgb24gaG93IG1hbnkg a2luZHMgb2YgJ2xpbmUiIHNlZ21lbnRzIGNhbiBiZSB1c2VkIHRvIGRpZmZlcmVudGlhdGUg YW1vbmcgdGhlbS4NCg0KVGhpcyBpcyB0aGUga2luZCBvZiBzaXR1YXRpb24gd2hlcmUgaXQg bmVlZHMgdG8gYmUgaW1wbGVtZW50ZWQgdGhyZWUgDQp0aW1lcyBiZWZvcmUgaXQgZ2V0cyBn b29kLiAgT25lIGFsd2F5cyB0aGlua3MgdGhhdCB0aGUgc2Vjb25kIHRpbWUgDQphcm91bmQg d2lsbCB3b3JrIHdlbGwgYmVjYXVzZSBhbGwgdGhlIGxlc3NvbnMgd2VyZSBsZWFybmVkIHRo ZSBmaXJzdCANCnRpbWUgYXJvdW5kLiAgQnV0IG5vLCBpdCdzIG5vdCB0aGUgc2Vjb25kIGJ1 dCB0aGUgdGhpcmQgaW1wbGVtZW50YXRpb24gDQp0aGF0IGNhbiBzdGFydCB0byBiZSByZWFs bHkgZ29vZC4NCg0KPiBFbm91Z2ggb2YgdGhlIGV4YW1wbGUgZXhjZXB0IHRvIG1ha2UgYSBw b2ludC4gSW4gc29tZSBwcm9qZWN0cywgaXQgaXMgbm90IGVub3VnaCB0byB0ZWxsIGEgcHJv Z3JhbW1lciB3aGF0IHlvdSB3YW50IE5PVy4gWW91IG1heSBnZXQgd2hhdCB5b3Ugd2FudCBm YWlybHkgcXVpY2tseSBidXQgaWYgeW91IGhhdmUgaWRlYXMgb2YgcG9zc2libGUgZXh0ZW5z aW9ucyBvciBmdXR1cmUgdXBncmFkZXMsIGl0IHdvdWxkIGJlIHdpc2VyIHRvIG1ha2UgY2xl YXIgc29tZSBvZiB0aGUgZ29hbHMgc28gdGhlIHByb2dyYW1tZXIgY3JlYXRlcyBhbiBpbXBs ZW1lbnRhdGlvbiB0aGF0IGNhbiBiZSBtb3JlIGVhc2lseSBhZGp1c3RlZCB0byBkbyBtb3Jl LiBTdWNoIGNvZGUgY2FuIHRha2UgbG9uZ2VyIGFuZCBiZSBtb3JlIGNvbXBsZXggc28gaXQg bWF5IG5vdCBwYXkgb2ZmIGltbWVkaWF0ZWx5Lg0KPiANCj4gQnV0LCBoYXZpbmcgc2FpZCB0 aGF0LCBwbGVudHkgb2Ygc29mdHdhcmUgbWF5IGJlbmVmaXQgZnJvbSBsb29raW5nIGF0IHdo YXQgaXMgaGFwcGVuaW5nIGFuZCBhZGp1c3Rpbmcgb24gdGhlIGZseS4gQ2xlYXJseSBteSBj bGllbnQgY2Fubm90IGtub3cgd2hhdCBmZWVkYmFjayB0aGV5IG1heSBnZXQgd2hlbiBzaG93 aW5nIGFuIGFjdHVhbCByZXN1bHQgdG8gb3RoZXJzIHdobyB0aGVuIHN1Z2dlc3QgY2hhbmdl cyBvciBlbmhhbmNlbWVudHMuIFRoZSByZXN1bHRzIG1heSBub3QgYmUgYW50aWNpcGF0ZWQg c28gd2VsbCBpbiBhZHZhbmNlIGFuZCBlc3BlY2lhbGx5IG5vdCB3aGVuIHRoZSBjbGllbnQg aGFzIG5vIGlkZWEgd2hhdCBpcyBkb2FibGUgYW5kIHNvIG9uLg0KPiANCj4gQSByZWxhdGVk IGV4YW1wbGUgd2FzIGEgcmVxdWVzdCBmb3IgaG93IHRvIG1vZGlmeSBhIHNvcnQgb2YgVmVu biBEaWFncmFtICBjaGFydCB0byBjaGFuZ2UgdGhlIGZvbnQgc2l6ZS4gV2h5PyBCZWNhdXNl IHNvbWUgb2YgdGhlIGxhYmVscyB3ZXJlIGxvbmcgYW5kIHRoZSByZWxhdGl2ZSBzaXplcyBv ZiB0aGUgcGllIHNsaWNlcyB3ZXJlIG5vdCBrbm93biB0aWxsIGFuIGFuYWx5c2lzIG9mIHRo ZSBkYXRhIHByb2R1Y2VkIHRoZSBhcHByb3ByaWF0ZSBudW1iZXJzIGFuZCByYXRpb3MuIFRo aXMgd2FzIGEgY2FzZSB3aGVyZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZnVuY3Rpb24g dXNlZCBieSB0aGVtIGRpZCBub3Qgc3VnZ2VzdCBob3cgdG8gZG8gbWFueSB0aGluZ3MgYXMg aXQgY2FsbGVkIGEgZnVuY3Rpb24gdGhhdCBjYWxsZWQgb3RoZXJzIHRvIHF1aXRlIHNvbWUg ZGVwdGguIEEgZmV3IHNpbXBsZSBleHBlcmltZW50cyBhbmQgc29tZSBndWVzc2VzIGFuZCBl eHBsb3JhdGlvbiBzaG93ZWQgbWUgd2F5cyB0byBwYXNzIGFyZ3VtZW50cyBhbG9uZyB0aGF0 IHdlcmUgbm90IGRvY3VtZW50ZWQgYnV0IHRoYXQgd2VyZSBwYXNzZWQgcHJvcGVybHkgZG93 biB0aGUgY2hhaW4gYW5kIEkgY291bGQgbm93IGNoYW5nZSB0aGUgdGV4dCBzaXplIGFuZCBx dWl0ZSBhIGZldyBvdGhlciB0aGluZ3MuIEJ1dCBJIGFza2VkIG15c2VsZiBpZiB0aGlzIHdh cyByZWFsbHkgdGhlIHJpZ2h0IHNvbHV0aW9uIHRoZSBjbGllbnQgbmVlZGVkLiBJIHRoZW4g bWFkZSBhIGd1ZXNzIG9uIGhvdyBJIGNvdWxkIGdldCB0aGUgbG9uZyB0ZXh0IHdyYXBwZWQg aW50byBtdWx0aXBsZSBsaW5lcyB0aGF0IGZpdCBpbnRvIHRoZSBzZWN0aW9ucyBvZiB0aGUg VmVubiBEaWFncmFtIHdpdGhvdXQgc2hyaW5raW5nIHRoZSB0ZXh0IGF0IGFsbCwgb3IgYXMg bXVjaC4gVGhlIGNsaWVudCBoYWQgbm90IGNvbnNpZGVyZWQgdGhhdCBhcyBhbiBvcHRpb24s IGJ1dCBpdCB3YXMgYmV0dGVyIGZvciB0aGVpciBkaXNwbGF5IHRoYW4gcmVxdWlyZWQuIEJ1 dCB1bnRpbCBwZW9wbGUgc2VlIHN1Y2ggb3V0cHV0LCB1bmxlc3MgdGhleSBoYXZlIGxvdHMg b2YgZXhwZXJpZW5jZSwgaXQgY2Fubm90IGJlIGV4cGVjdGVkIHRoZXkgY2FuIHRlbGwgeW91 IHVwLWZyb250IHdoYXQgdGhleSB3YW50Lg0KPiANCj4gT25lIGRhbmdlciBvZiBsYW5ndWFn ZXMgbGlrZSBQeXRob24gaXMgdGhhdCBvZnRlbiBwZW9wbGUgZ2V0IHRoZSBjb2RlIHlvdSBz dXBwbHkgYW5kIG1vZGlmeSBpdCB0aGVtc2VsdmVzIG9yIHJldXNlIGl0IG9uIHNvbWUgcHJv amVjdCB0aGV5IGNvbnNpZGVyIHNpbWlsYXIuIFRoYXQgY2FuIGJlIGEgZ29vZCB0aGluZyBi dXQgb2Z0ZW4gYSBtZXNzIGFzIHlvdSB3cm90ZSB0aGUgY29kZSB0byBkbyB0aGluZ3MgaW4g YSBzcGVjaWZpYyB3YXkgZm9yIGEgc3BlY2lmaWMgcHVycG9zZSAuLi4NCj4gDQo+IA0KPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBQeXRob24tbGlzdCA8cHl0aG9u LWxpc3QtYm91bmNlcythdmkuZS5ncm9zcz1nbWFpbC5jb21AcHl0aG9uLm9yZz4gT24gQmVo YWxmIE9mIFRob21hcyBQYXNzaW4gdmlhIFB5dGhvbi1saXN0DQo+IFNlbnQ6IFNhdHVyZGF5 LCBKdW5lIDgsIDIwMjQgMToxMCBQTQ0KPiBUbzogcHl0aG9uLWxpc3RAcHl0aG9uLm9yZw0K PiBTdWJqZWN0OiBSZTogRnJvbSBKb3ljZVVseXNzZXMudHh0IC0tIHdvcmRzIG9jY3Vycmlu ZyBleGFjdGx5IG9uY2UNCj4gDQo+IE9uIDYvOC8yMDI0IDExOjU0IEFNLCBMYXJyeSBNYXJ0 ZWxsIHZpYSBQeXRob24tbGlzdCB3cm90ZToNCj4+IE9uIFNhdCwgSnVuIDgsIDIwMjQgYXQg MTA6MznigK9BTSBNYXRzIFdpY2htYW5uIHZpYSBQeXRob24tbGlzdCA8DQo+PiBweXRob24t bGlzdEBweXRob24ub3JnPiB3cm90ZToNCj4+DQo+Pj4gT24gNi81LzI0IDA1OjEwLCBUaG9t YXMgUGFzc2luIHZpYSBQeXRob24tbGlzdCB3cm90ZToNCj4+Pg0KPj4+PiBPZiBjb3Vyc2Us IHdlIHNlZSB0aGlzIGxhY2sgb2YgY2xhcml0eSBhbGwgdGhlIHRpbWUgaW4gcXVlc3Rpb25z IHRvIHRoZQ0KPj4+PiBsaXN0LiAgSSBvZnRlbiB3b25kZXIgaG93IHRoZXNlIGFza2VycyBj YW4gcG9zc2libHkgY29tZSB1cCB3aXRoDQo+Pj4+IGFjY2VwdGFibGUgY29kZSBpZiB0aGV5 IGRvbid0IHJlYWxpemUgdGhleSBkb24ndCB0cnVseSBrbm93IHdoYXQgaXQncw0KPj4+PiBz dXBwb3NlZCB0byBkby4NCj4+Pg0KPj4+IEZvcnR1bmF0ZWx5LCBoYXZpbmcgdG8gZXhwbGFp biB0byBzb21lb25lIGVsc2Ugd2h5IHNvbWV0aGluZyBpcyBnaXZpbmcNCj4+PiB5b3UgdHJv dWJsZSBjYW4gaGVscCBzaGVkIGxpZ2h0IG9uIHRoZSBmYWN0IHRoZSBwcm9ibGVtIHN0YXRl bWVudCBpc24ndA0KPj4+IGNsZWFyLCBvciBpc24ndCBjbGVhcmx5IHVuZGVyc3Rvb2QuIFNv bWV0aW1lcyAoc2FkbHksIG1hbnkgdGltZXMgaXQNCj4+PiBkb2Vzbid0KS4NCj4+DQo+Pg0K Pj4gVGhlIG9yaWdpbmFsIHF1ZXN0aW9uIHN0cnVjayBtZSBhcyBob21ld29yayBvciBhbiBp bnRlcnZpZXcgcXVlc3Rpb24gZm9yIGENCj4+IGp1bmlvciBwb3NpdGlvbi4gQnV0IGhhdmlu ZyBubyBjbGVhciByZXF1aXJlbWVudHMgb3Igc3BlY2lmaWNhdGlvbnMgaXMgZ29vZA0KPj4g dHJhaW5pbmcgZm9yIHRoZSByZWFsIHdvcmxkIHdoZXJlIHRoYXQgaXMgb2Z0ZW4gdGhlIGNh c2UuIFdoZW4geW91IHF1ZXN0aW9uDQo+PiB0aGF0LCB5b3UgYXJlIHRvbGQgdG8ganVzdCBk byBzb21ldGhpbmcsIGFuZCB0aGVuIHlvdeKAmXJlIHRvbGQgaXTigJlzIG5vdCB3aGF0DQo+ PiBpcyB3YW50ZWQuIFRoYXQgZnJ1c3RyYXRlcyBwZW9wbGUgYnV0IGl04oCZcyBvZnRlbiBw YXJ0IG9mIHRoZSBwcm9jZXNzLg0KPj4gUGVvcGxlIG5lZWQgdG8gc2VlIHNvbWV0aGluZyB0 byBoZWxwIHRoZW0ga25vdyB3aGF0IHRoZXkgcmVhbGx5IHdhbnQuDQo+IA0KPiBBdCB0aGUg ZXh0cmVtZXMsIHRoZXJlIGFyZSB0d28ga2luZHMgb2YgYXBwcm9hY2hlcyB5b3UgYXJlIGFs bHVkaW5nIHRvLg0KPiBPbmUgaXMgd2hhdCBJIGxlYXJuZWQgdG8gY2FsbCAicm9jayBtYW5h Z2VtZW50IjogIkJyaW5nIG1lIGEgcm9jayAuLi4NCj4gbm8sIHRoYXQncyBub3QgdGhlIHJp Z2h0IG9uZSwgYnJpbmcgbWUgYW5vdGhlciAuLi4gbm8gdGhhdCdzIG5vdCB3aGF0DQo+IEkn bSBsb29raW5nIGZvciwgYnJpbmcgbWUgYW5vdGhlci4uLiIuICBJZiB0aGlzIGlzIHlvdXIg c2l0dWF0aW9uLCBzbywNCj4gc28gc29ycnkhDQo+IA0KPiBBdCB0aGUgb3RoZXIgZW5kLCB0 aGVyZSBpcyBhIG11dHVhbCBldm9sdXRpb24gb2YgdGhlIHJlcXVpcmVtZW50cw0KPiBiZWNh dXNlIHlvdSBhbmQgeW91ciBjbGllbnQgY291bGQgbm90IGhhdmUga25vd24gd2hhdCB0aGV5 IHNob3VsZCBiZQ0KPiB1bnRpbCB5b3UgaGF2ZSBzcGVudCBlZmZvcnQgYW5kIHRpbWUgZmVl bGluZyB5b3VyIHdheSBhbG9uZy4gIFdpdGggdGhlDQo+IHJpZ2h0IGNsaWVudCBhbmQgbWFu YWdlbWVudCwgdGhpcyBraW5kIG9mIHByb2plY3QgY2FuIGJlIGEgam95IHRvIHdvcmsNCj4g b24uICBJJ3ZlIGJlZW4gbHVja3kgZW5vdWdoIHRvIGhhdmUgd29ya2VkIG9uIHNldmVyYWwg cHJvamVjdHMgb2YgdGhpcyBraW5kLg0KPiANCj4gSW4gdHJ1dGgsIHRoZXJlIGFsd2F5cyBh cmUgcmVxdWlyZW1lbnRzLiAgT2Z0ZW4gKHVzdWFsbHk/KSB0aGV5IGFyZSBub3QNCj4gdGhv dWdodCBvdXQsIG5vdCBjb25zaXN0ZW50LCBub3QgYXJ0aWN1bGF0ZWQgY2xlYXJseSwgYW5k IG5vdA0KPiBjb21tdW5pY2F0ZWQgd2VsbC4gVGhleSBtYXkgbGl2ZSBvbmx5IGluIHRoZSBt aW5kIG9mIG9uZSBwZXJzb24uDQo+IA0KDQo=

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)