RMS On Header Files and Derivative Works
tomhudson writes "In this email from 2003, Richard Stallman says 'I've talked with our lawyer about one specific issue that you raised: that of
using simple material from header files. Someone recently made the claim that including a header file always
makes a derivative work. That's not the FSF's view. Our view is that just using structure
definitions, typedefs, enumeration constants, macros with simple
bodies, etc., is NOT enough to make a derivative work. It would take
a substantial amount of code (coming from inline functions or macros
with substantial bodies) to do that.' This should help end the recent FUD about the Android 'clean headers.'"
I've hear it suggested by a number of lawyers that the _specification_ a binary interface of a library is a statement of fact, rather than a creative work. Since copyright does not apply to statements of fact this would suggest that structure definitions and the like would not be subject to copyright, and by extension the is no issue regarding derivative works. Of course you could probably as the same lawyers on a different day (or with a different person paying the bills) and get a different answer, but the concept seems to make sense.
If intelligent life is too complex to evolve on its own, who designed God?
How the fuck do we decide what a "substantial amount of code" actually is? Where exactly is the boundary? More importantly, is it a boundary that shifts when convenient for political reasons?
This is a really good example of why any open source code should just use a liberal license. It doesn't matter if it's a BSD-derived license, or the MIT/X11 license, or the zlib/libpng license, or some other non-GNU license. It just needs to be a license that promotes a very free and open use of the code in question, without all of this bullshit about "derivative works" and the near-nonsensical deliberation that goes along with it.
You can say fuck on slashdot dude. Hell, you can type anything you want at zombocom er slashdot.
this invalidates everything rms says about free software, right ?
please. the regulars of this place are not your ordinary morons like in american public who would immediately fall for a character assassination and just forget what's what and what's not, even if accusations are true.
software, is software. pedophilia is pedophilia. opinions about pedophilia, are opinions about pedophilia.
one needs cognitive power as much to be able to differentiate in between this 3 set of concepts in order to be able to talk in slashdot and get proper attention.
Read radical news here
How the fuck do we decide what a "substantial amount of code" actually is? Where exactly is the boundary?
Free Software zealot: "substantial amount of code" == one line
Corporate America: "substantial amount of code" == entire program.
IP Lawyers: "substantial amount of code" == new Porsche.
First of all, it's his right to agree with this. Some even more famous minds agree with this. Pedophilia wasn't always a taboo.
Second of all, his opinion on sexual ethics is completely irrelevant here. We're talking about Free Software and copyrights. He happens to be an expert in that area, seeing as he kind of invented it. Not to mention that it would probably be his FSF doing the suing if the header files turned out to be an issue.
This should help end the recent FUD about the Android 'clean headers.
you must be new here..
No, I just believe that the FUD-packers will now try something else.
They don't seem to get it - that there are now a critical mass of people who not only don't buy into the FUD, but have an ideological interest in exposing the FUD for what it is.
Now that we've got the numbers, FUD not only becomes less effective for the other side, but draws attention to just how much of a threat open source is to them, and how hollow their arguments really are.
Think of it. This was an attack on Android specifically designed to get hand-set vendors worried that they would have to share their source, not just the usual "linux may have copyright problems blah blah blah". It failed, and in doing so discredits all the other similar FUD. People like Florian Mueller are the internet version of the boy who cried wolf - at this point, even if he did find something, who'd believe him?
Uh, what relevance does the original copyright license hold if the modified headers are no longer considered to be under copyright?
Can someone explain something to me... how does anyone but Linus Torvalds have the standing to file an action or even complain about this? He owns the copyright, shouldn't he be the one that decides that something is in violation.
I know that FSF has brought actions in some rare cases, but isn't that on behalf of the real owner of the copyright?
Anyway.. it does seem like if FSF and Linus don't have a problem with what was done there is nothing to talk about. Am I oversimplifying this?
In the more specific case of linux, you might also want to see the COPYING file, which is a modified version of the GPL v2 that explicitly states that using the header files to access kernel services doesn't create a derivative work, which was the whole point of the FUD-packers campaign, to convince handset manufacturers that there was a risk that their Android code was a derivative work and they'd have to share their source.
Hope this clears it up a bit :-
People think RMS is unreasonable and as grasping as some of the commercialists he decries. Not in my experience.
I've had the same sort of [slow] email chat with him, and he is far more technical (and reasonable). I wouldn't want to speak for him, but the closest I got was that if source produced executable binary, then it was derivative. If the included source only affected the production of executable generated by other source, it was not derivative.
There is nothing new, only unique combinations of old old shit. Copyright is insane. Except, I guess, in the predatory society we live in.
For justice, we must go to Don Corleone
So at least in C++, the header files could just specify interfaces or they could specify the entire program source code.
I thought the initial news was that copyrights were removed from the Android glib files and replaced by a mention it's public domain. If they are not removed there is no reason indeed to talk about this (except the news was false). If they are removed most of the comments about "including headers creates derived work or not" is not related to the subject IMO, then the main subject is that Google tried to removed the copyrights.
So, using the headers to access kernel services does not create a derivative work.
This is over and above that the files in question have been stripped of copyrightable content.
Theo, is that you?
"First they came for the slanderers and i said nothing."
Corporate America issues takedown notices for people using 10 second clips of 2-hour videos, for gamers distributing 1 binary file out of the 60,000 shipped, for forum-posting 1 source file of a leaked codebase, for blogging a mathematical constant. To businesses, 'substantial' means "anything that we do not control."
> unless you know of a higher court than the Supreme Court of the USofA
Yes, I wonder what God thinks about this whole issue.
The FSF is NOT the copyright holder of the Linux _kernel_ (or most of it).
... a derivative work?
Sure, if you're a small independent developer at home, you might feel secure about this statement, but in reality, you were never at risk at all. You're just too small for this to matter.
If you're a big company, what really matters is how your own legal department interprets this. But of course, if you're big enough to have your own legal department, perhaps you can just buy a commercially available equivalent or implement your own from scratch. (This does, perhaps, create headaches for people who want open source interoperability, since the big company legal interpretation can cause huge problems if trying to get everyone to standardize on an interface that could be interpreted as being encumbered.)
Where you're really screwed is if you're a small startup company. You feel like a small independent developer at the time and might even feel secure with "RMS said it was okay." But then when it comes time that you need to get acquired in order to have an exit, you find that no buyers will touch you with a 10 foot pole because of a legal consensus that the issue is too vague and exposes the buyer to considerable legal risk. Then, all your years of hard work are down the drain.
Around 1994, they allowed viral-free bison output.
Who else is fed up by Florian Mueller's antics?
I sense a new slashdot poll
What do you think of Florian Mueller's antics?
[_] Florian Mueller's blog is the new goatse link. "Oww! My MIND! Quick, get the brain bleach!"
[X] I just want to know who's paying for it.
[_] "I'm an anonymous coward and I approve" -- Florian Mueller
[_] "Damn, forgot to check 'Post Anonymously' -- Florian Mueller
[_] Hey, it generates page hits and sells ads -- editors
[_] I am Steve Ballmer and I approve of Florian Mueller's antics
[_] In Soviet Russia, everyone trolls Florian Mueller.
[_] Florian Mueller had an original idea that wasn't a troll. It died of loneliness.
[_] A grue ate him. Nothing of consequence was lost.
[_] 104% of 42 respondents preferred CowboyNeal.
This latest attempt to generate FUD pretty much seals the deal - his 15 minutes are SO over.
I'd suggest the fair use guidelines. Since the GPL is primarily protected by copyright, these apply anyway.
These guidelines that take into account many factors including the amount copied relative to the greater work, the effect on the original work, and the nature of the use.
I have always wondered about C++ header files. Take the Standard C++ Library, things like like the file "algorithm". Here you have the entire implementation of things like sort written as a template function which gets instantiated into actual code compiled and linked into your project. I presume such header files can be copyrighted. It actually requires thinking to do a good implementation of a template function doing sort (typically IntroSort). Since the instantiation gets compiled into your code what license covers your project?
... for providing a reference. This is a pretty conclusive statement, and definitely clears things up for me. I apologize if my comments in the previous discussion on the use of kernel headers by Android mislead someone (IANAL and all that).
It wasn't because of header files. It was because the code generated by Bison (actual .c files) would be licensed under GPL, because it was a derived work of a GPL-licensed template, and included the GPL copyright comment.
Due to problems with this arrangement, they have added this bit to the output:
but this was after 1990.
In any case, this has absolutely nothing to do with header files.
When he says 'substantial' I hear 'non-empty'. You can't link to a single function in a dynamic library without creating a derivative work. So be sure you strip out all inline functions and macros from GPL header files and just use the structures, typedefs, and enums. Just to be safe. And goodbye C++ templates.
RMS commits a logic error here. He's much more lucid on other issues.
The curiosity of a child towards sex is voluntary only in a desert island, here a child is subjected to all explicit and implicit stimulation of sexual urges which is standard practice in marketing. There is also no doubt that a child can be easily convinced to do stuff by clever and determined people. Finally, proving something "comes from his will" is not feasible today and a legal nightmare. So while his statement is true in theory it is irrelevant in practice. If a little baby is maturing let him mature with his peers, no problem with that.
That "think of the children" is used to push another agenda (control of the internet), is also true, but a completely independent problem. Ironically an unreasonably restrictive stance helps putting paedophiles on the side of freedom fighters(a teen shooting nudes of herself is accused of trafficking child pornography? Madness. Nail the buyer instead). Very stupid.
---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
> Pedophilia wasn't always a taboo.
Nor human sacrifices. Nor slavery (oh wait we are slaves today nvm)
And anyway the correct term shoud be pederasty.
I agree with RMS on headers, those are interfaces.
---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
Writing a license and knowing exactly how a court of law will interpret that license are two entirely different things. We now may know the intent of the license, but until it's tested in court, that intent means nothing.
I agree with RMS on this one. So, now you have it from the highest source.
And to further support the parent's point, just look at the first section of the GPL, which original poster left out:
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
Thus if using headers does not constitute a derivative work with regards to copyright law, then the GPL does not apply to works that use (only) those headers. The next two sections of the GPL which were quoted contain language that supports this:
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
"Clearly this evolution thing needs more bug testing. I've created a race largely composed of idiots."
Were you trying to be incorrect on every level? The issue at hand is not Dalvik, the issue at had IS the native C API in Android. which you claim does not exist.
XML is a known as a key material required to create SMD: Software of Mass Destruction
Computer Associates International, Inc. v. Altai, Inc. http://scholar.google.com/scholar_case?case=6976925648486076739&q=Computer+A ssociates+International,+Inc.+v.+Altai,+Inc.&hl=en&as_sdt=2,23&as_vi s=1 This is where the abstraction-filtration-comparison process was used in a copyright and trade secret case. The process the court must first determine the allegedly infringed program's constituent structural parts. Then, the parts are filtered to extract any non-protected elements. Non-protected elements include: elements made for efficiency (i.e. elements with a limited number of ways it can be expressed and thus incidental to the idea) elements dictated by external factors (i.e. standard techniques) design elements taken from the public domain Any of these non-protected elements are thrown out and the remaining elements are compared with the allegedly infringing program's elements to determine substantial similarity. So header files would be thrown out because of standard techniques and design elements taken from the public domain. The kernel header files mainly express the POSIX standards of communication between the system and programs. That is not to say ALL header files are not copyrightable. A header file used in an application may be copyrightable if it expresses something outside of the three excluded elements above in sufficient quantities. But in this instance the portions of the kernel header files that Google copied into a new file and distributed fall into one of the three exclusions from above. I am not a lawyer. This is not legal advice. Read the legal findings yourself or consult a real lawyer if you are concerned.
What the fuck are you talking about? None of those cases have anything to do with whether header files constitute a derivative work. Simply because several courts have found the GPL a valid license does not mean all parts of it apply exactly as the person who wrote it wants it to. The fact is also, the GPL doesn't really have shit to do with this. If reuse of header files constitutes a derivative work of any license, then it is for the GPL as well, since derivative work is a legal term with a legal definition non specific to any license. Granted, the nature of the issue at hand means it can't really be tested outside of some sort of Open Source license.
unless you know of a higher court than the Supreme Court of the USofA
The International Court of Justice?
Taken from Corporate America: "substantial amount of code" == one line
Taken by Corporate America: "substantial amount of code" == entire program.
First of all, what the FSFs opinion is on the matter is mostly irrelevant as this is about the meaning of "derived work" in copyright law. The FSF doesn't have the power to define what that is and should a court find the kernel headers are derived then the FSF has no power to grant exceptions on behalf of all the people that have used their license text.
As for the courts, they have gone very far to copyright all kinds of original expression. Short poems, a few notes from a song, short lyrics are all copyrighted. Perhaps not #define MAX( a, b ) if a > b return a else b; but if say there's a loop and you have a choice between C++ style iterator, Java-style iterator or a foreach syntax, that's starting to look a lot like an implementation choice and an original expression. Of course if the choices are few that can be ascribed to coincidence, but not if you consistently make exactly the same choices...
Live today, because you never know what tomorrow brings
What mathematical constant? You can encode many things as numbers, including stories, songs, movies, and the CSS and AACS encryption keys, but these are not mathematical constants.
As before, the parent is 100% incorrect. There are NO cases that are ON POINT here that have been decided by the US Supreme Court. To say otherwise is WISHFUL thinking.
There are a lot of open questions, and most importantly a lot of distinguishing facts in this case. If you want to rely on cases that can be - and have been - distinguished from this one, you can, but as an attorney, it is not what you should do. It is a bad idea to rely on a case, even from US Sup that is not directly on point and there are ABSOLUTELY NO CASES that are on point here. There are large differences in FACTS between this and what the US Sup has said. For those not familiar with the law, being on point means that you have the same set of facts. Distinguishing one case from another means that there are different sets of facts between cases. The parent post is 100% incorrect in saying this is "settled."
Similarly, regarding the COPYING file - there is a different between the 'access kernel services' and what is being done here and while RMS may be right, relying on the COPYING file when you have 1000s of people, any one of which may disagree with RMS and who can enforce the GPL, is a bad idea because a court may not agree.
Again, IAAL who has experience in this area. Which way a court will rule is an open question, but spreading incorrect information about what US Sup has said on the matter and being modded "informative" is typical, but gives a false sense of security to those who read it. Granted there may be FUD going on here, but your post that was modded "informative" was anything but - it presents ONE POSSIBLE OUTCOME, but that is all.
The law is not binary and here without the same set of facts you are incorrect that this is settled.
The only thing "settled" here is that this is completely unsettled given the GPL involvement, the nature of what exactly "compilations of facts" are etc. There are many ways to distinguish this case and saying otherwise is just plain irresponsible.
Thing is, Stallman is saying that just including a header file. eg. #include "stdio.h" does not make the program a derivative of stdio.h.
It doesn't however mean you can get stdio.h, remove all the comments and copyrights then pass that off as your own file, which is what Google have allegedly done.
The International Court of Justice?
I lol'd. Good luck with that.
Note that they've never sued anybody about this. It's just posturing.
The claim that the GPL has now been tested in court, while true, doesn't address this issue, and IMHO probably never will.
BTW, I addressed the exact same Eben Moglen quote (from a slashdot interview in February 03) on a discussion thread on the Python mailing list in November of that same year. About the only thing that has changed in the intervening 7 years is that there are now enough important non-GPLed opensource projects that it is much harder for Stallman and his acolytes to cow all the FOSS developers into believing that he's always right on everything.
He kindly told me that he thought about it, and this is not a case of violation.
However, he did not tell me anything about header files, so I suppose
we must assume he still thinks the same on this since 2003.
From what I gather in his 2003 e-mail, I believe their lawyer must have
thought of the "fair use" exceptions in copyright law, and indeed
simply quoting a few typedefs would fall under fair use (since it is not a
substantial portion). On the other hand, I have a hard time believing
that this goes for anything in "header files", in general. I think you
would have to ask him about the opinion of the FSF on header files,
and interface definitions in general in any language. Note that he did
not mention "function declarations". Read what he says carefully:
> Someone recently made the claim that including a header file always
> makes a derivative work.
>
> That's not the FSF's view. Our view is that just using structure
> definitions, typedefs, enumeration constants, macros with simple
> bodies, etc., is NOT enough to make a derivative work. It would take
> a substantial amount of code (coming from inline functions or macros
> with substantial bodies) to do that.
He explicitly says that for there to be a derivative work, it would take
a substantial amount of code. So, you can't just take a substantial
portion of a GPL'd program's (either an application of a library) *interface*
and release it under an arbitrary license. That is simply not permitted by the license.
I think there are trolls from some companies here that are trying to make it seem as
if you can use GPL'd libraries in any proprietary program. I am beginning to
suspect they already do that in other ways.
Best,
--exa--
Sure, but nowhere in the GPL is this batshit-insane definition of derivative work ever written. I will give RMS this -- unlike a lot of shrinkwrapped licenses, the GPL itself, as written, is mostly quite reasonable, and it would be hard to claim that people using it are engaging in copyright misuse. From GPL v3:
At least in the US, the mere creation of program B which can communicate with GPLed program A (not copying from or adapting program A) via an API doesn't require copyright permission, so the GPL doesn't cover any distribution of program B by itself, much as that appears to offend RMS's sense of fairness.
And since the GPL doesn't disallow running your own legally acquired copy of a program, you can certainly test your own program B with program A before you distribute B by itself.
The GPL teeth aren't about use. They're about distribution. So if I'm not distributing someone else's GPLed code, there are no worries. BTW, this happens all the time with open source projects that are BSD-licensed, but that can interoperate with GPLed components.
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far the universe is winning"
Slipping shoelaces ?
Are we onto humanism as relates to the GPL now? I thought that was thoroughly covered in 1998.
Help stamp out iliturcy.
Its worse than that. You forgot to mention the software engineers who are also idiots.
http://michaelsmith.id.au
err, Android's native C/C++ API was released June '09. It is the implementation of this very API that is under dispute.
The Linux COPYING file does not say that. Why do you keep lying about this?
Also, it appears you overlooked part of what RMS said, even though you quoted it: "It would take a substantial amount of code (coming from inline functions or macros with substantial bodies) to do that.". Guess what? The Linux headers have such. Oops.
Finally, you mention the Supreme Court. Could you cite some specific cases? I can't point out how you botched your understanding of what the Supreme Court says without more information. (I am confident you did botch it, because you've botched pretty much every other thing you've ever written on Slashdot concerning copyright and licensing).
Yes, I wonder what God thinks about this whole issue.
God three letters.... RMS three letters.... coincidence?
BM3
They're part of the reason why the universe is winning.
I had a sig once. It was lost in the great storm of '09.
The Linux COPYING file does not say that. Why do you keep lying about this?
Sure it does. Go read it. It's in the source distribution of the kernel. The very first lines, in fact, of the COPYING file:
Also, it appears you overlooked part of what RMS said, even though you quoted it: "It would take a substantial amount of code (coming from inline functions or macros with substantial bodies) to do that.". Guess what? The Linux headers have such. Oops.
Guess what? Bionic doesn't use the entire kernel, which hundreds of megabytes. Go read the README.txt that comes with Bionic for more info. Oh, wait, that's too much work, same as actually looking at the kernel COPYING file was.
Finally, you mention the Supreme Court. Could you cite some specific cases? I can't point out how you botched your understanding of what the Supreme Court says without more information. (I am confident you did botch it, because you've botched pretty much every other thing you've ever written on Slashdot concerning copyright and licensing).
The only one who's botched up anything is you, again.
In Feist vs Rural, the Supreme Court reversed the Appeal Court and stated that facts can not be copyrighted. Things like constants, POSIX standards, data structure declarations, etc., are facts, and can be copied from the headers with no problems.
Or look at Gates vs Bando, which delineates the Abstraction-Filtration-Comparison test to be used to decide if something is infringing.
Then you can look up "scenes a faire" to find out why certain other code, including small inline macros, are not necessarily protected by copyright even when included in an otherwise copyrighted work.
While I share RMS' opinion about factual descriptions of interfaces and data formats not being copyrightable (for Linux or anything else), this is a bogus argument for that view.
A license cannot define what a derivative work is; copyright law does that. At most, Linux's license can grant permission to people to use some parts of it in non-GPLed derivative works; it can't say whether or not you have done something that requires that permission.
Never pay attention to any wording in a license that tells you whether or not you have already become bound by that license. Anything in the license on that topic exists merely to persuade you (or to put it as nicely as possible, to "inform" you) of a certain point of view. This applies to everything from the BSD licenses to the nastiest proprietary ones. Only consult the license after you have determined that you want to do something that copyright law wouldn't, by default, permit you to do.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
A license cannot define what a derivative work is; copyright law does that. At most, Linux's license can grant permission to people to use some parts of it in non-GPLed derivative works; it can't say whether or not you have done something that requires that permission.
And that's exactly what the exception in the COPYING file does - it clarifies that the GPL (which forms most of the body of the COPYING file) does not apply with respect to using the headers to access kernel services because doing so does not create a derived work.
So while a license cannot define what a derivative work is, it can certainly waive any claims to you creating a derivative work, which is effectively what was done here.
This is, of course, consistent with copyright law, which makes it clear that interfaces, etc., are not protected by copyright. It's just nice to be able to point to the waiver instead of having to argue whether there's an issue of law :-)
The internet is a great thing.
Stallman, et al. have publicly taken the position that it doesn't matter who does the linking (the app developer or the customer), that it's still a violation.
I believe that if I write an application that needs a GPLed dynamic library component (for example, one that just happens to be available on most modern Linux distros), that I'm in the clear if I distribute the app. Or even if I distribute the app in a package that calls out the GPLed component as a dependency.
Now, I can easily believe that someone like Canonical might be in trouble if they distribute this app, because they're also distributing the GPLed library. But I think I would be fine just distributing my app, and I think that if I did so, the FSF might wail and gnash their teeth about it, but in the end they wouldn't do anything.
For example, the Eclipse license FAQ states that a plugin is not a derivative work, and yet that "Based upon the position of the Free Software Foundation, you may not combine EPL and GPL code in any scenario where linking exists between code made available under those licenses."
This is IBM very charitably saying "we don't believe this and don't care or enforce it, but obviously the FSF believes this deeply.
I, myself, contribute to a BSD licensed library that can make use of a GPLed library if it's installed. We don't distribute the GPLed library, so I don't think there is an issue. In a way, I'd actually like to see the FSF sue someone about this to get some caselaw on the subject, but they're way too smart for that. Much easier just to sling FUD, even if you do have to write all sorts of monotonous FAQs filled with half-truths. (At least, the FAQs do serve the valid purpose of keeping someone from committing an actual license violation by shipping GPL and non-GPL code side by side, but all the dancing on the head of the pin to avoid admitting there are some nuanced cases that the GPL can't and doesn't control gets annoying after awhile.)
(2) I never said any tested licenses were "similar", just that they attempt (unsuccessfully) to control what the user can do, just like the GPL's attempt would be unsuccessful.
See, for example, Vault v. Quaid, Galoob v. Nintendo, MICRO STAR v FORMGEN, and Baystate v Bentley. Or even start with the granddaddy of them all, Sega v Accolade. Don't be fooled that Sega was a reverse-engineering/trademark case -- the 9th circuit directly addressed fair use in the appellate decision.
But you have to carefully read the reasoning to understand that these cases define some of the limits of copyright protection, and that no magic GPL pixie dust can extend those limits. The GPL is based on copyright, and grants users rights that bare copyright does not. It cannot take away those rights that copyright law already grants.
Obviously, my analysis was extremely US-centric. I can see how it could get very messy with cross-border lawsuits in countries with different caselaw, and won't even pretend that I've been exposed to, much less thought about, all the different issues involved.