Browse Source

Fix #271 - Change license to MIT

pull/297/head
Daniel Grunwald 12 years ago
parent
commit
6d13efe414
  1. 10
      README.txt
  2. 212
      TODOnewNR.txt
  3. 7
      buildsamples.bat
  4. 5
      doc/SharpDevelopInfoResources.txt
  5. 2
      doc/copyright.txt
  6. 479
      doc/license.txt
  7. 45
      src/AddIns/Analysis/CodeCoverage/Test/ExcludedModuleResultsTestFixture.cs
  8. 20
      src/AddIns/Analysis/CodeCoverage/Test/MockDocument.cs
  9. 83
      src/AddIns/Debugger/Debugger.Tests/Debugger.Tests.csproj~
  10. 2
      src/AddIns/Misc/PackageManagement/Packages/AvalonEdit.Sample/AvalonEdit.Sample.nuspec
  11. 4
      src/AddIns/Misc/PackageManagement/Packages/AvalonEdit/AvalonEdit.nuspec
  12. 2
      src/Libraries/NRefactory/doc/license.txt
  13. 2
      src/Main/Base/Project/Src/Gui/Dialogs/SharpDevelopAboutPanels.cs
  14. 2
      src/Main/GlobalAssemblyInfo.cs.template
  15. 1
      src/Main/GlobalAssemblyInfo.vb.template
  16. 640
      src/Setup/License.rtf
  17. 13
      src/Tools/CheckFileHeaders/CheckFileHeaders.csproj
  18. 10
      src/Tools/CheckFileHeaders/CheckFileHeaders.sln
  19. 56
      src/Tools/CheckFileHeaders/Main.cs

10
README.txt

@ -3,8 +3,8 @@ Website: http://www.icsharpcode.net/OpenSource/SD/Default.aspx @@ -3,8 +3,8 @@ Website: http://www.icsharpcode.net/OpenSource/SD/Default.aspx
Forums: http://community.sharpdevelop.net/forums/
Nightly builds: http://build.sharpdevelop.net/BuildArtefacts
Copyright 2012 AlphaSierraPapa for the SharpDevelop team
License: SharpDevelop is distributed under the LGPL.
Copyright 2014 AlphaSierraPapa for the SharpDevelop team.
SharpDevelop is distributed under the MIT license.
The #develop project started on September 11th, 2000. The project was initiated
by Mike Krüger. In the course of the project, several contributors joined in.
@ -46,13 +46,12 @@ Libraries and integrated tools: @@ -46,13 +46,12 @@ Libraries and integrated tools:
WPFToolkit
Integrated Tools (shipping with SharpDevelop):
Boo
IronPython
IronRuby
NuGet
NUnit
PartCover
Wix
WiX
Reusable Libraries (developed as part of SharpDevelop):
AvalonEdit
@ -66,9 +65,10 @@ Reusable Libraries (developed as part of SharpDevelop): @@ -66,9 +65,10 @@ Reusable Libraries (developed as part of SharpDevelop):
SharpDevelop Contributors:
Mike Krüger (Project Founder)
Daniel Grunwald (Technical Lead)
Andreas Weizel
Matt Ward
David Srbecky (Debugger)
Siegfried Pammer
Peter Forstmeier (SharpDevelop Reports)
Peter Forstmeier (SharpDevelop Reports)
(for a full list see https://github.com/icsharpcode/SharpDevelop/wiki/Contributors)

212
TODOnewNR.txt

@ -1,212 +0,0 @@ @@ -1,212 +0,0 @@

Commented code, needs to be ported and re-enabled:
ParseProjectContent
Class Browser (removed from source tree; to be reimplemented using WPF)
NRefactoryLanguageConverter
Context Actions (EditorContext etc.)
RefactoringService
FindReferencesAndRenameHelper
NamespaceRefactoringService
RefactoringMenuBuilder
TaskService.UpdateCommentTags
CodeManipulation.cs (btw, I think this doesn't belong into AvalonEdit.AddIn - more a job for a language binding)
--> See TODO-list on Google Docs
Important features (self-hosting):
Ctrl+Space Completion
ctor snippet
Rename refactoring
Run unit test from icon bar margin
"Add using" context action (and other resolve error MD context actions)
ILSpy-AddIn
Stuff that was renamed/moved:
ICSharpCode.SharpDevelop.Dom -> the type system and resolvers now are part of ICSharpCode.NRefactory
IDocument -> moved to ICSharpCode.NRefactory.Editor
IClass -> ITypeDefinition
ICompilationUnit -> IUnresolvedFile
ITextBuffer -> ITextSource (in ICSharpCode.NRefactory.Editor)
IReturnType -> ITypeReference (unresolved) or IType (resolved)
Location -> TextLocation in ICSharpCode.NRefactory
TextLocation -> moved to ICSharpCode.NRefactory
Functionality changes:
SharpDevelop.Dom was replaced by NRefactory 5:
Apart from plenty of API changes, there are also a couple of architectural changes
to look out for.
Most importantly, the type system has been split up into an unresolved and a resolved
version. When porting code using SD.Dom, be careful which one of the two you choose.
If possible, try to avoid using the unresolved type system. The planned observable code model
(will be implemented for the 5.0 class browser) might be a better alternative in some cases.
Features related to the type system / refactorings should probably wait for this code model
before they are ported to 5.0.
NRefactory 5 introduction: http://www.codeproject.com/Articles/408663/Using-NRefactory-for-analyzing-Csharp-code
Static services replaced with interfaces:
To make writing unit tests easier, the static services in SharpDevelop are getting
replaced with interfaces. The class "SD" has static properties to get references
to the services, so the call "ResourceService.GetString()" becomes "SD.ResourceService.GetString()".
In unit tests, Rhino.Mocks can be used to easily create mocks of the services:
SD.InitializeForUnitTests(); // initialize container and remove services from previous test cases
SD.Services.AddService(typeof(IParserService), MockRepository.GenerateStrictMock<IParserService>());
SD.ParserService.Stub(p => p.GetCachedParseInformation(textEditor.FileName)).Return(parseInfo);
SD.ParserService.Stub(p => p.GetCompilationForFile(textEditor.FileName)).Return(compilation);
It is possible to define a service interface in ICSharpCode.SharpDevelop.dll and have the implementation
somewhere else (SD will find it using the AddInTree).
This allows for AddIns to consume each other's functionality (e.g. debugger accessing the decompiler service)
without having to define a custom AddIn tree path.
The long-term goal is to have only interfaces and helper classes in ICSharpCode.SharpDevelop.dll (the API for AddIns)
and have the implementation details in SharpDevelop.exe (which AddIns aren't supposed to reference).
ICSharpCode.Core.WinForms hidden behind service interfaces:
This is an extension of the previous point.
The whole assembly ICSharpCode.Core.WinForms still exists and has the old static services,
which makes porting old AddIns a bit easier.
However, it should no longer be used in new code and AddIns should get rid of the reference
to ICSharpCode.Core.WinForms if possible.
The services in SD.WinForms provide the same functionality.
Namespaces in ICSharpCode.SharpDevelop reorganized:
I'm currently moving types around in ICSharpCode.SharpDevelop, so you'll have to update
plenty of usings.
The idea behind the new namespaces is that grouping the code into 'Gui' and 'Services'
isn't very useful; so I'm getting rid of those namespaces and the old folder structure,
and re-group the types into feature areas.
Within the ICSharpCode.SharpDevelop project, the 'Src' folder contains the old code
that hasn't been cleaned up yet and may still be in an old namespace.
When I'm done cleaning up a code file, I'm moving to out of the 'Src' folder into one of
the new folders corresponding to the new namespace.
As part of this cleanup, I'm also replacing static services with service interfaces (see above).
AddInTree paths reorganized
Plenty of AddIn tree paths have been changed to better match the new namespace structure.
I used a global replace operation for renaming paths; so AddIns that are in the SharpDevelop
repository but not in the SharpDevelop solution (because they haven't been ported yet)
have been adjusted as well.
SD.MainThread:
The new best way to invoke a call on the main thread is:
SD.MainThread.InvokeAsync(delegate { ... }).FireAndForget();
Note that InvokeAsync returns a Task (like all .NET 4.5 *Async APIs). If any exceptions occur while
executing the delegate, they will get stored in the task object. This can cause the exception to get
silently ignored if the task object isn't used later. The "FireAndForget()" extension method solves
this problem by reporting any (future) errors to the message service.
It is also often possible to avoid explicit thread switches alltogether by using the C# 5 async/await feature.
ICSharpCode.Core.ICommand replaced with WPF ICommand
New menu commands should derive from 'SimpleCommand' instead of 'AbstractMenuCommand'.
If 'IsEnabled'-handling is required, new commands should just implement ICommand directly without using any base class.
The old class AbstractMenuCommand still exist and simulates the old API, which makes porting AddIns a bit easier.
I'm thinking about writing a tool that automatically ports AbstractMenuCommand-derived classes to SimpleCommand,
so you don't need to bother updating your commands manually.
SD.PropertyService:
The Get()/Set() methods no longer support nested Properties objects or lists of elements -
you will need to use the new dedicated GetList()/SetList()/NestedProperties() methods for that.
The Get() method no longer causes the default value to be stored in the container; and GetList()
results in a read-only list - an explicit SetList() call is required to store the resulting value again.
However, a nested properties container still is connected with its parent, and any changes done
to the nested container will get saves without having to call the SetNestedProperties() method.
The property service now uses XAML serialization instead of XML serialization. This might require
some changes to your classes to ensure they get serialized correctly, for example
you need to use public properties instead of public fields.
SD.ParserService:
The result of a parser run (ParseInformation) now may contain a fully parsed AST.
The ParserService may cache such full ASTs, but may also drop them from memory at any time.
This will be implemented by keeping the last N accessed files in the cache. (currently we just keep the caches around forever)
Every parse information also contains an IUnresolvedFile instance with the type system information.
The IUnresolvedFile is stored permanently (both in ParserService and in the IProjectContents).
Solution model:
The class 'Solution' has been replaced with the interface 'ISolution'.
The static events that report changes to the solution (e.g. project added) no longer exist on IProjectService;
instead the ISolution.Projects collection itself has a changed event.
Text editor and document services:
In SharpDevelop 4.x it was possible to use IDocument.GetService(typeof(ITextEditor)) to find the
editor that presents the document.
This is no longer possible in SharpDevelop 5, as the same IDocument may be used by
multiple editors (e.g. split view).
ITextEditor and IDocument now use separate service containers.
ITextEditor.GetService() will also return document services, but not the other way around.
The attributes [DocumentService] and [TextEditorService] are used to mark the service interfaces
that are available in the document and in the editor respectively.
The attributes exist purely for documentation, and some services may not use them
(for example the service interfaces defined in AvalonEdit, where the attributes aren't referenced).
View content services:
Instead of casting a view content to an interface "var x = viewContent as IEditable;",
code should use the viewContent.GetService() method.
This allows the view content implementation to be flexible where the interface is implemented,
it no longer is necessary to implement everything in the same class.
Interfaces that are supposed to be used as view content services are marked with the
[ViewContentService] attribute.
In the case of the AvalonEditViewContent, all text editor and document services are
also available via IViewContent.GetService().
If split view is in use, the view content will return the services from the editor that has the focus.
XML Forms:
Classic .xfrm still exists and can be used in SD 5.0.
However XML forms support should be considered a temporary feature for making AddIns easier to port,
we still plan to get rid of all .xfrms and the associated infrastructure by the time SD 5.0 ships.
Simply porting an .xfrm to a regular WinForms control with InitializeComponents() is acceptable,
but porting it to WPF is preferred.
What wasn't changed:
SD-1234 still makes implementing view contents difficult by preventing them from loading/saving
files when they want to. I'd like to fix this, but this likely won't fit into 5.0 and will have to wait for 5.1.
The IProject/ProjectItem model is mostly unchanged and still does not provide proper change notifications
(apart from those in the static ProjectService).
Lacking a good project model, we also haven't started moving the project browser to WPF.
This is a major refactoring on top of the already existing major changes in 5.0, so it doesn't fit.
But it's definitely a goal for 5.1.
Context Actions vs. Member Context Menu:
Members context menu should include refactoring options that can be applied from the outside,
for example in the classes pad when the code file isn't open.
Refactorings that don't make sense without opening the file shouldn't be in the member menu.
The context actions menu should show all refactorings (even those that are also in the members context menu).
Automatic Translation:
WorkbenchSingleton.AssertMainThread() -> SD.MainThread.VerifyAccess()
AbstractMenuCommand-derived classes that do not override IsEnabled -> SimpleCommand

7
buildsamples.bat

@ -1,7 +0,0 @@ @@ -1,7 +0,0 @@
@rem /p:AdditionalBuildProperties="/v:d /p:MSBuildTargetsVerbose=true"
%windir%\microsoft.net\framework\v4.0.30319\msbuild src\Automated.proj /t:buildsamples /p:ArtefactsOutputDir="%CD%\build" /p:TestReportsDir="%CD%\build"
@IF %ERRORLEVEL% NEQ 0 GOTO err
@exit /B 0
:err
@PAUSE
@exit /B 1

5
doc/SharpDevelopInfoResources.txt

@ -3,6 +3,11 @@ @@ -3,6 +3,11 @@
http://community.sharpdevelop.net/forums/
++ ISSUE TRACKER ++
https://github.com/icsharpcode/SharpDevelop/issues
++ WIKI ++
http://wiki.sharpdevelop.net/ (HOME)

2
doc/copyright.txt

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
Copyright 2002-2012 by
Copyright 2002-2014 by
AlphaSierraPapa, Christoph Wille
Vordernberger Strasse 27/8

479
doc/license.txt

@ -1,458 +1,21 @@ @@ -1,458 +1,21 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete 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 distribute a copy of this License along with the
Library.
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 Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
The MIT License (MIT)
Copyright (c) 2002-2014 AlphaSierraPapa
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

45
src/AddIns/Analysis/CodeCoverage/Test/ExcludedModuleResultsTestFixture.cs

@ -1,45 +0,0 @@ @@ -1,45 +0,0 @@
//// <file>
//// <copyright see="prj:///doc/copyright.txt"/>
//// <license see="prj:///doc/license.txt"/>
//// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
//// <version>$Revision$</version>
//// </file>
//
//using ICSharpCode.CodeCoverage;
//using NUnit.Framework;
//using System;
//using System.IO;
//
//namespace ICSharpCode.CodeCoverage.Tests
//{
// /// <summary>
// /// Tests that results with the excluded attribute set are not included
// /// in the code coverage results.
// /// </summary>
// [TestFixture]
// public class ExcludedModuleResultsTestFixture
// {
// CodeCoverageResults results;
//
// [TestFixtureSetUp]
// public void SetUpFixture()
// {
// string xml = "<coverage>\r\n" +
// "\t<module name=\"C:\\Projects\\Foo.Tests\\bin\\Debug\\Foo.Tests.dll\" assembly=\"Foo.Tests\">\r\n" +
// "\t\t<method name=\"SimpleTest\" class=\"Foo.Tests.FooTestFixture\">\r\n" +
// "\t\t\t<seqpnt visitcount=\"0\" line=\"20\" column=\"3\" endline=\"20\" excluded=\"true\" endcolumn=\"4\" document=\"c:\\Projects\\Foo\\FooTestFixture.cs\" />\r\n" +
// "\t\t\t<seqpnt visitcount=\"0\" line=\"21\" column=\"13\" endline=\"21\" excluded=\"true\" endcolumn=\"32\" document=\"c:\\Projects\\Foo\\FooTestFixture.cs\" />\r\n" +
// "\t\t\t<seqpnt visitcount=\"0\" line=\"24\" column=\"3\" endline=\"24\" excluded=\"true\" endcolumn=\"4\" document=\"c:\\Projects\\Foo\\FooTestFixture.cs\" />\r\n" +
// "\t\t</method>\r\n" +
// "\t</module>\r\n" +
// "</coverage>";
// results = new CodeCoverageResults(new StringReader(xml));
// }
//
// [Test]
// public void NoModules()
// {
// Assert.AreEqual(0, results.Modules.Count, "All modules should be excluded");
// }
// }
//}

20
src/AddIns/Analysis/CodeCoverage/Test/MockDocument.cs

@ -1,20 +0,0 @@ @@ -1,20 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using ICSharpCode.TextEditor.Document;
using System;
using System.Collections.Generic;
namespace ICSharpCode.CodeCoverage.Tests
{
/// <summary>
/// Helper class that implements the Text Editor library's IDocument interface.
/// </summary>
public class MockDocument
{
public static IDocument Create()
{
return new DocumentFactory().CreateDocument();
}
}
}

83
src/AddIns/Debugger/Debugger.Tests/Debugger.Tests.csproj~

@ -1,83 +0,0 @@ @@ -1,83 +0,0 @@
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<OutputType>Library</OutputType>
<RootNamespace>Debugger.Tests</RootNamespace>
<AssemblyName>Debugger.Tests</AssemblyName>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{A4C858C8-51B6-4265-A695-A20FCEBA1D19}</ProjectGuid>
<OutputPath>..\..\..\..\..\bin\UnitTests\</OutputPath>
<Optimize>False</Optimize>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<NoStdLib>False</NoStdLib>
<PlatformTarget>x86</PlatformTarget>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<DebugType>Full</DebugType>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<BaseAddress>4194304</BaseAddress>
<FileAlignment>4096</FileAlignment>
<DebugSymbols>true</DebugSymbols>
<NoWarn>219,414</NoWarn>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DefineConstants>DEBUG;TRACE;TEST_CODE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DefineConstants>TRACE;TEST_CODE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="System.Windows.Forms" />
<Reference Include="nunit.framework">
<HintPath>..\..\..\..\Tools\NUnit\nunit.framework.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="DebuggerTests.cs" />
<Compile Include="DebuggerTestsBase.cs" />
<Compile Include="Tests\AppDomain_Tests.cs" />
<Compile Include="Tests\ControlFlow_NoBreak.cs" />
<Compile Include="Tests\ExpressionEvaluator_Tests.cs" />
<Compile Include="Tests\Breakpoint_Tests.cs" />
<Compile Include="Tests\StackFrame_Callstack.cs" />
<Compile Include="Tests\DebugType_CompilerGeneratedClasses.cs" />
<Compile Include="Tests\ControlFlow_DebuggeeKilled.cs" />
<Compile Include="Tests\DebugType_Tests.cs" />
<Compile Include="Tests\Exception_Custom.cs" />
<Compile Include="Tests\StackFrame_Lifetime.cs" />
<Compile Include="Tests\StackFrame_VariablesLifetime.cs" />
<Compile Include="Tests\_HelloWorldTest.cs" />
<Compile Include="Tests\ControlFlow_MainThreadExit.cs" />
<Compile Include="Tests\Process_MemoryReadWrite.cs" />
<Compile Include="Tests\Value_Tests.cs" />
<Compile Include="Tests\StackFrame_SetIP.cs" />
<Compile Include="Tests\Exception_StackOverflow.cs" />
<Compile Include="Tests\ControlFlow_Stepping.cs" />
<Compile Include="Tests\ControlFlow_TerminatePausedProcess.cs" />
<Compile Include="Tests\ControlFlow_TerminateRunningProcess.cs" />
<Compile Include="Tests\Thread_Tests.cs" />
<EmbeddedResource Include="Tests\*.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="Tests" />
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\Project\NRefactory.csproj">
<Project>{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}</Project>
<Name>NRefactory</Name>
</ProjectReference>
<ProjectReference Include="..\Debugger.Core\Debugger.Core.csproj">
<Project>{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}</Project>
<Name>Debugger.Core</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>

2
src/AddIns/Misc/PackageManagement/Packages/AvalonEdit.Sample/AvalonEdit.Sample.nuspec

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
<version>4.3.1.9430</version>
<authors>Daniel Grunwald</authors>
<owners>SharpDevelop</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<licenseUrl>http://opensource.org/licenses/MIT</licenseUrl>
<projectUrl>http://www.avalonedit.net</projectUrl>
<iconUrl>http://community.sharpdevelop.net/blogs/mattward/SharpDevelop.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>

4
src/AddIns/Misc/PackageManagement/Packages/AvalonEdit/AvalonEdit.nuspec

@ -5,10 +5,10 @@ @@ -5,10 +5,10 @@
<version>4.3.1.9430</version>
<authors>Daniel Grunwald</authors>
<owners>SharpDevelop</owners>
<licenseUrl>http://www.opensource.org/licenses/lgpl-2.1.php</licenseUrl>
<licenseUrl>http://opensource.org/licenses/MIT</licenseUrl>
<projectUrl>http://www.avalonedit.net</projectUrl>
<iconUrl>http://community.sharpdevelop.net/blogs/mattward/SharpDevelop.png</iconUrl>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>AvalonEdit is the WPF-based text editor used in SharpDevelop. There are two builds of AvalonEdit included in this package. One that targets .NET 4.0 and one that targets .NET 3.5.</description>
<summary>AvalonEdit is the WPF-based text editor used in SharpDevelop</summary>
<releaseNotes>AvalonEdit 4.3 adds support for input method editors (IME); and fixes a major bug that sometimes caused "InvalidOperationException: Trying to build visual line from collapsed line" when updating existing foldings.

2
src/Libraries/NRefactory/doc/license.txt

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
Copyright (c) 2010-2012 AlphaSierraPapa
Copyright (c) 2010-2014 AlphaSierraPapa, Xamarin
Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software

2
src/Main/Base/Project/Src/Gui/Dialogs/SharpDevelopAboutPanels.cs

@ -97,7 +97,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -97,7 +97,7 @@ namespace ICSharpCode.SharpDevelop.Gui
public static string LicenseSentence {
get {
return StringParser.Parse("${res:Dialog.About.License}",
new StringTagPair("License", "GNU Lesser General Public License"));
new StringTagPair("License", "MIT License"));
}
}

2
src/Main/GlobalAssemblyInfo.cs.template

@ -31,7 +31,7 @@ internal static class RevisionClass @@ -31,7 +31,7 @@ internal static class RevisionClass
public const string Minor = "0";
public const string Build = "0";
public const string Revision = "$INSERTREVISION$";
public const string VersionName = "alpha"; // "" is not valid for no version name, you have to use null if you don't want a version name (eg "Beta 1")
public const string VersionName = "Beta 1"; // "" is not valid for no version name, you have to use null if you don't want a version name (eg "Beta 1")
public const string FullVersion = Major + "." + Minor + "." + Build + ".$INSERTREVISION$$INSERTBRANCHPOSTFIX$$INSERTVERSIONNAMEPOSTFIX$";
}

1
src/Main/GlobalAssemblyInfo.vb.template

@ -29,7 +29,6 @@ Friend NotInheritable Class RevisionClass @@ -29,7 +29,6 @@ Friend NotInheritable Class RevisionClass
Public Const Minor As String = "0"
Public Const Build As String = "0"
Public Const Revision As String = "$INSERTREVISION$"
Public Const VersionName As String = "alpha" ' "" is not valid for no version name, you have to use Nothing if you don't want a version name (eg "Beta 1")
Public Const FullVersion As String = Major + "." + Minor + "." + Build + ".$INSERTREVISION$$INSERTBRANCHPOSTFIX$$INSERTVERSIONNAMEPOSTFIX$"
End Class

640
src/Setup/License.rtf

@ -1,461 +1,179 @@ @@ -1,461 +1,179 @@
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\f0\fs20\tab\tab GNU LESSER GENERAL PUBLIC LICENSE\par
\tab\tab Version 2.1, February 1999\par
\par
Copyright (C) 1991, 1999 Free Software Foundation, Inc.\par
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\par
Everyone is permitted to copy and distribute verbatim copies\par
of this license document, but changing it is not allowed.\par
\par
[This is the first released version of the Lesser GPL. It also counts\par
as the successor of the GNU Library Public License, version 2, hence\par
the version number 2.1.]\par
\par
\tab\tab\tab Preamble\par
\par
The licenses for most software are designed to take away your\par
freedom to share and change it. By contrast, the GNU General Public\par
Licenses are intended to guarantee your freedom to share and change\par
free software--to make sure the software is free for all its users.\par
\par
This license, the Lesser General Public License, applies to some\par
specially designated software packages--typically libraries--of the\par
Free Software Foundation and other authors who decide to use it. You\par
can use it too, but we suggest you first think carefully about whether\par
this license or the ordinary General Public License is the better\par
strategy to use in any particular case, based on the explanations below.\par
\par
When we speak of free software, we are referring to freedom of use,\par
not price. Our General Public Licenses are designed to make sure that\par
you have the freedom to distribute copies of free software (and charge\par
for this service if you wish); that you receive source code or can get\par
it if you want it; that you can change the software and use pieces of\par
it in new free programs; and that you are informed that you can do\par
these things.\par
\par
To protect your rights, we need to make restrictions that forbid\par
distributors to deny you these rights or to ask you to surrender these\par
rights. These restrictions translate to certain responsibilities for\par
you if you distribute copies of the library or if you modify it.\par
\par
For example, if you distribute copies of the library, whether gratis\par
or for a fee, you must give the recipients all the rights that we gave\par
you. You must make sure that they, too, receive or can get the source\par
code. If you link other code with the library, you must provide\par
complete object files to the recipients, so that they can relink them\par
with the library after making changes to the library and recompiling\par
it. And you must show them these terms so they know their rights.\par
\par
We protect your rights with a two-step method: (1) we copyright the\par
library, and (2) we offer you this license, which gives you legal\par
permission to copy, distribute and/or modify the library.\par
\par
To protect each distributor, we want to make it very clear that\par
there is no warranty for the free library. Also, if the library is\par
modified by someone else and passed on, the recipients should know\par
that what they have is not the original version, so that the original\par
author's reputation will not be affected by problems that might be\par
introduced by others.\par
\par
Finally, software patents pose a constant threat to the existence of\par
any free program. We wish to make sure that a company cannot\par
effectively restrict the users of a free program by obtaining a\par
restrictive license from a patent holder. Therefore, we insist that\par
any patent license obtained for a version of the library must be\par
consistent with the full freedom of use specified in this license.\par
\par
Most GNU software, including some libraries, is covered by the\par
ordinary GNU General Public License. This license, the GNU Lesser\par
General Public License, applies to certain designated libraries, and\par
is quite different from the ordinary General Public License. We use\par
this license for certain libraries in order to permit linking those\par
libraries into non-free programs.\par
\par
When a program is linked with a library, whether statically or using\par
a shared library, the combination of the two is legally speaking a\par
combined work, a derivative of the original library. The ordinary\par
General Public License therefore permits such linking only if the\par
entire combination fits its criteria of freedom. The Lesser General\par
Public License permits more lax criteria for linking other code with\par
the library.\par
\par
We call this license the "Lesser" General Public License because it\par
does Less to protect the user's freedom than the ordinary General\par
Public License. It also provides other free software developers Less\par
of an advantage over competing non-free programs. These disadvantages\par
are the reason we use the ordinary General Public License for many\par
libraries. However, the Lesser license provides advantages in certain\par
special circumstances.\par
\par
For example, on rare occasions, there may be a special need to\par
encourage the widest possible use of a certain library, so that it becomes\par
a de-facto standard. To achieve this, non-free programs must be\par
allowed to use the library. A more frequent case is that a free\par
library does the same job as widely used non-free libraries. In this\par
case, there is little to gain by limiting the free library to free\par
software only, so we use the Lesser General Public License.\par
\par
In other cases, permission to use a particular library in non-free\par
programs enables a greater number of people to use a large body of\par
free software. For example, permission to use the GNU C Library in\par
non-free programs enables many more people to use the whole GNU\par
operating system, as well as its variant, the GNU/Linux operating\par
system.\par
\par
Although the Lesser General Public License is Less protective of the\par
users' freedom, it does ensure that the user of a program that is\par
linked with the Library has the freedom and the wherewithal to run\par
that program using a modified version of the Library.\par
\par
The precise terms and conditions for copying, distribution and\par
modification follow. Pay close attention to the difference between a\par
"work based on the library" and a "work that uses the library". The\par
former contains code derived from the library, whereas the latter must\par
be combined with the library in order to run.\par
\par
\tab\tab GNU LESSER GENERAL PUBLIC LICENSE\par
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\par
\par
0. This License Agreement applies to any software library or other\par
program which contains a notice placed by the copyright holder or\par
other authorized party saying it may be distributed under the terms of\par
this Lesser General Public License (also called "this License").\par
Each licensee is addressed as "you".\par
\par
A "library" means a collection of software functions and/or data\par
prepared so as to be conveniently linked with application programs\par
(which use some of those functions and data) to form executables.\par
\par
The "Library", below, refers to any such software library or work\par
which has been distributed under these terms. A "work based on the\par
Library" means either the Library or any derivative work under\par
copyright law: that is to say, a work containing the Library or a\par
portion of it, either verbatim or with modifications and/or translated\par
straightforwardly into another language. (Hereinafter, translation is\par
included without limitation in the term "modification".)\par
\par
"Source code" for a work means the preferred form of the work for\par
making modifications to it. For a library, complete source code means\par
all the source code for all modules it contains, plus any associated\par
interface definition files, plus the scripts used to control compilation\par
and installation of the library.\par
\par
Activities other than copying, distribution and modification are not\par
covered by this License; they are outside its scope. The act of\par
running a program using the Library is not restricted, and output from\par
such a program is covered only if its contents constitute a work based\par
on the Library (independent of the use of the Library in a tool for\par
writing it). Whether that is true depends on what the Library does\par
and what the program that uses the Library does.\par
\par
1. You may copy and distribute verbatim copies of the Library's\par
complete source code as you receive it, in any medium, provided that\par
you conspicuously and appropriately publish on each copy an\par
appropriate copyright notice and disclaimer of warranty; keep intact\par
all the notices that refer to this License and to the absence of any\par
warranty; and distribute a copy of this License along with the\par
Library.\par
\par
You may charge a fee for the physical act of transferring a copy,\par
and you may at your option offer warranty protection in exchange for a\par
fee.\par
\par
2. You may modify your copy or copies of the Library or any portion\par
of it, thus forming a work based on the Library, and copy and\par
distribute such modifications or work under the terms of Section 1\par
above, provided that you also meet all of these conditions:\par
\par
a) The modified work must itself be a software library.\par
\par
b) You must cause the files modified to carry prominent notices\par
stating that you changed the files and the date of any change.\par
\par
c) You must cause the whole of the work to be licensed at no\par
charge to all third parties under the terms of this License.\par
\par
d) If a facility in the modified Library refers to a function or a\par
table of data to be supplied by an application program that uses\par
the facility, other than as an argument passed when the facility\par
is invoked, then you must make a good faith effort to ensure that,\par
in the event an application does not supply such function or\par
table, the facility still operates, and performs whatever part of\par
its purpose remains meaningful.\par
\par
(For example, a function in a library to compute square roots has\par
a purpose that is entirely well-defined independent of the\par
application. Therefore, Subsection 2d requires that any\par
application-supplied function or table used by this function must\par
be optional: if the application does not supply it, the square\par
root function must still compute square roots.)\par
\par
These requirements apply to the modified work as a whole. If\par
identifiable sections of that work are not derived from the Library,\par
and can be reasonably considered independent and separate works in\par
themselves, then this License, and its terms, do not apply to those\par
sections when you distribute them as separate works. But when you\par
distribute the same sections as part of a whole which is a work based\par
on the Library, the distribution of the whole must be on the terms of\par
this License, whose permissions for other licensees extend to the\par
entire whole, and thus to each and every part regardless of who wrote\par
it.\par
\par
Thus, it is not the intent of this section to claim rights or contest\par
your rights to work written entirely by you; rather, the intent is to\par
exercise the right to control the distribution of derivative or\par
collective works based on the Library.\par
\par
In addition, mere aggregation of another work not based on the Library\par
with the Library (or with a work based on the Library) on a volume of\par
a storage or distribution medium does not bring the other work under\par
the scope of this License.\par
\par
3. You may opt to apply the terms of the ordinary GNU General Public\par
License instead of this License to a given copy of the Library. To do\par
this, you must alter all the notices that refer to this License, so\par
that they refer to the ordinary GNU General Public License, version 2,\par
instead of to this License. (If a newer version than version 2 of the\par
ordinary GNU General Public License has appeared, then you can specify\par
that version instead if you wish.) Do not make any other change in\par
these notices.\par
\page\par
Once this change is made in a given copy, it is irreversible for\par
that copy, so the ordinary GNU General Public License applies to all\par
subsequent copies and derivative works made from that copy.\par
\par
This option is useful when you wish to copy part of the code of\par
the Library into a program that is not a library.\par
\par
4. You may copy and distribute the Library (or a portion or\par
derivative of it, under Section 2) in object code or executable form\par
under the terms of Sections 1 and 2 above provided that you accompany\par
it with the complete corresponding machine-readable source code, which\par
must be distributed under the terms of Sections 1 and 2 above on a\par
medium customarily used for software interchange.\par
\par
If distribution of object code is made by offering access to copy\par
from a designated place, then offering equivalent access to copy the\par
source code from the same place satisfies the requirement to\par
distribute the source code, even though third parties are not\par
compelled to copy the source along with the object code.\par
\par
5. A program that contains no derivative of any portion of the\par
Library, but is designed to work with the Library by being compiled or\par
linked with it, is called a "work that uses the Library". Such a\par
work, in isolation, is not a derivative work of the Library, and\par
therefore falls outside the scope of this License.\par
\par
However, linking a "work that uses the Library" with the Library\par
creates an executable that is a derivative of the Library (because it\par
contains portions of the Library), rather than a "work that uses the\par
library". The executable is therefore covered by this License.\par
Section 6 states terms for distribution of such executables.\par
\par
When a "work that uses the Library" uses material from a header file\par
that is part of the Library, the object code for the work may be a\par
derivative work of the Library even though the source code is not.\par
Whether this is true is especially significant if the work can be\par
linked without the Library, or if the work is itself a library. The\par
threshold for this to be true is not precisely defined by law.\par
\par
If such an object file uses only numerical parameters, data\par
structure layouts and accessors, and small macros and small inline\par
functions (ten lines or less in length), then the use of the object\par
file is unrestricted, regardless of whether it is legally a derivative\par
work. (Executables containing this object code plus portions of the\par
Library will still fall under Section 6.)\par
\par
Otherwise, if the work is a derivative of the Library, you may\par
distribute the object code for the work under the terms of Section 6.\par
Any executables containing that work also fall under Section 6,\par
whether or not they are linked directly with the Library itself.\par
\par
6. As an exception to the Sections above, you may also combine or\par
link a "work that uses the Library" with the Library to produce a\par
work containing portions of the Library, and distribute that work\par
under terms of your choice, provided that the terms permit\par
modification of the work for the customer's own use and reverse\par
engineering for debugging such modifications.\par
\par
You must give prominent notice with each copy of the work that the\par
Library is used in it and that the Library and its use are covered by\par
this License. You must supply a copy of this License. If the work\par
during execution displays copyright notices, you must include the\par
copyright notice for the Library among them, as well as a reference\par
directing the user to the copy of this License. Also, you must do one\par
of these things:\par
\par
a) Accompany the work with the complete corresponding\par
machine-readable source code for the Library including whatever\par
changes were used in the work (which must be distributed under\par
Sections 1 and 2 above); and, if the work is an executable linked\par
with the Library, with the complete machine-readable "work that\par
uses the Library", as object code and/or source code, so that the\par
user can modify the Library and then relink to produce a modified\par
executable containing the modified Library. (It is understood\par
that the user who changes the contents of definitions files in the\par
Library will not necessarily be able to recompile the application\par
to use the modified definitions.)\par
\par
b) Use a suitable shared library mechanism for linking with the\par
Library. A suitable mechanism is one that (1) uses at run time a\par
copy of the library already present on the user's computer system,\par
rather than copying library functions into the executable, and (2)\par
will operate properly with a modified version of the library, if\par
the user installs one, as long as the modified version is\par
interface-compatible with the version that the work was made with.\par
\par
c) Accompany the work with a written offer, valid for at\par
least three years, to give the same user the materials\par
specified in Subsection 6a, above, for a charge no more\par
than the cost of performing this distribution.\par
\par
d) If distribution of the work is made by offering access to copy\par
from a designated place, offer equivalent access to copy the above\par
specified materials from the same place.\par
\par
e) Verify that the user has already received a copy of these\par
materials or that you have already sent this user a copy.\par
\par
For an executable, the required form of the "work that uses the\par
Library" must include any data and utility programs needed for\par
reproducing the executable from it. However, as a special exception,\par
the materials to be distributed need not include anything that is\par
normally distributed (in either source or binary form) with the major\par
components (compiler, kernel, and so on) of the operating system on\par
which the executable runs, unless that component itself accompanies\par
the executable.\par
\par
It may happen that this requirement contradicts the license\par
restrictions of other proprietary libraries that do not normally\par
accompany the operating system. Such a contradiction means you cannot\par
use both them and the Library together in an executable that you\par
distribute.\par
\par
7. You may place library facilities that are a work based on the\par
Library side-by-side in a single library together with other library\par
facilities not covered by this License, and distribute such a combined\par
library, provided that the separate distribution of the work based on\par
the Library and of the other library facilities is otherwise\par
permitted, and provided that you do these two things:\par
\par
a) Accompany the combined library with a copy of the same work\par
based on the Library, uncombined with any other library\par
facilities. This must be distributed under the terms of the\par
Sections above.\par
\par
b) Give prominent notice with the combined library of the fact\par
that part of it is a work based on the Library, and explaining\par
where to find the accompanying uncombined form of the same work.\par
\par
8. You may not copy, modify, sublicense, link with, or distribute\par
the Library except as expressly provided under this License. Any\par
attempt otherwise to copy, modify, sublicense, link with, or\par
distribute the Library is void, and will automatically terminate your\par
rights under this License. However, parties who have received copies,\par
or rights, from you under this License will not have their licenses\par
terminated so long as such parties remain in full compliance.\par
\par
9. You are not required to accept this License, since you have not\par
signed it. However, nothing else grants you permission to modify or\par
distribute the Library or its derivative works. These actions are\par
prohibited by law if you do not accept this License. Therefore, by\par
modifying or distributing the Library (or any work based on the\par
Library), you indicate your acceptance of this License to do so, and\par
all its terms and conditions for copying, distributing or modifying\par
the Library or works based on it.\par
\par
10. Each time you redistribute the Library (or any work based on the\par
Library), the recipient automatically receives a license from the\par
original licensor to copy, distribute, link with or modify the Library\par
subject to these terms and conditions. You may not impose any further\par
restrictions on the recipients' exercise of the rights granted herein.\par
You are not responsible for enforcing compliance by third parties with\par
this License.\par
\par
11. If, as a consequence of a court judgment or allegation of patent\par
infringement or for any other reason (not limited to patent issues),\par
conditions are imposed on you (whether by court order, agreement or\par
otherwise) that contradict the conditions of this License, they do not\par
excuse you from the conditions of this License. If you cannot\par
distribute so as to satisfy simultaneously your obligations under this\par
License and any other pertinent obligations, then as a consequence you\par
may not distribute the Library at all. For example, if a patent\par
license would not permit royalty-free redistribution of the Library by\par
all those who receive copies directly or indirectly through you, then\par
the only way you could satisfy both it and this License would be to\par
refrain entirely from distribution of the Library.\par
\par
If any portion of this section is held invalid or unenforceable under any\par
particular circumstance, the balance of the section is intended to apply,\par
and the section as a whole is intended to apply in other circumstances.\par
\par
It is not the purpose of this section to induce you to infringe any\par
patents or other property right claims or to contest validity of any\par
such claims; this section has the sole purpose of protecting the\par
integrity of the free software distribution system which is\par
implemented by public license practices. Many people have made\par
generous contributions to the wide range of software distributed\par
through that system in reliance on consistent application of that\par
system; it is up to the author/donor to decide if he or she is willing\par
to distribute software through any other system and a licensee cannot\par
impose that choice.\par
\par
This section is intended to make thoroughly clear what is believed to\par
be a consequence of the rest of this License.\par
\par
12. If the distribution and/or use of the Library is restricted in\par
certain countries either by patents or by copyrighted interfaces, the\par
original copyright holder who places the Library under this License may add\par
an explicit geographical distribution limitation excluding those countries,\par
so that distribution is permitted only in or among countries not thus\par
excluded. In such case, this License incorporates the limitation as if\par
written in the body of this License.\par
\par
13. The Free Software Foundation may publish revised and/or new\par
versions of the Lesser General Public License from time to time.\par
Such new versions will be similar in spirit to the present version,\par
but may differ in detail to address new problems or concerns.\par
\par
Each version is given a distinguishing version number. If the Library\par
specifies a version number of this License which applies to it and\par
"any later version", you have the option of following the terms and\par
conditions either of that version or of any later version published by\par
the Free Software Foundation. If the Library does not specify a\par
license version number, you may choose any version ever published by\par
the Free Software Foundation.\par
\par
14. If you wish to incorporate parts of the Library into other free\par
programs whose distribution conditions are incompatible with these,\par
write to the author to ask for permission. For software which is\par
copyrighted by the Free Software Foundation, write to the Free\par
Software Foundation; we sometimes make exceptions for this. Our\par
decision will be guided by the two goals of preserving the free status\par
of all derivatives of our free software and of promoting the sharing\par
and reuse of software generally.\par
\par
\tab\tab\tab NO WARRANTY\par
\par
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO\par
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\par
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR\par
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY\par
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\par
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\par
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE\par
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME\par
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\par
\par
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\par
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY\par
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU\par
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR\par
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE\par
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING\par
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A\par
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF\par
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\par
DAMAGES.\par
\par
\tab\tab END OF TERMS AND CONDITIONS\par
}
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe1042\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}
{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f41\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f42\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\f44\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f45\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f46\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f47\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\f48\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f49\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f51\fbidi \fswiss\fcharset238\fprq2 Arial CE;}{\f52\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}
{\f54\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f55\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f56\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f57\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}
{\f58\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f59\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f381\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f382\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}
{\f384\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f385\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f388\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f389\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}
{\f421\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f422\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f424\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f425\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
{\f428\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f429\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}
{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;
\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp
\fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1042\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1042 \snext0 \sqformat \spriority0 Normal;}
{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1042\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1042
\snext11 \ssemihidden \sunhideused \sqformat Normal Table;}}{\*\pgptbl {\pgp\ipgp2\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp8\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp5\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp6\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp4
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp1\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid3690040\rsid12065568}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0
\mnaryLim1}{\info{\operator Daniel}{\creatim\yr2014\mo1\dy25\hr15\min28}{\revtim\yr2014\mo1\dy25\hr15\min50}{\version3}{\edmins1}{\nofpages1}{\nofwords170}{\nofchars914}{\nofcharsws1082}{\vern32773}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/offic
e/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
\widowctrl\ftnbj\aenddoc\trackmoves1\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701
\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale130\rsidroot3690040 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2
\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6
\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang
{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid3690040 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0
\fs22\lang1033\langfe1042\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1042 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040\charrsid3690040 \hich\af1\dbch\af31505\loch\f1 The MIT License (MIT)
\par \hich\af1\dbch\af31505\loch\f1 Copyright (c) }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040 \hich\af1\dbch\af31505\loch\f1 2002-2014}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040\charrsid3690040 \hich\af1\dbch\af31505\loch\f1
}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040 \hich\af1\dbch\af31505\loch\f1 AlphaSierraPapa}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040\charrsid3690040
\par \hich\af1\dbch\af31505\loch\f1 Permission is hereby granted, free of charge, to any person obtaining a copy}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
\f1\fs20\insrsid3690040\charrsid3690040 \hich\af1\dbch\af31505\loch\f1 of this software and associated documentation files (the "Software"), to deal}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1
\af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040\charrsid3690040 \hich\af1\dbch\af31505\loch\f1 in the Software without restriction, including without limitation the rights}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040
\hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040\charrsid3690040 \hich\af1\dbch\af31505\loch\f1 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
\f1\fs20\insrsid3690040 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040\charrsid3690040 \hich\af1\dbch\af31505\loch\f1 copies of the Software, and\hich\af1\dbch\af31505\loch\f1
to permit persons to whom the Software is}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040\charrsid3690040 \hich\af1\dbch\af31505\loch\f1
furnished to do so, subject to the following conditions:
\par \hich\af1\dbch\af31505\loch\f1 The above copyright notice and this permission notice shall be included in}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
\f1\fs20\insrsid3690040\charrsid3690040 \hich\af1\dbch\af31505\loch\f1 all copies or substantial portions of the Software.
\par \hich\af1\dbch\af31505\loch\f1 THE SOFTWARE IS PROVIDED "AS \hich\af1\dbch\af31505\loch\f1 IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20
\ltrch\fcs0 \f1\fs20\insrsid3690040\charrsid3690040 \hich\af1\dbch\af31505\loch\f1 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040 \hich\af1\dbch\af31505\loch\f1 , }{
\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040\charrsid3690040 \hich\af1\dbch\af31505\loch\f1 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040
\hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040\charrsid3690040 \hich\af1\dbch\af31505\loch\f1 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES\hich\af1\dbch\af31505\loch\f1 OR OTHER}{\rtlch\fcs1
\af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040\charrsid3690040 \hich\af1\dbch\af31505\loch\f1
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040\charrsid3690040
\hich\af1\dbch\af31505\loch\f1 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040 \hich\af1\dbch\af31505\loch\f1 }{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0
\f1\fs20\insrsid3690040\charrsid3690040 \hich\af1\dbch\af31505\loch\f1 THE SOFTWARE.}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid3690040
\par }{\rtlch\fcs1 \af31507\afs20 \ltrch\fcs0 \insrsid3690040\charrsid3690040
\par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8
72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7
2a3150038327acf409935ed7d757e5ee14302999a654e99e393c18936c8f23a4dc072479697d1c81e51a3b13c07e4087e6b628ee8cf5c4489cf1c4d075f92a0b
44d7a07a83c82f308ac7b0a0f0fbf90c2480980b58abc733615aa2d210c2e02cb04430076a7ee833dfb6ce62e3ed7e14693e8317d8cd0433bf5c60f53fea2fe7
065bd80facb647e9e25c7fc421fd2ddb526b2e9373fed4bb902e182e97b7b461e6bfad3f010000ffff0300504b030414000600080000002100a5d6a7e7c00000
00360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4fc7060abb08
84a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b63095120f88d94fbc
52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462a1a82fe353
bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f7468656d652f7468
656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b4b0d592c9c
070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b4757e8d3f7
29e245eb2b260a0238fd010000ffff0300504b03041400060008000000210096b5ade296060000501b0000160000007468656d652f7468656d652f7468656d65
312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87615b8116d8
a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad79482a9c04
98f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b5d8a314d3c
94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab999fb7b471
7509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9699640f671
9e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd5868b37a088d1
e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d60cf03ac1a5
193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f9e7ef3f2d1
17d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be15c308d3f2
8acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a99793849c26ae6
6252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d32a423279a
668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2af074481847
bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86e877f0034e
16bafb0e258ebb4faf06b769e888340b103d3311da9750aa9d0a1cd3e4efca31a3508f6d0c5c5c398602f8e2ebc71591f5b616e24dd893aa3261fb44f95d843b
5974bb5c04f4edafb95b7892ec1108f3f98de75dc97d5772bdff7cc95d94cf672db4b3da0a6557f70db629362d72bcb0431e53c6066acac80d699a6409fb44d0
8741bdce9c0e4971624a2378cceaba830b05366b90e0ea23aaa241845368b0eb9e2612ca8c742851ca251ceccc70256d8d87265dd96361531f186c3d9058edf2
c00eafe8e1fc5c509031bb4d680e9f39a3154de0accc56ae644441edd76156d7429d995bdd88664a9dc3ad50197c38af1a0c16d684060441db02565e85f3b966
0d0713cc48a0ed6ef7dedc2dc60b17e92219e180643ed27acffba86e9c94c78ab90980d8a9f0913ee49d62b512b79626fb06dccee2a432bbc60276b9f7dec44b
7904cfbca4f3f6443ab2a49c9c2c41476dafd55c6e7ac8c769db1bc399161ee314bc2e75cf8759081743be1236ec4f4d6693e5336fb672c5dc24a8c33585b5fb
9cc24e1d4885545b58463634cc5416022cd19cacfccb4d30eb45296023fd35a458598360f8d7a4003bbaae25e331f155d9d9a5116d3bfb9a95523e51440ca2e0
088dd844ec6370bf0e55d027a012ae264c45d02f708fa6ad6da6dce29c255df9f6cae0ec38666984b372ab5334cf640b37795cc860de4ae2816e95b21be5ceaf
8a49f90b52a51cc6ff3355f47e0237052b81f6800fd7b802239daf6d8f0b1571a8426944fdbe80c6c1d40e8816b88b8569082ab84c36ff0539d4ff6dce591a26
ade1c0a7f669880485fd484582903d284b26fa4e2156cff62e4b9265844c4495c495a9157b440e091bea1ab8aaf7760f4510eaa69a6465c0e04ec69ffb9e65d0
28d44d4e39df9c1a52ecbd3607fee9cec7263328e5d661d3d0e4f62f44acd855ed7ab33cdf7bcb8ae889599bd5c8b3029895b6825696f6af29c239b75a5bb1e6
345e6ee6c28117e73586c1a2214ae1be07e93fb0ff51e133fb65426fa843be0fb515c187064d0cc206a2fa926d3c902e907670048d931db4c1a44959d366ad93
b65abe595f70a75bf03d616c2dd959fc7d4e6317cd99cbcec9c58b34766661c7d6766ca1a9c1b327531486c6f941c638c67cd22a7f75e2a37be0e82db8df9f30
254d30c1372581a1f51c983c80e4b71ccdd28dbf000000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f74
68656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f24
51eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198
720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528
a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100828abc13fa0000001c0200001300000000000000000000000000
000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b000000000000000000000000
002b0100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000140200007468
656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210096b5ade296060000501b000016000000000000000000
00000000d10200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b010000270000000000
00000000000000009b0900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000960a00000000}
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000
4d73786d6c322e534158584d4c5265616465722e352e3000000000000000000000060000
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f00000000000000000000000060f0
d3c3dc19cf01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000105000000000000}}

13
src/Tools/CheckFileHeaders/CheckFileHeaders.csproj

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RootNamespace>CheckFileHeaders</RootNamespace>
@ -13,6 +13,8 @@ @@ -13,6 +13,8 @@
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<DebugSymbols>True</DebugSymbols>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
@ -36,8 +38,17 @@ @@ -36,8 +38,17 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Main.cs" />

10
src/Tools/CheckFileHeaders/CheckFileHeaders.sln

@ -1,5 +1,7 @@ @@ -1,5 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# SharpDevelop 2.0.0.692

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 5.0
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CheckFileHeaders", "CheckFileHeaders.csproj", "{1377E452-CBBA-4A41-8F06-F749DC99FE1A}"
EndProject
Global
@ -8,9 +10,9 @@ Global @@ -8,9 +10,9 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1377E452-CBBA-4A41-8F06-F749DC99FE1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1377E452-CBBA-4A41-8F06-F749DC99FE1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1377E452-CBBA-4A41-8F06-F749DC99FE1A}.Release|Any CPU.Build.0 = Release|Any CPU
{1377E452-CBBA-4A41-8F06-F749DC99FE1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1377E452-CBBA-4A41-8F06-F749DC99FE1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1377E452-CBBA-4A41-8F06-F749DC99FE1A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

56
src/Tools/CheckFileHeaders/Main.cs

@ -11,10 +11,28 @@ namespace CheckFileHeaders @@ -11,10 +11,28 @@ namespace CheckFileHeaders
{
class MainClass
{
const string copyrightHeader = @"// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)";
const string copyrightHeaderOld = @"// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)";
const string licenseHeaderLGPL = @"// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)";
string currentLicense = licenseHeaderLGPL;
const string copyrightHeader = @"// Copyright (c) 2014 AlphaSierraPapa for the SharpDevelop Team";
const string licenseHeaderMIT = @"//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the ""Software""), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.";
string currentLicense = licenseHeaderMIT;
static int Main(string[] args)
{
@ -44,7 +62,9 @@ namespace CheckFileHeaders @@ -44,7 +62,9 @@ namespace CheckFileHeaders
string oldLicense = currentLicense;
if (File.Exists(Path.Combine(dir, "license.txt"))) {
if (File.ReadAllText(Path.Combine(dir, "license.txt")).Contains("Redistributions of source code must retain the above copyright notice")) {
currentLicense = @"// This code is distributed under the BSD license (for details please see \" + dir + @"\license.txt)";
//currentLicense = @"// This code is distributed under the BSD license (for details please see \" + dir + @"\license.txt)";
// ignore BSD subdirs
return 0;
}
}
int count = 0;
@ -55,6 +75,8 @@ namespace CheckFileHeaders @@ -55,6 +75,8 @@ namespace CheckFileHeaders
foreach (string subdir in Directory.GetDirectories(dir)) {
if (subdir.EndsWith("\\.svn") || subdir.EndsWith("\\obj"))
continue;
if (subdir.EndsWith("Libraries\\NRefactory"))
continue;
if (subdir.EndsWith("Libraries\\AvalonDock"))
continue;
if (subdir.EndsWith("Libraries\\log4net"))
@ -65,7 +87,7 @@ namespace CheckFileHeaders @@ -65,7 +87,7 @@ namespace CheckFileHeaders
continue;
if (subdir.EndsWith("Libraries\\TreeViewAdv"))
continue;
if (subdir.EndsWith("Debugger.Core\\Mono.Cecil"))
if (subdir.EndsWith("Libraries\\cecil"))
continue;
if (subdir.EndsWith("CSharpBinding\\Project\\Resources"))
continue;
@ -84,13 +106,20 @@ namespace CheckFileHeaders @@ -84,13 +106,20 @@ namespace CheckFileHeaders
string content = GetFileContent(file);
int lastLine;
int headerType = AnalyzeHeader(content, out lastLine);
if (headerType == 7)
if (headerType == 8 || headerType == 9)
return;
if (headerType == 5) {
if (headerType != 7)
return;
if (headerType == 4) {
Console.WriteLine("unknown file: " + file);
ignoreCount++;
return;
}
if (headerType == 5) {
Console.WriteLine("commented out file: " + file);
ignoreCount++;
return;
}
if (headerType == 6) {
Console.WriteLine("file with explicit license: " + file);
ignoreCount++;
@ -144,7 +173,9 @@ namespace CheckFileHeaders @@ -144,7 +173,9 @@ namespace CheckFileHeaders
// 4 = unknown header
// 5 = outcommented file
// 6 = XML header followed by explicit license
// 7 = modern header
// 7 = LGPL header (copyrightOld + LGPL)
// 8 = MIT header
// 9 = auto-generated file
int AnalyzeHeader(string content, out int lastLine)
{
string content2 = content;
@ -169,14 +200,19 @@ namespace CheckFileHeaders @@ -169,14 +200,19 @@ namespace CheckFileHeaders
if (state == 0) {
if (line.Length == 0)
continue;
if (line == copyrightHeader) {
if (line == copyrightHeaderOld || line == "//" + copyrightHeaderOld) {
lastLine = 2;
return 7;
} else if (line == copyrightHeader) {
return 8;
} else if (line.StartsWith("// Generated by ") || line.StartsWith("#line 1 \"") || line.StartsWith("// $ANTLR")) {
return 9;
} else if (line.StartsWith("using ")) {
lastLine = -1;
return 0;
} else if (line == "// <file>") {
state = 1;
} else if (line.StartsWith("////") || line.StartsWith("#line 1 \"")) {
} else if (line.StartsWith("////")) {
lastLine = -1;
return 5;
} else if (line == "/*") {
@ -184,7 +220,7 @@ namespace CheckFileHeaders @@ -184,7 +220,7 @@ namespace CheckFileHeaders
} else if (line == "//------------------------------------------------------------------------------") {
// TlbImp auto-generated style (preserve)
lastLine = -1;
return 5;
return 9;
} else if (line.StartsWith("//")) {
// ignore
} else {

Loading…
Cancel
Save