Update gdb to 7.11.
am: 5102a42dbb

* commit '5102a42dbbd313551dec806dedcb2c4b41ca2549':
  Update gdb to 7.11.

Change-Id: I46057b49d0401396298cc3d4649579f41d9a1f8f
diff --git a/NOTICE b/NOTICE
index 8a40de8..b1dcc02 100644
--- a/NOTICE
+++ b/NOTICE
@@ -339,6 +339,383 @@
 library.  If this is what you want to do, use the GNU Library General
 Public License instead of this License.
 
+Copyright (C) Lucent Technologies 1997
+All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and
+its documentation for any purpose and without fee is hereby
+granted, provided that the above copyright notice appear in all
+copies and that both that the copyright notice and this
+permission notice and warranty disclaimer appear in supporting
+documentation, and that the name Lucent Technologies or any of
+its entities not be used in advertising or publicity pertaining
+to distribution of the software without specific, written prior
+permission.
+
+LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
+IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
+IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
+
+Copyright (C) 2016 The Android Open Source Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                          59 Temple Place - Suite 330, Boston, MA
+                          02111-1307, USA.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, 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 or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+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 Program, 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 Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) 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; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, 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 executable.  However, as a
+special exception, the source code 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.
+
+If distribution of executable or 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 counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program 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.
+
+  5. 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 Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program 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 to
+this License.
+
+  7. 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 Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program 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 Program.
+
+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.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program 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.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the 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 Program
+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 Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, 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
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	Appendix: How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
 A. HISTORY OF THE SOFTWARE
 ==========================
 
@@ -618,3 +995,1450 @@
 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     51 Franklin Street, 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.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, 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 or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+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 Program, 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 Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) 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; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, 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 executable.  However, as a
+special exception, the source code 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.
+
+If distribution of executable or 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 counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program 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.
+
+  5. 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 Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program 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 to
+this License.
+
+  7. 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 Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program 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 Program.
+
+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.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program 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.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the 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 Program
+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 Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, 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
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
+Copyright (C) 2016 The Android Open Source Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Yasm is Copyright (c) 2001-2014 Peter Johnson and other Yasm developers.
+
+Yasm developers and/or contributors include:
+  Peter Johnson
+  Michael Urman
+  Brian Gladman (Visual Studio build files, other fixes)
+  Stanislav Karchebny (options parser)
+  Mathieu Monnier (SSE4 instruction patches, NASM preprocessor additions)
+  Anonymous "NASM64" developer (NASM preprocessor fixes)
+  Stephen Polkowski (x86 instruction patches)
+  Henryk Richter (Mach-O object format)
+  Ben Skeggs (patches, bug reports)
+  Alexei Svitkine (GAS preprocessor)
+  Samuel Thibault (TASM parser and frontend)
+
+-----------------------------------
+Yasm licensing overview and summary
+-----------------------------------
+
+Note: This document does not provide legal advice nor is it the actual
+license of any part of Yasm.  See the individual licenses for complete
+details.  Consult a lawyer for legal advice.
+
+The primary license of Yasm is the 2-clause BSD license.  Please use this
+license if you plan on submitting code to the project.
+
+Yasm has absolutely no warranty; not even for merchantibility or fitness
+for a particular purpose.
+
+-------
+Libyasm
+-------
+Libyasm is 2-clause or 3-clause BSD licensed, with the exception of
+bitvect, which is triple-licensed under the Artistic license, GPL, and
+LGPL.  Libyasm is thus GPL and LGPL compatible.  In addition, this also
+means that libyasm is free for binary-only distribution as long as the
+terms of the 3-clause BSD license and Artistic license (as it applies to
+bitvect) are fulfilled.
+
+-------
+Modules
+-------
+The modules are 2-clause or 3-clause BSD licensed.
+
+---------
+Frontends
+---------
+The frontends are 2-clause BSD licensed.
+
+-------------
+License Texts
+-------------
+The full text of all licenses are provided in separate files in the source
+distribution.  Each source file may include the entire license (in the case
+of the BSD and Artistic licenses), or may reference the GPL or LGPL license
+file.
+
+BSD.txt - 2-clause and 3-clause BSD licenses
+Artistic.txt - Artistic license
+GNU_GPL-2.0 - GNU General Public License
+GNU_LGPL-2.0 - GNU Library General Public License
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS''
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+-------------------------------------------------------------------------------
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the author nor the names of other contributors
+   may be used to endorse or promote products derived from this
+   software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS''
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+-------------------------------------------------------------------------------
+NASM is now licensed under the 2-clause BSD license, also known as the
+simplified BSD license.
+
+    Copyright 1996-2009 the NASM Authors - All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following
+    conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+      
+      THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+      CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+      INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+      MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+      DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+      CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+      SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+      LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+      HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+      CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+      OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+      EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+
+
+			 The "Artistic License"
+
+				Preamble
+
+The intent of this document is to state the conditions under which a
+Package may be copied, such that the Copyright Holder maintains some
+semblance of artistic control over the development of the package,
+while giving the users of the package the right to use and distribute
+the Package in a more-or-less customary fashion, plus the right to make
+reasonable modifications.
+
+Definitions:
+
+	"Package" refers to the collection of files distributed by the
+	Copyright Holder, and derivatives of that collection of files
+	created through textual modification.
+
+	"Standard Version" refers to such a Package if it has not been
+	modified, or has been modified in accordance with the wishes
+	of the Copyright Holder as specified below.
+
+	"Copyright Holder" is whoever is named in the copyright or
+	copyrights for the package.
+
+	"You" is you, if you're thinking about copying or distributing
+	this Package.
+
+	"Reasonable copying fee" is whatever you can justify on the
+	basis of media cost, duplication charges, time of people involved,
+	and so on.  (You will not be required to justify it to the
+	Copyright Holder, but only to the computing community at large
+	as a market that must bear the fee.)
+
+	"Freely Available" means that no fee is charged for the item
+	itself, though there may be fees involved in handling the item.
+	It also means that recipients of the item may redistribute it
+	under the same conditions they received it.
+
+1. You may make and give away verbatim copies of the source form of the
+Standard Version of this Package without restriction, provided that you
+duplicate all of the original copyright notices and associated disclaimers.
+
+2. You may apply bug fixes, portability fixes and other modifications
+derived from the Public Domain or from the Copyright Holder.  A Package
+modified in such a way shall still be considered the Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way, provided
+that you insert a prominent notice in each changed file stating how and
+when you changed that file, and provided that you do at least ONE of the
+following:
+
+    a) place your modifications in the Public Domain or otherwise make them
+    Freely Available, such as by posting said modifications to Usenet or
+    an equivalent medium, or placing the modifications on a major archive
+    site such as uunet.uu.net, or by allowing the Copyright Holder to include
+    your modifications in the Standard Version of the Package.
+
+    b) use the modified Package only within your corporation or organization.
+
+    c) rename any non-standard executables so the names do not conflict
+    with standard executables, which must also be provided, and provide
+    a separate manual page for each non-standard executable that clearly
+    documents how it differs from the Standard Version.
+
+    d) make other distribution arrangements with the Copyright Holder.
+
+4. You may distribute the programs of this Package in object code or
+executable form, provided that you do at least ONE of the following:
+
+    a) distribute a Standard Version of the executables and library files,
+    together with instructions (in the manual page or equivalent) on where
+    to get the Standard Version.
+
+    b) accompany the distribution with the machine-readable source of
+    the Package with your modifications.
+
+    c) give non-standard executables non-standard names, and clearly
+    document the differences in manual pages (or equivalent), together
+    with instructions on where to get the Standard Version.
+
+    d) make other distribution arrangements with the Copyright Holder.
+
+5. You may charge a reasonable copying fee for any distribution of this
+Package.  You may charge any fee you choose for support of this
+Package.  You may not charge a fee for this Package itself.  However,
+you may distribute this Package in aggregate with other (possibly
+commercial) programs as part of a larger (possibly commercial) software
+distribution provided that you do not advertise this Package as a
+product of your own.  You may embed this Package's interpreter within
+an executable of yours (by linking); this shall be construed as a mere
+form of aggregation, provided that the complete Standard Version of the
+interpreter is so embedded.
+
+6. The scripts and library files supplied as input to or produced as
+output from the programs of this Package do not automatically fall
+under the copyright of this Package, but belong to whoever generated
+them, and may be sold commercially, and may be aggregated with this
+Package.  If such scripts or library files are aggregated with this
+Package via the so-called "undump" or "unexec" methods of producing a
+binary executable image, then distribution of such an image shall
+neither be construed as a distribution of this Package nor shall it
+fall under the restrictions of Paragraphs 3 and 4, provided that you do
+not represent such an executable image as a Standard Version of this
+Package.
+
+7. C subroutines (or comparably compiled subroutines in other
+languages) supplied by you and linked into this Package in order to
+emulate subroutines and variables of the language defined by this
+Package shall not be considered part of this Package, but are the
+equivalent of input as in Paragraph 6, provided these subroutines do
+not change the language in any way that would cause it to fail the
+regression tests for the language.
+
+8. Aggregation of this Package with a commercial distribution is always
+permitted provided that the use of this Package is embedded; that is,
+when no overt attempt is made to make this Package's interfaces visible
+to the end user of the commercial distribution.  Such use shall not be
+construed as a distribution of this Package.
+
+9. The name of the Copyright Holder may not be used to endorse or promote
+products derived from this software without specific prior written permission.
+
+10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+				The End
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 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.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, 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 or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+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 Program, 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 Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) 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; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, 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 executable.  However, as a
+special exception, the source code 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.
+
+If distribution of executable or 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 counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program 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.
+
+  5. 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 Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program 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 to
+this License.
+
+  7. 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 Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program 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 Program.
+
+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.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program 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.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the 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 Program
+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 Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, 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
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+    		      51 Franklin St, Fifth Floor, Boston, MA  02111-1307  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 library GPL.  It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+			    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 Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it.  You can use it for
+your libraries, too.
+
+  When we speak of free software, we are referring to freedom, 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 or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the 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 a program 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.
+
+  Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library.  If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software.  To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+  Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs.  This
+license, the GNU Library General Public License, applies to certain
+designated libraries.  This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+  The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it.  Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program.  However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+  Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries.  We
+concluded that weaker conditions might promote sharing better.
+
+  However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves.  This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them.  (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.)  The hope is that this
+will lead to faster development of free libraries.
+
+  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, while the latter only
+works together with the library.
+
+  Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+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 compile 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) 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.
+
+    c) 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.
+
+    d) 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 source code 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 to
+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 Library 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
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year> <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02111-1307  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/bin/gcore b/bin/gcore
index 2760715..287f689 100755
--- a/bin/gcore
+++ b/bin/gcore
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-#   Copyright (C) 2003-2015 Free Software Foundation, Inc.
+#   Copyright (C) 2003-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/bin/gdb-orig b/bin/gdb-orig
index 80aa5f6..242fedf 100755
--- a/bin/gdb-orig
+++ b/bin/gdb-orig
Binary files differ
diff --git a/bin/pydoc b/bin/pydoc
new file mode 100755
index 0000000..4462ff0
--- /dev/null
+++ b/bin/pydoc
@@ -0,0 +1,5 @@
+#!/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/bin/python2.7
+
+import pydoc
+if __name__ == '__main__':
+    pydoc.cli()
diff --git a/bin/python b/bin/python
deleted file mode 120000
index 551ab26..0000000
--- a/bin/python
+++ /dev/null
@@ -1 +0,0 @@
-python2
\ No newline at end of file
diff --git a/bin/python b/bin/python
new file mode 100755
index 0000000..0f750b3
--- /dev/null
+++ b/bin/python
Binary files differ
diff --git a/bin/python-config b/bin/python-config
deleted file mode 120000
index 758027f..0000000
--- a/bin/python-config
+++ /dev/null
@@ -1 +0,0 @@
-python2-config
\ No newline at end of file
diff --git a/bin/python-config b/bin/python-config
new file mode 100755
index 0000000..c36d9db
--- /dev/null
+++ b/bin/python-config
@@ -0,0 +1,57 @@
+#!/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/bin/python2.7
+
+import sys
+import os
+import getopt
+from distutils import sysconfig
+
+valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
+              'ldflags', 'help']
+
+def exit_with_usage(code=1):
+    print >>sys.stderr, "Usage: %s [%s]" % (sys.argv[0],
+                                            '|'.join('--'+opt for opt in valid_opts))
+    sys.exit(code)
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:], '', valid_opts)
+except getopt.error:
+    exit_with_usage()
+
+if not opts:
+    exit_with_usage()
+
+pyver = sysconfig.get_config_var('VERSION')
+getvar = sysconfig.get_config_var
+
+opt_flags = [flag for (flag, val) in opts]
+
+if '--help' in opt_flags:
+    exit_with_usage(code=0)
+
+for opt in opt_flags:
+    if opt == '--prefix':
+        print sysconfig.PREFIX
+
+    elif opt == '--exec-prefix':
+        print sysconfig.EXEC_PREFIX
+
+    elif opt in ('--includes', '--cflags'):
+        flags = ['-I' + sysconfig.get_python_inc(),
+                 '-I' + sysconfig.get_python_inc(plat_specific=True)]
+        if opt == '--cflags':
+            flags.extend(getvar('CFLAGS').split())
+        print ' '.join(flags)
+
+    elif opt in ('--libs', '--ldflags'):
+        libs = getvar('LIBS').split() + getvar('SYSLIBS').split()
+        libs.append('-lpython'+pyver)
+        # add the prefix/lib/pythonX.Y/config dir, but only if there is no
+        # shared library in prefix/lib/.
+        if opt == '--ldflags':
+            if not getvar('Py_ENABLE_SHARED'):
+                libs.insert(0, '-L' + getvar('LIBPL'))
+            if not getvar('PYTHONFRAMEWORK'):
+                libs.extend(getvar('LINKFORSHARED').split())
+        print ' '.join(libs)
+
diff --git a/bin/python-config.sh b/bin/python-config.sh
index 05aa2b3..d708bba 100755
--- a/bin/python-config.sh
+++ b/bin/python-config.sh
@@ -31,7 +31,7 @@
     echo $RESULT
 }
 
-prefix_build="/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64"
+prefix_build="/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools"
 prefix_real=$(installed_prefix "$0")
 
 exec_prefix_build="${prefix}"
diff --git a/bin/python2 b/bin/python2
deleted file mode 120000
index 8f7a3c1..0000000
--- a/bin/python2
+++ /dev/null
@@ -1 +0,0 @@
-python2.7
\ No newline at end of file
diff --git a/bin/python2 b/bin/python2
new file mode 100755
index 0000000..0f750b3
--- /dev/null
+++ b/bin/python2
Binary files differ
diff --git a/bin/python2-config b/bin/python2-config
deleted file mode 120000
index 785f36f..0000000
--- a/bin/python2-config
+++ /dev/null
@@ -1 +0,0 @@
-python2.7-config
\ No newline at end of file
diff --git a/bin/python2-config b/bin/python2-config
new file mode 100755
index 0000000..c36d9db
--- /dev/null
+++ b/bin/python2-config
@@ -0,0 +1,57 @@
+#!/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/bin/python2.7
+
+import sys
+import os
+import getopt
+from distutils import sysconfig
+
+valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
+              'ldflags', 'help']
+
+def exit_with_usage(code=1):
+    print >>sys.stderr, "Usage: %s [%s]" % (sys.argv[0],
+                                            '|'.join('--'+opt for opt in valid_opts))
+    sys.exit(code)
+
+try:
+    opts, args = getopt.getopt(sys.argv[1:], '', valid_opts)
+except getopt.error:
+    exit_with_usage()
+
+if not opts:
+    exit_with_usage()
+
+pyver = sysconfig.get_config_var('VERSION')
+getvar = sysconfig.get_config_var
+
+opt_flags = [flag for (flag, val) in opts]
+
+if '--help' in opt_flags:
+    exit_with_usage(code=0)
+
+for opt in opt_flags:
+    if opt == '--prefix':
+        print sysconfig.PREFIX
+
+    elif opt == '--exec-prefix':
+        print sysconfig.EXEC_PREFIX
+
+    elif opt in ('--includes', '--cflags'):
+        flags = ['-I' + sysconfig.get_python_inc(),
+                 '-I' + sysconfig.get_python_inc(plat_specific=True)]
+        if opt == '--cflags':
+            flags.extend(getvar('CFLAGS').split())
+        print ' '.join(flags)
+
+    elif opt in ('--libs', '--ldflags'):
+        libs = getvar('LIBS').split() + getvar('SYSLIBS').split()
+        libs.append('-lpython'+pyver)
+        # add the prefix/lib/pythonX.Y/config dir, but only if there is no
+        # shared library in prefix/lib/.
+        if opt == '--ldflags':
+            if not getvar('Py_ENABLE_SHARED'):
+                libs.insert(0, '-L' + getvar('LIBPL'))
+            if not getvar('PYTHONFRAMEWORK'):
+                libs.extend(getvar('LINKFORSHARED').split())
+        print ' '.join(libs)
+
diff --git a/bin/python2.7 b/bin/python2.7
index 3a675e3..0f750b3 100755
--- a/bin/python2.7
+++ b/bin/python2.7
Binary files differ
diff --git a/bin/python2.7-config b/bin/python2.7-config
index 6fb0471..c36d9db 100755
--- a/bin/python2.7-config
+++ b/bin/python2.7-config
@@ -1,4 +1,4 @@
-#!/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/bin/python2.7
+#!/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/bin/python2.7
 
 import sys
 import os
diff --git a/lib/libpython2.7.a b/lib/libpython2.7.a
index 545f025..e79703c 100755
--- a/lib/libpython2.7.a
+++ b/lib/libpython2.7.a
Binary files differ
diff --git a/lib/pkgconfig/python-2.7.pc b/lib/pkgconfig/python-2.7.pc
index a02e80b..658c189 100644
--- a/lib/pkgconfig/python-2.7.pc
+++ b/lib/pkgconfig/python-2.7.pc
@@ -1,4 +1,4 @@
-prefix=/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64
+prefix=/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools
 exec_prefix=${prefix}
 libdir=${exec_prefix}/lib
 includedir=${prefix}/include
diff --git a/lib/pkgconfig/python.pc b/lib/pkgconfig/python.pc
deleted file mode 120000
index b7dff7f..0000000
--- a/lib/pkgconfig/python.pc
+++ /dev/null
@@ -1 +0,0 @@
-python2.pc
\ No newline at end of file
diff --git a/lib/pkgconfig/python.pc b/lib/pkgconfig/python.pc
new file mode 100644
index 0000000..658c189
--- /dev/null
+++ b/lib/pkgconfig/python.pc
@@ -0,0 +1,13 @@
+prefix=/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: Python
+Description: Python library
+Requires: 
+Version: 2.7
+Libs.private: -lpthread -ldl  -lutil
+Libs: -L${libdir} -lpython2.7
+Cflags: -I${includedir}/python2.7 
+
diff --git a/lib/pkgconfig/python2.pc b/lib/pkgconfig/python2.pc
deleted file mode 120000
index b5ac60c..0000000
--- a/lib/pkgconfig/python2.pc
+++ /dev/null
@@ -1 +0,0 @@
-python-2.7.pc
\ No newline at end of file
diff --git a/lib/pkgconfig/python2.pc b/lib/pkgconfig/python2.pc
new file mode 100644
index 0000000..658c189
--- /dev/null
+++ b/lib/pkgconfig/python2.pc
@@ -0,0 +1,13 @@
+prefix=/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: Python
+Description: Python library
+Requires: 
+Version: 2.7
+Libs.private: -lpthread -ldl  -lutil
+Libs: -L${libdir} -lpython2.7
+Cflags: -I${includedir}/python2.7 
+
diff --git a/lib/python2.7/_sysconfigdata.py b/lib/python2.7/_sysconfigdata.py
index c447809..c17f160 100644
--- a/lib/python2.7/_sysconfigdata.py
+++ b/lib/python2.7/_sysconfigdata.py
@@ -3,9 +3,9 @@
  'AIX_GENUINE_CPLUSPLUS': 0,
  'AR': 'x86_64-linux-gnu-ar',
  'ARFLAGS': 'rc',
- 'ASDLGEN': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl_c.py',
- 'ASDLGEN_FILES': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl.py /usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl_c.py',
- 'AST_ASDL': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Parser/Python.asdl',
+ 'ASDLGEN': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl_c.py',
+ 'ASDLGEN_FILES': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl.py /usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Parser/asdl_c.py',
+ 'AST_ASDL': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Parser/Python.asdl',
  'AST_C': 'Python/Python-ast.c',
  'AST_C_DIR': 'Python',
  'AST_H': 'Include/Python-ast.h',
@@ -14,8 +14,8 @@
  'BASECFLAGS': '-fno-strict-aliasing',
  'BASEMODLIBS': '',
  'BEOS_THREADS': 0,
- 'BINDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/bin',
- 'BINLIBDEST': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
+ 'BINDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/bin',
+ 'BINLIBDEST': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
  'BLDLIBRARY': 'libpython2.7.a',
  'BLDSHARED': 'x86_64-linux-gnu-gcc -shared',
  'BUILDEXE': '',
@@ -25,18 +25,18 @@
  'CFLAGS': '-fno-strict-aliasing -O2 -Os -fomit-frame-pointer -s -DNDEBUG -fwrapv -O3 -Wall -Wstrict-prototypes',
  'CFLAGSFORSHARED': '',
  'CONFIGFILES': 'configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in',
- 'CONFIG_ARGS': "'--prefix=/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--with-build-sysroot' '--disable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-O2 -Os -fomit-frame-pointer -s' 'LDFLAGS='",
- 'CONFINCLUDEDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include',
- 'CONFINCLUDEPY': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include/python2.7',
+ 'CONFIG_ARGS': "'--prefix=/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--with-build-sysroot' '--disable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-O2 -Os -fomit-frame-pointer -s' 'LDFLAGS='",
+ 'CONFINCLUDEDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include',
+ 'CONFINCLUDEPY': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include/python2.7',
  'COREPYTHONPATH': ':plat-linux2:lib-tk:lib-old',
- 'CPPFLAGS': '-I. -IInclude -I/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Include',
+ 'CPPFLAGS': '-I. -IInclude -I/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Include',
  'CXX': 'x86_64-linux-gnu-g++ -pthread',
  'C_THREADS': 0,
  'DELIM': ':',
- 'DESTDIRS': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64 /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7 /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7/lib-dynload',
- 'DESTLIB': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
+ 'DESTDIRS': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7 /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7/lib-dynload',
+ 'DESTLIB': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
  'DESTPATH': '',
- 'DESTSHARED': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7/lib-dynload',
+ 'DESTSHARED': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7/lib-dynload',
  'DIRMODE': 755,
  'DIST': 'README ChangeLog configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in Include Lib Misc Demo Ext-dummy',
  'DISTDIRS': 'Include Lib Misc Demo Ext-dummy',
@@ -62,7 +62,7 @@
  'GNULD': 'yes',
  'GRAMMAR_C': 'Python/graminit.c',
  'GRAMMAR_H': 'Include/graminit.h',
- 'GRAMMAR_INPUT': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Grammar/Grammar',
+ 'GRAMMAR_INPUT': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Grammar/Grammar',
  'HAVE_ACOSH': 1,
  'HAVE_ADDRINFO': 1,
  'HAVE_ALARM': 1,
@@ -351,9 +351,9 @@
  'HGVERSION': '',
  'HOST_GNU_TYPE': 'x86_64-pc-linux-gnu',
  'HURD_C_THREADS': 0,
- 'INCLDIRSTOMAKE': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include/python2.7 /buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include/python2.7',
- 'INCLUDEDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include',
- 'INCLUDEPY': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/include/python2.7',
+ 'INCLDIRSTOMAKE': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include/python2.7 /usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include/python2.7',
+ 'INCLUDEDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include',
+ 'INCLUDEPY': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/include/python2.7',
  'INSTALL': '/usr/bin/install -c',
  'INSTALL_DATA': '/usr/bin/install -c -m 644',
  'INSTALL_PROGRAM': '/usr/bin/install -c',
@@ -367,15 +367,15 @@
  'LDLIBRARYDIR': '',
  'LDSHARED': 'x86_64-linux-gnu-gcc -shared',
  'LIBC': '',
- 'LIBDEST': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
- 'LIBDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib',
+ 'LIBDEST': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
+ 'LIBDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib',
  'LIBFFI_INCLUDEDIR': '',
  'LIBM': '-lm',
  'LIBOBJDIR': 'Python/',
  'LIBOBJS': '',
- 'LIBP': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
- 'LIBPC': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/pkgconfig',
- 'LIBPL': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7/config',
+ 'LIBP': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
+ 'LIBPC': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/pkgconfig',
+ 'LIBPL': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7/config',
  'LIBRARY': 'libpython2.7.a',
  'LIBRARY_OBJS': '\\',
  'LIBS': '-lpthread -ldl  -lutil',
@@ -388,20 +388,20 @@
  'MACHDEPPATH': ':plat-linux2',
  'MACHDEPS': 'plat-linux2',
  'MACHDEP_OBJS': '',
- 'MACHDESTLIB': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib/python2.7',
+ 'MACHDESTLIB': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib/python2.7',
  'MACH_C_THREADS': 0,
  'MACOSX_DEPLOYMENT_TARGET': '',
  'MAINCC': 'x86_64-linux-gnu-gcc -pthread',
  'MAJOR_IN_MKDEV': 0,
  'MAJOR_IN_SYSMACROS': 0,
- 'MAKESETUP': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Modules/makesetup',
- 'MANDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/share/man',
+ 'MAKESETUP': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Modules/makesetup',
+ 'MANDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/share/man',
  'MEMTESTOPTS': '-l -x test_subprocess test_io test_lib2to3 \\ -x test_dl test___all__ test_fork1 \\',
  'MKDIR_P': '/bin/mkdir -p',
  'MODLIBS': '',
  'MODOBJS': 'Modules/posixmodule.o  Modules/threadmodule.o  Modules/signalmodule.o  Modules/errnomodule.o  Modules/_sre.o  Modules/_codecsmodule.o  Modules/_weakref.o  Modules/zipimport.o  Modules/symtablemodule.o  Modules/xxsubtype.o',
  'MODULE_OBJS': '\\',
- 'MSYSVPATH': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5',
+ 'MSYSVPATH': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5',
  'MULTIARCH': 'x86_64-linux-gnu',
  'MVWDELCH_IS_EXPRESSION': 1,
  'NT_THREADS': 0,
@@ -427,7 +427,7 @@
  'PLATMACPATH': ':plat-mac:plat-mac/lib-scriptpackages',
  'POBJS': '\\',
  'POSIX_SEMAPHORES_NOT_ENABLED': 0,
- 'PROFILE_TASK': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck',
+ 'PROFILE_TASK': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck',
  'PSRCS': '\\',
  'PTHREAD_SYSTEM_SCHED_SUPPORTED': 1,
  'PURIFY': '',
@@ -441,7 +441,7 @@
  'PYTHON_FOR_BUILD': './python -E',
  'PYTHON_HEADERS': '\\',
  'PYTHON_OBJS': '\\',
- 'PY_CFLAGS': '-fno-strict-aliasing -O2 -Os -fomit-frame-pointer -s -DNDEBUG -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Include  -DPy_BUILD_CORE',
+ 'PY_CFLAGS': '-fno-strict-aliasing -O2 -Os -fomit-frame-pointer -s -DNDEBUG -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Include  -DPy_BUILD_CORE',
  'PY_FORMAT_LONG_LONG': '"ll"',
  'PY_FORMAT_SIZE_T': '"z"',
  'PY_UNICODE_TYPE': 'unsigned short',
@@ -455,7 +455,7 @@
  'RESSRCDIR': 'Mac/Resources/framework',
  'RETSIGTYPE': 'void',
  'RUNSHARED': '',
- 'SCRIPTDIR': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/lib',
+ 'SCRIPTDIR': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/lib',
  'SETPGRP_HAVE_ARG': 0,
  'SGI_ABI': '',
  'SHELL': '/bin/sh',
@@ -483,7 +483,7 @@
  'SIZEOF__BOOL': 1,
  'SO': '.so',
  'SRCDIRS': 'Parser Grammar Objects Python Modules Mac',
- 'SRC_GDB_HOOKS': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Tools/gdb/libpython.py',
+ 'SRC_GDB_HOOKS': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Tools/gdb/libpython.py',
  'STDC_HEADERS': 1,
  'STRICT_SYSV_CURSES': "/* Don't use ncurses extensions */",
  'STRINGLIB_HEADERS': '\\',
@@ -495,7 +495,7 @@
  'TANH_PRESERVES_ZERO_SIGN': 1,
  'TESTOPTS': '-l',
  'TESTPATH': '',
- 'TESTPROG': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Lib/test/regrtest.py',
+ 'TESTPROG': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Lib/test/regrtest.py',
  'TESTPYTHON': './python -Wd -3 -E -tt',
  'TESTPYTHONOPTS': '',
  'THREADOBJ': 'Python/thread.o',
@@ -507,7 +507,7 @@
  'USE_TOOLBOX_OBJECT_GLUE': 0,
  'VA_LIST_IS_ARRAY': 1,
  'VERSION': '2.7',
- 'VPATH': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5',
+ 'VPATH': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5',
  'WANT_SIGFPE_HANDLER': 0,
  'WANT_WCTYPE_FUNCTIONS': 0,
  'WINDOW_HAS_FLAGS': 1,
@@ -522,11 +522,11 @@
  'WITH_VALGRIND': 0,
  'X87_DOUBLE_ROUNDING': 0,
  'XMLLIBSUBDIRS': 'xml xml/dom xml/etree xml/parsers xml/sax',
- 'abs_builddir': '/buildbot/tmp/buildhost/build-python-linux-x86_64-2.7.5',
- 'abs_srcdir': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5',
+ 'abs_builddir': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/build-python-linux-x86_64-2.7.5',
+ 'abs_srcdir': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5',
  'build': 'x86_64-pc-linux-gnu',
- 'datarootdir': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64/share',
- 'exec_prefix': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64',
+ 'datarootdir': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools/share',
+ 'exec_prefix': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools',
  'host': 'x86_64-pc-linux-gnu',
- 'prefix': '/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64',
- 'srcdir': '/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5'}
+ 'prefix': '/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools',
+ 'srcdir': '/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5'}
diff --git a/lib/python2.7/config/Makefile b/lib/python2.7/config/Makefile
index cd97577..fb509c9 100644
--- a/lib/python2.7/config/Makefile
+++ b/lib/python2.7/config/Makefile
@@ -26,11 +26,11 @@
 
 # === Variables set by configure
 VERSION=	2.7
-srcdir=		/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5
-VPATH=		/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5
-MSYSVPATH=	/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5
-abs_srcdir=	/usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5
-abs_builddir=	/buildbot/tmp/buildhost/build-python-linux-x86_64-2.7.5
+srcdir=		/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
+VPATH=		/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
+MSYSVPATH=	/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
+abs_srcdir=	/usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5
+abs_builddir=	/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/build-python-linux-x86_64-2.7.5
 build=		x86_64-pc-linux-gnu
 host=		x86_64-pc-linux-gnu
 
@@ -95,7 +95,7 @@
 MULTIARCH=	x86_64-linux-gnu
 
 # Install prefix for architecture-independent files
-prefix=		/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64
+prefix=		/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools
 
 # Install prefix for architecture-dependent files
 exec_prefix=	${prefix}
@@ -154,7 +154,7 @@
 FILEMODE=	644
 
 # configure script arguments
-CONFIG_ARGS=	 '--prefix=/buildbot/tmp/buildhost/install/prebuilt/linux-x86_64' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--with-build-sysroot' '--disable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-O2 -Os -fomit-frame-pointer -s' 'LDFLAGS='
+CONFIG_ARGS=	 '--prefix=/usr/local/google/buildbot/src/android/master-ndk/out/build/buildhost/linux-x86_64/install/host-tools' '--build=x86_64-linux-gnu' '--host=x86_64-linux-gnu' '--with-build-sysroot' '--disable-ipv6' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-O2 -Os -fomit-frame-pointer -s' 'LDFLAGS='
 
 
 # Subdirectories with code
@@ -541,7 +541,7 @@
 # for a shared core library; otherwise, this rule is a noop.
 $(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
 	if test -n "$(DLLLIBRARY)"; then \
-		$(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
+		$(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) -static-libgcc $^ \
 			$(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST); \
 	else true; \
 	fi
diff --git a/lib/python2.7/config/config.c b/lib/python2.7/config/config.c
index 44cca93..e61842e 100644
--- a/lib/python2.7/config/config.c
+++ b/lib/python2.7/config/config.c
@@ -1,4 +1,4 @@
-/* Generated automatically from /usr/local/google/buildbot/repo_clients/https___android.googlesource.com_a_platform_manifest.git/master-ndk/toolchain/python/Python-2.7.5/Modules/config.c.in by makesetup. */
+/* Generated automatically from /usr/local/google/buildbot/src/android/master-ndk/toolchain/python/Python-2.7.5/Modules/config.c.in by makesetup. */
 /* -*- C -*- ***********************************************
 Copyright (c) 2000, BeOpen.com.
 Copyright (c) 1995-2000, Corporation for National Research Initiatives.
diff --git a/lib/python2.7/config/libpython2.7.a b/lib/python2.7/config/libpython2.7.a
index 147d851..a006d33 100644
--- a/lib/python2.7/config/libpython2.7.a
+++ b/lib/python2.7/config/libpython2.7.a
Binary files differ
diff --git a/lib/python2.7/config/python.o b/lib/python2.7/config/python.o
index 6ea6b2b..49cb71e 100644
--- a/lib/python2.7/config/python.o
+++ b/lib/python2.7/config/python.o
Binary files differ
diff --git a/lib/python2.7/distutils/tests/Setup.sample b/lib/python2.7/distutils/tests/Setup.sample
deleted file mode 100644
index 36c4290..0000000
--- a/lib/python2.7/distutils/tests/Setup.sample
+++ /dev/null
@@ -1,67 +0,0 @@
-# Setup file from the pygame project
-
-#--StartConfig
-SDL = -I/usr/include/SDL -D_REENTRANT -lSDL
-FONT = -lSDL_ttf
-IMAGE = -lSDL_image
-MIXER = -lSDL_mixer
-SMPEG = -lsmpeg
-PNG = -lpng
-JPEG = -ljpeg
-SCRAP = -lX11
-PORTMIDI = -lportmidi
-PORTTIME = -lporttime
-#--EndConfig
-
-#DEBUG = -C-W -C-Wall
-DEBUG = 
-
-#the following modules are optional. you will want to compile
-#everything you can, but you can ignore ones you don't have
-#dependencies for, just comment them out
-
-imageext src/imageext.c $(SDL) $(IMAGE) $(PNG) $(JPEG) $(DEBUG)
-font src/font.c $(SDL) $(FONT) $(DEBUG)
-mixer src/mixer.c $(SDL) $(MIXER) $(DEBUG)
-mixer_music src/music.c $(SDL) $(MIXER) $(DEBUG)
-_numericsurfarray src/_numericsurfarray.c $(SDL) $(DEBUG)
-_numericsndarray src/_numericsndarray.c $(SDL) $(MIXER) $(DEBUG)
-movie src/movie.c $(SDL) $(SMPEG) $(DEBUG)
-scrap src/scrap.c $(SDL) $(SCRAP) $(DEBUG)
-_camera src/_camera.c src/camera_v4l2.c src/camera_v4l.c $(SDL) $(DEBUG)
-pypm src/pypm.c $(SDL) $(PORTMIDI) $(PORTTIME) $(DEBUG)
-
-GFX = src/SDL_gfx/SDL_gfxPrimitives.c 
-#GFX = src/SDL_gfx/SDL_gfxBlitFunc.c src/SDL_gfx/SDL_gfxPrimitives.c 
-gfxdraw src/gfxdraw.c $(SDL) $(GFX) $(DEBUG)
-
-
-
-#these modules are required for pygame to run. they only require
-#SDL as a dependency. these should not be altered
-
-base src/base.c $(SDL) $(DEBUG)
-cdrom src/cdrom.c $(SDL) $(DEBUG)
-color src/color.c $(SDL) $(DEBUG)
-constants src/constants.c $(SDL) $(DEBUG)
-display src/display.c $(SDL) $(DEBUG)
-event src/event.c $(SDL) $(DEBUG)
-fastevent src/fastevent.c src/fastevents.c $(SDL) $(DEBUG)
-key src/key.c $(SDL) $(DEBUG)
-mouse src/mouse.c $(SDL) $(DEBUG)
-rect src/rect.c $(SDL) $(DEBUG)
-rwobject src/rwobject.c $(SDL) $(DEBUG)
-surface src/surface.c src/alphablit.c src/surface_fill.c $(SDL) $(DEBUG)
-surflock src/surflock.c $(SDL) $(DEBUG)
-time src/time.c $(SDL) $(DEBUG)
-joystick src/joystick.c $(SDL) $(DEBUG)
-draw src/draw.c $(SDL) $(DEBUG)
-image src/image.c $(SDL) $(DEBUG)
-overlay src/overlay.c $(SDL) $(DEBUG)
-transform src/transform.c src/rotozoom.c src/scale2x.c src/scale_mmx.c $(SDL) $(DEBUG)
-mask src/mask.c src/bitmask.c $(SDL) $(DEBUG)
-bufferproxy src/bufferproxy.c $(SDL) $(DEBUG)
-pixelarray src/pixelarray.c $(SDL) $(DEBUG)
-_arraysurfarray src/_arraysurfarray.c $(SDL) $(DEBUG)
-
-
diff --git a/lib/python2.7/distutils/tests/__init__.py b/lib/python2.7/distutils/tests/__init__.py
deleted file mode 100644
index 697ff84..0000000
--- a/lib/python2.7/distutils/tests/__init__.py
+++ /dev/null
@@ -1,36 +0,0 @@
-"""Test suite for distutils.
-
-This test suite consists of a collection of test modules in the
-distutils.tests package.  Each test module has a name starting with
-'test' and contains a function test_suite().  The function is expected
-to return an initialized unittest.TestSuite instance.
-
-Tests for the command classes in the distutils.command package are
-included in distutils.tests as well, instead of using a separate
-distutils.command.tests package, since command identification is done
-by import rather than matching pre-defined names.
-
-"""
-
-import os
-import sys
-import unittest
-from test.test_support import run_unittest
-
-
-here = os.path.dirname(__file__) or os.curdir
-
-
-def test_suite():
-    suite = unittest.TestSuite()
-    for fn in os.listdir(here):
-        if fn.startswith("test") and fn.endswith(".py"):
-            modname = "distutils.tests." + fn[:-3]
-            __import__(modname)
-            module = sys.modules[modname]
-            suite.addTest(module.test_suite())
-    return suite
-
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/setuptools_build_ext.py b/lib/python2.7/distutils/tests/setuptools_build_ext.py
deleted file mode 100644
index 21fa9e8..0000000
--- a/lib/python2.7/distutils/tests/setuptools_build_ext.py
+++ /dev/null
@@ -1,287 +0,0 @@
-from distutils.command.build_ext import build_ext as _du_build_ext
-try:
-    # Attempt to use Pyrex for building extensions, if available
-    from Pyrex.Distutils.build_ext import build_ext as _build_ext
-except ImportError:
-    _build_ext = _du_build_ext
-
-import os, sys
-from distutils.file_util import copy_file
-
-from distutils.tests.setuptools_extension import Library
-
-from distutils.ccompiler import new_compiler
-from distutils.sysconfig import customize_compiler, get_config_var
-get_config_var("LDSHARED")  # make sure _config_vars is initialized
-from distutils.sysconfig import _config_vars
-from distutils import log
-from distutils.errors import *
-
-have_rtld = False
-use_stubs = False
-libtype = 'shared'
-
-if sys.platform == "darwin":
-    use_stubs = True
-elif os.name != 'nt':
-    try:
-        from dl import RTLD_NOW
-        have_rtld = True
-        use_stubs = True
-    except ImportError:
-        pass
-
-def if_dl(s):
-    if have_rtld:
-        return s
-    return ''
-
-
-
-
-
-
-class build_ext(_build_ext):
-    def run(self):
-        """Build extensions in build directory, then copy if --inplace"""
-        old_inplace, self.inplace = self.inplace, 0
-        _build_ext.run(self)
-        self.inplace = old_inplace
-        if old_inplace:
-            self.copy_extensions_to_source()
-
-    def copy_extensions_to_source(self):
-        build_py = self.get_finalized_command('build_py')
-        for ext in self.extensions:
-            fullname = self.get_ext_fullname(ext.name)
-            filename = self.get_ext_filename(fullname)
-            modpath = fullname.split('.')
-            package = '.'.join(modpath[:-1])
-            package_dir = build_py.get_package_dir(package)
-            dest_filename = os.path.join(package_dir,os.path.basename(filename))
-            src_filename = os.path.join(self.build_lib,filename)
-
-            # Always copy, even if source is older than destination, to ensure
-            # that the right extensions for the current Python/platform are
-            # used.
-            copy_file(
-                src_filename, dest_filename, verbose=self.verbose,
-                dry_run=self.dry_run
-            )
-            if ext._needs_stub:
-                self.write_stub(package_dir or os.curdir, ext, True)
-
-
-    if _build_ext is not _du_build_ext and not hasattr(_build_ext,'pyrex_sources'):
-        # Workaround for problems using some Pyrex versions w/SWIG and/or 2.4
-        def swig_sources(self, sources, *otherargs):
-            # first do any Pyrex processing
-            sources = _build_ext.swig_sources(self, sources) or sources
-            # Then do any actual SWIG stuff on the remainder
-            return _du_build_ext.swig_sources(self, sources, *otherargs)
-
-
-
-    def get_ext_filename(self, fullname):
-        filename = _build_ext.get_ext_filename(self,fullname)
-        ext = self.ext_map[fullname]
-        if isinstance(ext,Library):
-            fn, ext = os.path.splitext(filename)
-            return self.shlib_compiler.library_filename(fn,libtype)
-        elif use_stubs and ext._links_to_dynamic:
-            d,fn = os.path.split(filename)
-            return os.path.join(d,'dl-'+fn)
-        else:
-            return filename
-
-    def initialize_options(self):
-        _build_ext.initialize_options(self)
-        self.shlib_compiler = None
-        self.shlibs = []
-        self.ext_map = {}
-
-    def finalize_options(self):
-        _build_ext.finalize_options(self)
-        self.extensions = self.extensions or []
-        self.check_extensions_list(self.extensions)
-        self.shlibs = [ext for ext in self.extensions
-                        if isinstance(ext,Library)]
-        if self.shlibs:
-            self.setup_shlib_compiler()
-        for ext in self.extensions:
-            ext._full_name = self.get_ext_fullname(ext.name)
-        for ext in self.extensions:
-            fullname = ext._full_name
-            self.ext_map[fullname] = ext
-            ltd = ext._links_to_dynamic = \
-                self.shlibs and self.links_to_dynamic(ext) or False
-            ext._needs_stub = ltd and use_stubs and not isinstance(ext,Library)
-            filename = ext._file_name = self.get_ext_filename(fullname)
-            libdir = os.path.dirname(os.path.join(self.build_lib,filename))
-            if ltd and libdir not in ext.library_dirs:
-                ext.library_dirs.append(libdir)
-            if ltd and use_stubs and os.curdir not in ext.runtime_library_dirs:
-                ext.runtime_library_dirs.append(os.curdir)
-
-    def setup_shlib_compiler(self):
-        compiler = self.shlib_compiler = new_compiler(
-            compiler=self.compiler, dry_run=self.dry_run, force=self.force
-        )
-        if sys.platform == "darwin":
-            tmp = _config_vars.copy()
-            try:
-                # XXX Help!  I don't have any idea whether these are right...
-                _config_vars['LDSHARED'] = "gcc -Wl,-x -dynamiclib -undefined dynamic_lookup"
-                _config_vars['CCSHARED'] = " -dynamiclib"
-                _config_vars['SO'] = ".dylib"
-                customize_compiler(compiler)
-            finally:
-                _config_vars.clear()
-                _config_vars.update(tmp)
-        else:
-            customize_compiler(compiler)
-
-        if self.include_dirs is not None:
-            compiler.set_include_dirs(self.include_dirs)
-        if self.define is not None:
-            # 'define' option is a list of (name,value) tuples
-            for (name,value) in self.define:
-                compiler.define_macro(name, value)
-        if self.undef is not None:
-            for macro in self.undef:
-                compiler.undefine_macro(macro)
-        if self.libraries is not None:
-            compiler.set_libraries(self.libraries)
-        if self.library_dirs is not None:
-            compiler.set_library_dirs(self.library_dirs)
-        if self.rpath is not None:
-            compiler.set_runtime_library_dirs(self.rpath)
-        if self.link_objects is not None:
-            compiler.set_link_objects(self.link_objects)
-
-        # hack so distutils' build_extension() builds a library instead
-        compiler.link_shared_object = link_shared_object.__get__(compiler)
-
-
-
-    def get_export_symbols(self, ext):
-        if isinstance(ext,Library):
-            return ext.export_symbols
-        return _build_ext.get_export_symbols(self,ext)
-
-    def build_extension(self, ext):
-        _compiler = self.compiler
-        try:
-            if isinstance(ext,Library):
-                self.compiler = self.shlib_compiler
-            _build_ext.build_extension(self,ext)
-            if ext._needs_stub:
-                self.write_stub(
-                    self.get_finalized_command('build_py').build_lib, ext
-                )
-        finally:
-            self.compiler = _compiler
-
-    def links_to_dynamic(self, ext):
-        """Return true if 'ext' links to a dynamic lib in the same package"""
-        # XXX this should check to ensure the lib is actually being built
-        # XXX as dynamic, and not just using a locally-found version or a
-        # XXX static-compiled version
-        libnames = dict.fromkeys([lib._full_name for lib in self.shlibs])
-        pkg = '.'.join(ext._full_name.split('.')[:-1]+[''])
-        for libname in ext.libraries:
-            if pkg+libname in libnames: return True
-        return False
-
-    def get_outputs(self):
-        outputs = _build_ext.get_outputs(self)
-        optimize = self.get_finalized_command('build_py').optimize
-        for ext in self.extensions:
-            if ext._needs_stub:
-                base = os.path.join(self.build_lib, *ext._full_name.split('.'))
-                outputs.append(base+'.py')
-                outputs.append(base+'.pyc')
-                if optimize:
-                    outputs.append(base+'.pyo')
-        return outputs
-
-    def write_stub(self, output_dir, ext, compile=False):
-        log.info("writing stub loader for %s to %s",ext._full_name, output_dir)
-        stub_file = os.path.join(output_dir, *ext._full_name.split('.'))+'.py'
-        if compile and os.path.exists(stub_file):
-            raise DistutilsError(stub_file+" already exists! Please delete.")
-        if not self.dry_run:
-            f = open(stub_file,'w')
-            f.write('\n'.join([
-                "def __bootstrap__():",
-                "   global __bootstrap__, __file__, __loader__",
-                "   import sys, os, pkg_resources, imp"+if_dl(", dl"),
-                "   __file__ = pkg_resources.resource_filename(__name__,%r)"
-                   % os.path.basename(ext._file_name),
-                "   del __bootstrap__",
-                "   if '__loader__' in globals():",
-                "       del __loader__",
-                if_dl("   old_flags = sys.getdlopenflags()"),
-                "   old_dir = os.getcwd()",
-                "   try:",
-                "     os.chdir(os.path.dirname(__file__))",
-                if_dl("     sys.setdlopenflags(dl.RTLD_NOW)"),
-                "     imp.load_dynamic(__name__,__file__)",
-                "   finally:",
-                if_dl("     sys.setdlopenflags(old_flags)"),
-                "     os.chdir(old_dir)",
-                "__bootstrap__()",
-                "" # terminal \n
-            ]))
-            f.close()
-        if compile:
-            from distutils.util import byte_compile
-            byte_compile([stub_file], optimize=0,
-                         force=True, dry_run=self.dry_run)
-            optimize = self.get_finalized_command('install_lib').optimize
-            if optimize > 0:
-                byte_compile([stub_file], optimize=optimize,
-                             force=True, dry_run=self.dry_run)
-            if os.path.exists(stub_file) and not self.dry_run:
-                os.unlink(stub_file)
-
-
-if use_stubs or os.name=='nt':
-    # Build shared libraries
-    #
-    def link_shared_object(self, objects, output_libname, output_dir=None,
-        libraries=None, library_dirs=None, runtime_library_dirs=None,
-        export_symbols=None, debug=0, extra_preargs=None,
-        extra_postargs=None, build_temp=None, target_lang=None
-    ):  self.link(
-            self.SHARED_LIBRARY, objects, output_libname,
-            output_dir, libraries, library_dirs, runtime_library_dirs,
-            export_symbols, debug, extra_preargs, extra_postargs,
-            build_temp, target_lang
-        )
-else:
-    # Build static libraries everywhere else
-    libtype = 'static'
-
-    def link_shared_object(self, objects, output_libname, output_dir=None,
-        libraries=None, library_dirs=None, runtime_library_dirs=None,
-        export_symbols=None, debug=0, extra_preargs=None,
-        extra_postargs=None, build_temp=None, target_lang=None
-    ):
-        # XXX we need to either disallow these attrs on Library instances,
-        #     or warn/abort here if set, or something...
-        #libraries=None, library_dirs=None, runtime_library_dirs=None,
-        #export_symbols=None, extra_preargs=None, extra_postargs=None,
-        #build_temp=None
-
-        assert output_dir is None   # distutils build_ext doesn't pass this
-        output_dir,filename = os.path.split(output_libname)
-        basename, ext = os.path.splitext(filename)
-        if self.library_filename("x").startswith('lib'):
-            # strip 'lib' prefix; this is kludgy if some platform uses
-            # a different prefix
-            basename = basename[3:]
-
-        self.create_static_lib(
-            objects, basename, output_dir, debug, target_lang
-        )
diff --git a/lib/python2.7/distutils/tests/setuptools_extension.py b/lib/python2.7/distutils/tests/setuptools_extension.py
deleted file mode 100644
index ec6b690..0000000
--- a/lib/python2.7/distutils/tests/setuptools_extension.py
+++ /dev/null
@@ -1,51 +0,0 @@
-from distutils.core import Extension as _Extension
-from distutils.core import Distribution as _Distribution
-
-def _get_unpatched(cls):
-    """Protect against re-patching the distutils if reloaded
-
-    Also ensures that no other distutils extension monkeypatched the distutils
-    first.
-    """
-    while cls.__module__.startswith('setuptools'):
-        cls, = cls.__bases__
-    if not cls.__module__.startswith('distutils'):
-        raise AssertionError(
-            "distutils has already been patched by %r" % cls
-        )
-    return cls
-
-_Distribution = _get_unpatched(_Distribution)
-_Extension = _get_unpatched(_Extension)
-
-try:
-    from Pyrex.Distutils.build_ext import build_ext
-except ImportError:
-    have_pyrex = False
-else:
-    have_pyrex = True
-
-
-class Extension(_Extension):
-    """Extension that uses '.c' files in place of '.pyx' files"""
-
-    if not have_pyrex:
-        # convert .pyx extensions to .c
-        def __init__(self,*args,**kw):
-            _Extension.__init__(self,*args,**kw)
-            sources = []
-            for s in self.sources:
-                if s.endswith('.pyx'):
-                    sources.append(s[:-3]+'c')
-                else:
-                    sources.append(s)
-            self.sources = sources
-
-class Library(Extension):
-    """Just like a regular Extension, but built as a library instead"""
-
-import sys, distutils.core, distutils.extension
-distutils.core.Extension = Extension
-distutils.extension.Extension = Extension
-if 'distutils.command.build_ext' in sys.modules:
-    sys.modules['distutils.command.build_ext'].Extension = Extension
diff --git a/lib/python2.7/distutils/tests/support.py b/lib/python2.7/distutils/tests/support.py
deleted file mode 100644
index 4e6058d..0000000
--- a/lib/python2.7/distutils/tests/support.py
+++ /dev/null
@@ -1,221 +0,0 @@
-"""Support code for distutils test cases."""
-import os
-import sys
-import shutil
-import tempfile
-import unittest
-import sysconfig
-from copy import deepcopy
-import warnings
-
-from distutils import log
-from distutils.log import DEBUG, INFO, WARN, ERROR, FATAL
-from distutils.core import Distribution
-
-
-def capture_warnings(func):
-    def _capture_warnings(*args, **kw):
-        with warnings.catch_warnings():
-            warnings.simplefilter("ignore")
-            return func(*args, **kw)
-    return _capture_warnings
-
-
-class LoggingSilencer(object):
-
-    def setUp(self):
-        super(LoggingSilencer, self).setUp()
-        self.threshold = log.set_threshold(log.FATAL)
-        # catching warnings
-        # when log will be replaced by logging
-        # we won't need such monkey-patch anymore
-        self._old_log = log.Log._log
-        log.Log._log = self._log
-        self.logs = []
-
-    def tearDown(self):
-        log.set_threshold(self.threshold)
-        log.Log._log = self._old_log
-        super(LoggingSilencer, self).tearDown()
-
-    def _log(self, level, msg, args):
-        if level not in (DEBUG, INFO, WARN, ERROR, FATAL):
-            raise ValueError('%s wrong log level' % str(level))
-        self.logs.append((level, msg, args))
-
-    def get_logs(self, *levels):
-        def _format(msg, args):
-            if len(args) == 0:
-                return msg
-            return msg % args
-        return [_format(msg, args) for level, msg, args
-                in self.logs if level in levels]
-
-    def clear_logs(self):
-        self.logs = []
-
-
-class TempdirManager(object):
-    """Mix-in class that handles temporary directories for test cases.
-
-    This is intended to be used with unittest.TestCase.
-    """
-
-    def setUp(self):
-        super(TempdirManager, self).setUp()
-        self.old_cwd = os.getcwd()
-        self.tempdirs = []
-
-    def tearDown(self):
-        # Restore working dir, for Solaris and derivatives, where rmdir()
-        # on the current directory fails.
-        os.chdir(self.old_cwd)
-        super(TempdirManager, self).tearDown()
-        while self.tempdirs:
-            d = self.tempdirs.pop()
-            shutil.rmtree(d, os.name in ('nt', 'cygwin'))
-
-    def mkdtemp(self):
-        """Create a temporary directory that will be cleaned up.
-
-        Returns the path of the directory.
-        """
-        d = tempfile.mkdtemp()
-        self.tempdirs.append(d)
-        return d
-
-    def write_file(self, path, content='xxx'):
-        """Writes a file in the given path.
-
-
-        path can be a string or a sequence.
-        """
-        if isinstance(path, (list, tuple)):
-            path = os.path.join(*path)
-        f = open(path, 'w')
-        try:
-            f.write(content)
-        finally:
-            f.close()
-
-    def create_dist(self, pkg_name='foo', **kw):
-        """Will generate a test environment.
-
-        This function creates:
-         - a Distribution instance using keywords
-         - a temporary directory with a package structure
-
-        It returns the package directory and the distribution
-        instance.
-        """
-        tmp_dir = self.mkdtemp()
-        pkg_dir = os.path.join(tmp_dir, pkg_name)
-        os.mkdir(pkg_dir)
-        dist = Distribution(attrs=kw)
-
-        return pkg_dir, dist
-
-
-class DummyCommand:
-    """Class to store options for retrieval via set_undefined_options()."""
-
-    def __init__(self, **kwargs):
-        for kw, val in kwargs.items():
-            setattr(self, kw, val)
-
-    def ensure_finalized(self):
-        pass
-
-
-class EnvironGuard(object):
-
-    def setUp(self):
-        super(EnvironGuard, self).setUp()
-        self.old_environ = deepcopy(os.environ)
-
-    def tearDown(self):
-        for key, value in self.old_environ.items():
-            if os.environ.get(key) != value:
-                os.environ[key] = value
-
-        for key in os.environ.keys():
-            if key not in self.old_environ:
-                del os.environ[key]
-
-        super(EnvironGuard, self).tearDown()
-
-
-def copy_xxmodule_c(directory):
-    """Helper for tests that need the xxmodule.c source file.
-
-    Example use:
-
-        def test_compile(self):
-            copy_xxmodule_c(self.tmpdir)
-            self.assertIn('xxmodule.c', os.listdir(self.tmpdir))
-
-    If the source file can be found, it will be copied to *directory*.  If not,
-    the test will be skipped.  Errors during copy are not caught.
-    """
-    filename = _get_xxmodule_path()
-    if filename is None:
-        raise unittest.SkipTest('cannot find xxmodule.c (test must run in '
-                                'the python build dir)')
-    shutil.copy(filename, directory)
-
-
-def _get_xxmodule_path():
-    # FIXME when run from regrtest, srcdir seems to be '.', which does not help
-    # us find the xxmodule.c file
-    srcdir = sysconfig.get_config_var('srcdir')
-    candidates = [
-        # use installed copy if available
-        os.path.join(os.path.dirname(__file__), 'xxmodule.c'),
-        # otherwise try using copy from build directory
-        os.path.join(srcdir, 'Modules', 'xxmodule.c'),
-        # srcdir mysteriously can be $srcdir/Lib/distutils/tests when
-        # this file is run from its parent directory, so walk up the
-        # tree to find the real srcdir
-        os.path.join(srcdir, '..', '..', '..', 'Modules', 'xxmodule.c'),
-    ]
-    for path in candidates:
-        if os.path.exists(path):
-            return path
-
-
-def fixup_build_ext(cmd):
-    """Function needed to make build_ext tests pass.
-
-    When Python was build with --enable-shared on Unix, -L. is not good
-    enough to find the libpython<blah>.so.  This is because regrtest runs
-    it under a tempdir, not in the top level where the .so lives.  By the
-    time we've gotten here, Python's already been chdir'd to the tempdir.
-
-    When Python was built with in debug mode on Windows, build_ext commands
-    need their debug attribute set, and it is not done automatically for
-    some reason.
-
-    This function handles both of these things.  Example use:
-
-        cmd = build_ext(dist)
-        support.fixup_build_ext(cmd)
-        cmd.ensure_finalized()
-
-    Unlike most other Unix platforms, Mac OS X embeds absolute paths
-    to shared libraries into executables, so the fixup is not needed there.
-    """
-    if os.name == 'nt':
-        cmd.debug = sys.executable.endswith('_d.exe')
-    elif sysconfig.get_config_var('Py_ENABLE_SHARED'):
-        # To further add to the shared builds fun on Unix, we can't just add
-        # library_dirs to the Extension() instance because that doesn't get
-        # plumbed through to the final compiler command.
-        runshared = sysconfig.get_config_var('RUNSHARED')
-        if runshared is None:
-            cmd.library_dirs = ['.']
-        else:
-            if sys.platform == 'darwin':
-                cmd.library_dirs = []
-            else:
-                name, equals, value = runshared.partition('=')
-                cmd.library_dirs = value.split(os.pathsep)
diff --git a/lib/python2.7/distutils/tests/test_archive_util.py b/lib/python2.7/distutils/tests/test_archive_util.py
deleted file mode 100644
index f01cec3..0000000
--- a/lib/python2.7/distutils/tests/test_archive_util.py
+++ /dev/null
@@ -1,328 +0,0 @@
-# -*- coding: utf-8 -*-
-"""Tests for distutils.archive_util."""
-__revision__ = "$Id$"
-
-import unittest
-import os
-import sys
-import tarfile
-from os.path import splitdrive
-import warnings
-
-from distutils.archive_util import (check_archive_formats, make_tarball,
-                                    make_zipfile, make_archive,
-                                    ARCHIVE_FORMATS)
-from distutils.spawn import find_executable, spawn
-from distutils.tests import support
-from test.test_support import check_warnings, run_unittest
-
-try:
-    import grp
-    import pwd
-    UID_GID_SUPPORT = True
-except ImportError:
-    UID_GID_SUPPORT = False
-
-try:
-    import zipfile
-    ZIP_SUPPORT = True
-except ImportError:
-    ZIP_SUPPORT = find_executable('zip')
-
-# some tests will fail if zlib is not available
-try:
-    import zlib
-except ImportError:
-    zlib = None
-
-def can_fs_encode(filename):
-    """
-    Return True if the filename can be saved in the file system.
-    """
-    if os.path.supports_unicode_filenames:
-        return True
-    try:
-        filename.encode(sys.getfilesystemencoding())
-    except UnicodeEncodeError:
-        return False
-    return True
-
-
-class ArchiveUtilTestCase(support.TempdirManager,
-                          support.LoggingSilencer,
-                          unittest.TestCase):
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_make_tarball(self):
-        self._make_tarball('archive')
-
-    def _make_tarball(self, target_name):
-        # creating something to tar
-        tmpdir = self.mkdtemp()
-        self.write_file([tmpdir, 'file1'], 'xxx')
-        self.write_file([tmpdir, 'file2'], 'xxx')
-        os.mkdir(os.path.join(tmpdir, 'sub'))
-        self.write_file([tmpdir, 'sub', 'file3'], 'xxx')
-
-        tmpdir2 = self.mkdtemp()
-        unittest.skipUnless(splitdrive(tmpdir)[0] == splitdrive(tmpdir2)[0],
-                            "source and target should be on same drive")
-
-        base_name = os.path.join(tmpdir2, target_name)
-
-        # working with relative paths to avoid tar warnings
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            make_tarball(splitdrive(base_name)[1], '.')
-        finally:
-            os.chdir(old_dir)
-
-        # check if the compressed tarball was created
-        tarball = base_name + '.tar.gz'
-        self.assertTrue(os.path.exists(tarball))
-
-        # trying an uncompressed one
-        base_name = os.path.join(tmpdir2, target_name)
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            make_tarball(splitdrive(base_name)[1], '.', compress=None)
-        finally:
-            os.chdir(old_dir)
-        tarball = base_name + '.tar'
-        self.assertTrue(os.path.exists(tarball))
-
-    def _tarinfo(self, path):
-        tar = tarfile.open(path)
-        try:
-            names = tar.getnames()
-            names.sort()
-            return tuple(names)
-        finally:
-            tar.close()
-
-    def _create_files(self):
-        # creating something to tar
-        tmpdir = self.mkdtemp()
-        dist = os.path.join(tmpdir, 'dist')
-        os.mkdir(dist)
-        self.write_file([dist, 'file1'], 'xxx')
-        self.write_file([dist, 'file2'], 'xxx')
-        os.mkdir(os.path.join(dist, 'sub'))
-        self.write_file([dist, 'sub', 'file3'], 'xxx')
-        os.mkdir(os.path.join(dist, 'sub2'))
-        tmpdir2 = self.mkdtemp()
-        base_name = os.path.join(tmpdir2, 'archive')
-        return tmpdir, tmpdir2, base_name
-
-    @unittest.skipUnless(zlib, "Requires zlib")
-    @unittest.skipUnless(find_executable('tar') and find_executable('gzip'),
-                         'Need the tar command to run')
-    def test_tarfile_vs_tar(self):
-        tmpdir, tmpdir2, base_name =  self._create_files()
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            make_tarball(base_name, 'dist')
-        finally:
-            os.chdir(old_dir)
-
-        # check if the compressed tarball was created
-        tarball = base_name + '.tar.gz'
-        self.assertTrue(os.path.exists(tarball))
-
-        # now create another tarball using `tar`
-        tarball2 = os.path.join(tmpdir, 'archive2.tar.gz')
-        tar_cmd = ['tar', '-cf', 'archive2.tar', 'dist']
-        gzip_cmd = ['gzip', '-f9', 'archive2.tar']
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            spawn(tar_cmd)
-            spawn(gzip_cmd)
-        finally:
-            os.chdir(old_dir)
-
-        self.assertTrue(os.path.exists(tarball2))
-        # let's compare both tarballs
-        self.assertEqual(self._tarinfo(tarball), self._tarinfo(tarball2))
-
-        # trying an uncompressed one
-        base_name = os.path.join(tmpdir2, 'archive')
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            make_tarball(base_name, 'dist', compress=None)
-        finally:
-            os.chdir(old_dir)
-        tarball = base_name + '.tar'
-        self.assertTrue(os.path.exists(tarball))
-
-        # now for a dry_run
-        base_name = os.path.join(tmpdir2, 'archive')
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            make_tarball(base_name, 'dist', compress=None, dry_run=True)
-        finally:
-            os.chdir(old_dir)
-        tarball = base_name + '.tar'
-        self.assertTrue(os.path.exists(tarball))
-
-    @unittest.skipUnless(find_executable('compress'),
-                         'The compress program is required')
-    def test_compress_deprecated(self):
-        tmpdir, tmpdir2, base_name =  self._create_files()
-
-        # using compress and testing the PendingDeprecationWarning
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            with check_warnings() as w:
-                warnings.simplefilter("always")
-                make_tarball(base_name, 'dist', compress='compress')
-        finally:
-            os.chdir(old_dir)
-        tarball = base_name + '.tar.Z'
-        self.assertTrue(os.path.exists(tarball))
-        self.assertEqual(len(w.warnings), 1)
-
-        # same test with dry_run
-        os.remove(tarball)
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        try:
-            with check_warnings() as w:
-                warnings.simplefilter("always")
-                make_tarball(base_name, 'dist', compress='compress',
-                             dry_run=True)
-        finally:
-            os.chdir(old_dir)
-        self.assertTrue(not os.path.exists(tarball))
-        self.assertEqual(len(w.warnings), 1)
-
-    @unittest.skipUnless(zlib, "Requires zlib")
-    @unittest.skipUnless(ZIP_SUPPORT, 'Need zip support to run')
-    def test_make_zipfile(self):
-        # creating something to tar
-        tmpdir = self.mkdtemp()
-        self.write_file([tmpdir, 'file1'], 'xxx')
-        self.write_file([tmpdir, 'file2'], 'xxx')
-
-        tmpdir2 = self.mkdtemp()
-        base_name = os.path.join(tmpdir2, 'archive')
-        make_zipfile(base_name, tmpdir)
-
-        # check if the compressed tarball was created
-        tarball = base_name + '.zip'
-
-    def test_check_archive_formats(self):
-        self.assertEqual(check_archive_formats(['gztar', 'xxx', 'zip']),
-                         'xxx')
-        self.assertEqual(check_archive_formats(['gztar', 'zip']), None)
-
-    def test_make_archive(self):
-        tmpdir = self.mkdtemp()
-        base_name = os.path.join(tmpdir, 'archive')
-        self.assertRaises(ValueError, make_archive, base_name, 'xxx')
-
-    @unittest.skipUnless(zlib, "Requires zlib")
-    def test_make_archive_owner_group(self):
-        # testing make_archive with owner and group, with various combinations
-        # this works even if there's not gid/uid support
-        if UID_GID_SUPPORT:
-            group = grp.getgrgid(0)[0]
-            owner = pwd.getpwuid(0)[0]
-        else:
-            group = owner = 'root'
-
-        base_dir, root_dir, base_name =  self._create_files()
-        base_name = os.path.join(self.mkdtemp() , 'archive')
-        res = make_archive(base_name, 'zip', root_dir, base_dir, owner=owner,
-                           group=group)
-        self.assertTrue(os.path.exists(res))
-
-        res = make_archive(base_name, 'zip', root_dir, base_dir)
-        self.assertTrue(os.path.exists(res))
-
-        res = make_archive(base_name, 'tar', root_dir, base_dir,
-                           owner=owner, group=group)
-        self.assertTrue(os.path.exists(res))
-
-        res = make_archive(base_name, 'tar', root_dir, base_dir,
-                           owner='kjhkjhkjg', group='oihohoh')
-        self.assertTrue(os.path.exists(res))
-
-    @unittest.skipUnless(zlib, "Requires zlib")
-    @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
-    def test_tarfile_root_owner(self):
-        tmpdir, tmpdir2, base_name =  self._create_files()
-        old_dir = os.getcwd()
-        os.chdir(tmpdir)
-        group = grp.getgrgid(0)[0]
-        owner = pwd.getpwuid(0)[0]
-        try:
-            archive_name = make_tarball(base_name, 'dist', compress=None,
-                                        owner=owner, group=group)
-        finally:
-            os.chdir(old_dir)
-
-        # check if the compressed tarball was created
-        self.assertTrue(os.path.exists(archive_name))
-
-        # now checks the rights
-        archive = tarfile.open(archive_name)
-        try:
-            for member in archive.getmembers():
-                self.assertEqual(member.uid, 0)
-                self.assertEqual(member.gid, 0)
-        finally:
-            archive.close()
-
-    def test_make_archive_cwd(self):
-        current_dir = os.getcwd()
-        def _breaks(*args, **kw):
-            raise RuntimeError()
-        ARCHIVE_FORMATS['xxx'] = (_breaks, [], 'xxx file')
-        try:
-            try:
-                make_archive('xxx', 'xxx', root_dir=self.mkdtemp())
-            except:
-                pass
-            self.assertEqual(os.getcwd(), current_dir)
-        finally:
-            del ARCHIVE_FORMATS['xxx']
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_make_tarball_unicode(self):
-        """
-        Mirror test_make_tarball, except filename is unicode.
-        """
-        self._make_tarball(u'archive')
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    @unittest.skipUnless(can_fs_encode(u'årchiv'),
-        'File system cannot handle this filename')
-    def test_make_tarball_unicode_latin1(self):
-        """
-        Mirror test_make_tarball, except filename is unicode and contains
-        latin characters.
-        """
-        self._make_tarball(u'årchiv') # note this isn't a real word
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    @unittest.skipUnless(can_fs_encode(u'のアーカイブ'),
-        'File system cannot handle this filename')
-    def test_make_tarball_unicode_extended(self):
-        """
-        Mirror test_make_tarball, except filename is unicode and contains
-        characters outside the latin charset.
-        """
-        self._make_tarball(u'のアーカイブ') # japanese for archive
-
-def test_suite():
-    return unittest.makeSuite(ArchiveUtilTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist.py b/lib/python2.7/distutils/tests/test_bdist.py
deleted file mode 100644
index 121d099..0000000
--- a/lib/python2.7/distutils/tests/test_bdist.py
+++ /dev/null
@@ -1,52 +0,0 @@
-"""Tests for distutils.command.bdist."""
-import os
-import unittest
-
-from test.test_support import run_unittest
-
-from distutils.command.bdist import bdist
-from distutils.tests import support
-
-
-class BuildTestCase(support.TempdirManager,
-                    unittest.TestCase):
-
-    def test_formats(self):
-        # let's create a command and make sure
-        # we can set the format
-        dist = self.create_dist()[1]
-        cmd = bdist(dist)
-        cmd.formats = ['msi']
-        cmd.ensure_finalized()
-        self.assertEqual(cmd.formats, ['msi'])
-
-        # what formats does bdist offer?
-        formats = ['bztar', 'gztar', 'msi', 'rpm', 'tar',
-                   'wininst', 'zip', 'ztar']
-        found = sorted(cmd.format_command)
-        self.assertEqual(found, formats)
-
-    def test_skip_build(self):
-        # bug #10946: bdist --skip-build should trickle down to subcommands
-        dist = self.create_dist()[1]
-        cmd = bdist(dist)
-        cmd.skip_build = 1
-        cmd.ensure_finalized()
-        dist.command_obj['bdist'] = cmd
-
-        names = ['bdist_dumb', 'bdist_wininst']
-        # bdist_rpm does not support --skip-build
-        if os.name == 'nt':
-            names.append('bdist_msi')
-
-        for name in names:
-            subcmd = cmd.get_finalized_command(name)
-            self.assertTrue(subcmd.skip_build,
-                            '%s should take --skip-build from bdist' % name)
-
-
-def test_suite():
-    return unittest.makeSuite(BuildTestCase)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist_dumb.py b/lib/python2.7/distutils/tests/test_bdist_dumb.py
deleted file mode 100644
index 5db3a85..0000000
--- a/lib/python2.7/distutils/tests/test_bdist_dumb.py
+++ /dev/null
@@ -1,114 +0,0 @@
-"""Tests for distutils.command.bdist_dumb."""
-
-import os
-import sys
-import zipfile
-import unittest
-from test.test_support import run_unittest
-
-# zlib is not used here, but if it's not available
-# test_simple_built will fail
-try:
-    import zlib
-except ImportError:
-    zlib = None
-
-from distutils.core import Distribution
-from distutils.command.bdist_dumb import bdist_dumb
-from distutils.tests import support
-
-SETUP_PY = """\
-from distutils.core import setup
-import foo
-
-setup(name='foo', version='0.1', py_modules=['foo'],
-      url='xxx', author='xxx', author_email='xxx')
-
-"""
-
-class BuildDumbTestCase(support.TempdirManager,
-                        support.LoggingSilencer,
-                        support.EnvironGuard,
-                        unittest.TestCase):
-
-    def setUp(self):
-        super(BuildDumbTestCase, self).setUp()
-        self.old_location = os.getcwd()
-        self.old_sys_argv = sys.argv, sys.argv[:]
-
-    def tearDown(self):
-        os.chdir(self.old_location)
-        sys.argv = self.old_sys_argv[0]
-        sys.argv[:] = self.old_sys_argv[1]
-        super(BuildDumbTestCase, self).tearDown()
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_simple_built(self):
-
-        # let's create a simple package
-        tmp_dir = self.mkdtemp()
-        pkg_dir = os.path.join(tmp_dir, 'foo')
-        os.mkdir(pkg_dir)
-        self.write_file((pkg_dir, 'setup.py'), SETUP_PY)
-        self.write_file((pkg_dir, 'foo.py'), '#')
-        self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')
-        self.write_file((pkg_dir, 'README'), '')
-
-        dist = Distribution({'name': 'foo', 'version': '0.1',
-                             'py_modules': ['foo'],
-                             'url': 'xxx', 'author': 'xxx',
-                             'author_email': 'xxx'})
-        dist.script_name = 'setup.py'
-        os.chdir(pkg_dir)
-
-        sys.argv = ['setup.py']
-        cmd = bdist_dumb(dist)
-
-        # so the output is the same no matter
-        # what is the platform
-        cmd.format = 'zip'
-
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # see what we have
-        dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
-        base = "%s.%s.zip" % (dist.get_fullname(), cmd.plat_name)
-        if os.name == 'os2':
-            base = base.replace(':', '-')
-
-        self.assertEqual(dist_created, [base])
-
-        # now let's check what we have in the zip file
-        fp = zipfile.ZipFile(os.path.join('dist', base))
-        try:
-            contents = fp.namelist()
-        finally:
-            fp.close()
-
-        contents = sorted(os.path.basename(fn) for fn in contents)
-        wanted = ['foo-0.1-py%s.%s.egg-info' % sys.version_info[:2], 'foo.py']
-        if not sys.dont_write_bytecode:
-            wanted.append('foo.pyc')
-        self.assertEqual(contents, sorted(wanted))
-
-    def test_finalize_options(self):
-        pkg_dir, dist = self.create_dist()
-        os.chdir(pkg_dir)
-        cmd = bdist_dumb(dist)
-        self.assertEqual(cmd.bdist_dir, None)
-        cmd.finalize_options()
-
-        # bdist_dir is initialized to bdist_base/dumb if not set
-        base = cmd.get_finalized_command('bdist').bdist_base
-        self.assertEqual(cmd.bdist_dir, os.path.join(base, 'dumb'))
-
-        # the format is set to a default value depending on the os.name
-        default = cmd.default_format[os.name]
-        self.assertEqual(cmd.format, default)
-
-def test_suite():
-    return unittest.makeSuite(BuildDumbTestCase)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist_msi.py b/lib/python2.7/distutils/tests/test_bdist_msi.py
deleted file mode 100644
index 2df7c30..0000000
--- a/lib/python2.7/distutils/tests/test_bdist_msi.py
+++ /dev/null
@@ -1,26 +0,0 @@
-"""Tests for distutils.command.bdist_msi."""
-import sys
-import unittest
-from test.test_support import run_unittest
-from distutils.tests import support
-
-
-@unittest.skipUnless(sys.platform == 'win32', 'these tests require Windows')
-class BDistMSITestCase(support.TempdirManager,
-                       support.LoggingSilencer,
-                       unittest.TestCase):
-
-    @unittest.skip("Require bdist_msi")
-    def test_minimal(self):
-        # minimal test XXX need more tests
-        from distutils.command.bdist_msi import bdist_msi
-        project_dir, dist = self.create_dist()
-        cmd = bdist_msi(dist)
-        cmd.ensure_finalized()
-
-
-def test_suite():
-    return unittest.makeSuite(BDistMSITestCase)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist_rpm.py b/lib/python2.7/distutils/tests/test_bdist_rpm.py
deleted file mode 100644
index 37d8915..0000000
--- a/lib/python2.7/distutils/tests/test_bdist_rpm.py
+++ /dev/null
@@ -1,136 +0,0 @@
-"""Tests for distutils.command.bdist_rpm."""
-
-import unittest
-import sys
-import os
-import tempfile
-import shutil
-
-from test.test_support import run_unittest
-
-from distutils.core import Distribution
-from distutils.command.bdist_rpm import bdist_rpm
-from distutils.tests import support
-from distutils.spawn import find_executable
-from distutils import spawn
-from distutils.errors import DistutilsExecError
-
-SETUP_PY = """\
-from distutils.core import setup
-import foo
-
-setup(name='foo', version='0.1', py_modules=['foo'],
-      url='xxx', author='xxx', author_email='xxx')
-
-"""
-
-class BuildRpmTestCase(support.TempdirManager,
-                       support.LoggingSilencer,
-                       unittest.TestCase):
-
-    def setUp(self):
-        super(BuildRpmTestCase, self).setUp()
-        self.old_location = os.getcwd()
-        self.old_sys_argv = sys.argv, sys.argv[:]
-
-    def tearDown(self):
-        os.chdir(self.old_location)
-        sys.argv = self.old_sys_argv[0]
-        sys.argv[:] = self.old_sys_argv[1]
-        super(BuildRpmTestCase, self).tearDown()
-
-    def test_quiet(self):
-
-        # XXX I am unable yet to make this test work without
-        # spurious sdtout/stderr output under Mac OS X
-        if sys.platform != 'linux2':
-            return
-
-        # this test will run only if the rpm commands are found
-        if (find_executable('rpm') is None or
-            find_executable('rpmbuild') is None):
-            return
-
-        # let's create a package
-        tmp_dir = self.mkdtemp()
-        pkg_dir = os.path.join(tmp_dir, 'foo')
-        os.mkdir(pkg_dir)
-        self.write_file((pkg_dir, 'setup.py'), SETUP_PY)
-        self.write_file((pkg_dir, 'foo.py'), '#')
-        self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')
-        self.write_file((pkg_dir, 'README'), '')
-
-        dist = Distribution({'name': 'foo', 'version': '0.1',
-                             'py_modules': ['foo'],
-                             'url': 'xxx', 'author': 'xxx',
-                             'author_email': 'xxx'})
-        dist.script_name = 'setup.py'
-        os.chdir(pkg_dir)
-
-        sys.argv = ['setup.py']
-        cmd = bdist_rpm(dist)
-        cmd.fix_python = True
-
-        # running in quiet mode
-        cmd.quiet = 1
-        cmd.ensure_finalized()
-        cmd.run()
-
-        dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
-        self.assertTrue('foo-0.1-1.noarch.rpm' in dist_created)
-
-        # bug #2945: upload ignores bdist_rpm files
-        self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.src.rpm'), dist.dist_files)
-        self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.noarch.rpm'), dist.dist_files)
-
-    def test_no_optimize_flag(self):
-
-        # XXX I am unable yet to make this test work without
-        # spurious sdtout/stderr output under Mac OS X
-        if sys.platform != 'linux2':
-            return
-
-        # http://bugs.python.org/issue1533164
-        # this test will run only if the rpm command is found
-        if (find_executable('rpm') is None or
-            find_executable('rpmbuild') is None):
-            return
-
-        # let's create a package that brakes bdist_rpm
-        tmp_dir = self.mkdtemp()
-        pkg_dir = os.path.join(tmp_dir, 'foo')
-        os.mkdir(pkg_dir)
-        self.write_file((pkg_dir, 'setup.py'), SETUP_PY)
-        self.write_file((pkg_dir, 'foo.py'), '#')
-        self.write_file((pkg_dir, 'MANIFEST.in'), 'include foo.py')
-        self.write_file((pkg_dir, 'README'), '')
-
-        dist = Distribution({'name': 'foo', 'version': '0.1',
-                             'py_modules': ['foo'],
-                             'url': 'xxx', 'author': 'xxx',
-                             'author_email': 'xxx'})
-        dist.script_name = 'setup.py'
-        os.chdir(pkg_dir)
-
-        sys.argv = ['setup.py']
-        cmd = bdist_rpm(dist)
-        cmd.fix_python = True
-
-        cmd.quiet = 1
-        cmd.ensure_finalized()
-        cmd.run()
-
-        dist_created = os.listdir(os.path.join(pkg_dir, 'dist'))
-        self.assertTrue('foo-0.1-1.noarch.rpm' in dist_created)
-
-        # bug #2945: upload ignores bdist_rpm files
-        self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.src.rpm'), dist.dist_files)
-        self.assertIn(('bdist_rpm', 'any', 'dist/foo-0.1-1.noarch.rpm'), dist.dist_files)
-
-        os.remove(os.path.join(pkg_dir, 'dist', 'foo-0.1-1.noarch.rpm'))
-
-def test_suite():
-    return unittest.makeSuite(BuildRpmTestCase)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_bdist_wininst.py b/lib/python2.7/distutils/tests/test_bdist_wininst.py
deleted file mode 100644
index c2b13b3..0000000
--- a/lib/python2.7/distutils/tests/test_bdist_wininst.py
+++ /dev/null
@@ -1,32 +0,0 @@
-"""Tests for distutils.command.bdist_wininst."""
-import unittest
-
-from test.test_support import run_unittest
-
-from distutils.command.bdist_wininst import bdist_wininst
-from distutils.tests import support
-
-class BuildWinInstTestCase(support.TempdirManager,
-                           support.LoggingSilencer,
-                           unittest.TestCase):
-
-    def test_get_exe_bytes(self):
-
-        # issue5731: command was broken on non-windows platforms
-        # this test makes sure it works now for every platform
-        # let's create a command
-        pkg_pth, dist = self.create_dist()
-        cmd = bdist_wininst(dist)
-        cmd.ensure_finalized()
-
-        # let's run the code that finds the right wininst*.exe file
-        # and make sure it finds it and returns its content
-        # no matter what platform we have
-        exe_file = cmd.get_exe_bytes()
-        self.assertTrue(len(exe_file) > 10)
-
-def test_suite():
-    return unittest.makeSuite(BuildWinInstTestCase)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build.py b/lib/python2.7/distutils/tests/test_build.py
deleted file mode 100644
index eeb8d73..0000000
--- a/lib/python2.7/distutils/tests/test_build.py
+++ /dev/null
@@ -1,55 +0,0 @@
-"""Tests for distutils.command.build."""
-import unittest
-import os
-import sys
-from test.test_support import run_unittest
-
-from distutils.command.build import build
-from distutils.tests import support
-from sysconfig import get_platform
-
-class BuildTestCase(support.TempdirManager,
-                    support.LoggingSilencer,
-                    unittest.TestCase):
-
-    def test_finalize_options(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = build(dist)
-        cmd.finalize_options()
-
-        # if not specified, plat_name gets the current platform
-        self.assertEqual(cmd.plat_name, get_platform())
-
-        # build_purelib is build + lib
-        wanted = os.path.join(cmd.build_base, 'lib')
-        self.assertEqual(cmd.build_purelib, wanted)
-
-        # build_platlib is 'build/lib.platform-x.x[-pydebug]'
-        # examples:
-        #   build/lib.macosx-10.3-i386-2.7
-        plat_spec = '.%s-%s' % (cmd.plat_name, sys.version[0:3])
-        if hasattr(sys, 'gettotalrefcount'):
-            self.assertTrue(cmd.build_platlib.endswith('-pydebug'))
-            plat_spec += '-pydebug'
-        wanted = os.path.join(cmd.build_base, 'lib' + plat_spec)
-        self.assertEqual(cmd.build_platlib, wanted)
-
-        # by default, build_lib = build_purelib
-        self.assertEqual(cmd.build_lib, cmd.build_purelib)
-
-        # build_temp is build/temp.<plat>
-        wanted = os.path.join(cmd.build_base, 'temp' + plat_spec)
-        self.assertEqual(cmd.build_temp, wanted)
-
-        # build_scripts is build/scripts-x.x
-        wanted = os.path.join(cmd.build_base, 'scripts-' +  sys.version[0:3])
-        self.assertEqual(cmd.build_scripts, wanted)
-
-        # executable is os.path.normpath(sys.executable)
-        self.assertEqual(cmd.executable, os.path.normpath(sys.executable))
-
-def test_suite():
-    return unittest.makeSuite(BuildTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build_clib.py b/lib/python2.7/distutils/tests/test_build_clib.py
deleted file mode 100644
index bef1bd9..0000000
--- a/lib/python2.7/distutils/tests/test_build_clib.py
+++ /dev/null
@@ -1,146 +0,0 @@
-"""Tests for distutils.command.build_clib."""
-import unittest
-import os
-import sys
-
-from test.test_support import run_unittest
-
-from distutils.command.build_clib import build_clib
-from distutils.errors import DistutilsSetupError
-from distutils.tests import support
-from distutils.spawn import find_executable
-
-class BuildCLibTestCase(support.TempdirManager,
-                        support.LoggingSilencer,
-                        unittest.TestCase):
-
-    def test_check_library_dist(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = build_clib(dist)
-
-        # 'libraries' option must be a list
-        self.assertRaises(DistutilsSetupError, cmd.check_library_list, 'foo')
-
-        # each element of 'libraries' must a 2-tuple
-        self.assertRaises(DistutilsSetupError, cmd.check_library_list,
-                          ['foo1', 'foo2'])
-
-        # first element of each tuple in 'libraries'
-        # must be a string (the library name)
-        self.assertRaises(DistutilsSetupError, cmd.check_library_list,
-                          [(1, 'foo1'), ('name', 'foo2')])
-
-        # library name may not contain directory separators
-        self.assertRaises(DistutilsSetupError, cmd.check_library_list,
-                          [('name', 'foo1'),
-                           ('another/name', 'foo2')])
-
-        # second element of each tuple must be a dictionary (build info)
-        self.assertRaises(DistutilsSetupError, cmd.check_library_list,
-                          [('name', {}),
-                           ('another', 'foo2')])
-
-        # those work
-        libs = [('name', {}), ('name', {'ok': 'good'})]
-        cmd.check_library_list(libs)
-
-    def test_get_source_files(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = build_clib(dist)
-
-        # "in 'libraries' option 'sources' must be present and must be
-        # a list of source filenames
-        cmd.libraries = [('name', {})]
-        self.assertRaises(DistutilsSetupError, cmd.get_source_files)
-
-        cmd.libraries = [('name', {'sources': 1})]
-        self.assertRaises(DistutilsSetupError, cmd.get_source_files)
-
-        cmd.libraries = [('name', {'sources': ['a', 'b']})]
-        self.assertEqual(cmd.get_source_files(), ['a', 'b'])
-
-        cmd.libraries = [('name', {'sources': ('a', 'b')})]
-        self.assertEqual(cmd.get_source_files(), ['a', 'b'])
-
-        cmd.libraries = [('name', {'sources': ('a', 'b')}),
-                         ('name2', {'sources': ['c', 'd']})]
-        self.assertEqual(cmd.get_source_files(), ['a', 'b', 'c', 'd'])
-
-    def test_build_libraries(self):
-
-        pkg_dir, dist = self.create_dist()
-        cmd = build_clib(dist)
-        class FakeCompiler:
-            def compile(*args, **kw):
-                pass
-            create_static_lib = compile
-
-        cmd.compiler = FakeCompiler()
-
-        # build_libraries is also doing a bit of typoe checking
-        lib = [('name', {'sources': 'notvalid'})]
-        self.assertRaises(DistutilsSetupError, cmd.build_libraries, lib)
-
-        lib = [('name', {'sources': list()})]
-        cmd.build_libraries(lib)
-
-        lib = [('name', {'sources': tuple()})]
-        cmd.build_libraries(lib)
-
-    def test_finalize_options(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = build_clib(dist)
-
-        cmd.include_dirs = 'one-dir'
-        cmd.finalize_options()
-        self.assertEqual(cmd.include_dirs, ['one-dir'])
-
-        cmd.include_dirs = None
-        cmd.finalize_options()
-        self.assertEqual(cmd.include_dirs, [])
-
-        cmd.distribution.libraries = 'WONTWORK'
-        self.assertRaises(DistutilsSetupError, cmd.finalize_options)
-
-    def test_run(self):
-        # can't test on windows
-        if sys.platform == 'win32':
-            return
-
-        pkg_dir, dist = self.create_dist()
-        cmd = build_clib(dist)
-
-        foo_c = os.path.join(pkg_dir, 'foo.c')
-        self.write_file(foo_c, 'int main(void) { return 1;}\n')
-        cmd.libraries = [('foo', {'sources': [foo_c]})]
-
-        build_temp = os.path.join(pkg_dir, 'build')
-        os.mkdir(build_temp)
-        cmd.build_temp = build_temp
-        cmd.build_clib = build_temp
-
-        # before we run the command, we want to make sure
-        # all commands are present on the system
-        # by creating a compiler and checking its executables
-        from distutils.ccompiler import new_compiler
-        from distutils.sysconfig import customize_compiler
-
-        compiler = new_compiler()
-        customize_compiler(compiler)
-        for ccmd in compiler.executables.values():
-            if ccmd is None:
-                continue
-            if find_executable(ccmd[0]) is None:
-                return # can't test
-
-        # this should work
-        cmd.run()
-
-        # let's check the result
-        self.assertTrue('libfoo.a' in os.listdir(build_temp))
-
-def test_suite():
-    return unittest.makeSuite(BuildCLibTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build_ext.py b/lib/python2.7/distutils/tests/test_build_ext.py
deleted file mode 100644
index 94c6eea..0000000
--- a/lib/python2.7/distutils/tests/test_build_ext.py
+++ /dev/null
@@ -1,522 +0,0 @@
-import sys
-import os
-from StringIO import StringIO
-import textwrap
-
-from distutils.core import Extension, Distribution
-from distutils.command.build_ext import build_ext
-from distutils import sysconfig
-from distutils.tests import support
-from distutils.errors import (DistutilsSetupError, CompileError,
-                              DistutilsPlatformError)
-
-import unittest
-from test import test_support
-
-# http://bugs.python.org/issue4373
-# Don't load the xx module more than once.
-ALREADY_TESTED = False
-
-
-class BuildExtTestCase(support.TempdirManager,
-                       support.LoggingSilencer,
-                       unittest.TestCase):
-    def setUp(self):
-        super(BuildExtTestCase, self).setUp()
-        self.tmp_dir = self.mkdtemp()
-        self.xx_created = False
-        sys.path.append(self.tmp_dir)
-        self.addCleanup(sys.path.remove, self.tmp_dir)
-        if sys.version > "2.6":
-            import site
-            self.old_user_base = site.USER_BASE
-            site.USER_BASE = self.mkdtemp()
-            from distutils.command import build_ext
-            build_ext.USER_BASE = site.USER_BASE
-
-    def tearDown(self):
-        if self.xx_created:
-            test_support.unload('xx')
-            # XXX on Windows the test leaves a directory
-            # with xx module in TEMP
-        super(BuildExtTestCase, self).tearDown()
-
-    def test_build_ext(self):
-        global ALREADY_TESTED
-        support.copy_xxmodule_c(self.tmp_dir)
-        self.xx_created = True
-        xx_c = os.path.join(self.tmp_dir, 'xxmodule.c')
-        xx_ext = Extension('xx', [xx_c])
-        dist = Distribution({'name': 'xx', 'ext_modules': [xx_ext]})
-        dist.package_dir = self.tmp_dir
-        cmd = build_ext(dist)
-        support.fixup_build_ext(cmd)
-        cmd.build_lib = self.tmp_dir
-        cmd.build_temp = self.tmp_dir
-
-        old_stdout = sys.stdout
-        if not test_support.verbose:
-            # silence compiler output
-            sys.stdout = StringIO()
-        try:
-            cmd.ensure_finalized()
-            #Broken after issue 7712(r78136) : add a temp_cwd context manager to test_support ...
-            #Without current working dir: "...cannot find -lpython27"
-            #NOTE: [py3k svn r85559] First (uncontroversial) part of issue 9807, barry.warsaw, 2010-10-16 :
-            #  new _fixup_command is bogus, so we will use own work-around
-            cmd.library_dirs.insert(0, test_support.SAVEDCWD)
-            cmd.run()
-        finally:
-            sys.stdout = old_stdout
-
-        if ALREADY_TESTED:
-            return
-        else:
-            ALREADY_TESTED = True
-
-        import xx
-
-        for attr in ('error', 'foo', 'new', 'roj'):
-            self.assertTrue(hasattr(xx, attr))
-
-        self.assertEqual(xx.foo(2, 5), 7)
-        self.assertEqual(xx.foo(13,15), 28)
-        self.assertEqual(xx.new().demo(), None)
-        if test_support.HAVE_DOCSTRINGS:
-            doc = 'This is a template module just for instruction.'
-            self.assertEqual(xx.__doc__, doc)
-        self.assertTrue(isinstance(xx.Null(), xx.Null))
-        self.assertTrue(isinstance(xx.Str(), xx.Str))
-
-    def test_solaris_enable_shared(self):
-        dist = Distribution({'name': 'xx'})
-        cmd = build_ext(dist)
-        old = sys.platform
-
-        sys.platform = 'sunos' # fooling finalize_options
-        from distutils.sysconfig import  _config_vars
-        old_var = _config_vars.get('Py_ENABLE_SHARED')
-        _config_vars['Py_ENABLE_SHARED'] = 1
-        try:
-            cmd.ensure_finalized()
-        finally:
-            sys.platform = old
-            if old_var is None:
-                del _config_vars['Py_ENABLE_SHARED']
-            else:
-                _config_vars['Py_ENABLE_SHARED'] = old_var
-
-        # make sure we get some library dirs under solaris
-        self.assertTrue(len(cmd.library_dirs) > 0)
-
-    def test_user_site(self):
-        # site.USER_SITE was introduced in 2.6
-        if sys.version < '2.6':
-            return
-
-        import site
-        dist = Distribution({'name': 'xx'})
-        cmd = build_ext(dist)
-
-        # making sure the user option is there
-        options = [name for name, short, label in
-                   cmd.user_options]
-        self.assertIn('user', options)
-
-        # setting a value
-        cmd.user = 1
-
-        # setting user based lib and include
-        lib = os.path.join(site.USER_BASE, 'lib')
-        incl = os.path.join(site.USER_BASE, 'include')
-        os.mkdir(lib)
-        os.mkdir(incl)
-
-        cmd.ensure_finalized()
-
-        # see if include_dirs and library_dirs were set
-        self.assertIn(lib, cmd.library_dirs)
-        self.assertIn(lib, cmd.rpath)
-        self.assertIn(incl, cmd.include_dirs)
-
-    def test_finalize_options(self):
-        # Make sure Python's include directories (for Python.h, pyconfig.h,
-        # etc.) are in the include search path.
-        modules = [Extension('foo', ['xxx'])]
-        dist = Distribution({'name': 'xx', 'ext_modules': modules})
-        cmd = build_ext(dist)
-        cmd.finalize_options()
-
-        py_include = sysconfig.get_python_inc()
-        self.assertTrue(py_include in cmd.include_dirs)
-
-        plat_py_include = sysconfig.get_python_inc(plat_specific=1)
-        self.assertTrue(plat_py_include in cmd.include_dirs)
-
-        # make sure cmd.libraries is turned into a list
-        # if it's a string
-        cmd = build_ext(dist)
-        cmd.libraries = 'my_lib, other_lib lastlib'
-        cmd.finalize_options()
-        self.assertEqual(cmd.libraries, ['my_lib', 'other_lib', 'lastlib'])
-
-        # make sure cmd.library_dirs is turned into a list
-        # if it's a string
-        cmd = build_ext(dist)
-        cmd.library_dirs = 'my_lib_dir%sother_lib_dir' % os.pathsep
-        cmd.finalize_options()
-        self.assertIn('my_lib_dir', cmd.library_dirs)
-        self.assertIn('other_lib_dir', cmd.library_dirs)
-
-        # make sure rpath is turned into a list
-        # if it's a string
-        cmd = build_ext(dist)
-        cmd.rpath = 'one%stwo' % os.pathsep
-        cmd.finalize_options()
-        self.assertEqual(cmd.rpath, ['one', 'two'])
-
-        # XXX more tests to perform for win32
-
-        # make sure define is turned into 2-tuples
-        # strings if they are ','-separated strings
-        cmd = build_ext(dist)
-        cmd.define = 'one,two'
-        cmd.finalize_options()
-        self.assertEqual(cmd.define, [('one', '1'), ('two', '1')])
-
-        # make sure undef is turned into a list of
-        # strings if they are ','-separated strings
-        cmd = build_ext(dist)
-        cmd.undef = 'one,two'
-        cmd.finalize_options()
-        self.assertEqual(cmd.undef, ['one', 'two'])
-
-        # make sure swig_opts is turned into a list
-        cmd = build_ext(dist)
-        cmd.swig_opts = None
-        cmd.finalize_options()
-        self.assertEqual(cmd.swig_opts, [])
-
-        cmd = build_ext(dist)
-        cmd.swig_opts = '1 2'
-        cmd.finalize_options()
-        self.assertEqual(cmd.swig_opts, ['1', '2'])
-
-    def test_check_extensions_list(self):
-        dist = Distribution()
-        cmd = build_ext(dist)
-        cmd.finalize_options()
-
-        #'extensions' option must be a list of Extension instances
-        self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, 'foo')
-
-        # each element of 'ext_modules' option must be an
-        # Extension instance or 2-tuple
-        exts = [('bar', 'foo', 'bar'), 'foo']
-        self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
-
-        # first element of each tuple in 'ext_modules'
-        # must be the extension name (a string) and match
-        # a python dotted-separated name
-        exts = [('foo-bar', '')]
-        self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
-
-        # second element of each tuple in 'ext_modules'
-        # must be a ary (build info)
-        exts = [('foo.bar', '')]
-        self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
-
-        # ok this one should pass
-        exts = [('foo.bar', {'sources': [''], 'libraries': 'foo',
-                             'some': 'bar'})]
-        cmd.check_extensions_list(exts)
-        ext = exts[0]
-        self.assertTrue(isinstance(ext, Extension))
-
-        # check_extensions_list adds in ext the values passed
-        # when they are in ('include_dirs', 'library_dirs', 'libraries'
-        # 'extra_objects', 'extra_compile_args', 'extra_link_args')
-        self.assertEqual(ext.libraries, 'foo')
-        self.assertTrue(not hasattr(ext, 'some'))
-
-        # 'macros' element of build info dict must be 1- or 2-tuple
-        exts = [('foo.bar', {'sources': [''], 'libraries': 'foo',
-                'some': 'bar', 'macros': [('1', '2', '3'), 'foo']})]
-        self.assertRaises(DistutilsSetupError, cmd.check_extensions_list, exts)
-
-        exts[0][1]['macros'] = [('1', '2'), ('3',)]
-        cmd.check_extensions_list(exts)
-        self.assertEqual(exts[0].undef_macros, ['3'])
-        self.assertEqual(exts[0].define_macros, [('1', '2')])
-
-    def test_get_source_files(self):
-        modules = [Extension('foo', ['xxx'])]
-        dist = Distribution({'name': 'xx', 'ext_modules': modules})
-        cmd = build_ext(dist)
-        cmd.ensure_finalized()
-        self.assertEqual(cmd.get_source_files(), ['xxx'])
-
-    def test_compiler_option(self):
-        # cmd.compiler is an option and
-        # should not be overriden by a compiler instance
-        # when the command is run
-        dist = Distribution()
-        cmd = build_ext(dist)
-        cmd.compiler = 'unix'
-        cmd.ensure_finalized()
-        cmd.run()
-        self.assertEqual(cmd.compiler, 'unix')
-
-    def test_get_outputs(self):
-        tmp_dir = self.mkdtemp()
-        c_file = os.path.join(tmp_dir, 'foo.c')
-        self.write_file(c_file, 'void initfoo(void) {};\n')
-        ext = Extension('foo', [c_file])
-        dist = Distribution({'name': 'xx',
-                             'ext_modules': [ext]})
-        cmd = build_ext(dist)
-        support.fixup_build_ext(cmd)
-        cmd.ensure_finalized()
-        self.assertEqual(len(cmd.get_outputs()), 1)
-
-        cmd.build_lib = os.path.join(self.tmp_dir, 'build')
-        cmd.build_temp = os.path.join(self.tmp_dir, 'tempt')
-
-        # issue #5977 : distutils build_ext.get_outputs
-        # returns wrong result with --inplace
-        other_tmp_dir = os.path.realpath(self.mkdtemp())
-        old_wd = os.getcwd()
-        #Without current working dir: "...cannot find -lpython27"
-        #NOTE: After issue #7712(r78136) test cannot use old_wd !
-        #cmd.library_dirs.insert(0, old_wd)
-        #NOTE: [py3k svn r85559] First (uncontroversial) part of issue 9807, barry.warsaw, 2010-10-16 :
-        #  new _fixup_command is bogus, so we will use own work-around
-        cmd.library_dirs.insert(0, test_support.SAVEDCWD)
-        os.chdir(other_tmp_dir)
-        try:
-            cmd.inplace = 1
-            cmd.run()
-            so_file = cmd.get_outputs()[0]
-        finally:
-            os.chdir(old_wd)
-        self.assertTrue(os.path.exists(so_file))
-        self.assertEqual(os.path.splitext(so_file)[-1],
-                         sysconfig.get_config_var('SO'))
-        so_dir = os.path.dirname(so_file)
-        self.assertEqual(so_dir, other_tmp_dir)
-        cmd.compiler = None
-        cmd.inplace = 0
-        cmd.run()
-        so_file = cmd.get_outputs()[0]
-        self.assertTrue(os.path.exists(so_file))
-        self.assertEqual(os.path.splitext(so_file)[-1],
-                         sysconfig.get_config_var('SO'))
-        so_dir = os.path.dirname(so_file)
-        self.assertEqual(so_dir, cmd.build_lib)
-
-        # inplace = 0, cmd.package = 'bar'
-        build_py = cmd.get_finalized_command('build_py')
-        build_py.package_dir = {'': 'bar'}
-        path = cmd.get_ext_fullpath('foo')
-        # checking that the last directory is the build_dir
-        path = os.path.split(path)[0]
-        self.assertEqual(path, cmd.build_lib)
-
-        # inplace = 1, cmd.package = 'bar'
-        cmd.inplace = 1
-        other_tmp_dir = os.path.realpath(self.mkdtemp())
-        old_wd = os.getcwd()
-        os.chdir(other_tmp_dir)
-        try:
-            path = cmd.get_ext_fullpath('foo')
-        finally:
-            os.chdir(old_wd)
-        # checking that the last directory is bar
-        path = os.path.split(path)[0]
-        lastdir = os.path.split(path)[-1]
-        self.assertEqual(lastdir, 'bar')
-
-    def test_ext_fullpath(self):
-        ext = sysconfig.get_config_vars()['SO']
-        dist = Distribution()
-        cmd = build_ext(dist)
-        cmd.inplace = 1
-        cmd.distribution.package_dir = {'': 'src'}
-        cmd.distribution.packages = ['lxml', 'lxml.html']
-        curdir = os.getcwd()
-        wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
-        path = cmd.get_ext_fullpath('lxml.etree')
-        self.assertEqual(wanted, path)
-
-        # building lxml.etree not inplace
-        cmd.inplace = 0
-        cmd.build_lib = os.path.join(curdir, 'tmpdir')
-        wanted = os.path.join(curdir, 'tmpdir', 'lxml', 'etree' + ext)
-        path = cmd.get_ext_fullpath('lxml.etree')
-        self.assertEqual(wanted, path)
-
-        # building twisted.runner.portmap not inplace
-        build_py = cmd.get_finalized_command('build_py')
-        build_py.package_dir = {}
-        cmd.distribution.packages = ['twisted', 'twisted.runner.portmap']
-        path = cmd.get_ext_fullpath('twisted.runner.portmap')
-        wanted = os.path.join(curdir, 'tmpdir', 'twisted', 'runner',
-                              'portmap' + ext)
-        self.assertEqual(wanted, path)
-
-        # building twisted.runner.portmap inplace
-        cmd.inplace = 1
-        path = cmd.get_ext_fullpath('twisted.runner.portmap')
-        wanted = os.path.join(curdir, 'twisted', 'runner', 'portmap' + ext)
-        self.assertEqual(wanted, path)
-
-    def test_build_ext_inplace(self):
-        etree_c = os.path.join(self.tmp_dir, 'lxml.etree.c')
-        etree_ext = Extension('lxml.etree', [etree_c])
-        dist = Distribution({'name': 'lxml', 'ext_modules': [etree_ext]})
-        cmd = build_ext(dist)
-        cmd.ensure_finalized()
-        cmd.inplace = 1
-        cmd.distribution.package_dir = {'': 'src'}
-        cmd.distribution.packages = ['lxml', 'lxml.html']
-        curdir = os.getcwd()
-        ext = sysconfig.get_config_var("SO")
-        wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
-        path = cmd.get_ext_fullpath('lxml.etree')
-        self.assertEqual(wanted, path)
-
-    def test_setuptools_compat(self):
-        import distutils.core, distutils.extension, distutils.command.build_ext
-        saved_ext = distutils.extension.Extension
-        try:
-            # on some platforms, it loads the deprecated "dl" module
-            test_support.import_module('setuptools_build_ext', deprecated=True)
-
-            # theses import patch Distutils' Extension class
-            from setuptools_build_ext import build_ext as setuptools_build_ext
-            from setuptools_extension import Extension
-
-            etree_c = os.path.join(self.tmp_dir, 'lxml.etree.c')
-            etree_ext = Extension('lxml.etree', [etree_c])
-            dist = Distribution({'name': 'lxml', 'ext_modules': [etree_ext]})
-            cmd = setuptools_build_ext(dist)
-            cmd.ensure_finalized()
-            cmd.inplace = 1
-            cmd.distribution.package_dir = {'': 'src'}
-            cmd.distribution.packages = ['lxml', 'lxml.html']
-            curdir = os.getcwd()
-            ext = sysconfig.get_config_var("SO")
-            wanted = os.path.join(curdir, 'src', 'lxml', 'etree' + ext)
-            path = cmd.get_ext_fullpath('lxml.etree')
-            self.assertEqual(wanted, path)
-        finally:
-            # restoring Distutils' Extension class otherwise its broken
-            distutils.extension.Extension = saved_ext
-            distutils.core.Extension = saved_ext
-            distutils.command.build_ext.Extension = saved_ext
-
-    def test_build_ext_path_with_os_sep(self):
-        dist = Distribution({'name': 'UpdateManager'})
-        cmd = build_ext(dist)
-        cmd.ensure_finalized()
-        ext = sysconfig.get_config_var("SO")
-        ext_name = os.path.join('UpdateManager', 'fdsend')
-        ext_path = cmd.get_ext_fullpath(ext_name)
-        wanted = os.path.join(cmd.build_lib, 'UpdateManager', 'fdsend' + ext)
-        self.assertEqual(ext_path, wanted)
-
-    def test_build_ext_path_cross_platform(self):
-        if sys.platform != 'win32':
-            return
-        dist = Distribution({'name': 'UpdateManager'})
-        cmd = build_ext(dist)
-        cmd.ensure_finalized()
-        ext = sysconfig.get_config_var("SO")
-        # this needs to work even under win32
-        ext_name = 'UpdateManager/fdsend'
-        ext_path = cmd.get_ext_fullpath(ext_name)
-        wanted = os.path.join(cmd.build_lib, 'UpdateManager', 'fdsend' + ext)
-        self.assertEqual(ext_path, wanted)
-
-    @unittest.skipUnless(sys.platform == 'darwin', 'test only relevant for MacOSX')
-    def test_deployment_target_default(self):
-        # Issue 9516: Test that, in the absence of the environment variable,
-        # an extension module is compiled with the same deployment target as
-        #  the interpreter.
-        self._try_compile_deployment_target('==', None)
-
-    @unittest.skipUnless(sys.platform == 'darwin', 'test only relevant for MacOSX')
-    def test_deployment_target_too_low(self):
-        # Issue 9516: Test that an extension module is not allowed to be
-        # compiled with a deployment target less than that of the interpreter.
-        self.assertRaises(DistutilsPlatformError,
-            self._try_compile_deployment_target, '>', '10.1')
-
-    @unittest.skipUnless(sys.platform == 'darwin', 'test only relevant for MacOSX')
-    def test_deployment_target_higher_ok(self):
-        # Issue 9516: Test that an extension module can be compiled with a
-        # deployment target higher than that of the interpreter: the ext
-        # module may depend on some newer OS feature.
-        deptarget = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET')
-        if deptarget:
-            # increment the minor version number (i.e. 10.6 -> 10.7)
-            deptarget = [int(x) for x in deptarget.split('.')]
-            deptarget[-1] += 1
-            deptarget = '.'.join(str(i) for i in deptarget)
-            self._try_compile_deployment_target('<', deptarget)
-
-    def _try_compile_deployment_target(self, operator, target):
-        orig_environ = os.environ
-        os.environ = orig_environ.copy()
-        self.addCleanup(setattr, os, 'environ', orig_environ)
-
-        if target is None:
-            if os.environ.get('MACOSX_DEPLOYMENT_TARGET'):
-                del os.environ['MACOSX_DEPLOYMENT_TARGET']
-        else:
-            os.environ['MACOSX_DEPLOYMENT_TARGET'] = target
-
-        deptarget_c = os.path.join(self.tmp_dir, 'deptargetmodule.c')
-
-        with open(deptarget_c, 'w') as fp:
-            fp.write(textwrap.dedent('''\
-                #include <AvailabilityMacros.h>
-
-                int dummy;
-
-                #if TARGET %s MAC_OS_X_VERSION_MIN_REQUIRED
-                #else
-                #error "Unexpected target"
-                #endif
-
-            ''' % operator))
-
-        # get the deployment target that the interpreter was built with
-        target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET')
-        target = tuple(map(int, target.split('.')))
-        target = '%02d%01d0' % target
-        deptarget_ext = Extension(
-            'deptarget',
-            [deptarget_c],
-            extra_compile_args=['-DTARGET=%s'%(target,)],
-        )
-        dist = Distribution({
-            'name': 'deptarget',
-            'ext_modules': [deptarget_ext]
-        })
-        dist.package_dir = self.tmp_dir
-        cmd = build_ext(dist)
-        cmd.build_lib = self.tmp_dir
-        cmd.build_temp = self.tmp_dir
-
-        try:
-            cmd.ensure_finalized()
-            cmd.run()
-        except CompileError:
-            self.fail("Wrong deployment target during compilation")
-
-def test_suite():
-    return unittest.makeSuite(BuildExtTestCase)
-
-if __name__ == '__main__':
-    test_support.run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build_py.py b/lib/python2.7/distutils/tests/test_build_py.py
deleted file mode 100644
index 6c6ec20..0000000
--- a/lib/python2.7/distutils/tests/test_build_py.py
+++ /dev/null
@@ -1,122 +0,0 @@
-"""Tests for distutils.command.build_py."""
-
-import os
-import sys
-import StringIO
-import unittest
-
-from distutils.command.build_py import build_py
-from distutils.core import Distribution
-from distutils.errors import DistutilsFileError
-
-from distutils.tests import support
-from test.test_support import run_unittest
-
-
-class BuildPyTestCase(support.TempdirManager,
-                      support.LoggingSilencer,
-                      unittest.TestCase):
-
-    def test_package_data(self):
-        sources = self.mkdtemp()
-        f = open(os.path.join(sources, "__init__.py"), "w")
-        try:
-            f.write("# Pretend this is a package.")
-        finally:
-            f.close()
-        f = open(os.path.join(sources, "README.txt"), "w")
-        try:
-            f.write("Info about this package")
-        finally:
-            f.close()
-
-        destination = self.mkdtemp()
-
-        dist = Distribution({"packages": ["pkg"],
-                             "package_dir": {"pkg": sources}})
-        # script_name need not exist, it just need to be initialized
-        dist.script_name = os.path.join(sources, "setup.py")
-        dist.command_obj["build"] = support.DummyCommand(
-            force=0,
-            build_lib=destination)
-        dist.packages = ["pkg"]
-        dist.package_data = {"pkg": ["README.txt"]}
-        dist.package_dir = {"pkg": sources}
-
-        cmd = build_py(dist)
-        cmd.compile = 1
-        cmd.ensure_finalized()
-        self.assertEqual(cmd.package_data, dist.package_data)
-
-        cmd.run()
-
-        # This makes sure the list of outputs includes byte-compiled
-        # files for Python modules but not for package data files
-        # (there shouldn't *be* byte-code files for those!).
-        #
-        self.assertEqual(len(cmd.get_outputs()), 3)
-        pkgdest = os.path.join(destination, "pkg")
-        files = os.listdir(pkgdest)
-        self.assertIn("__init__.py", files)
-        self.assertIn("README.txt", files)
-        # XXX even with -O, distutils writes pyc, not pyo; bug?
-        if sys.dont_write_bytecode:
-            self.assertNotIn("__init__.pyc", files)
-        else:
-            self.assertIn("__init__.pyc", files)
-
-    def test_empty_package_dir(self):
-        # See SF 1668596/1720897.
-        cwd = os.getcwd()
-
-        # create the distribution files.
-        sources = self.mkdtemp()
-        open(os.path.join(sources, "__init__.py"), "w").close()
-
-        testdir = os.path.join(sources, "doc")
-        os.mkdir(testdir)
-        open(os.path.join(testdir, "testfile"), "w").close()
-
-        os.chdir(sources)
-        old_stdout = sys.stdout
-        sys.stdout = StringIO.StringIO()
-
-        try:
-            dist = Distribution({"packages": ["pkg"],
-                                 "package_dir": {"pkg": ""},
-                                 "package_data": {"pkg": ["doc/*"]}})
-            # script_name need not exist, it just need to be initialized
-            dist.script_name = os.path.join(sources, "setup.py")
-            dist.script_args = ["build"]
-            dist.parse_command_line()
-
-            try:
-                dist.run_commands()
-            except DistutilsFileError:
-                self.fail("failed package_data test when package_dir is ''")
-        finally:
-            # Restore state.
-            os.chdir(cwd)
-            sys.stdout = old_stdout
-
-    def test_dont_write_bytecode(self):
-        # makes sure byte_compile is not used
-        pkg_dir, dist = self.create_dist()
-        cmd = build_py(dist)
-        cmd.compile = 1
-        cmd.optimize = 1
-
-        old_dont_write_bytecode = sys.dont_write_bytecode
-        sys.dont_write_bytecode = True
-        try:
-            cmd.byte_compile([])
-        finally:
-            sys.dont_write_bytecode = old_dont_write_bytecode
-
-        self.assertIn('byte-compiling is disabled', self.logs[0][1])
-
-def test_suite():
-    return unittest.makeSuite(BuildPyTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_build_scripts.py b/lib/python2.7/distutils/tests/test_build_scripts.py
deleted file mode 100644
index 4da93cc..0000000
--- a/lib/python2.7/distutils/tests/test_build_scripts.py
+++ /dev/null
@@ -1,112 +0,0 @@
-"""Tests for distutils.command.build_scripts."""
-
-import os
-import unittest
-
-from distutils.command.build_scripts import build_scripts
-from distutils.core import Distribution
-import sysconfig
-
-from distutils.tests import support
-from test.test_support import run_unittest
-
-
-class BuildScriptsTestCase(support.TempdirManager,
-                           support.LoggingSilencer,
-                           unittest.TestCase):
-
-    def test_default_settings(self):
-        cmd = self.get_build_scripts_cmd("/foo/bar", [])
-        self.assertTrue(not cmd.force)
-        self.assertTrue(cmd.build_dir is None)
-
-        cmd.finalize_options()
-
-        self.assertTrue(cmd.force)
-        self.assertEqual(cmd.build_dir, "/foo/bar")
-
-    def test_build(self):
-        source = self.mkdtemp()
-        target = self.mkdtemp()
-        expected = self.write_sample_scripts(source)
-
-        cmd = self.get_build_scripts_cmd(target,
-                                         [os.path.join(source, fn)
-                                          for fn in expected])
-        cmd.finalize_options()
-        cmd.run()
-
-        built = os.listdir(target)
-        for name in expected:
-            self.assertTrue(name in built)
-
-    def get_build_scripts_cmd(self, target, scripts):
-        import sys
-        dist = Distribution()
-        dist.scripts = scripts
-        dist.command_obj["build"] = support.DummyCommand(
-            build_scripts=target,
-            force=1,
-            executable=sys.executable
-            )
-        return build_scripts(dist)
-
-    def write_sample_scripts(self, dir):
-        expected = []
-        expected.append("script1.py")
-        self.write_script(dir, "script1.py",
-                          ("#! /usr/bin/env python2.3\n"
-                           "# bogus script w/ Python sh-bang\n"
-                           "pass\n"))
-        expected.append("script2.py")
-        self.write_script(dir, "script2.py",
-                          ("#!/usr/bin/python\n"
-                           "# bogus script w/ Python sh-bang\n"
-                           "pass\n"))
-        expected.append("shell.sh")
-        self.write_script(dir, "shell.sh",
-                          ("#!/bin/sh\n"
-                           "# bogus shell script w/ sh-bang\n"
-                           "exit 0\n"))
-        return expected
-
-    def write_script(self, dir, name, text):
-        f = open(os.path.join(dir, name), "w")
-        try:
-            f.write(text)
-        finally:
-            f.close()
-
-    def test_version_int(self):
-        source = self.mkdtemp()
-        target = self.mkdtemp()
-        expected = self.write_sample_scripts(source)
-
-
-        cmd = self.get_build_scripts_cmd(target,
-                                         [os.path.join(source, fn)
-                                          for fn in expected])
-        cmd.finalize_options()
-
-        # http://bugs.python.org/issue4524
-        #
-        # On linux-g++-32 with command line `./configure --enable-ipv6
-        # --with-suffix=3`, python is compiled okay but the build scripts
-        # failed when writing the name of the executable
-        old = sysconfig.get_config_vars().get('VERSION')
-        sysconfig._CONFIG_VARS['VERSION'] = 4
-        try:
-            cmd.run()
-        finally:
-            if old is not None:
-                sysconfig._CONFIG_VARS['VERSION'] = old
-
-        built = os.listdir(target)
-        for name in expected:
-            self.assertTrue(name in built)
-
-def test_suite():
-    return unittest.makeSuite(BuildScriptsTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_ccompiler.py b/lib/python2.7/distutils/tests/test_ccompiler.py
deleted file mode 100644
index 45e477a..0000000
--- a/lib/python2.7/distutils/tests/test_ccompiler.py
+++ /dev/null
@@ -1,82 +0,0 @@
-"""Tests for distutils.ccompiler."""
-import os
-import unittest
-from test.test_support import captured_stdout
-
-from distutils.ccompiler import (gen_lib_options, CCompiler,
-                                 get_default_compiler)
-from distutils.sysconfig import customize_compiler
-from distutils import debug
-from distutils.tests import support
-
-class FakeCompiler(object):
-    def library_dir_option(self, dir):
-        return "-L" + dir
-
-    def runtime_library_dir_option(self, dir):
-        return ["-cool", "-R" + dir]
-
-    def find_library_file(self, dirs, lib, debug=0):
-        return 'found'
-
-    def library_option(self, lib):
-        return "-l" + lib
-
-class CCompilerTestCase(support.EnvironGuard, unittest.TestCase):
-
-    def test_gen_lib_options(self):
-        compiler = FakeCompiler()
-        libdirs = ['lib1', 'lib2']
-        runlibdirs = ['runlib1']
-        libs = [os.path.join('dir', 'name'), 'name2']
-
-        opts = gen_lib_options(compiler, libdirs, runlibdirs, libs)
-        wanted = ['-Llib1', '-Llib2', '-cool', '-Rrunlib1', 'found',
-                  '-lname2']
-        self.assertEqual(opts, wanted)
-
-    def test_debug_print(self):
-
-        class MyCCompiler(CCompiler):
-            executables = {}
-
-        compiler = MyCCompiler()
-        with captured_stdout() as stdout:
-            compiler.debug_print('xxx')
-        stdout.seek(0)
-        self.assertEqual(stdout.read(), '')
-
-        debug.DEBUG = True
-        try:
-            with captured_stdout() as stdout:
-                compiler.debug_print('xxx')
-            stdout.seek(0)
-            self.assertEqual(stdout.read(), 'xxx\n')
-        finally:
-            debug.DEBUG = False
-
-    def test_customize_compiler(self):
-
-        # not testing if default compiler is not unix
-        if get_default_compiler() != 'unix':
-            return
-
-        os.environ['AR'] = 'my_ar'
-        os.environ['ARFLAGS'] = '-arflags'
-
-        # make sure AR gets caught
-        class compiler:
-            compiler_type = 'unix'
-
-            def set_executables(self, **kw):
-                self.exes = kw
-
-        comp = compiler()
-        customize_compiler(comp)
-        self.assertEqual(comp.exes['archiver'], 'my_ar -arflags')
-
-def test_suite():
-    return unittest.makeSuite(CCompilerTestCase)
-
-if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
diff --git a/lib/python2.7/distutils/tests/test_check.py b/lib/python2.7/distutils/tests/test_check.py
deleted file mode 100644
index f73342a..0000000
--- a/lib/python2.7/distutils/tests/test_check.py
+++ /dev/null
@@ -1,109 +0,0 @@
-# -*- encoding: utf8 -*-
-"""Tests for distutils.command.check."""
-import unittest
-from test.test_support import run_unittest
-
-from distutils.command.check import check, HAS_DOCUTILS
-from distutils.tests import support
-from distutils.errors import DistutilsSetupError
-
-class CheckTestCase(support.LoggingSilencer,
-                    support.TempdirManager,
-                    unittest.TestCase):
-
-    def _run(self, metadata=None, **options):
-        if metadata is None:
-            metadata = {}
-        pkg_info, dist = self.create_dist(**metadata)
-        cmd = check(dist)
-        cmd.initialize_options()
-        for name, value in options.items():
-            setattr(cmd, name, value)
-        cmd.ensure_finalized()
-        cmd.run()
-        return cmd
-
-    def test_check_metadata(self):
-        # let's run the command with no metadata at all
-        # by default, check is checking the metadata
-        # should have some warnings
-        cmd = self._run()
-        self.assertEqual(cmd._warnings, 2)
-
-        # now let's add the required fields
-        # and run it again, to make sure we don't get
-        # any warning anymore
-        metadata = {'url': 'xxx', 'author': 'xxx',
-                    'author_email': 'xxx',
-                    'name': 'xxx', 'version': 'xxx'}
-        cmd = self._run(metadata)
-        self.assertEqual(cmd._warnings, 0)
-
-        # now with the strict mode, we should
-        # get an error if there are missing metadata
-        self.assertRaises(DistutilsSetupError, self._run, {}, **{'strict': 1})
-
-        # and of course, no error when all metadata are present
-        cmd = self._run(metadata, strict=1)
-        self.assertEqual(cmd._warnings, 0)
-
-        # now a test with Unicode entries
-        metadata = {'url': u'xxx', 'author': u'\u00c9ric',
-                    'author_email': u'xxx', u'name': 'xxx',
-                    'version': u'xxx',
-                    'description': u'Something about esszet \u00df',
-                    'long_description': u'More things about esszet \u00df'}
-        cmd = self._run(metadata)
-        self.assertEqual(cmd._warnings, 0)
-
-    def test_check_document(self):
-        if not HAS_DOCUTILS: # won't test without docutils
-            return
-        pkg_info, dist = self.create_dist()
-        cmd = check(dist)
-
-        # let's see if it detects broken rest
-        broken_rest = 'title\n===\n\ntest'
-        msgs = cmd._check_rst_data(broken_rest)
-        self.assertEqual(len(msgs), 1)
-
-        # and non-broken rest
-        rest = 'title\n=====\n\ntest'
-        msgs = cmd._check_rst_data(rest)
-        self.assertEqual(len(msgs), 0)
-
-    def test_check_restructuredtext(self):
-        if not HAS_DOCUTILS: # won't test without docutils
-            return
-        # let's see if it detects broken rest in long_description
-        broken_rest = 'title\n===\n\ntest'
-        pkg_info, dist = self.create_dist(long_description=broken_rest)
-        cmd = check(dist)
-        cmd.check_restructuredtext()
-        self.assertEqual(cmd._warnings, 1)
-
-        # let's see if we have an error with strict=1
-        metadata = {'url': 'xxx', 'author': 'xxx',
-                    'author_email': 'xxx',
-                    'name': 'xxx', 'version': 'xxx',
-                    'long_description': broken_rest}
-        self.assertRaises(DistutilsSetupError, self._run, metadata,
-                          **{'strict': 1, 'restructuredtext': 1})
-
-        # and non-broken rest, including a non-ASCII character to test #12114
-        metadata['long_description'] = u'title\n=====\n\ntest \u00df'
-        cmd = self._run(metadata, strict=1, restructuredtext=1)
-        self.assertEqual(cmd._warnings, 0)
-
-    def test_check_all(self):
-
-        metadata = {'url': 'xxx', 'author': 'xxx'}
-        self.assertRaises(DistutilsSetupError, self._run,
-                          {}, **{'strict': 1,
-                                 'restructuredtext': 1})
-
-def test_suite():
-    return unittest.makeSuite(CheckTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_clean.py b/lib/python2.7/distutils/tests/test_clean.py
deleted file mode 100644
index 7b988f7..0000000
--- a/lib/python2.7/distutils/tests/test_clean.py
+++ /dev/null
@@ -1,51 +0,0 @@
-"""Tests for distutils.command.clean."""
-import sys
-import os
-import unittest
-import getpass
-
-from distutils.command.clean import clean
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class cleanTestCase(support.TempdirManager,
-                    support.LoggingSilencer,
-                    unittest.TestCase):
-
-    def test_simple_run(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = clean(dist)
-
-        # let's add some elements clean should remove
-        dirs = [(d, os.path.join(pkg_dir, d))
-                for d in ('build_temp', 'build_lib', 'bdist_base',
-                'build_scripts', 'build_base')]
-
-        for name, path in dirs:
-            os.mkdir(path)
-            setattr(cmd, name, path)
-            if name == 'build_base':
-                continue
-            for f in ('one', 'two', 'three'):
-                self.write_file(os.path.join(path, f))
-
-        # let's run the command
-        cmd.all = 1
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # make sure the files where removed
-        for name, path in dirs:
-            self.assertTrue(not os.path.exists(path),
-                         '%s was not removed' % path)
-
-        # let's run the command again (should spit warnings but succeed)
-        cmd.all = 1
-        cmd.ensure_finalized()
-        cmd.run()
-
-def test_suite():
-    return unittest.makeSuite(cleanTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_cmd.py b/lib/python2.7/distutils/tests/test_cmd.py
deleted file mode 100644
index e074099..0000000
--- a/lib/python2.7/distutils/tests/test_cmd.py
+++ /dev/null
@@ -1,127 +0,0 @@
-"""Tests for distutils.cmd."""
-import unittest
-import os
-from test.test_support import captured_stdout, run_unittest
-
-from distutils.cmd import Command
-from distutils.dist import Distribution
-from distutils.errors import DistutilsOptionError
-from distutils import debug
-
-class MyCmd(Command):
-    def initialize_options(self):
-        pass
-
-class CommandTestCase(unittest.TestCase):
-
-    def setUp(self):
-        dist = Distribution()
-        self.cmd = MyCmd(dist)
-
-    def test_ensure_string_list(self):
-
-        cmd = self.cmd
-        cmd.not_string_list = ['one', 2, 'three']
-        cmd.yes_string_list = ['one', 'two', 'three']
-        cmd.not_string_list2 = object()
-        cmd.yes_string_list2 = 'ok'
-        cmd.ensure_string_list('yes_string_list')
-        cmd.ensure_string_list('yes_string_list2')
-
-        self.assertRaises(DistutilsOptionError,
-                          cmd.ensure_string_list, 'not_string_list')
-
-        self.assertRaises(DistutilsOptionError,
-                          cmd.ensure_string_list, 'not_string_list2')
-
-    def test_make_file(self):
-
-        cmd = self.cmd
-
-        # making sure it raises when infiles is not a string or a list/tuple
-        self.assertRaises(TypeError, cmd.make_file,
-                          infiles=1, outfile='', func='func', args=())
-
-        # making sure execute gets called properly
-        def _execute(func, args, exec_msg, level):
-            self.assertEqual(exec_msg, 'generating out from in')
-        cmd.force = True
-        cmd.execute = _execute
-        cmd.make_file(infiles='in', outfile='out', func='func', args=())
-
-    def test_dump_options(self):
-
-        msgs = []
-        def _announce(msg, level):
-            msgs.append(msg)
-        cmd = self.cmd
-        cmd.announce = _announce
-        cmd.option1 = 1
-        cmd.option2 = 1
-        cmd.user_options = [('option1', '', ''), ('option2', '', '')]
-        cmd.dump_options()
-
-        wanted = ["command options for 'MyCmd':", '  option1 = 1',
-                  '  option2 = 1']
-        self.assertEqual(msgs, wanted)
-
-    def test_ensure_string(self):
-        cmd = self.cmd
-        cmd.option1 = 'ok'
-        cmd.ensure_string('option1')
-
-        cmd.option2 = None
-        cmd.ensure_string('option2', 'xxx')
-        self.assertTrue(hasattr(cmd, 'option2'))
-
-        cmd.option3 = 1
-        self.assertRaises(DistutilsOptionError, cmd.ensure_string, 'option3')
-
-    def test_ensure_string_list(self):
-        cmd = self.cmd
-        cmd.option1 = 'ok,dok'
-        cmd.ensure_string_list('option1')
-        self.assertEqual(cmd.option1, ['ok', 'dok'])
-
-        cmd.option2 = ['xxx', 'www']
-        cmd.ensure_string_list('option2')
-
-        cmd.option3 = ['ok', 2]
-        self.assertRaises(DistutilsOptionError, cmd.ensure_string_list,
-                          'option3')
-
-    def test_ensure_filename(self):
-        cmd = self.cmd
-        cmd.option1 = __file__
-        cmd.ensure_filename('option1')
-        cmd.option2 = 'xxx'
-        self.assertRaises(DistutilsOptionError, cmd.ensure_filename, 'option2')
-
-    def test_ensure_dirname(self):
-        cmd = self.cmd
-        cmd.option1 = os.path.dirname(__file__) or os.curdir
-        cmd.ensure_dirname('option1')
-        cmd.option2 = 'xxx'
-        self.assertRaises(DistutilsOptionError, cmd.ensure_dirname, 'option2')
-
-    def test_debug_print(self):
-        cmd = self.cmd
-        with captured_stdout() as stdout:
-            cmd.debug_print('xxx')
-        stdout.seek(0)
-        self.assertEqual(stdout.read(), '')
-
-        debug.DEBUG = True
-        try:
-            with captured_stdout() as stdout:
-                cmd.debug_print('xxx')
-            stdout.seek(0)
-            self.assertEqual(stdout.read(), 'xxx\n')
-        finally:
-            debug.DEBUG = False
-
-def test_suite():
-    return unittest.makeSuite(CommandTestCase)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_config.py b/lib/python2.7/distutils/tests/test_config.py
deleted file mode 100644
index cfd096e..0000000
--- a/lib/python2.7/distutils/tests/test_config.py
+++ /dev/null
@@ -1,123 +0,0 @@
-"""Tests for distutils.pypirc.pypirc."""
-import sys
-import os
-import unittest
-import tempfile
-import shutil
-
-from distutils.core import PyPIRCCommand
-from distutils.core import Distribution
-from distutils.log import set_threshold
-from distutils.log import WARN
-
-from distutils.tests import support
-from test.test_support import run_unittest
-
-PYPIRC = """\
-[distutils]
-
-index-servers =
-    server1
-    server2
-
-[server1]
-username:me
-password:secret
-
-[server2]
-username:meagain
-password: secret
-realm:acme
-repository:http://another.pypi/
-"""
-
-PYPIRC_OLD = """\
-[server-login]
-username:tarek
-password:secret
-"""
-
-WANTED = """\
-[distutils]
-index-servers =
-    pypi
-
-[pypi]
-username:tarek
-password:xxx
-"""
-
-
-class PyPIRCCommandTestCase(support.TempdirManager,
-                            support.LoggingSilencer,
-                            support.EnvironGuard,
-                            unittest.TestCase):
-
-    def setUp(self):
-        """Patches the environment."""
-        super(PyPIRCCommandTestCase, self).setUp()
-        self.tmp_dir = self.mkdtemp()
-        os.environ['HOME'] = self.tmp_dir
-        self.rc = os.path.join(self.tmp_dir, '.pypirc')
-        self.dist = Distribution()
-
-        class command(PyPIRCCommand):
-            def __init__(self, dist):
-                PyPIRCCommand.__init__(self, dist)
-            def initialize_options(self):
-                pass
-            finalize_options = initialize_options
-
-        self._cmd = command
-        self.old_threshold = set_threshold(WARN)
-
-    def tearDown(self):
-        """Removes the patch."""
-        set_threshold(self.old_threshold)
-        super(PyPIRCCommandTestCase, self).tearDown()
-
-    def test_server_registration(self):
-        # This test makes sure PyPIRCCommand knows how to:
-        # 1. handle several sections in .pypirc
-        # 2. handle the old format
-
-        # new format
-        self.write_file(self.rc, PYPIRC)
-        cmd = self._cmd(self.dist)
-        config = cmd._read_pypirc()
-
-        config = config.items()
-        config.sort()
-        waited = [('password', 'secret'), ('realm', 'pypi'),
-                  ('repository', 'http://pypi.python.org/pypi'),
-                  ('server', 'server1'), ('username', 'me')]
-        self.assertEqual(config, waited)
-
-        # old format
-        self.write_file(self.rc, PYPIRC_OLD)
-        config = cmd._read_pypirc()
-        config = config.items()
-        config.sort()
-        waited = [('password', 'secret'), ('realm', 'pypi'),
-                  ('repository', 'http://pypi.python.org/pypi'),
-                  ('server', 'server-login'), ('username', 'tarek')]
-        self.assertEqual(config, waited)
-
-    def test_server_empty_registration(self):
-        cmd = self._cmd(self.dist)
-        rc = cmd._get_rc_file()
-        self.assertTrue(not os.path.exists(rc))
-        cmd._store_pypirc('tarek', 'xxx')
-        self.assertTrue(os.path.exists(rc))
-        f = open(rc)
-        try:
-            content = f.read()
-            self.assertEqual(content, WANTED)
-        finally:
-            f.close()
-
-def test_suite():
-    return unittest.makeSuite(PyPIRCCommandTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_config_cmd.py b/lib/python2.7/distutils/tests/test_config_cmd.py
deleted file mode 100644
index e16c8ee..0000000
--- a/lib/python2.7/distutils/tests/test_config_cmd.py
+++ /dev/null
@@ -1,91 +0,0 @@
-"""Tests for distutils.command.config."""
-import unittest
-import os
-import sys
-from test.test_support import run_unittest
-
-from distutils.command.config import dump_file, config
-from distutils.tests import support
-from distutils import log
-
-class ConfigTestCase(support.LoggingSilencer,
-                     support.TempdirManager,
-                     unittest.TestCase):
-
-    def _info(self, msg, *args):
-        for line in msg.splitlines():
-            self._logs.append(line)
-
-    def setUp(self):
-        super(ConfigTestCase, self).setUp()
-        self._logs = []
-        self.old_log = log.info
-        log.info = self._info
-
-    def tearDown(self):
-        log.info = self.old_log
-        super(ConfigTestCase, self).tearDown()
-
-    def test_dump_file(self):
-        this_file = os.path.splitext(__file__)[0] + '.py'
-        f = open(this_file)
-        try:
-            numlines = len(f.readlines())
-        finally:
-            f.close()
-
-        dump_file(this_file, 'I am the header')
-        self.assertEqual(len(self._logs), numlines+1)
-
-    def test_search_cpp(self):
-        # TODO: mingw host ?
-        if sys.platform == 'win32':
-            return
-        pkg_dir, dist = self.create_dist()
-        cmd = config(dist)
-
-        # simple pattern searches
-        match = cmd.search_cpp(pattern='xxx', body='/* xxx */')
-        self.assertEqual(match, 0)
-
-        match = cmd.search_cpp(pattern='_configtest', body='/* xxx */')
-        self.assertEqual(match, 1)
-
-    def test_finalize_options(self):
-        # finalize_options does a bit of transformation
-        # on options
-        pkg_dir, dist = self.create_dist()
-        cmd = config(dist)
-        cmd.include_dirs = 'one%stwo' % os.pathsep
-        cmd.libraries = 'one'
-        cmd.library_dirs = 'three%sfour' % os.pathsep
-        cmd.ensure_finalized()
-
-        self.assertEqual(cmd.include_dirs, ['one', 'two'])
-        self.assertEqual(cmd.libraries, ['one'])
-        self.assertEqual(cmd.library_dirs, ['three', 'four'])
-
-    def test_clean(self):
-        # _clean removes files
-        tmp_dir = self.mkdtemp()
-        f1 = os.path.join(tmp_dir, 'one')
-        f2 = os.path.join(tmp_dir, 'two')
-
-        self.write_file(f1, 'xxx')
-        self.write_file(f2, 'xxx')
-
-        for f in (f1, f2):
-            self.assertTrue(os.path.exists(f))
-
-        pkg_dir, dist = self.create_dist()
-        cmd = config(dist)
-        cmd._clean(f1, f2)
-
-        for f in (f1, f2):
-            self.assertTrue(not os.path.exists(f))
-
-def test_suite():
-    return unittest.makeSuite(ConfigTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_core.py b/lib/python2.7/distutils/tests/test_core.py
deleted file mode 100644
index 0d979bc..0000000
--- a/lib/python2.7/distutils/tests/test_core.py
+++ /dev/null
@@ -1,108 +0,0 @@
-"""Tests for distutils.core."""
-
-import StringIO
-import distutils.core
-import os
-import shutil
-import sys
-import test.test_support
-from test.test_support import captured_stdout, run_unittest
-import unittest
-from distutils.tests import support
-
-# setup script that uses __file__
-setup_using___file__ = """\
-
-__file__
-
-from distutils.core import setup
-setup()
-"""
-
-setup_prints_cwd = """\
-
-import os
-print os.getcwd()
-
-from distutils.core import setup
-setup()
-"""
-
-
-class CoreTestCase(support.EnvironGuard, unittest.TestCase):
-
-    def setUp(self):
-        super(CoreTestCase, self).setUp()
-        self.old_stdout = sys.stdout
-        self.cleanup_testfn()
-        self.old_argv = sys.argv, sys.argv[:]
-
-    def tearDown(self):
-        sys.stdout = self.old_stdout
-        self.cleanup_testfn()
-        sys.argv = self.old_argv[0]
-        sys.argv[:] = self.old_argv[1]
-        super(CoreTestCase, self).tearDown()
-
-    def cleanup_testfn(self):
-        path = test.test_support.TESTFN
-        if os.path.isfile(path):
-            os.remove(path)
-        elif os.path.isdir(path):
-            shutil.rmtree(path)
-
-    def write_setup(self, text, path=test.test_support.TESTFN):
-        f = open(path, "w")
-        try:
-            f.write(text)
-        finally:
-            f.close()
-        return path
-
-    def test_run_setup_provides_file(self):
-        # Make sure the script can use __file__; if that's missing, the test
-        # setup.py script will raise NameError.
-        distutils.core.run_setup(
-            self.write_setup(setup_using___file__))
-
-    def test_run_setup_uses_current_dir(self):
-        # This tests that the setup script is run with the current directory
-        # as its own current directory; this was temporarily broken by a
-        # previous patch when TESTFN did not use the current directory.
-        sys.stdout = StringIO.StringIO()
-        cwd = os.getcwd()
-
-        # Create a directory and write the setup.py file there:
-        os.mkdir(test.test_support.TESTFN)
-        setup_py = os.path.join(test.test_support.TESTFN, "setup.py")
-        distutils.core.run_setup(
-            self.write_setup(setup_prints_cwd, path=setup_py))
-
-        output = sys.stdout.getvalue()
-        if output.endswith("\n"):
-            output = output[:-1]
-        self.assertEqual(cwd, output)
-
-    def test_debug_mode(self):
-        # this covers the code called when DEBUG is set
-        sys.argv = ['setup.py', '--name']
-        with captured_stdout() as stdout:
-            distutils.core.setup(name='bar')
-        stdout.seek(0)
-        self.assertEqual(stdout.read(), 'bar\n')
-
-        distutils.core.DEBUG = True
-        try:
-            with captured_stdout() as stdout:
-                distutils.core.setup(name='bar')
-        finally:
-            distutils.core.DEBUG = False
-        stdout.seek(0)
-        wanted = "options (after parsing config files):\n"
-        self.assertEqual(stdout.readlines()[0], wanted)
-
-def test_suite():
-    return unittest.makeSuite(CoreTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_dep_util.py b/lib/python2.7/distutils/tests/test_dep_util.py
deleted file mode 100644
index 7510434..0000000
--- a/lib/python2.7/distutils/tests/test_dep_util.py
+++ /dev/null
@@ -1,81 +0,0 @@
-"""Tests for distutils.dep_util."""
-import unittest
-import os
-import time
-
-from distutils.dep_util import newer, newer_pairwise, newer_group
-from distutils.errors import DistutilsFileError
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class DepUtilTestCase(support.TempdirManager, unittest.TestCase):
-
-    def test_newer(self):
-
-        tmpdir = self.mkdtemp()
-        new_file = os.path.join(tmpdir, 'new')
-        old_file = os.path.abspath(__file__)
-
-        # Raise DistutilsFileError if 'new_file' does not exist.
-        self.assertRaises(DistutilsFileError, newer, new_file, old_file)
-
-        # Return true if 'new_file' exists and is more recently modified than
-        # 'old_file', or if 'new_file' exists and 'old_file' doesn't.
-        self.write_file(new_file)
-        self.assertTrue(newer(new_file, 'I_dont_exist'))
-        self.assertTrue(newer(new_file, old_file))
-
-        # Return false if both exist and 'old_file' is the same age or younger
-        # than 'new_file'.
-        self.assertFalse(newer(old_file, new_file))
-
-    def test_newer_pairwise(self):
-        tmpdir = self.mkdtemp()
-        sources = os.path.join(tmpdir, 'sources')
-        targets = os.path.join(tmpdir, 'targets')
-        os.mkdir(sources)
-        os.mkdir(targets)
-        one = os.path.join(sources, 'one')
-        two = os.path.join(sources, 'two')
-        three = os.path.abspath(__file__)    # I am the old file
-        four = os.path.join(targets, 'four')
-        self.write_file(one)
-        self.write_file(two)
-        self.write_file(four)
-
-        self.assertEqual(newer_pairwise([one, two], [three, four]),
-                         ([one],[three]))
-
-    def test_newer_group(self):
-        tmpdir = self.mkdtemp()
-        sources = os.path.join(tmpdir, 'sources')
-        os.mkdir(sources)
-        one = os.path.join(sources, 'one')
-        two = os.path.join(sources, 'two')
-        three = os.path.join(sources, 'three')
-        old_file = os.path.abspath(__file__)
-
-        # return true if 'old_file' is out-of-date with respect to any file
-        # listed in 'sources'.
-        self.write_file(one)
-        self.write_file(two)
-        self.write_file(three)
-        self.assertTrue(newer_group([one, two, three], old_file))
-        self.assertFalse(newer_group([one, two, old_file], three))
-
-        # missing handling
-        os.remove(one)
-        self.assertRaises(OSError, newer_group, [one, two, old_file], three)
-
-        self.assertFalse(newer_group([one, two, old_file], three,
-                                     missing='ignore'))
-
-        self.assertTrue(newer_group([one, two, old_file], three,
-                                    missing='newer'))
-
-
-def test_suite():
-    return unittest.makeSuite(DepUtilTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_dir_util.py b/lib/python2.7/distutils/tests/test_dir_util.py
deleted file mode 100644
index d82d913..0000000
--- a/lib/python2.7/distutils/tests/test_dir_util.py
+++ /dev/null
@@ -1,134 +0,0 @@
-"""Tests for distutils.dir_util."""
-import unittest
-import os
-import stat
-import shutil
-import sys
-
-from distutils.dir_util import (mkpath, remove_tree, create_tree, copy_tree,
-                                ensure_relative)
-
-from distutils import log
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class DirUtilTestCase(support.TempdirManager, unittest.TestCase):
-
-    def _log(self, msg, *args):
-        if len(args) > 0:
-            self._logs.append(msg % args)
-        else:
-            self._logs.append(msg)
-
-    def setUp(self):
-        super(DirUtilTestCase, self).setUp()
-        self._logs = []
-        tmp_dir = self.mkdtemp()
-        self.root_target = os.path.join(tmp_dir, 'deep')
-        self.target = os.path.join(self.root_target, 'here')
-        self.target2 = os.path.join(tmp_dir, 'deep2')
-        self.old_log = log.info
-        log.info = self._log
-
-    def tearDown(self):
-        log.info = self.old_log
-        super(DirUtilTestCase, self).tearDown()
-
-    def test_mkpath_remove_tree_verbosity(self):
-
-        mkpath(self.target, verbose=0)
-        wanted = []
-        self.assertEqual(self._logs, wanted)
-        remove_tree(self.root_target, verbose=0)
-
-        mkpath(self.target, verbose=1)
-        wanted = ['creating %s' % self.root_target,
-                  'creating %s' % self.target]
-        self.assertEqual(self._logs, wanted)
-        self._logs = []
-
-        remove_tree(self.root_target, verbose=1)
-        wanted = ["removing '%s' (and everything under it)" % self.root_target]
-        self.assertEqual(self._logs, wanted)
-
-    @unittest.skipIf(sys.platform.startswith('win'),
-                        "This test is only appropriate for POSIX-like systems.")
-    def test_mkpath_with_custom_mode(self):
-        # Get and set the current umask value for testing mode bits.
-        umask = os.umask(0o002)
-        os.umask(umask)
-        mkpath(self.target, 0o700)
-        self.assertEqual(
-            stat.S_IMODE(os.stat(self.target).st_mode), 0o700 & ~umask)
-        mkpath(self.target2, 0o555)
-        self.assertEqual(
-            stat.S_IMODE(os.stat(self.target2).st_mode), 0o555 & ~umask)
-
-    def test_create_tree_verbosity(self):
-
-        create_tree(self.root_target, ['one', 'two', 'three'], verbose=0)
-        self.assertEqual(self._logs, [])
-        remove_tree(self.root_target, verbose=0)
-
-        wanted = ['creating %s' % self.root_target]
-        create_tree(self.root_target, ['one', 'two', 'three'], verbose=1)
-        self.assertEqual(self._logs, wanted)
-
-        remove_tree(self.root_target, verbose=0)
-
-
-    def test_copy_tree_verbosity(self):
-
-        mkpath(self.target, verbose=0)
-
-        copy_tree(self.target, self.target2, verbose=0)
-        self.assertEqual(self._logs, [])
-
-        remove_tree(self.root_target, verbose=0)
-
-        mkpath(self.target, verbose=0)
-        a_file = os.path.join(self.target, 'ok.txt')
-        f = open(a_file, 'w')
-        try:
-            f.write('some content')
-        finally:
-            f.close()
-
-        wanted = ['copying %s -> %s' % (a_file, self.target2)]
-        copy_tree(self.target, self.target2, verbose=1)
-        self.assertEqual(self._logs, wanted)
-
-        remove_tree(self.root_target, verbose=0)
-        remove_tree(self.target2, verbose=0)
-
-    def test_copy_tree_skips_nfs_temp_files(self):
-        mkpath(self.target, verbose=0)
-
-        a_file = os.path.join(self.target, 'ok.txt')
-        nfs_file = os.path.join(self.target, '.nfs123abc')
-        for f in a_file, nfs_file:
-            fh = open(f, 'w')
-            try:
-                fh.write('some content')
-            finally:
-                fh.close()
-
-        copy_tree(self.target, self.target2)
-        self.assertEqual(os.listdir(self.target2), ['ok.txt'])
-
-        remove_tree(self.root_target, verbose=0)
-        remove_tree(self.target2, verbose=0)
-
-    def test_ensure_relative(self):
-        if os.sep == '/':
-            self.assertEqual(ensure_relative('/home/foo'), 'home/foo')
-            self.assertEqual(ensure_relative('some/path'), 'some/path')
-        else:   # \\
-            self.assertEqual(ensure_relative('c:\\home\\foo'), 'c:home\\foo')
-            self.assertEqual(ensure_relative('home\\foo'), 'home\\foo')
-
-def test_suite():
-    return unittest.makeSuite(DirUtilTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_dist.py b/lib/python2.7/distutils/tests/test_dist.py
deleted file mode 100644
index 4b7bbeb..0000000
--- a/lib/python2.7/distutils/tests/test_dist.py
+++ /dev/null
@@ -1,445 +0,0 @@
-# -*- coding: utf8 -*-
-
-"""Tests for distutils.dist."""
-import os
-import StringIO
-import sys
-import unittest
-import warnings
-import textwrap
-
-from distutils.dist import Distribution, fix_help_options
-from distutils.cmd import Command
-import distutils.dist
-from test.test_support import TESTFN, captured_stdout, run_unittest
-from distutils.tests import support
-
-
-class test_dist(Command):
-    """Sample distutils extension command."""
-
-    user_options = [
-        ("sample-option=", "S", "help text"),
-        ]
-
-    def initialize_options(self):
-        self.sample_option = None
-
-
-class TestDistribution(Distribution):
-    """Distribution subclasses that avoids the default search for
-    configuration files.
-
-    The ._config_files attribute must be set before
-    .parse_config_files() is called.
-    """
-
-    def find_config_files(self):
-        return self._config_files
-
-
-class DistributionTestCase(support.TempdirManager,
-                           support.LoggingSilencer,
-                           support.EnvironGuard,
-                           unittest.TestCase):
-
-    def setUp(self):
-        super(DistributionTestCase, self).setUp()
-        self.argv = sys.argv, sys.argv[:]
-        del sys.argv[1:]
-
-    def tearDown(self):
-        sys.argv = self.argv[0]
-        sys.argv[:] = self.argv[1]
-        super(DistributionTestCase, self).tearDown()
-
-    def create_distribution(self, configfiles=()):
-        d = TestDistribution()
-        d._config_files = configfiles
-        d.parse_config_files()
-        d.parse_command_line()
-        return d
-
-    def test_debug_mode(self):
-        with open(TESTFN, "w") as f:
-            f.write("[global]\n")
-            f.write("command_packages = foo.bar, splat")
-
-        files = [TESTFN]
-        sys.argv.append("build")
-
-        with captured_stdout() as stdout:
-            self.create_distribution(files)
-        stdout.seek(0)
-        self.assertEqual(stdout.read(), '')
-        distutils.dist.DEBUG = True
-        try:
-            with captured_stdout() as stdout:
-                self.create_distribution(files)
-            stdout.seek(0)
-            self.assertEqual(stdout.read(), '')
-        finally:
-            distutils.dist.DEBUG = False
-
-    def test_command_packages_unspecified(self):
-        sys.argv.append("build")
-        d = self.create_distribution()
-        self.assertEqual(d.get_command_packages(), ["distutils.command"])
-
-    def test_command_packages_cmdline(self):
-        from distutils.tests.test_dist import test_dist
-        sys.argv.extend(["--command-packages",
-                         "foo.bar,distutils.tests",
-                         "test_dist",
-                         "-Ssometext",
-                         ])
-        d = self.create_distribution()
-        # let's actually try to load our test command:
-        self.assertEqual(d.get_command_packages(),
-                         ["distutils.command", "foo.bar", "distutils.tests"])
-        cmd = d.get_command_obj("test_dist")
-        self.assertIsInstance(cmd, test_dist)
-        self.assertEqual(cmd.sample_option, "sometext")
-
-    def test_command_packages_configfile(self):
-        sys.argv.append("build")
-        self.addCleanup(os.unlink, TESTFN)
-        f = open(TESTFN, "w")
-        try:
-            print >> f, "[global]"
-            print >> f, "command_packages = foo.bar, splat"
-        finally:
-            f.close()
-
-        d = self.create_distribution([TESTFN])
-        self.assertEqual(d.get_command_packages(),
-                         ["distutils.command", "foo.bar", "splat"])
-
-        # ensure command line overrides config:
-        sys.argv[1:] = ["--command-packages", "spork", "build"]
-        d = self.create_distribution([TESTFN])
-        self.assertEqual(d.get_command_packages(),
-                         ["distutils.command", "spork"])
-
-        # Setting --command-packages to '' should cause the default to
-        # be used even if a config file specified something else:
-        sys.argv[1:] = ["--command-packages", "", "build"]
-        d = self.create_distribution([TESTFN])
-        self.assertEqual(d.get_command_packages(), ["distutils.command"])
-
-    def test_write_pkg_file(self):
-        # Check DistributionMetadata handling of Unicode fields
-        tmp_dir = self.mkdtemp()
-        my_file = os.path.join(tmp_dir, 'f')
-        klass = Distribution
-
-        dist = klass(attrs={'author': u'Mister Café',
-                            'name': 'my.package',
-                            'maintainer': u'Café Junior',
-                            'description': u'Café torréfié',
-                            'long_description': u'Héhéhé'})
-
-        # let's make sure the file can be written
-        # with Unicode fields. they are encoded with
-        # PKG_INFO_ENCODING
-        dist.metadata.write_pkg_file(open(my_file, 'w'))
-
-        # regular ascii is of course always usable
-        dist = klass(attrs={'author': 'Mister Cafe',
-                            'name': 'my.package',
-                            'maintainer': 'Cafe Junior',
-                            'description': 'Cafe torrefie',
-                            'long_description': 'Hehehe'})
-
-        my_file2 = os.path.join(tmp_dir, 'f2')
-        dist.metadata.write_pkg_file(open(my_file2, 'w'))
-
-    def test_empty_options(self):
-        # an empty options dictionary should not stay in the
-        # list of attributes
-
-        # catching warnings
-        warns = []
-
-        def _warn(msg):
-            warns.append(msg)
-
-        self.addCleanup(setattr, warnings, 'warn', warnings.warn)
-        warnings.warn = _warn
-        dist = Distribution(attrs={'author': 'xxx', 'name': 'xxx',
-                                   'version': 'xxx', 'url': 'xxxx',
-                                   'options': {}})
-
-        self.assertEqual(len(warns), 0)
-        self.assertNotIn('options', dir(dist))
-
-    def test_finalize_options(self):
-        attrs = {'keywords': 'one,two',
-                 'platforms': 'one,two'}
-
-        dist = Distribution(attrs=attrs)
-        dist.finalize_options()
-
-        # finalize_option splits platforms and keywords
-        self.assertEqual(dist.metadata.platforms, ['one', 'two'])
-        self.assertEqual(dist.metadata.keywords, ['one', 'two'])
-
-    def test_get_command_packages(self):
-        dist = Distribution()
-        self.assertEqual(dist.command_packages, None)
-        cmds = dist.get_command_packages()
-        self.assertEqual(cmds, ['distutils.command'])
-        self.assertEqual(dist.command_packages,
-                         ['distutils.command'])
-
-        dist.command_packages = 'one,two'
-        cmds = dist.get_command_packages()
-        self.assertEqual(cmds, ['distutils.command', 'one', 'two'])
-
-    def test_announce(self):
-        # make sure the level is known
-        dist = Distribution()
-        args = ('ok',)
-        kwargs = {'level': 'ok2'}
-        self.assertRaises(ValueError, dist.announce, args, kwargs)
-
-    def test_find_config_files_disable(self):
-        # Ticket #1180: Allow user to disable their home config file.
-        temp_home = self.mkdtemp()
-        if os.name == 'posix':
-            user_filename = os.path.join(temp_home, ".pydistutils.cfg")
-        else:
-            user_filename = os.path.join(temp_home, "pydistutils.cfg")
-
-        with open(user_filename, 'w') as f:
-            f.write('[distutils]\n')
-
-        def _expander(path):
-            return temp_home
-
-        old_expander = os.path.expanduser
-        os.path.expanduser = _expander
-        try:
-            d = distutils.dist.Distribution()
-            all_files = d.find_config_files()
-
-            d = distutils.dist.Distribution(attrs={'script_args':
-                                            ['--no-user-cfg']})
-            files = d.find_config_files()
-        finally:
-            os.path.expanduser = old_expander
-
-        # make sure --no-user-cfg disables the user cfg file
-        self.assertEqual(len(all_files)-1, len(files))
-
-
-class MetadataTestCase(support.TempdirManager, support.EnvironGuard,
-                       unittest.TestCase):
-
-    def setUp(self):
-        super(MetadataTestCase, self).setUp()
-        self.argv = sys.argv, sys.argv[:]
-
-    def tearDown(self):
-        sys.argv = self.argv[0]
-        sys.argv[:] = self.argv[1]
-        super(MetadataTestCase, self).tearDown()
-
-    def test_classifier(self):
-        attrs = {'name': 'Boa', 'version': '3.0',
-                 'classifiers': ['Programming Language :: Python :: 3']}
-        dist = Distribution(attrs)
-        meta = self.format_metadata(dist)
-        self.assertIn('Metadata-Version: 1.1', meta)
-
-    def test_download_url(self):
-        attrs = {'name': 'Boa', 'version': '3.0',
-                 'download_url': 'http://example.org/boa'}
-        dist = Distribution(attrs)
-        meta = self.format_metadata(dist)
-        self.assertIn('Metadata-Version: 1.1', meta)
-
-    def test_long_description(self):
-        long_desc = textwrap.dedent("""\
-        example::
-              We start here
-            and continue here
-          and end here.""")
-        attrs = {"name": "package",
-                 "version": "1.0",
-                 "long_description": long_desc}
-
-        dist = Distribution(attrs)
-        meta = self.format_metadata(dist)
-        meta = meta.replace('\n' + 8 * ' ', '\n')
-        self.assertIn(long_desc, meta)
-
-    def test_simple_metadata(self):
-        attrs = {"name": "package",
-                 "version": "1.0"}
-        dist = Distribution(attrs)
-        meta = self.format_metadata(dist)
-        self.assertIn("Metadata-Version: 1.0", meta)
-        self.assertNotIn("provides:", meta.lower())
-        self.assertNotIn("requires:", meta.lower())
-        self.assertNotIn("obsoletes:", meta.lower())
-
-    def test_provides(self):
-        attrs = {"name": "package",
-                 "version": "1.0",
-                 "provides": ["package", "package.sub"]}
-        dist = Distribution(attrs)
-        self.assertEqual(dist.metadata.get_provides(),
-                         ["package", "package.sub"])
-        self.assertEqual(dist.get_provides(),
-                         ["package", "package.sub"])
-        meta = self.format_metadata(dist)
-        self.assertIn("Metadata-Version: 1.1", meta)
-        self.assertNotIn("requires:", meta.lower())
-        self.assertNotIn("obsoletes:", meta.lower())
-
-    def test_provides_illegal(self):
-        self.assertRaises(ValueError, Distribution,
-                          {"name": "package",
-                           "version": "1.0",
-                           "provides": ["my.pkg (splat)"]})
-
-    def test_requires(self):
-        attrs = {"name": "package",
-                 "version": "1.0",
-                 "requires": ["other", "another (==1.0)"]}
-        dist = Distribution(attrs)
-        self.assertEqual(dist.metadata.get_requires(),
-                         ["other", "another (==1.0)"])
-        self.assertEqual(dist.get_requires(),
-                         ["other", "another (==1.0)"])
-        meta = self.format_metadata(dist)
-        self.assertIn("Metadata-Version: 1.1", meta)
-        self.assertNotIn("provides:", meta.lower())
-        self.assertIn("Requires: other", meta)
-        self.assertIn("Requires: another (==1.0)", meta)
-        self.assertNotIn("obsoletes:", meta.lower())
-
-    def test_requires_illegal(self):
-        self.assertRaises(ValueError, Distribution,
-                          {"name": "package",
-                           "version": "1.0",
-                           "requires": ["my.pkg (splat)"]})
-
-    def test_obsoletes(self):
-        attrs = {"name": "package",
-                 "version": "1.0",
-                 "obsoletes": ["other", "another (<1.0)"]}
-        dist = Distribution(attrs)
-        self.assertEqual(dist.metadata.get_obsoletes(),
-                         ["other", "another (<1.0)"])
-        self.assertEqual(dist.get_obsoletes(),
-                         ["other", "another (<1.0)"])
-        meta = self.format_metadata(dist)
-        self.assertIn("Metadata-Version: 1.1", meta)
-        self.assertNotIn("provides:", meta.lower())
-        self.assertNotIn("requires:", meta.lower())
-        self.assertIn("Obsoletes: other", meta)
-        self.assertIn("Obsoletes: another (<1.0)", meta)
-
-    def test_obsoletes_illegal(self):
-        self.assertRaises(ValueError, Distribution,
-                          {"name": "package",
-                           "version": "1.0",
-                           "obsoletes": ["my.pkg (splat)"]})
-
-    def format_metadata(self, dist):
-        sio = StringIO.StringIO()
-        dist.metadata.write_pkg_file(sio)
-        return sio.getvalue()
-
-    def test_custom_pydistutils(self):
-        # fixes #2166
-        # make sure pydistutils.cfg is found
-        if os.name == 'posix':
-            user_filename = ".pydistutils.cfg"
-        else:
-            user_filename = "pydistutils.cfg"
-
-        temp_dir = self.mkdtemp()
-        user_filename = os.path.join(temp_dir, user_filename)
-        f = open(user_filename, 'w')
-        try:
-            f.write('.')
-        finally:
-            f.close()
-
-        try:
-            dist = Distribution()
-
-            # linux-style
-            if sys.platform in ('linux', 'darwin'):
-                os.environ['HOME'] = temp_dir
-                files = dist.find_config_files()
-                self.assertIn(user_filename, files)
-
-            # win32-style
-            if sys.platform == 'win32':
-                # home drive should be found
-                os.environ['HOME'] = temp_dir
-                files = dist.find_config_files()
-                self.assertIn(user_filename, files,
-                             '%r not found in %r' % (user_filename, files))
-        finally:
-            os.remove(user_filename)
-
-    def test_fix_help_options(self):
-        help_tuples = [('a', 'b', 'c', 'd'), (1, 2, 3, 4)]
-        fancy_options = fix_help_options(help_tuples)
-        self.assertEqual(fancy_options[0], ('a', 'b', 'c'))
-        self.assertEqual(fancy_options[1], (1, 2, 3))
-
-    def test_show_help(self):
-        # smoke test, just makes sure some help is displayed
-        dist = Distribution()
-        sys.argv = []
-        dist.help = 1
-        dist.script_name = 'setup.py'
-        with captured_stdout() as s:
-            dist.parse_command_line()
-
-        output = [line for line in s.getvalue().split('\n')
-                  if line.strip() != '']
-        self.assertTrue(output)
-
-    def test_read_metadata(self):
-        attrs = {"name": "package",
-                 "version": "1.0",
-                 "long_description": "desc",
-                 "description": "xxx",
-                 "download_url": "http://example.com",
-                 "keywords": ['one', 'two'],
-                 "requires": ['foo']}
-
-        dist = Distribution(attrs)
-        metadata = dist.metadata
-
-        # write it then reloads it
-        PKG_INFO = StringIO.StringIO()
-        metadata.write_pkg_file(PKG_INFO)
-        PKG_INFO.seek(0)
-        metadata.read_pkg_file(PKG_INFO)
-
-        self.assertEqual(metadata.name, "package")
-        self.assertEqual(metadata.version, "1.0")
-        self.assertEqual(metadata.description, "xxx")
-        self.assertEqual(metadata.download_url, 'http://example.com')
-        self.assertEqual(metadata.keywords, ['one', 'two'])
-        self.assertEqual(metadata.platforms, ['UNKNOWN'])
-        self.assertEqual(metadata.obsoletes, None)
-        self.assertEqual(metadata.requires, ['foo'])
-
-
-def test_suite():
-    suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(DistributionTestCase))
-    suite.addTest(unittest.makeSuite(MetadataTestCase))
-    return suite
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_file_util.py b/lib/python2.7/distutils/tests/test_file_util.py
deleted file mode 100644
index 7dbcf52..0000000
--- a/lib/python2.7/distutils/tests/test_file_util.py
+++ /dev/null
@@ -1,81 +0,0 @@
-"""Tests for distutils.file_util."""
-import unittest
-import os
-import shutil
-
-from distutils.file_util import move_file, write_file, copy_file
-from distutils import log
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class FileUtilTestCase(support.TempdirManager, unittest.TestCase):
-
-    def _log(self, msg, *args):
-        if len(args) > 0:
-            self._logs.append(msg % args)
-        else:
-            self._logs.append(msg)
-
-    def setUp(self):
-        super(FileUtilTestCase, self).setUp()
-        self._logs = []
-        self.old_log = log.info
-        log.info = self._log
-        tmp_dir = self.mkdtemp()
-        self.source = os.path.join(tmp_dir, 'f1')
-        self.target = os.path.join(tmp_dir, 'f2')
-        self.target_dir = os.path.join(tmp_dir, 'd1')
-
-    def tearDown(self):
-        log.info = self.old_log
-        super(FileUtilTestCase, self).tearDown()
-
-    def test_move_file_verbosity(self):
-        f = open(self.source, 'w')
-        try:
-            f.write('some content')
-        finally:
-            f.close()
-
-        move_file(self.source, self.target, verbose=0)
-        wanted = []
-        self.assertEqual(self._logs, wanted)
-
-        # back to original state
-        move_file(self.target, self.source, verbose=0)
-
-        move_file(self.source, self.target, verbose=1)
-        wanted = ['moving %s -> %s' % (self.source, self.target)]
-        self.assertEqual(self._logs, wanted)
-
-        # back to original state
-        move_file(self.target, self.source, verbose=0)
-
-        self._logs = []
-        # now the target is a dir
-        os.mkdir(self.target_dir)
-        move_file(self.source, self.target_dir, verbose=1)
-        wanted = ['moving %s -> %s' % (self.source, self.target_dir)]
-        self.assertEqual(self._logs, wanted)
-
-    def test_write_file(self):
-        lines = ['a', 'b', 'c']
-        dir = self.mkdtemp()
-        foo = os.path.join(dir, 'foo')
-        write_file(foo, lines)
-        content = [line.strip() for line in open(foo).readlines()]
-        self.assertEqual(content, lines)
-
-    def test_copy_file(self):
-        src_dir = self.mkdtemp()
-        foo = os.path.join(src_dir, 'foo')
-        write_file(foo, 'content')
-        dst_dir = self.mkdtemp()
-        copy_file(foo, dst_dir)
-        self.assertTrue(os.path.exists(os.path.join(dst_dir, 'foo')))
-
-def test_suite():
-    return unittest.makeSuite(FileUtilTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_filelist.py b/lib/python2.7/distutils/tests/test_filelist.py
deleted file mode 100644
index 69b88f2..0000000
--- a/lib/python2.7/distutils/tests/test_filelist.py
+++ /dev/null
@@ -1,299 +0,0 @@
-"""Tests for distutils.filelist."""
-import os
-import re
-import unittest
-from distutils import debug
-from distutils.log import WARN
-from distutils.errors import DistutilsTemplateError
-from distutils.filelist import glob_to_re, translate_pattern, FileList
-
-from test.test_support import captured_stdout, run_unittest
-from distutils.tests import support
-
-MANIFEST_IN = """\
-include ok
-include xo
-exclude xo
-include foo.tmp
-include buildout.cfg
-global-include *.x
-global-include *.txt
-global-exclude *.tmp
-recursive-include f *.oo
-recursive-exclude global *.x
-graft dir
-prune dir3
-"""
-
-
-def make_local_path(s):
-    """Converts '/' in a string to os.sep"""
-    return s.replace('/', os.sep)
-
-
-class FileListTestCase(support.LoggingSilencer,
-                       unittest.TestCase):
-
-    def assertNoWarnings(self):
-        self.assertEqual(self.get_logs(WARN), [])
-        self.clear_logs()
-
-    def assertWarnings(self):
-        self.assertGreater(len(self.get_logs(WARN)), 0)
-        self.clear_logs()
-
-    def test_glob_to_re(self):
-        sep = os.sep
-        if os.sep == '\\':
-            sep = re.escape(os.sep)
-
-        for glob, regex in (
-            # simple cases
-            ('foo*', r'foo[^%(sep)s]*\Z(?ms)'),
-            ('foo?', r'foo[^%(sep)s]\Z(?ms)'),
-            ('foo??', r'foo[^%(sep)s][^%(sep)s]\Z(?ms)'),
-            # special cases
-            (r'foo\\*', r'foo\\\\[^%(sep)s]*\Z(?ms)'),
-            (r'foo\\\*', r'foo\\\\\\[^%(sep)s]*\Z(?ms)'),
-            ('foo????', r'foo[^%(sep)s][^%(sep)s][^%(sep)s][^%(sep)s]\Z(?ms)'),
-            (r'foo\\??', r'foo\\\\[^%(sep)s][^%(sep)s]\Z(?ms)')):
-            regex = regex % {'sep': sep}
-            self.assertEqual(glob_to_re(glob), regex)
-
-    def test_process_template_line(self):
-        # testing  all MANIFEST.in template patterns
-        file_list = FileList()
-        l = make_local_path
-
-        # simulated file list
-        file_list.allfiles = ['foo.tmp', 'ok', 'xo', 'four.txt',
-                              'buildout.cfg',
-                              # filelist does not filter out VCS directories,
-                              # it's sdist that does
-                              l('.hg/last-message.txt'),
-                              l('global/one.txt'),
-                              l('global/two.txt'),
-                              l('global/files.x'),
-                              l('global/here.tmp'),
-                              l('f/o/f.oo'),
-                              l('dir/graft-one'),
-                              l('dir/dir2/graft2'),
-                              l('dir3/ok'),
-                              l('dir3/sub/ok.txt'),
-                             ]
-
-        for line in MANIFEST_IN.split('\n'):
-            if line.strip() == '':
-                continue
-            file_list.process_template_line(line)
-
-        wanted = ['ok',
-                  'buildout.cfg',
-                  'four.txt',
-                  l('.hg/last-message.txt'),
-                  l('global/one.txt'),
-                  l('global/two.txt'),
-                  l('f/o/f.oo'),
-                  l('dir/graft-one'),
-                  l('dir/dir2/graft2'),
-                 ]
-
-        self.assertEqual(file_list.files, wanted)
-
-    def test_debug_print(self):
-        file_list = FileList()
-        with captured_stdout() as stdout:
-            file_list.debug_print('xxx')
-        self.assertEqual(stdout.getvalue(), '')
-
-        debug.DEBUG = True
-        try:
-            with captured_stdout() as stdout:
-                file_list.debug_print('xxx')
-            self.assertEqual(stdout.getvalue(), 'xxx\n')
-        finally:
-            debug.DEBUG = False
-
-    def test_set_allfiles(self):
-        file_list = FileList()
-        files = ['a', 'b', 'c']
-        file_list.set_allfiles(files)
-        self.assertEqual(file_list.allfiles, files)
-
-    def test_remove_duplicates(self):
-        file_list = FileList()
-        file_list.files = ['a', 'b', 'a', 'g', 'c', 'g']
-        # files must be sorted beforehand (sdist does it)
-        file_list.sort()
-        file_list.remove_duplicates()
-        self.assertEqual(file_list.files, ['a', 'b', 'c', 'g'])
-
-    def test_translate_pattern(self):
-        # not regex
-        self.assertTrue(hasattr(
-            translate_pattern('a', anchor=True, is_regex=False),
-            'search'))
-
-        # is a regex
-        regex = re.compile('a')
-        self.assertEqual(
-            translate_pattern(regex, anchor=True, is_regex=True),
-            regex)
-
-        # plain string flagged as regex
-        self.assertTrue(hasattr(
-            translate_pattern('a', anchor=True, is_regex=True),
-            'search'))
-
-        # glob support
-        self.assertTrue(translate_pattern(
-            '*.py', anchor=True, is_regex=False).search('filelist.py'))
-
-    def test_exclude_pattern(self):
-        # return False if no match
-        file_list = FileList()
-        self.assertFalse(file_list.exclude_pattern('*.py'))
-
-        # return True if files match
-        file_list = FileList()
-        file_list.files = ['a.py', 'b.py']
-        self.assertTrue(file_list.exclude_pattern('*.py'))
-
-        # test excludes
-        file_list = FileList()
-        file_list.files = ['a.py', 'a.txt']
-        file_list.exclude_pattern('*.py')
-        self.assertEqual(file_list.files, ['a.txt'])
-
-    def test_include_pattern(self):
-        # return False if no match
-        file_list = FileList()
-        file_list.set_allfiles([])
-        self.assertFalse(file_list.include_pattern('*.py'))
-
-        # return True if files match
-        file_list = FileList()
-        file_list.set_allfiles(['a.py', 'b.txt'])
-        self.assertTrue(file_list.include_pattern('*.py'))
-
-        # test * matches all files
-        file_list = FileList()
-        self.assertIsNone(file_list.allfiles)
-        file_list.set_allfiles(['a.py', 'b.txt'])
-        file_list.include_pattern('*')
-        self.assertEqual(file_list.allfiles, ['a.py', 'b.txt'])
-
-    def test_process_template(self):
-        l = make_local_path
-        # invalid lines
-        file_list = FileList()
-        for action in ('include', 'exclude', 'global-include',
-                       'global-exclude', 'recursive-include',
-                       'recursive-exclude', 'graft', 'prune', 'blarg'):
-            self.assertRaises(DistutilsTemplateError,
-                              file_list.process_template_line, action)
-
-        # include
-        file_list = FileList()
-        file_list.set_allfiles(['a.py', 'b.txt', l('d/c.py')])
-
-        file_list.process_template_line('include *.py')
-        self.assertEqual(file_list.files, ['a.py'])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('include *.rb')
-        self.assertEqual(file_list.files, ['a.py'])
-        self.assertWarnings()
-
-        # exclude
-        file_list = FileList()
-        file_list.files = ['a.py', 'b.txt', l('d/c.py')]
-
-        file_list.process_template_line('exclude *.py')
-        self.assertEqual(file_list.files, ['b.txt', l('d/c.py')])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('exclude *.rb')
-        self.assertEqual(file_list.files, ['b.txt', l('d/c.py')])
-        self.assertWarnings()
-
-        # global-include
-        file_list = FileList()
-        file_list.set_allfiles(['a.py', 'b.txt', l('d/c.py')])
-
-        file_list.process_template_line('global-include *.py')
-        self.assertEqual(file_list.files, ['a.py', l('d/c.py')])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('global-include *.rb')
-        self.assertEqual(file_list.files, ['a.py', l('d/c.py')])
-        self.assertWarnings()
-
-        # global-exclude
-        file_list = FileList()
-        file_list.files = ['a.py', 'b.txt', l('d/c.py')]
-
-        file_list.process_template_line('global-exclude *.py')
-        self.assertEqual(file_list.files, ['b.txt'])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('global-exclude *.rb')
-        self.assertEqual(file_list.files, ['b.txt'])
-        self.assertWarnings()
-
-        # recursive-include
-        file_list = FileList()
-        file_list.set_allfiles(['a.py', l('d/b.py'), l('d/c.txt'),
-                                l('d/d/e.py')])
-
-        file_list.process_template_line('recursive-include d *.py')
-        self.assertEqual(file_list.files, [l('d/b.py'), l('d/d/e.py')])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('recursive-include e *.py')
-        self.assertEqual(file_list.files, [l('d/b.py'), l('d/d/e.py')])
-        self.assertWarnings()
-
-        # recursive-exclude
-        file_list = FileList()
-        file_list.files = ['a.py', l('d/b.py'), l('d/c.txt'), l('d/d/e.py')]
-
-        file_list.process_template_line('recursive-exclude d *.py')
-        self.assertEqual(file_list.files, ['a.py', l('d/c.txt')])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('recursive-exclude e *.py')
-        self.assertEqual(file_list.files, ['a.py', l('d/c.txt')])
-        self.assertWarnings()
-
-        # graft
-        file_list = FileList()
-        file_list.set_allfiles(['a.py', l('d/b.py'), l('d/d/e.py'),
-                                l('f/f.py')])
-
-        file_list.process_template_line('graft d')
-        self.assertEqual(file_list.files, [l('d/b.py'), l('d/d/e.py')])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('graft e')
-        self.assertEqual(file_list.files, [l('d/b.py'), l('d/d/e.py')])
-        self.assertWarnings()
-
-        # prune
-        file_list = FileList()
-        file_list.files = ['a.py', l('d/b.py'), l('d/d/e.py'), l('f/f.py')]
-
-        file_list.process_template_line('prune d')
-        self.assertEqual(file_list.files, ['a.py', l('f/f.py')])
-        self.assertNoWarnings()
-
-        file_list.process_template_line('prune e')
-        self.assertEqual(file_list.files, ['a.py', l('f/f.py')])
-        self.assertWarnings()
-
-
-def test_suite():
-    return unittest.makeSuite(FileListTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install.py b/lib/python2.7/distutils/tests/test_install.py
deleted file mode 100644
index 2996161..0000000
--- a/lib/python2.7/distutils/tests/test_install.py
+++ /dev/null
@@ -1,247 +0,0 @@
-"""Tests for distutils.command.install."""
-
-import os
-import sys
-import unittest
-import site
-
-from test.test_support import captured_stdout, run_unittest
-
-from distutils import sysconfig
-from distutils.command.install import install
-from distutils.command import install as install_module
-from distutils.command.build_ext import build_ext
-from distutils.command.install import INSTALL_SCHEMES
-from distutils.core import Distribution
-from distutils.errors import DistutilsOptionError
-from distutils.extension import Extension
-
-from distutils.tests import support
-
-
-def _make_ext_name(modname):
-    if os.name == 'nt' and sys.executable.endswith('_d.exe'):
-        modname += '_d'
-    return modname + sysconfig.get_config_var('SO')
-
-
-class InstallTestCase(support.TempdirManager,
-                      support.LoggingSilencer,
-                      unittest.TestCase):
-
-    def test_home_installation_scheme(self):
-        # This ensure two things:
-        # - that --home generates the desired set of directory names
-        # - test --home is supported on all platforms
-        builddir = self.mkdtemp()
-        destination = os.path.join(builddir, "installation")
-
-        dist = Distribution({"name": "foopkg"})
-        # script_name need not exist, it just need to be initialized
-        dist.script_name = os.path.join(builddir, "setup.py")
-        dist.command_obj["build"] = support.DummyCommand(
-            build_base=builddir,
-            build_lib=os.path.join(builddir, "lib"),
-            )
-
-        cmd = install(dist)
-        cmd.home = destination
-        cmd.ensure_finalized()
-
-        self.assertEqual(cmd.install_base, destination)
-        self.assertEqual(cmd.install_platbase, destination)
-
-        def check_path(got, expected):
-            got = os.path.normpath(got)
-            expected = os.path.normpath(expected)
-            self.assertEqual(got, expected)
-
-        libdir = os.path.join(destination, "lib", "python")
-        check_path(cmd.install_lib, libdir)
-        check_path(cmd.install_platlib, libdir)
-        check_path(cmd.install_purelib, libdir)
-        check_path(cmd.install_headers,
-                   os.path.join(destination, "include", "python", "foopkg"))
-        check_path(cmd.install_scripts, os.path.join(destination, "bin"))
-        check_path(cmd.install_data, destination)
-
-    def test_user_site(self):
-        # site.USER_SITE was introduced in 2.6
-        if sys.version < '2.6':
-            return
-
-        # preparing the environment for the test
-        self.old_user_base = site.USER_BASE
-        self.old_user_site = site.USER_SITE
-        self.tmpdir = self.mkdtemp()
-        self.user_base = os.path.join(self.tmpdir, 'B')
-        self.user_site = os.path.join(self.tmpdir, 'S')
-        site.USER_BASE = self.user_base
-        site.USER_SITE = self.user_site
-        install_module.USER_BASE = self.user_base
-        install_module.USER_SITE = self.user_site
-
-        def _expanduser(path):
-            return self.tmpdir
-        self.old_expand = os.path.expanduser
-        os.path.expanduser = _expanduser
-
-        def cleanup():
-            site.USER_BASE = self.old_user_base
-            site.USER_SITE = self.old_user_site
-            install_module.USER_BASE = self.old_user_base
-            install_module.USER_SITE = self.old_user_site
-            os.path.expanduser = self.old_expand
-
-        self.addCleanup(cleanup)
-
-        for key in ('nt_user', 'unix_user', 'os2_home'):
-            self.assertIn(key, INSTALL_SCHEMES)
-
-        dist = Distribution({'name': 'xx'})
-        cmd = install(dist)
-
-        # making sure the user option is there
-        options = [name for name, short, lable in
-                   cmd.user_options]
-        self.assertIn('user', options)
-
-        # setting a value
-        cmd.user = 1
-
-        # user base and site shouldn't be created yet
-        self.assertFalse(os.path.exists(self.user_base))
-        self.assertFalse(os.path.exists(self.user_site))
-
-        # let's run finalize
-        cmd.ensure_finalized()
-
-        # now they should
-        self.assertTrue(os.path.exists(self.user_base))
-        self.assertTrue(os.path.exists(self.user_site))
-
-        self.assertIn('userbase', cmd.config_vars)
-        self.assertIn('usersite', cmd.config_vars)
-
-    def test_handle_extra_path(self):
-        dist = Distribution({'name': 'xx', 'extra_path': 'path,dirs'})
-        cmd = install(dist)
-
-        # two elements
-        cmd.handle_extra_path()
-        self.assertEqual(cmd.extra_path, ['path', 'dirs'])
-        self.assertEqual(cmd.extra_dirs, 'dirs')
-        self.assertEqual(cmd.path_file, 'path')
-
-        # one element
-        cmd.extra_path = ['path']
-        cmd.handle_extra_path()
-        self.assertEqual(cmd.extra_path, ['path'])
-        self.assertEqual(cmd.extra_dirs, 'path')
-        self.assertEqual(cmd.path_file, 'path')
-
-        # none
-        dist.extra_path = cmd.extra_path = None
-        cmd.handle_extra_path()
-        self.assertEqual(cmd.extra_path, None)
-        self.assertEqual(cmd.extra_dirs, '')
-        self.assertEqual(cmd.path_file, None)
-
-        # three elements (no way !)
-        cmd.extra_path = 'path,dirs,again'
-        self.assertRaises(DistutilsOptionError, cmd.handle_extra_path)
-
-    def test_finalize_options(self):
-        dist = Distribution({'name': 'xx'})
-        cmd = install(dist)
-
-        # must supply either prefix/exec-prefix/home or
-        # install-base/install-platbase -- not both
-        cmd.prefix = 'prefix'
-        cmd.install_base = 'base'
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
-        # must supply either home or prefix/exec-prefix -- not both
-        cmd.install_base = None
-        cmd.home = 'home'
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
-        # can't combine user with prefix/exec_prefix/home or
-        # install_(plat)base
-        cmd.prefix = None
-        cmd.user = 'user'
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
-    def test_record(self):
-        install_dir = self.mkdtemp()
-        project_dir, dist = self.create_dist(py_modules=['hello'],
-                                             scripts=['sayhi'])
-        os.chdir(project_dir)
-        self.write_file('hello.py', "def main(): print 'o hai'")
-        self.write_file('sayhi', 'from hello import main; main()')
-
-        cmd = install(dist)
-        dist.command_obj['install'] = cmd
-        cmd.root = install_dir
-        cmd.record = os.path.join(project_dir, 'filelist')
-        cmd.ensure_finalized()
-        cmd.run()
-
-        f = open(cmd.record)
-        try:
-            content = f.read()
-        finally:
-            f.close()
-
-        found = [os.path.basename(line) for line in content.splitlines()]
-        expected = ['hello.py', 'hello.pyc', 'sayhi',
-                    'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]]
-        self.assertEqual(found, expected)
-
-    def test_record_extensions(self):
-        install_dir = self.mkdtemp()
-        project_dir, dist = self.create_dist(ext_modules=[
-            Extension('xx', ['xxmodule.c'])])
-        os.chdir(project_dir)
-        support.copy_xxmodule_c(project_dir)
-
-        buildextcmd = build_ext(dist)
-        support.fixup_build_ext(buildextcmd)
-        buildextcmd.ensure_finalized()
-
-        cmd = install(dist)
-        dist.command_obj['install'] = cmd
-        dist.command_obj['build_ext'] = buildextcmd
-        cmd.root = install_dir
-        cmd.record = os.path.join(project_dir, 'filelist')
-        cmd.ensure_finalized()
-        cmd.run()
-
-        f = open(cmd.record)
-        try:
-            content = f.read()
-        finally:
-            f.close()
-
-        found = [os.path.basename(line) for line in content.splitlines()]
-        expected = [_make_ext_name('xx'),
-                    'UNKNOWN-0.0.0-py%s.%s.egg-info' % sys.version_info[:2]]
-        self.assertEqual(found, expected)
-
-    def test_debug_mode(self):
-        # this covers the code called when DEBUG is set
-        old_logs_len = len(self.logs)
-        install_module.DEBUG = True
-        try:
-            with captured_stdout():
-                self.test_record()
-        finally:
-            install_module.DEBUG = False
-        self.assertTrue(len(self.logs) > old_logs_len)
-
-
-def test_suite():
-    return unittest.makeSuite(InstallTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install_data.py b/lib/python2.7/distutils/tests/test_install_data.py
deleted file mode 100644
index 4775694..0000000
--- a/lib/python2.7/distutils/tests/test_install_data.py
+++ /dev/null
@@ -1,77 +0,0 @@
-"""Tests for distutils.command.install_data."""
-import sys
-import os
-import unittest
-import getpass
-
-from distutils.command.install_data import install_data
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class InstallDataTestCase(support.TempdirManager,
-                          support.LoggingSilencer,
-                          support.EnvironGuard,
-                          unittest.TestCase):
-
-    def test_simple_run(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = install_data(dist)
-        cmd.install_dir = inst = os.path.join(pkg_dir, 'inst')
-
-        # data_files can contain
-        #  - simple files
-        #  - a tuple with a path, and a list of file
-        one = os.path.join(pkg_dir, 'one')
-        self.write_file(one, 'xxx')
-        inst2 = os.path.join(pkg_dir, 'inst2')
-        two = os.path.join(pkg_dir, 'two')
-        self.write_file(two, 'xxx')
-
-        cmd.data_files = [one, (inst2, [two])]
-        self.assertEqual(cmd.get_inputs(), [one, (inst2, [two])])
-
-        # let's run the command
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # let's check the result
-        self.assertEqual(len(cmd.get_outputs()), 2)
-        rtwo = os.path.split(two)[-1]
-        self.assertTrue(os.path.exists(os.path.join(inst2, rtwo)))
-        rone = os.path.split(one)[-1]
-        self.assertTrue(os.path.exists(os.path.join(inst, rone)))
-        cmd.outfiles = []
-
-        # let's try with warn_dir one
-        cmd.warn_dir = 1
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # let's check the result
-        self.assertEqual(len(cmd.get_outputs()), 2)
-        self.assertTrue(os.path.exists(os.path.join(inst2, rtwo)))
-        self.assertTrue(os.path.exists(os.path.join(inst, rone)))
-        cmd.outfiles = []
-
-        # now using root and empty dir
-        cmd.root = os.path.join(pkg_dir, 'root')
-        inst3 = os.path.join(cmd.install_dir, 'inst3')
-        inst4 = os.path.join(pkg_dir, 'inst4')
-        three = os.path.join(cmd.install_dir, 'three')
-        self.write_file(three, 'xx')
-        cmd.data_files = [one, (inst2, [two]),
-                          ('inst3', [three]),
-                          (inst4, [])]
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # let's check the result
-        self.assertEqual(len(cmd.get_outputs()), 4)
-        self.assertTrue(os.path.exists(os.path.join(inst2, rtwo)))
-        self.assertTrue(os.path.exists(os.path.join(inst, rone)))
-
-def test_suite():
-    return unittest.makeSuite(InstallDataTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install_headers.py b/lib/python2.7/distutils/tests/test_install_headers.py
deleted file mode 100644
index b37224b..0000000
--- a/lib/python2.7/distutils/tests/test_install_headers.py
+++ /dev/null
@@ -1,41 +0,0 @@
-"""Tests for distutils.command.install_headers."""
-import sys
-import os
-import unittest
-import getpass
-
-from distutils.command.install_headers import install_headers
-from distutils.tests import support
-from test.test_support import run_unittest
-
-class InstallHeadersTestCase(support.TempdirManager,
-                             support.LoggingSilencer,
-                             support.EnvironGuard,
-                             unittest.TestCase):
-
-    def test_simple_run(self):
-        # we have two headers
-        header_list = self.mkdtemp()
-        header1 = os.path.join(header_list, 'header1')
-        header2 = os.path.join(header_list, 'header2')
-        self.write_file(header1)
-        self.write_file(header2)
-        headers = [header1, header2]
-
-        pkg_dir, dist = self.create_dist(headers=headers)
-        cmd = install_headers(dist)
-        self.assertEqual(cmd.get_inputs(), headers)
-
-        # let's run the command
-        cmd.install_dir = os.path.join(pkg_dir, 'inst')
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # let's check the results
-        self.assertEqual(len(cmd.get_outputs()), 2)
-
-def test_suite():
-    return unittest.makeSuite(InstallHeadersTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install_lib.py b/lib/python2.7/distutils/tests/test_install_lib.py
deleted file mode 100644
index 4d86308..0000000
--- a/lib/python2.7/distutils/tests/test_install_lib.py
+++ /dev/null
@@ -1,107 +0,0 @@
-"""Tests for distutils.command.install_data."""
-import os
-import sys
-import unittest
-
-from distutils.command.install_lib import install_lib
-from distutils.extension import Extension
-from distutils.tests import support
-from distutils.errors import DistutilsOptionError
-from test.test_support import run_unittest
-
-class InstallLibTestCase(support.TempdirManager,
-                         support.LoggingSilencer,
-                         support.EnvironGuard,
-                         unittest.TestCase):
-
-    def test_finalize_options(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = install_lib(dist)
-
-        cmd.finalize_options()
-        self.assertEqual(cmd.compile, 1)
-        self.assertEqual(cmd.optimize, 0)
-
-        # optimize must be 0, 1, or 2
-        cmd.optimize = 'foo'
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-        cmd.optimize = '4'
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
-        cmd.optimize = '2'
-        cmd.finalize_options()
-        self.assertEqual(cmd.optimize, 2)
-
-    def _setup_byte_compile(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = install_lib(dist)
-        cmd.compile = cmd.optimize = 1
-
-        f = os.path.join(pkg_dir, 'foo.py')
-        self.write_file(f, '# python file')
-        cmd.byte_compile([f])
-        return pkg_dir
-
-    @unittest.skipIf(sys.dont_write_bytecode, 'byte-compile not enabled')
-    def test_byte_compile(self):
-        pkg_dir = self._setup_byte_compile()
-        if sys.flags.optimize < 1:
-            self.assertTrue(os.path.exists(os.path.join(pkg_dir, 'foo.pyc')))
-        else:
-            self.assertTrue(os.path.exists(os.path.join(pkg_dir, 'foo.pyo')))
-
-    def test_get_outputs(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = install_lib(dist)
-
-        # setting up a dist environment
-        cmd.compile = cmd.optimize = 1
-        cmd.install_dir = pkg_dir
-        f = os.path.join(pkg_dir, 'foo.py')
-        self.write_file(f, '# python file')
-        cmd.distribution.py_modules = [pkg_dir]
-        cmd.distribution.ext_modules = [Extension('foo', ['xxx'])]
-        cmd.distribution.packages = [pkg_dir]
-        cmd.distribution.script_name = 'setup.py'
-
-        # get_output should return 4 elements
-        self.assertTrue(len(cmd.get_outputs()) >= 2)
-
-    def test_get_inputs(self):
-        pkg_dir, dist = self.create_dist()
-        cmd = install_lib(dist)
-
-        # setting up a dist environment
-        cmd.compile = cmd.optimize = 1
-        cmd.install_dir = pkg_dir
-        f = os.path.join(pkg_dir, 'foo.py')
-        self.write_file(f, '# python file')
-        cmd.distribution.py_modules = [pkg_dir]
-        cmd.distribution.ext_modules = [Extension('foo', ['xxx'])]
-        cmd.distribution.packages = [pkg_dir]
-        cmd.distribution.script_name = 'setup.py'
-
-        # get_input should return 2 elements
-        self.assertEqual(len(cmd.get_inputs()), 2)
-
-    def test_dont_write_bytecode(self):
-        # makes sure byte_compile is not used
-        pkg_dir, dist = self.create_dist()
-        cmd = install_lib(dist)
-        cmd.compile = 1
-        cmd.optimize = 1
-
-        old_dont_write_bytecode = sys.dont_write_bytecode
-        sys.dont_write_bytecode = True
-        try:
-            cmd.byte_compile([])
-        finally:
-            sys.dont_write_bytecode = old_dont_write_bytecode
-
-        self.assertTrue('byte-compiling is disabled' in self.logs[0][1])
-
-def test_suite():
-    return unittest.makeSuite(InstallLibTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_install_scripts.py b/lib/python2.7/distutils/tests/test_install_scripts.py
deleted file mode 100644
index 4608545..0000000
--- a/lib/python2.7/distutils/tests/test_install_scripts.py
+++ /dev/null
@@ -1,82 +0,0 @@
-"""Tests for distutils.command.install_scripts."""
-
-import os
-import unittest
-
-from distutils.command.install_scripts import install_scripts
-from distutils.core import Distribution
-
-from distutils.tests import support
-from test.test_support import run_unittest
-
-
-class InstallScriptsTestCase(support.TempdirManager,
-                             support.LoggingSilencer,
-                             unittest.TestCase):
-
-    def test_default_settings(self):
-        dist = Distribution()
-        dist.command_obj["build"] = support.DummyCommand(
-            build_scripts="/foo/bar")
-        dist.command_obj["install"] = support.DummyCommand(
-            install_scripts="/splat/funk",
-            force=1,
-            skip_build=1,
-            )
-        cmd = install_scripts(dist)
-        self.assertTrue(not cmd.force)
-        self.assertTrue(not cmd.skip_build)
-        self.assertTrue(cmd.build_dir is None)
-        self.assertTrue(cmd.install_dir is None)
-
-        cmd.finalize_options()
-
-        self.assertTrue(cmd.force)
-        self.assertTrue(cmd.skip_build)
-        self.assertEqual(cmd.build_dir, "/foo/bar")
-        self.assertEqual(cmd.install_dir, "/splat/funk")
-
-    def test_installation(self):
-        source = self.mkdtemp()
-        expected = []
-
-        def write_script(name, text):
-            expected.append(name)
-            f = open(os.path.join(source, name), "w")
-            try:
-                f.write(text)
-            finally:
-                f.close()
-
-        write_script("script1.py", ("#! /usr/bin/env python2.3\n"
-                                    "# bogus script w/ Python sh-bang\n"
-                                    "pass\n"))
-        write_script("script2.py", ("#!/usr/bin/python\n"
-                                    "# bogus script w/ Python sh-bang\n"
-                                    "pass\n"))
-        write_script("shell.sh", ("#!/bin/sh\n"
-                                  "# bogus shell script w/ sh-bang\n"
-                                  "exit 0\n"))
-
-        target = self.mkdtemp()
-        dist = Distribution()
-        dist.command_obj["build"] = support.DummyCommand(build_scripts=source)
-        dist.command_obj["install"] = support.DummyCommand(
-            install_scripts=target,
-            force=1,
-            skip_build=1,
-            )
-        cmd = install_scripts(dist)
-        cmd.finalize_options()
-        cmd.run()
-
-        installed = os.listdir(target)
-        for name in expected:
-            self.assertTrue(name in installed)
-
-
-def test_suite():
-    return unittest.makeSuite(InstallScriptsTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_msvc9compiler.py b/lib/python2.7/distutils/tests/test_msvc9compiler.py
deleted file mode 100644
index 2d94a11..0000000
--- a/lib/python2.7/distutils/tests/test_msvc9compiler.py
+++ /dev/null
@@ -1,184 +0,0 @@
-"""Tests for distutils.msvc9compiler."""
-import sys
-import unittest
-import os
-
-from distutils.errors import DistutilsPlatformError
-from distutils.tests import support
-from test.test_support import run_unittest
-
-# A manifest with the only assembly reference being the msvcrt assembly, so
-# should have the assembly completely stripped.  Note that although the
-# assembly has a <security> reference the assembly is removed - that is
-# currently a "feature", not a bug :)
-_MANIFEST_WITH_ONLY_MSVC_REFERENCE = """\
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
-          manifestVersion="1.0">
-  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
-    <security>
-      <requestedPrivileges>
-        <requestedExecutionLevel level="asInvoker" uiAccess="false">
-        </requestedExecutionLevel>
-      </requestedPrivileges>
-    </security>
-  </trustInfo>
-  <dependency>
-    <dependentAssembly>
-      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT"
-         version="9.0.21022.8" processorArchitecture="x86"
-         publicKeyToken="XXXX">
-      </assemblyIdentity>
-    </dependentAssembly>
-  </dependency>
-</assembly>
-"""
-
-# A manifest with references to assemblies other than msvcrt.  When processed,
-# this assembly should be returned with just the msvcrt part removed.
-_MANIFEST_WITH_MULTIPLE_REFERENCES = """\
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
-          manifestVersion="1.0">
-  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
-    <security>
-      <requestedPrivileges>
-        <requestedExecutionLevel level="asInvoker" uiAccess="false">
-        </requestedExecutionLevel>
-      </requestedPrivileges>
-    </security>
-  </trustInfo>
-  <dependency>
-    <dependentAssembly>
-      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT"
-         version="9.0.21022.8" processorArchitecture="x86"
-         publicKeyToken="XXXX">
-      </assemblyIdentity>
-    </dependentAssembly>
-  </dependency>
-  <dependency>
-    <dependentAssembly>
-      <assemblyIdentity type="win32" name="Microsoft.VC90.MFC"
-        version="9.0.21022.8" processorArchitecture="x86"
-        publicKeyToken="XXXX"></assemblyIdentity>
-    </dependentAssembly>
-  </dependency>
-</assembly>
-"""
-
-_CLEANED_MANIFEST = """\
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
-          manifestVersion="1.0">
-  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
-    <security>
-      <requestedPrivileges>
-        <requestedExecutionLevel level="asInvoker" uiAccess="false">
-        </requestedExecutionLevel>
-      </requestedPrivileges>
-    </security>
-  </trustInfo>
-  <dependency>
-
-  </dependency>
-  <dependency>
-    <dependentAssembly>
-      <assemblyIdentity type="win32" name="Microsoft.VC90.MFC"
-        version="9.0.21022.8" processorArchitecture="x86"
-        publicKeyToken="XXXX"></assemblyIdentity>
-    </dependentAssembly>
-  </dependency>
-</assembly>"""
-
-if sys.platform=="win32":
-    from distutils.msvccompiler import get_build_version
-    if get_build_version()>=8.0:
-        SKIP_MESSAGE = None
-    else:
-        SKIP_MESSAGE = "These tests are only for MSVC8.0 or above"
-else:
-    SKIP_MESSAGE = "These tests are only for win32"
-
-@unittest.skipUnless(SKIP_MESSAGE is None, SKIP_MESSAGE)
-class msvc9compilerTestCase(support.TempdirManager,
-                            unittest.TestCase):
-
-    def test_no_compiler(self):
-        # makes sure query_vcvarsall raises
-        # a DistutilsPlatformError if the compiler
-        # is not found
-        from distutils.msvc9compiler import query_vcvarsall
-        def _find_vcvarsall(version):
-            return None
-
-        from distutils import msvc9compiler
-        old_find_vcvarsall = msvc9compiler.find_vcvarsall
-        msvc9compiler.find_vcvarsall = _find_vcvarsall
-        try:
-            self.assertRaises(DistutilsPlatformError, query_vcvarsall,
-                             'wont find this version')
-        finally:
-            msvc9compiler.find_vcvarsall = old_find_vcvarsall
-
-    def test_reg_class(self):
-        from distutils.msvc9compiler import Reg
-        self.assertRaises(KeyError, Reg.get_value, 'xxx', 'xxx')
-
-        # looking for values that should exist on all
-        # windows registeries versions.
-        path = r'Control Panel\Desktop'
-        v = Reg.get_value(path, u'dragfullwindows')
-        self.assertTrue(v in (u'0', u'1', u'2'))
-
-        import _winreg
-        HKCU = _winreg.HKEY_CURRENT_USER
-        keys = Reg.read_keys(HKCU, 'xxxx')
-        self.assertEqual(keys, None)
-
-        keys = Reg.read_keys(HKCU, r'Control Panel')
-        self.assertTrue('Desktop' in keys)
-
-    def test_remove_visual_c_ref(self):
-        from distutils.msvc9compiler import MSVCCompiler
-        tempdir = self.mkdtemp()
-        manifest = os.path.join(tempdir, 'manifest')
-        f = open(manifest, 'w')
-        try:
-            f.write(_MANIFEST_WITH_MULTIPLE_REFERENCES)
-        finally:
-            f.close()
-
-        compiler = MSVCCompiler()
-        compiler._remove_visual_c_ref(manifest)
-
-        # see what we got
-        f = open(manifest)
-        try:
-            # removing trailing spaces
-            content = '\n'.join([line.rstrip() for line in f.readlines()])
-        finally:
-            f.close()
-
-        # makes sure the manifest was properly cleaned
-        self.assertEqual(content, _CLEANED_MANIFEST)
-
-    def test_remove_entire_manifest(self):
-        from distutils.msvc9compiler import MSVCCompiler
-        tempdir = self.mkdtemp()
-        manifest = os.path.join(tempdir, 'manifest')
-        f = open(manifest, 'w')
-        try:
-            f.write(_MANIFEST_WITH_ONLY_MSVC_REFERENCE)
-        finally:
-            f.close()
-
-        compiler = MSVCCompiler()
-        got = compiler._remove_visual_c_ref(manifest)
-        self.assertIs(got, None)
-
-
-def test_suite():
-    return unittest.makeSuite(msvc9compilerTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_register.py b/lib/python2.7/distutils/tests/test_register.py
deleted file mode 100644
index 4f34b18..0000000
--- a/lib/python2.7/distutils/tests/test_register.py
+++ /dev/null
@@ -1,290 +0,0 @@
-# -*- encoding: utf8 -*-
-"""Tests for distutils.command.register."""
-import os
-import unittest
-import getpass
-import urllib2
-import warnings
-
-from test.test_support import check_warnings, run_unittest
-
-from distutils.command import register as register_module
-from distutils.command.register import register
-from distutils.errors import DistutilsSetupError
-
-from distutils.tests.test_config import PyPIRCCommandTestCase
-
-try:
-    import docutils
-except ImportError:
-    docutils = None
-
-PYPIRC_NOPASSWORD = """\
-[distutils]
-
-index-servers =
-    server1
-
-[server1]
-username:me
-"""
-
-WANTED_PYPIRC = """\
-[distutils]
-index-servers =
-    pypi
-
-[pypi]
-username:tarek
-password:password
-"""
-
-class RawInputs(object):
-    """Fakes user inputs."""
-    def __init__(self, *answers):
-        self.answers = answers
-        self.index = 0
-
-    def __call__(self, prompt=''):
-        try:
-            return self.answers[self.index]
-        finally:
-            self.index += 1
-
-class FakeOpener(object):
-    """Fakes a PyPI server"""
-    def __init__(self):
-        self.reqs = []
-
-    def __call__(self, *args):
-        return self
-
-    def open(self, req):
-        self.reqs.append(req)
-        return self
-
-    def read(self):
-        return 'xxx'
-
-class RegisterTestCase(PyPIRCCommandTestCase):
-
-    def setUp(self):
-        super(RegisterTestCase, self).setUp()
-        # patching the password prompt
-        self._old_getpass = getpass.getpass
-        def _getpass(prompt):
-            return 'password'
-        getpass.getpass = _getpass
-        self.old_opener = urllib2.build_opener
-        self.conn = urllib2.build_opener = FakeOpener()
-
-    def tearDown(self):
-        getpass.getpass = self._old_getpass
-        urllib2.build_opener = self.old_opener
-        super(RegisterTestCase, self).tearDown()
-
-    def _get_cmd(self, metadata=None):
-        if metadata is None:
-            metadata = {'url': 'xxx', 'author': 'xxx',
-                        'author_email': 'xxx',
-                        'name': 'xxx', 'version': 'xxx'}
-        pkg_info, dist = self.create_dist(**metadata)
-        return register(dist)
-
-    def test_create_pypirc(self):
-        # this test makes sure a .pypirc file
-        # is created when requested.
-
-        # let's create a register instance
-        cmd = self._get_cmd()
-
-        # we shouldn't have a .pypirc file yet
-        self.assertTrue(not os.path.exists(self.rc))
-
-        # patching raw_input and getpass.getpass
-        # so register gets happy
-        #
-        # Here's what we are faking :
-        # use your existing login (choice 1.)
-        # Username : 'tarek'
-        # Password : 'password'
-        # Save your login (y/N)? : 'y'
-        inputs = RawInputs('1', 'tarek', 'y')
-        register_module.raw_input = inputs.__call__
-        # let's run the command
-        try:
-            cmd.run()
-        finally:
-            del register_module.raw_input
-
-        # we should have a brand new .pypirc file
-        self.assertTrue(os.path.exists(self.rc))
-
-        # with the content similar to WANTED_PYPIRC
-        f = open(self.rc)
-        try:
-            content = f.read()
-            self.assertEqual(content, WANTED_PYPIRC)
-        finally:
-            f.close()
-
-        # now let's make sure the .pypirc file generated
-        # really works : we shouldn't be asked anything
-        # if we run the command again
-        def _no_way(prompt=''):
-            raise AssertionError(prompt)
-        register_module.raw_input = _no_way
-
-        cmd.show_response = 1
-        cmd.run()
-
-        # let's see what the server received : we should
-        # have 2 similar requests
-        self.assertEqual(len(self.conn.reqs), 2)
-        req1 = dict(self.conn.reqs[0].headers)
-        req2 = dict(self.conn.reqs[1].headers)
-        self.assertEqual(req2['Content-length'], req1['Content-length'])
-        self.assertTrue('xxx' in self.conn.reqs[1].data)
-
-    def test_password_not_in_file(self):
-
-        self.write_file(self.rc, PYPIRC_NOPASSWORD)
-        cmd = self._get_cmd()
-        cmd._set_config()
-        cmd.finalize_options()
-        cmd.send_metadata()
-
-        # dist.password should be set
-        # therefore used afterwards by other commands
-        self.assertEqual(cmd.distribution.password, 'password')
-
-    def test_registering(self):
-        # this test runs choice 2
-        cmd = self._get_cmd()
-        inputs = RawInputs('2', 'tarek', 'tarek@ziade.org')
-        register_module.raw_input = inputs.__call__
-        try:
-            # let's run the command
-            cmd.run()
-        finally:
-            del register_module.raw_input
-
-        # we should have send a request
-        self.assertEqual(len(self.conn.reqs), 1)
-        req = self.conn.reqs[0]
-        headers = dict(req.headers)
-        self.assertEqual(headers['Content-length'], '608')
-        self.assertTrue('tarek' in req.data)
-
-    def test_password_reset(self):
-        # this test runs choice 3
-        cmd = self._get_cmd()
-        inputs = RawInputs('3', 'tarek@ziade.org')
-        register_module.raw_input = inputs.__call__
-        try:
-            # let's run the command
-            cmd.run()
-        finally:
-            del register_module.raw_input
-
-        # we should have send a request
-        self.assertEqual(len(self.conn.reqs), 1)
-        req = self.conn.reqs[0]
-        headers = dict(req.headers)
-        self.assertEqual(headers['Content-length'], '290')
-        self.assertTrue('tarek' in req.data)
-
-    @unittest.skipUnless(docutils is not None, 'needs docutils')
-    def test_strict(self):
-        # testing the script option
-        # when on, the register command stops if
-        # the metadata is incomplete or if
-        # long_description is not reSt compliant
-
-        # empty metadata
-        cmd = self._get_cmd({})
-        cmd.ensure_finalized()
-        cmd.strict = 1
-        self.assertRaises(DistutilsSetupError, cmd.run)
-
-        # metadata are OK but long_description is broken
-        metadata = {'url': 'xxx', 'author': 'xxx',
-                    'author_email': u'éxéxé',
-                    'name': 'xxx', 'version': 'xxx',
-                    'long_description': 'title\n==\n\ntext'}
-
-        cmd = self._get_cmd(metadata)
-        cmd.ensure_finalized()
-        cmd.strict = 1
-        self.assertRaises(DistutilsSetupError, cmd.run)
-
-        # now something that works
-        metadata['long_description'] = 'title\n=====\n\ntext'
-        cmd = self._get_cmd(metadata)
-        cmd.ensure_finalized()
-        cmd.strict = 1
-        inputs = RawInputs('1', 'tarek', 'y')
-        register_module.raw_input = inputs.__call__
-        # let's run the command
-        try:
-            cmd.run()
-        finally:
-            del register_module.raw_input
-
-        # strict is not by default
-        cmd = self._get_cmd()
-        cmd.ensure_finalized()
-        inputs = RawInputs('1', 'tarek', 'y')
-        register_module.raw_input = inputs.__call__
-        # let's run the command
-        try:
-            cmd.run()
-        finally:
-            del register_module.raw_input
-
-        # and finally a Unicode test (bug #12114)
-        metadata = {'url': u'xxx', 'author': u'\u00c9ric',
-                    'author_email': u'xxx', u'name': 'xxx',
-                    'version': u'xxx',
-                    'description': u'Something about esszet \u00df',
-                    'long_description': u'More things about esszet \u00df'}
-
-        cmd = self._get_cmd(metadata)
-        cmd.ensure_finalized()
-        cmd.strict = 1
-        inputs = RawInputs('1', 'tarek', 'y')
-        register_module.raw_input = inputs.__call__
-        # let's run the command
-        try:
-            cmd.run()
-        finally:
-            del register_module.raw_input
-
-    @unittest.skipUnless(docutils is not None, 'needs docutils')
-    def test_register_invalid_long_description(self):
-        description = ':funkie:`str`'  # mimic Sphinx-specific markup
-        metadata = {'url': 'xxx', 'author': 'xxx',
-                    'author_email': 'xxx',
-                    'name': 'xxx', 'version': 'xxx',
-                    'long_description': description}
-        cmd = self._get_cmd(metadata)
-        cmd.ensure_finalized()
-        cmd.strict = True
-        inputs = RawInputs('2', 'tarek', 'tarek@ziade.org')
-        register_module.raw_input = inputs
-        self.addCleanup(delattr, register_module, 'raw_input')
-        self.assertRaises(DistutilsSetupError, cmd.run)
-
-    def test_check_metadata_deprecated(self):
-        # makes sure make_metadata is deprecated
-        cmd = self._get_cmd()
-        with check_warnings() as w:
-            warnings.simplefilter("always")
-            cmd.check_metadata()
-            self.assertEqual(len(w.warnings), 1)
-
-def test_suite():
-    return unittest.makeSuite(RegisterTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_sdist.py b/lib/python2.7/distutils/tests/test_sdist.py
deleted file mode 100644
index 7e7d98d..0000000
--- a/lib/python2.7/distutils/tests/test_sdist.py
+++ /dev/null
@@ -1,512 +0,0 @@
-"""Tests for distutils.command.sdist."""
-import os
-import tarfile
-import unittest
-import warnings
-import zipfile
-from os.path import join
-from textwrap import dedent
-from test.test_support import captured_stdout, check_warnings, run_unittest
-
-# zlib is not used here, but if it's not available
-# the tests that use zipfile may fail
-try:
-    import zlib
-except ImportError:
-    zlib = None
-
-try:
-    import grp
-    import pwd
-    UID_GID_SUPPORT = True
-except ImportError:
-    UID_GID_SUPPORT = False
-
-
-from distutils.command.sdist import sdist, show_formats
-from distutils.core import Distribution
-from distutils.tests.test_config import PyPIRCCommandTestCase
-from distutils.errors import DistutilsOptionError
-from distutils.spawn import find_executable
-from distutils.log import WARN
-from distutils.filelist import FileList
-from distutils.archive_util import ARCHIVE_FORMATS
-
-SETUP_PY = """
-from distutils.core import setup
-import somecode
-
-setup(name='fake')
-"""
-
-MANIFEST = """\
-# file GENERATED by distutils, do NOT edit
-README
-buildout.cfg
-inroot.txt
-setup.py
-data%(sep)sdata.dt
-scripts%(sep)sscript.py
-some%(sep)sfile.txt
-some%(sep)sother_file.txt
-somecode%(sep)s__init__.py
-somecode%(sep)sdoc.dat
-somecode%(sep)sdoc.txt
-"""
-
-class SDistTestCase(PyPIRCCommandTestCase):
-
-    def setUp(self):
-        # PyPIRCCommandTestCase creates a temp dir already
-        # and put it in self.tmp_dir
-        super(SDistTestCase, self).setUp()
-        # setting up an environment
-        self.old_path = os.getcwd()
-        os.mkdir(join(self.tmp_dir, 'somecode'))
-        os.mkdir(join(self.tmp_dir, 'dist'))
-        # a package, and a README
-        self.write_file((self.tmp_dir, 'README'), 'xxx')
-        self.write_file((self.tmp_dir, 'somecode', '__init__.py'), '#')
-        self.write_file((self.tmp_dir, 'setup.py'), SETUP_PY)
-        os.chdir(self.tmp_dir)
-
-    def tearDown(self):
-        # back to normal
-        os.chdir(self.old_path)
-        super(SDistTestCase, self).tearDown()
-
-    def get_cmd(self, metadata=None):
-        """Returns a cmd"""
-        if metadata is None:
-            metadata = {'name': 'fake', 'version': '1.0',
-                        'url': 'xxx', 'author': 'xxx',
-                        'author_email': 'xxx'}
-        dist = Distribution(metadata)
-        dist.script_name = 'setup.py'
-        dist.packages = ['somecode']
-        dist.include_package_data = True
-        cmd = sdist(dist)
-        cmd.dist_dir = 'dist'
-        return dist, cmd
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_prune_file_list(self):
-        # this test creates a project with some VCS dirs and an NFS rename
-        # file, then launches sdist to check they get pruned on all systems
-
-        # creating VCS directories with some files in them
-        os.mkdir(join(self.tmp_dir, 'somecode', '.svn'))
-        self.write_file((self.tmp_dir, 'somecode', '.svn', 'ok.py'), 'xxx')
-
-        os.mkdir(join(self.tmp_dir, 'somecode', '.hg'))
-        self.write_file((self.tmp_dir, 'somecode', '.hg',
-                         'ok'), 'xxx')
-
-        os.mkdir(join(self.tmp_dir, 'somecode', '.git'))
-        self.write_file((self.tmp_dir, 'somecode', '.git',
-                         'ok'), 'xxx')
-
-        self.write_file((self.tmp_dir, 'somecode', '.nfs0001'), 'xxx')
-
-        # now building a sdist
-        dist, cmd = self.get_cmd()
-
-        # zip is available universally
-        # (tar might not be installed under win32)
-        cmd.formats = ['zip']
-
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # now let's check what we have
-        dist_folder = join(self.tmp_dir, 'dist')
-        files = os.listdir(dist_folder)
-        self.assertEqual(files, ['fake-1.0.zip'])
-
-        zip_file = zipfile.ZipFile(join(dist_folder, 'fake-1.0.zip'))
-        try:
-            content = zip_file.namelist()
-        finally:
-            zip_file.close()
-
-        # making sure everything has been pruned correctly
-        self.assertEqual(len(content), 4)
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_make_distribution(self):
-
-        # check if tar and gzip are installed
-        if (find_executable('tar') is None or
-            find_executable('gzip') is None):
-            return
-
-        # now building a sdist
-        dist, cmd = self.get_cmd()
-
-        # creating a gztar then a tar
-        cmd.formats = ['gztar', 'tar']
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # making sure we have two files
-        dist_folder = join(self.tmp_dir, 'dist')
-        result = os.listdir(dist_folder)
-        result.sort()
-        self.assertEqual(result, ['fake-1.0.tar', 'fake-1.0.tar.gz'])
-
-        os.remove(join(dist_folder, 'fake-1.0.tar'))
-        os.remove(join(dist_folder, 'fake-1.0.tar.gz'))
-
-        # now trying a tar then a gztar
-        cmd.formats = ['tar', 'gztar']
-
-        cmd.ensure_finalized()
-        cmd.run()
-
-        result = os.listdir(dist_folder)
-        result.sort()
-        self.assertEqual(result, ['fake-1.0.tar', 'fake-1.0.tar.gz'])
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_unicode_metadata_tgz(self):
-        """
-        Unicode name or version should not break building to tar.gz format.
-        Reference issue #11638.
-        """
-
-        # create the sdist command with unicode parameters
-        dist, cmd = self.get_cmd({'name': u'fake', 'version': u'1.0'})
-
-        # create the sdist as gztar and run the command
-        cmd.formats = ['gztar']
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # The command should have created the .tar.gz file
-        dist_folder = join(self.tmp_dir, 'dist')
-        result = os.listdir(dist_folder)
-        self.assertEqual(result, ['fake-1.0.tar.gz'])
-
-        os.remove(join(dist_folder, 'fake-1.0.tar.gz'))
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_add_defaults(self):
-
-        # http://bugs.python.org/issue2279
-
-        # add_default should also include
-        # data_files and package_data
-        dist, cmd = self.get_cmd()
-
-        # filling data_files by pointing files
-        # in package_data
-        dist.package_data = {'': ['*.cfg', '*.dat'],
-                             'somecode': ['*.txt']}
-        self.write_file((self.tmp_dir, 'somecode', 'doc.txt'), '#')
-        self.write_file((self.tmp_dir, 'somecode', 'doc.dat'), '#')
-
-        # adding some data in data_files
-        data_dir = join(self.tmp_dir, 'data')
-        os.mkdir(data_dir)
-        self.write_file((data_dir, 'data.dt'), '#')
-        some_dir = join(self.tmp_dir, 'some')
-        os.mkdir(some_dir)
-        # make sure VCS directories are pruned (#14004)
-        hg_dir = join(self.tmp_dir, '.hg')
-        os.mkdir(hg_dir)
-        self.write_file((hg_dir, 'last-message.txt'), '#')
-        # a buggy regex used to prevent this from working on windows (#6884)
-        self.write_file((self.tmp_dir, 'buildout.cfg'), '#')
-        self.write_file((self.tmp_dir, 'inroot.txt'), '#')
-        self.write_file((some_dir, 'file.txt'), '#')
-        self.write_file((some_dir, 'other_file.txt'), '#')
-
-        dist.data_files = [('data', ['data/data.dt',
-                                     'buildout.cfg',
-                                     'inroot.txt',
-                                     'notexisting']),
-                           'some/file.txt',
-                           'some/other_file.txt']
-
-        # adding a script
-        script_dir = join(self.tmp_dir, 'scripts')
-        os.mkdir(script_dir)
-        self.write_file((script_dir, 'script.py'), '#')
-        dist.scripts = [join('scripts', 'script.py')]
-
-        cmd.formats = ['zip']
-        cmd.use_defaults = True
-
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # now let's check what we have
-        dist_folder = join(self.tmp_dir, 'dist')
-        files = os.listdir(dist_folder)
-        self.assertEqual(files, ['fake-1.0.zip'])
-
-        zip_file = zipfile.ZipFile(join(dist_folder, 'fake-1.0.zip'))
-        try:
-            content = zip_file.namelist()
-        finally:
-            zip_file.close()
-
-        # making sure everything was added
-        self.assertEqual(len(content), 12)
-
-        # checking the MANIFEST
-        f = open(join(self.tmp_dir, 'MANIFEST'))
-        try:
-            manifest = f.read()
-        finally:
-            f.close()
-        self.assertEqual(manifest, MANIFEST % {'sep': os.sep})
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_metadata_check_option(self):
-        # testing the `medata-check` option
-        dist, cmd = self.get_cmd(metadata={})
-
-        # this should raise some warnings !
-        # with the `check` subcommand
-        cmd.ensure_finalized()
-        cmd.run()
-        warnings = [msg for msg in self.get_logs(WARN) if
-                    msg.startswith('warning: check:')]
-        self.assertEqual(len(warnings), 2)
-
-        # trying with a complete set of metadata
-        self.clear_logs()
-        dist, cmd = self.get_cmd()
-        cmd.ensure_finalized()
-        cmd.metadata_check = 0
-        cmd.run()
-        warnings = [msg for msg in self.get_logs(WARN) if
-                    msg.startswith('warning: check:')]
-        self.assertEqual(len(warnings), 0)
-
-    def test_check_metadata_deprecated(self):
-        # makes sure make_metadata is deprecated
-        dist, cmd = self.get_cmd()
-        with check_warnings() as w:
-            warnings.simplefilter("always")
-            cmd.check_metadata()
-            self.assertEqual(len(w.warnings), 1)
-
-    def test_show_formats(self):
-        with captured_stdout() as stdout:
-            show_formats()
-
-        # the output should be a header line + one line per format
-        num_formats = len(ARCHIVE_FORMATS.keys())
-        output = [line for line in stdout.getvalue().split('\n')
-                  if line.strip().startswith('--formats=')]
-        self.assertEqual(len(output), num_formats)
-
-    def test_finalize_options(self):
-        dist, cmd = self.get_cmd()
-        cmd.finalize_options()
-
-        # default options set by finalize
-        self.assertEqual(cmd.manifest, 'MANIFEST')
-        self.assertEqual(cmd.template, 'MANIFEST.in')
-        self.assertEqual(cmd.dist_dir, 'dist')
-
-        # formats has to be a string splitable on (' ', ',') or
-        # a stringlist
-        cmd.formats = 1
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-        cmd.formats = ['zip']
-        cmd.finalize_options()
-
-        # formats has to be known
-        cmd.formats = 'supazipa'
-        self.assertRaises(DistutilsOptionError, cmd.finalize_options)
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
-    def test_make_distribution_owner_group(self):
-
-        # check if tar and gzip are installed
-        if (find_executable('tar') is None or
-            find_executable('gzip') is None):
-            return
-
-        # now building a sdist
-        dist, cmd = self.get_cmd()
-
-        # creating a gztar and specifying the owner+group
-        cmd.formats = ['gztar']
-        cmd.owner = pwd.getpwuid(0)[0]
-        cmd.group = grp.getgrgid(0)[0]
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # making sure we have the good rights
-        archive_name = join(self.tmp_dir, 'dist', 'fake-1.0.tar.gz')
-        archive = tarfile.open(archive_name)
-        try:
-            for member in archive.getmembers():
-                self.assertEqual(member.uid, 0)
-                self.assertEqual(member.gid, 0)
-        finally:
-            archive.close()
-
-        # building a sdist again
-        dist, cmd = self.get_cmd()
-
-        # creating a gztar
-        cmd.formats = ['gztar']
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # making sure we have the good rights
-        archive_name = join(self.tmp_dir, 'dist', 'fake-1.0.tar.gz')
-        archive = tarfile.open(archive_name)
-
-        # note that we are not testing the group ownership here
-        # because, depending on the platforms and the container
-        # rights (see #7408)
-        try:
-            for member in archive.getmembers():
-                self.assertEqual(member.uid, os.getuid())
-        finally:
-            archive.close()
-
-    # the following tests make sure there is a nice error message instead
-    # of a traceback when parsing an invalid manifest template
-
-    def _check_template(self, content):
-        dist, cmd = self.get_cmd()
-        os.chdir(self.tmp_dir)
-        self.write_file('MANIFEST.in', content)
-        cmd.ensure_finalized()
-        cmd.filelist = FileList()
-        cmd.read_template()
-        warnings = self.get_logs(WARN)
-        self.assertEqual(len(warnings), 1)
-
-    def test_invalid_template_unknown_command(self):
-        self._check_template('taunt knights *')
-
-    def test_invalid_template_wrong_arguments(self):
-        # this manifest command takes one argument
-        self._check_template('prune')
-
-    @unittest.skipIf(os.name != 'nt', 'test relevant for Windows only')
-    def test_invalid_template_wrong_path(self):
-        # on Windows, trailing slashes are not allowed
-        # this used to crash instead of raising a warning: #8286
-        self._check_template('include examples/')
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_get_file_list(self):
-        # make sure MANIFEST is recalculated
-        dist, cmd = self.get_cmd()
-
-        # filling data_files by pointing files in package_data
-        dist.package_data = {'somecode': ['*.txt']}
-        self.write_file((self.tmp_dir, 'somecode', 'doc.txt'), '#')
-        cmd.formats = ['gztar']
-        cmd.ensure_finalized()
-        cmd.run()
-
-        f = open(cmd.manifest)
-        try:
-            manifest = [line.strip() for line in f.read().split('\n')
-                        if line.strip() != '']
-        finally:
-            f.close()
-
-        self.assertEqual(len(manifest), 5)
-
-        # adding a file
-        self.write_file((self.tmp_dir, 'somecode', 'doc2.txt'), '#')
-
-        # make sure build_py is reinitialized, like a fresh run
-        build_py = dist.get_command_obj('build_py')
-        build_py.finalized = False
-        build_py.ensure_finalized()
-
-        cmd.run()
-
-        f = open(cmd.manifest)
-        try:
-            manifest2 = [line.strip() for line in f.read().split('\n')
-                         if line.strip() != '']
-        finally:
-            f.close()
-
-        # do we have the new file in MANIFEST ?
-        self.assertEqual(len(manifest2), 6)
-        self.assertIn('doc2.txt', manifest2[-1])
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_manifest_marker(self):
-        # check that autogenerated MANIFESTs have a marker
-        dist, cmd = self.get_cmd()
-        cmd.ensure_finalized()
-        cmd.run()
-
-        f = open(cmd.manifest)
-        try:
-            manifest = [line.strip() for line in f.read().split('\n')
-                        if line.strip() != '']
-        finally:
-            f.close()
-
-        self.assertEqual(manifest[0],
-                         '# file GENERATED by distutils, do NOT edit')
-
-    @unittest.skipUnless(zlib, 'requires zlib')
-    def test_manifest_comments(self):
-        # make sure comments don't cause exceptions or wrong includes
-        contents = dedent("""\
-            # bad.py
-            #bad.py
-            good.py
-            """)
-        dist, cmd = self.get_cmd()
-        cmd.ensure_finalized()
-        self.write_file((self.tmp_dir, cmd.manifest), contents)
-        self.write_file((self.tmp_dir, 'good.py'), '# pick me!')
-        self.write_file((self.tmp_dir, 'bad.py'), "# don't pick me!")
-        self.write_file((self.tmp_dir, '#bad.py'), "# don't pick me!")
-        cmd.run()
-        self.assertEqual(cmd.filelist.files, ['good.py'])
-
-    @unittest.skipUnless(zlib, "requires zlib")
-    def test_manual_manifest(self):
-        # check that a MANIFEST without a marker is left alone
-        dist, cmd = self.get_cmd()
-        cmd.formats = ['gztar']
-        cmd.ensure_finalized()
-        self.write_file((self.tmp_dir, cmd.manifest), 'README.manual')
-        self.write_file((self.tmp_dir, 'README.manual'),
-                         'This project maintains its MANIFEST file itself.')
-        cmd.run()
-        self.assertEqual(cmd.filelist.files, ['README.manual'])
-
-        f = open(cmd.manifest)
-        try:
-            manifest = [line.strip() for line in f.read().split('\n')
-                        if line.strip() != '']
-        finally:
-            f.close()
-
-        self.assertEqual(manifest, ['README.manual'])
-
-        archive_name = join(self.tmp_dir, 'dist', 'fake-1.0.tar.gz')
-        archive = tarfile.open(archive_name)
-        try:
-            filenames = [tarinfo.name for tarinfo in archive]
-        finally:
-            archive.close()
-        self.assertEqual(sorted(filenames), ['fake-1.0', 'fake-1.0/PKG-INFO',
-                                             'fake-1.0/README.manual'])
-
-def test_suite():
-    return unittest.makeSuite(SDistTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_spawn.py b/lib/python2.7/distutils/tests/test_spawn.py
deleted file mode 100644
index defa54d..0000000
--- a/lib/python2.7/distutils/tests/test_spawn.py
+++ /dev/null
@@ -1,60 +0,0 @@
-"""Tests for distutils.spawn."""
-import unittest
-import os
-import time
-from test.test_support import captured_stdout, run_unittest
-
-from distutils.spawn import _nt_quote_args
-from distutils.spawn import spawn, find_executable
-from distutils.errors import DistutilsExecError
-from distutils.tests import support
-
-class SpawnTestCase(support.TempdirManager,
-                    support.LoggingSilencer,
-                    unittest.TestCase):
-
-    def test_nt_quote_args(self):
-
-        for (args, wanted) in ((['with space', 'nospace'],
-                                ['"with space"', 'nospace']),
-                               (['nochange', 'nospace'],
-                                ['nochange', 'nospace'])):
-            res = _nt_quote_args(args)
-            self.assertEqual(res, wanted)
-
-
-    @unittest.skipUnless(os.name in ('nt', 'posix'),
-                         'Runs only under posix or nt')
-    def test_spawn(self):
-        tmpdir = self.mkdtemp()
-
-        # creating something executable
-        # through the shell that returns 1
-        if os.name == 'posix':
-            exe = os.path.join(tmpdir, 'foo.sh')
-            self.write_file(exe, '#!/bin/sh\nexit 1')
-            os.chmod(exe, 0777)
-        else:
-            exe = os.path.join(tmpdir, 'foo.bat')
-            self.write_file(exe, 'exit 1')
-
-        os.chmod(exe, 0777)
-        self.assertRaises(DistutilsExecError, spawn, [exe])
-
-        # now something that works
-        if os.name == 'posix':
-            exe = os.path.join(tmpdir, 'foo.sh')
-            self.write_file(exe, '#!/bin/sh\nexit 0')
-            os.chmod(exe, 0777)
-        else:
-            exe = os.path.join(tmpdir, 'foo.bat')
-            self.write_file(exe, 'exit 0')
-
-        os.chmod(exe, 0777)
-        spawn([exe])  # should work without any error
-
-def test_suite():
-    return unittest.makeSuite(SpawnTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_sysconfig.py b/lib/python2.7/distutils/tests/test_sysconfig.py
deleted file mode 100644
index ddb40d9..0000000
--- a/lib/python2.7/distutils/tests/test_sysconfig.py
+++ /dev/null
@@ -1,117 +0,0 @@
-"""Tests for distutils.sysconfig."""
-import os
-import test
-import unittest
-import shutil
-
-from distutils import sysconfig
-from distutils.tests import support
-from test.test_support import TESTFN
-
-class SysconfigTestCase(support.EnvironGuard,
-                        unittest.TestCase):
-    def setUp(self):
-        super(SysconfigTestCase, self).setUp()
-        self.makefile = None
-
-    def tearDown(self):
-        if self.makefile is not None:
-            os.unlink(self.makefile)
-        self.cleanup_testfn()
-        super(SysconfigTestCase, self).tearDown()
-
-    def cleanup_testfn(self):
-        path = test.test_support.TESTFN
-        if os.path.isfile(path):
-            os.remove(path)
-        elif os.path.isdir(path):
-            shutil.rmtree(path)
-
-    def test_get_python_lib(self):
-        lib_dir = sysconfig.get_python_lib()
-        # XXX doesn't work on Linux when Python was never installed before
-        #self.assertTrue(os.path.isdir(lib_dir), lib_dir)
-        # test for pythonxx.lib?
-        self.assertNotEqual(sysconfig.get_python_lib(),
-                            sysconfig.get_python_lib(prefix=TESTFN))
-        _sysconfig = __import__('sysconfig')
-        res = sysconfig.get_python_lib(True, True)
-        self.assertEqual(_sysconfig.get_path('platstdlib'), res)
-
-    def test_get_python_inc(self):
-        inc_dir = sysconfig.get_python_inc()
-        # This is not much of a test.  We make sure Python.h exists
-        # in the directory returned by get_python_inc() but we don't know
-        # it is the correct file.
-        #Broken after issue 7712(r78136) : add a temp_cwd context manager to test_support ...
-        #NOTE: Its fail on platforms without root directory support(like windows)
-        #where temp and current working directories may stay on different drivers.
-        old_wd = os.getcwd()
-        os.chdir(SAVEDCWD)
-        self.assertTrue(os.path.isdir(inc_dir), inc_dir)
-        python_h = os.path.join(inc_dir, "Python.h")
-        self.assertTrue(os.path.isfile(python_h), python_h)
-        os.chdir(old_wd)
-
-    def test_parse_makefile_base(self):
-        self.makefile = test.test_support.TESTFN
-        fd = open(self.makefile, 'w')
-        try:
-            fd.write(r"CONFIG_ARGS=  '--arg1=optarg1' 'ENV=LIB'" '\n')
-            fd.write('VAR=$OTHER\nOTHER=foo')
-        finally:
-            fd.close()
-        d = sysconfig.parse_makefile(self.makefile)
-        self.assertEqual(d, {'CONFIG_ARGS': "'--arg1=optarg1' 'ENV=LIB'",
-                             'OTHER': 'foo'})
-
-    def test_parse_makefile_literal_dollar(self):
-        self.makefile = test.test_support.TESTFN
-        fd = open(self.makefile, 'w')
-        try:
-            fd.write(r"CONFIG_ARGS=  '--arg1=optarg1' 'ENV=\$$LIB'" '\n')
-            fd.write('VAR=$OTHER\nOTHER=foo')
-        finally:
-            fd.close()
-        d = sysconfig.parse_makefile(self.makefile)
-        self.assertEqual(d, {'CONFIG_ARGS': r"'--arg1=optarg1' 'ENV=\$LIB'",
-                             'OTHER': 'foo'})
-
-
-    def test_sysconfig_module(self):
-        import sysconfig as global_sysconfig
-        self.assertEqual(global_sysconfig.get_config_var('CFLAGS'), sysconfig.get_config_var('CFLAGS'))
-        self.assertEqual(global_sysconfig.get_config_var('LDFLAGS'), sysconfig.get_config_var('LDFLAGS'))
-
-    @unittest.skipIf(sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER'),'compiler flags customized')
-    def test_sysconfig_compiler_vars(self):
-        # On OS X, binary installers support extension module building on
-        # various levels of the operating system with differing Xcode
-        # configurations.  This requires customization of some of the
-        # compiler configuration directives to suit the environment on
-        # the installed machine.  Some of these customizations may require
-        # running external programs and, so, are deferred until needed by
-        # the first extension module build.  With Python 3.3, only
-        # the Distutils version of sysconfig is used for extension module
-        # builds, which happens earlier in the Distutils tests.  This may
-        # cause the following tests to fail since no tests have caused
-        # the global version of sysconfig to call the customization yet.
-        # The solution for now is to simply skip this test in this case.
-        # The longer-term solution is to only have one version of sysconfig.
-
-        import sysconfig as global_sysconfig
-        if sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER'):
-            return
-        self.assertEqual(global_sysconfig.get_config_var('LDSHARED'), sysconfig.get_config_var('LDSHARED'))
-        self.assertEqual(global_sysconfig.get_config_var('CC'), sysconfig.get_config_var('CC'))
-
-
-
-def test_suite():
-    suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(SysconfigTestCase))
-    return suite
-
-
-if __name__ == '__main__':
-    test.test_support.run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_text_file.py b/lib/python2.7/distutils/tests/test_text_file.py
deleted file mode 100644
index ce19cd4..0000000
--- a/lib/python2.7/distutils/tests/test_text_file.py
+++ /dev/null
@@ -1,107 +0,0 @@
-"""Tests for distutils.text_file."""
-import os
-import unittest
-from distutils.text_file import TextFile
-from distutils.tests import support
-from test.test_support import run_unittest
-
-TEST_DATA = """# test file
-
-line 3 \\
-# intervening comment
-  continues on next line
-"""
-
-class TextFileTestCase(support.TempdirManager, unittest.TestCase):
-
-    def test_class(self):
-        # old tests moved from text_file.__main__
-        # so they are really called by the buildbots
-
-        # result 1: no fancy options
-        result1 = ['# test file\n', '\n', 'line 3 \\\n',
-                   '# intervening comment\n',
-                   '  continues on next line\n']
-
-        # result 2: just strip comments
-        result2 = ["\n",
-                   "line 3 \\\n",
-                   "  continues on next line\n"]
-
-        # result 3: just strip blank lines
-        result3 = ["# test file\n",
-                   "line 3 \\\n",
-                   "# intervening comment\n",
-                   "  continues on next line\n"]
-
-        # result 4: default, strip comments, blank lines,
-        # and trailing whitespace
-        result4 = ["line 3 \\",
-                   "  continues on next line"]
-
-        # result 5: strip comments and blanks, plus join lines (but don't
-        # "collapse" joined lines
-        result5 = ["line 3   continues on next line"]
-
-        # result 6: strip comments and blanks, plus join lines (and
-        # "collapse" joined lines
-        result6 = ["line 3 continues on next line"]
-
-        def test_input(count, description, file, expected_result):
-            result = file.readlines()
-            self.assertEqual(result, expected_result)
-
-        tmpdir = self.mkdtemp()
-        filename = os.path.join(tmpdir, "test.txt")
-        out_file = open(filename, "w")
-        try:
-            out_file.write(TEST_DATA)
-        finally:
-            out_file.close()
-
-        in_file = TextFile(filename, strip_comments=0, skip_blanks=0,
-                           lstrip_ws=0, rstrip_ws=0)
-        try:
-            test_input(1, "no processing", in_file, result1)
-        finally:
-            in_file.close()
-
-        in_file = TextFile(filename, strip_comments=1, skip_blanks=0,
-                           lstrip_ws=0, rstrip_ws=0)
-        try:
-            test_input(2, "strip comments", in_file, result2)
-        finally:
-            in_file.close()
-
-        in_file = TextFile(filename, strip_comments=0, skip_blanks=1,
-                           lstrip_ws=0, rstrip_ws=0)
-        try:
-            test_input(3, "strip blanks", in_file, result3)
-        finally:
-            in_file.close()
-
-        in_file = TextFile(filename)
-        try:
-            test_input(4, "default processing", in_file, result4)
-        finally:
-            in_file.close()
-
-        in_file = TextFile(filename, strip_comments=1, skip_blanks=1,
-                           join_lines=1, rstrip_ws=1)
-        try:
-            test_input(5, "join lines without collapsing", in_file, result5)
-        finally:
-            in_file.close()
-
-        in_file = TextFile(filename, strip_comments=1, skip_blanks=1,
-                           join_lines=1, rstrip_ws=1, collapse_join=1)
-        try:
-            test_input(6, "join lines with collapsing", in_file, result6)
-        finally:
-            in_file.close()
-
-def test_suite():
-    return unittest.makeSuite(TextFileTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_unixccompiler.py b/lib/python2.7/distutils/tests/test_unixccompiler.py
deleted file mode 100644
index 3ff92f8..0000000
--- a/lib/python2.7/distutils/tests/test_unixccompiler.py
+++ /dev/null
@@ -1,130 +0,0 @@
-"""Tests for distutils.unixccompiler."""
-import sys
-import unittest
-from test.test_support import run_unittest
-
-from distutils import sysconfig
-from distutils.unixccompiler import UnixCCompiler
-
-class UnixCCompilerTestCase(unittest.TestCase):
-
-    def setUp(self):
-        self._backup_platform = sys.platform
-        self._backup_get_config_var = sysconfig.get_config_var
-        class CompilerWrapper(UnixCCompiler):
-            def rpath_foo(self):
-                return self.runtime_library_dir_option('/foo')
-        self.cc = CompilerWrapper()
-
-    def tearDown(self):
-        sys.platform = self._backup_platform
-        sysconfig.get_config_var = self._backup_get_config_var
-
-    def test_runtime_libdir_option(self):
-
-        # not tested under windows
-        if sys.platform == 'win32':
-            return
-
-        # Issue#5900
-        #
-        # Ensure RUNPATH is added to extension modules with RPATH if
-        # GNU ld is used
-
-        # darwin
-        sys.platform = 'darwin'
-        self.assertEqual(self.cc.rpath_foo(), '-L/foo')
-
-        # hp-ux
-        sys.platform = 'hp-ux'
-        old_gcv = sysconfig.get_config_var
-        def gcv(v):
-            return 'xxx'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), ['+s', '-L/foo'])
-
-        def gcv(v):
-            return 'gcc'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo'])
-
-        def gcv(v):
-            return 'g++'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), ['-Wl,+s', '-L/foo'])
-
-        sysconfig.get_config_var = old_gcv
-
-        # irix646
-        sys.platform = 'irix646'
-        self.assertEqual(self.cc.rpath_foo(), ['-rpath', '/foo'])
-
-        # osf1V5
-        sys.platform = 'osf1V5'
-        self.assertEqual(self.cc.rpath_foo(), ['-rpath', '/foo'])
-
-        # GCC GNULD
-        sys.platform = 'bar'
-        def gcv(v):
-            if v == 'CC':
-                return 'gcc'
-            elif v == 'GNULD':
-                return 'yes'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')
-
-        # GCC non-GNULD
-        sys.platform = 'bar'
-        def gcv(v):
-            if v == 'CC':
-                return 'gcc'
-            elif v == 'GNULD':
-                return 'no'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')
-
-        # GCC GNULD with fully qualified configuration prefix
-        # see #7617
-        sys.platform = 'bar'
-        def gcv(v):
-            if v == 'CC':
-                return 'x86_64-pc-linux-gnu-gcc-4.4.2'
-            elif v == 'GNULD':
-                return 'yes'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), '-Wl,-R/foo')
-
-
-        # non-GCC GNULD
-        sys.platform = 'bar'
-        def gcv(v):
-            if v == 'CC':
-                return 'cc'
-            elif v == 'GNULD':
-                return 'yes'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), '-R/foo')
-
-        # non-GCC non-GNULD
-        sys.platform = 'bar'
-        def gcv(v):
-            if v == 'CC':
-                return 'cc'
-            elif v == 'GNULD':
-                return 'no'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), '-R/foo')
-
-        # AIX C/C++ linker
-        sys.platform = 'aix'
-        def gcv(v):
-            return 'xxx'
-        sysconfig.get_config_var = gcv
-        self.assertEqual(self.cc.rpath_foo(), '-blibpath:/foo')
-
-
-def test_suite():
-    return unittest.makeSuite(UnixCCompilerTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_upload.py b/lib/python2.7/distutils/tests/test_upload.py
deleted file mode 100644
index 9911199..0000000
--- a/lib/python2.7/distutils/tests/test_upload.py
+++ /dev/null
@@ -1,131 +0,0 @@
-# -*- encoding: utf8 -*-
-"""Tests for distutils.command.upload."""
-import os
-import unittest
-from test.test_support import run_unittest
-
-from distutils.command import upload as upload_mod
-from distutils.command.upload import upload
-from distutils.core import Distribution
-
-from distutils.tests.test_config import PYPIRC, PyPIRCCommandTestCase
-
-PYPIRC_LONG_PASSWORD = """\
-[distutils]
-
-index-servers =
-    server1
-    server2
-
-[server1]
-username:me
-password:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-
-[server2]
-username:meagain
-password: secret
-realm:acme
-repository:http://another.pypi/
-"""
-
-
-PYPIRC_NOPASSWORD = """\
-[distutils]
-
-index-servers =
-    server1
-
-[server1]
-username:me
-"""
-
-class FakeOpen(object):
-
-    def __init__(self, url):
-        self.url = url
-        if not isinstance(url, str):
-            self.req = url
-        else:
-            self.req = None
-        self.msg = 'OK'
-
-    def getcode(self):
-        return 200
-
-
-class uploadTestCase(PyPIRCCommandTestCase):
-
-    def setUp(self):
-        super(uploadTestCase, self).setUp()
-        self.old_open = upload_mod.urlopen
-        upload_mod.urlopen = self._urlopen
-        self.last_open = None
-
-    def tearDown(self):
-        upload_mod.urlopen = self.old_open
-        super(uploadTestCase, self).tearDown()
-
-    def _urlopen(self, url):
-        self.last_open = FakeOpen(url)
-        return self.last_open
-
-    def test_finalize_options(self):
-
-        # new format
-        self.write_file(self.rc, PYPIRC)
-        dist = Distribution()
-        cmd = upload(dist)
-        cmd.finalize_options()
-        for attr, waited in (('username', 'me'), ('password', 'secret'),
-                             ('realm', 'pypi'),
-                             ('repository', 'http://pypi.python.org/pypi')):
-            self.assertEqual(getattr(cmd, attr), waited)
-
-    def test_saved_password(self):
-        # file with no password
-        self.write_file(self.rc, PYPIRC_NOPASSWORD)
-
-        # make sure it passes
-        dist = Distribution()
-        cmd = upload(dist)
-        cmd.finalize_options()
-        self.assertEqual(cmd.password, None)
-
-        # make sure we get it as well, if another command
-        # initialized it at the dist level
-        dist.password = 'xxx'
-        cmd = upload(dist)
-        cmd.finalize_options()
-        self.assertEqual(cmd.password, 'xxx')
-
-    def test_upload(self):
-        tmp = self.mkdtemp()
-        path = os.path.join(tmp, 'xxx')
-        self.write_file(path)
-        command, pyversion, filename = 'xxx', '2.6', path
-        dist_files = [(command, pyversion, filename)]
-        self.write_file(self.rc, PYPIRC_LONG_PASSWORD)
-
-        # lets run it
-        pkg_dir, dist = self.create_dist(dist_files=dist_files, author=u'dédé')
-        cmd = upload(dist)
-        cmd.ensure_finalized()
-        cmd.run()
-
-        # what did we send ?
-        self.assertIn('dédé', self.last_open.req.data)
-        headers = dict(self.last_open.req.headers)
-        self.assertEqual(headers['Content-length'], '2085')
-        self.assertTrue(headers['Content-type'].startswith('multipart/form-data'))
-        self.assertEqual(self.last_open.req.get_method(), 'POST')
-        self.assertEqual(self.last_open.req.get_full_url(),
-                         'http://pypi.python.org/pypi')
-        self.assertTrue('xxx' in self.last_open.req.data)
-        auth = self.last_open.req.headers['Authorization']
-        self.assertFalse('\n' in auth)
-
-def test_suite():
-    return unittest.makeSuite(uploadTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_util.py b/lib/python2.7/distutils/tests/test_util.py
deleted file mode 100644
index 67cd4cc..0000000
--- a/lib/python2.7/distutils/tests/test_util.py
+++ /dev/null
@@ -1,25 +0,0 @@
-"""Tests for distutils.util."""
-import sys
-import unittest
-from test.test_support import run_unittest
-
-from distutils.errors import DistutilsPlatformError, DistutilsByteCompileError
-from distutils.util import byte_compile
-
-class UtilTestCase(unittest.TestCase):
-
-    def test_dont_write_bytecode(self):
-        # makes sure byte_compile raise a DistutilsError
-        # if sys.dont_write_bytecode is True
-        old_dont_write_bytecode = sys.dont_write_bytecode
-        sys.dont_write_bytecode = True
-        try:
-            self.assertRaises(DistutilsByteCompileError, byte_compile, [])
-        finally:
-            sys.dont_write_bytecode = old_dont_write_bytecode
-
-def test_suite():
-    return unittest.makeSuite(UtilTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_version.py b/lib/python2.7/distutils/tests/test_version.py
deleted file mode 100644
index 2189956..0000000
--- a/lib/python2.7/distutils/tests/test_version.py
+++ /dev/null
@@ -1,71 +0,0 @@
-"""Tests for distutils.version."""
-import unittest
-from distutils.version import LooseVersion
-from distutils.version import StrictVersion
-from test.test_support import run_unittest
-
-class VersionTestCase(unittest.TestCase):
-
-    def test_prerelease(self):
-        version = StrictVersion('1.2.3a1')
-        self.assertEqual(version.version, (1, 2, 3))
-        self.assertEqual(version.prerelease, ('a', 1))
-        self.assertEqual(str(version), '1.2.3a1')
-
-        version = StrictVersion('1.2.0')
-        self.assertEqual(str(version), '1.2')
-
-    def test_cmp_strict(self):
-        versions = (('1.5.1', '1.5.2b2', -1),
-                    ('161', '3.10a', ValueError),
-                    ('8.02', '8.02', 0),
-                    ('3.4j', '1996.07.12', ValueError),
-                    ('3.2.pl0', '3.1.1.6', ValueError),
-                    ('2g6', '11g', ValueError),
-                    ('0.9', '2.2', -1),
-                    ('1.2.1', '1.2', 1),
-                    ('1.1', '1.2.2', -1),
-                    ('1.2', '1.1', 1),
-                    ('1.2.1', '1.2.2', -1),
-                    ('1.2.2', '1.2', 1),
-                    ('1.2', '1.2.2', -1),
-                    ('0.4.0', '0.4', 0),
-                    ('1.13++', '5.5.kw', ValueError))
-
-        for v1, v2, wanted in versions:
-            try:
-                res = StrictVersion(v1).__cmp__(StrictVersion(v2))
-            except ValueError:
-                if wanted is ValueError:
-                    continue
-                else:
-                    raise AssertionError(("cmp(%s, %s) "
-                                          "shouldn't raise ValueError")
-                                            % (v1, v2))
-            self.assertEqual(res, wanted,
-                             'cmp(%s, %s) should be %s, got %s' %
-                             (v1, v2, wanted, res))
-
-
-    def test_cmp(self):
-        versions = (('1.5.1', '1.5.2b2', -1),
-                    ('161', '3.10a', 1),
-                    ('8.02', '8.02', 0),
-                    ('3.4j', '1996.07.12', -1),
-                    ('3.2.pl0', '3.1.1.6', 1),
-                    ('2g6', '11g', -1),
-                    ('0.960923', '2.2beta29', -1),
-                    ('1.13++', '5.5.kw', -1))
-
-
-        for v1, v2, wanted in versions:
-            res = LooseVersion(v1).__cmp__(LooseVersion(v2))
-            self.assertEqual(res, wanted,
-                             'cmp(%s, %s) should be %s, got %s' %
-                             (v1, v2, wanted, res))
-
-def test_suite():
-    return unittest.makeSuite(VersionTestCase)
-
-if __name__ == "__main__":
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/test_versionpredicate.py b/lib/python2.7/distutils/tests/test_versionpredicate.py
deleted file mode 100644
index 1d6c8d5..0000000
--- a/lib/python2.7/distutils/tests/test_versionpredicate.py
+++ /dev/null
@@ -1,13 +0,0 @@
-"""Tests harness for distutils.versionpredicate.
-
-"""
-
-import distutils.versionpredicate
-import doctest
-from test.test_support import run_unittest
-
-def test_suite():
-    return doctest.DocTestSuite(distutils.versionpredicate)
-
-if __name__ == '__main__':
-    run_unittest(test_suite())
diff --git a/lib/python2.7/distutils/tests/xxmodule.c b/lib/python2.7/distutils/tests/xxmodule.c
deleted file mode 100644
index 1d9b08a..0000000
--- a/lib/python2.7/distutils/tests/xxmodule.c
+++ /dev/null
@@ -1,379 +0,0 @@
-
-/* Use this file as a template to start implementing a module that
-   also declares object types. All occurrences of 'Xxo' should be changed
-   to something reasonable for your objects. After that, all other
-   occurrences of 'xx' should be changed to something reasonable for your
-   module. If your module is named foo your sourcefile should be named
-   foomodule.c.
-
-   You will probably want to delete all references to 'x_attr' and add
-   your own types of attributes instead.  Maybe you want to name your
-   local variables other than 'self'.  If your object type is needed in
-   other files, you'll have to create a file "foobarobject.h"; see
-   intobject.h for an example. */
-
-/* Xxo objects */
-
-#include "Python.h"
-
-static PyObject *ErrorObject;
-
-typedef struct {
-    PyObject_HEAD
-    PyObject            *x_attr;        /* Attributes dictionary */
-} XxoObject;
-
-static PyTypeObject Xxo_Type;
-
-#define XxoObject_Check(v)      (Py_TYPE(v) == &Xxo_Type)
-
-static XxoObject *
-newXxoObject(PyObject *arg)
-{
-    XxoObject *self;
-    self = PyObject_New(XxoObject, &Xxo_Type);
-    if (self == NULL)
-        return NULL;
-    self->x_attr = NULL;
-    return self;
-}
-
-/* Xxo methods */
-
-static void
-Xxo_dealloc(XxoObject *self)
-{
-    Py_XDECREF(self->x_attr);
-    PyObject_Del(self);
-}
-
-static PyObject *
-Xxo_demo(XxoObject *self, PyObject *args)
-{
-    if (!PyArg_ParseTuple(args, ":demo"))
-        return NULL;
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-static PyMethodDef Xxo_methods[] = {
-    {"demo",            (PyCFunction)Xxo_demo,  METH_VARARGS,
-        PyDoc_STR("demo() -> None")},
-    {NULL,              NULL}           /* sentinel */
-};
-
-static PyObject *
-Xxo_getattr(XxoObject *self, char *name)
-{
-    if (self->x_attr != NULL) {
-        PyObject *v = PyDict_GetItemString(self->x_attr, name);
-        if (v != NULL) {
-            Py_INCREF(v);
-            return v;
-        }
-    }
-    return Py_FindMethod(Xxo_methods, (PyObject *)self, name);
-}
-
-static int
-Xxo_setattr(XxoObject *self, char *name, PyObject *v)
-{
-    if (self->x_attr == NULL) {
-        self->x_attr = PyDict_New();
-        if (self->x_attr == NULL)
-            return -1;
-    }
-    if (v == NULL) {
-        int rv = PyDict_DelItemString(self->x_attr, name);
-        if (rv < 0)
-            PyErr_SetString(PyExc_AttributeError,
-                "delete non-existing Xxo attribute");
-        return rv;
-    }
-    else
-        return PyDict_SetItemString(self->x_attr, name, v);
-}
-
-static PyTypeObject Xxo_Type = {
-    /* The ob_type field must be initialized in the module init function
-     * to be portable to Windows without using C++. */
-    PyVarObject_HEAD_INIT(NULL, 0)
-    "xxmodule.Xxo",             /*tp_name*/
-    sizeof(XxoObject),          /*tp_basicsize*/
-    0,                          /*tp_itemsize*/
-    /* methods */
-    (destructor)Xxo_dealloc, /*tp_dealloc*/
-    0,                          /*tp_print*/
-    (getattrfunc)Xxo_getattr, /*tp_getattr*/
-    (setattrfunc)Xxo_setattr, /*tp_setattr*/
-    0,                          /*tp_compare*/
-    0,                          /*tp_repr*/
-    0,                          /*tp_as_number*/
-    0,                          /*tp_as_sequence*/
-    0,                          /*tp_as_mapping*/
-    0,                          /*tp_hash*/
-    0,                      /*tp_call*/
-    0,                      /*tp_str*/
-    0,                      /*tp_getattro*/
-    0,                      /*tp_setattro*/
-    0,                      /*tp_as_buffer*/
-    Py_TPFLAGS_DEFAULT,     /*tp_flags*/
-    0,                      /*tp_doc*/
-    0,                      /*tp_traverse*/
-    0,                      /*tp_clear*/
-    0,                      /*tp_richcompare*/
-    0,                      /*tp_weaklistoffset*/
-    0,                      /*tp_iter*/
-    0,                      /*tp_iternext*/
-    0,                      /*tp_methods*/
-    0,                      /*tp_members*/
-    0,                      /*tp_getset*/
-    0,                      /*tp_base*/
-    0,                      /*tp_dict*/
-    0,                      /*tp_descr_get*/
-    0,                      /*tp_descr_set*/
-    0,                      /*tp_dictoffset*/
-    0,                      /*tp_init*/
-    0,                      /*tp_alloc*/
-    0,                      /*tp_new*/
-    0,                      /*tp_free*/
-    0,                      /*tp_is_gc*/
-};
-/* --------------------------------------------------------------------- */
-
-/* Function of two integers returning integer */
-
-PyDoc_STRVAR(xx_foo_doc,
-"foo(i,j)\n\
-\n\
-Return the sum of i and j.");
-
-static PyObject *
-xx_foo(PyObject *self, PyObject *args)
-{
-    long i, j;
-    long res;
-    if (!PyArg_ParseTuple(args, "ll:foo", &i, &j))
-        return NULL;
-    res = i+j; /* XXX Do something here */
-    return PyInt_FromLong(res);
-}
-
-
-/* Function of no arguments returning new Xxo object */
-
-static PyObject *
-xx_new(PyObject *self, PyObject *args)
-{
-    XxoObject *rv;
-
-    if (!PyArg_ParseTuple(args, ":new"))
-        return NULL;
-    rv = newXxoObject(args);
-    if (rv == NULL)
-        return NULL;
-    return (PyObject *)rv;
-}
-
-/* Example with subtle bug from extensions manual ("Thin Ice"). */
-
-static PyObject *
-xx_bug(PyObject *self, PyObject *args)
-{
-    PyObject *list, *item;
-
-    if (!PyArg_ParseTuple(args, "O:bug", &list))
-        return NULL;
-
-    item = PyList_GetItem(list, 0);
-    /* Py_INCREF(item); */
-    PyList_SetItem(list, 1, PyInt_FromLong(0L));
-    PyObject_Print(item, stdout, 0);
-    printf("\n");
-    /* Py_DECREF(item); */
-
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-/* Test bad format character */
-
-static PyObject *
-xx_roj(PyObject *self, PyObject *args)
-{
-    PyObject *a;
-    long b;
-    if (!PyArg_ParseTuple(args, "O#:roj", &a, &b))
-        return NULL;
-    Py_INCREF(Py_None);
-    return Py_None;
-}
-
-
-/* ---------- */
-
-static PyTypeObject Str_Type = {
-    /* The ob_type field must be initialized in the module init function
-     * to be portable to Windows without using C++. */
-    PyVarObject_HEAD_INIT(NULL, 0)
-    "xxmodule.Str",             /*tp_name*/
-    0,                          /*tp_basicsize*/
-    0,                          /*tp_itemsize*/
-    /* methods */
-    0,                          /*tp_dealloc*/
-    0,                          /*tp_print*/
-    0,                          /*tp_getattr*/
-    0,                          /*tp_setattr*/
-    0,                          /*tp_compare*/
-    0,                          /*tp_repr*/
-    0,                          /*tp_as_number*/
-    0,                          /*tp_as_sequence*/
-    0,                          /*tp_as_mapping*/
-    0,                          /*tp_hash*/
-    0,                          /*tp_call*/
-    0,                          /*tp_str*/
-    0,                          /*tp_getattro*/
-    0,                          /*tp_setattro*/
-    0,                          /*tp_as_buffer*/
-    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
-    0,                          /*tp_doc*/
-    0,                          /*tp_traverse*/
-    0,                          /*tp_clear*/
-    0,                          /*tp_richcompare*/
-    0,                          /*tp_weaklistoffset*/
-    0,                          /*tp_iter*/
-    0,                          /*tp_iternext*/
-    0,                          /*tp_methods*/
-    0,                          /*tp_members*/
-    0,                          /*tp_getset*/
-    0, /* see initxx */         /*tp_base*/
-    0,                          /*tp_dict*/
-    0,                          /*tp_descr_get*/
-    0,                          /*tp_descr_set*/
-    0,                          /*tp_dictoffset*/
-    0,                          /*tp_init*/
-    0,                          /*tp_alloc*/
-    0,                          /*tp_new*/
-    0,                          /*tp_free*/
-    0,                          /*tp_is_gc*/
-};
-
-/* ---------- */
-
-static PyObject *
-null_richcompare(PyObject *self, PyObject *other, int op)
-{
-    Py_INCREF(Py_NotImplemented);
-    return Py_NotImplemented;
-}
-
-static PyTypeObject Null_Type = {
-    /* The ob_type field must be initialized in the module init function
-     * to be portable to Windows without using C++. */
-    PyVarObject_HEAD_INIT(NULL, 0)
-    "xxmodule.Null",            /*tp_name*/
-    0,                          /*tp_basicsize*/
-    0,                          /*tp_itemsize*/
-    /* methods */
-    0,                          /*tp_dealloc*/
-    0,                          /*tp_print*/
-    0,                          /*tp_getattr*/
-    0,                          /*tp_setattr*/
-    0,                          /*tp_compare*/
-    0,                          /*tp_repr*/
-    0,                          /*tp_as_number*/
-    0,                          /*tp_as_sequence*/
-    0,                          /*tp_as_mapping*/
-    0,                          /*tp_hash*/
-    0,                          /*tp_call*/
-    0,                          /*tp_str*/
-    0,                          /*tp_getattro*/
-    0,                          /*tp_setattro*/
-    0,                          /*tp_as_buffer*/
-    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
-    0,                          /*tp_doc*/
-    0,                          /*tp_traverse*/
-    0,                          /*tp_clear*/
-    null_richcompare,           /*tp_richcompare*/
-    0,                          /*tp_weaklistoffset*/
-    0,                          /*tp_iter*/
-    0,                          /*tp_iternext*/
-    0,                          /*tp_methods*/
-    0,                          /*tp_members*/
-    0,                          /*tp_getset*/
-    0, /* see initxx */         /*tp_base*/
-    0,                          /*tp_dict*/
-    0,                          /*tp_descr_get*/
-    0,                          /*tp_descr_set*/
-    0,                          /*tp_dictoffset*/
-    0,                          /*tp_init*/
-    0,                          /*tp_alloc*/
-    0, /* see initxx */         /*tp_new*/
-    0,                          /*tp_free*/
-    0,                          /*tp_is_gc*/
-};
-
-
-/* ---------- */
-
-
-/* List of functions defined in the module */
-
-static PyMethodDef xx_methods[] = {
-    {"roj",             xx_roj,         METH_VARARGS,
-        PyDoc_STR("roj(a,b) -> None")},
-    {"foo",             xx_foo,         METH_VARARGS,
-        xx_foo_doc},
-    {"new",             xx_new,         METH_VARARGS,
-        PyDoc_STR("new() -> new Xx object")},
-    {"bug",             xx_bug,         METH_VARARGS,
-        PyDoc_STR("bug(o) -> None")},
-    {NULL,              NULL}           /* sentinel */
-};
-
-PyDoc_STRVAR(module_doc,
-"This is a template module just for instruction.");
-
-/* Initialization function for the module (*must* be called initxx) */
-
-PyMODINIT_FUNC
-initxx(void)
-{
-    PyObject *m;
-
-    /* Due to cross platform compiler issues the slots must be filled
-     * here. It's required for portability to Windows without requiring
-     * C++. */
-    Null_Type.tp_base = &PyBaseObject_Type;
-    Null_Type.tp_new = PyType_GenericNew;
-    Str_Type.tp_base = &PyUnicode_Type;
-
-    /* Finalize the type object including setting type of the new type
-     * object; doing it here is required for portability, too. */
-    if (PyType_Ready(&Xxo_Type) < 0)
-        return;
-
-    /* Create the module and add the functions */
-    m = Py_InitModule3("xx", xx_methods, module_doc);
-    if (m == NULL)
-        return;
-
-    /* Add some symbolic constants to the module */
-    if (ErrorObject == NULL) {
-        ErrorObject = PyErr_NewException("xx.error", NULL, NULL);
-        if (ErrorObject == NULL)
-            return;
-    }
-    Py_INCREF(ErrorObject);
-    PyModule_AddObject(m, "error", ErrorObject);
-
-    /* Add Str */
-    if (PyType_Ready(&Str_Type) < 0)
-        return;
-    PyModule_AddObject(m, "Str", (PyObject *)&Str_Type);
-
-    /* Add Null */
-    if (PyType_Ready(&Null_Type) < 0)
-        return;
-    PyModule_AddObject(m, "Null", (PyObject *)&Null_Type);
-}
diff --git a/lib/python2.7/distutils/unixccompiler.py b/lib/python2.7/distutils/unixccompiler.py
index d30ab4f..9fbbb31 100644
--- a/lib/python2.7/distutils/unixccompiler.py
+++ b/lib/python2.7/distutils/unixccompiler.py
@@ -172,6 +172,16 @@
                 ld_args[:0] = extra_preargs
             if extra_postargs:
                 ld_args.extend(extra_postargs)
+
+            # NDK HACK:
+            # Avoid dependency on libgcc dll on mingw. -static-libgcc works
+            # while compiling for the host and windows, but not darwin. We
+            # can't easily tell whether we're compiling for windows or the
+            # host, so rely on the fact that we don't cross-compile darwin
+            # binaries on linux.
+            if sys.platform[:6] != "darwin":
+                ld_args.extend(["-static-libgcc"])
+
             self.mkpath(os.path.dirname(output_filename))
             try:
                 if target_desc == CCompiler.EXECUTABLE:
diff --git a/lib/python2.7/json/tests/__init__.py b/lib/python2.7/json/tests/__init__.py
deleted file mode 100644
index 90cb2b7..0000000
--- a/lib/python2.7/json/tests/__init__.py
+++ /dev/null
@@ -1,73 +0,0 @@
-import os
-import sys
-import json
-import doctest
-import unittest
-
-from test import test_support
-
-# import json with and without accelerations
-cjson = test_support.import_fresh_module('json', fresh=['_json'])
-pyjson = test_support.import_fresh_module('json', blocked=['_json'])
-
-# create two base classes that will be used by the other tests
-class PyTest(unittest.TestCase):
-    json = pyjson
-    loads = staticmethod(pyjson.loads)
-    dumps = staticmethod(pyjson.dumps)
-
-@unittest.skipUnless(cjson, 'requires _json')
-class CTest(unittest.TestCase):
-    if cjson is not None:
-        json = cjson
-        loads = staticmethod(cjson.loads)
-        dumps = staticmethod(cjson.dumps)
-
-# test PyTest and CTest checking if the functions come from the right module
-class TestPyTest(PyTest):
-    def test_pyjson(self):
-        self.assertEqual(self.json.scanner.make_scanner.__module__,
-                         'json.scanner')
-        self.assertEqual(self.json.decoder.scanstring.__module__,
-                         'json.decoder')
-        self.assertEqual(self.json.encoder.encode_basestring_ascii.__module__,
-                         'json.encoder')
-
-class TestCTest(CTest):
-    def test_cjson(self):
-        self.assertEqual(self.json.scanner.make_scanner.__module__, '_json')
-        self.assertEqual(self.json.decoder.scanstring.__module__, '_json')
-        self.assertEqual(self.json.encoder.c_make_encoder.__module__, '_json')
-        self.assertEqual(self.json.encoder.encode_basestring_ascii.__module__,
-                         '_json')
-
-
-here = os.path.dirname(__file__)
-
-def test_suite():
-    suite = additional_tests()
-    loader = unittest.TestLoader()
-    for fn in os.listdir(here):
-        if fn.startswith("test") and fn.endswith(".py"):
-            modname = "json.tests." + fn[:-3]
-            __import__(modname)
-            module = sys.modules[modname]
-            suite.addTests(loader.loadTestsFromModule(module))
-    return suite
-
-def additional_tests():
-    suite = unittest.TestSuite()
-    for mod in (json, json.encoder, json.decoder):
-        suite.addTest(doctest.DocTestSuite(mod))
-    suite.addTest(TestPyTest('test_pyjson'))
-    suite.addTest(TestCTest('test_cjson'))
-    return suite
-
-def main():
-    suite = test_suite()
-    runner = unittest.TextTestRunner()
-    runner.run(suite)
-
-if __name__ == '__main__':
-    sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
-    main()
diff --git a/lib/python2.7/json/tests/test_check_circular.py b/lib/python2.7/json/tests/test_check_circular.py
deleted file mode 100644
index 3ad3d24..0000000
--- a/lib/python2.7/json/tests/test_check_circular.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-def default_iterable(obj):
-    return list(obj)
-
-class TestCheckCircular(object):
-    def test_circular_dict(self):
-        dct = {}
-        dct['a'] = dct
-        self.assertRaises(ValueError, self.dumps, dct)
-
-    def test_circular_list(self):
-        lst = []
-        lst.append(lst)
-        self.assertRaises(ValueError, self.dumps, lst)
-
-    def test_circular_composite(self):
-        dct2 = {}
-        dct2['a'] = []
-        dct2['a'].append(dct2)
-        self.assertRaises(ValueError, self.dumps, dct2)
-
-    def test_circular_default(self):
-        self.dumps([set()], default=default_iterable)
-        self.assertRaises(TypeError, self.dumps, [set()])
-
-    def test_circular_off_default(self):
-        self.dumps([set()], default=default_iterable, check_circular=False)
-        self.assertRaises(TypeError, self.dumps, [set()], check_circular=False)
-
-
-class TestPyCheckCircular(TestCheckCircular, PyTest): pass
-class TestCCheckCircular(TestCheckCircular, CTest): pass
diff --git a/lib/python2.7/json/tests/test_decode.py b/lib/python2.7/json/tests/test_decode.py
deleted file mode 100644
index ffd1aa4..0000000
--- a/lib/python2.7/json/tests/test_decode.py
+++ /dev/null
@@ -1,64 +0,0 @@
-import decimal
-from StringIO import StringIO
-from collections import OrderedDict
-from json.tests import PyTest, CTest
-
-
-class TestDecode(object):
-    def test_decimal(self):
-        rval = self.loads('1.1', parse_float=decimal.Decimal)
-        self.assertTrue(isinstance(rval, decimal.Decimal))
-        self.assertEqual(rval, decimal.Decimal('1.1'))
-
-    def test_float(self):
-        rval = self.loads('1', parse_int=float)
-        self.assertTrue(isinstance(rval, float))
-        self.assertEqual(rval, 1.0)
-
-    def test_decoder_optimizations(self):
-        # Several optimizations were made that skip over calls to
-        # the whitespace regex, so this test is designed to try and
-        # exercise the uncommon cases. The array cases are already covered.
-        rval = self.loads('{   "key"    :    "value"    ,  "k":"v"    }')
-        self.assertEqual(rval, {"key":"value", "k":"v"})
-
-    def test_empty_objects(self):
-        self.assertEqual(self.loads('{}'), {})
-        self.assertEqual(self.loads('[]'), [])
-        self.assertEqual(self.loads('""'), u"")
-        self.assertIsInstance(self.loads('""'), unicode)
-
-    def test_object_pairs_hook(self):
-        s = '{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}'
-        p = [("xkd", 1), ("kcw", 2), ("art", 3), ("hxm", 4),
-             ("qrt", 5), ("pad", 6), ("hoy", 7)]
-        self.assertEqual(self.loads(s), eval(s))
-        self.assertEqual(self.loads(s, object_pairs_hook=lambda x: x), p)
-        self.assertEqual(self.json.load(StringIO(s),
-                                        object_pairs_hook=lambda x: x), p)
-        od = self.loads(s, object_pairs_hook=OrderedDict)
-        self.assertEqual(od, OrderedDict(p))
-        self.assertEqual(type(od), OrderedDict)
-        # the object_pairs_hook takes priority over the object_hook
-        self.assertEqual(self.loads(s, object_pairs_hook=OrderedDict,
-                                    object_hook=lambda x: None),
-                         OrderedDict(p))
-        # check that empty objects literals work (see #17368)
-        self.assertEqual(self.loads('{}', object_pairs_hook=OrderedDict),
-                         OrderedDict())
-        self.assertEqual(self.loads('{"empty": {}}',
-                                    object_pairs_hook=OrderedDict),
-                         OrderedDict([('empty', OrderedDict())]))
-
-    def test_extra_data(self):
-        s = '[1, 2, 3]5'
-        msg = 'Extra data'
-        self.assertRaisesRegexp(ValueError, msg, self.loads, s)
-
-    def test_invalid_escape(self):
-        s = '["abc\\y"]'
-        msg = 'escape'
-        self.assertRaisesRegexp(ValueError, msg, self.loads, s)
-
-class TestPyDecode(TestDecode, PyTest): pass
-class TestCDecode(TestDecode, CTest): pass
diff --git a/lib/python2.7/json/tests/test_default.py b/lib/python2.7/json/tests/test_default.py
deleted file mode 100644
index c2a07f6..0000000
--- a/lib/python2.7/json/tests/test_default.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-class TestDefault(object):
-    def test_default(self):
-        self.assertEqual(
-            self.dumps(type, default=repr),
-            self.dumps(repr(type)))
-
-
-class TestPyDefault(TestDefault, PyTest): pass
-class TestCDefault(TestDefault, CTest): pass
diff --git a/lib/python2.7/json/tests/test_dump.py b/lib/python2.7/json/tests/test_dump.py
deleted file mode 100644
index cd92569..0000000
--- a/lib/python2.7/json/tests/test_dump.py
+++ /dev/null
@@ -1,32 +0,0 @@
-from cStringIO import StringIO
-from json.tests import PyTest, CTest
-
-
-class TestDump(object):
-    def test_dump(self):
-        sio = StringIO()
-        self.json.dump({}, sio)
-        self.assertEqual(sio.getvalue(), '{}')
-
-    def test_dumps(self):
-        self.assertEqual(self.dumps({}), '{}')
-
-    def test_encode_truefalse(self):
-        self.assertEqual(self.dumps(
-                 {True: False, False: True}, sort_keys=True),
-                 '{"false": true, "true": false}')
-        self.assertEqual(self.dumps(
-                {2: 3.0, 4.0: 5L, False: 1, 6L: True}, sort_keys=True),
-                '{"false": 1, "2": 3.0, "4.0": 5, "6": true}')
-
-    # Issue 16228: Crash on encoding resized list
-    def test_encode_mutated(self):
-        a = [object()] * 10
-        def crasher(obj):
-            del a[-1]
-        self.assertEqual(self.dumps(a, default=crasher),
-                 '[null, null, null, null, null]')
-
-
-class TestPyDump(TestDump, PyTest): pass
-class TestCDump(TestDump, CTest): pass
diff --git a/lib/python2.7/json/tests/test_encode_basestring_ascii.py b/lib/python2.7/json/tests/test_encode_basestring_ascii.py
deleted file mode 100644
index 9f9d5a5..0000000
--- a/lib/python2.7/json/tests/test_encode_basestring_ascii.py
+++ /dev/null
@@ -1,41 +0,0 @@
-from collections import OrderedDict
-from json.tests import PyTest, CTest
-
-
-CASES = [
-    (u'/\\"\ucafe\ubabe\uab98\ufcde\ubcda\uef4a\x08\x0c\n\r\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?', '"/\\\\\\"\\ucafe\\ubabe\\uab98\\ufcde\\ubcda\\uef4a\\b\\f\\n\\r\\t`1~!@#$%^&*()_+-=[]{}|;:\',./<>?"'),
-    (u'\u0123\u4567\u89ab\ucdef\uabcd\uef4a', '"\\u0123\\u4567\\u89ab\\ucdef\\uabcd\\uef4a"'),
-    (u'controls', '"controls"'),
-    (u'\x08\x0c\n\r\t', '"\\b\\f\\n\\r\\t"'),
-    (u'{"object with 1 member":["array with 1 element"]}', '"{\\"object with 1 member\\":[\\"array with 1 element\\"]}"'),
-    (u' s p a c e d ', '" s p a c e d "'),
-    (u'\U0001d120', '"\\ud834\\udd20"'),
-    (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'),
-    ('\xce\xb1\xce\xa9', '"\\u03b1\\u03a9"'),
-    (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'),
-    ('\xce\xb1\xce\xa9', '"\\u03b1\\u03a9"'),
-    (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'),
-    (u'\u03b1\u03a9', '"\\u03b1\\u03a9"'),
-    (u"`1~!@#$%^&*()_+-={':[,]}|;.</>?", '"`1~!@#$%^&*()_+-={\':[,]}|;.</>?"'),
-    (u'\x08\x0c\n\r\t', '"\\b\\f\\n\\r\\t"'),
-    (u'\u0123\u4567\u89ab\ucdef\uabcd\uef4a', '"\\u0123\\u4567\\u89ab\\ucdef\\uabcd\\uef4a"'),
-]
-
-class TestEncodeBasestringAscii(object):
-    def test_encode_basestring_ascii(self):
-        fname = self.json.encoder.encode_basestring_ascii.__name__
-        for input_string, expect in CASES:
-            result = self.json.encoder.encode_basestring_ascii(input_string)
-            self.assertEqual(result, expect,
-                '{0!r} != {1!r} for {2}({3!r})'.format(
-                    result, expect, fname, input_string))
-
-    def test_ordered_dict(self):
-        # See issue 6105
-        items = [('one', 1), ('two', 2), ('three', 3), ('four', 4), ('five', 5)]
-        s = self.dumps(OrderedDict(items))
-        self.assertEqual(s, '{"one": 1, "two": 2, "three": 3, "four": 4, "five": 5}')
-
-
-class TestPyEncodeBasestringAscii(TestEncodeBasestringAscii, PyTest): pass
-class TestCEncodeBasestringAscii(TestEncodeBasestringAscii, CTest): pass
diff --git a/lib/python2.7/json/tests/test_fail.py b/lib/python2.7/json/tests/test_fail.py
deleted file mode 100644
index e31b379..0000000
--- a/lib/python2.7/json/tests/test_fail.py
+++ /dev/null
@@ -1,105 +0,0 @@
-from json.tests import PyTest, CTest
-
-# 2007-10-05
-JSONDOCS = [
-    # http://json.org/JSON_checker/test/fail1.json
-    '"A JSON payload should be an object or array, not a string."',
-    # http://json.org/JSON_checker/test/fail2.json
-    '["Unclosed array"',
-    # http://json.org/JSON_checker/test/fail3.json
-    '{unquoted_key: "keys must be quoted"}',
-    # http://json.org/JSON_checker/test/fail4.json
-    '["extra comma",]',
-    # http://json.org/JSON_checker/test/fail5.json
-    '["double extra comma",,]',
-    # http://json.org/JSON_checker/test/fail6.json
-    '[   , "<-- missing value"]',
-    # http://json.org/JSON_checker/test/fail7.json
-    '["Comma after the close"],',
-    # http://json.org/JSON_checker/test/fail8.json
-    '["Extra close"]]',
-    # http://json.org/JSON_checker/test/fail9.json
-    '{"Extra comma": true,}',
-    # http://json.org/JSON_checker/test/fail10.json
-    '{"Extra value after close": true} "misplaced quoted value"',
-    # http://json.org/JSON_checker/test/fail11.json
-    '{"Illegal expression": 1 + 2}',
-    # http://json.org/JSON_checker/test/fail12.json
-    '{"Illegal invocation": alert()}',
-    # http://json.org/JSON_checker/test/fail13.json
-    '{"Numbers cannot have leading zeroes": 013}',
-    # http://json.org/JSON_checker/test/fail14.json
-    '{"Numbers cannot be hex": 0x14}',
-    # http://json.org/JSON_checker/test/fail15.json
-    '["Illegal backslash escape: \\x15"]',
-    # http://json.org/JSON_checker/test/fail16.json
-    '[\\naked]',
-    # http://json.org/JSON_checker/test/fail17.json
-    '["Illegal backslash escape: \\017"]',
-    # http://json.org/JSON_checker/test/fail18.json
-    '[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]',
-    # http://json.org/JSON_checker/test/fail19.json
-    '{"Missing colon" null}',
-    # http://json.org/JSON_checker/test/fail20.json
-    '{"Double colon":: null}',
-    # http://json.org/JSON_checker/test/fail21.json
-    '{"Comma instead of colon", null}',
-    # http://json.org/JSON_checker/test/fail22.json
-    '["Colon instead of comma": false]',
-    # http://json.org/JSON_checker/test/fail23.json
-    '["Bad value", truth]',
-    # http://json.org/JSON_checker/test/fail24.json
-    "['single quote']",
-    # http://json.org/JSON_checker/test/fail25.json
-    '["\ttab\tcharacter\tin\tstring\t"]',
-    # http://json.org/JSON_checker/test/fail26.json
-    '["tab\\   character\\   in\\  string\\  "]',
-    # http://json.org/JSON_checker/test/fail27.json
-    '["line\nbreak"]',
-    # http://json.org/JSON_checker/test/fail28.json
-    '["line\\\nbreak"]',
-    # http://json.org/JSON_checker/test/fail29.json
-    '[0e]',
-    # http://json.org/JSON_checker/test/fail30.json
-    '[0e+]',
-    # http://json.org/JSON_checker/test/fail31.json
-    '[0e+-1]',
-    # http://json.org/JSON_checker/test/fail32.json
-    '{"Comma instead if closing brace": true,',
-    # http://json.org/JSON_checker/test/fail33.json
-    '["mismatch"}',
-    # http://code.google.com/p/simplejson/issues/detail?id=3
-    u'["A\u001FZ control characters in string"]',
-]
-
-SKIPS = {
-    1: "why not have a string payload?",
-    18: "spec doesn't specify any nesting limitations",
-}
-
-class TestFail(object):
-    def test_failures(self):
-        for idx, doc in enumerate(JSONDOCS):
-            idx = idx + 1
-            if idx in SKIPS:
-                self.loads(doc)
-                continue
-            try:
-                self.loads(doc)
-            except ValueError:
-                pass
-            else:
-                self.fail("Expected failure for fail{0}.json: {1!r}".format(idx, doc))
-
-    def test_non_string_keys_dict(self):
-        data = {'a' : 1, (1, 2) : 2}
-
-        #This is for c encoder
-        self.assertRaises(TypeError, self.dumps, data)
-
-        #This is for python encoder
-        self.assertRaises(TypeError, self.dumps, data, indent=True)
-
-
-class TestPyFail(TestFail, PyTest): pass
-class TestCFail(TestFail, CTest): pass
diff --git a/lib/python2.7/json/tests/test_float.py b/lib/python2.7/json/tests/test_float.py
deleted file mode 100644
index 049f9ae..0000000
--- a/lib/python2.7/json/tests/test_float.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import math
-from json.tests import PyTest, CTest
-
-
-class TestFloat(object):
-    def test_floats(self):
-        for num in [1617161771.7650001, math.pi, math.pi**100,
-                    math.pi**-100, 3.1]:
-            self.assertEqual(float(self.dumps(num)), num)
-            self.assertEqual(self.loads(self.dumps(num)), num)
-            self.assertEqual(self.loads(unicode(self.dumps(num))), num)
-
-    def test_ints(self):
-        for num in [1, 1L, 1<<32, 1<<64]:
-            self.assertEqual(self.dumps(num), str(num))
-            self.assertEqual(int(self.dumps(num)), num)
-            self.assertEqual(self.loads(self.dumps(num)), num)
-            self.assertEqual(self.loads(unicode(self.dumps(num))), num)
-
-    def test_out_of_range(self):
-        self.assertEqual(self.loads('[23456789012E666]'), [float('inf')])
-        self.assertEqual(self.loads('[-23456789012E666]'), [float('-inf')])
-
-    def test_allow_nan(self):
-        for val in (float('inf'), float('-inf'), float('nan')):
-            out = self.dumps([val])
-            if val == val:  # inf
-                self.assertEqual(self.loads(out), [val])
-            else:  # nan
-                res = self.loads(out)
-                self.assertEqual(len(res), 1)
-                self.assertNotEqual(res[0], res[0])
-            self.assertRaises(ValueError, self.dumps, [val], allow_nan=False)
-
-
-class TestPyFloat(TestFloat, PyTest): pass
-class TestCFloat(TestFloat, CTest): pass
diff --git a/lib/python2.7/json/tests/test_indent.py b/lib/python2.7/json/tests/test_indent.py
deleted file mode 100644
index 9b18761..0000000
--- a/lib/python2.7/json/tests/test_indent.py
+++ /dev/null
@@ -1,60 +0,0 @@
-import textwrap
-from StringIO import StringIO
-from json.tests import PyTest, CTest
-
-
-class TestIndent(object):
-    def test_indent(self):
-        h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth',
-             {'nifty': 87}, {'field': 'yes', 'morefield': False} ]
-
-        expect = textwrap.dedent("""\
-        [
-          [
-            "blorpie"
-          ],
-          [
-            "whoops"
-          ],
-          [],
-          "d-shtaeou",
-          "d-nthiouh",
-          "i-vhbjkhnth",
-          {
-            "nifty": 87
-          },
-          {
-            "field": "yes",
-            "morefield": false
-          }
-        ]""")
-
-
-        d1 = self.dumps(h)
-        d2 = self.dumps(h, indent=2, sort_keys=True, separators=(',', ': '))
-
-        h1 = self.loads(d1)
-        h2 = self.loads(d2)
-
-        self.assertEqual(h1, h)
-        self.assertEqual(h2, h)
-        self.assertEqual(d2, expect)
-
-    def test_indent0(self):
-        h = {3: 1}
-        def check(indent, expected):
-            d1 = self.dumps(h, indent=indent)
-            self.assertEqual(d1, expected)
-
-            sio = StringIO()
-            self.json.dump(h, sio, indent=indent)
-            self.assertEqual(sio.getvalue(), expected)
-
-        # indent=0 should emit newlines
-        check(0, '{\n"3": 1\n}')
-        # indent=None is more compact
-        check(None, '{"3": 1}')
-
-
-class TestPyIndent(TestIndent, PyTest): pass
-class TestCIndent(TestIndent, CTest): pass
diff --git a/lib/python2.7/json/tests/test_pass1.py b/lib/python2.7/json/tests/test_pass1.py
deleted file mode 100644
index df8259b..0000000
--- a/lib/python2.7/json/tests/test_pass1.py
+++ /dev/null
@@ -1,75 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-# from http://json.org/JSON_checker/test/pass1.json
-JSON = r'''
-[
-    "JSON Test Pattern pass1",
-    {"object with 1 member":["array with 1 element"]},
-    {},
-    [],
-    -42,
-    true,
-    false,
-    null,
-    {
-        "integer": 1234567890,
-        "real": -9876.543210,
-        "e": 0.123456789e-12,
-        "E": 1.234567890E+34,
-        "":  23456789012E66,
-        "zero": 0,
-        "one": 1,
-        "space": " ",
-        "quote": "\"",
-        "backslash": "\\",
-        "controls": "\b\f\n\r\t",
-        "slash": "/ & \/",
-        "alpha": "abcdefghijklmnopqrstuvwyz",
-        "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
-        "digit": "0123456789",
-        "0123456789": "digit",
-        "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
-        "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
-        "true": true,
-        "false": false,
-        "null": null,
-        "array":[  ],
-        "object":{  },
-        "address": "50 St. James Street",
-        "url": "http://www.JSON.org/",
-        "comment": "// /* <!-- --",
-        "# -- --> */": " ",
-        " s p a c e d " :[1,2 , 3
-
-,
-
-4 , 5        ,          6           ,7        ],"compact":[1,2,3,4,5,6,7],
-        "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
-        "quotes": "&#34; \u0022 %22 0x22 034 &#x22;",
-        "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
-: "A key can be any string"
-    },
-    0.5 ,98.6
-,
-99.44
-,
-
-1066,
-1e1,
-0.1e1,
-1e-1,
-1e00,2e+00,2e-00
-,"rosebud"]
-'''
-
-class TestPass1(object):
-    def test_parse(self):
-        # test in/out equivalence and parsing
-        res = self.loads(JSON)
-        out = self.dumps(res)
-        self.assertEqual(res, self.loads(out))
-
-
-class TestPyPass1(TestPass1, PyTest): pass
-class TestCPass1(TestPass1, CTest): pass
diff --git a/lib/python2.7/json/tests/test_pass2.py b/lib/python2.7/json/tests/test_pass2.py
deleted file mode 100644
index a2bb6d7..0000000
--- a/lib/python2.7/json/tests/test_pass2.py
+++ /dev/null
@@ -1,18 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-# from http://json.org/JSON_checker/test/pass2.json
-JSON = r'''
-[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]
-'''
-
-class TestPass2(object):
-    def test_parse(self):
-        # test in/out equivalence and parsing
-        res = self.loads(JSON)
-        out = self.dumps(res)
-        self.assertEqual(res, self.loads(out))
-
-
-class TestPyPass2(TestPass2, PyTest): pass
-class TestCPass2(TestPass2, CTest): pass
diff --git a/lib/python2.7/json/tests/test_pass3.py b/lib/python2.7/json/tests/test_pass3.py
deleted file mode 100644
index 221f9a0..0000000
--- a/lib/python2.7/json/tests/test_pass3.py
+++ /dev/null
@@ -1,24 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-# from http://json.org/JSON_checker/test/pass3.json
-JSON = r'''
-{
-    "JSON Test Pattern pass3": {
-        "The outermost value": "must be an object or array.",
-        "In this test": "It is an object."
-    }
-}
-'''
-
-
-class TestPass3(object):
-    def test_parse(self):
-        # test in/out equivalence and parsing
-        res = self.loads(JSON)
-        out = self.dumps(res)
-        self.assertEqual(res, self.loads(out))
-
-
-class TestPyPass3(TestPass3, PyTest): pass
-class TestCPass3(TestPass3, CTest): pass
diff --git a/lib/python2.7/json/tests/test_recursion.py b/lib/python2.7/json/tests/test_recursion.py
deleted file mode 100644
index b5221e5..0000000
--- a/lib/python2.7/json/tests/test_recursion.py
+++ /dev/null
@@ -1,108 +0,0 @@
-from json.tests import PyTest, CTest
-
-
-class JSONTestObject:
-    pass
-
-
-class TestRecursion(object):
-    def test_listrecursion(self):
-        x = []
-        x.append(x)
-        try:
-            self.dumps(x)
-        except ValueError:
-            pass
-        else:
-            self.fail("didn't raise ValueError on list recursion")
-        x = []
-        y = [x]
-        x.append(y)
-        try:
-            self.dumps(x)
-        except ValueError:
-            pass
-        else:
-            self.fail("didn't raise ValueError on alternating list recursion")
-        y = []
-        x = [y, y]
-        # ensure that the marker is cleared
-        self.dumps(x)
-
-    def test_dictrecursion(self):
-        x = {}
-        x["test"] = x
-        try:
-            self.dumps(x)
-        except ValueError:
-            pass
-        else:
-            self.fail("didn't raise ValueError on dict recursion")
-        x = {}
-        y = {"a": x, "b": x}
-        # ensure that the marker is cleared
-        self.dumps(x)
-
-    def test_defaultrecursion(self):
-        class RecursiveJSONEncoder(self.json.JSONEncoder):
-            recurse = False
-            def default(self, o):
-                if o is JSONTestObject:
-                    if self.recurse:
-                        return [JSONTestObject]
-                    else:
-                        return 'JSONTestObject'
-                return pyjson.JSONEncoder.default(o)
-
-        enc = RecursiveJSONEncoder()
-        self.assertEqual(enc.encode(JSONTestObject), '"JSONTestObject"')
-        enc.recurse = True
-        try:
-            enc.encode(JSONTestObject)
-        except ValueError:
-            pass
-        else:
-            self.fail("didn't raise ValueError on default recursion")
-
-
-    def test_highly_nested_objects_decoding(self):
-        # test that loading highly-nested objects doesn't segfault when C
-        # accelerations are used. See #12017
-        # str
-        with self.assertRaises(RuntimeError):
-            self.loads('{"a":' * 100000 + '1' + '}' * 100000)
-        with self.assertRaises(RuntimeError):
-            self.loads('{"a":' * 100000 + '[1]' + '}' * 100000)
-        with self.assertRaises(RuntimeError):
-            self.loads('[' * 100000 + '1' + ']' * 100000)
-        # unicode
-        with self.assertRaises(RuntimeError):
-            self.loads(u'{"a":' * 100000 + u'1' + u'}' * 100000)
-        with self.assertRaises(RuntimeError):
-            self.loads(u'{"a":' * 100000 + u'[1]' + u'}' * 100000)
-        with self.assertRaises(RuntimeError):
-            self.loads(u'[' * 100000 + u'1' + u']' * 100000)
-
-    def test_highly_nested_objects_encoding(self):
-        # See #12051
-        l, d = [], {}
-        for x in xrange(100000):
-            l, d = [l], {'k':d}
-        with self.assertRaises(RuntimeError):
-            self.dumps(l)
-        with self.assertRaises(RuntimeError):
-            self.dumps(d)
-
-    def test_endless_recursion(self):
-        # See #12051
-        class EndlessJSONEncoder(self.json.JSONEncoder):
-            def default(self, o):
-                """If check_circular is False, this will keep adding another list."""
-                return [o]
-
-        with self.assertRaises(RuntimeError):
-            EndlessJSONEncoder(check_circular=False).encode(5j)
-
-
-class TestPyRecursion(TestRecursion, PyTest): pass
-class TestCRecursion(TestRecursion, CTest): pass
diff --git a/lib/python2.7/json/tests/test_scanstring.py b/lib/python2.7/json/tests/test_scanstring.py
deleted file mode 100644
index 4fef8cb..0000000
--- a/lib/python2.7/json/tests/test_scanstring.py
+++ /dev/null
@@ -1,109 +0,0 @@
-import sys
-from json.tests import PyTest, CTest
-
-
-class TestScanstring(object):
-    def test_scanstring(self):
-        scanstring = self.json.decoder.scanstring
-        self.assertEqual(
-            scanstring('"z\\ud834\\udd20x"', 1, None, True),
-            (u'z\U0001d120x', 16))
-
-        if sys.maxunicode == 65535:
-            self.assertEqual(
-                scanstring(u'"z\U0001d120x"', 1, None, True),
-                (u'z\U0001d120x', 6))
-        else:
-            self.assertEqual(
-                scanstring(u'"z\U0001d120x"', 1, None, True),
-                (u'z\U0001d120x', 5))
-
-        self.assertEqual(
-            scanstring('"\\u007b"', 1, None, True),
-            (u'{', 8))
-
-        self.assertEqual(
-            scanstring('"A JSON payload should be an object or array, not a string."', 1, None, True),
-            (u'A JSON payload should be an object or array, not a string.', 60))
-
-        self.assertEqual(
-            scanstring('["Unclosed array"', 2, None, True),
-            (u'Unclosed array', 17))
-
-        self.assertEqual(
-            scanstring('["extra comma",]', 2, None, True),
-            (u'extra comma', 14))
-
-        self.assertEqual(
-            scanstring('["double extra comma",,]', 2, None, True),
-            (u'double extra comma', 21))
-
-        self.assertEqual(
-            scanstring('["Comma after the close"],', 2, None, True),
-            (u'Comma after the close', 24))
-
-        self.assertEqual(
-            scanstring('["Extra close"]]', 2, None, True),
-            (u'Extra close', 14))
-
-        self.assertEqual(
-            scanstring('{"Extra comma": true,}', 2, None, True),
-            (u'Extra comma', 14))
-
-        self.assertEqual(
-            scanstring('{"Extra value after close": true} "misplaced quoted value"', 2, None, True),
-            (u'Extra value after close', 26))
-
-        self.assertEqual(
-            scanstring('{"Illegal expression": 1 + 2}', 2, None, True),
-            (u'Illegal expression', 21))
-
-        self.assertEqual(
-            scanstring('{"Illegal invocation": alert()}', 2, None, True),
-            (u'Illegal invocation', 21))
-
-        self.assertEqual(
-            scanstring('{"Numbers cannot have leading zeroes": 013}', 2, None, True),
-            (u'Numbers cannot have leading zeroes', 37))
-
-        self.assertEqual(
-            scanstring('{"Numbers cannot be hex": 0x14}', 2, None, True),
-            (u'Numbers cannot be hex', 24))
-
-        self.assertEqual(
-            scanstring('[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]', 21, None, True),
-            (u'Too deep', 30))
-
-        self.assertEqual(
-            scanstring('{"Missing colon" null}', 2, None, True),
-            (u'Missing colon', 16))
-
-        self.assertEqual(
-            scanstring('{"Double colon":: null}', 2, None, True),
-            (u'Double colon', 15))
-
-        self.assertEqual(
-            scanstring('{"Comma instead of colon", null}', 2, None, True),
-            (u'Comma instead of colon', 25))
-
-        self.assertEqual(
-            scanstring('["Colon instead of comma": false]', 2, None, True),
-            (u'Colon instead of comma', 25))
-
-        self.assertEqual(
-            scanstring('["Bad value", truth]', 2, None, True),
-            (u'Bad value', 12))
-
-    def test_issue3623(self):
-        self.assertRaises(ValueError, self.json.decoder.scanstring, b"xxx", 1,
-                          "xxx")
-        self.assertRaises(UnicodeDecodeError,
-                          self.json.encoder.encode_basestring_ascii, b"xx\xff")
-
-    def test_overflow(self):
-        with self.assertRaises(OverflowError):
-            self.json.decoder.scanstring(b"xxx", sys.maxsize+1)
-
-
-class TestPyScanstring(TestScanstring, PyTest): pass
-class TestCScanstring(TestScanstring, CTest): pass
diff --git a/lib/python2.7/json/tests/test_separators.py b/lib/python2.7/json/tests/test_separators.py
deleted file mode 100644
index a4246e1..0000000
--- a/lib/python2.7/json/tests/test_separators.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import textwrap
-from json.tests import PyTest, CTest
-
-
-class TestSeparators(object):
-    def test_separators(self):
-        h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth',
-             {'nifty': 87}, {'field': 'yes', 'morefield': False} ]
-
-        expect = textwrap.dedent("""\
-        [
-          [
-            "blorpie"
-          ] ,
-          [
-            "whoops"
-          ] ,
-          [] ,
-          "d-shtaeou" ,
-          "d-nthiouh" ,
-          "i-vhbjkhnth" ,
-          {
-            "nifty" : 87
-          } ,
-          {
-            "field" : "yes" ,
-            "morefield" : false
-          }
-        ]""")
-
-
-        d1 = self.dumps(h)
-        d2 = self.dumps(h, indent=2, sort_keys=True, separators=(' ,', ' : '))
-
-        h1 = self.loads(d1)
-        h2 = self.loads(d2)
-
-        self.assertEqual(h1, h)
-        self.assertEqual(h2, h)
-        self.assertEqual(d2, expect)
-
-
-class TestPySeparators(TestSeparators, PyTest): pass
-class TestCSeparators(TestSeparators, CTest): pass
diff --git a/lib/python2.7/json/tests/test_speedups.py b/lib/python2.7/json/tests/test_speedups.py
deleted file mode 100644
index 7186a40..0000000
--- a/lib/python2.7/json/tests/test_speedups.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from json.tests import CTest
-
-
-class TestSpeedups(CTest):
-    def test_scanstring(self):
-        self.assertEqual(self.json.decoder.scanstring.__module__, "_json")
-        self.assertIs(self.json.decoder.scanstring, self.json.decoder.c_scanstring)
-
-    def test_encode_basestring_ascii(self):
-        self.assertEqual(self.json.encoder.encode_basestring_ascii.__module__,
-                         "_json")
-        self.assertIs(self.json.encoder.encode_basestring_ascii,
-                      self.json.encoder.c_encode_basestring_ascii)
-
-class TestDecode(CTest):
-    def test_make_scanner(self):
-        self.assertRaises(AttributeError, self.json.scanner.c_make_scanner, 1)
-
-    def test_make_encoder(self):
-        self.assertRaises(TypeError, self.json.encoder.c_make_encoder,
-            None,
-            "\xCD\x7D\x3D\x4E\x12\x4C\xF9\x79\xD7\x52\xBA\x82\xF2\x27\x4A\x7D\xA0\xCA\x75",
-            None)
diff --git a/lib/python2.7/json/tests/test_tool.py b/lib/python2.7/json/tests/test_tool.py
deleted file mode 100644
index 27dfb84..0000000
--- a/lib/python2.7/json/tests/test_tool.py
+++ /dev/null
@@ -1,69 +0,0 @@
-import os
-import sys
-import textwrap
-import unittest
-import subprocess
-from test import test_support
-from test.script_helper import assert_python_ok
-
-class TestTool(unittest.TestCase):
-    data = """
-
-        [["blorpie"],[ "whoops" ] , [
-                                 ],\t"d-shtaeou",\r"d-nthiouh",
-        "i-vhbjkhnth", {"nifty":87}, {"morefield" :\tfalse,"field"
-            :"yes"}  ]
-           """
-
-    expect = textwrap.dedent("""\
-    [
-        [
-            "blorpie"
-        ],
-        [
-            "whoops"
-        ],
-        [],
-        "d-shtaeou",
-        "d-nthiouh",
-        "i-vhbjkhnth",
-        {
-            "nifty": 87
-        },
-        {
-            "field": "yes",
-            "morefield": false
-        }
-    ]
-    """)
-
-    def test_stdin_stdout(self):
-        proc = subprocess.Popen(
-                (sys.executable, '-m', 'json.tool'),
-                stdin=subprocess.PIPE, stdout=subprocess.PIPE)
-        out, err = proc.communicate(self.data.encode())
-        self.assertEqual(out.splitlines(), self.expect.encode().splitlines())
-        self.assertEqual(err, None)
-
-    def _create_infile(self):
-        infile = test_support.TESTFN
-        with open(infile, "w") as fp:
-            self.addCleanup(os.remove, infile)
-            fp.write(self.data)
-        return infile
-
-    def test_infile_stdout(self):
-        infile = self._create_infile()
-        rc, out, err = assert_python_ok('-m', 'json.tool', infile)
-        self.assertEqual(out.splitlines(), self.expect.encode().splitlines())
-        self.assertEqual(err, b'')
-
-    def test_infile_outfile(self):
-        infile = self._create_infile()
-        outfile = test_support.TESTFN + '.out'
-        rc, out, err = assert_python_ok('-m', 'json.tool', infile, outfile)
-        self.addCleanup(os.remove, outfile)
-        with open(outfile, "r") as fp:
-            self.assertEqual(fp.read(), self.expect)
-        self.assertEqual(out, b'')
-        self.assertEqual(err, b'')
diff --git a/lib/python2.7/json/tests/test_unicode.py b/lib/python2.7/json/tests/test_unicode.py
deleted file mode 100644
index e90f158..0000000
--- a/lib/python2.7/json/tests/test_unicode.py
+++ /dev/null
@@ -1,89 +0,0 @@
-from collections import OrderedDict
-from json.tests import PyTest, CTest
-
-
-class TestUnicode(object):
-    def test_encoding1(self):
-        encoder = self.json.JSONEncoder(encoding='utf-8')
-        u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
-        s = u.encode('utf-8')
-        ju = encoder.encode(u)
-        js = encoder.encode(s)
-        self.assertEqual(ju, js)
-
-    def test_encoding2(self):
-        u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
-        s = u.encode('utf-8')
-        ju = self.dumps(u, encoding='utf-8')
-        js = self.dumps(s, encoding='utf-8')
-        self.assertEqual(ju, js)
-
-    def test_encoding3(self):
-        u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
-        j = self.dumps(u)
-        self.assertEqual(j, '"\\u03b1\\u03a9"')
-
-    def test_encoding4(self):
-        u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
-        j = self.dumps([u])
-        self.assertEqual(j, '["\\u03b1\\u03a9"]')
-
-    def test_encoding5(self):
-        u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
-        j = self.dumps(u, ensure_ascii=False)
-        self.assertEqual(j, u'"{0}"'.format(u))
-
-    def test_encoding6(self):
-        u = u'\N{GREEK SMALL LETTER ALPHA}\N{GREEK CAPITAL LETTER OMEGA}'
-        j = self.dumps([u], ensure_ascii=False)
-        self.assertEqual(j, u'["{0}"]'.format(u))
-
-    def test_big_unicode_encode(self):
-        u = u'\U0001d120'
-        self.assertEqual(self.dumps(u), '"\\ud834\\udd20"')
-        self.assertEqual(self.dumps(u, ensure_ascii=False), u'"\U0001d120"')
-
-    def test_big_unicode_decode(self):
-        u = u'z\U0001d120x'
-        self.assertEqual(self.loads('"' + u + '"'), u)
-        self.assertEqual(self.loads('"z\\ud834\\udd20x"'), u)
-
-    def test_unicode_decode(self):
-        for i in range(0, 0xd7ff):
-            u = unichr(i)
-            s = '"\\u{0:04x}"'.format(i)
-            self.assertEqual(self.loads(s), u)
-
-    def test_object_pairs_hook_with_unicode(self):
-        s = u'{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}'
-        p = [(u"xkd", 1), (u"kcw", 2), (u"art", 3), (u"hxm", 4),
-             (u"qrt", 5), (u"pad", 6), (u"hoy", 7)]
-        self.assertEqual(self.loads(s), eval(s))
-        self.assertEqual(self.loads(s, object_pairs_hook = lambda x: x), p)
-        od = self.loads(s, object_pairs_hook = OrderedDict)
-        self.assertEqual(od, OrderedDict(p))
-        self.assertEqual(type(od), OrderedDict)
-        # the object_pairs_hook takes priority over the object_hook
-        self.assertEqual(self.loads(s,
-                                    object_pairs_hook = OrderedDict,
-                                    object_hook = lambda x: None),
-                         OrderedDict(p))
-
-    def test_default_encoding(self):
-        self.assertEqual(self.loads(u'{"a": "\xe9"}'.encode('utf-8')),
-            {'a': u'\xe9'})
-
-    def test_unicode_preservation(self):
-        self.assertEqual(type(self.loads(u'""')), unicode)
-        self.assertEqual(type(self.loads(u'"a"')), unicode)
-        self.assertEqual(type(self.loads(u'["a"]')[0]), unicode)
-        # Issue 10038.
-        self.assertEqual(type(self.loads('"foo"')), unicode)
-
-    def test_bad_encoding(self):
-        self.assertRaises(UnicodeEncodeError, self.loads, '"a"', u"rat\xe9")
-        self.assertRaises(TypeError, self.loads, '"a"', 1)
-
-
-class TestPyUnicode(TestUnicode, PyTest): pass
-class TestCUnicode(TestUnicode, CTest): pass
diff --git a/lib/python2.7/lib-dynload/_bisect.so b/lib/python2.7/lib-dynload/_bisect.so
index da4a110..d6ec721 100755
--- a/lib/python2.7/lib-dynload/_bisect.so
+++ b/lib/python2.7/lib-dynload/_bisect.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_cn.so b/lib/python2.7/lib-dynload/_codecs_cn.so
index 775c60c..d99b292 100755
--- a/lib/python2.7/lib-dynload/_codecs_cn.so
+++ b/lib/python2.7/lib-dynload/_codecs_cn.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_hk.so b/lib/python2.7/lib-dynload/_codecs_hk.so
index a94a635..3c3661f 100755
--- a/lib/python2.7/lib-dynload/_codecs_hk.so
+++ b/lib/python2.7/lib-dynload/_codecs_hk.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_iso2022.so b/lib/python2.7/lib-dynload/_codecs_iso2022.so
index 3f78d58..70df764 100755
--- a/lib/python2.7/lib-dynload/_codecs_iso2022.so
+++ b/lib/python2.7/lib-dynload/_codecs_iso2022.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_jp.so b/lib/python2.7/lib-dynload/_codecs_jp.so
index 4de2276..00d21fc 100755
--- a/lib/python2.7/lib-dynload/_codecs_jp.so
+++ b/lib/python2.7/lib-dynload/_codecs_jp.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_kr.so b/lib/python2.7/lib-dynload/_codecs_kr.so
index 8f20d95..24aa8f4 100755
--- a/lib/python2.7/lib-dynload/_codecs_kr.so
+++ b/lib/python2.7/lib-dynload/_codecs_kr.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_codecs_tw.so b/lib/python2.7/lib-dynload/_codecs_tw.so
index 2882ec1..67b34de 100755
--- a/lib/python2.7/lib-dynload/_codecs_tw.so
+++ b/lib/python2.7/lib-dynload/_codecs_tw.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_collections.so b/lib/python2.7/lib-dynload/_collections.so
index a35859c..46b8dff 100755
--- a/lib/python2.7/lib-dynload/_collections.so
+++ b/lib/python2.7/lib-dynload/_collections.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_csv.so b/lib/python2.7/lib-dynload/_csv.so
index cf3ea52..266b57b 100755
--- a/lib/python2.7/lib-dynload/_csv.so
+++ b/lib/python2.7/lib-dynload/_csv.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_ctypes.so b/lib/python2.7/lib-dynload/_ctypes.so
index 93726e0..e39a0a5 100755
--- a/lib/python2.7/lib-dynload/_ctypes.so
+++ b/lib/python2.7/lib-dynload/_ctypes.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_ctypes_test.so b/lib/python2.7/lib-dynload/_ctypes_test.so
index c80162f..6fb421c 100755
--- a/lib/python2.7/lib-dynload/_ctypes_test.so
+++ b/lib/python2.7/lib-dynload/_ctypes_test.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_curses.so b/lib/python2.7/lib-dynload/_curses.so
index acd0b53..423976f 100755
--- a/lib/python2.7/lib-dynload/_curses.so
+++ b/lib/python2.7/lib-dynload/_curses.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_curses_panel.so b/lib/python2.7/lib-dynload/_curses_panel.so
index 6315596..708248f 100755
--- a/lib/python2.7/lib-dynload/_curses_panel.so
+++ b/lib/python2.7/lib-dynload/_curses_panel.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_elementtree.so b/lib/python2.7/lib-dynload/_elementtree.so
index a1a3054..89a7b1b 100755
--- a/lib/python2.7/lib-dynload/_elementtree.so
+++ b/lib/python2.7/lib-dynload/_elementtree.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_functools.so b/lib/python2.7/lib-dynload/_functools.so
index 1f706f4..e799851 100755
--- a/lib/python2.7/lib-dynload/_functools.so
+++ b/lib/python2.7/lib-dynload/_functools.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_hashlib.so b/lib/python2.7/lib-dynload/_hashlib.so
index 6066608..df93851 100755
--- a/lib/python2.7/lib-dynload/_hashlib.so
+++ b/lib/python2.7/lib-dynload/_hashlib.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_heapq.so b/lib/python2.7/lib-dynload/_heapq.so
index 7c9396f..145e100 100755
--- a/lib/python2.7/lib-dynload/_heapq.so
+++ b/lib/python2.7/lib-dynload/_heapq.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_hotshot.so b/lib/python2.7/lib-dynload/_hotshot.so
index 7a251dc..e23499f 100755
--- a/lib/python2.7/lib-dynload/_hotshot.so
+++ b/lib/python2.7/lib-dynload/_hotshot.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_io.so b/lib/python2.7/lib-dynload/_io.so
index 9d1b8c4..df85366 100755
--- a/lib/python2.7/lib-dynload/_io.so
+++ b/lib/python2.7/lib-dynload/_io.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_json.so b/lib/python2.7/lib-dynload/_json.so
index 7ff54cd..c94f285 100755
--- a/lib/python2.7/lib-dynload/_json.so
+++ b/lib/python2.7/lib-dynload/_json.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_locale.so b/lib/python2.7/lib-dynload/_locale.so
index 4158ece..f68dcd0 100755
--- a/lib/python2.7/lib-dynload/_locale.so
+++ b/lib/python2.7/lib-dynload/_locale.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_lsprof.so b/lib/python2.7/lib-dynload/_lsprof.so
index 50d8106..5f5bc1c 100755
--- a/lib/python2.7/lib-dynload/_lsprof.so
+++ b/lib/python2.7/lib-dynload/_lsprof.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_multibytecodec.so b/lib/python2.7/lib-dynload/_multibytecodec.so
index 9acf046..c57ee77 100755
--- a/lib/python2.7/lib-dynload/_multibytecodec.so
+++ b/lib/python2.7/lib-dynload/_multibytecodec.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_multiprocessing.so b/lib/python2.7/lib-dynload/_multiprocessing.so
index 53978cb..f45854b 100755
--- a/lib/python2.7/lib-dynload/_multiprocessing.so
+++ b/lib/python2.7/lib-dynload/_multiprocessing.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_random.so b/lib/python2.7/lib-dynload/_random.so
index 12d9372..3546e86 100755
--- a/lib/python2.7/lib-dynload/_random.so
+++ b/lib/python2.7/lib-dynload/_random.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_socket.so b/lib/python2.7/lib-dynload/_socket.so
index a3ac0d3..812f43a 100755
--- a/lib/python2.7/lib-dynload/_socket.so
+++ b/lib/python2.7/lib-dynload/_socket.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_sqlite3.so b/lib/python2.7/lib-dynload/_sqlite3.so
index a75c0e2..4313e75 100755
--- a/lib/python2.7/lib-dynload/_sqlite3.so
+++ b/lib/python2.7/lib-dynload/_sqlite3.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_ssl.so b/lib/python2.7/lib-dynload/_ssl.so
index 4fc35cf..7721b02 100755
--- a/lib/python2.7/lib-dynload/_ssl.so
+++ b/lib/python2.7/lib-dynload/_ssl.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_struct.so b/lib/python2.7/lib-dynload/_struct.so
index 73908a3..6e59f88 100755
--- a/lib/python2.7/lib-dynload/_struct.so
+++ b/lib/python2.7/lib-dynload/_struct.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/_testcapi.so b/lib/python2.7/lib-dynload/_testcapi.so
index e8880a6..9adc376 100755
--- a/lib/python2.7/lib-dynload/_testcapi.so
+++ b/lib/python2.7/lib-dynload/_testcapi.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/array.so b/lib/python2.7/lib-dynload/array.so
index 624415e..8ec9f9d 100755
--- a/lib/python2.7/lib-dynload/array.so
+++ b/lib/python2.7/lib-dynload/array.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/audioop.so b/lib/python2.7/lib-dynload/audioop.so
index a8a3824..b5a3975 100755
--- a/lib/python2.7/lib-dynload/audioop.so
+++ b/lib/python2.7/lib-dynload/audioop.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/binascii.so b/lib/python2.7/lib-dynload/binascii.so
index 34cee49..f256888 100755
--- a/lib/python2.7/lib-dynload/binascii.so
+++ b/lib/python2.7/lib-dynload/binascii.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/cPickle.so b/lib/python2.7/lib-dynload/cPickle.so
index a7620d7..9c1774c 100755
--- a/lib/python2.7/lib-dynload/cPickle.so
+++ b/lib/python2.7/lib-dynload/cPickle.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/cStringIO.so b/lib/python2.7/lib-dynload/cStringIO.so
index 9cc581d..55a9dc9 100755
--- a/lib/python2.7/lib-dynload/cStringIO.so
+++ b/lib/python2.7/lib-dynload/cStringIO.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/cmath.so b/lib/python2.7/lib-dynload/cmath.so
index 7c4b5ff..7cc39a4 100755
--- a/lib/python2.7/lib-dynload/cmath.so
+++ b/lib/python2.7/lib-dynload/cmath.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/crypt.so b/lib/python2.7/lib-dynload/crypt.so
index e0bbc60..620fdb9 100755
--- a/lib/python2.7/lib-dynload/crypt.so
+++ b/lib/python2.7/lib-dynload/crypt.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/datetime.so b/lib/python2.7/lib-dynload/datetime.so
index 1c62758..0fef12b 100755
--- a/lib/python2.7/lib-dynload/datetime.so
+++ b/lib/python2.7/lib-dynload/datetime.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/fcntl.so b/lib/python2.7/lib-dynload/fcntl.so
index 4a47f7c..d193172 100755
--- a/lib/python2.7/lib-dynload/fcntl.so
+++ b/lib/python2.7/lib-dynload/fcntl.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/future_builtins.so b/lib/python2.7/lib-dynload/future_builtins.so
index eeea768..2ec2a11 100755
--- a/lib/python2.7/lib-dynload/future_builtins.so
+++ b/lib/python2.7/lib-dynload/future_builtins.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/grp.so b/lib/python2.7/lib-dynload/grp.so
index c06a488..082a22b 100755
--- a/lib/python2.7/lib-dynload/grp.so
+++ b/lib/python2.7/lib-dynload/grp.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/itertools.so b/lib/python2.7/lib-dynload/itertools.so
index c20a1fb..eb4e746 100755
--- a/lib/python2.7/lib-dynload/itertools.so
+++ b/lib/python2.7/lib-dynload/itertools.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/linuxaudiodev.so b/lib/python2.7/lib-dynload/linuxaudiodev.so
index eac02c3..fe1bc0f 100755
--- a/lib/python2.7/lib-dynload/linuxaudiodev.so
+++ b/lib/python2.7/lib-dynload/linuxaudiodev.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/math.so b/lib/python2.7/lib-dynload/math.so
index b42f469..27fc3a0 100755
--- a/lib/python2.7/lib-dynload/math.so
+++ b/lib/python2.7/lib-dynload/math.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/mmap.so b/lib/python2.7/lib-dynload/mmap.so
index eb7812d..60dc53b 100755
--- a/lib/python2.7/lib-dynload/mmap.so
+++ b/lib/python2.7/lib-dynload/mmap.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/nis.so b/lib/python2.7/lib-dynload/nis.so
index 6e82515..300fed4 100755
--- a/lib/python2.7/lib-dynload/nis.so
+++ b/lib/python2.7/lib-dynload/nis.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/operator.so b/lib/python2.7/lib-dynload/operator.so
index ea26878..f1ab3af 100755
--- a/lib/python2.7/lib-dynload/operator.so
+++ b/lib/python2.7/lib-dynload/operator.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/ossaudiodev.so b/lib/python2.7/lib-dynload/ossaudiodev.so
index 68a9d82..da590cb 100755
--- a/lib/python2.7/lib-dynload/ossaudiodev.so
+++ b/lib/python2.7/lib-dynload/ossaudiodev.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/parser.so b/lib/python2.7/lib-dynload/parser.so
index 12e8378..b87089f 100755
--- a/lib/python2.7/lib-dynload/parser.so
+++ b/lib/python2.7/lib-dynload/parser.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/pwd.so b/lib/python2.7/lib-dynload/pwd.so
index bdf244b..895e3e4 100755
--- a/lib/python2.7/lib-dynload/pwd.so
+++ b/lib/python2.7/lib-dynload/pwd.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/pyexpat.so b/lib/python2.7/lib-dynload/pyexpat.so
index 972d58a..d127d8e 100755
--- a/lib/python2.7/lib-dynload/pyexpat.so
+++ b/lib/python2.7/lib-dynload/pyexpat.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/resource.so b/lib/python2.7/lib-dynload/resource.so
index 5fd6355..d1bfb98 100755
--- a/lib/python2.7/lib-dynload/resource.so
+++ b/lib/python2.7/lib-dynload/resource.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/select.so b/lib/python2.7/lib-dynload/select.so
index 79098fb..ce62073 100755
--- a/lib/python2.7/lib-dynload/select.so
+++ b/lib/python2.7/lib-dynload/select.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/spwd.so b/lib/python2.7/lib-dynload/spwd.so
index 28fab55..61b0197 100755
--- a/lib/python2.7/lib-dynload/spwd.so
+++ b/lib/python2.7/lib-dynload/spwd.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/strop.so b/lib/python2.7/lib-dynload/strop.so
index 0e77877..ef648e6 100755
--- a/lib/python2.7/lib-dynload/strop.so
+++ b/lib/python2.7/lib-dynload/strop.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/syslog.so b/lib/python2.7/lib-dynload/syslog.so
index c5aebcc..7a5ecfa 100755
--- a/lib/python2.7/lib-dynload/syslog.so
+++ b/lib/python2.7/lib-dynload/syslog.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/termios.so b/lib/python2.7/lib-dynload/termios.so
index 3b73872..c2ecfa0 100755
--- a/lib/python2.7/lib-dynload/termios.so
+++ b/lib/python2.7/lib-dynload/termios.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/time.so b/lib/python2.7/lib-dynload/time.so
index cd89daa..217ce63 100755
--- a/lib/python2.7/lib-dynload/time.so
+++ b/lib/python2.7/lib-dynload/time.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/unicodedata.so b/lib/python2.7/lib-dynload/unicodedata.so
index 48a5c1e..c55b928 100755
--- a/lib/python2.7/lib-dynload/unicodedata.so
+++ b/lib/python2.7/lib-dynload/unicodedata.so
Binary files differ
diff --git a/lib/python2.7/lib-dynload/zlib.so b/lib/python2.7/lib-dynload/zlib.so
index e149c00..f93eba6 100755
--- a/lib/python2.7/lib-dynload/zlib.so
+++ b/lib/python2.7/lib-dynload/zlib.so
Binary files differ
diff --git a/lib/python2.7/lib2to3/Grammar2.7.5.final.0.pickle b/lib/python2.7/lib2to3/Grammar2.7.5.final.0.pickle
index d9b73ae..30d754d 100644
--- a/lib/python2.7/lib2to3/Grammar2.7.5.final.0.pickle
+++ b/lib/python2.7/lib2to3/Grammar2.7.5.final.0.pickle
Binary files differ
diff --git a/lib/python2.7/lib2to3/PatternGrammar2.7.5.final.0.pickle b/lib/python2.7/lib2to3/PatternGrammar2.7.5.final.0.pickle
index dd783b1..050f1fb 100644
--- a/lib/python2.7/lib2to3/PatternGrammar2.7.5.final.0.pickle
+++ b/lib/python2.7/lib2to3/PatternGrammar2.7.5.final.0.pickle
Binary files differ
diff --git a/lib/python2.7/lib2to3/tests/__init__.py b/lib/python2.7/lib2to3/tests/__init__.py
deleted file mode 100644
index cfaea0d..0000000
--- a/lib/python2.7/lib2to3/tests/__init__.py
+++ /dev/null
@@ -1,24 +0,0 @@
-"""Make tests/ into a package. This allows us to "import tests" and
-have tests.all_tests be a TestSuite representing all test cases
-from all test_*.py files in tests/."""
-# Author: Collin Winter
-
-import os
-import os.path
-import unittest
-import types
-
-from . import support
-
-all_tests = unittest.TestSuite()
-
-tests_dir = os.path.join(os.path.dirname(__file__), '..', 'tests')
-tests = [t[0:-3] for t in os.listdir(tests_dir)
-                        if t.startswith('test_') and t.endswith('.py')]
-
-loader = unittest.TestLoader()
-
-for t in tests:
-    __import__("",globals(),locals(),[t],level=1)
-    mod = globals()[t]
-    all_tests.addTests(loader.loadTestsFromModule(mod))
diff --git a/lib/python2.7/lib2to3/tests/data/README b/lib/python2.7/lib2to3/tests/data/README
deleted file mode 100644
index 7aa47e4..0000000
--- a/lib/python2.7/lib2to3/tests/data/README
+++ /dev/null
@@ -1,6 +0,0 @@
-In this directory:
-- py2_test_grammar.py -- test file that exercises most/all of Python 2.x's grammar.
-- py3_test_grammar.py -- test file that exercises most/all of Python 3.x's grammar.
-- infinite_recursion.py -- test file that causes lib2to3's faster recursive pattern matching
-  scheme to fail, but passes when lib2to3 falls back to iterative pattern matching.
-- fixes/ -- for use by test_refactor.py
diff --git a/lib/python2.7/lib2to3/tests/data/bom.py b/lib/python2.7/lib2to3/tests/data/bom.py
deleted file mode 100644
index 9bc3975..0000000
--- a/lib/python2.7/lib2to3/tests/data/bom.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# coding: utf-8
-print "BOM BOOM!"
diff --git a/lib/python2.7/lib2to3/tests/data/crlf.py b/lib/python2.7/lib2to3/tests/data/crlf.py
deleted file mode 100644
index dbe2d7b..0000000
--- a/lib/python2.7/lib2to3/tests/data/crlf.py
+++ /dev/null
@@ -1,3 +0,0 @@
-print "hi"
-
-print "Like bad Windows newlines?"
diff --git a/lib/python2.7/lib2to3/tests/data/different_encoding.py b/lib/python2.7/lib2to3/tests/data/different_encoding.py
deleted file mode 100644
index 9f32bd0..0000000
--- a/lib/python2.7/lib2to3/tests/data/different_encoding.py
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-print u'ßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ'
-
-def f(x):
-    print '%s\t->  α(%2i):%s  β(%s)'
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/bad_order.py b/lib/python2.7/lib2to3/tests/data/fixers/bad_order.py
deleted file mode 100644
index 061bbf2..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/bad_order.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixBadOrder(BaseFix):
-
-    order = "crazy"
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.py
+++ /dev/null
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.py
deleted file mode 100644
index cbe16f6..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixExplicit(BaseFix):
-    explicit = True
-
-    def match(self): return False
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.py
deleted file mode 100644
index a88821f..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_first.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixFirst(BaseFix):
-    run_order = 1
-
-    def match(self, node): return False
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.py
deleted file mode 100644
index 9a077d4..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_last.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixLast(BaseFix):
-
-    run_order = 10
-
-    def match(self, node): return False
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.py
deleted file mode 100644
index 6db79ad..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_parrot.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-from lib2to3.fixer_util import Name
-
-class FixParrot(BaseFix):
-    """
-    Change functions named 'parrot' to 'cheese'.
-    """
-
-    PATTERN = """funcdef < 'def' name='parrot' any* >"""
-
-    def transform(self, node, results):
-        name = results["name"]
-        name.replace(Name("cheese", name.prefix))
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.py b/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.py
deleted file mode 100644
index b9bfbba..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_preorder.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from lib2to3.fixer_base import BaseFix
-
-class FixPreorder(BaseFix):
-    order = "pre"
-
-    def match(self, node): return False
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.py b/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.py
deleted file mode 100644
index 506f794..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/no_fixer_cls.py
+++ /dev/null
@@ -1 +0,0 @@
-# This is empty so trying to fetch the fixer class gives an AttributeError
diff --git a/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.py b/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.py
deleted file mode 100644
index 0852928..0000000
--- a/lib/python2.7/lib2to3/tests/data/fixers/parrot_example.py
+++ /dev/null
@@ -1,2 +0,0 @@
-def parrot():
-    pass
diff --git a/lib/python2.7/lib2to3/tests/data/infinite_recursion.py b/lib/python2.7/lib2to3/tests/data/infinite_recursion.py
deleted file mode 100644
index 71715ef..0000000
--- a/lib/python2.7/lib2to3/tests/data/infinite_recursion.py
+++ /dev/null
@@ -1,2669 +0,0 @@
-# This file is used to verify that 2to3 falls back to a slower, iterative pattern matching
-# scheme in the event that the faster recursive system fails due to infinite recursion.
-from ctypes import *
-STRING = c_char_p
-
-
-OSUnknownByteOrder = 0
-UIT_PROMPT = 1
-P_PGID = 2
-P_PID = 1
-UIT_ERROR = 5
-UIT_INFO = 4
-UIT_NONE = 0
-P_ALL = 0
-UIT_VERIFY = 2
-OSBigEndian = 2
-UIT_BOOLEAN = 3
-OSLittleEndian = 1
-__darwin_nl_item = c_int
-__darwin_wctrans_t = c_int
-__darwin_wctype_t = c_ulong
-__int8_t = c_byte
-__uint8_t = c_ubyte
-__int16_t = c_short
-__uint16_t = c_ushort
-__int32_t = c_int
-__uint32_t = c_uint
-__int64_t = c_longlong
-__uint64_t = c_ulonglong
-__darwin_intptr_t = c_long
-__darwin_natural_t = c_uint
-__darwin_ct_rune_t = c_int
-class __mbstate_t(Union):
-    pass
-__mbstate_t._pack_ = 4
-__mbstate_t._fields_ = [
-    ('__mbstate8', c_char * 128),
-    ('_mbstateL', c_longlong),
-]
-assert sizeof(__mbstate_t) == 128, sizeof(__mbstate_t)
-assert alignment(__mbstate_t) == 4, alignment(__mbstate_t)
-__darwin_mbstate_t = __mbstate_t
-__darwin_ptrdiff_t = c_int
-__darwin_size_t = c_ulong
-__darwin_va_list = STRING
-__darwin_wchar_t = c_int
-__darwin_rune_t = __darwin_wchar_t
-__darwin_wint_t = c_int
-__darwin_clock_t = c_ulong
-__darwin_socklen_t = __uint32_t
-__darwin_ssize_t = c_long
-__darwin_time_t = c_long
-sig_atomic_t = c_int
-class sigcontext(Structure):
-    pass
-sigcontext._fields_ = [
-    ('sc_onstack', c_int),
-    ('sc_mask', c_int),
-    ('sc_eax', c_uint),
-    ('sc_ebx', c_uint),
-    ('sc_ecx', c_uint),
-    ('sc_edx', c_uint),
-    ('sc_edi', c_uint),
-    ('sc_esi', c_uint),
-    ('sc_ebp', c_uint),
-    ('sc_esp', c_uint),
-    ('sc_ss', c_uint),
-    ('sc_eflags', c_uint),
-    ('sc_eip', c_uint),
-    ('sc_cs', c_uint),
-    ('sc_ds', c_uint),
-    ('sc_es', c_uint),
-    ('sc_fs', c_uint),
-    ('sc_gs', c_uint),
-]
-assert sizeof(sigcontext) == 72, sizeof(sigcontext)
-assert alignment(sigcontext) == 4, alignment(sigcontext)
-u_int8_t = c_ubyte
-u_int16_t = c_ushort
-u_int32_t = c_uint
-u_int64_t = c_ulonglong
-int32_t = c_int
-register_t = int32_t
-user_addr_t = u_int64_t
-user_size_t = u_int64_t
-int64_t = c_longlong
-user_ssize_t = int64_t
-user_long_t = int64_t
-user_ulong_t = u_int64_t
-user_time_t = int64_t
-syscall_arg_t = u_int64_t
-
-# values for unnamed enumeration
-class aes_key_st(Structure):
-    pass
-aes_key_st._fields_ = [
-    ('rd_key', c_ulong * 60),
-    ('rounds', c_int),
-]
-assert sizeof(aes_key_st) == 244, sizeof(aes_key_st)
-assert alignment(aes_key_st) == 4, alignment(aes_key_st)
-AES_KEY = aes_key_st
-class asn1_ctx_st(Structure):
-    pass
-asn1_ctx_st._fields_ = [
-    ('p', POINTER(c_ubyte)),
-    ('eos', c_int),
-    ('error', c_int),
-    ('inf', c_int),
-    ('tag', c_int),
-    ('xclass', c_int),
-    ('slen', c_long),
-    ('max', POINTER(c_ubyte)),
-    ('q', POINTER(c_ubyte)),
-    ('pp', POINTER(POINTER(c_ubyte))),
-    ('line', c_int),
-]
-assert sizeof(asn1_ctx_st) == 44, sizeof(asn1_ctx_st)
-assert alignment(asn1_ctx_st) == 4, alignment(asn1_ctx_st)
-ASN1_CTX = asn1_ctx_st
-class asn1_object_st(Structure):
-    pass
-asn1_object_st._fields_ = [
-    ('sn', STRING),
-    ('ln', STRING),
-    ('nid', c_int),
-    ('length', c_int),
-    ('data', POINTER(c_ubyte)),
-    ('flags', c_int),
-]
-assert sizeof(asn1_object_st) == 24, sizeof(asn1_object_st)
-assert alignment(asn1_object_st) == 4, alignment(asn1_object_st)
-ASN1_OBJECT = asn1_object_st
-class asn1_string_st(Structure):
-    pass
-asn1_string_st._fields_ = [
-    ('length', c_int),
-    ('type', c_int),
-    ('data', POINTER(c_ubyte)),
-    ('flags', c_long),
-]
-assert sizeof(asn1_string_st) == 16, sizeof(asn1_string_st)
-assert alignment(asn1_string_st) == 4, alignment(asn1_string_st)
-ASN1_STRING = asn1_string_st
-class ASN1_ENCODING_st(Structure):
-    pass
-ASN1_ENCODING_st._fields_ = [
-    ('enc', POINTER(c_ubyte)),
-    ('len', c_long),
-    ('modified', c_int),
-]
-assert sizeof(ASN1_ENCODING_st) == 12, sizeof(ASN1_ENCODING_st)
-assert alignment(ASN1_ENCODING_st) == 4, alignment(ASN1_ENCODING_st)
-ASN1_ENCODING = ASN1_ENCODING_st
-class asn1_string_table_st(Structure):
-    pass
-asn1_string_table_st._fields_ = [
-    ('nid', c_int),
-    ('minsize', c_long),
-    ('maxsize', c_long),
-    ('mask', c_ulong),
-    ('flags', c_ulong),
-]
-assert sizeof(asn1_string_table_st) == 20, sizeof(asn1_string_table_st)
-assert alignment(asn1_string_table_st) == 4, alignment(asn1_string_table_st)
-ASN1_STRING_TABLE = asn1_string_table_st
-class ASN1_TEMPLATE_st(Structure):
-    pass
-ASN1_TEMPLATE_st._fields_ = [
-]
-ASN1_TEMPLATE = ASN1_TEMPLATE_st
-class ASN1_ITEM_st(Structure):
-    pass
-ASN1_ITEM = ASN1_ITEM_st
-ASN1_ITEM_st._fields_ = [
-]
-class ASN1_TLC_st(Structure):
-    pass
-ASN1_TLC = ASN1_TLC_st
-ASN1_TLC_st._fields_ = [
-]
-class ASN1_VALUE_st(Structure):
-    pass
-ASN1_VALUE_st._fields_ = [
-]
-ASN1_VALUE = ASN1_VALUE_st
-ASN1_ITEM_EXP = ASN1_ITEM
-class asn1_type_st(Structure):
-    pass
-class N12asn1_type_st4DOLLAR_11E(Union):
-    pass
-ASN1_BOOLEAN = c_int
-ASN1_INTEGER = asn1_string_st
-ASN1_ENUMERATED = asn1_string_st
-ASN1_BIT_STRING = asn1_string_st
-ASN1_OCTET_STRING = asn1_string_st
-ASN1_PRINTABLESTRING = asn1_string_st
-ASN1_T61STRING = asn1_string_st
-ASN1_IA5STRING = asn1_string_st
-ASN1_GENERALSTRING = asn1_string_st
-ASN1_BMPSTRING = asn1_string_st
-ASN1_UNIVERSALSTRING = asn1_string_st
-ASN1_UTCTIME = asn1_string_st
-ASN1_GENERALIZEDTIME = asn1_string_st
-ASN1_VISIBLESTRING = asn1_string_st
-ASN1_UTF8STRING = asn1_string_st
-N12asn1_type_st4DOLLAR_11E._fields_ = [
-    ('ptr', STRING),
-    ('boolean', ASN1_BOOLEAN),
-    ('asn1_string', POINTER(ASN1_STRING)),
-    ('object', POINTER(ASN1_OBJECT)),
-    ('integer', POINTER(ASN1_INTEGER)),
-    ('enumerated', POINTER(ASN1_ENUMERATED)),
-    ('bit_string', POINTER(ASN1_BIT_STRING)),
-    ('octet_string', POINTER(ASN1_OCTET_STRING)),
-    ('printablestring', POINTER(ASN1_PRINTABLESTRING)),
-    ('t61string', POINTER(ASN1_T61STRING)),
-    ('ia5string', POINTER(ASN1_IA5STRING)),
-    ('generalstring', POINTER(ASN1_GENERALSTRING)),
-    ('bmpstring', POINTER(ASN1_BMPSTRING)),
-    ('universalstring', POINTER(ASN1_UNIVERSALSTRING)),
-    ('utctime', POINTER(ASN1_UTCTIME)),
-    ('generalizedtime', POINTER(ASN1_GENERALIZEDTIME)),
-    ('visiblestring', POINTER(ASN1_VISIBLESTRING)),
-    ('utf8string', POINTER(ASN1_UTF8STRING)),
-    ('set', POINTER(ASN1_STRING)),
-    ('sequence', POINTER(ASN1_STRING)),
-]
-assert sizeof(N12asn1_type_st4DOLLAR_11E) == 4, sizeof(N12asn1_type_st4DOLLAR_11E)
-assert alignment(N12asn1_type_st4DOLLAR_11E) == 4, alignment(N12asn1_type_st4DOLLAR_11E)
-asn1_type_st._fields_ = [
-    ('type', c_int),
-    ('value', N12asn1_type_st4DOLLAR_11E),
-]
-assert sizeof(asn1_type_st) == 8, sizeof(asn1_type_st)
-assert alignment(asn1_type_st) == 4, alignment(asn1_type_st)
-ASN1_TYPE = asn1_type_st
-class asn1_method_st(Structure):
-    pass
-asn1_method_st._fields_ = [
-    ('i2d', CFUNCTYPE(c_int)),
-    ('d2i', CFUNCTYPE(STRING)),
-    ('create', CFUNCTYPE(STRING)),
-    ('destroy', CFUNCTYPE(None)),
-]
-assert sizeof(asn1_method_st) == 16, sizeof(asn1_method_st)
-assert alignment(asn1_method_st) == 4, alignment(asn1_method_st)
-ASN1_METHOD = asn1_method_st
-class asn1_header_st(Structure):
-    pass
-asn1_header_st._fields_ = [
-    ('header', POINTER(ASN1_OCTET_STRING)),
-    ('data', STRING),
-    ('meth', POINTER(ASN1_METHOD)),
-]
-assert sizeof(asn1_header_st) == 12, sizeof(asn1_header_st)
-assert alignment(asn1_header_st) == 4, alignment(asn1_header_st)
-ASN1_HEADER = asn1_header_st
-class BIT_STRING_BITNAME_st(Structure):
-    pass
-BIT_STRING_BITNAME_st._fields_ = [
-    ('bitnum', c_int),
-    ('lname', STRING),
-    ('sname', STRING),
-]
-assert sizeof(BIT_STRING_BITNAME_st) == 12, sizeof(BIT_STRING_BITNAME_st)
-assert alignment(BIT_STRING_BITNAME_st) == 4, alignment(BIT_STRING_BITNAME_st)
-BIT_STRING_BITNAME = BIT_STRING_BITNAME_st
-class bio_st(Structure):
-    pass
-BIO = bio_st
-bio_info_cb = CFUNCTYPE(None, POINTER(bio_st), c_int, STRING, c_int, c_long, c_long)
-class bio_method_st(Structure):
-    pass
-bio_method_st._fields_ = [
-    ('type', c_int),
-    ('name', STRING),
-    ('bwrite', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
-    ('bread', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
-    ('bputs', CFUNCTYPE(c_int, POINTER(BIO), STRING)),
-    ('bgets', CFUNCTYPE(c_int, POINTER(BIO), STRING, c_int)),
-    ('ctrl', CFUNCTYPE(c_long, POINTER(BIO), c_int, c_long, c_void_p)),
-    ('create', CFUNCTYPE(c_int, POINTER(BIO))),
-    ('destroy', CFUNCTYPE(c_int, POINTER(BIO))),
-    ('callback_ctrl', CFUNCTYPE(c_long, POINTER(BIO), c_int, POINTER(bio_info_cb))),
-]
-assert sizeof(bio_method_st) == 40, sizeof(bio_method_st)
-assert alignment(bio_method_st) == 4, alignment(bio_method_st)
-BIO_METHOD = bio_method_st
-class crypto_ex_data_st(Structure):
-    pass
-class stack_st(Structure):
-    pass
-STACK = stack_st
-crypto_ex_data_st._fields_ = [
-    ('sk', POINTER(STACK)),
-    ('dummy', c_int),
-]
-assert sizeof(crypto_ex_data_st) == 8, sizeof(crypto_ex_data_st)
-assert alignment(crypto_ex_data_st) == 4, alignment(crypto_ex_data_st)
-CRYPTO_EX_DATA = crypto_ex_data_st
-bio_st._fields_ = [
-    ('method', POINTER(BIO_METHOD)),
-    ('callback', CFUNCTYPE(c_long, POINTER(bio_st), c_int, STRING, c_int, c_long, c_long)),
-    ('cb_arg', STRING),
-    ('init', c_int),
-    ('shutdown', c_int),
-    ('flags', c_int),
-    ('retry_reason', c_int),
-    ('num', c_int),
-    ('ptr', c_void_p),
-    ('next_bio', POINTER(bio_st)),
-    ('prev_bio', POINTER(bio_st)),
-    ('references', c_int),
-    ('num_read', c_ulong),
-    ('num_write', c_ulong),
-    ('ex_data', CRYPTO_EX_DATA),
-]
-assert sizeof(bio_st) == 64, sizeof(bio_st)
-assert alignment(bio_st) == 4, alignment(bio_st)
-class bio_f_buffer_ctx_struct(Structure):
-    pass
-bio_f_buffer_ctx_struct._fields_ = [
-    ('ibuf_size', c_int),
-    ('obuf_size', c_int),
-    ('ibuf', STRING),
-    ('ibuf_len', c_int),
-    ('ibuf_off', c_int),
-    ('obuf', STRING),
-    ('obuf_len', c_int),
-    ('obuf_off', c_int),
-]
-assert sizeof(bio_f_buffer_ctx_struct) == 32, sizeof(bio_f_buffer_ctx_struct)
-assert alignment(bio_f_buffer_ctx_struct) == 4, alignment(bio_f_buffer_ctx_struct)
-BIO_F_BUFFER_CTX = bio_f_buffer_ctx_struct
-class hostent(Structure):
-    pass
-hostent._fields_ = [
-]
-class bf_key_st(Structure):
-    pass
-bf_key_st._fields_ = [
-    ('P', c_uint * 18),
-    ('S', c_uint * 1024),
-]
-assert sizeof(bf_key_st) == 4168, sizeof(bf_key_st)
-assert alignment(bf_key_st) == 4, alignment(bf_key_st)
-BF_KEY = bf_key_st
-class bignum_st(Structure):
-    pass
-bignum_st._fields_ = [
-    ('d', POINTER(c_ulong)),
-    ('top', c_int),
-    ('dmax', c_int),
-    ('neg', c_int),
-    ('flags', c_int),
-]
-assert sizeof(bignum_st) == 20, sizeof(bignum_st)
-assert alignment(bignum_st) == 4, alignment(bignum_st)
-BIGNUM = bignum_st
-class bignum_ctx(Structure):
-    pass
-bignum_ctx._fields_ = [
-]
-BN_CTX = bignum_ctx
-class bn_blinding_st(Structure):
-    pass
-bn_blinding_st._fields_ = [
-    ('init', c_int),
-    ('A', POINTER(BIGNUM)),
-    ('Ai', POINTER(BIGNUM)),
-    ('mod', POINTER(BIGNUM)),
-    ('thread_id', c_ulong),
-]
-assert sizeof(bn_blinding_st) == 20, sizeof(bn_blinding_st)
-assert alignment(bn_blinding_st) == 4, alignment(bn_blinding_st)
-BN_BLINDING = bn_blinding_st
-class bn_mont_ctx_st(Structure):
-    pass
-bn_mont_ctx_st._fields_ = [
-    ('ri', c_int),
-    ('RR', BIGNUM),
-    ('N', BIGNUM),
-    ('Ni', BIGNUM),
-    ('n0', c_ulong),
-    ('flags', c_int),
-]
-assert sizeof(bn_mont_ctx_st) == 72, sizeof(bn_mont_ctx_st)
-assert alignment(bn_mont_ctx_st) == 4, alignment(bn_mont_ctx_st)
-BN_MONT_CTX = bn_mont_ctx_st
-class bn_recp_ctx_st(Structure):
-    pass
-bn_recp_ctx_st._fields_ = [
-    ('N', BIGNUM),
-    ('Nr', BIGNUM),
-    ('num_bits', c_int),
-    ('shift', c_int),
-    ('flags', c_int),
-]
-assert sizeof(bn_recp_ctx_st) == 52, sizeof(bn_recp_ctx_st)
-assert alignment(bn_recp_ctx_st) == 4, alignment(bn_recp_ctx_st)
-BN_RECP_CTX = bn_recp_ctx_st
-class buf_mem_st(Structure):
-    pass
-buf_mem_st._fields_ = [
-    ('length', c_int),
-    ('data', STRING),
-    ('max', c_int),
-]
-assert sizeof(buf_mem_st) == 12, sizeof(buf_mem_st)
-assert alignment(buf_mem_st) == 4, alignment(buf_mem_st)
-BUF_MEM = buf_mem_st
-class cast_key_st(Structure):
-    pass
-cast_key_st._fields_ = [
-    ('data', c_ulong * 32),
-    ('short_key', c_int),
-]
-assert sizeof(cast_key_st) == 132, sizeof(cast_key_st)
-assert alignment(cast_key_st) == 4, alignment(cast_key_st)
-CAST_KEY = cast_key_st
-class comp_method_st(Structure):
-    pass
-comp_method_st._fields_ = [
-    ('type', c_int),
-    ('name', STRING),
-    ('init', CFUNCTYPE(c_int)),
-    ('finish', CFUNCTYPE(None)),
-    ('compress', CFUNCTYPE(c_int)),
-    ('expand', CFUNCTYPE(c_int)),
-    ('ctrl', CFUNCTYPE(c_long)),
-    ('callback_ctrl', CFUNCTYPE(c_long)),
-]
-assert sizeof(comp_method_st) == 32, sizeof(comp_method_st)
-assert alignment(comp_method_st) == 4, alignment(comp_method_st)
-COMP_METHOD = comp_method_st
-class comp_ctx_st(Structure):
-    pass
-comp_ctx_st._fields_ = [
-    ('meth', POINTER(COMP_METHOD)),
-    ('compress_in', c_ulong),
-    ('compress_out', c_ulong),
-    ('expand_in', c_ulong),
-    ('expand_out', c_ulong),
-    ('ex_data', CRYPTO_EX_DATA),
-]
-assert sizeof(comp_ctx_st) == 28, sizeof(comp_ctx_st)
-assert alignment(comp_ctx_st) == 4, alignment(comp_ctx_st)
-COMP_CTX = comp_ctx_st
-class CRYPTO_dynlock_value(Structure):
-    pass
-CRYPTO_dynlock_value._fields_ = [
-]
-class CRYPTO_dynlock(Structure):
-    pass
-CRYPTO_dynlock._fields_ = [
-    ('references', c_int),
-    ('data', POINTER(CRYPTO_dynlock_value)),
-]
-assert sizeof(CRYPTO_dynlock) == 8, sizeof(CRYPTO_dynlock)
-assert alignment(CRYPTO_dynlock) == 4, alignment(CRYPTO_dynlock)
-BIO_dummy = bio_st
-CRYPTO_EX_new = CFUNCTYPE(c_int, c_void_p, c_void_p, POINTER(CRYPTO_EX_DATA), c_int, c_long, c_void_p)
-CRYPTO_EX_free = CFUNCTYPE(None, c_void_p, c_void_p, POINTER(CRYPTO_EX_DATA), c_int, c_long, c_void_p)
-CRYPTO_EX_dup = CFUNCTYPE(c_int, POINTER(CRYPTO_EX_DATA), POINTER(CRYPTO_EX_DATA), c_void_p, c_int, c_long, c_void_p)
-class crypto_ex_data_func_st(Structure):
-    pass
-crypto_ex_data_func_st._fields_ = [
-    ('argl', c_long),
-    ('argp', c_void_p),
-    ('new_func', POINTER(CRYPTO_EX_new)),
-    ('free_func', POINTER(CRYPTO_EX_free)),
-    ('dup_func', POINTER(CRYPTO_EX_dup)),
-]
-assert sizeof(crypto_ex_data_func_st) == 20, sizeof(crypto_ex_data_func_st)
-assert alignment(crypto_ex_data_func_st) == 4, alignment(crypto_ex_data_func_st)
-CRYPTO_EX_DATA_FUNCS = crypto_ex_data_func_st
-class st_CRYPTO_EX_DATA_IMPL(Structure):
-    pass
-CRYPTO_EX_DATA_IMPL = st_CRYPTO_EX_DATA_IMPL
-st_CRYPTO_EX_DATA_IMPL._fields_ = [
-]
-CRYPTO_MEM_LEAK_CB = CFUNCTYPE(c_void_p, c_ulong, STRING, c_int, c_int, c_void_p)
-DES_cblock = c_ubyte * 8
-const_DES_cblock = c_ubyte * 8
-class DES_ks(Structure):
-    pass
-class N6DES_ks3DOLLAR_9E(Union):
-    pass
-N6DES_ks3DOLLAR_9E._fields_ = [
-    ('cblock', DES_cblock),
-    ('deslong', c_ulong * 2),
-]
-assert sizeof(N6DES_ks3DOLLAR_9E) == 8, sizeof(N6DES_ks3DOLLAR_9E)
-assert alignment(N6DES_ks3DOLLAR_9E) == 4, alignment(N6DES_ks3DOLLAR_9E)
-DES_ks._fields_ = [
-    ('ks', N6DES_ks3DOLLAR_9E * 16),
-]
-assert sizeof(DES_ks) == 128, sizeof(DES_ks)
-assert alignment(DES_ks) == 4, alignment(DES_ks)
-DES_key_schedule = DES_ks
-_ossl_old_des_cblock = c_ubyte * 8
-class _ossl_old_des_ks_struct(Structure):
-    pass
-class N23_ossl_old_des_ks_struct4DOLLAR_10E(Union):
-    pass
-N23_ossl_old_des_ks_struct4DOLLAR_10E._fields_ = [
-    ('_', _ossl_old_des_cblock),
-    ('pad', c_ulong * 2),
-]
-assert sizeof(N23_ossl_old_des_ks_struct4DOLLAR_10E) == 8, sizeof(N23_ossl_old_des_ks_struct4DOLLAR_10E)
-assert alignment(N23_ossl_old_des_ks_struct4DOLLAR_10E) == 4, alignment(N23_ossl_old_des_ks_struct4DOLLAR_10E)
-_ossl_old_des_ks_struct._fields_ = [
-    ('ks', N23_ossl_old_des_ks_struct4DOLLAR_10E),
-]
-assert sizeof(_ossl_old_des_ks_struct) == 8, sizeof(_ossl_old_des_ks_struct)
-assert alignment(_ossl_old_des_ks_struct) == 4, alignment(_ossl_old_des_ks_struct)
-_ossl_old_des_key_schedule = _ossl_old_des_ks_struct * 16
-class dh_st(Structure):
-    pass
-DH = dh_st
-class dh_method(Structure):
-    pass
-dh_method._fields_ = [
-    ('name', STRING),
-    ('generate_key', CFUNCTYPE(c_int, POINTER(DH))),
-    ('compute_key', CFUNCTYPE(c_int, POINTER(c_ubyte), POINTER(BIGNUM), POINTER(DH))),
-    ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(DH), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
-    ('init', CFUNCTYPE(c_int, POINTER(DH))),
-    ('finish', CFUNCTYPE(c_int, POINTER(DH))),
-    ('flags', c_int),
-    ('app_data', STRING),
-]
-assert sizeof(dh_method) == 32, sizeof(dh_method)
-assert alignment(dh_method) == 4, alignment(dh_method)
-DH_METHOD = dh_method
-class engine_st(Structure):
-    pass
-ENGINE = engine_st
-dh_st._fields_ = [
-    ('pad', c_int),
-    ('version', c_int),
-    ('p', POINTER(BIGNUM)),
-    ('g', POINTER(BIGNUM)),
-    ('length', c_long),
-    ('pub_key', POINTER(BIGNUM)),
-    ('priv_key', POINTER(BIGNUM)),
-    ('flags', c_int),
-    ('method_mont_p', STRING),
-    ('q', POINTER(BIGNUM)),
-    ('j', POINTER(BIGNUM)),
-    ('seed', POINTER(c_ubyte)),
-    ('seedlen', c_int),
-    ('counter', POINTER(BIGNUM)),
-    ('references', c_int),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('meth', POINTER(DH_METHOD)),
-    ('engine', POINTER(ENGINE)),
-]
-assert sizeof(dh_st) == 76, sizeof(dh_st)
-assert alignment(dh_st) == 4, alignment(dh_st)
-class dsa_st(Structure):
-    pass
-DSA = dsa_st
-class DSA_SIG_st(Structure):
-    pass
-DSA_SIG_st._fields_ = [
-    ('r', POINTER(BIGNUM)),
-    ('s', POINTER(BIGNUM)),
-]
-assert sizeof(DSA_SIG_st) == 8, sizeof(DSA_SIG_st)
-assert alignment(DSA_SIG_st) == 4, alignment(DSA_SIG_st)
-DSA_SIG = DSA_SIG_st
-class dsa_method(Structure):
-    pass
-dsa_method._fields_ = [
-    ('name', STRING),
-    ('dsa_do_sign', CFUNCTYPE(POINTER(DSA_SIG), POINTER(c_ubyte), c_int, POINTER(DSA))),
-    ('dsa_sign_setup', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BN_CTX), POINTER(POINTER(BIGNUM)), POINTER(POINTER(BIGNUM)))),
-    ('dsa_do_verify', CFUNCTYPE(c_int, POINTER(c_ubyte), c_int, POINTER(DSA_SIG), POINTER(DSA))),
-    ('dsa_mod_exp', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
-    ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(DSA), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
-    ('init', CFUNCTYPE(c_int, POINTER(DSA))),
-    ('finish', CFUNCTYPE(c_int, POINTER(DSA))),
-    ('flags', c_int),
-    ('app_data', STRING),
-]
-assert sizeof(dsa_method) == 40, sizeof(dsa_method)
-assert alignment(dsa_method) == 4, alignment(dsa_method)
-DSA_METHOD = dsa_method
-dsa_st._fields_ = [
-    ('pad', c_int),
-    ('version', c_long),
-    ('write_params', c_int),
-    ('p', POINTER(BIGNUM)),
-    ('q', POINTER(BIGNUM)),
-    ('g', POINTER(BIGNUM)),
-    ('pub_key', POINTER(BIGNUM)),
-    ('priv_key', POINTER(BIGNUM)),
-    ('kinv', POINTER(BIGNUM)),
-    ('r', POINTER(BIGNUM)),
-    ('flags', c_int),
-    ('method_mont_p', STRING),
-    ('references', c_int),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('meth', POINTER(DSA_METHOD)),
-    ('engine', POINTER(ENGINE)),
-]
-assert sizeof(dsa_st) == 68, sizeof(dsa_st)
-assert alignment(dsa_st) == 4, alignment(dsa_st)
-class evp_pkey_st(Structure):
-    pass
-class N11evp_pkey_st4DOLLAR_12E(Union):
-    pass
-class rsa_st(Structure):
-    pass
-N11evp_pkey_st4DOLLAR_12E._fields_ = [
-    ('ptr', STRING),
-    ('rsa', POINTER(rsa_st)),
-    ('dsa', POINTER(dsa_st)),
-    ('dh', POINTER(dh_st)),
-]
-assert sizeof(N11evp_pkey_st4DOLLAR_12E) == 4, sizeof(N11evp_pkey_st4DOLLAR_12E)
-assert alignment(N11evp_pkey_st4DOLLAR_12E) == 4, alignment(N11evp_pkey_st4DOLLAR_12E)
-evp_pkey_st._fields_ = [
-    ('type', c_int),
-    ('save_type', c_int),
-    ('references', c_int),
-    ('pkey', N11evp_pkey_st4DOLLAR_12E),
-    ('save_parameters', c_int),
-    ('attributes', POINTER(STACK)),
-]
-assert sizeof(evp_pkey_st) == 24, sizeof(evp_pkey_st)
-assert alignment(evp_pkey_st) == 4, alignment(evp_pkey_st)
-class env_md_st(Structure):
-    pass
-class env_md_ctx_st(Structure):
-    pass
-EVP_MD_CTX = env_md_ctx_st
-env_md_st._fields_ = [
-    ('type', c_int),
-    ('pkey_type', c_int),
-    ('md_size', c_int),
-    ('flags', c_ulong),
-    ('init', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX))),
-    ('update', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), c_void_p, c_ulong)),
-    ('final', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), POINTER(c_ubyte))),
-    ('copy', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX), POINTER(EVP_MD_CTX))),
-    ('cleanup', CFUNCTYPE(c_int, POINTER(EVP_MD_CTX))),
-    ('sign', CFUNCTYPE(c_int)),
-    ('verify', CFUNCTYPE(c_int)),
-    ('required_pkey_type', c_int * 5),
-    ('block_size', c_int),
-    ('ctx_size', c_int),
-]
-assert sizeof(env_md_st) == 72, sizeof(env_md_st)
-assert alignment(env_md_st) == 4, alignment(env_md_st)
-EVP_MD = env_md_st
-env_md_ctx_st._fields_ = [
-    ('digest', POINTER(EVP_MD)),
-    ('engine', POINTER(ENGINE)),
-    ('flags', c_ulong),
-    ('md_data', c_void_p),
-]
-assert sizeof(env_md_ctx_st) == 16, sizeof(env_md_ctx_st)
-assert alignment(env_md_ctx_st) == 4, alignment(env_md_ctx_st)
-class evp_cipher_st(Structure):
-    pass
-class evp_cipher_ctx_st(Structure):
-    pass
-EVP_CIPHER_CTX = evp_cipher_ctx_st
-evp_cipher_st._fields_ = [
-    ('nid', c_int),
-    ('block_size', c_int),
-    ('key_len', c_int),
-    ('iv_len', c_int),
-    ('flags', c_ulong),
-    ('init', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(c_ubyte), POINTER(c_ubyte), c_int)),
-    ('do_cipher', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(c_ubyte), POINTER(c_ubyte), c_uint)),
-    ('cleanup', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX))),
-    ('ctx_size', c_int),
-    ('set_asn1_parameters', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(ASN1_TYPE))),
-    ('get_asn1_parameters', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), POINTER(ASN1_TYPE))),
-    ('ctrl', CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), c_int, c_int, c_void_p)),
-    ('app_data', c_void_p),
-]
-assert sizeof(evp_cipher_st) == 52, sizeof(evp_cipher_st)
-assert alignment(evp_cipher_st) == 4, alignment(evp_cipher_st)
-class evp_cipher_info_st(Structure):
-    pass
-EVP_CIPHER = evp_cipher_st
-evp_cipher_info_st._fields_ = [
-    ('cipher', POINTER(EVP_CIPHER)),
-    ('iv', c_ubyte * 16),
-]
-assert sizeof(evp_cipher_info_st) == 20, sizeof(evp_cipher_info_st)
-assert alignment(evp_cipher_info_st) == 4, alignment(evp_cipher_info_st)
-EVP_CIPHER_INFO = evp_cipher_info_st
-evp_cipher_ctx_st._fields_ = [
-    ('cipher', POINTER(EVP_CIPHER)),
-    ('engine', POINTER(ENGINE)),
-    ('encrypt', c_int),
-    ('buf_len', c_int),
-    ('oiv', c_ubyte * 16),
-    ('iv', c_ubyte * 16),
-    ('buf', c_ubyte * 32),
-    ('num', c_int),
-    ('app_data', c_void_p),
-    ('key_len', c_int),
-    ('flags', c_ulong),
-    ('cipher_data', c_void_p),
-    ('final_used', c_int),
-    ('block_mask', c_int),
-    ('final', c_ubyte * 32),
-]
-assert sizeof(evp_cipher_ctx_st) == 140, sizeof(evp_cipher_ctx_st)
-assert alignment(evp_cipher_ctx_st) == 4, alignment(evp_cipher_ctx_st)
-class evp_Encode_Ctx_st(Structure):
-    pass
-evp_Encode_Ctx_st._fields_ = [
-    ('num', c_int),
-    ('length', c_int),
-    ('enc_data', c_ubyte * 80),
-    ('line_num', c_int),
-    ('expect_nl', c_int),
-]
-assert sizeof(evp_Encode_Ctx_st) == 96, sizeof(evp_Encode_Ctx_st)
-assert alignment(evp_Encode_Ctx_st) == 4, alignment(evp_Encode_Ctx_st)
-EVP_ENCODE_CTX = evp_Encode_Ctx_st
-EVP_PBE_KEYGEN = CFUNCTYPE(c_int, POINTER(EVP_CIPHER_CTX), STRING, c_int, POINTER(ASN1_TYPE), POINTER(EVP_CIPHER), POINTER(EVP_MD), c_int)
-class lhash_node_st(Structure):
-    pass
-lhash_node_st._fields_ = [
-    ('data', c_void_p),
-    ('next', POINTER(lhash_node_st)),
-    ('hash', c_ulong),
-]
-assert sizeof(lhash_node_st) == 12, sizeof(lhash_node_st)
-assert alignment(lhash_node_st) == 4, alignment(lhash_node_st)
-LHASH_NODE = lhash_node_st
-LHASH_COMP_FN_TYPE = CFUNCTYPE(c_int, c_void_p, c_void_p)
-LHASH_HASH_FN_TYPE = CFUNCTYPE(c_ulong, c_void_p)
-LHASH_DOALL_FN_TYPE = CFUNCTYPE(None, c_void_p)
-LHASH_DOALL_ARG_FN_TYPE = CFUNCTYPE(None, c_void_p, c_void_p)
-class lhash_st(Structure):
-    pass
-lhash_st._fields_ = [
-    ('b', POINTER(POINTER(LHASH_NODE))),
-    ('comp', LHASH_COMP_FN_TYPE),
-    ('hash', LHASH_HASH_FN_TYPE),
-    ('num_nodes', c_uint),
-    ('num_alloc_nodes', c_uint),
-    ('p', c_uint),
-    ('pmax', c_uint),
-    ('up_load', c_ulong),
-    ('down_load', c_ulong),
-    ('num_items', c_ulong),
-    ('num_expands', c_ulong),
-    ('num_expand_reallocs', c_ulong),
-    ('num_contracts', c_ulong),
-    ('num_contract_reallocs', c_ulong),
-    ('num_hash_calls', c_ulong),
-    ('num_comp_calls', c_ulong),
-    ('num_insert', c_ulong),
-    ('num_replace', c_ulong),
-    ('num_delete', c_ulong),
-    ('num_no_delete', c_ulong),
-    ('num_retrieve', c_ulong),
-    ('num_retrieve_miss', c_ulong),
-    ('num_hash_comps', c_ulong),
-    ('error', c_int),
-]
-assert sizeof(lhash_st) == 96, sizeof(lhash_st)
-assert alignment(lhash_st) == 4, alignment(lhash_st)
-LHASH = lhash_st
-class MD2state_st(Structure):
-    pass
-MD2state_st._fields_ = [
-    ('num', c_int),
-    ('data', c_ubyte * 16),
-    ('cksm', c_uint * 16),
-    ('state', c_uint * 16),
-]
-assert sizeof(MD2state_st) == 148, sizeof(MD2state_st)
-assert alignment(MD2state_st) == 4, alignment(MD2state_st)
-MD2_CTX = MD2state_st
-class MD4state_st(Structure):
-    pass
-MD4state_st._fields_ = [
-    ('A', c_uint),
-    ('B', c_uint),
-    ('C', c_uint),
-    ('D', c_uint),
-    ('Nl', c_uint),
-    ('Nh', c_uint),
-    ('data', c_uint * 16),
-    ('num', c_int),
-]
-assert sizeof(MD4state_st) == 92, sizeof(MD4state_st)
-assert alignment(MD4state_st) == 4, alignment(MD4state_st)
-MD4_CTX = MD4state_st
-class MD5state_st(Structure):
-    pass
-MD5state_st._fields_ = [
-    ('A', c_uint),
-    ('B', c_uint),
-    ('C', c_uint),
-    ('D', c_uint),
-    ('Nl', c_uint),
-    ('Nh', c_uint),
-    ('data', c_uint * 16),
-    ('num', c_int),
-]
-assert sizeof(MD5state_st) == 92, sizeof(MD5state_st)
-assert alignment(MD5state_st) == 4, alignment(MD5state_st)
-MD5_CTX = MD5state_st
-class mdc2_ctx_st(Structure):
-    pass
-mdc2_ctx_st._fields_ = [
-    ('num', c_int),
-    ('data', c_ubyte * 8),
-    ('h', DES_cblock),
-    ('hh', DES_cblock),
-    ('pad_type', c_int),
-]
-assert sizeof(mdc2_ctx_st) == 32, sizeof(mdc2_ctx_st)
-assert alignment(mdc2_ctx_st) == 4, alignment(mdc2_ctx_st)
-MDC2_CTX = mdc2_ctx_st
-class obj_name_st(Structure):
-    pass
-obj_name_st._fields_ = [
-    ('type', c_int),
-    ('alias', c_int),
-    ('name', STRING),
-    ('data', STRING),
-]
-assert sizeof(obj_name_st) == 16, sizeof(obj_name_st)
-assert alignment(obj_name_st) == 4, alignment(obj_name_st)
-OBJ_NAME = obj_name_st
-ASN1_TIME = asn1_string_st
-ASN1_NULL = c_int
-EVP_PKEY = evp_pkey_st
-class x509_st(Structure):
-    pass
-X509 = x509_st
-class X509_algor_st(Structure):
-    pass
-X509_ALGOR = X509_algor_st
-class X509_crl_st(Structure):
-    pass
-X509_CRL = X509_crl_st
-class X509_name_st(Structure):
-    pass
-X509_NAME = X509_name_st
-class x509_store_st(Structure):
-    pass
-X509_STORE = x509_store_st
-class x509_store_ctx_st(Structure):
-    pass
-X509_STORE_CTX = x509_store_ctx_st
-engine_st._fields_ = [
-]
-class PEM_Encode_Seal_st(Structure):
-    pass
-PEM_Encode_Seal_st._fields_ = [
-    ('encode', EVP_ENCODE_CTX),
-    ('md', EVP_MD_CTX),
-    ('cipher', EVP_CIPHER_CTX),
-]
-assert sizeof(PEM_Encode_Seal_st) == 252, sizeof(PEM_Encode_Seal_st)
-assert alignment(PEM_Encode_Seal_st) == 4, alignment(PEM_Encode_Seal_st)
-PEM_ENCODE_SEAL_CTX = PEM_Encode_Seal_st
-class pem_recip_st(Structure):
-    pass
-pem_recip_st._fields_ = [
-    ('name', STRING),
-    ('dn', POINTER(X509_NAME)),
-    ('cipher', c_int),
-    ('key_enc', c_int),
-]
-assert sizeof(pem_recip_st) == 16, sizeof(pem_recip_st)
-assert alignment(pem_recip_st) == 4, alignment(pem_recip_st)
-PEM_USER = pem_recip_st
-class pem_ctx_st(Structure):
-    pass
-class N10pem_ctx_st4DOLLAR_16E(Structure):
-    pass
-N10pem_ctx_st4DOLLAR_16E._fields_ = [
-    ('version', c_int),
-    ('mode', c_int),
-]
-assert sizeof(N10pem_ctx_st4DOLLAR_16E) == 8, sizeof(N10pem_ctx_st4DOLLAR_16E)
-assert alignment(N10pem_ctx_st4DOLLAR_16E) == 4, alignment(N10pem_ctx_st4DOLLAR_16E)
-class N10pem_ctx_st4DOLLAR_17E(Structure):
-    pass
-N10pem_ctx_st4DOLLAR_17E._fields_ = [
-    ('cipher', c_int),
-]
-assert sizeof(N10pem_ctx_st4DOLLAR_17E) == 4, sizeof(N10pem_ctx_st4DOLLAR_17E)
-assert alignment(N10pem_ctx_st4DOLLAR_17E) == 4, alignment(N10pem_ctx_st4DOLLAR_17E)
-pem_ctx_st._fields_ = [
-    ('type', c_int),
-    ('proc_type', N10pem_ctx_st4DOLLAR_16E),
-    ('domain', STRING),
-    ('DEK_info', N10pem_ctx_st4DOLLAR_17E),
-    ('originator', POINTER(PEM_USER)),
-    ('num_recipient', c_int),
-    ('recipient', POINTER(POINTER(PEM_USER))),
-    ('x509_chain', POINTER(STACK)),
-    ('md', POINTER(EVP_MD)),
-    ('md_enc', c_int),
-    ('md_len', c_int),
-    ('md_data', STRING),
-    ('dec', POINTER(EVP_CIPHER)),
-    ('key_len', c_int),
-    ('key', POINTER(c_ubyte)),
-    ('data_enc', c_int),
-    ('data_len', c_int),
-    ('data', POINTER(c_ubyte)),
-]
-assert sizeof(pem_ctx_st) == 76, sizeof(pem_ctx_st)
-assert alignment(pem_ctx_st) == 4, alignment(pem_ctx_st)
-PEM_CTX = pem_ctx_st
-pem_password_cb = CFUNCTYPE(c_int, STRING, c_int, c_int, c_void_p)
-class pkcs7_issuer_and_serial_st(Structure):
-    pass
-pkcs7_issuer_and_serial_st._fields_ = [
-    ('issuer', POINTER(X509_NAME)),
-    ('serial', POINTER(ASN1_INTEGER)),
-]
-assert sizeof(pkcs7_issuer_and_serial_st) == 8, sizeof(pkcs7_issuer_and_serial_st)
-assert alignment(pkcs7_issuer_and_serial_st) == 4, alignment(pkcs7_issuer_and_serial_st)
-PKCS7_ISSUER_AND_SERIAL = pkcs7_issuer_and_serial_st
-class pkcs7_signer_info_st(Structure):
-    pass
-pkcs7_signer_info_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('issuer_and_serial', POINTER(PKCS7_ISSUER_AND_SERIAL)),
-    ('digest_alg', POINTER(X509_ALGOR)),
-    ('auth_attr', POINTER(STACK)),
-    ('digest_enc_alg', POINTER(X509_ALGOR)),
-    ('enc_digest', POINTER(ASN1_OCTET_STRING)),
-    ('unauth_attr', POINTER(STACK)),
-    ('pkey', POINTER(EVP_PKEY)),
-]
-assert sizeof(pkcs7_signer_info_st) == 32, sizeof(pkcs7_signer_info_st)
-assert alignment(pkcs7_signer_info_st) == 4, alignment(pkcs7_signer_info_st)
-PKCS7_SIGNER_INFO = pkcs7_signer_info_st
-class pkcs7_recip_info_st(Structure):
-    pass
-pkcs7_recip_info_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('issuer_and_serial', POINTER(PKCS7_ISSUER_AND_SERIAL)),
-    ('key_enc_algor', POINTER(X509_ALGOR)),
-    ('enc_key', POINTER(ASN1_OCTET_STRING)),
-    ('cert', POINTER(X509)),
-]
-assert sizeof(pkcs7_recip_info_st) == 20, sizeof(pkcs7_recip_info_st)
-assert alignment(pkcs7_recip_info_st) == 4, alignment(pkcs7_recip_info_st)
-PKCS7_RECIP_INFO = pkcs7_recip_info_st
-class pkcs7_signed_st(Structure):
-    pass
-class pkcs7_st(Structure):
-    pass
-pkcs7_signed_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('md_algs', POINTER(STACK)),
-    ('cert', POINTER(STACK)),
-    ('crl', POINTER(STACK)),
-    ('signer_info', POINTER(STACK)),
-    ('contents', POINTER(pkcs7_st)),
-]
-assert sizeof(pkcs7_signed_st) == 24, sizeof(pkcs7_signed_st)
-assert alignment(pkcs7_signed_st) == 4, alignment(pkcs7_signed_st)
-PKCS7_SIGNED = pkcs7_signed_st
-class pkcs7_enc_content_st(Structure):
-    pass
-pkcs7_enc_content_st._fields_ = [
-    ('content_type', POINTER(ASN1_OBJECT)),
-    ('algorithm', POINTER(X509_ALGOR)),
-    ('enc_data', POINTER(ASN1_OCTET_STRING)),
-    ('cipher', POINTER(EVP_CIPHER)),
-]
-assert sizeof(pkcs7_enc_content_st) == 16, sizeof(pkcs7_enc_content_st)
-assert alignment(pkcs7_enc_content_st) == 4, alignment(pkcs7_enc_content_st)
-PKCS7_ENC_CONTENT = pkcs7_enc_content_st
-class pkcs7_enveloped_st(Structure):
-    pass
-pkcs7_enveloped_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('recipientinfo', POINTER(STACK)),
-    ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
-]
-assert sizeof(pkcs7_enveloped_st) == 12, sizeof(pkcs7_enveloped_st)
-assert alignment(pkcs7_enveloped_st) == 4, alignment(pkcs7_enveloped_st)
-PKCS7_ENVELOPE = pkcs7_enveloped_st
-class pkcs7_signedandenveloped_st(Structure):
-    pass
-pkcs7_signedandenveloped_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('md_algs', POINTER(STACK)),
-    ('cert', POINTER(STACK)),
-    ('crl', POINTER(STACK)),
-    ('signer_info', POINTER(STACK)),
-    ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
-    ('recipientinfo', POINTER(STACK)),
-]
-assert sizeof(pkcs7_signedandenveloped_st) == 28, sizeof(pkcs7_signedandenveloped_st)
-assert alignment(pkcs7_signedandenveloped_st) == 4, alignment(pkcs7_signedandenveloped_st)
-PKCS7_SIGN_ENVELOPE = pkcs7_signedandenveloped_st
-class pkcs7_digest_st(Structure):
-    pass
-pkcs7_digest_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('md', POINTER(X509_ALGOR)),
-    ('contents', POINTER(pkcs7_st)),
-    ('digest', POINTER(ASN1_OCTET_STRING)),
-]
-assert sizeof(pkcs7_digest_st) == 16, sizeof(pkcs7_digest_st)
-assert alignment(pkcs7_digest_st) == 4, alignment(pkcs7_digest_st)
-PKCS7_DIGEST = pkcs7_digest_st
-class pkcs7_encrypted_st(Structure):
-    pass
-pkcs7_encrypted_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('enc_data', POINTER(PKCS7_ENC_CONTENT)),
-]
-assert sizeof(pkcs7_encrypted_st) == 8, sizeof(pkcs7_encrypted_st)
-assert alignment(pkcs7_encrypted_st) == 4, alignment(pkcs7_encrypted_st)
-PKCS7_ENCRYPT = pkcs7_encrypted_st
-class N8pkcs7_st4DOLLAR_15E(Union):
-    pass
-N8pkcs7_st4DOLLAR_15E._fields_ = [
-    ('ptr', STRING),
-    ('data', POINTER(ASN1_OCTET_STRING)),
-    ('sign', POINTER(PKCS7_SIGNED)),
-    ('enveloped', POINTER(PKCS7_ENVELOPE)),
-    ('signed_and_enveloped', POINTER(PKCS7_SIGN_ENVELOPE)),
-    ('digest', POINTER(PKCS7_DIGEST)),
-    ('encrypted', POINTER(PKCS7_ENCRYPT)),
-    ('other', POINTER(ASN1_TYPE)),
-]
-assert sizeof(N8pkcs7_st4DOLLAR_15E) == 4, sizeof(N8pkcs7_st4DOLLAR_15E)
-assert alignment(N8pkcs7_st4DOLLAR_15E) == 4, alignment(N8pkcs7_st4DOLLAR_15E)
-pkcs7_st._fields_ = [
-    ('asn1', POINTER(c_ubyte)),
-    ('length', c_long),
-    ('state', c_int),
-    ('detached', c_int),
-    ('type', POINTER(ASN1_OBJECT)),
-    ('d', N8pkcs7_st4DOLLAR_15E),
-]
-assert sizeof(pkcs7_st) == 24, sizeof(pkcs7_st)
-assert alignment(pkcs7_st) == 4, alignment(pkcs7_st)
-PKCS7 = pkcs7_st
-class rc2_key_st(Structure):
-    pass
-rc2_key_st._fields_ = [
-    ('data', c_uint * 64),
-]
-assert sizeof(rc2_key_st) == 256, sizeof(rc2_key_st)
-assert alignment(rc2_key_st) == 4, alignment(rc2_key_st)
-RC2_KEY = rc2_key_st
-class rc4_key_st(Structure):
-    pass
-rc4_key_st._fields_ = [
-    ('x', c_ubyte),
-    ('y', c_ubyte),
-    ('data', c_ubyte * 256),
-]
-assert sizeof(rc4_key_st) == 258, sizeof(rc4_key_st)
-assert alignment(rc4_key_st) == 1, alignment(rc4_key_st)
-RC4_KEY = rc4_key_st
-class rc5_key_st(Structure):
-    pass
-rc5_key_st._fields_ = [
-    ('rounds', c_int),
-    ('data', c_ulong * 34),
-]
-assert sizeof(rc5_key_st) == 140, sizeof(rc5_key_st)
-assert alignment(rc5_key_st) == 4, alignment(rc5_key_st)
-RC5_32_KEY = rc5_key_st
-class RIPEMD160state_st(Structure):
-    pass
-RIPEMD160state_st._fields_ = [
-    ('A', c_uint),
-    ('B', c_uint),
-    ('C', c_uint),
-    ('D', c_uint),
-    ('E', c_uint),
-    ('Nl', c_uint),
-    ('Nh', c_uint),
-    ('data', c_uint * 16),
-    ('num', c_int),
-]
-assert sizeof(RIPEMD160state_st) == 96, sizeof(RIPEMD160state_st)
-assert alignment(RIPEMD160state_st) == 4, alignment(RIPEMD160state_st)
-RIPEMD160_CTX = RIPEMD160state_st
-RSA = rsa_st
-class rsa_meth_st(Structure):
-    pass
-rsa_meth_st._fields_ = [
-    ('name', STRING),
-    ('rsa_pub_enc', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
-    ('rsa_pub_dec', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
-    ('rsa_priv_enc', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
-    ('rsa_priv_dec', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), POINTER(c_ubyte), POINTER(RSA), c_int)),
-    ('rsa_mod_exp', CFUNCTYPE(c_int, POINTER(BIGNUM), POINTER(BIGNUM), POINTER(RSA))),
-    ('bn_mod_exp', CFUNCTYPE(c_int, POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BIGNUM), POINTER(BN_CTX), POINTER(BN_MONT_CTX))),
-    ('init', CFUNCTYPE(c_int, POINTER(RSA))),
-    ('finish', CFUNCTYPE(c_int, POINTER(RSA))),
-    ('flags', c_int),
-    ('app_data', STRING),
-    ('rsa_sign', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), c_uint, POINTER(c_ubyte), POINTER(c_uint), POINTER(RSA))),
-    ('rsa_verify', CFUNCTYPE(c_int, c_int, POINTER(c_ubyte), c_uint, POINTER(c_ubyte), c_uint, POINTER(RSA))),
-]
-assert sizeof(rsa_meth_st) == 52, sizeof(rsa_meth_st)
-assert alignment(rsa_meth_st) == 4, alignment(rsa_meth_st)
-RSA_METHOD = rsa_meth_st
-rsa_st._fields_ = [
-    ('pad', c_int),
-    ('version', c_long),
-    ('meth', POINTER(RSA_METHOD)),
-    ('engine', POINTER(ENGINE)),
-    ('n', POINTER(BIGNUM)),
-    ('e', POINTER(BIGNUM)),
-    ('d', POINTER(BIGNUM)),
-    ('p', POINTER(BIGNUM)),
-    ('q', POINTER(BIGNUM)),
-    ('dmp1', POINTER(BIGNUM)),
-    ('dmq1', POINTER(BIGNUM)),
-    ('iqmp', POINTER(BIGNUM)),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('references', c_int),
-    ('flags', c_int),
-    ('_method_mod_n', POINTER(BN_MONT_CTX)),
-    ('_method_mod_p', POINTER(BN_MONT_CTX)),
-    ('_method_mod_q', POINTER(BN_MONT_CTX)),
-    ('bignum_data', STRING),
-    ('blinding', POINTER(BN_BLINDING)),
-]
-assert sizeof(rsa_st) == 84, sizeof(rsa_st)
-assert alignment(rsa_st) == 4, alignment(rsa_st)
-openssl_fptr = CFUNCTYPE(None)
-class SHAstate_st(Structure):
-    pass
-SHAstate_st._fields_ = [
-    ('h0', c_uint),
-    ('h1', c_uint),
-    ('h2', c_uint),
-    ('h3', c_uint),
-    ('h4', c_uint),
-    ('Nl', c_uint),
-    ('Nh', c_uint),
-    ('data', c_uint * 16),
-    ('num', c_int),
-]
-assert sizeof(SHAstate_st) == 96, sizeof(SHAstate_st)
-assert alignment(SHAstate_st) == 4, alignment(SHAstate_st)
-SHA_CTX = SHAstate_st
-class ssl_st(Structure):
-    pass
-ssl_crock_st = POINTER(ssl_st)
-class ssl_cipher_st(Structure):
-    pass
-ssl_cipher_st._fields_ = [
-    ('valid', c_int),
-    ('name', STRING),
-    ('id', c_ulong),
-    ('algorithms', c_ulong),
-    ('algo_strength', c_ulong),
-    ('algorithm2', c_ulong),
-    ('strength_bits', c_int),
-    ('alg_bits', c_int),
-    ('mask', c_ulong),
-    ('mask_strength', c_ulong),
-]
-assert sizeof(ssl_cipher_st) == 40, sizeof(ssl_cipher_st)
-assert alignment(ssl_cipher_st) == 4, alignment(ssl_cipher_st)
-SSL_CIPHER = ssl_cipher_st
-SSL = ssl_st
-class ssl_ctx_st(Structure):
-    pass
-SSL_CTX = ssl_ctx_st
-class ssl_method_st(Structure):
-    pass
-class ssl3_enc_method(Structure):
-    pass
-ssl_method_st._fields_ = [
-    ('version', c_int),
-    ('ssl_new', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('ssl_clear', CFUNCTYPE(None, POINTER(SSL))),
-    ('ssl_free', CFUNCTYPE(None, POINTER(SSL))),
-    ('ssl_accept', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('ssl_connect', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('ssl_read', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
-    ('ssl_peek', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
-    ('ssl_write', CFUNCTYPE(c_int, POINTER(SSL), c_void_p, c_int)),
-    ('ssl_shutdown', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('ssl_renegotiate', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('ssl_renegotiate_check', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('ssl_ctrl', CFUNCTYPE(c_long, POINTER(SSL), c_int, c_long, c_void_p)),
-    ('ssl_ctx_ctrl', CFUNCTYPE(c_long, POINTER(SSL_CTX), c_int, c_long, c_void_p)),
-    ('get_cipher_by_char', CFUNCTYPE(POINTER(SSL_CIPHER), POINTER(c_ubyte))),
-    ('put_cipher_by_char', CFUNCTYPE(c_int, POINTER(SSL_CIPHER), POINTER(c_ubyte))),
-    ('ssl_pending', CFUNCTYPE(c_int, POINTER(SSL))),
-    ('num_ciphers', CFUNCTYPE(c_int)),
-    ('get_cipher', CFUNCTYPE(POINTER(SSL_CIPHER), c_uint)),
-    ('get_ssl_method', CFUNCTYPE(POINTER(ssl_method_st), c_int)),
-    ('get_timeout', CFUNCTYPE(c_long)),
-    ('ssl3_enc', POINTER(ssl3_enc_method)),
-    ('ssl_version', CFUNCTYPE(c_int)),
-    ('ssl_callback_ctrl', CFUNCTYPE(c_long, POINTER(SSL), c_int, CFUNCTYPE(None))),
-    ('ssl_ctx_callback_ctrl', CFUNCTYPE(c_long, POINTER(SSL_CTX), c_int, CFUNCTYPE(None))),
-]
-assert sizeof(ssl_method_st) == 100, sizeof(ssl_method_st)
-assert alignment(ssl_method_st) == 4, alignment(ssl_method_st)
-ssl3_enc_method._fields_ = [
-]
-SSL_METHOD = ssl_method_st
-class ssl_session_st(Structure):
-    pass
-class sess_cert_st(Structure):
-    pass
-ssl_session_st._fields_ = [
-    ('ssl_version', c_int),
-    ('key_arg_length', c_uint),
-    ('key_arg', c_ubyte * 8),
-    ('master_key_length', c_int),
-    ('master_key', c_ubyte * 48),
-    ('session_id_length', c_uint),
-    ('session_id', c_ubyte * 32),
-    ('sid_ctx_length', c_uint),
-    ('sid_ctx', c_ubyte * 32),
-    ('not_resumable', c_int),
-    ('sess_cert', POINTER(sess_cert_st)),
-    ('peer', POINTER(X509)),
-    ('verify_result', c_long),
-    ('references', c_int),
-    ('timeout', c_long),
-    ('time', c_long),
-    ('compress_meth', c_int),
-    ('cipher', POINTER(SSL_CIPHER)),
-    ('cipher_id', c_ulong),
-    ('ciphers', POINTER(STACK)),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('prev', POINTER(ssl_session_st)),
-    ('next', POINTER(ssl_session_st)),
-]
-assert sizeof(ssl_session_st) == 200, sizeof(ssl_session_st)
-assert alignment(ssl_session_st) == 4, alignment(ssl_session_st)
-sess_cert_st._fields_ = [
-]
-SSL_SESSION = ssl_session_st
-GEN_SESSION_CB = CFUNCTYPE(c_int, POINTER(SSL), POINTER(c_ubyte), POINTER(c_uint))
-class ssl_comp_st(Structure):
-    pass
-ssl_comp_st._fields_ = [
-    ('id', c_int),
-    ('name', STRING),
-    ('method', POINTER(COMP_METHOD)),
-]
-assert sizeof(ssl_comp_st) == 12, sizeof(ssl_comp_st)
-assert alignment(ssl_comp_st) == 4, alignment(ssl_comp_st)
-SSL_COMP = ssl_comp_st
-class N10ssl_ctx_st4DOLLAR_18E(Structure):
-    pass
-N10ssl_ctx_st4DOLLAR_18E._fields_ = [
-    ('sess_connect', c_int),
-    ('sess_connect_renegotiate', c_int),
-    ('sess_connect_good', c_int),
-    ('sess_accept', c_int),
-    ('sess_accept_renegotiate', c_int),
-    ('sess_accept_good', c_int),
-    ('sess_miss', c_int),
-    ('sess_timeout', c_int),
-    ('sess_cache_full', c_int),
-    ('sess_hit', c_int),
-    ('sess_cb_hit', c_int),
-]
-assert sizeof(N10ssl_ctx_st4DOLLAR_18E) == 44, sizeof(N10ssl_ctx_st4DOLLAR_18E)
-assert alignment(N10ssl_ctx_st4DOLLAR_18E) == 4, alignment(N10ssl_ctx_st4DOLLAR_18E)
-class cert_st(Structure):
-    pass
-ssl_ctx_st._fields_ = [
-    ('method', POINTER(SSL_METHOD)),
-    ('cipher_list', POINTER(STACK)),
-    ('cipher_list_by_id', POINTER(STACK)),
-    ('cert_store', POINTER(x509_store_st)),
-    ('sessions', POINTER(lhash_st)),
-    ('session_cache_size', c_ulong),
-    ('session_cache_head', POINTER(ssl_session_st)),
-    ('session_cache_tail', POINTER(ssl_session_st)),
-    ('session_cache_mode', c_int),
-    ('session_timeout', c_long),
-    ('new_session_cb', CFUNCTYPE(c_int, POINTER(ssl_st), POINTER(SSL_SESSION))),
-    ('remove_session_cb', CFUNCTYPE(None, POINTER(ssl_ctx_st), POINTER(SSL_SESSION))),
-    ('get_session_cb', CFUNCTYPE(POINTER(SSL_SESSION), POINTER(ssl_st), POINTER(c_ubyte), c_int, POINTER(c_int))),
-    ('stats', N10ssl_ctx_st4DOLLAR_18E),
-    ('references', c_int),
-    ('app_verify_callback', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), c_void_p)),
-    ('app_verify_arg', c_void_p),
-    ('default_passwd_callback', POINTER(pem_password_cb)),
-    ('default_passwd_callback_userdata', c_void_p),
-    ('client_cert_cb', CFUNCTYPE(c_int, POINTER(SSL), POINTER(POINTER(X509)), POINTER(POINTER(EVP_PKEY)))),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('rsa_md5', POINTER(EVP_MD)),
-    ('md5', POINTER(EVP_MD)),
-    ('sha1', POINTER(EVP_MD)),
-    ('extra_certs', POINTER(STACK)),
-    ('comp_methods', POINTER(STACK)),
-    ('info_callback', CFUNCTYPE(None, POINTER(SSL), c_int, c_int)),
-    ('client_CA', POINTER(STACK)),
-    ('options', c_ulong),
-    ('mode', c_ulong),
-    ('max_cert_list', c_long),
-    ('cert', POINTER(cert_st)),
-    ('read_ahead', c_int),
-    ('msg_callback', CFUNCTYPE(None, c_int, c_int, c_int, c_void_p, c_ulong, POINTER(SSL), c_void_p)),
-    ('msg_callback_arg', c_void_p),
-    ('verify_mode', c_int),
-    ('verify_depth', c_int),
-    ('sid_ctx_length', c_uint),
-    ('sid_ctx', c_ubyte * 32),
-    ('default_verify_callback', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
-    ('generate_session_id', GEN_SESSION_CB),
-    ('purpose', c_int),
-    ('trust', c_int),
-    ('quiet_shutdown', c_int),
-]
-assert sizeof(ssl_ctx_st) == 248, sizeof(ssl_ctx_st)
-assert alignment(ssl_ctx_st) == 4, alignment(ssl_ctx_st)
-cert_st._fields_ = [
-]
-class ssl2_state_st(Structure):
-    pass
-class ssl3_state_st(Structure):
-    pass
-ssl_st._fields_ = [
-    ('version', c_int),
-    ('type', c_int),
-    ('method', POINTER(SSL_METHOD)),
-    ('rbio', POINTER(BIO)),
-    ('wbio', POINTER(BIO)),
-    ('bbio', POINTER(BIO)),
-    ('rwstate', c_int),
-    ('in_handshake', c_int),
-    ('handshake_func', CFUNCTYPE(c_int)),
-    ('server', c_int),
-    ('new_session', c_int),
-    ('quiet_shutdown', c_int),
-    ('shutdown', c_int),
-    ('state', c_int),
-    ('rstate', c_int),
-    ('init_buf', POINTER(BUF_MEM)),
-    ('init_msg', c_void_p),
-    ('init_num', c_int),
-    ('init_off', c_int),
-    ('packet', POINTER(c_ubyte)),
-    ('packet_length', c_uint),
-    ('s2', POINTER(ssl2_state_st)),
-    ('s3', POINTER(ssl3_state_st)),
-    ('read_ahead', c_int),
-    ('msg_callback', CFUNCTYPE(None, c_int, c_int, c_int, c_void_p, c_ulong, POINTER(SSL), c_void_p)),
-    ('msg_callback_arg', c_void_p),
-    ('hit', c_int),
-    ('purpose', c_int),
-    ('trust', c_int),
-    ('cipher_list', POINTER(STACK)),
-    ('cipher_list_by_id', POINTER(STACK)),
-    ('enc_read_ctx', POINTER(EVP_CIPHER_CTX)),
-    ('read_hash', POINTER(EVP_MD)),
-    ('expand', POINTER(COMP_CTX)),
-    ('enc_write_ctx', POINTER(EVP_CIPHER_CTX)),
-    ('write_hash', POINTER(EVP_MD)),
-    ('compress', POINTER(COMP_CTX)),
-    ('cert', POINTER(cert_st)),
-    ('sid_ctx_length', c_uint),
-    ('sid_ctx', c_ubyte * 32),
-    ('session', POINTER(SSL_SESSION)),
-    ('generate_session_id', GEN_SESSION_CB),
-    ('verify_mode', c_int),
-    ('verify_depth', c_int),
-    ('verify_callback', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
-    ('info_callback', CFUNCTYPE(None, POINTER(SSL), c_int, c_int)),
-    ('error', c_int),
-    ('error_code', c_int),
-    ('ctx', POINTER(SSL_CTX)),
-    ('debug', c_int),
-    ('verify_result', c_long),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('client_CA', POINTER(STACK)),
-    ('references', c_int),
-    ('options', c_ulong),
-    ('mode', c_ulong),
-    ('max_cert_list', c_long),
-    ('first_packet', c_int),
-    ('client_version', c_int),
-]
-assert sizeof(ssl_st) == 268, sizeof(ssl_st)
-assert alignment(ssl_st) == 4, alignment(ssl_st)
-class N13ssl2_state_st4DOLLAR_19E(Structure):
-    pass
-N13ssl2_state_st4DOLLAR_19E._fields_ = [
-    ('conn_id_length', c_uint),
-    ('cert_type', c_uint),
-    ('cert_length', c_uint),
-    ('csl', c_uint),
-    ('clear', c_uint),
-    ('enc', c_uint),
-    ('ccl', c_ubyte * 32),
-    ('cipher_spec_length', c_uint),
-    ('session_id_length', c_uint),
-    ('clen', c_uint),
-    ('rlen', c_uint),
-]
-assert sizeof(N13ssl2_state_st4DOLLAR_19E) == 72, sizeof(N13ssl2_state_st4DOLLAR_19E)
-assert alignment(N13ssl2_state_st4DOLLAR_19E) == 4, alignment(N13ssl2_state_st4DOLLAR_19E)
-ssl2_state_st._fields_ = [
-    ('three_byte_header', c_int),
-    ('clear_text', c_int),
-    ('escape', c_int),
-    ('ssl2_rollback', c_int),
-    ('wnum', c_uint),
-    ('wpend_tot', c_int),
-    ('wpend_buf', POINTER(c_ubyte)),
-    ('wpend_off', c_int),
-    ('wpend_len', c_int),
-    ('wpend_ret', c_int),
-    ('rbuf_left', c_int),
-    ('rbuf_offs', c_int),
-    ('rbuf', POINTER(c_ubyte)),
-    ('wbuf', POINTER(c_ubyte)),
-    ('write_ptr', POINTER(c_ubyte)),
-    ('padding', c_uint),
-    ('rlength', c_uint),
-    ('ract_data_length', c_int),
-    ('wlength', c_uint),
-    ('wact_data_length', c_int),
-    ('ract_data', POINTER(c_ubyte)),
-    ('wact_data', POINTER(c_ubyte)),
-    ('mac_data', POINTER(c_ubyte)),
-    ('read_key', POINTER(c_ubyte)),
-    ('write_key', POINTER(c_ubyte)),
-    ('challenge_length', c_uint),
-    ('challenge', c_ubyte * 32),
-    ('conn_id_length', c_uint),
-    ('conn_id', c_ubyte * 16),
-    ('key_material_length', c_uint),
-    ('key_material', c_ubyte * 48),
-    ('read_sequence', c_ulong),
-    ('write_sequence', c_ulong),
-    ('tmp', N13ssl2_state_st4DOLLAR_19E),
-]
-assert sizeof(ssl2_state_st) == 288, sizeof(ssl2_state_st)
-assert alignment(ssl2_state_st) == 4, alignment(ssl2_state_st)
-SSL2_STATE = ssl2_state_st
-class ssl3_record_st(Structure):
-    pass
-ssl3_record_st._fields_ = [
-    ('type', c_int),
-    ('length', c_uint),
-    ('off', c_uint),
-    ('data', POINTER(c_ubyte)),
-    ('input', POINTER(c_ubyte)),
-    ('comp', POINTER(c_ubyte)),
-]
-assert sizeof(ssl3_record_st) == 24, sizeof(ssl3_record_st)
-assert alignment(ssl3_record_st) == 4, alignment(ssl3_record_st)
-SSL3_RECORD = ssl3_record_st
-class ssl3_buffer_st(Structure):
-    pass
-size_t = __darwin_size_t
-ssl3_buffer_st._fields_ = [
-    ('buf', POINTER(c_ubyte)),
-    ('len', size_t),
-    ('offset', c_int),
-    ('left', c_int),
-]
-assert sizeof(ssl3_buffer_st) == 16, sizeof(ssl3_buffer_st)
-assert alignment(ssl3_buffer_st) == 4, alignment(ssl3_buffer_st)
-SSL3_BUFFER = ssl3_buffer_st
-class N13ssl3_state_st4DOLLAR_20E(Structure):
-    pass
-N13ssl3_state_st4DOLLAR_20E._fields_ = [
-    ('cert_verify_md', c_ubyte * 72),
-    ('finish_md', c_ubyte * 72),
-    ('finish_md_len', c_int),
-    ('peer_finish_md', c_ubyte * 72),
-    ('peer_finish_md_len', c_int),
-    ('message_size', c_ulong),
-    ('message_type', c_int),
-    ('new_cipher', POINTER(SSL_CIPHER)),
-    ('dh', POINTER(DH)),
-    ('next_state', c_int),
-    ('reuse_message', c_int),
-    ('cert_req', c_int),
-    ('ctype_num', c_int),
-    ('ctype', c_char * 7),
-    ('ca_names', POINTER(STACK)),
-    ('use_rsa_tmp', c_int),
-    ('key_block_length', c_int),
-    ('key_block', POINTER(c_ubyte)),
-    ('new_sym_enc', POINTER(EVP_CIPHER)),
-    ('new_hash', POINTER(EVP_MD)),
-    ('new_compression', POINTER(SSL_COMP)),
-    ('cert_request', c_int),
-]
-assert sizeof(N13ssl3_state_st4DOLLAR_20E) == 296, sizeof(N13ssl3_state_st4DOLLAR_20E)
-assert alignment(N13ssl3_state_st4DOLLAR_20E) == 4, alignment(N13ssl3_state_st4DOLLAR_20E)
-ssl3_state_st._fields_ = [
-    ('flags', c_long),
-    ('delay_buf_pop_ret', c_int),
-    ('read_sequence', c_ubyte * 8),
-    ('read_mac_secret', c_ubyte * 36),
-    ('write_sequence', c_ubyte * 8),
-    ('write_mac_secret', c_ubyte * 36),
-    ('server_random', c_ubyte * 32),
-    ('client_random', c_ubyte * 32),
-    ('need_empty_fragments', c_int),
-    ('empty_fragment_done', c_int),
-    ('rbuf', SSL3_BUFFER),
-    ('wbuf', SSL3_BUFFER),
-    ('rrec', SSL3_RECORD),
-    ('wrec', SSL3_RECORD),
-    ('alert_fragment', c_ubyte * 2),
-    ('alert_fragment_len', c_uint),
-    ('handshake_fragment', c_ubyte * 4),
-    ('handshake_fragment_len', c_uint),
-    ('wnum', c_uint),
-    ('wpend_tot', c_int),
-    ('wpend_type', c_int),
-    ('wpend_ret', c_int),
-    ('wpend_buf', POINTER(c_ubyte)),
-    ('finish_dgst1', EVP_MD_CTX),
-    ('finish_dgst2', EVP_MD_CTX),
-    ('change_cipher_spec', c_int),
-    ('warn_alert', c_int),
-    ('fatal_alert', c_int),
-    ('alert_dispatch', c_int),
-    ('send_alert', c_ubyte * 2),
-    ('renegotiate', c_int),
-    ('total_renegotiations', c_int),
-    ('num_renegotiations', c_int),
-    ('in_read_app_data', c_int),
-    ('tmp', N13ssl3_state_st4DOLLAR_20E),
-]
-assert sizeof(ssl3_state_st) == 648, sizeof(ssl3_state_st)
-assert alignment(ssl3_state_st) == 4, alignment(ssl3_state_st)
-SSL3_STATE = ssl3_state_st
-stack_st._fields_ = [
-    ('num', c_int),
-    ('data', POINTER(STRING)),
-    ('sorted', c_int),
-    ('num_alloc', c_int),
-    ('comp', CFUNCTYPE(c_int, POINTER(STRING), POINTER(STRING))),
-]
-assert sizeof(stack_st) == 20, sizeof(stack_st)
-assert alignment(stack_st) == 4, alignment(stack_st)
-class ui_st(Structure):
-    pass
-ui_st._fields_ = [
-]
-UI = ui_st
-class ui_method_st(Structure):
-    pass
-ui_method_st._fields_ = [
-]
-UI_METHOD = ui_method_st
-class ui_string_st(Structure):
-    pass
-ui_string_st._fields_ = [
-]
-UI_STRING = ui_string_st
-
-# values for enumeration 'UI_string_types'
-UI_string_types = c_int # enum
-class X509_objects_st(Structure):
-    pass
-X509_objects_st._fields_ = [
-    ('nid', c_int),
-    ('a2i', CFUNCTYPE(c_int)),
-    ('i2a', CFUNCTYPE(c_int)),
-]
-assert sizeof(X509_objects_st) == 12, sizeof(X509_objects_st)
-assert alignment(X509_objects_st) == 4, alignment(X509_objects_st)
-X509_OBJECTS = X509_objects_st
-X509_algor_st._fields_ = [
-    ('algorithm', POINTER(ASN1_OBJECT)),
-    ('parameter', POINTER(ASN1_TYPE)),
-]
-assert sizeof(X509_algor_st) == 8, sizeof(X509_algor_st)
-assert alignment(X509_algor_st) == 4, alignment(X509_algor_st)
-class X509_val_st(Structure):
-    pass
-X509_val_st._fields_ = [
-    ('notBefore', POINTER(ASN1_TIME)),
-    ('notAfter', POINTER(ASN1_TIME)),
-]
-assert sizeof(X509_val_st) == 8, sizeof(X509_val_st)
-assert alignment(X509_val_st) == 4, alignment(X509_val_st)
-X509_VAL = X509_val_st
-class X509_pubkey_st(Structure):
-    pass
-X509_pubkey_st._fields_ = [
-    ('algor', POINTER(X509_ALGOR)),
-    ('public_key', POINTER(ASN1_BIT_STRING)),
-    ('pkey', POINTER(EVP_PKEY)),
-]
-assert sizeof(X509_pubkey_st) == 12, sizeof(X509_pubkey_st)
-assert alignment(X509_pubkey_st) == 4, alignment(X509_pubkey_st)
-X509_PUBKEY = X509_pubkey_st
-class X509_sig_st(Structure):
-    pass
-X509_sig_st._fields_ = [
-    ('algor', POINTER(X509_ALGOR)),
-    ('digest', POINTER(ASN1_OCTET_STRING)),
-]
-assert sizeof(X509_sig_st) == 8, sizeof(X509_sig_st)
-assert alignment(X509_sig_st) == 4, alignment(X509_sig_st)
-X509_SIG = X509_sig_st
-class X509_name_entry_st(Structure):
-    pass
-X509_name_entry_st._fields_ = [
-    ('object', POINTER(ASN1_OBJECT)),
-    ('value', POINTER(ASN1_STRING)),
-    ('set', c_int),
-    ('size', c_int),
-]
-assert sizeof(X509_name_entry_st) == 16, sizeof(X509_name_entry_st)
-assert alignment(X509_name_entry_st) == 4, alignment(X509_name_entry_st)
-X509_NAME_ENTRY = X509_name_entry_st
-X509_name_st._fields_ = [
-    ('entries', POINTER(STACK)),
-    ('modified', c_int),
-    ('bytes', POINTER(BUF_MEM)),
-    ('hash', c_ulong),
-]
-assert sizeof(X509_name_st) == 16, sizeof(X509_name_st)
-assert alignment(X509_name_st) == 4, alignment(X509_name_st)
-class X509_extension_st(Structure):
-    pass
-X509_extension_st._fields_ = [
-    ('object', POINTER(ASN1_OBJECT)),
-    ('critical', ASN1_BOOLEAN),
-    ('value', POINTER(ASN1_OCTET_STRING)),
-]
-assert sizeof(X509_extension_st) == 12, sizeof(X509_extension_st)
-assert alignment(X509_extension_st) == 4, alignment(X509_extension_st)
-X509_EXTENSION = X509_extension_st
-class x509_attributes_st(Structure):
-    pass
-class N18x509_attributes_st4DOLLAR_13E(Union):
-    pass
-N18x509_attributes_st4DOLLAR_13E._fields_ = [
-    ('ptr', STRING),
-    ('set', POINTER(STACK)),
-    ('single', POINTER(ASN1_TYPE)),
-]
-assert sizeof(N18x509_attributes_st4DOLLAR_13E) == 4, sizeof(N18x509_attributes_st4DOLLAR_13E)
-assert alignment(N18x509_attributes_st4DOLLAR_13E) == 4, alignment(N18x509_attributes_st4DOLLAR_13E)
-x509_attributes_st._fields_ = [
-    ('object', POINTER(ASN1_OBJECT)),
-    ('single', c_int),
-    ('value', N18x509_attributes_st4DOLLAR_13E),
-]
-assert sizeof(x509_attributes_st) == 12, sizeof(x509_attributes_st)
-assert alignment(x509_attributes_st) == 4, alignment(x509_attributes_st)
-X509_ATTRIBUTE = x509_attributes_st
-class X509_req_info_st(Structure):
-    pass
-X509_req_info_st._fields_ = [
-    ('enc', ASN1_ENCODING),
-    ('version', POINTER(ASN1_INTEGER)),
-    ('subject', POINTER(X509_NAME)),
-    ('pubkey', POINTER(X509_PUBKEY)),
-    ('attributes', POINTER(STACK)),
-]
-assert sizeof(X509_req_info_st) == 28, sizeof(X509_req_info_st)
-assert alignment(X509_req_info_st) == 4, alignment(X509_req_info_st)
-X509_REQ_INFO = X509_req_info_st
-class X509_req_st(Structure):
-    pass
-X509_req_st._fields_ = [
-    ('req_info', POINTER(X509_REQ_INFO)),
-    ('sig_alg', POINTER(X509_ALGOR)),
-    ('signature', POINTER(ASN1_BIT_STRING)),
-    ('references', c_int),
-]
-assert sizeof(X509_req_st) == 16, sizeof(X509_req_st)
-assert alignment(X509_req_st) == 4, alignment(X509_req_st)
-X509_REQ = X509_req_st
-class x509_cinf_st(Structure):
-    pass
-x509_cinf_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('serialNumber', POINTER(ASN1_INTEGER)),
-    ('signature', POINTER(X509_ALGOR)),
-    ('issuer', POINTER(X509_NAME)),
-    ('validity', POINTER(X509_VAL)),
-    ('subject', POINTER(X509_NAME)),
-    ('key', POINTER(X509_PUBKEY)),
-    ('issuerUID', POINTER(ASN1_BIT_STRING)),
-    ('subjectUID', POINTER(ASN1_BIT_STRING)),
-    ('extensions', POINTER(STACK)),
-]
-assert sizeof(x509_cinf_st) == 40, sizeof(x509_cinf_st)
-assert alignment(x509_cinf_st) == 4, alignment(x509_cinf_st)
-X509_CINF = x509_cinf_st
-class x509_cert_aux_st(Structure):
-    pass
-x509_cert_aux_st._fields_ = [
-    ('trust', POINTER(STACK)),
-    ('reject', POINTER(STACK)),
-    ('alias', POINTER(ASN1_UTF8STRING)),
-    ('keyid', POINTER(ASN1_OCTET_STRING)),
-    ('other', POINTER(STACK)),
-]
-assert sizeof(x509_cert_aux_st) == 20, sizeof(x509_cert_aux_st)
-assert alignment(x509_cert_aux_st) == 4, alignment(x509_cert_aux_st)
-X509_CERT_AUX = x509_cert_aux_st
-class AUTHORITY_KEYID_st(Structure):
-    pass
-x509_st._fields_ = [
-    ('cert_info', POINTER(X509_CINF)),
-    ('sig_alg', POINTER(X509_ALGOR)),
-    ('signature', POINTER(ASN1_BIT_STRING)),
-    ('valid', c_int),
-    ('references', c_int),
-    ('name', STRING),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('ex_pathlen', c_long),
-    ('ex_flags', c_ulong),
-    ('ex_kusage', c_ulong),
-    ('ex_xkusage', c_ulong),
-    ('ex_nscert', c_ulong),
-    ('skid', POINTER(ASN1_OCTET_STRING)),
-    ('akid', POINTER(AUTHORITY_KEYID_st)),
-    ('sha1_hash', c_ubyte * 20),
-    ('aux', POINTER(X509_CERT_AUX)),
-]
-assert sizeof(x509_st) == 84, sizeof(x509_st)
-assert alignment(x509_st) == 4, alignment(x509_st)
-AUTHORITY_KEYID_st._fields_ = [
-]
-class x509_trust_st(Structure):
-    pass
-x509_trust_st._fields_ = [
-    ('trust', c_int),
-    ('flags', c_int),
-    ('check_trust', CFUNCTYPE(c_int, POINTER(x509_trust_st), POINTER(X509), c_int)),
-    ('name', STRING),
-    ('arg1', c_int),
-    ('arg2', c_void_p),
-]
-assert sizeof(x509_trust_st) == 24, sizeof(x509_trust_st)
-assert alignment(x509_trust_st) == 4, alignment(x509_trust_st)
-X509_TRUST = x509_trust_st
-class X509_revoked_st(Structure):
-    pass
-X509_revoked_st._fields_ = [
-    ('serialNumber', POINTER(ASN1_INTEGER)),
-    ('revocationDate', POINTER(ASN1_TIME)),
-    ('extensions', POINTER(STACK)),
-    ('sequence', c_int),
-]
-assert sizeof(X509_revoked_st) == 16, sizeof(X509_revoked_st)
-assert alignment(X509_revoked_st) == 4, alignment(X509_revoked_st)
-X509_REVOKED = X509_revoked_st
-class X509_crl_info_st(Structure):
-    pass
-X509_crl_info_st._fields_ = [
-    ('version', POINTER(ASN1_INTEGER)),
-    ('sig_alg', POINTER(X509_ALGOR)),
-    ('issuer', POINTER(X509_NAME)),
-    ('lastUpdate', POINTER(ASN1_TIME)),
-    ('nextUpdate', POINTER(ASN1_TIME)),
-    ('revoked', POINTER(STACK)),
-    ('extensions', POINTER(STACK)),
-    ('enc', ASN1_ENCODING),
-]
-assert sizeof(X509_crl_info_st) == 40, sizeof(X509_crl_info_st)
-assert alignment(X509_crl_info_st) == 4, alignment(X509_crl_info_st)
-X509_CRL_INFO = X509_crl_info_st
-X509_crl_st._fields_ = [
-    ('crl', POINTER(X509_CRL_INFO)),
-    ('sig_alg', POINTER(X509_ALGOR)),
-    ('signature', POINTER(ASN1_BIT_STRING)),
-    ('references', c_int),
-]
-assert sizeof(X509_crl_st) == 16, sizeof(X509_crl_st)
-assert alignment(X509_crl_st) == 4, alignment(X509_crl_st)
-class private_key_st(Structure):
-    pass
-private_key_st._fields_ = [
-    ('version', c_int),
-    ('enc_algor', POINTER(X509_ALGOR)),
-    ('enc_pkey', POINTER(ASN1_OCTET_STRING)),
-    ('dec_pkey', POINTER(EVP_PKEY)),
-    ('key_length', c_int),
-    ('key_data', STRING),
-    ('key_free', c_int),
-    ('cipher', EVP_CIPHER_INFO),
-    ('references', c_int),
-]
-assert sizeof(private_key_st) == 52, sizeof(private_key_st)
-assert alignment(private_key_st) == 4, alignment(private_key_st)
-X509_PKEY = private_key_st
-class X509_info_st(Structure):
-    pass
-X509_info_st._fields_ = [
-    ('x509', POINTER(X509)),
-    ('crl', POINTER(X509_CRL)),
-    ('x_pkey', POINTER(X509_PKEY)),
-    ('enc_cipher', EVP_CIPHER_INFO),
-    ('enc_len', c_int),
-    ('enc_data', STRING),
-    ('references', c_int),
-]
-assert sizeof(X509_info_st) == 44, sizeof(X509_info_st)
-assert alignment(X509_info_st) == 4, alignment(X509_info_st)
-X509_INFO = X509_info_st
-class Netscape_spkac_st(Structure):
-    pass
-Netscape_spkac_st._fields_ = [
-    ('pubkey', POINTER(X509_PUBKEY)),
-    ('challenge', POINTER(ASN1_IA5STRING)),
-]
-assert sizeof(Netscape_spkac_st) == 8, sizeof(Netscape_spkac_st)
-assert alignment(Netscape_spkac_st) == 4, alignment(Netscape_spkac_st)
-NETSCAPE_SPKAC = Netscape_spkac_st
-class Netscape_spki_st(Structure):
-    pass
-Netscape_spki_st._fields_ = [
-    ('spkac', POINTER(NETSCAPE_SPKAC)),
-    ('sig_algor', POINTER(X509_ALGOR)),
-    ('signature', POINTER(ASN1_BIT_STRING)),
-]
-assert sizeof(Netscape_spki_st) == 12, sizeof(Netscape_spki_st)
-assert alignment(Netscape_spki_st) == 4, alignment(Netscape_spki_st)
-NETSCAPE_SPKI = Netscape_spki_st
-class Netscape_certificate_sequence(Structure):
-    pass
-Netscape_certificate_sequence._fields_ = [
-    ('type', POINTER(ASN1_OBJECT)),
-    ('certs', POINTER(STACK)),
-]
-assert sizeof(Netscape_certificate_sequence) == 8, sizeof(Netscape_certificate_sequence)
-assert alignment(Netscape_certificate_sequence) == 4, alignment(Netscape_certificate_sequence)
-NETSCAPE_CERT_SEQUENCE = Netscape_certificate_sequence
-class PBEPARAM_st(Structure):
-    pass
-PBEPARAM_st._fields_ = [
-    ('salt', POINTER(ASN1_OCTET_STRING)),
-    ('iter', POINTER(ASN1_INTEGER)),
-]
-assert sizeof(PBEPARAM_st) == 8, sizeof(PBEPARAM_st)
-assert alignment(PBEPARAM_st) == 4, alignment(PBEPARAM_st)
-PBEPARAM = PBEPARAM_st
-class PBE2PARAM_st(Structure):
-    pass
-PBE2PARAM_st._fields_ = [
-    ('keyfunc', POINTER(X509_ALGOR)),
-    ('encryption', POINTER(X509_ALGOR)),
-]
-assert sizeof(PBE2PARAM_st) == 8, sizeof(PBE2PARAM_st)
-assert alignment(PBE2PARAM_st) == 4, alignment(PBE2PARAM_st)
-PBE2PARAM = PBE2PARAM_st
-class PBKDF2PARAM_st(Structure):
-    pass
-PBKDF2PARAM_st._fields_ = [
-    ('salt', POINTER(ASN1_TYPE)),
-    ('iter', POINTER(ASN1_INTEGER)),
-    ('keylength', POINTER(ASN1_INTEGER)),
-    ('prf', POINTER(X509_ALGOR)),
-]
-assert sizeof(PBKDF2PARAM_st) == 16, sizeof(PBKDF2PARAM_st)
-assert alignment(PBKDF2PARAM_st) == 4, alignment(PBKDF2PARAM_st)
-PBKDF2PARAM = PBKDF2PARAM_st
-class pkcs8_priv_key_info_st(Structure):
-    pass
-pkcs8_priv_key_info_st._fields_ = [
-    ('broken', c_int),
-    ('version', POINTER(ASN1_INTEGER)),
-    ('pkeyalg', POINTER(X509_ALGOR)),
-    ('pkey', POINTER(ASN1_TYPE)),
-    ('attributes', POINTER(STACK)),
-]
-assert sizeof(pkcs8_priv_key_info_st) == 20, sizeof(pkcs8_priv_key_info_st)
-assert alignment(pkcs8_priv_key_info_st) == 4, alignment(pkcs8_priv_key_info_st)
-PKCS8_PRIV_KEY_INFO = pkcs8_priv_key_info_st
-class x509_hash_dir_st(Structure):
-    pass
-x509_hash_dir_st._fields_ = [
-    ('num_dirs', c_int),
-    ('dirs', POINTER(STRING)),
-    ('dirs_type', POINTER(c_int)),
-    ('num_dirs_alloced', c_int),
-]
-assert sizeof(x509_hash_dir_st) == 16, sizeof(x509_hash_dir_st)
-assert alignment(x509_hash_dir_st) == 4, alignment(x509_hash_dir_st)
-X509_HASH_DIR_CTX = x509_hash_dir_st
-class x509_file_st(Structure):
-    pass
-x509_file_st._fields_ = [
-    ('num_paths', c_int),
-    ('num_alloced', c_int),
-    ('paths', POINTER(STRING)),
-    ('path_type', POINTER(c_int)),
-]
-assert sizeof(x509_file_st) == 16, sizeof(x509_file_st)
-assert alignment(x509_file_st) == 4, alignment(x509_file_st)
-X509_CERT_FILE_CTX = x509_file_st
-class x509_object_st(Structure):
-    pass
-class N14x509_object_st4DOLLAR_14E(Union):
-    pass
-N14x509_object_st4DOLLAR_14E._fields_ = [
-    ('ptr', STRING),
-    ('x509', POINTER(X509)),
-    ('crl', POINTER(X509_CRL)),
-    ('pkey', POINTER(EVP_PKEY)),
-]
-assert sizeof(N14x509_object_st4DOLLAR_14E) == 4, sizeof(N14x509_object_st4DOLLAR_14E)
-assert alignment(N14x509_object_st4DOLLAR_14E) == 4, alignment(N14x509_object_st4DOLLAR_14E)
-x509_object_st._fields_ = [
-    ('type', c_int),
-    ('data', N14x509_object_st4DOLLAR_14E),
-]
-assert sizeof(x509_object_st) == 8, sizeof(x509_object_st)
-assert alignment(x509_object_st) == 4, alignment(x509_object_st)
-X509_OBJECT = x509_object_st
-class x509_lookup_st(Structure):
-    pass
-X509_LOOKUP = x509_lookup_st
-class x509_lookup_method_st(Structure):
-    pass
-x509_lookup_method_st._fields_ = [
-    ('name', STRING),
-    ('new_item', CFUNCTYPE(c_int, POINTER(X509_LOOKUP))),
-    ('free', CFUNCTYPE(None, POINTER(X509_LOOKUP))),
-    ('init', CFUNCTYPE(c_int, POINTER(X509_LOOKUP))),
-    ('shutdown', CFUNCTYPE(c_int, POINTER(X509_LOOKUP))),
-    ('ctrl', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, STRING, c_long, POINTER(STRING))),
-    ('get_by_subject', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, POINTER(X509_NAME), POINTER(X509_OBJECT))),
-    ('get_by_issuer_serial', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, POINTER(X509_NAME), POINTER(ASN1_INTEGER), POINTER(X509_OBJECT))),
-    ('get_by_fingerprint', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, POINTER(c_ubyte), c_int, POINTER(X509_OBJECT))),
-    ('get_by_alias', CFUNCTYPE(c_int, POINTER(X509_LOOKUP), c_int, STRING, c_int, POINTER(X509_OBJECT))),
-]
-assert sizeof(x509_lookup_method_st) == 40, sizeof(x509_lookup_method_st)
-assert alignment(x509_lookup_method_st) == 4, alignment(x509_lookup_method_st)
-X509_LOOKUP_METHOD = x509_lookup_method_st
-x509_store_st._fields_ = [
-    ('cache', c_int),
-    ('objs', POINTER(STACK)),
-    ('get_cert_methods', POINTER(STACK)),
-    ('flags', c_ulong),
-    ('purpose', c_int),
-    ('trust', c_int),
-    ('verify', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
-    ('verify_cb', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
-    ('get_issuer', CFUNCTYPE(c_int, POINTER(POINTER(X509)), POINTER(X509_STORE_CTX), POINTER(X509))),
-    ('check_issued', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509), POINTER(X509))),
-    ('check_revocation', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
-    ('get_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(POINTER(X509_CRL)), POINTER(X509))),
-    ('check_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL))),
-    ('cert_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL), POINTER(X509))),
-    ('cleanup', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
-    ('ex_data', CRYPTO_EX_DATA),
-    ('references', c_int),
-    ('depth', c_int),
-]
-assert sizeof(x509_store_st) == 76, sizeof(x509_store_st)
-assert alignment(x509_store_st) == 4, alignment(x509_store_st)
-x509_lookup_st._fields_ = [
-    ('init', c_int),
-    ('skip', c_int),
-    ('method', POINTER(X509_LOOKUP_METHOD)),
-    ('method_data', STRING),
-    ('store_ctx', POINTER(X509_STORE)),
-]
-assert sizeof(x509_lookup_st) == 20, sizeof(x509_lookup_st)
-assert alignment(x509_lookup_st) == 4, alignment(x509_lookup_st)
-time_t = __darwin_time_t
-x509_store_ctx_st._fields_ = [
-    ('ctx', POINTER(X509_STORE)),
-    ('current_method', c_int),
-    ('cert', POINTER(X509)),
-    ('untrusted', POINTER(STACK)),
-    ('purpose', c_int),
-    ('trust', c_int),
-    ('check_time', time_t),
-    ('flags', c_ulong),
-    ('other_ctx', c_void_p),
-    ('verify', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
-    ('verify_cb', CFUNCTYPE(c_int, c_int, POINTER(X509_STORE_CTX))),
-    ('get_issuer', CFUNCTYPE(c_int, POINTER(POINTER(X509)), POINTER(X509_STORE_CTX), POINTER(X509))),
-    ('check_issued', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509), POINTER(X509))),
-    ('check_revocation', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
-    ('get_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(POINTER(X509_CRL)), POINTER(X509))),
-    ('check_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL))),
-    ('cert_crl', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX), POINTER(X509_CRL), POINTER(X509))),
-    ('cleanup', CFUNCTYPE(c_int, POINTER(X509_STORE_CTX))),
-    ('depth', c_int),
-    ('valid', c_int),
-    ('last_untrusted', c_int),
-    ('chain', POINTER(STACK)),
-    ('error_depth', c_int),
-    ('error', c_int),
-    ('current_cert', POINTER(X509)),
-    ('current_issuer', POINTER(X509)),
-    ('current_crl', POINTER(X509_CRL)),
-    ('ex_data', CRYPTO_EX_DATA),
-]
-assert sizeof(x509_store_ctx_st) == 116, sizeof(x509_store_ctx_st)
-assert alignment(x509_store_ctx_st) == 4, alignment(x509_store_ctx_st)
-va_list = __darwin_va_list
-__darwin_off_t = __int64_t
-fpos_t = __darwin_off_t
-class __sbuf(Structure):
-    pass
-__sbuf._fields_ = [
-    ('_base', POINTER(c_ubyte)),
-    ('_size', c_int),
-]
-assert sizeof(__sbuf) == 8, sizeof(__sbuf)
-assert alignment(__sbuf) == 4, alignment(__sbuf)
-class __sFILEX(Structure):
-    pass
-__sFILEX._fields_ = [
-]
-class __sFILE(Structure):
-    pass
-__sFILE._pack_ = 4
-__sFILE._fields_ = [
-    ('_p', POINTER(c_ubyte)),
-    ('_r', c_int),
-    ('_w', c_int),
-    ('_flags', c_short),
-    ('_file', c_short),
-    ('_bf', __sbuf),
-    ('_lbfsize', c_int),
-    ('_cookie', c_void_p),
-    ('_close', CFUNCTYPE(c_int, c_void_p)),
-    ('_read', CFUNCTYPE(c_int, c_void_p, STRING, c_int)),
-    ('_seek', CFUNCTYPE(fpos_t, c_void_p, c_longlong, c_int)),
-    ('_write', CFUNCTYPE(c_int, c_void_p, STRING, c_int)),
-    ('_ub', __sbuf),
-    ('_extra', POINTER(__sFILEX)),
-    ('_ur', c_int),
-    ('_ubuf', c_ubyte * 3),
-    ('_nbuf', c_ubyte * 1),
-    ('_lb', __sbuf),
-    ('_blksize', c_int),
-    ('_offset', fpos_t),
-]
-assert sizeof(__sFILE) == 88, sizeof(__sFILE)
-assert alignment(__sFILE) == 4, alignment(__sFILE)
-FILE = __sFILE
-ct_rune_t = __darwin_ct_rune_t
-rune_t = __darwin_rune_t
-class div_t(Structure):
-    pass
-div_t._fields_ = [
-    ('quot', c_int),
-    ('rem', c_int),
-]
-assert sizeof(div_t) == 8, sizeof(div_t)
-assert alignment(div_t) == 4, alignment(div_t)
-class ldiv_t(Structure):
-    pass
-ldiv_t._fields_ = [
-    ('quot', c_long),
-    ('rem', c_long),
-]
-assert sizeof(ldiv_t) == 8, sizeof(ldiv_t)
-assert alignment(ldiv_t) == 4, alignment(ldiv_t)
-class lldiv_t(Structure):
-    pass
-lldiv_t._pack_ = 4
-lldiv_t._fields_ = [
-    ('quot', c_longlong),
-    ('rem', c_longlong),
-]
-assert sizeof(lldiv_t) == 16, sizeof(lldiv_t)
-assert alignment(lldiv_t) == 4, alignment(lldiv_t)
-__darwin_dev_t = __int32_t
-dev_t = __darwin_dev_t
-__darwin_mode_t = __uint16_t
-mode_t = __darwin_mode_t
-class mcontext(Structure):
-    pass
-mcontext._fields_ = [
-]
-class mcontext64(Structure):
-    pass
-mcontext64._fields_ = [
-]
-class __darwin_pthread_handler_rec(Structure):
-    pass
-__darwin_pthread_handler_rec._fields_ = [
-    ('__routine', CFUNCTYPE(None, c_void_p)),
-    ('__arg', c_void_p),
-    ('__next', POINTER(__darwin_pthread_handler_rec)),
-]
-assert sizeof(__darwin_pthread_handler_rec) == 12, sizeof(__darwin_pthread_handler_rec)
-assert alignment(__darwin_pthread_handler_rec) == 4, alignment(__darwin_pthread_handler_rec)
-class _opaque_pthread_attr_t(Structure):
-    pass
-_opaque_pthread_attr_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 36),
-]
-assert sizeof(_opaque_pthread_attr_t) == 40, sizeof(_opaque_pthread_attr_t)
-assert alignment(_opaque_pthread_attr_t) == 4, alignment(_opaque_pthread_attr_t)
-class _opaque_pthread_cond_t(Structure):
-    pass
-_opaque_pthread_cond_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 24),
-]
-assert sizeof(_opaque_pthread_cond_t) == 28, sizeof(_opaque_pthread_cond_t)
-assert alignment(_opaque_pthread_cond_t) == 4, alignment(_opaque_pthread_cond_t)
-class _opaque_pthread_condattr_t(Structure):
-    pass
-_opaque_pthread_condattr_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 4),
-]
-assert sizeof(_opaque_pthread_condattr_t) == 8, sizeof(_opaque_pthread_condattr_t)
-assert alignment(_opaque_pthread_condattr_t) == 4, alignment(_opaque_pthread_condattr_t)
-class _opaque_pthread_mutex_t(Structure):
-    pass
-_opaque_pthread_mutex_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 40),
-]
-assert sizeof(_opaque_pthread_mutex_t) == 44, sizeof(_opaque_pthread_mutex_t)
-assert alignment(_opaque_pthread_mutex_t) == 4, alignment(_opaque_pthread_mutex_t)
-class _opaque_pthread_mutexattr_t(Structure):
-    pass
-_opaque_pthread_mutexattr_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 8),
-]
-assert sizeof(_opaque_pthread_mutexattr_t) == 12, sizeof(_opaque_pthread_mutexattr_t)
-assert alignment(_opaque_pthread_mutexattr_t) == 4, alignment(_opaque_pthread_mutexattr_t)
-class _opaque_pthread_once_t(Structure):
-    pass
-_opaque_pthread_once_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 4),
-]
-assert sizeof(_opaque_pthread_once_t) == 8, sizeof(_opaque_pthread_once_t)
-assert alignment(_opaque_pthread_once_t) == 4, alignment(_opaque_pthread_once_t)
-class _opaque_pthread_rwlock_t(Structure):
-    pass
-_opaque_pthread_rwlock_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 124),
-]
-assert sizeof(_opaque_pthread_rwlock_t) == 128, sizeof(_opaque_pthread_rwlock_t)
-assert alignment(_opaque_pthread_rwlock_t) == 4, alignment(_opaque_pthread_rwlock_t)
-class _opaque_pthread_rwlockattr_t(Structure):
-    pass
-_opaque_pthread_rwlockattr_t._fields_ = [
-    ('__sig', c_long),
-    ('__opaque', c_char * 12),
-]
-assert sizeof(_opaque_pthread_rwlockattr_t) == 16, sizeof(_opaque_pthread_rwlockattr_t)
-assert alignment(_opaque_pthread_rwlockattr_t) == 4, alignment(_opaque_pthread_rwlockattr_t)
-class _opaque_pthread_t(Structure):
-    pass
-_opaque_pthread_t._fields_ = [
-    ('__sig', c_long),
-    ('__cleanup_stack', POINTER(__darwin_pthread_handler_rec)),
-    ('__opaque', c_char * 596),
-]
-assert sizeof(_opaque_pthread_t) == 604, sizeof(_opaque_pthread_t)
-assert alignment(_opaque_pthread_t) == 4, alignment(_opaque_pthread_t)
-__darwin_blkcnt_t = __int64_t
-__darwin_blksize_t = __int32_t
-__darwin_fsblkcnt_t = c_uint
-__darwin_fsfilcnt_t = c_uint
-__darwin_gid_t = __uint32_t
-__darwin_id_t = __uint32_t
-__darwin_ino_t = __uint32_t
-__darwin_mach_port_name_t = __darwin_natural_t
-__darwin_mach_port_t = __darwin_mach_port_name_t
-__darwin_mcontext_t = POINTER(mcontext)
-__darwin_mcontext64_t = POINTER(mcontext64)
-__darwin_pid_t = __int32_t
-__darwin_pthread_attr_t = _opaque_pthread_attr_t
-__darwin_pthread_cond_t = _opaque_pthread_cond_t
-__darwin_pthread_condattr_t = _opaque_pthread_condattr_t
-__darwin_pthread_key_t = c_ulong
-__darwin_pthread_mutex_t = _opaque_pthread_mutex_t
-__darwin_pthread_mutexattr_t = _opaque_pthread_mutexattr_t
-__darwin_pthread_once_t = _opaque_pthread_once_t
-__darwin_pthread_rwlock_t = _opaque_pthread_rwlock_t
-__darwin_pthread_rwlockattr_t = _opaque_pthread_rwlockattr_t
-__darwin_pthread_t = POINTER(_opaque_pthread_t)
-__darwin_sigset_t = __uint32_t
-__darwin_suseconds_t = __int32_t
-__darwin_uid_t = __uint32_t
-__darwin_useconds_t = __uint32_t
-__darwin_uuid_t = c_ubyte * 16
-class sigaltstack(Structure):
-    pass
-sigaltstack._fields_ = [
-    ('ss_sp', c_void_p),
-    ('ss_size', __darwin_size_t),
-    ('ss_flags', c_int),
-]
-assert sizeof(sigaltstack) == 12, sizeof(sigaltstack)
-assert alignment(sigaltstack) == 4, alignment(sigaltstack)
-__darwin_stack_t = sigaltstack
-class ucontext(Structure):
-    pass
-ucontext._fields_ = [
-    ('uc_onstack', c_int),
-    ('uc_sigmask', __darwin_sigset_t),
-    ('uc_stack', __darwin_stack_t),
-    ('uc_link', POINTER(ucontext)),
-    ('uc_mcsize', __darwin_size_t),
-    ('uc_mcontext', __darwin_mcontext_t),
-]
-assert sizeof(ucontext) == 32, sizeof(ucontext)
-assert alignment(ucontext) == 4, alignment(ucontext)
-__darwin_ucontext_t = ucontext
-class ucontext64(Structure):
-    pass
-ucontext64._fields_ = [
-    ('uc_onstack', c_int),
-    ('uc_sigmask', __darwin_sigset_t),
-    ('uc_stack', __darwin_stack_t),
-    ('uc_link', POINTER(ucontext64)),
-    ('uc_mcsize', __darwin_size_t),
-    ('uc_mcontext64', __darwin_mcontext64_t),
-]
-assert sizeof(ucontext64) == 32, sizeof(ucontext64)
-assert alignment(ucontext64) == 4, alignment(ucontext64)
-__darwin_ucontext64_t = ucontext64
-class timeval(Structure):
-    pass
-timeval._fields_ = [
-    ('tv_sec', __darwin_time_t),
-    ('tv_usec', __darwin_suseconds_t),
-]
-assert sizeof(timeval) == 8, sizeof(timeval)
-assert alignment(timeval) == 4, alignment(timeval)
-rlim_t = __int64_t
-class rusage(Structure):
-    pass
-rusage._fields_ = [
-    ('ru_utime', timeval),
-    ('ru_stime', timeval),
-    ('ru_maxrss', c_long),
-    ('ru_ixrss', c_long),
-    ('ru_idrss', c_long),
-    ('ru_isrss', c_long),
-    ('ru_minflt', c_long),
-    ('ru_majflt', c_long),
-    ('ru_nswap', c_long),
-    ('ru_inblock', c_long),
-    ('ru_oublock', c_long),
-    ('ru_msgsnd', c_long),
-    ('ru_msgrcv', c_long),
-    ('ru_nsignals', c_long),
-    ('ru_nvcsw', c_long),
-    ('ru_nivcsw', c_long),
-]
-assert sizeof(rusage) == 72, sizeof(rusage)
-assert alignment(rusage) == 4, alignment(rusage)
-class rlimit(Structure):
-    pass
-rlimit._pack_ = 4
-rlimit._fields_ = [
-    ('rlim_cur', rlim_t),
-    ('rlim_max', rlim_t),
-]
-assert sizeof(rlimit) == 16, sizeof(rlimit)
-assert alignment(rlimit) == 4, alignment(rlimit)
-mcontext_t = __darwin_mcontext_t
-mcontext64_t = __darwin_mcontext64_t
-pthread_attr_t = __darwin_pthread_attr_t
-sigset_t = __darwin_sigset_t
-ucontext_t = __darwin_ucontext_t
-ucontext64_t = __darwin_ucontext64_t
-uid_t = __darwin_uid_t
-class sigval(Union):
-    pass
-sigval._fields_ = [
-    ('sival_int', c_int),
-    ('sival_ptr', c_void_p),
-]
-assert sizeof(sigval) == 4, sizeof(sigval)
-assert alignment(sigval) == 4, alignment(sigval)
-class sigevent(Structure):
-    pass
-sigevent._fields_ = [
-    ('sigev_notify', c_int),
-    ('sigev_signo', c_int),
-    ('sigev_value', sigval),
-    ('sigev_notify_function', CFUNCTYPE(None, sigval)),
-    ('sigev_notify_attributes', POINTER(pthread_attr_t)),
-]
-assert sizeof(sigevent) == 20, sizeof(sigevent)
-assert alignment(sigevent) == 4, alignment(sigevent)
-class __siginfo(Structure):
-    pass
-pid_t = __darwin_pid_t
-__siginfo._fields_ = [
-    ('si_signo', c_int),
-    ('si_errno', c_int),
-    ('si_code', c_int),
-    ('si_pid', pid_t),
-    ('si_uid', uid_t),
-    ('si_status', c_int),
-    ('si_addr', c_void_p),
-    ('si_value', sigval),
-    ('si_band', c_long),
-    ('pad', c_ulong * 7),
-]
-assert sizeof(__siginfo) == 64, sizeof(__siginfo)
-assert alignment(__siginfo) == 4, alignment(__siginfo)
-siginfo_t = __siginfo
-class __sigaction_u(Union):
-    pass
-__sigaction_u._fields_ = [
-    ('__sa_handler', CFUNCTYPE(None, c_int)),
-    ('__sa_sigaction', CFUNCTYPE(None, c_int, POINTER(__siginfo), c_void_p)),
-]
-assert sizeof(__sigaction_u) == 4, sizeof(__sigaction_u)
-assert alignment(__sigaction_u) == 4, alignment(__sigaction_u)
-class __sigaction(Structure):
-    pass
-__sigaction._fields_ = [
-    ('__sigaction_u', __sigaction_u),
-    ('sa_tramp', CFUNCTYPE(None, c_void_p, c_int, c_int, POINTER(siginfo_t), c_void_p)),
-    ('sa_mask', sigset_t),
-    ('sa_flags', c_int),
-]
-assert sizeof(__sigaction) == 16, sizeof(__sigaction)
-assert alignment(__sigaction) == 4, alignment(__sigaction)
-class sigaction(Structure):
-    pass
-sigaction._fields_ = [
-    ('__sigaction_u', __sigaction_u),
-    ('sa_mask', sigset_t),
-    ('sa_flags', c_int),
-]
-assert sizeof(sigaction) == 12, sizeof(sigaction)
-assert alignment(sigaction) == 4, alignment(sigaction)
-sig_t = CFUNCTYPE(None, c_int)
-stack_t = __darwin_stack_t
-class sigvec(Structure):
-    pass
-sigvec._fields_ = [
-    ('sv_handler', CFUNCTYPE(None, c_int)),
-    ('sv_mask', c_int),
-    ('sv_flags', c_int),
-]
-assert sizeof(sigvec) == 12, sizeof(sigvec)
-assert alignment(sigvec) == 4, alignment(sigvec)
-class sigstack(Structure):
-    pass
-sigstack._fields_ = [
-    ('ss_sp', STRING),
-    ('ss_onstack', c_int),
-]
-assert sizeof(sigstack) == 8, sizeof(sigstack)
-assert alignment(sigstack) == 4, alignment(sigstack)
-u_char = c_ubyte
-u_short = c_ushort
-u_int = c_uint
-u_long = c_ulong
-ushort = c_ushort
-uint = c_uint
-u_quad_t = u_int64_t
-quad_t = int64_t
-qaddr_t = POINTER(quad_t)
-caddr_t = STRING
-daddr_t = int32_t
-fixpt_t = u_int32_t
-blkcnt_t = __darwin_blkcnt_t
-blksize_t = __darwin_blksize_t
-gid_t = __darwin_gid_t
-in_addr_t = __uint32_t
-in_port_t = __uint16_t
-ino_t = __darwin_ino_t
-key_t = __int32_t
-nlink_t = __uint16_t
-off_t = __darwin_off_t
-segsz_t = int32_t
-swblk_t = int32_t
-clock_t = __darwin_clock_t
-ssize_t = __darwin_ssize_t
-useconds_t = __darwin_useconds_t
-suseconds_t = __darwin_suseconds_t
-fd_mask = __int32_t
-class fd_set(Structure):
-    pass
-fd_set._fields_ = [
-    ('fds_bits', __int32_t * 32),
-]
-assert sizeof(fd_set) == 128, sizeof(fd_set)
-assert alignment(fd_set) == 4, alignment(fd_set)
-pthread_cond_t = __darwin_pthread_cond_t
-pthread_condattr_t = __darwin_pthread_condattr_t
-pthread_mutex_t = __darwin_pthread_mutex_t
-pthread_mutexattr_t = __darwin_pthread_mutexattr_t
-pthread_once_t = __darwin_pthread_once_t
-pthread_rwlock_t = __darwin_pthread_rwlock_t
-pthread_rwlockattr_t = __darwin_pthread_rwlockattr_t
-pthread_t = __darwin_pthread_t
-pthread_key_t = __darwin_pthread_key_t
-fsblkcnt_t = __darwin_fsblkcnt_t
-fsfilcnt_t = __darwin_fsfilcnt_t
-
-# values for enumeration 'idtype_t'
-idtype_t = c_int # enum
-id_t = __darwin_id_t
-class wait(Union):
-    pass
-class N4wait3DOLLAR_3E(Structure):
-    pass
-N4wait3DOLLAR_3E._fields_ = [
-    ('w_Termsig', c_uint, 7),
-    ('w_Coredump', c_uint, 1),
-    ('w_Retcode', c_uint, 8),
-    ('w_Filler', c_uint, 16),
-]
-assert sizeof(N4wait3DOLLAR_3E) == 4, sizeof(N4wait3DOLLAR_3E)
-assert alignment(N4wait3DOLLAR_3E) == 4, alignment(N4wait3DOLLAR_3E)
-class N4wait3DOLLAR_4E(Structure):
-    pass
-N4wait3DOLLAR_4E._fields_ = [
-    ('w_Stopval', c_uint, 8),
-    ('w_Stopsig', c_uint, 8),
-    ('w_Filler', c_uint, 16),
-]
-assert sizeof(N4wait3DOLLAR_4E) == 4, sizeof(N4wait3DOLLAR_4E)
-assert alignment(N4wait3DOLLAR_4E) == 4, alignment(N4wait3DOLLAR_4E)
-wait._fields_ = [
-    ('w_status', c_int),
-    ('w_T', N4wait3DOLLAR_3E),
-    ('w_S', N4wait3DOLLAR_4E),
-]
-assert sizeof(wait) == 4, sizeof(wait)
-assert alignment(wait) == 4, alignment(wait)
-class timespec(Structure):
-    pass
-timespec._fields_ = [
-    ('tv_sec', time_t),
-    ('tv_nsec', c_long),
-]
-assert sizeof(timespec) == 8, sizeof(timespec)
-assert alignment(timespec) == 4, alignment(timespec)
-class tm(Structure):
-    pass
-tm._fields_ = [
-    ('tm_sec', c_int),
-    ('tm_min', c_int),
-    ('tm_hour', c_int),
-    ('tm_mday', c_int),
-    ('tm_mon', c_int),
-    ('tm_year', c_int),
-    ('tm_wday', c_int),
-    ('tm_yday', c_int),
-    ('tm_isdst', c_int),
-    ('tm_gmtoff', c_long),
-    ('tm_zone', STRING),
-]
-assert sizeof(tm) == 44, sizeof(tm)
-assert alignment(tm) == 4, alignment(tm)
-__gnuc_va_list = STRING
-ptrdiff_t = c_int
-int8_t = c_byte
-int16_t = c_short
-uint8_t = c_ubyte
-uint16_t = c_ushort
-uint32_t = c_uint
-uint64_t = c_ulonglong
-int_least8_t = int8_t
-int_least16_t = int16_t
-int_least32_t = int32_t
-int_least64_t = int64_t
-uint_least8_t = uint8_t
-uint_least16_t = uint16_t
-uint_least32_t = uint32_t
-uint_least64_t = uint64_t
-int_fast8_t = int8_t
-int_fast16_t = int16_t
-int_fast32_t = int32_t
-int_fast64_t = int64_t
-uint_fast8_t = uint8_t
-uint_fast16_t = uint16_t
-uint_fast32_t = uint32_t
-uint_fast64_t = uint64_t
-intptr_t = c_long
-uintptr_t = c_ulong
-intmax_t = c_longlong
-uintmax_t = c_ulonglong
-__all__ = ['ENGINE', 'pkcs7_enc_content_st', '__int16_t',
-           'X509_REVOKED', 'SSL_CTX', 'UIT_BOOLEAN',
-           '__darwin_time_t', 'ucontext64_t', 'int_fast32_t',
-           'pem_ctx_st', 'uint8_t', 'fpos_t', 'X509', 'COMP_CTX',
-           'tm', 'N10pem_ctx_st4DOLLAR_17E', 'swblk_t',
-           'ASN1_TEMPLATE', '__darwin_pthread_t', 'fixpt_t',
-           'BIO_METHOD', 'ASN1_PRINTABLESTRING', 'EVP_ENCODE_CTX',
-           'dh_method', 'bio_f_buffer_ctx_struct', 'in_port_t',
-           'X509_SIG', '__darwin_ssize_t', '__darwin_sigset_t',
-           'wait', 'uint_fast16_t', 'N12asn1_type_st4DOLLAR_11E',
-           'uint_least8_t', 'pthread_rwlock_t', 'ASN1_IA5STRING',
-           'fsfilcnt_t', 'ucontext', '__uint64_t', 'timespec',
-           'x509_cinf_st', 'COMP_METHOD', 'MD5_CTX', 'buf_mem_st',
-           'ASN1_ENCODING_st', 'PBEPARAM', 'X509_NAME_ENTRY',
-           '__darwin_va_list', 'ucontext_t', 'lhash_st',
-           'N4wait3DOLLAR_4E', '__darwin_uuid_t',
-           '_ossl_old_des_ks_struct', 'id_t', 'ASN1_BIT_STRING',
-           'va_list', '__darwin_wchar_t', 'pthread_key_t',
-           'pkcs7_signer_info_st', 'ASN1_METHOD', 'DSA_SIG', 'DSA',
-           'UIT_NONE', 'pthread_t', '__darwin_useconds_t',
-           'uint_fast8_t', 'UI_STRING', 'DES_cblock',
-           '__darwin_mcontext64_t', 'rlim_t', 'PEM_Encode_Seal_st',
-           'SHAstate_st', 'u_quad_t', 'openssl_fptr',
-           '_opaque_pthread_rwlockattr_t',
-           'N18x509_attributes_st4DOLLAR_13E',
-           '__darwin_pthread_rwlock_t', 'daddr_t', 'ui_string_st',
-           'x509_file_st', 'X509_req_info_st', 'int_least64_t',
-           'evp_Encode_Ctx_st', 'X509_OBJECTS', 'CRYPTO_EX_DATA',
-           '__int8_t', 'AUTHORITY_KEYID_st', '_opaque_pthread_attr_t',
-           'sigstack', 'EVP_CIPHER_CTX', 'X509_extension_st', 'pid_t',
-           'RSA_METHOD', 'PEM_USER', 'pem_recip_st', 'env_md_ctx_st',
-           'rc5_key_st', 'ui_st', 'X509_PUBKEY', 'u_int8_t',
-           'ASN1_ITEM_st', 'pkcs7_recip_info_st', 'ssl2_state_st',
-           'off_t', 'N10ssl_ctx_st4DOLLAR_18E', 'crypto_ex_data_st',
-           'ui_method_st', '__darwin_pthread_rwlockattr_t',
-           'CRYPTO_EX_dup', '__darwin_ino_t', '__sFILE',
-           'OSUnknownByteOrder', 'BN_MONT_CTX', 'ASN1_NULL', 'time_t',
-           'CRYPTO_EX_new', 'asn1_type_st', 'CRYPTO_EX_DATA_FUNCS',
-           'user_time_t', 'BIGNUM', 'pthread_rwlockattr_t',
-           'ASN1_VALUE_st', 'DH_METHOD', '__darwin_off_t',
-           '_opaque_pthread_t', 'bn_blinding_st', 'RSA', 'ssize_t',
-           'mcontext64_t', 'user_long_t', 'fsblkcnt_t', 'cert_st',
-           '__darwin_pthread_condattr_t', 'X509_PKEY',
-           '__darwin_id_t', '__darwin_nl_item', 'SSL2_STATE', 'FILE',
-           'pthread_mutexattr_t', 'size_t',
-           '_ossl_old_des_key_schedule', 'pkcs7_issuer_and_serial_st',
-           'sigval', 'CRYPTO_MEM_LEAK_CB', 'X509_NAME', 'blkcnt_t',
-           'uint_least16_t', '__darwin_dev_t', 'evp_cipher_info_st',
-           'BN_BLINDING', 'ssl3_state_st', 'uint_least64_t',
-           'user_addr_t', 'DES_key_schedule', 'RIPEMD160_CTX',
-           'u_char', 'X509_algor_st', 'uid_t', 'sess_cert_st',
-           'u_int64_t', 'u_int16_t', 'sigset_t', '__darwin_ptrdiff_t',
-           'ASN1_CTX', 'STACK', '__int32_t', 'UI_METHOD',
-           'NETSCAPE_SPKI', 'UIT_PROMPT', 'st_CRYPTO_EX_DATA_IMPL',
-           'cast_key_st', 'X509_HASH_DIR_CTX', 'sigevent',
-           'user_ssize_t', 'clock_t', 'aes_key_st',
-           '__darwin_socklen_t', '__darwin_intptr_t', 'int_fast64_t',
-           'asn1_string_table_st', 'uint_fast32_t',
-           'ASN1_VISIBLESTRING', 'DSA_SIG_st', 'obj_name_st',
-           'X509_LOOKUP_METHOD', 'u_int32_t', 'EVP_CIPHER_INFO',
-           '__gnuc_va_list', 'AES_KEY', 'PKCS7_ISSUER_AND_SERIAL',
-           'BN_CTX', '__darwin_blkcnt_t', 'key_t', 'SHA_CTX',
-           'pkcs7_signed_st', 'SSL', 'N10pem_ctx_st4DOLLAR_16E',
-           'pthread_attr_t', 'EVP_MD', 'uint', 'ASN1_BOOLEAN',
-           'ino_t', '__darwin_clock_t', 'ASN1_OCTET_STRING',
-           'asn1_ctx_st', 'BIO_F_BUFFER_CTX', 'bn_mont_ctx_st',
-           'X509_REQ_INFO', 'PEM_CTX', 'sigvec',
-           '__darwin_pthread_mutexattr_t', 'x509_attributes_st',
-           'stack_t', '__darwin_mode_t', '__mbstate_t',
-           'asn1_object_st', 'ASN1_ENCODING', '__uint8_t',
-           'LHASH_NODE', 'PKCS7_SIGNER_INFO', 'asn1_method_st',
-           'stack_st', 'bio_info_cb', 'div_t', 'UIT_VERIFY',
-           'PBEPARAM_st', 'N4wait3DOLLAR_3E', 'quad_t', '__siginfo',
-           '__darwin_mbstate_t', 'rsa_st', 'ASN1_UNIVERSALSTRING',
-           'uint64_t', 'ssl_comp_st', 'X509_OBJECT', 'pthread_cond_t',
-           'DH', '__darwin_wctype_t', 'PKCS7_ENVELOPE', 'ASN1_TLC_st',
-           'sig_atomic_t', 'BIO', 'nlink_t', 'BUF_MEM', 'SSL3_RECORD',
-           'bio_method_st', 'timeval', 'UI_string_types', 'BIO_dummy',
-           'ssl_ctx_st', 'NETSCAPE_CERT_SEQUENCE',
-           'BIT_STRING_BITNAME_st', '__darwin_pthread_attr_t',
-           'int8_t', '__darwin_wint_t', 'OBJ_NAME',
-           'PKCS8_PRIV_KEY_INFO', 'PBE2PARAM_st',
-           'LHASH_DOALL_FN_TYPE', 'x509_st', 'X509_VAL', 'dev_t',
-           'ASN1_TEMPLATE_st', 'MD5state_st', '__uint16_t',
-           'LHASH_DOALL_ARG_FN_TYPE', 'mdc2_ctx_st', 'SSL3_STATE',
-           'ssl3_buffer_st', 'ASN1_ITEM_EXP',
-           '_opaque_pthread_condattr_t', 'mode_t', 'ASN1_VALUE',
-           'qaddr_t', '__darwin_gid_t', 'EVP_PKEY', 'CRYPTO_EX_free',
-           '_ossl_old_des_cblock', 'X509_INFO', 'asn1_string_st',
-           'intptr_t', 'UIT_INFO', 'int_fast8_t', 'sigaltstack',
-           'env_md_st', 'LHASH', '__darwin_ucontext_t',
-           'PKCS7_SIGN_ENVELOPE', '__darwin_mcontext_t', 'ct_rune_t',
-           'MD2_CTX', 'pthread_once_t', 'SSL3_BUFFER', 'fd_mask',
-           'ASN1_TYPE', 'PKCS7_SIGNED', 'ssl3_record_st', 'BF_KEY',
-           'MD4state_st', 'MD4_CTX', 'int16_t', 'SSL_CIPHER',
-           'rune_t', 'X509_TRUST', 'siginfo_t', 'X509_STORE',
-           '__sbuf', 'X509_STORE_CTX', '__darwin_blksize_t', 'ldiv_t',
-           'ASN1_TIME', 'SSL_METHOD', 'X509_LOOKUP',
-           'Netscape_spki_st', 'P_PID', 'sigaction', 'sig_t',
-           'hostent', 'x509_cert_aux_st', '_opaque_pthread_cond_t',
-           'segsz_t', 'ushort', '__darwin_ct_rune_t', 'fd_set',
-           'BN_RECP_CTX', 'x509_lookup_st', 'uint16_t', 'pkcs7_st',
-           'asn1_header_st', '__darwin_pthread_key_t',
-           'x509_trust_st', '__darwin_pthread_handler_rec', 'int32_t',
-           'X509_CRL_INFO', 'N11evp_pkey_st4DOLLAR_12E', 'MDC2_CTX',
-           'N23_ossl_old_des_ks_struct4DOLLAR_10E', 'ASN1_HEADER',
-           'X509_crl_info_st', 'LHASH_HASH_FN_TYPE',
-           '_opaque_pthread_mutexattr_t', 'ssl_st',
-           'N8pkcs7_st4DOLLAR_15E', 'evp_pkey_st',
-           'pkcs7_signedandenveloped_st', '__darwin_mach_port_t',
-           'EVP_PBE_KEYGEN', '_opaque_pthread_mutex_t',
-           'ASN1_UTCTIME', 'mcontext', 'crypto_ex_data_func_st',
-           'u_long', 'PBKDF2PARAM_st', 'rc4_key_st', 'DSA_METHOD',
-           'EVP_CIPHER', 'BIT_STRING_BITNAME', 'PKCS7_RECIP_INFO',
-           'ssl3_enc_method', 'X509_CERT_AUX', 'uintmax_t',
-           'int_fast16_t', 'RC5_32_KEY', 'ucontext64', 'ASN1_INTEGER',
-           'u_short', 'N14x509_object_st4DOLLAR_14E', 'mcontext64',
-           'X509_sig_st', 'ASN1_GENERALSTRING', 'PKCS7', '__sFILEX',
-           'X509_name_entry_st', 'ssl_session_st', 'caddr_t',
-           'bignum_st', 'X509_CINF', '__darwin_pthread_cond_t',
-           'ASN1_TLC', 'PKCS7_ENCRYPT', 'NETSCAPE_SPKAC',
-           'Netscape_spkac_st', 'idtype_t', 'UIT_ERROR',
-           'uint_fast64_t', 'in_addr_t', 'pthread_mutex_t',
-           '__int64_t', 'ASN1_BMPSTRING', 'uint32_t',
-           'PEM_ENCODE_SEAL_CTX', 'suseconds_t', 'ASN1_OBJECT',
-           'X509_val_st', 'private_key_st', 'CRYPTO_dynlock',
-           'X509_objects_st', 'CRYPTO_EX_DATA_IMPL',
-           'pthread_condattr_t', 'PKCS7_DIGEST', 'uint_least32_t',
-           'ASN1_STRING', '__uint32_t', 'P_PGID', 'rsa_meth_st',
-           'X509_crl_st', 'RC2_KEY', '__darwin_fsfilcnt_t',
-           'X509_revoked_st', 'PBE2PARAM', 'blksize_t',
-           'Netscape_certificate_sequence', 'ssl_cipher_st',
-           'bignum_ctx', 'register_t', 'ASN1_UTF8STRING',
-           'pkcs7_encrypted_st', 'RC4_KEY', '__darwin_ucontext64_t',
-           'N13ssl2_state_st4DOLLAR_19E', 'bn_recp_ctx_st',
-           'CAST_KEY', 'X509_ATTRIBUTE', '__darwin_suseconds_t',
-           '__sigaction', 'user_ulong_t', 'syscall_arg_t',
-           'evp_cipher_ctx_st', 'X509_ALGOR', 'mcontext_t',
-           'const_DES_cblock', '__darwin_fsblkcnt_t', 'dsa_st',
-           'int_least8_t', 'MD2state_st', 'X509_EXTENSION',
-           'GEN_SESSION_CB', 'int_least16_t', '__darwin_wctrans_t',
-           'PBKDF2PARAM', 'x509_lookup_method_st', 'pem_password_cb',
-           'X509_info_st', 'x509_store_st', '__darwin_natural_t',
-           'X509_pubkey_st', 'pkcs7_digest_st', '__darwin_size_t',
-           'ASN1_STRING_TABLE', 'OSLittleEndian', 'RIPEMD160state_st',
-           'pkcs7_enveloped_st', 'UI', 'ptrdiff_t', 'X509_REQ',
-           'CRYPTO_dynlock_value', 'X509_req_st', 'x509_store_ctx_st',
-           'N13ssl3_state_st4DOLLAR_20E', 'lhash_node_st',
-           '__darwin_pthread_mutex_t', 'LHASH_COMP_FN_TYPE',
-           '__darwin_rune_t', 'rlimit', '__darwin_pthread_once_t',
-           'OSBigEndian', 'uintptr_t', '__darwin_uid_t', 'u_int',
-           'ASN1_T61STRING', 'gid_t', 'ssl_method_st', 'ASN1_ITEM',
-           'ASN1_ENUMERATED', '_opaque_pthread_rwlock_t',
-           'pkcs8_priv_key_info_st', 'intmax_t', 'sigcontext',
-           'X509_CRL', 'rc2_key_st', 'engine_st', 'x509_object_st',
-           '_opaque_pthread_once_t', 'DES_ks', 'SSL_COMP',
-           'dsa_method', 'int64_t', 'bio_st', 'bf_key_st',
-           'ASN1_GENERALIZEDTIME', 'PKCS7_ENC_CONTENT',
-           '__darwin_pid_t', 'lldiv_t', 'comp_method_st',
-           'EVP_MD_CTX', 'evp_cipher_st', 'X509_name_st',
-           'x509_hash_dir_st', '__darwin_mach_port_name_t',
-           'useconds_t', 'user_size_t', 'SSL_SESSION', 'rusage',
-           'ssl_crock_st', 'int_least32_t', '__sigaction_u', 'dh_st',
-           'P_ALL', '__darwin_stack_t', 'N6DES_ks3DOLLAR_9E',
-           'comp_ctx_st', 'X509_CERT_FILE_CTX']
diff --git a/lib/python2.7/lib2to3/tests/data/py2_test_grammar.py b/lib/python2.7/lib2to3/tests/data/py2_test_grammar.py
deleted file mode 100644
index b5a4137..0000000
--- a/lib/python2.7/lib2to3/tests/data/py2_test_grammar.py
+++ /dev/null
@@ -1,974 +0,0 @@
-# Python test set -- part 1, grammar.
-# This just tests whether the parser accepts them all.
-
-# NOTE: When you run this test as a script from the command line, you
-# get warnings about certain hex/oct constants.  Since those are
-# issued by the parser, you can't suppress them by adding a
-# filterwarnings() call to this module.  Therefore, to shut up the
-# regression test, the filterwarnings() call has been added to
-# regrtest.py.
-
-from test.test_support import run_unittest, check_syntax_error
-import unittest
-import sys
-# testing import *
-from sys import *
-
-class TokenTests(unittest.TestCase):
-
-    def testBackslash(self):
-        # Backslash means line continuation:
-        x = 1 \
-        + 1
-        self.assertEquals(x, 2, 'backslash for line continuation')
-
-        # Backslash does not means continuation in comments :\
-        x = 0
-        self.assertEquals(x, 0, 'backslash ending comment')
-
-    def testPlainIntegers(self):
-        self.assertEquals(0xff, 255)
-        self.assertEquals(0377, 255)
-        self.assertEquals(2147483647, 017777777777)
-        # "0x" is not a valid literal
-        self.assertRaises(SyntaxError, eval, "0x")
-        from sys import maxint
-        if maxint == 2147483647:
-            self.assertEquals(-2147483647-1, -020000000000)
-            # XXX -2147483648
-            self.assert_(037777777777 > 0)
-            self.assert_(0xffffffff > 0)
-            for s in '2147483648', '040000000000', '0x100000000':
-                try:
-                    x = eval(s)
-                except OverflowError:
-                    self.fail("OverflowError on huge integer literal %r" % s)
-        elif maxint == 9223372036854775807:
-            self.assertEquals(-9223372036854775807-1, -01000000000000000000000)
-            self.assert_(01777777777777777777777 > 0)
-            self.assert_(0xffffffffffffffff > 0)
-            for s in '9223372036854775808', '02000000000000000000000', \
-                     '0x10000000000000000':
-                try:
-                    x = eval(s)
-                except OverflowError:
-                    self.fail("OverflowError on huge integer literal %r" % s)
-        else:
-            self.fail('Weird maxint value %r' % maxint)
-
-    def testLongIntegers(self):
-        x = 0L
-        x = 0l
-        x = 0xffffffffffffffffL
-        x = 0xffffffffffffffffl
-        x = 077777777777777777L
-        x = 077777777777777777l
-        x = 123456789012345678901234567890L
-        x = 123456789012345678901234567890l
-
-    def testFloats(self):
-        x = 3.14
-        x = 314.
-        x = 0.314
-        # XXX x = 000.314
-        x = .314
-        x = 3e14
-        x = 3E14
-        x = 3e-14
-        x = 3e+14
-        x = 3.e14
-        x = .3e14
-        x = 3.1e4
-
-    def testStringLiterals(self):
-        x = ''; y = ""; self.assert_(len(x) == 0 and x == y)
-        x = '\''; y = "'"; self.assert_(len(x) == 1 and x == y and ord(x) == 39)
-        x = '"'; y = "\""; self.assert_(len(x) == 1 and x == y and ord(x) == 34)
-        x = "doesn't \"shrink\" does it"
-        y = 'doesn\'t "shrink" does it'
-        self.assert_(len(x) == 24 and x == y)
-        x = "does \"shrink\" doesn't it"
-        y = 'does "shrink" doesn\'t it'
-        self.assert_(len(x) == 24 and x == y)
-        x = """
-The "quick"
-brown fox
-jumps over
-the 'lazy' dog.
-"""
-        y = '\nThe "quick"\nbrown fox\njumps over\nthe \'lazy\' dog.\n'
-        self.assertEquals(x, y)
-        y = '''
-The "quick"
-brown fox
-jumps over
-the 'lazy' dog.
-'''
-        self.assertEquals(x, y)
-        y = "\n\
-The \"quick\"\n\
-brown fox\n\
-jumps over\n\
-the 'lazy' dog.\n\
-"
-        self.assertEquals(x, y)
-        y = '\n\
-The \"quick\"\n\
-brown fox\n\
-jumps over\n\
-the \'lazy\' dog.\n\
-'
-        self.assertEquals(x, y)
-
-
-class GrammarTests(unittest.TestCase):
-
-    # single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE
-    # XXX can't test in a script -- this rule is only used when interactive
-
-    # file_input: (NEWLINE | stmt)* ENDMARKER
-    # Being tested as this very moment this very module
-
-    # expr_input: testlist NEWLINE
-    # XXX Hard to test -- used only in calls to input()
-
-    def testEvalInput(self):
-        # testlist ENDMARKER
-        x = eval('1, 0 or 1')
-
-    def testFuncdef(self):
-        ### 'def' NAME parameters ':' suite
-        ### parameters: '(' [varargslist] ')'
-        ### varargslist: (fpdef ['=' test] ',')* ('*' NAME [',' ('**'|'*' '*') NAME]
-        ###            | ('**'|'*' '*') NAME)
-        ###            | fpdef ['=' test] (',' fpdef ['=' test])* [',']
-        ### fpdef: NAME | '(' fplist ')'
-        ### fplist: fpdef (',' fpdef)* [',']
-        ### arglist: (argument ',')* (argument | *' test [',' '**' test] | '**' test)
-        ### argument: [test '='] test   # Really [keyword '='] test
-        def f1(): pass
-        f1()
-        f1(*())
-        f1(*(), **{})
-        def f2(one_argument): pass
-        def f3(two, arguments): pass
-        def f4(two, (compound, (argument, list))): pass
-        def f5((compound, first), two): pass
-        self.assertEquals(f2.func_code.co_varnames, ('one_argument',))
-        self.assertEquals(f3.func_code.co_varnames, ('two', 'arguments'))
-        if sys.platform.startswith('java'):
-            self.assertEquals(f4.func_code.co_varnames,
-                   ('two', '(compound, (argument, list))', 'compound', 'argument',
-                                'list',))
-            self.assertEquals(f5.func_code.co_varnames,
-                   ('(compound, first)', 'two', 'compound', 'first'))
-        else:
-            self.assertEquals(f4.func_code.co_varnames,
-                  ('two', '.1', 'compound', 'argument',  'list'))
-            self.assertEquals(f5.func_code.co_varnames,
-                  ('.0', 'two', 'compound', 'first'))
-        def a1(one_arg,): pass
-        def a2(two, args,): pass
-        def v0(*rest): pass
-        def v1(a, *rest): pass
-        def v2(a, b, *rest): pass
-        def v3(a, (b, c), *rest): return a, b, c, rest
-
-        f1()
-        f2(1)
-        f2(1,)
-        f3(1, 2)
-        f3(1, 2,)
-        f4(1, (2, (3, 4)))
-        v0()
-        v0(1)
-        v0(1,)
-        v0(1,2)
-        v0(1,2,3,4,5,6,7,8,9,0)
-        v1(1)
-        v1(1,)
-        v1(1,2)
-        v1(1,2,3)
-        v1(1,2,3,4,5,6,7,8,9,0)
-        v2(1,2)
-        v2(1,2,3)
-        v2(1,2,3,4)
-        v2(1,2,3,4,5,6,7,8,9,0)
-        v3(1,(2,3))
-        v3(1,(2,3),4)
-        v3(1,(2,3),4,5,6,7,8,9,0)
-
-        # ceval unpacks the formal arguments into the first argcount names;
-        # thus, the names nested inside tuples must appear after these names.
-        if sys.platform.startswith('java'):
-            self.assertEquals(v3.func_code.co_varnames, ('a', '(b, c)', 'rest', 'b', 'c'))
-        else:
-            self.assertEquals(v3.func_code.co_varnames, ('a', '.1', 'rest', 'b', 'c'))
-        self.assertEquals(v3(1, (2, 3), 4), (1, 2, 3, (4,)))
-        def d01(a=1): pass
-        d01()
-        d01(1)
-        d01(*(1,))
-        d01(**{'a':2})
-        def d11(a, b=1): pass
-        d11(1)
-        d11(1, 2)
-        d11(1, **{'b':2})
-        def d21(a, b, c=1): pass
-        d21(1, 2)
-        d21(1, 2, 3)
-        d21(*(1, 2, 3))
-        d21(1, *(2, 3))
-        d21(1, 2, *(3,))
-        d21(1, 2, **{'c':3})
-        def d02(a=1, b=2): pass
-        d02()
-        d02(1)
-        d02(1, 2)
-        d02(*(1, 2))
-        d02(1, *(2,))
-        d02(1, **{'b':2})
-        d02(**{'a': 1, 'b': 2})
-        def d12(a, b=1, c=2): pass
-        d12(1)
-        d12(1, 2)
-        d12(1, 2, 3)
-        def d22(a, b, c=1, d=2): pass
-        d22(1, 2)
-        d22(1, 2, 3)
-        d22(1, 2, 3, 4)
-        def d01v(a=1, *rest): pass
-        d01v()
-        d01v(1)
-        d01v(1, 2)
-        d01v(*(1, 2, 3, 4))
-        d01v(*(1,))
-        d01v(**{'a':2})
-        def d11v(a, b=1, *rest): pass
-        d11v(1)
-        d11v(1, 2)
-        d11v(1, 2, 3)
-        def d21v(a, b, c=1, *rest): pass
-        d21v(1, 2)
-        d21v(1, 2, 3)
-        d21v(1, 2, 3, 4)
-        d21v(*(1, 2, 3, 4))
-        d21v(1, 2, **{'c': 3})
-        def d02v(a=1, b=2, *rest): pass
-        d02v()
-        d02v(1)
-        d02v(1, 2)
-        d02v(1, 2, 3)
-        d02v(1, *(2, 3, 4))
-        d02v(**{'a': 1, 'b': 2})
-        def d12v(a, b=1, c=2, *rest): pass
-        d12v(1)
-        d12v(1, 2)
-        d12v(1, 2, 3)
-        d12v(1, 2, 3, 4)
-        d12v(*(1, 2, 3, 4))
-        d12v(1, 2, *(3, 4, 5))
-        d12v(1, *(2,), **{'c': 3})
-        def d22v(a, b, c=1, d=2, *rest): pass
-        d22v(1, 2)
-        d22v(1, 2, 3)
-        d22v(1, 2, 3, 4)
-        d22v(1, 2, 3, 4, 5)
-        d22v(*(1, 2, 3, 4))
-        d22v(1, 2, *(3, 4, 5))
-        d22v(1, *(2, 3), **{'d': 4})
-        def d31v((x)): pass
-        d31v(1)
-        def d32v((x,)): pass
-        d32v((1,))
-
-        # keyword arguments after *arglist
-        def f(*args, **kwargs):
-            return args, kwargs
-        self.assertEquals(f(1, x=2, *[3, 4], y=5), ((1, 3, 4),
-                                                    {'x':2, 'y':5}))
-        self.assertRaises(SyntaxError, eval, "f(1, *(2,3), 4)")
-        self.assertRaises(SyntaxError, eval, "f(1, x=2, *(3,4), x=5)")
-
-        # Check ast errors in *args and *kwargs
-        check_syntax_error(self, "f(*g(1=2))")
-        check_syntax_error(self, "f(**g(1=2))")
-
-    def testLambdef(self):
-        ### lambdef: 'lambda' [varargslist] ':' test
-        l1 = lambda : 0
-        self.assertEquals(l1(), 0)
-        l2 = lambda : a[d] # XXX just testing the expression
-        l3 = lambda : [2 < x for x in [-1, 3, 0L]]
-        self.assertEquals(l3(), [0, 1, 0])
-        l4 = lambda x = lambda y = lambda z=1 : z : y() : x()
-        self.assertEquals(l4(), 1)
-        l5 = lambda x, y, z=2: x + y + z
-        self.assertEquals(l5(1, 2), 5)
-        self.assertEquals(l5(1, 2, 3), 6)
-        check_syntax_error(self, "lambda x: x = 2")
-        check_syntax_error(self, "lambda (None,): None")
-
-    ### stmt: simple_stmt | compound_stmt
-    # Tested below
-
-    def testSimpleStmt(self):
-        ### simple_stmt: small_stmt (';' small_stmt)* [';']
-        x = 1; pass; del x
-        def foo():
-            # verify statements that end with semi-colons
-            x = 1; pass; del x;
-        foo()
-
-    ### small_stmt: expr_stmt | print_stmt  | pass_stmt | del_stmt | flow_stmt | import_stmt | global_stmt | access_stmt | exec_stmt
-    # Tested below
-
-    def testExprStmt(self):
-        # (exprlist '=')* exprlist
-        1
-        1, 2, 3
-        x = 1
-        x = 1, 2, 3
-        x = y = z = 1, 2, 3
-        x, y, z = 1, 2, 3
-        abc = a, b, c = x, y, z = xyz = 1, 2, (3, 4)
-
-        check_syntax_error(self, "x + 1 = 1")
-        check_syntax_error(self, "a + 1 = b + 2")
-
-    def testPrintStmt(self):
-        # 'print' (test ',')* [test]
-        import StringIO
-
-        # Can't test printing to real stdout without comparing output
-        # which is not available in unittest.
-        save_stdout = sys.stdout
-        sys.stdout = StringIO.StringIO()
-
-        print 1, 2, 3
-        print 1, 2, 3,
-        print
-        print 0 or 1, 0 or 1,
-        print 0 or 1
-
-        # 'print' '>>' test ','
-        print >> sys.stdout, 1, 2, 3
-        print >> sys.stdout, 1, 2, 3,
-        print >> sys.stdout
-        print >> sys.stdout, 0 or 1, 0 or 1,
-        print >> sys.stdout, 0 or 1
-
-        # test printing to an instance
-        class Gulp:
-            def write(self, msg): pass
-
-        gulp = Gulp()
-        print >> gulp, 1, 2, 3
-        print >> gulp, 1, 2, 3,
-        print >> gulp
-        print >> gulp, 0 or 1, 0 or 1,
-        print >> gulp, 0 or 1
-
-        # test print >> None
-        def driver():
-            oldstdout = sys.stdout
-            sys.stdout = Gulp()
-            try:
-                tellme(Gulp())
-                tellme()
-            finally:
-                sys.stdout = oldstdout
-
-        # we should see this once
-        def tellme(file=sys.stdout):
-            print >> file, 'hello world'
-
-        driver()
-
-        # we should not see this at all
-        def tellme(file=None):
-            print >> file, 'goodbye universe'
-
-        driver()
-
-        self.assertEqual(sys.stdout.getvalue(), '''\
-1 2 3
-1 2 3
-1 1 1
-1 2 3
-1 2 3
-1 1 1
-hello world
-''')
-        sys.stdout = save_stdout
-
-        # syntax errors
-        check_syntax_error(self, 'print ,')
-        check_syntax_error(self, 'print >> x,')
-
-    def testDelStmt(self):
-        # 'del' exprlist
-        abc = [1,2,3]
-        x, y, z = abc
-        xyz = x, y, z
-
-        del abc
-        del x, y, (z, xyz)
-
-    def testPassStmt(self):
-        # 'pass'
-        pass
-
-    # flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt
-    # Tested below
-
-    def testBreakStmt(self):
-        # 'break'
-        while 1: break
-
-    def testContinueStmt(self):
-        # 'continue'
-        i = 1
-        while i: i = 0; continue
-
-        msg = ""
-        while not msg:
-            msg = "ok"
-            try:
-                continue
-                msg = "continue failed to continue inside try"
-            except:
-                msg = "continue inside try called except block"
-        if msg != "ok":
-            self.fail(msg)
-
-        msg = ""
-        while not msg:
-            msg = "finally block not called"
-            try:
-                continue
-            finally:
-                msg = "ok"
-        if msg != "ok":
-            self.fail(msg)
-
-    def test_break_continue_loop(self):
-        # This test warrants an explanation. It is a test specifically for SF bugs
-        # #463359 and #462937. The bug is that a 'break' statement executed or
-        # exception raised inside a try/except inside a loop, *after* a continue
-        # statement has been executed in that loop, will cause the wrong number of
-        # arguments to be popped off the stack and the instruction pointer reset to
-        # a very small number (usually 0.) Because of this, the following test
-        # *must* written as a function, and the tracking vars *must* be function
-        # arguments with default values. Otherwise, the test will loop and loop.
-
-        def test_inner(extra_burning_oil = 1, count=0):
-            big_hippo = 2
-            while big_hippo:
-                count += 1
-                try:
-                    if extra_burning_oil and big_hippo == 1:
-                        extra_burning_oil -= 1
-                        break
-                    big_hippo -= 1
-                    continue
-                except:
-                    raise
-            if count > 2 or big_hippo <> 1:
-                self.fail("continue then break in try/except in loop broken!")
-        test_inner()
-
-    def testReturn(self):
-        # 'return' [testlist]
-        def g1(): return
-        def g2(): return 1
-        g1()
-        x = g2()
-        check_syntax_error(self, "class foo:return 1")
-
-    def testYield(self):
-        check_syntax_error(self, "class foo:yield 1")
-
-    def testRaise(self):
-        # 'raise' test [',' test]
-        try: raise RuntimeError, 'just testing'
-        except RuntimeError: pass
-        try: raise KeyboardInterrupt
-        except KeyboardInterrupt: pass
-
-    def testImport(self):
-        # 'import' dotted_as_names
-        import sys
-        import time, sys
-        # 'from' dotted_name 'import' ('*' | '(' import_as_names ')' | import_as_names)
-        from time import time
-        from time import (time)
-        # not testable inside a function, but already done at top of the module
-        # from sys import *
-        from sys import path, argv
-        from sys import (path, argv)
-        from sys import (path, argv,)
-
-    def testGlobal(self):
-        # 'global' NAME (',' NAME)*
-        global a
-        global a, b
-        global one, two, three, four, five, six, seven, eight, nine, ten
-
-    def testExec(self):
-        # 'exec' expr ['in' expr [',' expr]]
-        z = None
-        del z
-        exec 'z=1+1\n'
-        if z != 2: self.fail('exec \'z=1+1\'\\n')
-        del z
-        exec 'z=1+1'
-        if z != 2: self.fail('exec \'z=1+1\'')
-        z = None
-        del z
-        import types
-        if hasattr(types, "UnicodeType"):
-            exec r"""if 1:
-            exec u'z=1+1\n'
-            if z != 2: self.fail('exec u\'z=1+1\'\\n')
-            del z
-            exec u'z=1+1'
-            if z != 2: self.fail('exec u\'z=1+1\'')"""
-        g = {}
-        exec 'z = 1' in g
-        if g.has_key('__builtins__'): del g['__builtins__']
-        if g != {'z': 1}: self.fail('exec \'z = 1\' in g')
-        g = {}
-        l = {}
-
-        import warnings
-        warnings.filterwarnings("ignore", "global statement", module="<string>")
-        exec 'global a; a = 1; b = 2' in g, l
-        if g.has_key('__builtins__'): del g['__builtins__']
-        if l.has_key('__builtins__'): del l['__builtins__']
-        if (g, l) != ({'a':1}, {'b':2}):
-            self.fail('exec ... in g (%s), l (%s)' %(g,l))
-
-    def testAssert(self):
-        # assert_stmt: 'assert' test [',' test]
-        assert 1
-        assert 1, 1
-        assert lambda x:x
-        assert 1, lambda x:x+1
-        try:
-            assert 0, "msg"
-        except AssertionError, e:
-            self.assertEquals(e.args[0], "msg")
-        else:
-            if __debug__:
-                self.fail("AssertionError not raised by assert 0")
-
-    ### compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | funcdef | classdef
-    # Tested below
-
-    def testIf(self):
-        # 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]
-        if 1: pass
-        if 1: pass
-        else: pass
-        if 0: pass
-        elif 0: pass
-        if 0: pass
-        elif 0: pass
-        elif 0: pass
-        elif 0: pass
-        else: pass
-
-    def testWhile(self):
-        # 'while' test ':' suite ['else' ':' suite]
-        while 0: pass
-        while 0: pass
-        else: pass
-
-        # Issue1920: "while 0" is optimized away,
-        # ensure that the "else" clause is still present.
-        x = 0
-        while 0:
-            x = 1
-        else:
-            x = 2
-        self.assertEquals(x, 2)
-
-    def testFor(self):
-        # 'for' exprlist 'in' exprlist ':' suite ['else' ':' suite]
-        for i in 1, 2, 3: pass
-        for i, j, k in (): pass
-        else: pass
-        class Squares:
-            def __init__(self, max):
-                self.max = max
-                self.sofar = []
-            def __len__(self): return len(self.sofar)
-            def __getitem__(self, i):
-                if not 0 <= i < self.max: raise IndexError
-                n = len(self.sofar)
-                while n <= i:
-                    self.sofar.append(n*n)
-                    n = n+1
-                return self.sofar[i]
-        n = 0
-        for x in Squares(10): n = n+x
-        if n != 285:
-            self.fail('for over growing sequence')
-
-        result = []
-        for x, in [(1,), (2,), (3,)]:
-            result.append(x)
-        self.assertEqual(result, [1, 2, 3])
-
-    def testTry(self):
-        ### try_stmt: 'try' ':' suite (except_clause ':' suite)+ ['else' ':' suite]
-        ###         | 'try' ':' suite 'finally' ':' suite
-        ### except_clause: 'except' [expr [('as' | ',') expr]]
-        try:
-            1/0
-        except ZeroDivisionError:
-            pass
-        else:
-            pass
-        try: 1/0
-        except EOFError: pass
-        except TypeError as msg: pass
-        except RuntimeError, msg: pass
-        except: pass
-        else: pass
-        try: 1/0
-        except (EOFError, TypeError, ZeroDivisionError): pass
-        try: 1/0
-        except (EOFError, TypeError, ZeroDivisionError), msg: pass
-        try: pass
-        finally: pass
-
-    def testSuite(self):
-        # simple_stmt | NEWLINE INDENT NEWLINE* (stmt NEWLINE*)+ DEDENT
-        if 1: pass
-        if 1:
-            pass
-        if 1:
-            #
-            #
-            #
-            pass
-            pass
-            #
-            pass
-            #
-
-    def testTest(self):
-        ### and_test ('or' and_test)*
-        ### and_test: not_test ('and' not_test)*
-        ### not_test: 'not' not_test | comparison
-        if not 1: pass
-        if 1 and 1: pass
-        if 1 or 1: pass
-        if not not not 1: pass
-        if not 1 and 1 and 1: pass
-        if 1 and 1 or 1 and 1 and 1 or not 1 and 1: pass
-
-    def testComparison(self):
-        ### comparison: expr (comp_op expr)*
-        ### comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not'
-        if 1: pass
-        x = (1 == 1)
-        if 1 == 1: pass
-        if 1 != 1: pass
-        if 1 <> 1: pass
-        if 1 < 1: pass
-        if 1 > 1: pass
-        if 1 <= 1: pass
-        if 1 >= 1: pass
-        if 1 is 1: pass
-        if 1 is not 1: pass
-        if 1 in (): pass
-        if 1 not in (): pass
-        if 1 < 1 > 1 == 1 >= 1 <= 1 <> 1 != 1 in 1 not in 1 is 1 is not 1: pass
-
-    def testBinaryMaskOps(self):
-        x = 1 & 1
-        x = 1 ^ 1
-        x = 1 | 1
-
-    def testShiftOps(self):
-        x = 1 << 1
-        x = 1 >> 1
-        x = 1 << 1 >> 1
-
-    def testAdditiveOps(self):
-        x = 1
-        x = 1 + 1
-        x = 1 - 1 - 1
-        x = 1 - 1 + 1 - 1 + 1
-
-    def testMultiplicativeOps(self):
-        x = 1 * 1
-        x = 1 / 1
-        x = 1 % 1
-        x = 1 / 1 * 1 % 1
-
-    def testUnaryOps(self):
-        x = +1
-        x = -1
-        x = ~1
-        x = ~1 ^ 1 & 1 | 1 & 1 ^ -1
-        x = -1*1/1 + 1*1 - ---1*1
-
-    def testSelectors(self):
-        ### trailer: '(' [testlist] ')' | '[' subscript ']' | '.' NAME
-        ### subscript: expr | [expr] ':' [expr]
-
-        import sys, time
-        c = sys.path[0]
-        x = time.time()
-        x = sys.modules['time'].time()
-        a = '01234'
-        c = a[0]
-        c = a[-1]
-        s = a[0:5]
-        s = a[:5]
-        s = a[0:]
-        s = a[:]
-        s = a[-5:]
-        s = a[:-1]
-        s = a[-4:-3]
-        # A rough test of SF bug 1333982.  http://python.org/sf/1333982
-        # The testing here is fairly incomplete.
-        # Test cases should include: commas with 1 and 2 colons
-        d = {}
-        d[1] = 1
-        d[1,] = 2
-        d[1,2] = 3
-        d[1,2,3] = 4
-        L = list(d)
-        L.sort()
-        self.assertEquals(str(L), '[1, (1,), (1, 2), (1, 2, 3)]')
-
-    def testAtoms(self):
-        ### atom: '(' [testlist] ')' | '[' [testlist] ']' | '{' [dictmaker] '}' | '`' testlist '`' | NAME | NUMBER | STRING
-        ### dictmaker: test ':' test (',' test ':' test)* [',']
-
-        x = (1)
-        x = (1 or 2 or 3)
-        x = (1 or 2 or 3, 2, 3)
-
-        x = []
-        x = [1]
-        x = [1 or 2 or 3]
-        x = [1 or 2 or 3, 2, 3]
-        x = []
-
-        x = {}
-        x = {'one': 1}
-        x = {'one': 1,}
-        x = {'one' or 'two': 1 or 2}
-        x = {'one': 1, 'two': 2}
-        x = {'one': 1, 'two': 2,}
-        x = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6}
-
-        x = `x`
-        x = `1 or 2 or 3`
-        self.assertEqual(`1,2`, '(1, 2)')
-
-        x = x
-        x = 'x'
-        x = 123
-
-    ### exprlist: expr (',' expr)* [',']
-    ### testlist: test (',' test)* [',']
-    # These have been exercised enough above
-
-    def testClassdef(self):
-        # 'class' NAME ['(' [testlist] ')'] ':' suite
-        class B: pass
-        class B2(): pass
-        class C1(B): pass
-        class C2(B): pass
-        class D(C1, C2, B): pass
-        class C:
-            def meth1(self): pass
-            def meth2(self, arg): pass
-            def meth3(self, a1, a2): pass
-        # decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE
-        # decorators: decorator+
-        # decorated: decorators (classdef | funcdef)
-        def class_decorator(x):
-            x.decorated = True
-            return x
-        @class_decorator
-        class G:
-            pass
-        self.assertEqual(G.decorated, True)
-
-    def testListcomps(self):
-        # list comprehension tests
-        nums = [1, 2, 3, 4, 5]
-        strs = ["Apple", "Banana", "Coconut"]
-        spcs = ["  Apple", " Banana ", "Coco  nut  "]
-
-        self.assertEqual([s.strip() for s in spcs], ['Apple', 'Banana', 'Coco  nut'])
-        self.assertEqual([3 * x for x in nums], [3, 6, 9, 12, 15])
-        self.assertEqual([x for x in nums if x > 2], [3, 4, 5])
-        self.assertEqual([(i, s) for i in nums for s in strs],
-                         [(1, 'Apple'), (1, 'Banana'), (1, 'Coconut'),
-                          (2, 'Apple'), (2, 'Banana'), (2, 'Coconut'),
-                          (3, 'Apple'), (3, 'Banana'), (3, 'Coconut'),
-                          (4, 'Apple'), (4, 'Banana'), (4, 'Coconut'),
-                          (5, 'Apple'), (5, 'Banana'), (5, 'Coconut')])
-        self.assertEqual([(i, s) for i in nums for s in [f for f in strs if "n" in f]],
-                         [(1, 'Banana'), (1, 'Coconut'), (2, 'Banana'), (2, 'Coconut'),
-                          (3, 'Banana'), (3, 'Coconut'), (4, 'Banana'), (4, 'Coconut'),
-                          (5, 'Banana'), (5, 'Coconut')])
-        self.assertEqual([(lambda a:[a**i for i in range(a+1)])(j) for j in range(5)],
-                         [[1], [1, 1], [1, 2, 4], [1, 3, 9, 27], [1, 4, 16, 64, 256]])
-
-        def test_in_func(l):
-            return [None < x < 3 for x in l if x > 2]
-
-        self.assertEqual(test_in_func(nums), [False, False, False])
-
-        def test_nested_front():
-            self.assertEqual([[y for y in [x, x + 1]] for x in [1,3,5]],
-                             [[1, 2], [3, 4], [5, 6]])
-
-        test_nested_front()
-
-        check_syntax_error(self, "[i, s for i in nums for s in strs]")
-        check_syntax_error(self, "[x if y]")
-
-        suppliers = [
-          (1, "Boeing"),
-          (2, "Ford"),
-          (3, "Macdonalds")
-        ]
-
-        parts = [
-          (10, "Airliner"),
-          (20, "Engine"),
-          (30, "Cheeseburger")
-        ]
-
-        suppart = [
-          (1, 10), (1, 20), (2, 20), (3, 30)
-        ]
-
-        x = [
-          (sname, pname)
-            for (sno, sname) in suppliers
-              for (pno, pname) in parts
-                for (sp_sno, sp_pno) in suppart
-                  if sno == sp_sno and pno == sp_pno
-        ]
-
-        self.assertEqual(x, [('Boeing', 'Airliner'), ('Boeing', 'Engine'), ('Ford', 'Engine'),
-                             ('Macdonalds', 'Cheeseburger')])
-
-    def testGenexps(self):
-        # generator expression tests
-        g = ([x for x in range(10)] for x in range(1))
-        self.assertEqual(g.next(), [x for x in range(10)])
-        try:
-            g.next()
-            self.fail('should produce StopIteration exception')
-        except StopIteration:
-            pass
-
-        a = 1
-        try:
-            g = (a for d in a)
-            g.next()
-            self.fail('should produce TypeError')
-        except TypeError:
-            pass
-
-        self.assertEqual(list((x, y) for x in 'abcd' for y in 'abcd'), [(x, y) for x in 'abcd' for y in 'abcd'])
-        self.assertEqual(list((x, y) for x in 'ab' for y in 'xy'), [(x, y) for x in 'ab' for y in 'xy'])
-
-        a = [x for x in range(10)]
-        b = (x for x in (y for y in a))
-        self.assertEqual(sum(b), sum([x for x in range(10)]))
-
-        self.assertEqual(sum(x**2 for x in range(10)), sum([x**2 for x in range(10)]))
-        self.assertEqual(sum(x*x for x in range(10) if x%2), sum([x*x for x in range(10) if x%2]))
-        self.assertEqual(sum(x for x in (y for y in range(10))), sum([x for x in range(10)]))
-        self.assertEqual(sum(x for x in (y for y in (z for z in range(10)))), sum([x for x in range(10)]))
-        self.assertEqual(sum(x for x in [y for y in (z for z in range(10))]), sum([x for x in range(10)]))
-        self.assertEqual(sum(x for x in (y for y in (z for z in range(10) if True)) if True), sum([x for x in range(10)]))
-        self.assertEqual(sum(x for x in (y for y in (z for z in range(10) if True) if False) if True), 0)
-        check_syntax_error(self, "foo(x for x in range(10), 100)")
-        check_syntax_error(self, "foo(100, x for x in range(10))")
-
-    def testComprehensionSpecials(self):
-        # test for outmost iterable precomputation
-        x = 10; g = (i for i in range(x)); x = 5
-        self.assertEqual(len(list(g)), 10)
-
-        # This should hold, since we're only precomputing outmost iterable.
-        x = 10; t = False; g = ((i,j) for i in range(x) if t for j in range(x))
-        x = 5; t = True;
-        self.assertEqual([(i,j) for i in range(10) for j in range(5)], list(g))
-
-        # Grammar allows multiple adjacent 'if's in listcomps and genexps,
-        # even though it's silly. Make sure it works (ifelse broke this.)
-        self.assertEqual([ x for x in range(10) if x % 2 if x % 3 ], [1, 5, 7])
-        self.assertEqual(list(x for x in range(10) if x % 2 if x % 3), [1, 5, 7])
-
-        # verify unpacking single element tuples in listcomp/genexp.
-        self.assertEqual([x for x, in [(4,), (5,), (6,)]], [4, 5, 6])
-        self.assertEqual(list(x for x, in [(7,), (8,), (9,)]), [7, 8, 9])
-
-    def test_with_statement(self):
-        class manager(object):
-            def __enter__(self):
-                return (1, 2)
-            def __exit__(self, *args):
-                pass
-
-        with manager():
-            pass
-        with manager() as x:
-            pass
-        with manager() as (x, y):
-            pass
-        with manager(), manager():
-            pass
-        with manager() as x, manager() as y:
-            pass
-        with manager() as x, manager():
-            pass
-
-    def testIfElseExpr(self):
-        # Test ifelse expressions in various cases
-        def _checkeval(msg, ret):
-            "helper to check that evaluation of expressions is done correctly"
-            print x
-            return ret
-
-        self.assertEqual([ x() for x in lambda: True, lambda: False if x() ], [True])
-        self.assertEqual([ x() for x in (lambda: True, lambda: False) if x() ], [True])
-        self.assertEqual([ x(False) for x in (lambda x: False if x else True, lambda x: True if x else False) if x(False) ], [True])
-        self.assertEqual((5 if 1 else _checkeval("check 1", 0)), 5)
-        self.assertEqual((_checkeval("check 2", 0) if 0 else 5), 5)
-        self.assertEqual((5 and 6 if 0 else 1), 1)
-        self.assertEqual(((5 and 6) if 0 else 1), 1)
-        self.assertEqual((5 and (6 if 1 else 1)), 6)
-        self.assertEqual((0 or _checkeval("check 3", 2) if 0 else 3), 3)
-        self.assertEqual((1 or _checkeval("check 4", 2) if 1 else _checkeval("check 5", 3)), 1)
-        self.assertEqual((0 or 5 if 1 else _checkeval("check 6", 3)), 5)
-        self.assertEqual((not 5 if 1 else 1), False)
-        self.assertEqual((not 5 if 0 else 1), 1)
-        self.assertEqual((6 + 1 if 1 else 2), 7)
-        self.assertEqual((6 - 1 if 1 else 2), 5)
-        self.assertEqual((6 * 2 if 1 else 4), 12)
-        self.assertEqual((6 / 2 if 1 else 3), 3)
-        self.assertEqual((6 < 4 if 0 else 2), 2)
-
-
-def test_main():
-    run_unittest(TokenTests, GrammarTests)
-
-if __name__ == '__main__':
-    test_main()
diff --git a/lib/python2.7/lib2to3/tests/data/py3_test_grammar.py b/lib/python2.7/lib2to3/tests/data/py3_test_grammar.py
deleted file mode 100644
index c0bf7f2..0000000
--- a/lib/python2.7/lib2to3/tests/data/py3_test_grammar.py
+++ /dev/null
@@ -1,923 +0,0 @@
-# Python test set -- part 1, grammar.
-# This just tests whether the parser accepts them all.
-
-# NOTE: When you run this test as a script from the command line, you
-# get warnings about certain hex/oct constants.  Since those are
-# issued by the parser, you can't suppress them by adding a
-# filterwarnings() call to this module.  Therefore, to shut up the
-# regression test, the filterwarnings() call has been added to
-# regrtest.py.
-
-from test.support import run_unittest, check_syntax_error
-import unittest
-import sys
-# testing import *
-from sys import *
-
-class TokenTests(unittest.TestCase):
-
-    def testBackslash(self):
-        # Backslash means line continuation:
-        x = 1 \
-        + 1
-        self.assertEquals(x, 2, 'backslash for line continuation')
-
-        # Backslash does not means continuation in comments :\
-        x = 0
-        self.assertEquals(x, 0, 'backslash ending comment')
-
-    def testPlainIntegers(self):
-        self.assertEquals(type(000), type(0))
-        self.assertEquals(0xff, 255)
-        self.assertEquals(0o377, 255)
-        self.assertEquals(2147483647, 0o17777777777)
-        self.assertEquals(0b1001, 9)
-        # "0x" is not a valid literal
-        self.assertRaises(SyntaxError, eval, "0x")
-        from sys import maxsize
-        if maxsize == 2147483647:
-            self.assertEquals(-2147483647-1, -0o20000000000)
-            # XXX -2147483648
-            self.assert_(0o37777777777 > 0)
-            self.assert_(0xffffffff > 0)
-            self.assert_(0b1111111111111111111111111111111 > 0)
-            for s in ('2147483648', '0o40000000000', '0x100000000',
-                      '0b10000000000000000000000000000000'):
-                try:
-                    x = eval(s)
-                except OverflowError:
-                    self.fail("OverflowError on huge integer literal %r" % s)
-        elif maxsize == 9223372036854775807:
-            self.assertEquals(-9223372036854775807-1, -0o1000000000000000000000)
-            self.assert_(0o1777777777777777777777 > 0)
-            self.assert_(0xffffffffffffffff > 0)
-            self.assert_(0b11111111111111111111111111111111111111111111111111111111111111 > 0)
-            for s in '9223372036854775808', '0o2000000000000000000000', \
-                     '0x10000000000000000', \
-                     '0b100000000000000000000000000000000000000000000000000000000000000':
-                try:
-                    x = eval(s)
-                except OverflowError:
-                    self.fail("OverflowError on huge integer literal %r" % s)
-        else:
-            self.fail('Weird maxsize value %r' % maxsize)
-
-    def testLongIntegers(self):
-        x = 0
-        x = 0xffffffffffffffff
-        x = 0Xffffffffffffffff
-        x = 0o77777777777777777
-        x = 0O77777777777777777
-        x = 123456789012345678901234567890
-        x = 0b100000000000000000000000000000000000000000000000000000000000000000000
-        x = 0B111111111111111111111111111111111111111111111111111111111111111111111
-
-    def testFloats(self):
-        x = 3.14
-        x = 314.
-        x = 0.314
-        # XXX x = 000.314
-        x = .314
-        x = 3e14
-        x = 3E14
-        x = 3e-14
-        x = 3e+14
-        x = 3.e14
-        x = .3e14
-        x = 3.1e4
-
-    def testStringLiterals(self):
-        x = ''; y = ""; self.assert_(len(x) == 0 and x == y)
-        x = '\''; y = "'"; self.assert_(len(x) == 1 and x == y and ord(x) == 39)
-        x = '"'; y = "\""; self.assert_(len(x) == 1 and x == y and ord(x) == 34)
-        x = "doesn't \"shrink\" does it"
-        y = 'doesn\'t "shrink" does it'
-        self.assert_(len(x) == 24 and x == y)
-        x = "does \"shrink\" doesn't it"
-        y = 'does "shrink" doesn\'t it'
-        self.assert_(len(x) == 24 and x == y)
-        x = """
-The "quick"
-brown fox
-jumps over
-the 'lazy' dog.
-"""
-        y = '\nThe "quick"\nbrown fox\njumps over\nthe \'lazy\' dog.\n'
-        self.assertEquals(x, y)
-        y = '''
-The "quick"
-brown fox
-jumps over
-the 'lazy' dog.
-'''
-        self.assertEquals(x, y)
-        y = "\n\
-The \"quick\"\n\
-brown fox\n\
-jumps over\n\
-the 'lazy' dog.\n\
-"
-        self.assertEquals(x, y)
-        y = '\n\
-The \"quick\"\n\
-brown fox\n\
-jumps over\n\
-the \'lazy\' dog.\n\
-'
-        self.assertEquals(x, y)
-
-    def testEllipsis(self):
-        x = ...
-        self.assert_(x is Ellipsis)
-        self.assertRaises(SyntaxError, eval, ".. .")
-
-class GrammarTests(unittest.TestCase):
-
-    # single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE
-    # XXX can't test in a script -- this rule is only used when interactive
-
-    # file_input: (NEWLINE | stmt)* ENDMARKER
-    # Being tested as this very moment this very module
-
-    # expr_input: testlist NEWLINE
-    # XXX Hard to test -- used only in calls to input()
-
-    def testEvalInput(self):
-        # testlist ENDMARKER
-        x = eval('1, 0 or 1')
-
-    def testFuncdef(self):
-        ### [decorators] 'def' NAME parameters ['->' test] ':' suite
-        ### decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE
-        ### decorators: decorator+
-        ### parameters: '(' [typedargslist] ')'
-        ### typedargslist: ((tfpdef ['=' test] ',')*
-        ###                ('*' [tfpdef] (',' tfpdef ['=' test])* [',' '**' tfpdef] | '**' tfpdef)
-        ###                | tfpdef ['=' test] (',' tfpdef ['=' test])* [','])
-        ### tfpdef: NAME [':' test]
-        ### varargslist: ((vfpdef ['=' test] ',')*
-        ###              ('*' [vfpdef] (',' vfpdef ['=' test])*  [',' '**' vfpdef] | '**' vfpdef)
-        ###              | vfpdef ['=' test] (',' vfpdef ['=' test])* [','])
-        ### vfpdef: NAME
-        def f1(): pass
-        f1()
-        f1(*())
-        f1(*(), **{})
-        def f2(one_argument): pass
-        def f3(two, arguments): pass
-        self.assertEquals(f2.__code__.co_varnames, ('one_argument',))
-        self.assertEquals(f3.__code__.co_varnames, ('two', 'arguments'))
-        def a1(one_arg,): pass
-        def a2(two, args,): pass
-        def v0(*rest): pass
-        def v1(a, *rest): pass
-        def v2(a, b, *rest): pass
-
-        f1()
-        f2(1)
-        f2(1,)
-        f3(1, 2)
-        f3(1, 2,)
-        v0()
-        v0(1)
-        v0(1,)
-        v0(1,2)
-        v0(1,2,3,4,5,6,7,8,9,0)
-        v1(1)
-        v1(1,)
-        v1(1,2)
-        v1(1,2,3)
-        v1(1,2,3,4,5,6,7,8,9,0)
-        v2(1,2)
-        v2(1,2,3)
-        v2(1,2,3,4)
-        v2(1,2,3,4,5,6,7,8,9,0)
-
-        def d01(a=1): pass
-        d01()
-        d01(1)
-        d01(*(1,))
-        d01(**{'a':2})
-        def d11(a, b=1): pass
-        d11(1)
-        d11(1, 2)
-        d11(1, **{'b':2})
-        def d21(a, b, c=1): pass
-        d21(1, 2)
-        d21(1, 2, 3)
-        d21(*(1, 2, 3))
-        d21(1, *(2, 3))
-        d21(1, 2, *(3,))
-        d21(1, 2, **{'c':3})
-        def d02(a=1, b=2): pass
-        d02()
-        d02(1)
-        d02(1, 2)
-        d02(*(1, 2))
-        d02(1, *(2,))
-        d02(1, **{'b':2})
-        d02(**{'a': 1, 'b': 2})
-        def d12(a, b=1, c=2): pass
-        d12(1)
-        d12(1, 2)
-        d12(1, 2, 3)
-        def d22(a, b, c=1, d=2): pass
-        d22(1, 2)
-        d22(1, 2, 3)
-        d22(1, 2, 3, 4)
-        def d01v(a=1, *rest): pass
-        d01v()
-        d01v(1)
-        d01v(1, 2)
-        d01v(*(1, 2, 3, 4))
-        d01v(*(1,))
-        d01v(**{'a':2})
-        def d11v(a, b=1, *rest): pass
-        d11v(1)
-        d11v(1, 2)
-        d11v(1, 2, 3)
-        def d21v(a, b, c=1, *rest): pass
-        d21v(1, 2)
-        d21v(1, 2, 3)
-        d21v(1, 2, 3, 4)
-        d21v(*(1, 2, 3, 4))
-        d21v(1, 2, **{'c': 3})
-        def d02v(a=1, b=2, *rest): pass
-        d02v()
-        d02v(1)
-        d02v(1, 2)
-        d02v(1, 2, 3)
-        d02v(1, *(2, 3, 4))
-        d02v(**{'a': 1, 'b': 2})
-        def d12v(a, b=1, c=2, *rest): pass
-        d12v(1)
-        d12v(1, 2)
-        d12v(1, 2, 3)
-        d12v(1, 2, 3, 4)
-        d12v(*(1, 2, 3, 4))
-        d12v(1, 2, *(3, 4, 5))
-        d12v(1, *(2,), **{'c': 3})
-        def d22v(a, b, c=1, d=2, *rest): pass
-        d22v(1, 2)
-        d22v(1, 2, 3)
-        d22v(1, 2, 3, 4)
-        d22v(1, 2, 3, 4, 5)
-        d22v(*(1, 2, 3, 4))
-        d22v(1, 2, *(3, 4, 5))
-        d22v(1, *(2, 3), **{'d': 4})
-
-        # keyword argument type tests
-        try:
-            str('x', **{b'foo':1 })
-        except TypeError:
-            pass
-        else:
-            self.fail('Bytes should not work as keyword argument names')
-        # keyword only argument tests
-        def pos0key1(*, key): return key
-        pos0key1(key=100)
-        def pos2key2(p1, p2, *, k1, k2=100): return p1,p2,k1,k2
-        pos2key2(1, 2, k1=100)
-        pos2key2(1, 2, k1=100, k2=200)
-        pos2key2(1, 2, k2=100, k1=200)
-        def pos2key2dict(p1, p2, *, k1=100, k2, **kwarg): return p1,p2,k1,k2,kwarg
-        pos2key2dict(1,2,k2=100,tokwarg1=100,tokwarg2=200)
-        pos2key2dict(1,2,tokwarg1=100,tokwarg2=200, k2=100)
-
-        # keyword arguments after *arglist
-        def f(*args, **kwargs):
-            return args, kwargs
-        self.assertEquals(f(1, x=2, *[3, 4], y=5), ((1, 3, 4),
-                                                    {'x':2, 'y':5}))
-        self.assertRaises(SyntaxError, eval, "f(1, *(2,3), 4)")
-        self.assertRaises(SyntaxError, eval, "f(1, x=2, *(3,4), x=5)")
-
-        # argument annotation tests
-        def f(x) -> list: pass
-        self.assertEquals(f.__annotations__, {'return': list})
-        def f(x:int): pass
-        self.assertEquals(f.__annotations__, {'x': int})
-        def f(*x:str): pass
-        self.assertEquals(f.__annotations__, {'x': str})
-        def f(**x:float): pass
-        self.assertEquals(f.__annotations__, {'x': float})
-        def f(x, y:1+2): pass
-        self.assertEquals(f.__annotations__, {'y': 3})
-        def f(a, b:1, c:2, d): pass
-        self.assertEquals(f.__annotations__, {'b': 1, 'c': 2})
-        def f(a, b:1, c:2, d, e:3=4, f=5, *g:6): pass
-        self.assertEquals(f.__annotations__,
-                          {'b': 1, 'c': 2, 'e': 3, 'g': 6})
-        def f(a, b:1, c:2, d, e:3=4, f=5, *g:6, h:7, i=8, j:9=10,
-              **k:11) -> 12: pass
-        self.assertEquals(f.__annotations__,
-                          {'b': 1, 'c': 2, 'e': 3, 'g': 6, 'h': 7, 'j': 9,
-                           'k': 11, 'return': 12})
-        # Check for SF Bug #1697248 - mixing decorators and a return annotation
-        def null(x): return x
-        @null
-        def f(x) -> list: pass
-        self.assertEquals(f.__annotations__, {'return': list})
-
-        # test MAKE_CLOSURE with a variety of oparg's
-        closure = 1
-        def f(): return closure
-        def f(x=1): return closure
-        def f(*, k=1): return closure
-        def f() -> int: return closure
-
-        # Check ast errors in *args and *kwargs
-        check_syntax_error(self, "f(*g(1=2))")
-        check_syntax_error(self, "f(**g(1=2))")
-
-    def testLambdef(self):
-        ### lambdef: 'lambda' [varargslist] ':' test
-        l1 = lambda : 0
-        self.assertEquals(l1(), 0)
-        l2 = lambda : a[d] # XXX just testing the expression
-        l3 = lambda : [2 < x for x in [-1, 3, 0]]
-        self.assertEquals(l3(), [0, 1, 0])
-        l4 = lambda x = lambda y = lambda z=1 : z : y() : x()
-        self.assertEquals(l4(), 1)
-        l5 = lambda x, y, z=2: x + y + z
-        self.assertEquals(l5(1, 2), 5)
-        self.assertEquals(l5(1, 2, 3), 6)
-        check_syntax_error(self, "lambda x: x = 2")
-        check_syntax_error(self, "lambda (None,): None")
-        l6 = lambda x, y, *, k=20: x+y+k
-        self.assertEquals(l6(1,2), 1+2+20)
-        self.assertEquals(l6(1,2,k=10), 1+2+10)
-
-
-    ### stmt: simple_stmt | compound_stmt
-    # Tested below
-
-    def testSimpleStmt(self):
-        ### simple_stmt: small_stmt (';' small_stmt)* [';']
-        x = 1; pass; del x
-        def foo():
-            # verify statements that end with semi-colons
-            x = 1; pass; del x;
-        foo()
-
-    ### small_stmt: expr_stmt | pass_stmt | del_stmt | flow_stmt | import_stmt | global_stmt | access_stmt
-    # Tested below
-
-    def testExprStmt(self):
-        # (exprlist '=')* exprlist
-        1
-        1, 2, 3
-        x = 1
-        x = 1, 2, 3
-        x = y = z = 1, 2, 3
-        x, y, z = 1, 2, 3
-        abc = a, b, c = x, y, z = xyz = 1, 2, (3, 4)
-
-        check_syntax_error(self, "x + 1 = 1")
-        check_syntax_error(self, "a + 1 = b + 2")
-
-    def testDelStmt(self):
-        # 'del' exprlist
-        abc = [1,2,3]
-        x, y, z = abc
-        xyz = x, y, z
-
-        del abc
-        del x, y, (z, xyz)
-
-    def testPassStmt(self):
-        # 'pass'
-        pass
-
-    # flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt
-    # Tested below
-
-    def testBreakStmt(self):
-        # 'break'
-        while 1: break
-
-    def testContinueStmt(self):
-        # 'continue'
-        i = 1
-        while i: i = 0; continue
-
-        msg = ""
-        while not msg:
-            msg = "ok"
-            try:
-                continue
-                msg = "continue failed to continue inside try"
-            except:
-                msg = "continue inside try called except block"
-        if msg != "ok":
-            self.fail(msg)
-
-        msg = ""
-        while not msg:
-            msg = "finally block not called"
-            try:
-                continue
-            finally:
-                msg = "ok"
-        if msg != "ok":
-            self.fail(msg)
-
-    def test_break_continue_loop(self):
-        # This test warrants an explanation. It is a test specifically for SF bugs
-        # #463359 and #462937. The bug is that a 'break' statement executed or
-        # exception raised inside a try/except inside a loop, *after* a continue
-        # statement has been executed in that loop, will cause the wrong number of
-        # arguments to be popped off the stack and the instruction pointer reset to
-        # a very small number (usually 0.) Because of this, the following test
-        # *must* written as a function, and the tracking vars *must* be function
-        # arguments with default values. Otherwise, the test will loop and loop.
-
-        def test_inner(extra_burning_oil = 1, count=0):
-            big_hippo = 2
-            while big_hippo:
-                count += 1
-                try:
-                    if extra_burning_oil and big_hippo == 1:
-                        extra_burning_oil -= 1
-                        break
-                    big_hippo -= 1
-                    continue
-                except:
-                    raise
-            if count > 2 or big_hippo != 1:
-                self.fail("continue then break in try/except in loop broken!")
-        test_inner()
-
-    def testReturn(self):
-        # 'return' [testlist]
-        def g1(): return
-        def g2(): return 1
-        g1()
-        x = g2()
-        check_syntax_error(self, "class foo:return 1")
-
-    def testYield(self):
-        check_syntax_error(self, "class foo:yield 1")
-
-    def testRaise(self):
-        # 'raise' test [',' test]
-        try: raise RuntimeError('just testing')
-        except RuntimeError: pass
-        try: raise KeyboardInterrupt
-        except KeyboardInterrupt: pass
-
-    def testImport(self):
-        # 'import' dotted_as_names
-        import sys
-        import time, sys
-        # 'from' dotted_name 'import' ('*' | '(' import_as_names ')' | import_as_names)
-        from time import time
-        from time import (time)
-        # not testable inside a function, but already done at top of the module
-        # from sys import *
-        from sys import path, argv
-        from sys import (path, argv)
-        from sys import (path, argv,)
-
-    def testGlobal(self):
-        # 'global' NAME (',' NAME)*
-        global a
-        global a, b
-        global one, two, three, four, five, six, seven, eight, nine, ten
-
-    def testNonlocal(self):
-        # 'nonlocal' NAME (',' NAME)*
-        x = 0
-        y = 0
-        def f():
-            nonlocal x
-            nonlocal x, y
-
-    def testAssert(self):
-        # assert_stmt: 'assert' test [',' test]
-        assert 1
-        assert 1, 1
-        assert lambda x:x
-        assert 1, lambda x:x+1
-        try:
-            assert 0, "msg"
-        except AssertionError as e:
-            self.assertEquals(e.args[0], "msg")
-        else:
-            if __debug__:
-                self.fail("AssertionError not raised by assert 0")
-
-    ### compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | funcdef | classdef
-    # Tested below
-
-    def testIf(self):
-        # 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]
-        if 1: pass
-        if 1: pass
-        else: pass
-        if 0: pass
-        elif 0: pass
-        if 0: pass
-        elif 0: pass
-        elif 0: pass
-        elif 0: pass
-        else: pass
-
-    def testWhile(self):
-        # 'while' test ':' suite ['else' ':' suite]
-        while 0: pass
-        while 0: pass
-        else: pass
-
-        # Issue1920: "while 0" is optimized away,
-        # ensure that the "else" clause is still present.
-        x = 0
-        while 0:
-            x = 1
-        else:
-            x = 2
-        self.assertEquals(x, 2)
-
-    def testFor(self):
-        # 'for' exprlist 'in' exprlist ':' suite ['else' ':' suite]
-        for i in 1, 2, 3: pass
-        for i, j, k in (): pass
-        else: pass
-        class Squares:
-            def __init__(self, max):
-                self.max = max
-                self.sofar = []
-            def __len__(self): return len(self.sofar)
-            def __getitem__(self, i):
-                if not 0 <= i < self.max: raise IndexError
-                n = len(self.sofar)
-                while n <= i:
-                    self.sofar.append(n*n)
-                    n = n+1
-                return self.sofar[i]
-        n = 0
-        for x in Squares(10): n = n+x
-        if n != 285:
-            self.fail('for over growing sequence')
-
-        result = []
-        for x, in [(1,), (2,), (3,)]:
-            result.append(x)
-        self.assertEqual(result, [1, 2, 3])
-
-    def testTry(self):
-        ### try_stmt: 'try' ':' suite (except_clause ':' suite)+ ['else' ':' suite]
-        ###         | 'try' ':' suite 'finally' ':' suite
-        ### except_clause: 'except' [expr ['as' expr]]
-        try:
-            1/0
-        except ZeroDivisionError:
-            pass
-        else:
-            pass
-        try: 1/0
-        except EOFError: pass
-        except TypeError as msg: pass
-        except RuntimeError as msg: pass
-        except: pass
-        else: pass
-        try: 1/0
-        except (EOFError, TypeError, ZeroDivisionError): pass
-        try: 1/0
-        except (EOFError, TypeError, ZeroDivisionError) as msg: pass
-        try: pass
-        finally: pass
-
-    def testSuite(self):
-        # simple_stmt | NEWLINE INDENT NEWLINE* (stmt NEWLINE*)+ DEDENT
-        if 1: pass
-        if 1:
-            pass
-        if 1:
-            #
-            #
-            #
-            pass
-            pass
-            #
-            pass
-            #
-
-    def testTest(self):
-        ### and_test ('or' and_test)*
-        ### and_test: not_test ('and' not_test)*
-        ### not_test: 'not' not_test | comparison
-        if not 1: pass
-        if 1 and 1: pass
-        if 1 or 1: pass
-        if not not not 1: pass
-        if not 1 and 1 and 1: pass
-        if 1 and 1 or 1 and 1 and 1 or not 1 and 1: pass
-
-    def testComparison(self):
-        ### comparison: expr (comp_op expr)*
-        ### comp_op: '<'|'>'|'=='|'>='|'<='|'!='|'in'|'not' 'in'|'is'|'is' 'not'
-        if 1: pass
-        x = (1 == 1)
-        if 1 == 1: pass
-        if 1 != 1: pass
-        if 1 < 1: pass
-        if 1 > 1: pass
-        if 1 <= 1: pass
-        if 1 >= 1: pass
-        if 1 is 1: pass
-        if 1 is not 1: pass
-        if 1 in (): pass
-        if 1 not in (): pass
-        if 1 < 1 > 1 == 1 >= 1 <= 1 != 1 in 1 not in 1 is 1 is not 1: pass
-
-    def testBinaryMaskOps(self):
-        x = 1 & 1
-        x = 1 ^ 1
-        x = 1 | 1
-
-    def testShiftOps(self):
-        x = 1 << 1
-        x = 1 >> 1
-        x = 1 << 1 >> 1
-
-    def testAdditiveOps(self):
-        x = 1
-        x = 1 + 1
-        x = 1 - 1 - 1
-        x = 1 - 1 + 1 - 1 + 1
-
-    def testMultiplicativeOps(self):
-        x = 1 * 1
-        x = 1 / 1
-        x = 1 % 1
-        x = 1 / 1 * 1 % 1
-
-    def testUnaryOps(self):
-        x = +1
-        x = -1
-        x = ~1
-        x = ~1 ^ 1 & 1 | 1 & 1 ^ -1
-        x = -1*1/1 + 1*1 - ---1*1
-
-    def testSelectors(self):
-        ### trailer: '(' [testlist] ')' | '[' subscript ']' | '.' NAME
-        ### subscript: expr | [expr] ':' [expr]
-
-        import sys, time
-        c = sys.path[0]
-        x = time.time()
-        x = sys.modules['time'].time()
-        a = '01234'
-        c = a[0]
-        c = a[-1]
-        s = a[0:5]
-        s = a[:5]
-        s = a[0:]
-        s = a[:]
-        s = a[-5:]
-        s = a[:-1]
-        s = a[-4:-3]
-        # A rough test of SF bug 1333982.  http://python.org/sf/1333982
-        # The testing here is fairly incomplete.
-        # Test cases should include: commas with 1 and 2 colons
-        d = {}
-        d[1] = 1
-        d[1,] = 2
-        d[1,2] = 3
-        d[1,2,3] = 4
-        L = list(d)
-        L.sort(key=lambda x: x if isinstance(x, tuple) else ())
-        self.assertEquals(str(L), '[1, (1,), (1, 2), (1, 2, 3)]')
-
-    def testAtoms(self):
-        ### atom: '(' [testlist] ')' | '[' [testlist] ']' | '{' [dictsetmaker] '}' | NAME | NUMBER | STRING
-        ### dictsetmaker: (test ':' test (',' test ':' test)* [',']) | (test (',' test)* [','])
-
-        x = (1)
-        x = (1 or 2 or 3)
-        x = (1 or 2 or 3, 2, 3)
-
-        x = []
-        x = [1]
-        x = [1 or 2 or 3]
-        x = [1 or 2 or 3, 2, 3]
-        x = []
-
-        x = {}
-        x = {'one': 1}
-        x = {'one': 1,}
-        x = {'one' or 'two': 1 or 2}
-        x = {'one': 1, 'two': 2}
-        x = {'one': 1, 'two': 2,}
-        x = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6}
-
-        x = {'one'}
-        x = {'one', 1,}
-        x = {'one', 'two', 'three'}
-        x = {2, 3, 4,}
-
-        x = x
-        x = 'x'
-        x = 123
-
-    ### exprlist: expr (',' expr)* [',']
-    ### testlist: test (',' test)* [',']
-    # These have been exercised enough above
-
-    def testClassdef(self):
-        # 'class' NAME ['(' [testlist] ')'] ':' suite
-        class B: pass
-        class B2(): pass
-        class C1(B): pass
-        class C2(B): pass
-        class D(C1, C2, B): pass
-        class C:
-            def meth1(self): pass
-            def meth2(self, arg): pass
-            def meth3(self, a1, a2): pass
-
-        # decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE
-        # decorators: decorator+
-        # decorated: decorators (classdef | funcdef)
-        def class_decorator(x): return x
-        @class_decorator
-        class G: pass
-
-    def testDictcomps(self):
-        # dictorsetmaker: ( (test ':' test (comp_for |
-        #                                   (',' test ':' test)* [','])) |
-        #                   (test (comp_for | (',' test)* [','])) )
-        nums = [1, 2, 3]
-        self.assertEqual({i:i+1 for i in nums}, {1: 2, 2: 3, 3: 4})
-
-    def testListcomps(self):
-        # list comprehension tests
-        nums = [1, 2, 3, 4, 5]
-        strs = ["Apple", "Banana", "Coconut"]
-        spcs = ["  Apple", " Banana ", "Coco  nut  "]
-
-        self.assertEqual([s.strip() for s in spcs], ['Apple', 'Banana', 'Coco  nut'])
-        self.assertEqual([3 * x for x in nums], [3, 6, 9, 12, 15])
-        self.assertEqual([x for x in nums if x > 2], [3, 4, 5])
-        self.assertEqual([(i, s) for i in nums for s in strs],
-                         [(1, 'Apple'), (1, 'Banana'), (1, 'Coconut'),
-                          (2, 'Apple'), (2, 'Banana'), (2, 'Coconut'),
-                          (3, 'Apple'), (3, 'Banana'), (3, 'Coconut'),
-                          (4, 'Apple'), (4, 'Banana'), (4, 'Coconut'),
-                          (5, 'Apple'), (5, 'Banana'), (5, 'Coconut')])
-        self.assertEqual([(i, s) for i in nums for s in [f for f in strs if "n" in f]],
-                         [(1, 'Banana'), (1, 'Coconut'), (2, 'Banana'), (2, 'Coconut'),
-                          (3, 'Banana'), (3, 'Coconut'), (4, 'Banana'), (4, 'Coconut'),
-                          (5, 'Banana'), (5, 'Coconut')])
-        self.assertEqual([(lambda a:[a**i for i in range(a+1)])(j) for j in range(5)],
-                         [[1], [1, 1], [1, 2, 4], [1, 3, 9, 27], [1, 4, 16, 64, 256]])
-
-        def test_in_func(l):
-            return [0 < x < 3 for x in l if x > 2]
-
-        self.assertEqual(test_in_func(nums), [False, False, False])
-
-        def test_nested_front():
-            self.assertEqual([[y for y in [x, x + 1]] for x in [1,3,5]],
-                             [[1, 2], [3, 4], [5, 6]])
-
-        test_nested_front()
-
-        check_syntax_error(self, "[i, s for i in nums for s in strs]")
-        check_syntax_error(self, "[x if y]")
-
-        suppliers = [
-          (1, "Boeing"),
-          (2, "Ford"),
-          (3, "Macdonalds")
-        ]
-
-        parts = [
-          (10, "Airliner"),
-          (20, "Engine"),
-          (30, "Cheeseburger")
-        ]
-
-        suppart = [
-          (1, 10), (1, 20), (2, 20), (3, 30)
-        ]
-
-        x = [
-          (sname, pname)
-            for (sno, sname) in suppliers
-              for (pno, pname) in parts
-                for (sp_sno, sp_pno) in suppart
-                  if sno == sp_sno and pno == sp_pno
-        ]
-
-        self.assertEqual(x, [('Boeing', 'Airliner'), ('Boeing', 'Engine'), ('Ford', 'Engine'),
-                             ('Macdonalds', 'Cheeseburger')])
-
-    def testGenexps(self):
-        # generator expression tests
-        g = ([x for x in range(10)] for x in range(1))
-        self.assertEqual(next(g), [x for x in range(10)])
-        try:
-            next(g)
-            self.fail('should produce StopIteration exception')
-        except StopIteration:
-            pass
-
-        a = 1
-        try:
-            g = (a for d in a)
-            next(g)
-            self.fail('should produce TypeError')
-        except TypeError:
-            pass
-
-        self.assertEqual(list((x, y) for x in 'abcd' for y in 'abcd'), [(x, y) for x in 'abcd' for y in 'abcd'])
-        self.assertEqual(list((x, y) for x in 'ab' for y in 'xy'), [(x, y) for x in 'ab' for y in 'xy'])
-
-        a = [x for x in range(10)]
-        b = (x for x in (y for y in a))
-        self.assertEqual(sum(b), sum([x for x in range(10)]))
-
-        self.assertEqual(sum(x**2 for x in range(10)), sum([x**2 for x in range(10)]))
-        self.assertEqual(sum(x*x for x in range(10) if x%2), sum([x*x for x in range(10) if x%2]))
-        self.assertEqual(sum(x for x in (y for y in range(10))), sum([x for x in range(10)]))
-        self.assertEqual(sum(x for x in (y for y in (z for z in range(10)))), sum([x for x in range(10)]))
-        self.assertEqual(sum(x for x in [y for y in (z for z in range(10))]), sum([x for x in range(10)]))
-        self.assertEqual(sum(x for x in (y for y in (z for z in range(10) if True)) if True), sum([x for x in range(10)]))
-        self.assertEqual(sum(x for x in (y for y in (z for z in range(10) if True) if False) if True), 0)
-        check_syntax_error(self, "foo(x for x in range(10), 100)")
-        check_syntax_error(self, "foo(100, x for x in range(10))")
-
-    def testComprehensionSpecials(self):
-        # test for outmost iterable precomputation
-        x = 10; g = (i for i in range(x)); x = 5
-        self.assertEqual(len(list(g)), 10)
-
-        # This should hold, since we're only precomputing outmost iterable.
-        x = 10; t = False; g = ((i,j) for i in range(x) if t for j in range(x))
-        x = 5; t = True;
-        self.assertEqual([(i,j) for i in range(10) for j in range(5)], list(g))
-
-        # Grammar allows multiple adjacent 'if's in listcomps and genexps,
-        # even though it's silly. Make sure it works (ifelse broke this.)
-        self.assertEqual([ x for x in range(10) if x % 2 if x % 3 ], [1, 5, 7])
-        self.assertEqual(list(x for x in range(10) if x % 2 if x % 3), [1, 5, 7])
-
-        # verify unpacking single element tuples in listcomp/genexp.
-        self.assertEqual([x for x, in [(4,), (5,), (6,)]], [4, 5, 6])
-        self.assertEqual(list(x for x, in [(7,), (8,), (9,)]), [7, 8, 9])
-
-    def test_with_statement(self):
-        class manager(object):
-            def __enter__(self):
-                return (1, 2)
-            def __exit__(self, *args):
-                pass
-
-        with manager():
-            pass
-        with manager() as x:
-            pass
-        with manager() as (x, y):
-            pass
-        with manager(), manager():
-            pass
-        with manager() as x, manager() as y:
-            pass
-        with manager() as x, manager():
-            pass
-
-    def testIfElseExpr(self):
-        # Test ifelse expressions in various cases
-        def _checkeval(msg, ret):
-            "helper to check that evaluation of expressions is done correctly"
-            print(x)
-            return ret
-
-        # the next line is not allowed anymore
-        #self.assertEqual([ x() for x in lambda: True, lambda: False if x() ], [True])
-        self.assertEqual([ x() for x in (lambda: True, lambda: False) if x() ], [True])
-        self.assertEqual([ x(False) for x in (lambda x: False if x else True, lambda x: True if x else False) if x(False) ], [True])
-        self.assertEqual((5 if 1 else _checkeval("check 1", 0)), 5)
-        self.assertEqual((_checkeval("check 2", 0) if 0 else 5), 5)
-        self.assertEqual((5 and 6 if 0 else 1), 1)
-        self.assertEqual(((5 and 6) if 0 else 1), 1)
-        self.assertEqual((5 and (6 if 1 else 1)), 6)
-        self.assertEqual((0 or _checkeval("check 3", 2) if 0 else 3), 3)
-        self.assertEqual((1 or _checkeval("check 4", 2) if 1 else _checkeval("check 5", 3)), 1)
-        self.assertEqual((0 or 5 if 1 else _checkeval("check 6", 3)), 5)
-        self.assertEqual((not 5 if 1 else 1), False)
-        self.assertEqual((not 5 if 0 else 1), 1)
-        self.assertEqual((6 + 1 if 1 else 2), 7)
-        self.assertEqual((6 - 1 if 1 else 2), 5)
-        self.assertEqual((6 * 2 if 1 else 4), 12)
-        self.assertEqual((6 / 2 if 1 else 3), 3)
-        self.assertEqual((6 < 4 if 0 else 2), 2)
-
-
-def test_main():
-    run_unittest(TokenTests, GrammarTests)
-
-if __name__ == '__main__':
-    test_main()
diff --git a/lib/python2.7/lib2to3/tests/pytree_idempotency.py b/lib/python2.7/lib2to3/tests/pytree_idempotency.py
deleted file mode 100755
index 243f7e8..0000000
--- a/lib/python2.7/lib2to3/tests/pytree_idempotency.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2006 Google, Inc. All Rights Reserved.
-# Licensed to PSF under a Contributor Agreement.
-
-"""Main program for testing the infrastructure."""
-
-__author__ = "Guido van Rossum <guido@python.org>"
-
-# Support imports (need to be imported first)
-from . import support
-
-# Python imports
-import os
-import sys
-import logging
-
-# Local imports
-from .. import pytree
-import pgen2
-from pgen2 import driver
-
-logging.basicConfig()
-
-def main():
-    gr = driver.load_grammar("Grammar.txt")
-    dr = driver.Driver(gr, convert=pytree.convert)
-
-    fn = "example.py"
-    tree = dr.parse_file(fn, debug=True)
-    if not diff(fn, tree):
-        print "No diffs."
-    if not sys.argv[1:]:
-        return # Pass a dummy argument to run the complete test suite below
-
-    problems = []
-
-    # Process every imported module
-    for name in sys.modules:
-        mod = sys.modules[name]
-        if mod is None or not hasattr(mod, "__file__"):
-            continue
-        fn = mod.__file__
-        if fn.endswith(".pyc"):
-            fn = fn[:-1]
-        if not fn.endswith(".py"):
-            continue
-        print >>sys.stderr, "Parsing", fn
-        tree = dr.parse_file(fn, debug=True)
-        if diff(fn, tree):
-            problems.append(fn)
-
-    # Process every single module on sys.path (but not in packages)
-    for dir in sys.path:
-        try:
-            names = os.listdir(dir)
-        except os.error:
-            continue
-        print >>sys.stderr, "Scanning", dir, "..."
-        for name in names:
-            if not name.endswith(".py"):
-                continue
-            print >>sys.stderr, "Parsing", name
-            fn = os.path.join(dir, name)
-            try:
-                tree = dr.parse_file(fn, debug=True)
-            except pgen2.parse.ParseError, err:
-                print "ParseError:", err
-            else:
-                if diff(fn, tree):
-                    problems.append(fn)
-
-    # Show summary of problem files
-    if not problems:
-        print "No problems.  Congratulations!"
-    else:
-        print "Problems in following files:"
-        for fn in problems:
-            print "***", fn
-
-def diff(fn, tree):
-    f = open("@", "w")
-    try:
-        f.write(str(tree))
-    finally:
-        f.close()
-    try:
-        return os.system("diff -u %s @" % fn)
-    finally:
-        os.remove("@")
-
-if __name__ == "__main__":
-    main()
diff --git a/lib/python2.7/lib2to3/tests/support.py b/lib/python2.7/lib2to3/tests/support.py
deleted file mode 100644
index 3646935..0000000
--- a/lib/python2.7/lib2to3/tests/support.py
+++ /dev/null
@@ -1,54 +0,0 @@
-"""Support code for test_*.py files"""
-# Author: Collin Winter
-
-# Python imports
-import unittest
-import sys
-import os
-import os.path
-import re
-from textwrap import dedent
-
-# Local imports
-from lib2to3 import pytree, refactor
-from lib2to3.pgen2 import driver
-
-test_dir = os.path.dirname(__file__)
-proj_dir = os.path.normpath(os.path.join(test_dir, ".."))
-grammar_path = os.path.join(test_dir, "..", "Grammar.txt")
-grammar = driver.load_grammar(grammar_path)
-driver = driver.Driver(grammar, convert=pytree.convert)
-
-def parse_string(string):
-    return driver.parse_string(reformat(string), debug=True)
-
-def run_all_tests(test_mod=None, tests=None):
-    if tests is None:
-        tests = unittest.TestLoader().loadTestsFromModule(test_mod)
-    unittest.TextTestRunner(verbosity=2).run(tests)
-
-def reformat(string):
-    return dedent(string) + u"\n\n"
-
-def get_refactorer(fixer_pkg="lib2to3", fixers=None, options=None):
-    """
-    A convenience function for creating a RefactoringTool for tests.
-
-    fixers is a list of fixers for the RefactoringTool to use. By default
-    "lib2to3.fixes.*" is used. options is an optional dictionary of options to
-    be passed to the RefactoringTool.
-    """
-    if fixers is not None:
-        fixers = [fixer_pkg + ".fixes.fix_" + fix for fix in fixers]
-    else:
-        fixers = refactor.get_fixers_from_package(fixer_pkg + ".fixes")
-    options = options or {}
-    return refactor.RefactoringTool(fixers, options, explicit=True)
-
-def all_project_files():
-    for dirpath, dirnames, filenames in os.walk(proj_dir):
-        for filename in filenames:
-            if filename.endswith(".py"):
-                yield os.path.join(dirpath, filename)
-
-TestCase = unittest.TestCase
diff --git a/lib/python2.7/lib2to3/tests/test_all_fixers.py b/lib/python2.7/lib2to3/tests/test_all_fixers.py
deleted file mode 100644
index f64b3d9..0000000
--- a/lib/python2.7/lib2to3/tests/test_all_fixers.py
+++ /dev/null
@@ -1,23 +0,0 @@
-"""Tests that run all fixer modules over an input stream.
-
-This has been broken out into its own test module because of its
-running time.
-"""
-# Author: Collin Winter
-
-# Python imports
-import unittest
-
-# Local imports
-from lib2to3 import refactor
-from . import support
-
-
-class Test_all(support.TestCase):
-
-    def setUp(self):
-        self.refactor = support.get_refactorer()
-
-    def test_all_project_files(self):
-        for filepath in support.all_project_files():
-            self.refactor.refactor_file(filepath)
diff --git a/lib/python2.7/lib2to3/tests/test_fixers.py b/lib/python2.7/lib2to3/tests/test_fixers.py
deleted file mode 100644
index 1548281..0000000
--- a/lib/python2.7/lib2to3/tests/test_fixers.py
+++ /dev/null
@@ -1,4541 +0,0 @@
-""" Test suite for the fixer modules """
-
-# Python imports
-import os
-import unittest
-from itertools import chain
-from operator import itemgetter
-
-# Local imports
-from lib2to3 import pygram, pytree, refactor, fixer_util
-from lib2to3.tests import support
-
-
-class FixerTestCase(support.TestCase):
-
-    # Other test cases can subclass this class and replace "fixer_pkg" with
-    # their own.
-    def setUp(self, fix_list=None, fixer_pkg="lib2to3", options=None):
-        if fix_list is None:
-            fix_list = [self.fixer]
-        self.refactor = support.get_refactorer(fixer_pkg, fix_list, options)
-        self.fixer_log = []
-        self.filename = u"<string>"
-
-        for fixer in chain(self.refactor.pre_order,
-                           self.refactor.post_order):
-            fixer.log = self.fixer_log
-
-    def _check(self, before, after):
-        before = support.reformat(before)
-        after = support.reformat(after)
-        tree = self.refactor.refactor_string(before, self.filename)
-        self.assertEqual(after, unicode(tree))
-        return tree
-
-    def check(self, before, after, ignore_warnings=False):
-        tree = self._check(before, after)
-        self.assertTrue(tree.was_changed)
-        if not ignore_warnings:
-            self.assertEqual(self.fixer_log, [])
-
-    def warns(self, before, after, message, unchanged=False):
-        tree = self._check(before, after)
-        self.assertTrue(message in "".join(self.fixer_log))
-        if not unchanged:
-            self.assertTrue(tree.was_changed)
-
-    def warns_unchanged(self, before, message):
-        self.warns(before, before, message, unchanged=True)
-
-    def unchanged(self, before, ignore_warnings=False):
-        self._check(before, before)
-        if not ignore_warnings:
-            self.assertEqual(self.fixer_log, [])
-
-    def assert_runs_after(self, *names):
-        fixes = [self.fixer]
-        fixes.extend(names)
-        r = support.get_refactorer("lib2to3", fixes)
-        (pre, post) = r.get_fixers()
-        n = "fix_" + self.fixer
-        if post and post[-1].__class__.__module__.endswith(n):
-            # We're the last fixer to run
-            return
-        if pre and pre[-1].__class__.__module__.endswith(n) and not post:
-            # We're the last in pre and post is empty
-            return
-        self.fail("Fixer run order (%s) is incorrect; %s should be last."\
-               %(", ".join([x.__class__.__module__ for x in (pre+post)]), n))
-
-class Test_ne(FixerTestCase):
-    fixer = "ne"
-
-    def test_basic(self):
-        b = """if x <> y:
-            pass"""
-
-        a = """if x != y:
-            pass"""
-        self.check(b, a)
-
-    def test_no_spaces(self):
-        b = """if x<>y:
-            pass"""
-
-        a = """if x!=y:
-            pass"""
-        self.check(b, a)
-
-    def test_chained(self):
-        b = """if x<>y<>z:
-            pass"""
-
-        a = """if x!=y!=z:
-            pass"""
-        self.check(b, a)
-
-class Test_has_key(FixerTestCase):
-    fixer = "has_key"
-
-    def test_1(self):
-        b = """x = d.has_key("x") or d.has_key("y")"""
-        a = """x = "x" in d or "y" in d"""
-        self.check(b, a)
-
-    def test_2(self):
-        b = """x = a.b.c.d.has_key("x") ** 3"""
-        a = """x = ("x" in a.b.c.d) ** 3"""
-        self.check(b, a)
-
-    def test_3(self):
-        b = """x = a.b.has_key(1 + 2).__repr__()"""
-        a = """x = (1 + 2 in a.b).__repr__()"""
-        self.check(b, a)
-
-    def test_4(self):
-        b = """x = a.b.has_key(1 + 2).__repr__() ** -3 ** 4"""
-        a = """x = (1 + 2 in a.b).__repr__() ** -3 ** 4"""
-        self.check(b, a)
-
-    def test_5(self):
-        b = """x = a.has_key(f or g)"""
-        a = """x = (f or g) in a"""
-        self.check(b, a)
-
-    def test_6(self):
-        b = """x = a + b.has_key(c)"""
-        a = """x = a + (c in b)"""
-        self.check(b, a)
-
-    def test_7(self):
-        b = """x = a.has_key(lambda: 12)"""
-        a = """x = (lambda: 12) in a"""
-        self.check(b, a)
-
-    def test_8(self):
-        b = """x = a.has_key(a for a in b)"""
-        a = """x = (a for a in b) in a"""
-        self.check(b, a)
-
-    def test_9(self):
-        b = """if not a.has_key(b): pass"""
-        a = """if b not in a: pass"""
-        self.check(b, a)
-
-    def test_10(self):
-        b = """if not a.has_key(b).__repr__(): pass"""
-        a = """if not (b in a).__repr__(): pass"""
-        self.check(b, a)
-
-    def test_11(self):
-        b = """if not a.has_key(b) ** 2: pass"""
-        a = """if not (b in a) ** 2: pass"""
-        self.check(b, a)
-
-class Test_apply(FixerTestCase):
-    fixer = "apply"
-
-    def test_1(self):
-        b = """x = apply(f, g + h)"""
-        a = """x = f(*g + h)"""
-        self.check(b, a)
-
-    def test_2(self):
-        b = """y = apply(f, g, h)"""
-        a = """y = f(*g, **h)"""
-        self.check(b, a)
-
-    def test_3(self):
-        b = """z = apply(fs[0], g or h, h or g)"""
-        a = """z = fs[0](*g or h, **h or g)"""
-        self.check(b, a)
-
-    def test_4(self):
-        b = """apply(f, (x, y) + t)"""
-        a = """f(*(x, y) + t)"""
-        self.check(b, a)
-
-    def test_5(self):
-        b = """apply(f, args,)"""
-        a = """f(*args)"""
-        self.check(b, a)
-
-    def test_6(self):
-        b = """apply(f, args, kwds,)"""
-        a = """f(*args, **kwds)"""
-        self.check(b, a)
-
-    # Test that complex functions are parenthesized
-
-    def test_complex_1(self):
-        b = """x = apply(f+g, args)"""
-        a = """x = (f+g)(*args)"""
-        self.check(b, a)
-
-    def test_complex_2(self):
-        b = """x = apply(f*g, args)"""
-        a = """x = (f*g)(*args)"""
-        self.check(b, a)
-
-    def test_complex_3(self):
-        b = """x = apply(f**g, args)"""
-        a = """x = (f**g)(*args)"""
-        self.check(b, a)
-
-    # But dotted names etc. not
-
-    def test_dotted_name(self):
-        b = """x = apply(f.g, args)"""
-        a = """x = f.g(*args)"""
-        self.check(b, a)
-
-    def test_subscript(self):
-        b = """x = apply(f[x], args)"""
-        a = """x = f[x](*args)"""
-        self.check(b, a)
-
-    def test_call(self):
-        b = """x = apply(f(), args)"""
-        a = """x = f()(*args)"""
-        self.check(b, a)
-
-    # Extreme case
-    def test_extreme(self):
-        b = """x = apply(a.b.c.d.e.f, args, kwds)"""
-        a = """x = a.b.c.d.e.f(*args, **kwds)"""
-        self.check(b, a)
-
-    # XXX Comments in weird places still get lost
-    def test_weird_comments(self):
-        b = """apply(   # foo
-          f, # bar
-          args)"""
-        a = """f(*args)"""
-        self.check(b, a)
-
-    # These should *not* be touched
-
-    def test_unchanged_1(self):
-        s = """apply()"""
-        self.unchanged(s)
-
-    def test_unchanged_2(self):
-        s = """apply(f)"""
-        self.unchanged(s)
-
-    def test_unchanged_3(self):
-        s = """apply(f,)"""
-        self.unchanged(s)
-
-    def test_unchanged_4(self):
-        s = """apply(f, args, kwds, extras)"""
-        self.unchanged(s)
-
-    def test_unchanged_5(self):
-        s = """apply(f, *args, **kwds)"""
-        self.unchanged(s)
-
-    def test_unchanged_6(self):
-        s = """apply(f, *args)"""
-        self.unchanged(s)
-
-    def test_unchanged_7(self):
-        s = """apply(func=f, args=args, kwds=kwds)"""
-        self.unchanged(s)
-
-    def test_unchanged_8(self):
-        s = """apply(f, args=args, kwds=kwds)"""
-        self.unchanged(s)
-
-    def test_unchanged_9(self):
-        s = """apply(f, args, kwds=kwds)"""
-        self.unchanged(s)
-
-    def test_space_1(self):
-        a = """apply(  f,  args,   kwds)"""
-        b = """f(*args, **kwds)"""
-        self.check(a, b)
-
-    def test_space_2(self):
-        a = """apply(  f  ,args,kwds   )"""
-        b = """f(*args, **kwds)"""
-        self.check(a, b)
-
-class Test_intern(FixerTestCase):
-    fixer = "intern"
-
-    def test_prefix_preservation(self):
-        b = """x =   intern(  a  )"""
-        a = """import sys\nx =   sys.intern(  a  )"""
-        self.check(b, a)
-
-        b = """y = intern("b" # test
-              )"""
-        a = """import sys\ny = sys.intern("b" # test
-              )"""
-        self.check(b, a)
-
-        b = """z = intern(a+b+c.d,   )"""
-        a = """import sys\nz = sys.intern(a+b+c.d,   )"""
-        self.check(b, a)
-
-    def test(self):
-        b = """x = intern(a)"""
-        a = """import sys\nx = sys.intern(a)"""
-        self.check(b, a)
-
-        b = """z = intern(a+b+c.d,)"""
-        a = """import sys\nz = sys.intern(a+b+c.d,)"""
-        self.check(b, a)
-
-        b = """intern("y%s" % 5).replace("y", "")"""
-        a = """import sys\nsys.intern("y%s" % 5).replace("y", "")"""
-        self.check(b, a)
-
-    # These should not be refactored
-
-    def test_unchanged(self):
-        s = """intern(a=1)"""
-        self.unchanged(s)
-
-        s = """intern(f, g)"""
-        self.unchanged(s)
-
-        s = """intern(*h)"""
-        self.unchanged(s)
-
-        s = """intern(**i)"""
-        self.unchanged(s)
-
-        s = """intern()"""
-        self.unchanged(s)
-
-class Test_reduce(FixerTestCase):
-    fixer = "reduce"
-
-    def test_simple_call(self):
-        b = "reduce(a, b, c)"
-        a = "from functools import reduce\nreduce(a, b, c)"
-        self.check(b, a)
-
-    def test_bug_7253(self):
-        # fix_tuple_params was being bad and orphaning nodes in the tree.
-        b = "def x(arg): reduce(sum, [])"
-        a = "from functools import reduce\ndef x(arg): reduce(sum, [])"
-        self.check(b, a)
-
-    def test_call_with_lambda(self):
-        b = "reduce(lambda x, y: x + y, seq)"
-        a = "from functools import reduce\nreduce(lambda x, y: x + y, seq)"
-        self.check(b, a)
-
-    def test_unchanged(self):
-        s = "reduce(a)"
-        self.unchanged(s)
-
-        s = "reduce(a, b=42)"
-        self.unchanged(s)
-
-        s = "reduce(a, b, c, d)"
-        self.unchanged(s)
-
-        s = "reduce(**c)"
-        self.unchanged(s)
-
-        s = "reduce()"
-        self.unchanged(s)
-
-class Test_print(FixerTestCase):
-    fixer = "print"
-
-    def test_prefix_preservation(self):
-        b = """print 1,   1+1,   1+1+1"""
-        a = """print(1,   1+1,   1+1+1)"""
-        self.check(b, a)
-
-    def test_idempotency(self):
-        s = """print()"""
-        self.unchanged(s)
-
-        s = """print('')"""
-        self.unchanged(s)
-
-    def test_idempotency_print_as_function(self):
-        self.refactor.driver.grammar = pygram.python_grammar_no_print_statement
-        s = """print(1, 1+1, 1+1+1)"""
-        self.unchanged(s)
-
-        s = """print()"""
-        self.unchanged(s)
-
-        s = """print('')"""
-        self.unchanged(s)
-
-    def test_1(self):
-        b = """print 1, 1+1, 1+1+1"""
-        a = """print(1, 1+1, 1+1+1)"""
-        self.check(b, a)
-
-    def test_2(self):
-        b = """print 1, 2"""
-        a = """print(1, 2)"""
-        self.check(b, a)
-
-    def test_3(self):
-        b = """print"""
-        a = """print()"""
-        self.check(b, a)
-
-    def test_4(self):
-        # from bug 3000
-        b = """print whatever; print"""
-        a = """print(whatever); print()"""
-        self.check(b, a)
-
-    def test_5(self):
-        b = """print; print whatever;"""
-        a = """print(); print(whatever);"""
-        self.check(b, a)
-
-    def test_tuple(self):
-        b = """print (a, b, c)"""
-        a = """print((a, b, c))"""
-        self.check(b, a)
-
-    # trailing commas
-
-    def test_trailing_comma_1(self):
-        b = """print 1, 2, 3,"""
-        a = """print(1, 2, 3, end=' ')"""
-        self.check(b, a)
-
-    def test_trailing_comma_2(self):
-        b = """print 1, 2,"""
-        a = """print(1, 2, end=' ')"""
-        self.check(b, a)
-
-    def test_trailing_comma_3(self):
-        b = """print 1,"""
-        a = """print(1, end=' ')"""
-        self.check(b, a)
-
-    # >> stuff
-
-    def test_vargs_without_trailing_comma(self):
-        b = """print >>sys.stderr, 1, 2, 3"""
-        a = """print(1, 2, 3, file=sys.stderr)"""
-        self.check(b, a)
-
-    def test_with_trailing_comma(self):
-        b = """print >>sys.stderr, 1, 2,"""
-        a = """print(1, 2, end=' ', file=sys.stderr)"""
-        self.check(b, a)
-
-    def test_no_trailing_comma(self):
-        b = """print >>sys.stderr, 1+1"""
-        a = """print(1+1, file=sys.stderr)"""
-        self.check(b, a)
-
-    def test_spaces_before_file(self):
-        b = """print >>  sys.stderr"""
-        a = """print(file=sys.stderr)"""
-        self.check(b, a)
-
-    def test_with_future_print_function(self):
-        s = "from __future__ import print_function\n" \
-            "print('Hai!', end=' ')"
-        self.unchanged(s)
-
-        b = "print 'Hello, world!'"
-        a = "print('Hello, world!')"
-        self.check(b, a)
-
-
-class Test_exec(FixerTestCase):
-    fixer = "exec"
-
-    def test_prefix_preservation(self):
-        b = """  exec code in ns1,   ns2"""
-        a = """  exec(code, ns1,   ns2)"""
-        self.check(b, a)
-
-    def test_basic(self):
-        b = """exec code"""
-        a = """exec(code)"""
-        self.check(b, a)
-
-    def test_with_globals(self):
-        b = """exec code in ns"""
-        a = """exec(code, ns)"""
-        self.check(b, a)
-
-    def test_with_globals_locals(self):
-        b = """exec code in ns1, ns2"""
-        a = """exec(code, ns1, ns2)"""
-        self.check(b, a)
-
-    def test_complex_1(self):
-        b = """exec (a.b()) in ns"""
-        a = """exec((a.b()), ns)"""
-        self.check(b, a)
-
-    def test_complex_2(self):
-        b = """exec a.b() + c in ns"""
-        a = """exec(a.b() + c, ns)"""
-        self.check(b, a)
-
-    # These should not be touched
-
-    def test_unchanged_1(self):
-        s = """exec(code)"""
-        self.unchanged(s)
-
-    def test_unchanged_2(self):
-        s = """exec (code)"""
-        self.unchanged(s)
-
-    def test_unchanged_3(self):
-        s = """exec(code, ns)"""
-        self.unchanged(s)
-
-    def test_unchanged_4(self):
-        s = """exec(code, ns1, ns2)"""
-        self.unchanged(s)
-
-class Test_repr(FixerTestCase):
-    fixer = "repr"
-
-    def test_prefix_preservation(self):
-        b = """x =   `1 + 2`"""
-        a = """x =   repr(1 + 2)"""
-        self.check(b, a)
-
-    def test_simple_1(self):
-        b = """x = `1 + 2`"""
-        a = """x = repr(1 + 2)"""
-        self.check(b, a)
-
-    def test_simple_2(self):
-        b = """y = `x`"""
-        a = """y = repr(x)"""
-        self.check(b, a)
-
-    def test_complex(self):
-        b = """z = `y`.__repr__()"""
-        a = """z = repr(y).__repr__()"""
-        self.check(b, a)
-
-    def test_tuple(self):
-        b = """x = `1, 2, 3`"""
-        a = """x = repr((1, 2, 3))"""
-        self.check(b, a)
-
-    def test_nested(self):
-        b = """x = `1 + `2``"""
-        a = """x = repr(1 + repr(2))"""
-        self.check(b, a)
-
-    def test_nested_tuples(self):
-        b = """x = `1, 2 + `3, 4``"""
-        a = """x = repr((1, 2 + repr((3, 4))))"""
-        self.check(b, a)
-
-class Test_except(FixerTestCase):
-    fixer = "except"
-
-    def test_prefix_preservation(self):
-        b = """
-            try:
-                pass
-            except (RuntimeError, ImportError),    e:
-                pass"""
-        a = """
-            try:
-                pass
-            except (RuntimeError, ImportError) as    e:
-                pass"""
-        self.check(b, a)
-
-    def test_simple(self):
-        b = """
-            try:
-                pass
-            except Foo, e:
-                pass"""
-        a = """
-            try:
-                pass
-            except Foo as e:
-                pass"""
-        self.check(b, a)
-
-    def test_simple_no_space_before_target(self):
-        b = """
-            try:
-                pass
-            except Foo,e:
-                pass"""
-        a = """
-            try:
-                pass
-            except Foo as e:
-                pass"""
-        self.check(b, a)
-
-    def test_tuple_unpack(self):
-        b = """
-            def foo():
-                try:
-                    pass
-                except Exception, (f, e):
-                    pass
-                except ImportError, e:
-                    pass"""
-
-        a = """
-            def foo():
-                try:
-                    pass
-                except Exception as xxx_todo_changeme:
-                    (f, e) = xxx_todo_changeme.args
-                    pass
-                except ImportError as e:
-                    pass"""
-        self.check(b, a)
-
-    def test_multi_class(self):
-        b = """
-            try:
-                pass
-            except (RuntimeError, ImportError), e:
-                pass"""
-
-        a = """
-            try:
-                pass
-            except (RuntimeError, ImportError) as e:
-                pass"""
-        self.check(b, a)
-
-    def test_list_unpack(self):
-        b = """
-            try:
-                pass
-            except Exception, [a, b]:
-                pass"""
-
-        a = """
-            try:
-                pass
-            except Exception as xxx_todo_changeme:
-                [a, b] = xxx_todo_changeme.args
-                pass"""
-        self.check(b, a)
-
-    def test_weird_target_1(self):
-        b = """
-            try:
-                pass
-            except Exception, d[5]:
-                pass"""
-
-        a = """
-            try:
-                pass
-            except Exception as xxx_todo_changeme:
-                d[5] = xxx_todo_changeme
-                pass"""
-        self.check(b, a)
-
-    def test_weird_target_2(self):
-        b = """
-            try:
-                pass
-            except Exception, a.foo:
-                pass"""
-
-        a = """
-            try:
-                pass
-            except Exception as xxx_todo_changeme:
-                a.foo = xxx_todo_changeme
-                pass"""
-        self.check(b, a)
-
-    def test_weird_target_3(self):
-        b = """
-            try:
-                pass
-            except Exception, a().foo:
-                pass"""
-
-        a = """
-            try:
-                pass
-            except Exception as xxx_todo_changeme:
-                a().foo = xxx_todo_changeme
-                pass"""
-        self.check(b, a)
-
-    def test_bare_except(self):
-        b = """
-            try:
-                pass
-            except Exception, a:
-                pass
-            except:
-                pass"""
-
-        a = """
-            try:
-                pass
-            except Exception as a:
-                pass
-            except:
-                pass"""
-        self.check(b, a)
-
-    def test_bare_except_and_else_finally(self):
-        b = """
-            try:
-                pass
-            except Exception, a:
-                pass
-            except:
-                pass
-            else:
-                pass
-            finally:
-                pass"""
-
-        a = """
-            try:
-                pass
-            except Exception as a:
-                pass
-            except:
-                pass
-            else:
-                pass
-            finally:
-                pass"""
-        self.check(b, a)
-
-    def test_multi_fixed_excepts_before_bare_except(self):
-        b = """
-            try:
-                pass
-            except TypeError, b:
-                pass
-            except Exception, a:
-                pass
-            except:
-                pass"""
-
-        a = """
-            try:
-                pass
-            except TypeError as b:
-                pass
-            except Exception as a:
-                pass
-            except:
-                pass"""
-        self.check(b, a)
-
-    def test_one_line_suites(self):
-        b = """
-            try: raise TypeError
-            except TypeError, e:
-                pass
-            """
-        a = """
-            try: raise TypeError
-            except TypeError as e:
-                pass
-            """
-        self.check(b, a)
-        b = """
-            try:
-                raise TypeError
-            except TypeError, e: pass
-            """
-        a = """
-            try:
-                raise TypeError
-            except TypeError as e: pass
-            """
-        self.check(b, a)
-        b = """
-            try: raise TypeError
-            except TypeError, e: pass
-            """
-        a = """
-            try: raise TypeError
-            except TypeError as e: pass
-            """
-        self.check(b, a)
-        b = """
-            try: raise TypeError
-            except TypeError, e: pass
-            else: function()
-            finally: done()
-            """
-        a = """
-            try: raise TypeError
-            except TypeError as e: pass
-            else: function()
-            finally: done()
-            """
-        self.check(b, a)
-
-    # These should not be touched:
-
-    def test_unchanged_1(self):
-        s = """
-            try:
-                pass
-            except:
-                pass"""
-        self.unchanged(s)
-
-    def test_unchanged_2(self):
-        s = """
-            try:
-                pass
-            except Exception:
-                pass"""
-        self.unchanged(s)
-
-    def test_unchanged_3(self):
-        s = """
-            try:
-                pass
-            except (Exception, SystemExit):
-                pass"""
-        self.unchanged(s)
-
-class Test_raise(FixerTestCase):
-    fixer = "raise"
-
-    def test_basic(self):
-        b = """raise Exception, 5"""
-        a = """raise Exception(5)"""
-        self.check(b, a)
-
-    def test_prefix_preservation(self):
-        b = """raise Exception,5"""
-        a = """raise Exception(5)"""
-        self.check(b, a)
-
-        b = """raise   Exception,    5"""
-        a = """raise   Exception(5)"""
-        self.check(b, a)
-
-    def test_with_comments(self):
-        b = """raise Exception, 5 # foo"""
-        a = """raise Exception(5) # foo"""
-        self.check(b, a)
-
-        b = """raise E, (5, 6) % (a, b) # foo"""
-        a = """raise E((5, 6) % (a, b)) # foo"""
-        self.check(b, a)
-
-        b = """def foo():
-                    raise Exception, 5, 6 # foo"""
-        a = """def foo():
-                    raise Exception(5).with_traceback(6) # foo"""
-        self.check(b, a)
-
-    def test_None_value(self):
-        b = """raise Exception(5), None, tb"""
-        a = """raise Exception(5).with_traceback(tb)"""
-        self.check(b, a)
-
-    def test_tuple_value(self):
-        b = """raise Exception, (5, 6, 7)"""
-        a = """raise Exception(5, 6, 7)"""
-        self.check(b, a)
-
-    def test_tuple_detection(self):
-        b = """raise E, (5, 6) % (a, b)"""
-        a = """raise E((5, 6) % (a, b))"""
-        self.check(b, a)
-
-    def test_tuple_exc_1(self):
-        b = """raise (((E1, E2), E3), E4), V"""
-        a = """raise E1(V)"""
-        self.check(b, a)
-
-    def test_tuple_exc_2(self):
-        b = """raise (E1, (E2, E3), E4), V"""
-        a = """raise E1(V)"""
-        self.check(b, a)
-
-    # These should produce a warning
-
-    def test_string_exc(self):
-        s = """raise 'foo'"""
-        self.warns_unchanged(s, "Python 3 does not support string exceptions")
-
-    def test_string_exc_val(self):
-        s = """raise "foo", 5"""
-        self.warns_unchanged(s, "Python 3 does not support string exceptions")
-
-    def test_string_exc_val_tb(self):
-        s = """raise "foo", 5, 6"""
-        self.warns_unchanged(s, "Python 3 does not support string exceptions")
-
-    # These should result in traceback-assignment
-
-    def test_tb_1(self):
-        b = """def foo():
-                    raise Exception, 5, 6"""
-        a = """def foo():
-                    raise Exception(5).with_traceback(6)"""
-        self.check(b, a)
-
-    def test_tb_2(self):
-        b = """def foo():
-                    a = 5
-                    raise Exception, 5, 6
-                    b = 6"""
-        a = """def foo():
-                    a = 5
-                    raise Exception(5).with_traceback(6)
-                    b = 6"""
-        self.check(b, a)
-
-    def test_tb_3(self):
-        b = """def foo():
-                    raise Exception,5,6"""
-        a = """def foo():
-                    raise Exception(5).with_traceback(6)"""
-        self.check(b, a)
-
-    def test_tb_4(self):
-        b = """def foo():
-                    a = 5
-                    raise Exception,5,6
-                    b = 6"""
-        a = """def foo():
-                    a = 5
-                    raise Exception(5).with_traceback(6)
-                    b = 6"""
-        self.check(b, a)
-
-    def test_tb_5(self):
-        b = """def foo():
-                    raise Exception, (5, 6, 7), 6"""
-        a = """def foo():
-                    raise Exception(5, 6, 7).with_traceback(6)"""
-        self.check(b, a)
-
-    def test_tb_6(self):
-        b = """def foo():
-                    a = 5
-                    raise Exception, (5, 6, 7), 6
-                    b = 6"""
-        a = """def foo():
-                    a = 5
-                    raise Exception(5, 6, 7).with_traceback(6)
-                    b = 6"""
-        self.check(b, a)
-
-class Test_throw(FixerTestCase):
-    fixer = "throw"
-
-    def test_1(self):
-        b = """g.throw(Exception, 5)"""
-        a = """g.throw(Exception(5))"""
-        self.check(b, a)
-
-    def test_2(self):
-        b = """g.throw(Exception,5)"""
-        a = """g.throw(Exception(5))"""
-        self.check(b, a)
-
-    def test_3(self):
-        b = """g.throw(Exception, (5, 6, 7))"""
-        a = """g.throw(Exception(5, 6, 7))"""
-        self.check(b, a)
-
-    def test_4(self):
-        b = """5 + g.throw(Exception, 5)"""
-        a = """5 + g.throw(Exception(5))"""
-        self.check(b, a)
-
-    # These should produce warnings
-
-    def test_warn_1(self):
-        s = """g.throw("foo")"""
-        self.warns_unchanged(s, "Python 3 does not support string exceptions")
-
-    def test_warn_2(self):
-        s = """g.throw("foo", 5)"""
-        self.warns_unchanged(s, "Python 3 does not support string exceptions")
-
-    def test_warn_3(self):
-        s = """g.throw("foo", 5, 6)"""
-        self.warns_unchanged(s, "Python 3 does not support string exceptions")
-
-    # These should not be touched
-
-    def test_untouched_1(self):
-        s = """g.throw(Exception)"""
-        self.unchanged(s)
-
-    def test_untouched_2(self):
-        s = """g.throw(Exception(5, 6))"""
-        self.unchanged(s)
-
-    def test_untouched_3(self):
-        s = """5 + g.throw(Exception(5, 6))"""
-        self.unchanged(s)
-
-    # These should result in traceback-assignment
-
-    def test_tb_1(self):
-        b = """def foo():
-                    g.throw(Exception, 5, 6)"""
-        a = """def foo():
-                    g.throw(Exception(5).with_traceback(6))"""
-        self.check(b, a)
-
-    def test_tb_2(self):
-        b = """def foo():
-                    a = 5
-                    g.throw(Exception, 5, 6)
-                    b = 6"""
-        a = """def foo():
-                    a = 5
-                    g.throw(Exception(5).with_traceback(6))
-                    b = 6"""
-        self.check(b, a)
-
-    def test_tb_3(self):
-        b = """def foo():
-                    g.throw(Exception,5,6)"""
-        a = """def foo():
-                    g.throw(Exception(5).with_traceback(6))"""
-        self.check(b, a)
-
-    def test_tb_4(self):
-        b = """def foo():
-                    a = 5
-                    g.throw(Exception,5,6)
-                    b = 6"""
-        a = """def foo():
-                    a = 5
-                    g.throw(Exception(5).with_traceback(6))
-                    b = 6"""
-        self.check(b, a)
-
-    def test_tb_5(self):
-        b = """def foo():
-                    g.throw(Exception, (5, 6, 7), 6)"""
-        a = """def foo():
-                    g.throw(Exception(5, 6, 7).with_traceback(6))"""
-        self.check(b, a)
-
-    def test_tb_6(self):
-        b = """def foo():
-                    a = 5
-                    g.throw(Exception, (5, 6, 7), 6)
-                    b = 6"""
-        a = """def foo():
-                    a = 5
-                    g.throw(Exception(5, 6, 7).with_traceback(6))
-                    b = 6"""
-        self.check(b, a)
-
-    def test_tb_7(self):
-        b = """def foo():
-                    a + g.throw(Exception, 5, 6)"""
-        a = """def foo():
-                    a + g.throw(Exception(5).with_traceback(6))"""
-        self.check(b, a)
-
-    def test_tb_8(self):
-        b = """def foo():
-                    a = 5
-                    a + g.throw(Exception, 5, 6)
-                    b = 6"""
-        a = """def foo():
-                    a = 5
-                    a + g.throw(Exception(5).with_traceback(6))
-                    b = 6"""
-        self.check(b, a)
-
-class Test_long(FixerTestCase):
-    fixer = "long"
-
-    def test_1(self):
-        b = """x = long(x)"""
-        a = """x = int(x)"""
-        self.check(b, a)
-
-    def test_2(self):
-        b = """y = isinstance(x, long)"""
-        a = """y = isinstance(x, int)"""
-        self.check(b, a)
-
-    def test_3(self):
-        b = """z = type(x) in (int, long)"""
-        a = """z = type(x) in (int, int)"""
-        self.check(b, a)
-
-    def test_unchanged(self):
-        s = """long = True"""
-        self.unchanged(s)
-
-        s = """s.long = True"""
-        self.unchanged(s)
-
-        s = """def long(): pass"""
-        self.unchanged(s)
-
-        s = """class long(): pass"""
-        self.unchanged(s)
-
-        s = """def f(long): pass"""
-        self.unchanged(s)
-
-        s = """def f(g, long): pass"""
-        self.unchanged(s)
-
-        s = """def f(x, long=True): pass"""
-        self.unchanged(s)
-
-    def test_prefix_preservation(self):
-        b = """x =   long(  x  )"""
-        a = """x =   int(  x  )"""
-        self.check(b, a)
-
-
-class Test_execfile(FixerTestCase):
-    fixer = "execfile"
-
-    def test_conversion(self):
-        b = """execfile("fn")"""
-        a = """exec(compile(open("fn").read(), "fn", 'exec'))"""
-        self.check(b, a)
-
-        b = """execfile("fn", glob)"""
-        a = """exec(compile(open("fn").read(), "fn", 'exec'), glob)"""
-        self.check(b, a)
-
-        b = """execfile("fn", glob, loc)"""
-        a = """exec(compile(open("fn").read(), "fn", 'exec'), glob, loc)"""
-        self.check(b, a)
-
-        b = """execfile("fn", globals=glob)"""
-        a = """exec(compile(open("fn").read(), "fn", 'exec'), globals=glob)"""
-        self.check(b, a)
-
-        b = """execfile("fn", locals=loc)"""
-        a = """exec(compile(open("fn").read(), "fn", 'exec'), locals=loc)"""
-        self.check(b, a)
-
-        b = """execfile("fn", globals=glob, locals=loc)"""
-        a = """exec(compile(open("fn").read(), "fn", 'exec'), globals=glob, locals=loc)"""
-        self.check(b, a)
-
-    def test_spacing(self):
-        b = """execfile( "fn" )"""
-        a = """exec(compile(open( "fn" ).read(), "fn", 'exec'))"""
-        self.check(b, a)
-
-        b = """execfile("fn",  globals = glob)"""
-        a = """exec(compile(open("fn").read(), "fn", 'exec'),  globals = glob)"""
-        self.check(b, a)
-
-
-class Test_isinstance(FixerTestCase):
-    fixer = "isinstance"
-
-    def test_remove_multiple_items(self):
-        b = """isinstance(x, (int, int, int))"""
-        a = """isinstance(x, int)"""
-        self.check(b, a)
-
-        b = """isinstance(x, (int, float, int, int, float))"""
-        a = """isinstance(x, (int, float))"""
-        self.check(b, a)
-
-        b = """isinstance(x, (int, float, int, int, float, str))"""
-        a = """isinstance(x, (int, float, str))"""
-        self.check(b, a)
-
-        b = """isinstance(foo() + bar(), (x(), y(), x(), int, int))"""
-        a = """isinstance(foo() + bar(), (x(), y(), x(), int))"""
-        self.check(b, a)
-
-    def test_prefix_preservation(self):
-        b = """if    isinstance(  foo(), (  bar, bar, baz )) : pass"""
-        a = """if    isinstance(  foo(), (  bar, baz )) : pass"""
-        self.check(b, a)
-
-    def test_unchanged(self):
-        self.unchanged("isinstance(x, (str, int))")
-
-class Test_dict(FixerTestCase):
-    fixer = "dict"
-
-    def test_prefix_preservation(self):
-        b = "if   d. keys  (  )  : pass"
-        a = "if   list(d. keys  (  ))  : pass"
-        self.check(b, a)
-
-        b = "if   d. items  (  )  : pass"
-        a = "if   list(d. items  (  ))  : pass"
-        self.check(b, a)
-
-        b = "if   d. iterkeys  ( )  : pass"
-        a = "if   iter(d. keys  ( ))  : pass"
-        self.check(b, a)
-
-        b = "[i for i in    d.  iterkeys(  )  ]"
-        a = "[i for i in    d.  keys(  )  ]"
-        self.check(b, a)
-
-        b = "if   d. viewkeys  ( )  : pass"
-        a = "if   d. keys  ( )  : pass"
-        self.check(b, a)
-
-        b = "[i for i in    d.  viewkeys(  )  ]"
-        a = "[i for i in    d.  keys(  )  ]"
-        self.check(b, a)
-
-    def test_trailing_comment(self):
-        b = "d.keys() # foo"
-        a = "list(d.keys()) # foo"
-        self.check(b, a)
-
-        b = "d.items()  # foo"
-        a = "list(d.items())  # foo"
-        self.check(b, a)
-
-        b = "d.iterkeys()  # foo"
-        a = "iter(d.keys())  # foo"
-        self.check(b, a)
-
-        b = """[i for i in d.iterkeys() # foo
-               ]"""
-        a = """[i for i in d.keys() # foo
-               ]"""
-        self.check(b, a)
-
-        b = """[i for i in d.iterkeys() # foo
-               ]"""
-        a = """[i for i in d.keys() # foo
-               ]"""
-        self.check(b, a)
-
-        b = "d.viewitems()  # foo"
-        a = "d.items()  # foo"
-        self.check(b, a)
-
-    def test_unchanged(self):
-        for wrapper in fixer_util.consuming_calls:
-            s = "s = %s(d.keys())" % wrapper
-            self.unchanged(s)
-
-            s = "s = %s(d.values())" % wrapper
-            self.unchanged(s)
-
-            s = "s = %s(d.items())" % wrapper
-            self.unchanged(s)
-
-    def test_01(self):
-        b = "d.keys()"
-        a = "list(d.keys())"
-        self.check(b, a)
-
-        b = "a[0].foo().keys()"
-        a = "list(a[0].foo().keys())"
-        self.check(b, a)
-
-    def test_02(self):
-        b = "d.items()"
-        a = "list(d.items())"
-        self.check(b, a)
-
-    def test_03(self):
-        b = "d.values()"
-        a = "list(d.values())"
-        self.check(b, a)
-
-    def test_04(self):
-        b = "d.iterkeys()"
-        a = "iter(d.keys())"
-        self.check(b, a)
-
-    def test_05(self):
-        b = "d.iteritems()"
-        a = "iter(d.items())"
-        self.check(b, a)
-
-    def test_06(self):
-        b = "d.itervalues()"
-        a = "iter(d.values())"
-        self.check(b, a)
-
-    def test_07(self):
-        s = "list(d.keys())"
-        self.unchanged(s)
-
-    def test_08(self):
-        s = "sorted(d.keys())"
-        self.unchanged(s)
-
-    def test_09(self):
-        b = "iter(d.keys())"
-        a = "iter(list(d.keys()))"
-        self.check(b, a)
-
-    def test_10(self):
-        b = "foo(d.keys())"
-        a = "foo(list(d.keys()))"
-        self.check(b, a)
-
-    def test_11(self):
-        b = "for i in d.keys(): print i"
-        a = "for i in list(d.keys()): print i"
-        self.check(b, a)
-
-    def test_12(self):
-        b = "for i in d.iterkeys(): print i"
-        a = "for i in d.keys(): print i"
-        self.check(b, a)
-
-    def test_13(self):
-        b = "[i for i in d.keys()]"
-        a = "[i for i in list(d.keys())]"
-        self.check(b, a)
-
-    def test_14(self):
-        b = "[i for i in d.iterkeys()]"
-        a = "[i for i in d.keys()]"
-        self.check(b, a)
-
-    def test_15(self):
-        b = "(i for i in d.keys())"
-        a = "(i for i in list(d.keys()))"
-        self.check(b, a)
-
-    def test_16(self):
-        b = "(i for i in d.iterkeys())"
-        a = "(i for i in d.keys())"
-        self.check(b, a)
-
-    def test_17(self):
-        b = "iter(d.iterkeys())"
-        a = "iter(d.keys())"
-        self.check(b, a)
-
-    def test_18(self):
-        b = "list(d.iterkeys())"
-        a = "list(d.keys())"
-        self.check(b, a)
-
-    def test_19(self):
-        b = "sorted(d.iterkeys())"
-        a = "sorted(d.keys())"
-        self.check(b, a)
-
-    def test_20(self):
-        b = "foo(d.iterkeys())"
-        a = "foo(iter(d.keys()))"
-        self.check(b, a)
-
-    def test_21(self):
-        b = "print h.iterkeys().next()"
-        a = "print iter(h.keys()).next()"
-        self.check(b, a)
-
-    def test_22(self):
-        b = "print h.keys()[0]"
-        a = "print list(h.keys())[0]"
-        self.check(b, a)
-
-    def test_23(self):
-        b = "print list(h.iterkeys().next())"
-        a = "print list(iter(h.keys()).next())"
-        self.check(b, a)
-
-    def test_24(self):
-        b = "for x in h.keys()[0]: print x"
-        a = "for x in list(h.keys())[0]: print x"
-        self.check(b, a)
-
-    def test_25(self):
-        b = "d.viewkeys()"
-        a = "d.keys()"
-        self.check(b, a)
-
-    def test_26(self):
-        b = "d.viewitems()"
-        a = "d.items()"
-        self.check(b, a)
-
-    def test_27(self):
-        b = "d.viewvalues()"
-        a = "d.values()"
-        self.check(b, a)
-
-    def test_14(self):
-        b = "[i for i in d.viewkeys()]"
-        a = "[i for i in d.keys()]"
-        self.check(b, a)
-
-    def test_15(self):
-        b = "(i for i in d.viewkeys())"
-        a = "(i for i in d.keys())"
-        self.check(b, a)
-
-    def test_17(self):
-        b = "iter(d.viewkeys())"
-        a = "iter(d.keys())"
-        self.check(b, a)
-
-    def test_18(self):
-        b = "list(d.viewkeys())"
-        a = "list(d.keys())"
-        self.check(b, a)
-
-    def test_19(self):
-        b = "sorted(d.viewkeys())"
-        a = "sorted(d.keys())"
-        self.check(b, a)
-
-class Test_xrange(FixerTestCase):
-    fixer = "xrange"
-
-    def test_prefix_preservation(self):
-        b = """x =    xrange(  10  )"""
-        a = """x =    range(  10  )"""
-        self.check(b, a)
-
-        b = """x = xrange(  1  ,  10   )"""
-        a = """x = range(  1  ,  10   )"""
-        self.check(b, a)
-
-        b = """x = xrange(  0  ,  10 ,  2 )"""
-        a = """x = range(  0  ,  10 ,  2 )"""
-        self.check(b, a)
-
-    def test_single_arg(self):
-        b = """x = xrange(10)"""
-        a = """x = range(10)"""
-        self.check(b, a)
-
-    def test_two_args(self):
-        b = """x = xrange(1, 10)"""
-        a = """x = range(1, 10)"""
-        self.check(b, a)
-
-    def test_three_args(self):
-        b = """x = xrange(0, 10, 2)"""
-        a = """x = range(0, 10, 2)"""
-        self.check(b, a)
-
-    def test_wrap_in_list(self):
-        b = """x = range(10, 3, 9)"""
-        a = """x = list(range(10, 3, 9))"""
-        self.check(b, a)
-
-        b = """x = foo(range(10, 3, 9))"""
-        a = """x = foo(list(range(10, 3, 9)))"""
-        self.check(b, a)
-
-        b = """x = range(10, 3, 9) + [4]"""
-        a = """x = list(range(10, 3, 9)) + [4]"""
-        self.check(b, a)
-
-        b = """x = range(10)[::-1]"""
-        a = """x = list(range(10))[::-1]"""
-        self.check(b, a)
-
-        b = """x = range(10)  [3]"""
-        a = """x = list(range(10))  [3]"""
-        self.check(b, a)
-
-    def test_xrange_in_for(self):
-        b = """for i in xrange(10):\n    j=i"""
-        a = """for i in range(10):\n    j=i"""
-        self.check(b, a)
-
-        b = """[i for i in xrange(10)]"""
-        a = """[i for i in range(10)]"""
-        self.check(b, a)
-
-    def test_range_in_for(self):
-        self.unchanged("for i in range(10): pass")
-        self.unchanged("[i for i in range(10)]")
-
-    def test_in_contains_test(self):
-        self.unchanged("x in range(10, 3, 9)")
-
-    def test_in_consuming_context(self):
-        for call in fixer_util.consuming_calls:
-            self.unchanged("a = %s(range(10))" % call)
-
-class Test_xrange_with_reduce(FixerTestCase):
-
-    def setUp(self):
-        super(Test_xrange_with_reduce, self).setUp(["xrange", "reduce"])
-
-    def test_double_transform(self):
-        b = """reduce(x, xrange(5))"""
-        a = """from functools import reduce
-reduce(x, range(5))"""
-        self.check(b, a)
-
-class Test_raw_input(FixerTestCase):
-    fixer = "raw_input"
-
-    def test_prefix_preservation(self):
-        b = """x =    raw_input(   )"""
-        a = """x =    input(   )"""
-        self.check(b, a)
-
-        b = """x = raw_input(   ''   )"""
-        a = """x = input(   ''   )"""
-        self.check(b, a)
-
-    def test_1(self):
-        b = """x = raw_input()"""
-        a = """x = input()"""
-        self.check(b, a)
-
-    def test_2(self):
-        b = """x = raw_input('')"""
-        a = """x = input('')"""
-        self.check(b, a)
-
-    def test_3(self):
-        b = """x = raw_input('prompt')"""
-        a = """x = input('prompt')"""
-        self.check(b, a)
-
-    def test_4(self):
-        b = """x = raw_input(foo(a) + 6)"""
-        a = """x = input(foo(a) + 6)"""
-        self.check(b, a)
-
-    def test_5(self):
-        b = """x = raw_input(invite).split()"""
-        a = """x = input(invite).split()"""
-        self.check(b, a)
-
-    def test_6(self):
-        b = """x = raw_input(invite) . split ()"""
-        a = """x = input(invite) . split ()"""
-        self.check(b, a)
-
-    def test_8(self):
-        b = "x = int(raw_input())"
-        a = "x = int(input())"
-        self.check(b, a)
-
-class Test_funcattrs(FixerTestCase):
-    fixer = "funcattrs"
-
-    attrs = ["closure", "doc", "name", "defaults", "code", "globals", "dict"]
-
-    def test(self):
-        for attr in self.attrs:
-            b = "a.func_%s" % attr
-            a = "a.__%s__" % attr
-            self.check(b, a)
-
-            b = "self.foo.func_%s.foo_bar" % attr
-            a = "self.foo.__%s__.foo_bar" % attr
-            self.check(b, a)
-
-    def test_unchanged(self):
-        for attr in self.attrs:
-            s = "foo(func_%s + 5)" % attr
-            self.unchanged(s)
-
-            s = "f(foo.__%s__)" % attr
-            self.unchanged(s)
-
-            s = "f(foo.__%s__.foo)" % attr
-            self.unchanged(s)
-
-class Test_xreadlines(FixerTestCase):
-    fixer = "xreadlines"
-
-    def test_call(self):
-        b = "for x in f.xreadlines(): pass"
-        a = "for x in f: pass"
-        self.check(b, a)
-
-        b = "for x in foo().xreadlines(): pass"
-        a = "for x in foo(): pass"
-        self.check(b, a)
-
-        b = "for x in (5 + foo()).xreadlines(): pass"
-        a = "for x in (5 + foo()): pass"
-        self.check(b, a)
-
-    def test_attr_ref(self):
-        b = "foo(f.xreadlines + 5)"
-        a = "foo(f.__iter__ + 5)"
-        self.check(b, a)
-
-        b = "foo(f().xreadlines + 5)"
-        a = "foo(f().__iter__ + 5)"
-        self.check(b, a)
-
-        b = "foo((5 + f()).xreadlines + 5)"
-        a = "foo((5 + f()).__iter__ + 5)"
-        self.check(b, a)
-
-    def test_unchanged(self):
-        s = "for x in f.xreadlines(5): pass"
-        self.unchanged(s)
-
-        s = "for x in f.xreadlines(k=5): pass"
-        self.unchanged(s)
-
-        s = "for x in f.xreadlines(*k, **v): pass"
-        self.unchanged(s)
-
-        s = "foo(xreadlines)"
-        self.unchanged(s)
-
-
-class ImportsFixerTests:
-
-    def test_import_module(self):
-        for old, new in self.modules.items():
-            b = "import %s" % old
-            a = "import %s" % new
-            self.check(b, a)
-
-            b = "import foo, %s, bar" % old
-            a = "import foo, %s, bar" % new
-            self.check(b, a)
-
-    def test_import_from(self):
-        for old, new in self.modules.items():
-            b = "from %s import foo" % old
-            a = "from %s import foo" % new
-            self.check(b, a)
-
-            b = "from %s import foo, bar" % old
-            a = "from %s import foo, bar" % new
-            self.check(b, a)
-
-            b = "from %s import (yes, no)" % old
-            a = "from %s import (yes, no)" % new
-            self.check(b, a)
-
-    def test_import_module_as(self):
-        for old, new in self.modules.items():
-            b = "import %s as foo_bar" % old
-            a = "import %s as foo_bar" % new
-            self.check(b, a)
-
-            b = "import %s as foo_bar" % old
-            a = "import %s as foo_bar" % new
-            self.check(b, a)
-
-    def test_import_from_as(self):
-        for old, new in self.modules.items():
-            b = "from %s import foo as bar" % old
-            a = "from %s import foo as bar" % new
-            self.check(b, a)
-
-    def test_star(self):
-        for old, new in self.modules.items():
-            b = "from %s import *" % old
-            a = "from %s import *" % new
-            self.check(b, a)
-
-    def test_import_module_usage(self):
-        for old, new in self.modules.items():
-            b = """
-                import %s
-                foo(%s.bar)
-                """ % (old, old)
-            a = """
-                import %s
-                foo(%s.bar)
-                """ % (new, new)
-            self.check(b, a)
-
-            b = """
-                from %s import x
-                %s = 23
-                """ % (old, old)
-            a = """
-                from %s import x
-                %s = 23
-                """ % (new, old)
-            self.check(b, a)
-
-            s = """
-                def f():
-                    %s.method()
-                """ % (old,)
-            self.unchanged(s)
-
-            # test nested usage
-            b = """
-                import %s
-                %s.bar(%s.foo)
-                """ % (old, old, old)
-            a = """
-                import %s
-                %s.bar(%s.foo)
-                """ % (new, new, new)
-            self.check(b, a)
-
-            b = """
-                import %s
-                x.%s
-                """ % (old, old)
-            a = """
-                import %s
-                x.%s
-                """ % (new, old)
-            self.check(b, a)
-
-
-class Test_imports(FixerTestCase, ImportsFixerTests):
-    fixer = "imports"
-    from ..fixes.fix_imports import MAPPING as modules
-
-    def test_multiple_imports(self):
-        b = """import urlparse, cStringIO"""
-        a = """import urllib.parse, io"""
-        self.check(b, a)
-
-    def test_multiple_imports_as(self):
-        b = """
-            import copy_reg as bar, HTMLParser as foo, urlparse
-            s = urlparse.spam(bar.foo())
-            """
-        a = """
-            import copyreg as bar, html.parser as foo, urllib.parse
-            s = urllib.parse.spam(bar.foo())
-            """
-        self.check(b, a)
-
-
-class Test_imports2(FixerTestCase, ImportsFixerTests):
-    fixer = "imports2"
-    from ..fixes.fix_imports2 import MAPPING as modules
-
-
-class Test_imports_fixer_order(FixerTestCase, ImportsFixerTests):
-
-    def setUp(self):
-        super(Test_imports_fixer_order, self).setUp(['imports', 'imports2'])
-        from ..fixes.fix_imports2 import MAPPING as mapping2
-        self.modules = mapping2.copy()
-        from ..fixes.fix_imports import MAPPING as mapping1
-        for key in ('dbhash', 'dumbdbm', 'dbm', 'gdbm'):
-            self.modules[key] = mapping1[key]
-
-    def test_after_local_imports_refactoring(self):
-        for fix in ("imports", "imports2"):
-            self.fixer = fix
-            self.assert_runs_after("import")
-
-
-class Test_urllib(FixerTestCase):
-    fixer = "urllib"
-    from ..fixes.fix_urllib import MAPPING as modules
-
-    def test_import_module(self):
-        for old, changes in self.modules.items():
-            b = "import %s" % old
-            a = "import %s" % ", ".join(map(itemgetter(0), changes))
-            self.check(b, a)
-
-    def test_import_from(self):
-        for old, changes in self.modules.items():
-            all_members = []
-            for new, members in changes:
-                for member in members:
-                    all_members.append(member)
-                    b = "from %s import %s" % (old, member)
-                    a = "from %s import %s" % (new, member)
-                    self.check(b, a)
-
-                    s = "from foo import %s" % member
-                    self.unchanged(s)
-
-                b = "from %s import %s" % (old, ", ".join(members))
-                a = "from %s import %s" % (new, ", ".join(members))
-                self.check(b, a)
-
-                s = "from foo import %s" % ", ".join(members)
-                self.unchanged(s)
-
-            # test the breaking of a module into multiple replacements
-            b = "from %s import %s" % (old, ", ".join(all_members))
-            a = "\n".join(["from %s import %s" % (new, ", ".join(members))
-                            for (new, members) in changes])
-            self.check(b, a)
-
-    def test_import_module_as(self):
-        for old in self.modules:
-            s = "import %s as foo" % old
-            self.warns_unchanged(s, "This module is now multiple modules")
-
-    def test_import_from_as(self):
-        for old, changes in self.modules.items():
-            for new, members in changes:
-                for member in members:
-                    b = "from %s import %s as foo_bar" % (old, member)
-                    a = "from %s import %s as foo_bar" % (new, member)
-                    self.check(b, a)
-                    b = "from %s import %s as blah, %s" % (old, member, member)
-                    a = "from %s import %s as blah, %s" % (new, member, member)
-                    self.check(b, a)
-
-    def test_star(self):
-        for old in self.modules:
-            s = "from %s import *" % old
-            self.warns_unchanged(s, "Cannot handle star imports")
-
-    def test_indented(self):
-        b = """
-def foo():
-    from urllib import urlencode, urlopen
-"""
-        a = """
-def foo():
-    from urllib.parse import urlencode
-    from urllib.request import urlopen
-"""
-        self.check(b, a)
-
-        b = """
-def foo():
-    other()
-    from urllib import urlencode, urlopen
-"""
-        a = """
-def foo():
-    other()
-    from urllib.parse import urlencode
-    from urllib.request import urlopen
-"""
-        self.check(b, a)
-
-
-
-    def test_import_module_usage(self):
-        for old, changes in self.modules.items():
-            for new, members in changes:
-                for member in members:
-                    new_import = ", ".join([n for (n, mems)
-                                            in self.modules[old]])
-                    b = """
-                        import %s
-                        foo(%s.%s)
-                        """ % (old, old, member)
-                    a = """
-                        import %s
-                        foo(%s.%s)
-                        """ % (new_import, new, member)
-                    self.check(b, a)
-                    b = """
-                        import %s
-                        %s.%s(%s.%s)
-                        """ % (old, old, member, old, member)
-                    a = """
-                        import %s
-                        %s.%s(%s.%s)
-                        """ % (new_import, new, member, new, member)
-                    self.check(b, a)
-
-
-class Test_input(FixerTestCase):
-    fixer = "input"
-
-    def test_prefix_preservation(self):
-        b = """x =   input(   )"""
-        a = """x =   eval(input(   ))"""
-        self.check(b, a)
-
-        b = """x = input(   ''   )"""
-        a = """x = eval(input(   ''   ))"""
-        self.check(b, a)
-
-    def test_trailing_comment(self):
-        b = """x = input()  #  foo"""
-        a = """x = eval(input())  #  foo"""
-        self.check(b, a)
-
-    def test_idempotency(self):
-        s = """x = eval(input())"""
-        self.unchanged(s)
-
-        s = """x = eval(input(''))"""
-        self.unchanged(s)
-
-        s = """x = eval(input(foo(5) + 9))"""
-        self.unchanged(s)
-
-    def test_1(self):
-        b = """x = input()"""
-        a = """x = eval(input())"""
-        self.check(b, a)
-
-    def test_2(self):
-        b = """x = input('')"""
-        a = """x = eval(input(''))"""
-        self.check(b, a)
-
-    def test_3(self):
-        b = """x = input('prompt')"""
-        a = """x = eval(input('prompt'))"""
-        self.check(b, a)
-
-    def test_4(self):
-        b = """x = input(foo(5) + 9)"""
-        a = """x = eval(input(foo(5) + 9))"""
-        self.check(b, a)
-
-class Test_tuple_params(FixerTestCase):
-    fixer = "tuple_params"
-
-    def test_unchanged_1(self):
-        s = """def foo(): pass"""
-        self.unchanged(s)
-
-    def test_unchanged_2(self):
-        s = """def foo(a, b, c): pass"""
-        self.unchanged(s)
-
-    def test_unchanged_3(self):
-        s = """def foo(a=3, b=4, c=5): pass"""
-        self.unchanged(s)
-
-    def test_1(self):
-        b = """
-            def foo(((a, b), c)):
-                x = 5"""
-
-        a = """
-            def foo(xxx_todo_changeme):
-                ((a, b), c) = xxx_todo_changeme
-                x = 5"""
-        self.check(b, a)
-
-    def test_2(self):
-        b = """
-            def foo(((a, b), c), d):
-                x = 5"""
-
-        a = """
-            def foo(xxx_todo_changeme, d):
-                ((a, b), c) = xxx_todo_changeme
-                x = 5"""
-        self.check(b, a)
-
-    def test_3(self):
-        b = """
-            def foo(((a, b), c), d) -> e:
-                x = 5"""
-
-        a = """
-            def foo(xxx_todo_changeme, d) -> e:
-                ((a, b), c) = xxx_todo_changeme
-                x = 5"""
-        self.check(b, a)
-
-    def test_semicolon(self):
-        b = """
-            def foo(((a, b), c)): x = 5; y = 7"""
-
-        a = """
-            def foo(xxx_todo_changeme): ((a, b), c) = xxx_todo_changeme; x = 5; y = 7"""
-        self.check(b, a)
-
-    def test_keywords(self):
-        b = """
-            def foo(((a, b), c), d, e=5) -> z:
-                x = 5"""
-
-        a = """
-            def foo(xxx_todo_changeme, d, e=5) -> z:
-                ((a, b), c) = xxx_todo_changeme
-                x = 5"""
-        self.check(b, a)
-
-    def test_varargs(self):
-        b = """
-            def foo(((a, b), c), d, *vargs, **kwargs) -> z:
-                x = 5"""
-
-        a = """
-            def foo(xxx_todo_changeme, d, *vargs, **kwargs) -> z:
-                ((a, b), c) = xxx_todo_changeme
-                x = 5"""
-        self.check(b, a)
-
-    def test_multi_1(self):
-        b = """
-            def foo(((a, b), c), (d, e, f)) -> z:
-                x = 5"""
-
-        a = """
-            def foo(xxx_todo_changeme, xxx_todo_changeme1) -> z:
-                ((a, b), c) = xxx_todo_changeme
-                (d, e, f) = xxx_todo_changeme1
-                x = 5"""
-        self.check(b, a)
-
-    def test_multi_2(self):
-        b = """
-            def foo(x, ((a, b), c), d, (e, f, g), y) -> z:
-                x = 5"""
-
-        a = """
-            def foo(x, xxx_todo_changeme, d, xxx_todo_changeme1, y) -> z:
-                ((a, b), c) = xxx_todo_changeme
-                (e, f, g) = xxx_todo_changeme1
-                x = 5"""
-        self.check(b, a)
-
-    def test_docstring(self):
-        b = """
-            def foo(((a, b), c), (d, e, f)) -> z:
-                "foo foo foo foo"
-                x = 5"""
-
-        a = """
-            def foo(xxx_todo_changeme, xxx_todo_changeme1) -> z:
-                "foo foo foo foo"
-                ((a, b), c) = xxx_todo_changeme
-                (d, e, f) = xxx_todo_changeme1
-                x = 5"""
-        self.check(b, a)
-
-    def test_lambda_no_change(self):
-        s = """lambda x: x + 5"""
-        self.unchanged(s)
-
-    def test_lambda_parens_single_arg(self):
-        b = """lambda (x): x + 5"""
-        a = """lambda x: x + 5"""
-        self.check(b, a)
-
-        b = """lambda(x): x + 5"""
-        a = """lambda x: x + 5"""
-        self.check(b, a)
-
-        b = """lambda ((((x)))): x + 5"""
-        a = """lambda x: x + 5"""
-        self.check(b, a)
-
-        b = """lambda((((x)))): x + 5"""
-        a = """lambda x: x + 5"""
-        self.check(b, a)
-
-    def test_lambda_simple(self):
-        b = """lambda (x, y): x + f(y)"""
-        a = """lambda x_y: x_y[0] + f(x_y[1])"""
-        self.check(b, a)
-
-        b = """lambda(x, y): x + f(y)"""
-        a = """lambda x_y: x_y[0] + f(x_y[1])"""
-        self.check(b, a)
-
-        b = """lambda (((x, y))): x + f(y)"""
-        a = """lambda x_y: x_y[0] + f(x_y[1])"""
-        self.check(b, a)
-
-        b = """lambda(((x, y))): x + f(y)"""
-        a = """lambda x_y: x_y[0] + f(x_y[1])"""
-        self.check(b, a)
-
-    def test_lambda_one_tuple(self):
-        b = """lambda (x,): x + f(x)"""
-        a = """lambda x1: x1[0] + f(x1[0])"""
-        self.check(b, a)
-
-        b = """lambda (((x,))): x + f(x)"""
-        a = """lambda x1: x1[0] + f(x1[0])"""
-        self.check(b, a)
-
-    def test_lambda_simple_multi_use(self):
-        b = """lambda (x, y): x + x + f(x) + x"""
-        a = """lambda x_y: x_y[0] + x_y[0] + f(x_y[0]) + x_y[0]"""
-        self.check(b, a)
-
-    def test_lambda_simple_reverse(self):
-        b = """lambda (x, y): y + x"""
-        a = """lambda x_y: x_y[1] + x_y[0]"""
-        self.check(b, a)
-
-    def test_lambda_nested(self):
-        b = """lambda (x, (y, z)): x + y + z"""
-        a = """lambda x_y_z: x_y_z[0] + x_y_z[1][0] + x_y_z[1][1]"""
-        self.check(b, a)
-
-        b = """lambda (((x, (y, z)))): x + y + z"""
-        a = """lambda x_y_z: x_y_z[0] + x_y_z[1][0] + x_y_z[1][1]"""
-        self.check(b, a)
-
-    def test_lambda_nested_multi_use(self):
-        b = """lambda (x, (y, z)): x + y + f(y)"""
-        a = """lambda x_y_z: x_y_z[0] + x_y_z[1][0] + f(x_y_z[1][0])"""
-        self.check(b, a)
-
-class Test_methodattrs(FixerTestCase):
-    fixer = "methodattrs"
-
-    attrs = ["func", "self", "class"]
-
-    def test(self):
-        for attr in self.attrs:
-            b = "a.im_%s" % attr
-            if attr == "class":
-                a = "a.__self__.__class__"
-            else:
-                a = "a.__%s__" % attr
-            self.check(b, a)
-
-            b = "self.foo.im_%s.foo_bar" % attr
-            if attr == "class":
-                a = "self.foo.__self__.__class__.foo_bar"
-            else:
-                a = "self.foo.__%s__.foo_bar" % attr
-            self.check(b, a)
-
-    def test_unchanged(self):
-        for attr in self.attrs:
-            s = "foo(im_%s + 5)" % attr
-            self.unchanged(s)
-
-            s = "f(foo.__%s__)" % attr
-            self.unchanged(s)
-
-            s = "f(foo.__%s__.foo)" % attr
-            self.unchanged(s)
-
-class Test_next(FixerTestCase):
-    fixer = "next"
-
-    def test_1(self):
-        b = """it.next()"""
-        a = """next(it)"""
-        self.check(b, a)
-
-    def test_2(self):
-        b = """a.b.c.d.next()"""
-        a = """next(a.b.c.d)"""
-        self.check(b, a)
-
-    def test_3(self):
-        b = """(a + b).next()"""
-        a = """next((a + b))"""
-        self.check(b, a)
-
-    def test_4(self):
-        b = """a().next()"""
-        a = """next(a())"""
-        self.check(b, a)
-
-    def test_5(self):
-        b = """a().next() + b"""
-        a = """next(a()) + b"""
-        self.check(b, a)
-
-    def test_6(self):
-        b = """c(      a().next() + b)"""
-        a = """c(      next(a()) + b)"""
-        self.check(b, a)
-
-    def test_prefix_preservation_1(self):
-        b = """
-            for a in b:
-                foo(a)
-                a.next()
-            """
-        a = """
-            for a in b:
-                foo(a)
-                next(a)
-            """
-        self.check(b, a)
-
-    def test_prefix_preservation_2(self):
-        b = """
-            for a in b:
-                foo(a) # abc
-                # def
-                a.next()
-            """
-        a = """
-            for a in b:
-                foo(a) # abc
-                # def
-                next(a)
-            """
-        self.check(b, a)
-
-    def test_prefix_preservation_3(self):
-        b = """
-            next = 5
-            for a in b:
-                foo(a)
-                a.next()
-            """
-        a = """
-            next = 5
-            for a in b:
-                foo(a)
-                a.__next__()
-            """
-        self.check(b, a, ignore_warnings=True)
-
-    def test_prefix_preservation_4(self):
-        b = """
-            next = 5
-            for a in b:
-                foo(a) # abc
-                # def
-                a.next()
-            """
-        a = """
-            next = 5
-            for a in b:
-                foo(a) # abc
-                # def
-                a.__next__()
-            """
-        self.check(b, a, ignore_warnings=True)
-
-    def test_prefix_preservation_5(self):
-        b = """
-            next = 5
-            for a in b:
-                foo(foo(a), # abc
-                    a.next())
-            """
-        a = """
-            next = 5
-            for a in b:
-                foo(foo(a), # abc
-                    a.__next__())
-            """
-        self.check(b, a, ignore_warnings=True)
-
-    def test_prefix_preservation_6(self):
-        b = """
-            for a in b:
-                foo(foo(a), # abc
-                    a.next())
-            """
-        a = """
-            for a in b:
-                foo(foo(a), # abc
-                    next(a))
-            """
-        self.check(b, a)
-
-    def test_method_1(self):
-        b = """
-            class A:
-                def next(self):
-                    pass
-            """
-        a = """
-            class A:
-                def __next__(self):
-                    pass
-            """
-        self.check(b, a)
-
-    def test_method_2(self):
-        b = """
-            class A(object):
-                def next(self):
-                    pass
-            """
-        a = """
-            class A(object):
-                def __next__(self):
-                    pass
-            """
-        self.check(b, a)
-
-    def test_method_3(self):
-        b = """
-            class A:
-                def next(x):
-                    pass
-            """
-        a = """
-            class A:
-                def __next__(x):
-                    pass
-            """
-        self.check(b, a)
-
-    def test_method_4(self):
-        b = """
-            class A:
-                def __init__(self, foo):
-                    self.foo = foo
-
-                def next(self):
-                    pass
-
-                def __iter__(self):
-                    return self
-            """
-        a = """
-            class A:
-                def __init__(self, foo):
-                    self.foo = foo
-
-                def __next__(self):
-                    pass
-
-                def __iter__(self):
-                    return self
-            """
-        self.check(b, a)
-
-    def test_method_unchanged(self):
-        s = """
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.unchanged(s)
-
-    def test_shadowing_assign_simple(self):
-        s = """
-            next = foo
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_assign_tuple_1(self):
-        s = """
-            (next, a) = foo
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_assign_tuple_2(self):
-        s = """
-            (a, (b, (next, c)), a) = foo
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_assign_list_1(self):
-        s = """
-            [next, a] = foo
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_assign_list_2(self):
-        s = """
-            [a, [b, [next, c]], a] = foo
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_builtin_assign(self):
-        s = """
-            def foo():
-                __builtin__.next = foo
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_builtin_assign_in_tuple(self):
-        s = """
-            def foo():
-                (a, __builtin__.next) = foo
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_builtin_assign_in_list(self):
-        s = """
-            def foo():
-                [a, __builtin__.next] = foo
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_assign_to_next(self):
-        s = """
-            def foo():
-                A.next = foo
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.unchanged(s)
-
-    def test_assign_to_next_in_tuple(self):
-        s = """
-            def foo():
-                (a, A.next) = foo
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.unchanged(s)
-
-    def test_assign_to_next_in_list(self):
-        s = """
-            def foo():
-                [a, A.next] = foo
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.unchanged(s)
-
-    def test_shadowing_import_1(self):
-        s = """
-            import foo.bar as next
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_import_2(self):
-        s = """
-            import bar, bar.foo as next
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_import_3(self):
-        s = """
-            import bar, bar.foo as next, baz
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_import_from_1(self):
-        s = """
-            from x import next
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_import_from_2(self):
-        s = """
-            from x.a import next
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_import_from_3(self):
-        s = """
-            from x import a, next, b
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_import_from_4(self):
-        s = """
-            from x.a import a, next, b
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_funcdef_1(self):
-        s = """
-            def next(a):
-                pass
-
-            class A:
-                def next(self, a, b):
-                    pass
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_funcdef_2(self):
-        b = """
-            def next(a):
-                pass
-
-            class A:
-                def next(self):
-                    pass
-
-            it.next()
-            """
-        a = """
-            def next(a):
-                pass
-
-            class A:
-                def __next__(self):
-                    pass
-
-            it.__next__()
-            """
-        self.warns(b, a, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_global_1(self):
-        s = """
-            def f():
-                global next
-                next = 5
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_global_2(self):
-        s = """
-            def f():
-                global a, next, b
-                next = 5
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_for_simple(self):
-        s = """
-            for next in it():
-                pass
-
-            b = 5
-            c = 6
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_for_tuple_1(self):
-        s = """
-            for next, b in it():
-                pass
-
-            b = 5
-            c = 6
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_shadowing_for_tuple_2(self):
-        s = """
-            for a, (next, c), b in it():
-                pass
-
-            b = 5
-            c = 6
-            """
-        self.warns_unchanged(s, "Calls to builtin next() possibly shadowed")
-
-    def test_noncall_access_1(self):
-        b = """gnext = g.next"""
-        a = """gnext = g.__next__"""
-        self.check(b, a)
-
-    def test_noncall_access_2(self):
-        b = """f(g.next + 5)"""
-        a = """f(g.__next__ + 5)"""
-        self.check(b, a)
-
-    def test_noncall_access_3(self):
-        b = """f(g().next + 5)"""
-        a = """f(g().__next__ + 5)"""
-        self.check(b, a)
-
-class Test_nonzero(FixerTestCase):
-    fixer = "nonzero"
-
-    def test_1(self):
-        b = """
-            class A:
-                def __nonzero__(self):
-                    pass
-            """
-        a = """
-            class A:
-                def __bool__(self):
-                    pass
-            """
-        self.check(b, a)
-
-    def test_2(self):
-        b = """
-            class A(object):
-                def __nonzero__(self):
-                    pass
-            """
-        a = """
-            class A(object):
-                def __bool__(self):
-                    pass
-            """
-        self.check(b, a)
-
-    def test_unchanged_1(self):
-        s = """
-            class A(object):
-                def __bool__(self):
-                    pass
-            """
-        self.unchanged(s)
-
-    def test_unchanged_2(self):
-        s = """
-            class A(object):
-                def __nonzero__(self, a):
-                    pass
-            """
-        self.unchanged(s)
-
-    def test_unchanged_func(self):
-        s = """
-            def __nonzero__(self):
-                pass
-            """
-        self.unchanged(s)
-
-class Test_numliterals(FixerTestCase):
-    fixer = "numliterals"
-
-    def test_octal_1(self):
-        b = """0755"""
-        a = """0o755"""
-        self.check(b, a)
-
-    def test_long_int_1(self):
-        b = """a = 12L"""
-        a = """a = 12"""
-        self.check(b, a)
-
-    def test_long_int_2(self):
-        b = """a = 12l"""
-        a = """a = 12"""
-        self.check(b, a)
-
-    def test_long_hex(self):
-        b = """b = 0x12l"""
-        a = """b = 0x12"""
-        self.check(b, a)
-
-    def test_comments_and_spacing(self):
-        b = """b =   0x12L"""
-        a = """b =   0x12"""
-        self.check(b, a)
-
-        b = """b = 0755 # spam"""
-        a = """b = 0o755 # spam"""
-        self.check(b, a)
-
-    def test_unchanged_int(self):
-        s = """5"""
-        self.unchanged(s)
-
-    def test_unchanged_float(self):
-        s = """5.0"""
-        self.unchanged(s)
-
-    def test_unchanged_octal(self):
-        s = """0o755"""
-        self.unchanged(s)
-
-    def test_unchanged_hex(self):
-        s = """0xABC"""
-        self.unchanged(s)
-
-    def test_unchanged_exp(self):
-        s = """5.0e10"""
-        self.unchanged(s)
-
-    def test_unchanged_complex_int(self):
-        s = """5 + 4j"""
-        self.unchanged(s)
-
-    def test_unchanged_complex_float(self):
-        s = """5.4 + 4.9j"""
-        self.unchanged(s)
-
-    def test_unchanged_complex_bare(self):
-        s = """4j"""
-        self.unchanged(s)
-        s = """4.4j"""
-        self.unchanged(s)
-
-class Test_renames(FixerTestCase):
-    fixer = "renames"
-
-    modules = {"sys":  ("maxint", "maxsize"),
-              }
-
-    def test_import_from(self):
-        for mod, (old, new) in self.modules.items():
-            b = "from %s import %s" % (mod, old)
-            a = "from %s import %s" % (mod, new)
-            self.check(b, a)
-
-            s = "from foo import %s" % old
-            self.unchanged(s)
-
-    def test_import_from_as(self):
-        for mod, (old, new) in self.modules.items():
-            b = "from %s import %s as foo_bar" % (mod, old)
-            a = "from %s import %s as foo_bar" % (mod, new)
-            self.check(b, a)
-
-    def test_import_module_usage(self):
-        for mod, (old, new) in self.modules.items():
-            b = """
-                import %s
-                foo(%s, %s.%s)
-                """ % (mod, mod, mod, old)
-            a = """
-                import %s
-                foo(%s, %s.%s)
-                """ % (mod, mod, mod, new)
-            self.check(b, a)
-
-    def XXX_test_from_import_usage(self):
-        # not implemented yet
-        for mod, (old, new) in self.modules.items():
-            b = """
-                from %s import %s
-                foo(%s, %s)
-                """ % (mod, old, mod, old)
-            a = """
-                from %s import %s
-                foo(%s, %s)
-                """ % (mod, new, mod, new)
-            self.check(b, a)
-
-class Test_unicode(FixerTestCase):
-    fixer = "unicode"
-
-    def test_whitespace(self):
-        b = """unicode( x)"""
-        a = """str( x)"""
-        self.check(b, a)
-
-        b = """ unicode(x )"""
-        a = """ str(x )"""
-        self.check(b, a)
-
-        b = """ u'h'"""
-        a = """ 'h'"""
-        self.check(b, a)
-
-    def test_unicode_call(self):
-        b = """unicode(x, y, z)"""
-        a = """str(x, y, z)"""
-        self.check(b, a)
-
-    def test_unichr(self):
-        b = """unichr(u'h')"""
-        a = """chr('h')"""
-        self.check(b, a)
-
-    def test_unicode_literal_1(self):
-        b = '''u"x"'''
-        a = '''"x"'''
-        self.check(b, a)
-
-    def test_unicode_literal_2(self):
-        b = """ur'x'"""
-        a = """r'x'"""
-        self.check(b, a)
-
-    def test_unicode_literal_3(self):
-        b = """UR'''x''' """
-        a = """R'''x''' """
-        self.check(b, a)
-
-class Test_callable(FixerTestCase):
-    fixer = "callable"
-
-    def test_prefix_preservation(self):
-        b = """callable(    x)"""
-        a = """import collections\nisinstance(    x, collections.Callable)"""
-        self.check(b, a)
-
-        b = """if     callable(x): pass"""
-        a = """import collections
-if     isinstance(x, collections.Callable): pass"""
-        self.check(b, a)
-
-    def test_callable_call(self):
-        b = """callable(x)"""
-        a = """import collections\nisinstance(x, collections.Callable)"""
-        self.check(b, a)
-
-    def test_global_import(self):
-        b = """
-def spam(foo):
-    callable(foo)"""[1:]
-        a = """
-import collections
-def spam(foo):
-    isinstance(foo, collections.Callable)"""[1:]
-        self.check(b, a)
-
-        b = """
-import collections
-def spam(foo):
-    callable(foo)"""[1:]
-        # same output if it was already imported
-        self.check(b, a)
-
-        b = """
-from collections import *
-def spam(foo):
-    callable(foo)"""[1:]
-        a = """
-from collections import *
-import collections
-def spam(foo):
-    isinstance(foo, collections.Callable)"""[1:]
-        self.check(b, a)
-
-        b = """
-do_stuff()
-do_some_other_stuff()
-assert callable(do_stuff)"""[1:]
-        a = """
-import collections
-do_stuff()
-do_some_other_stuff()
-assert isinstance(do_stuff, collections.Callable)"""[1:]
-        self.check(b, a)
-
-        b = """
-if isinstance(do_stuff, Callable):
-    assert callable(do_stuff)
-    do_stuff(do_stuff)
-    if not callable(do_stuff):
-        exit(1)
-    else:
-        assert callable(do_stuff)
-else:
-    assert not callable(do_stuff)"""[1:]
-        a = """
-import collections
-if isinstance(do_stuff, Callable):
-    assert isinstance(do_stuff, collections.Callable)
-    do_stuff(do_stuff)
-    if not isinstance(do_stuff, collections.Callable):
-        exit(1)
-    else:
-        assert isinstance(do_stuff, collections.Callable)
-else:
-    assert not isinstance(do_stuff, collections.Callable)"""[1:]
-        self.check(b, a)
-
-    def test_callable_should_not_change(self):
-        a = """callable(*x)"""
-        self.unchanged(a)
-
-        a = """callable(x, y)"""
-        self.unchanged(a)
-
-        a = """callable(x, kw=y)"""
-        self.unchanged(a)
-
-        a = """callable()"""
-        self.unchanged(a)
-
-class Test_filter(FixerTestCase):
-    fixer = "filter"
-
-    def test_prefix_preservation(self):
-        b = """x =   filter(    foo,     'abc'   )"""
-        a = """x =   list(filter(    foo,     'abc'   ))"""
-        self.check(b, a)
-
-        b = """x =   filter(  None , 'abc'  )"""
-        a = """x =   [_f for _f in 'abc' if _f]"""
-        self.check(b, a)
-
-    def test_filter_basic(self):
-        b = """x = filter(None, 'abc')"""
-        a = """x = [_f for _f in 'abc' if _f]"""
-        self.check(b, a)
-
-        b = """x = len(filter(f, 'abc'))"""
-        a = """x = len(list(filter(f, 'abc')))"""
-        self.check(b, a)
-
-        b = """x = filter(lambda x: x%2 == 0, range(10))"""
-        a = """x = [x for x in range(10) if x%2 == 0]"""
-        self.check(b, a)
-
-        # Note the parens around x
-        b = """x = filter(lambda (x): x%2 == 0, range(10))"""
-        a = """x = [x for x in range(10) if x%2 == 0]"""
-        self.check(b, a)
-
-        # XXX This (rare) case is not supported
-##         b = """x = filter(f, 'abc')[0]"""
-##         a = """x = list(filter(f, 'abc'))[0]"""
-##         self.check(b, a)
-
-    def test_filter_nochange(self):
-        a = """b.join(filter(f, 'abc'))"""
-        self.unchanged(a)
-        a = """(a + foo(5)).join(filter(f, 'abc'))"""
-        self.unchanged(a)
-        a = """iter(filter(f, 'abc'))"""
-        self.unchanged(a)
-        a = """list(filter(f, 'abc'))"""
-        self.unchanged(a)
-        a = """list(filter(f, 'abc'))[0]"""
-        self.unchanged(a)
-        a = """set(filter(f, 'abc'))"""
-        self.unchanged(a)
-        a = """set(filter(f, 'abc')).pop()"""
-        self.unchanged(a)
-        a = """tuple(filter(f, 'abc'))"""
-        self.unchanged(a)
-        a = """any(filter(f, 'abc'))"""
-        self.unchanged(a)
-        a = """all(filter(f, 'abc'))"""
-        self.unchanged(a)
-        a = """sum(filter(f, 'abc'))"""
-        self.unchanged(a)
-        a = """sorted(filter(f, 'abc'))"""
-        self.unchanged(a)
-        a = """sorted(filter(f, 'abc'), key=blah)"""
-        self.unchanged(a)
-        a = """sorted(filter(f, 'abc'), key=blah)[0]"""
-        self.unchanged(a)
-        a = """enumerate(filter(f, 'abc'))"""
-        self.unchanged(a)
-        a = """enumerate(filter(f, 'abc'), start=1)"""
-        self.unchanged(a)
-        a = """for i in filter(f, 'abc'): pass"""
-        self.unchanged(a)
-        a = """[x for x in filter(f, 'abc')]"""
-        self.unchanged(a)
-        a = """(x for x in filter(f, 'abc'))"""
-        self.unchanged(a)
-
-    def test_future_builtins(self):
-        a = "from future_builtins import spam, filter; filter(f, 'ham')"
-        self.unchanged(a)
-
-        b = """from future_builtins import spam; x = filter(f, 'abc')"""
-        a = """from future_builtins import spam; x = list(filter(f, 'abc'))"""
-        self.check(b, a)
-
-        a = "from future_builtins import *; filter(f, 'ham')"
-        self.unchanged(a)
-
-class Test_map(FixerTestCase):
-    fixer = "map"
-
-    def check(self, b, a):
-        self.unchanged("from future_builtins import map; " + b, a)
-        super(Test_map, self).check(b, a)
-
-    def test_prefix_preservation(self):
-        b = """x =    map(   f,    'abc'   )"""
-        a = """x =    list(map(   f,    'abc'   ))"""
-        self.check(b, a)
-
-    def test_trailing_comment(self):
-        b = """x = map(f, 'abc')   #   foo"""
-        a = """x = list(map(f, 'abc'))   #   foo"""
-        self.check(b, a)
-
-    def test_None_with_multiple_arguments(self):
-        s = """x = map(None, a, b, c)"""
-        self.warns_unchanged(s, "cannot convert map(None, ...) with "
-                             "multiple arguments")
-
-    def test_map_basic(self):
-        b = """x = map(f, 'abc')"""
-        a = """x = list(map(f, 'abc'))"""
-        self.check(b, a)
-
-        b = """x = len(map(f, 'abc', 'def'))"""
-        a = """x = len(list(map(f, 'abc', 'def')))"""
-        self.check(b, a)
-
-        b = """x = map(None, 'abc')"""
-        a = """x = list('abc')"""
-        self.check(b, a)
-
-        b = """x = map(lambda x: x+1, range(4))"""
-        a = """x = [x+1 for x in range(4)]"""
-        self.check(b, a)
-
-        # Note the parens around x
-        b = """x = map(lambda (x): x+1, range(4))"""
-        a = """x = [x+1 for x in range(4)]"""
-        self.check(b, a)
-
-        b = """
-            foo()
-            # foo
-            map(f, x)
-            """
-        a = """
-            foo()
-            # foo
-            list(map(f, x))
-            """
-        self.warns(b, a, "You should use a for loop here")
-
-        # XXX This (rare) case is not supported
-##         b = """x = map(f, 'abc')[0]"""
-##         a = """x = list(map(f, 'abc'))[0]"""
-##         self.check(b, a)
-
-    def test_map_nochange(self):
-        a = """b.join(map(f, 'abc'))"""
-        self.unchanged(a)
-        a = """(a + foo(5)).join(map(f, 'abc'))"""
-        self.unchanged(a)
-        a = """iter(map(f, 'abc'))"""
-        self.unchanged(a)
-        a = """list(map(f, 'abc'))"""
-        self.unchanged(a)
-        a = """list(map(f, 'abc'))[0]"""
-        self.unchanged(a)
-        a = """set(map(f, 'abc'))"""
-        self.unchanged(a)
-        a = """set(map(f, 'abc')).pop()"""
-        self.unchanged(a)
-        a = """tuple(map(f, 'abc'))"""
-        self.unchanged(a)
-        a = """any(map(f, 'abc'))"""
-        self.unchanged(a)
-        a = """all(map(f, 'abc'))"""
-        self.unchanged(a)
-        a = """sum(map(f, 'abc'))"""
-        self.unchanged(a)
-        a = """sorted(map(f, 'abc'))"""
-        self.unchanged(a)
-        a = """sorted(map(f, 'abc'), key=blah)"""
-        self.unchanged(a)
-        a = """sorted(map(f, 'abc'), key=blah)[0]"""
-        self.unchanged(a)
-        a = """enumerate(map(f, 'abc'))"""
-        self.unchanged(a)
-        a = """enumerate(map(f, 'abc'), start=1)"""
-        self.unchanged(a)
-        a = """for i in map(f, 'abc'): pass"""
-        self.unchanged(a)
-        a = """[x for x in map(f, 'abc')]"""
-        self.unchanged(a)
-        a = """(x for x in map(f, 'abc'))"""
-        self.unchanged(a)
-
-    def test_future_builtins(self):
-        a = "from future_builtins import spam, map, eggs; map(f, 'ham')"
-        self.unchanged(a)
-
-        b = """from future_builtins import spam, eggs; x = map(f, 'abc')"""
-        a = """from future_builtins import spam, eggs; x = list(map(f, 'abc'))"""
-        self.check(b, a)
-
-        a = "from future_builtins import *; map(f, 'ham')"
-        self.unchanged(a)
-
-class Test_zip(FixerTestCase):
-    fixer = "zip"
-
-    def check(self, b, a):
-        self.unchanged("from future_builtins import zip; " + b, a)
-        super(Test_zip, self).check(b, a)
-
-    def test_zip_basic(self):
-        b = """x = zip(a, b, c)"""
-        a = """x = list(zip(a, b, c))"""
-        self.check(b, a)
-
-        b = """x = len(zip(a, b))"""
-        a = """x = len(list(zip(a, b)))"""
-        self.check(b, a)
-
-    def test_zip_nochange(self):
-        a = """b.join(zip(a, b))"""
-        self.unchanged(a)
-        a = """(a + foo(5)).join(zip(a, b))"""
-        self.unchanged(a)
-        a = """iter(zip(a, b))"""
-        self.unchanged(a)
-        a = """list(zip(a, b))"""
-        self.unchanged(a)
-        a = """list(zip(a, b))[0]"""
-        self.unchanged(a)
-        a = """set(zip(a, b))"""
-        self.unchanged(a)
-        a = """set(zip(a, b)).pop()"""
-        self.unchanged(a)
-        a = """tuple(zip(a, b))"""
-        self.unchanged(a)
-        a = """any(zip(a, b))"""
-        self.unchanged(a)
-        a = """all(zip(a, b))"""
-        self.unchanged(a)
-        a = """sum(zip(a, b))"""
-        self.unchanged(a)
-        a = """sorted(zip(a, b))"""
-        self.unchanged(a)
-        a = """sorted(zip(a, b), key=blah)"""
-        self.unchanged(a)
-        a = """sorted(zip(a, b), key=blah)[0]"""
-        self.unchanged(a)
-        a = """enumerate(zip(a, b))"""
-        self.unchanged(a)
-        a = """enumerate(zip(a, b), start=1)"""
-        self.unchanged(a)
-        a = """for i in zip(a, b): pass"""
-        self.unchanged(a)
-        a = """[x for x in zip(a, b)]"""
-        self.unchanged(a)
-        a = """(x for x in zip(a, b))"""
-        self.unchanged(a)
-
-    def test_future_builtins(self):
-        a = "from future_builtins import spam, zip, eggs; zip(a, b)"
-        self.unchanged(a)
-
-        b = """from future_builtins import spam, eggs; x = zip(a, b)"""
-        a = """from future_builtins import spam, eggs; x = list(zip(a, b))"""
-        self.check(b, a)
-
-        a = "from future_builtins import *; zip(a, b)"
-        self.unchanged(a)
-
-class Test_standarderror(FixerTestCase):
-    fixer = "standarderror"
-
-    def test(self):
-        b = """x =    StandardError()"""
-        a = """x =    Exception()"""
-        self.check(b, a)
-
-        b = """x = StandardError(a, b, c)"""
-        a = """x = Exception(a, b, c)"""
-        self.check(b, a)
-
-        b = """f(2 + StandardError(a, b, c))"""
-        a = """f(2 + Exception(a, b, c))"""
-        self.check(b, a)
-
-class Test_types(FixerTestCase):
-    fixer = "types"
-
-    def test_basic_types_convert(self):
-        b = """types.StringType"""
-        a = """bytes"""
-        self.check(b, a)
-
-        b = """types.DictType"""
-        a = """dict"""
-        self.check(b, a)
-
-        b = """types . IntType"""
-        a = """int"""
-        self.check(b, a)
-
-        b = """types.ListType"""
-        a = """list"""
-        self.check(b, a)
-
-        b = """types.LongType"""
-        a = """int"""
-        self.check(b, a)
-
-        b = """types.NoneType"""
-        a = """type(None)"""
-        self.check(b, a)
-
-class Test_idioms(FixerTestCase):
-    fixer = "idioms"
-
-    def test_while(self):
-        b = """while 1: foo()"""
-        a = """while True: foo()"""
-        self.check(b, a)
-
-        b = """while   1: foo()"""
-        a = """while   True: foo()"""
-        self.check(b, a)
-
-        b = """
-            while 1:
-                foo()
-            """
-        a = """
-            while True:
-                foo()
-            """
-        self.check(b, a)
-
-    def test_while_unchanged(self):
-        s = """while 11: foo()"""
-        self.unchanged(s)
-
-        s = """while 0: foo()"""
-        self.unchanged(s)
-
-        s = """while foo(): foo()"""
-        self.unchanged(s)
-
-        s = """while []: foo()"""
-        self.unchanged(s)
-
-    def test_eq_simple(self):
-        b = """type(x) == T"""
-        a = """isinstance(x, T)"""
-        self.check(b, a)
-
-        b = """if   type(x) == T: pass"""
-        a = """if   isinstance(x, T): pass"""
-        self.check(b, a)
-
-    def test_eq_reverse(self):
-        b = """T == type(x)"""
-        a = """isinstance(x, T)"""
-        self.check(b, a)
-
-        b = """if   T == type(x): pass"""
-        a = """if   isinstance(x, T): pass"""
-        self.check(b, a)
-
-    def test_eq_expression(self):
-        b = """type(x+y) == d.get('T')"""
-        a = """isinstance(x+y, d.get('T'))"""
-        self.check(b, a)
-
-        b = """type(   x  +  y) == d.get('T')"""
-        a = """isinstance(x  +  y, d.get('T'))"""
-        self.check(b, a)
-
-    def test_is_simple(self):
-        b = """type(x) is T"""
-        a = """isinstance(x, T)"""
-        self.check(b, a)
-
-        b = """if   type(x) is T: pass"""
-        a = """if   isinstance(x, T): pass"""
-        self.check(b, a)
-
-    def test_is_reverse(self):
-        b = """T is type(x)"""
-        a = """isinstance(x, T)"""
-        self.check(b, a)
-
-        b = """if   T is type(x): pass"""
-        a = """if   isinstance(x, T): pass"""
-        self.check(b, a)
-
-    def test_is_expression(self):
-        b = """type(x+y) is d.get('T')"""
-        a = """isinstance(x+y, d.get('T'))"""
-        self.check(b, a)
-
-        b = """type(   x  +  y) is d.get('T')"""
-        a = """isinstance(x  +  y, d.get('T'))"""
-        self.check(b, a)
-
-    def test_is_not_simple(self):
-        b = """type(x) is not T"""
-        a = """not isinstance(x, T)"""
-        self.check(b, a)
-
-        b = """if   type(x) is not T: pass"""
-        a = """if   not isinstance(x, T): pass"""
-        self.check(b, a)
-
-    def test_is_not_reverse(self):
-        b = """T is not type(x)"""
-        a = """not isinstance(x, T)"""
-        self.check(b, a)
-
-        b = """if   T is not type(x): pass"""
-        a = """if   not isinstance(x, T): pass"""
-        self.check(b, a)
-
-    def test_is_not_expression(self):
-        b = """type(x+y) is not d.get('T')"""
-        a = """not isinstance(x+y, d.get('T'))"""
-        self.check(b, a)
-
-        b = """type(   x  +  y) is not d.get('T')"""
-        a = """not isinstance(x  +  y, d.get('T'))"""
-        self.check(b, a)
-
-    def test_ne_simple(self):
-        b = """type(x) != T"""
-        a = """not isinstance(x, T)"""
-        self.check(b, a)
-
-        b = """if   type(x) != T: pass"""
-        a = """if   not isinstance(x, T): pass"""
-        self.check(b, a)
-
-    def test_ne_reverse(self):
-        b = """T != type(x)"""
-        a = """not isinstance(x, T)"""
-        self.check(b, a)
-
-        b = """if   T != type(x): pass"""
-        a = """if   not isinstance(x, T): pass"""
-        self.check(b, a)
-
-    def test_ne_expression(self):
-        b = """type(x+y) != d.get('T')"""
-        a = """not isinstance(x+y, d.get('T'))"""
-        self.check(b, a)
-
-        b = """type(   x  +  y) != d.get('T')"""
-        a = """not isinstance(x  +  y, d.get('T'))"""
-        self.check(b, a)
-
-    def test_type_unchanged(self):
-        a = """type(x).__name__"""
-        self.unchanged(a)
-
-    def test_sort_list_call(self):
-        b = """
-            v = list(t)
-            v.sort()
-            foo(v)
-            """
-        a = """
-            v = sorted(t)
-            foo(v)
-            """
-        self.check(b, a)
-
-        b = """
-            v = list(foo(b) + d)
-            v.sort()
-            foo(v)
-            """
-        a = """
-            v = sorted(foo(b) + d)
-            foo(v)
-            """
-        self.check(b, a)
-
-        b = """
-            while x:
-                v = list(t)
-                v.sort()
-                foo(v)
-            """
-        a = """
-            while x:
-                v = sorted(t)
-                foo(v)
-            """
-        self.check(b, a)
-
-        b = """
-            v = list(t)
-            # foo
-            v.sort()
-            foo(v)
-            """
-        a = """
-            v = sorted(t)
-            # foo
-            foo(v)
-            """
-        self.check(b, a)
-
-        b = r"""
-            v = list(   t)
-            v.sort()
-            foo(v)
-            """
-        a = r"""
-            v = sorted(   t)
-            foo(v)
-            """
-        self.check(b, a)
-
-        b = r"""
-            try:
-                m = list(s)
-                m.sort()
-            except: pass
-            """
-
-        a = r"""
-            try:
-                m = sorted(s)
-            except: pass
-            """
-        self.check(b, a)
-
-        b = r"""
-            try:
-                m = list(s)
-                # foo
-                m.sort()
-            except: pass
-            """
-
-        a = r"""
-            try:
-                m = sorted(s)
-                # foo
-            except: pass
-            """
-        self.check(b, a)
-
-        b = r"""
-            m = list(s)
-            # more comments
-            m.sort()"""
-
-        a = r"""
-            m = sorted(s)
-            # more comments"""
-        self.check(b, a)
-
-    def test_sort_simple_expr(self):
-        b = """
-            v = t
-            v.sort()
-            foo(v)
-            """
-        a = """
-            v = sorted(t)
-            foo(v)
-            """
-        self.check(b, a)
-
-        b = """
-            v = foo(b)
-            v.sort()
-            foo(v)
-            """
-        a = """
-            v = sorted(foo(b))
-            foo(v)
-            """
-        self.check(b, a)
-
-        b = """
-            v = b.keys()
-            v.sort()
-            foo(v)
-            """
-        a = """
-            v = sorted(b.keys())
-            foo(v)
-            """
-        self.check(b, a)
-
-        b = """
-            v = foo(b) + d
-            v.sort()
-            foo(v)
-            """
-        a = """
-            v = sorted(foo(b) + d)
-            foo(v)
-            """
-        self.check(b, a)
-
-        b = """
-            while x:
-                v = t
-                v.sort()
-                foo(v)
-            """
-        a = """
-            while x:
-                v = sorted(t)
-                foo(v)
-            """
-        self.check(b, a)
-
-        b = """
-            v = t
-            # foo
-            v.sort()
-            foo(v)
-            """
-        a = """
-            v = sorted(t)
-            # foo
-            foo(v)
-            """
-        self.check(b, a)
-
-        b = r"""
-            v =   t
-            v.sort()
-            foo(v)
-            """
-        a = r"""
-            v =   sorted(t)
-            foo(v)
-            """
-        self.check(b, a)
-
-    def test_sort_unchanged(self):
-        s = """
-            v = list(t)
-            w.sort()
-            foo(w)
-            """
-        self.unchanged(s)
-
-        s = """
-            v = list(t)
-            v.sort(u)
-            foo(v)
-            """
-        self.unchanged(s)
-
-class Test_basestring(FixerTestCase):
-    fixer = "basestring"
-
-    def test_basestring(self):
-        b = """isinstance(x, basestring)"""
-        a = """isinstance(x, str)"""
-        self.check(b, a)
-
-class Test_buffer(FixerTestCase):
-    fixer = "buffer"
-
-    def test_buffer(self):
-        b = """x = buffer(y)"""
-        a = """x = memoryview(y)"""
-        self.check(b, a)
-
-    def test_slicing(self):
-        b = """buffer(y)[4:5]"""
-        a = """memoryview(y)[4:5]"""
-        self.check(b, a)
-
-class Test_future(FixerTestCase):
-    fixer = "future"
-
-    def test_future(self):
-        b = """from __future__ import braces"""
-        a = """"""
-        self.check(b, a)
-
-        b = """# comment\nfrom __future__ import braces"""
-        a = """# comment\n"""
-        self.check(b, a)
-
-        b = """from __future__ import braces\n# comment"""
-        a = """\n# comment"""
-        self.check(b, a)
-
-    def test_run_order(self):
-        self.assert_runs_after('print')
-
-class Test_itertools(FixerTestCase):
-    fixer = "itertools"
-
-    def checkall(self, before, after):
-        # Because we need to check with and without the itertools prefix
-        # and on each of the three functions, these loops make it all
-        # much easier
-        for i in ('itertools.', ''):
-            for f in ('map', 'filter', 'zip'):
-                b = before %(i+'i'+f)
-                a = after %(f)
-                self.check(b, a)
-
-    def test_0(self):
-        # A simple example -- test_1 covers exactly the same thing,
-        # but it's not quite as clear.
-        b = "itertools.izip(a, b)"
-        a = "zip(a, b)"
-        self.check(b, a)
-
-    def test_1(self):
-        b = """%s(f, a)"""
-        a = """%s(f, a)"""
-        self.checkall(b, a)
-
-    def test_qualified(self):
-        b = """itertools.ifilterfalse(a, b)"""
-        a = """itertools.filterfalse(a, b)"""
-        self.check(b, a)
-
-        b = """itertools.izip_longest(a, b)"""
-        a = """itertools.zip_longest(a, b)"""
-        self.check(b, a)
-
-    def test_2(self):
-        b = """ifilterfalse(a, b)"""
-        a = """filterfalse(a, b)"""
-        self.check(b, a)
-
-        b = """izip_longest(a, b)"""
-        a = """zip_longest(a, b)"""
-        self.check(b, a)
-
-    def test_space_1(self):
-        b = """    %s(f, a)"""
-        a = """    %s(f, a)"""
-        self.checkall(b, a)
-
-    def test_space_2(self):
-        b = """    itertools.ifilterfalse(a, b)"""
-        a = """    itertools.filterfalse(a, b)"""
-        self.check(b, a)
-
-        b = """    itertools.izip_longest(a, b)"""
-        a = """    itertools.zip_longest(a, b)"""
-        self.check(b, a)
-
-    def test_run_order(self):
-        self.assert_runs_after('map', 'zip', 'filter')
-
-
-class Test_itertools_imports(FixerTestCase):
-    fixer = 'itertools_imports'
-
-    def test_reduced(self):
-        b = "from itertools import imap, izip, foo"
-        a = "from itertools import foo"
-        self.check(b, a)
-
-        b = "from itertools import bar, imap, izip, foo"
-        a = "from itertools import bar, foo"
-        self.check(b, a)
-
-        b = "from itertools import chain, imap, izip"
-        a = "from itertools import chain"
-        self.check(b, a)
-
-    def test_comments(self):
-        b = "#foo\nfrom itertools import imap, izip"
-        a = "#foo\n"
-        self.check(b, a)
-
-    def test_none(self):
-        b = "from itertools import imap, izip"
-        a = ""
-        self.check(b, a)
-
-        b = "from itertools import izip"
-        a = ""
-        self.check(b, a)
-
-    def test_import_as(self):
-        b = "from itertools import izip, bar as bang, imap"
-        a = "from itertools import bar as bang"
-        self.check(b, a)
-
-        b = "from itertools import izip as _zip, imap, bar"
-        a = "from itertools import bar"
-        self.check(b, a)
-
-        b = "from itertools import imap as _map"
-        a = ""
-        self.check(b, a)
-
-        b = "from itertools import imap as _map, izip as _zip"
-        a = ""
-        self.check(b, a)
-
-        s = "from itertools import bar as bang"
-        self.unchanged(s)
-
-    def test_ifilter_and_zip_longest(self):
-        for name in "filterfalse", "zip_longest":
-            b = "from itertools import i%s" % (name,)
-            a = "from itertools import %s" % (name,)
-            self.check(b, a)
-
-            b = "from itertools import imap, i%s, foo" % (name,)
-            a = "from itertools import %s, foo" % (name,)
-            self.check(b, a)
-
-            b = "from itertools import bar, i%s, foo" % (name,)
-            a = "from itertools import bar, %s, foo" % (name,)
-            self.check(b, a)
-
-    def test_import_star(self):
-        s = "from itertools import *"
-        self.unchanged(s)
-
-
-    def test_unchanged(self):
-        s = "from itertools import foo"
-        self.unchanged(s)
-
-
-class Test_import(FixerTestCase):
-    fixer = "import"
-
-    def setUp(self):
-        super(Test_import, self).setUp()
-        # Need to replace fix_import's exists method
-        # so we can check that it's doing the right thing
-        self.files_checked = []
-        self.present_files = set()
-        self.always_exists = True
-        def fake_exists(name):
-            self.files_checked.append(name)
-            return self.always_exists or (name in self.present_files)
-
-        from lib2to3.fixes import fix_import
-        fix_import.exists = fake_exists
-
-    def tearDown(self):
-        from lib2to3.fixes import fix_import
-        fix_import.exists = os.path.exists
-
-    def check_both(self, b, a):
-        self.always_exists = True
-        super(Test_import, self).check(b, a)
-        self.always_exists = False
-        super(Test_import, self).unchanged(b)
-
-    def test_files_checked(self):
-        def p(path):
-            # Takes a unix path and returns a path with correct separators
-            return os.path.pathsep.join(path.split("/"))
-
-        self.always_exists = False
-        self.present_files = set(['__init__.py'])
-        expected_extensions = ('.py', os.path.sep, '.pyc', '.so', '.sl', '.pyd')
-        names_to_test = (p("/spam/eggs.py"), "ni.py", p("../../shrubbery.py"))
-
-        for name in names_to_test:
-            self.files_checked = []
-            self.filename = name
-            self.unchanged("import jam")
-
-            if os.path.dirname(name):
-                name = os.path.dirname(name) + '/jam'
-            else:
-                name = 'jam'
-            expected_checks = set(name + ext for ext in expected_extensions)
-            expected_checks.add("__init__.py")
-
-            self.assertEqual(set(self.files_checked), expected_checks)
-
-    def test_not_in_package(self):
-        s = "import bar"
-        self.always_exists = False
-        self.present_files = set(["bar.py"])
-        self.unchanged(s)
-
-    def test_with_absolute_import_enabled(self):
-        s = "from __future__ import absolute_import\nimport bar"
-        self.always_exists = False
-        self.present_files = set(["__init__.py", "bar.py"])
-        self.unchanged(s)
-
-    def test_in_package(self):
-        b = "import bar"
-        a = "from . import bar"
-        self.always_exists = False
-        self.present_files = set(["__init__.py", "bar.py"])
-        self.check(b, a)
-
-    def test_import_from_package(self):
-        b = "import bar"
-        a = "from . import bar"
-        self.always_exists = False
-        self.present_files = set(["__init__.py", "bar" + os.path.sep])
-        self.check(b, a)
-
-    def test_already_relative_import(self):
-        s = "from . import bar"
-        self.unchanged(s)
-
-    def test_comments_and_indent(self):
-        b = "import bar # Foo"
-        a = "from . import bar # Foo"
-        self.check(b, a)
-
-    def test_from(self):
-        b = "from foo import bar, baz"
-        a = "from .foo import bar, baz"
-        self.check_both(b, a)
-
-        b = "from foo import bar"
-        a = "from .foo import bar"
-        self.check_both(b, a)
-
-        b = "from foo import (bar, baz)"
-        a = "from .foo import (bar, baz)"
-        self.check_both(b, a)
-
-    def test_dotted_from(self):
-        b = "from green.eggs import ham"
-        a = "from .green.eggs import ham"
-        self.check_both(b, a)
-
-    def test_from_as(self):
-        b = "from green.eggs import ham as spam"
-        a = "from .green.eggs import ham as spam"
-        self.check_both(b, a)
-
-    def test_import(self):
-        b = "import foo"
-        a = "from . import foo"
-        self.check_both(b, a)
-
-        b = "import foo, bar"
-        a = "from . import foo, bar"
-        self.check_both(b, a)
-
-        b = "import foo, bar, x"
-        a = "from . import foo, bar, x"
-        self.check_both(b, a)
-
-        b = "import x, y, z"
-        a = "from . import x, y, z"
-        self.check_both(b, a)
-
-    def test_import_as(self):
-        b = "import foo as x"
-        a = "from . import foo as x"
-        self.check_both(b, a)
-
-        b = "import a as b, b as c, c as d"
-        a = "from . import a as b, b as c, c as d"
-        self.check_both(b, a)
-
-    def test_local_and_absolute(self):
-        self.always_exists = False
-        self.present_files = set(["foo.py", "__init__.py"])
-
-        s = "import foo, bar"
-        self.warns_unchanged(s, "absolute and local imports together")
-
-    def test_dotted_import(self):
-        b = "import foo.bar"
-        a = "from . import foo.bar"
-        self.check_both(b, a)
-
-    def test_dotted_import_as(self):
-        b = "import foo.bar as bang"
-        a = "from . import foo.bar as bang"
-        self.check_both(b, a)
-
-    def test_prefix(self):
-        b = """
-        # prefix
-        import foo.bar
-        """
-        a = """
-        # prefix
-        from . import foo.bar
-        """
-        self.check_both(b, a)
-
-
-class Test_set_literal(FixerTestCase):
-
-    fixer = "set_literal"
-
-    def test_basic(self):
-        b = """set([1, 2, 3])"""
-        a = """{1, 2, 3}"""
-        self.check(b, a)
-
-        b = """set((1, 2, 3))"""
-        a = """{1, 2, 3}"""
-        self.check(b, a)
-
-        b = """set((1,))"""
-        a = """{1}"""
-        self.check(b, a)
-
-        b = """set([1])"""
-        self.check(b, a)
-
-        b = """set((a, b))"""
-        a = """{a, b}"""
-        self.check(b, a)
-
-        b = """set([a, b])"""
-        self.check(b, a)
-
-        b = """set((a*234, f(args=23)))"""
-        a = """{a*234, f(args=23)}"""
-        self.check(b, a)
-
-        b = """set([a*23, f(23)])"""
-        a = """{a*23, f(23)}"""
-        self.check(b, a)
-
-        b = """set([a-234**23])"""
-        a = """{a-234**23}"""
-        self.check(b, a)
-
-    def test_listcomps(self):
-        b = """set([x for x in y])"""
-        a = """{x for x in y}"""
-        self.check(b, a)
-
-        b = """set([x for x in y if x == m])"""
-        a = """{x for x in y if x == m}"""
-        self.check(b, a)
-
-        b = """set([x for x in y for a in b])"""
-        a = """{x for x in y for a in b}"""
-        self.check(b, a)
-
-        b = """set([f(x) - 23 for x in y])"""
-        a = """{f(x) - 23 for x in y}"""
-        self.check(b, a)
-
-    def test_whitespace(self):
-        b = """set( [1, 2])"""
-        a = """{1, 2}"""
-        self.check(b, a)
-
-        b = """set([1 ,  2])"""
-        a = """{1 ,  2}"""
-        self.check(b, a)
-
-        b = """set([ 1 ])"""
-        a = """{ 1 }"""
-        self.check(b, a)
-
-        b = """set( [1] )"""
-        a = """{1}"""
-        self.check(b, a)
-
-        b = """set([  1,  2  ])"""
-        a = """{  1,  2  }"""
-        self.check(b, a)
-
-        b = """set([x  for x in y ])"""
-        a = """{x  for x in y }"""
-        self.check(b, a)
-
-        b = """set(
-                   [1, 2]
-               )
-            """
-        a = """{1, 2}\n"""
-        self.check(b, a)
-
-    def test_comments(self):
-        b = """set((1, 2)) # Hi"""
-        a = """{1, 2} # Hi"""
-        self.check(b, a)
-
-        # This isn't optimal behavior, but the fixer is optional.
-        b = """
-            # Foo
-            set( # Bar
-               (1, 2)
-            )
-            """
-        a = """
-            # Foo
-            {1, 2}
-            """
-        self.check(b, a)
-
-    def test_unchanged(self):
-        s = """set()"""
-        self.unchanged(s)
-
-        s = """set(a)"""
-        self.unchanged(s)
-
-        s = """set(a, b, c)"""
-        self.unchanged(s)
-
-        # Don't transform generators because they might have to be lazy.
-        s = """set(x for x in y)"""
-        self.unchanged(s)
-
-        s = """set(x for x in y if z)"""
-        self.unchanged(s)
-
-        s = """set(a*823-23**2 + f(23))"""
-        self.unchanged(s)
-
-
-class Test_sys_exc(FixerTestCase):
-    fixer = "sys_exc"
-
-    def test_0(self):
-        b = "sys.exc_type"
-        a = "sys.exc_info()[0]"
-        self.check(b, a)
-
-    def test_1(self):
-        b = "sys.exc_value"
-        a = "sys.exc_info()[1]"
-        self.check(b, a)
-
-    def test_2(self):
-        b = "sys.exc_traceback"
-        a = "sys.exc_info()[2]"
-        self.check(b, a)
-
-    def test_3(self):
-        b = "sys.exc_type # Foo"
-        a = "sys.exc_info()[0] # Foo"
-        self.check(b, a)
-
-    def test_4(self):
-        b = "sys.  exc_type"
-        a = "sys.  exc_info()[0]"
-        self.check(b, a)
-
-    def test_5(self):
-        b = "sys  .exc_type"
-        a = "sys  .exc_info()[0]"
-        self.check(b, a)
-
-
-class Test_paren(FixerTestCase):
-    fixer = "paren"
-
-    def test_0(self):
-        b = """[i for i in 1, 2 ]"""
-        a = """[i for i in (1, 2) ]"""
-        self.check(b, a)
-
-    def test_1(self):
-        b = """[i for i in 1, 2, ]"""
-        a = """[i for i in (1, 2,) ]"""
-        self.check(b, a)
-
-    def test_2(self):
-        b = """[i for i  in     1, 2 ]"""
-        a = """[i for i  in     (1, 2) ]"""
-        self.check(b, a)
-
-    def test_3(self):
-        b = """[i for i in 1, 2 if i]"""
-        a = """[i for i in (1, 2) if i]"""
-        self.check(b, a)
-
-    def test_4(self):
-        b = """[i for i in 1,    2    ]"""
-        a = """[i for i in (1,    2)    ]"""
-        self.check(b, a)
-
-    def test_5(self):
-        b = """(i for i in 1, 2)"""
-        a = """(i for i in (1, 2))"""
-        self.check(b, a)
-
-    def test_6(self):
-        b = """(i for i in 1   ,2   if i)"""
-        a = """(i for i in (1   ,2)   if i)"""
-        self.check(b, a)
-
-    def test_unchanged_0(self):
-        s = """[i for i in (1, 2)]"""
-        self.unchanged(s)
-
-    def test_unchanged_1(self):
-        s = """[i for i in foo()]"""
-        self.unchanged(s)
-
-    def test_unchanged_2(self):
-        s = """[i for i in (1, 2) if nothing]"""
-        self.unchanged(s)
-
-    def test_unchanged_3(self):
-        s = """(i for i in (1, 2))"""
-        self.unchanged(s)
-
-    def test_unchanged_4(self):
-        s = """[i for i in m]"""
-        self.unchanged(s)
-
-class Test_metaclass(FixerTestCase):
-
-    fixer = 'metaclass'
-
-    def test_unchanged(self):
-        self.unchanged("class X(): pass")
-        self.unchanged("class X(object): pass")
-        self.unchanged("class X(object1, object2): pass")
-        self.unchanged("class X(object1, object2, object3): pass")
-        self.unchanged("class X(metaclass=Meta): pass")
-        self.unchanged("class X(b, arg=23, metclass=Meta): pass")
-        self.unchanged("class X(b, arg=23, metaclass=Meta, other=42): pass")
-
-        s = """
-        class X:
-            def __metaclass__(self): pass
-        """
-        self.unchanged(s)
-
-        s = """
-        class X:
-            a[23] = 74
-        """
-        self.unchanged(s)
-
-    def test_comments(self):
-        b = """
-        class X:
-            # hi
-            __metaclass__ = AppleMeta
-        """
-        a = """
-        class X(metaclass=AppleMeta):
-            # hi
-            pass
-        """
-        self.check(b, a)
-
-        b = """
-        class X:
-            __metaclass__ = Meta
-            # Bedtime!
-        """
-        a = """
-        class X(metaclass=Meta):
-            pass
-            # Bedtime!
-        """
-        self.check(b, a)
-
-    def test_meta(self):
-        # no-parent class, odd body
-        b = """
-        class X():
-            __metaclass__ = Q
-            pass
-        """
-        a = """
-        class X(metaclass=Q):
-            pass
-        """
-        self.check(b, a)
-
-        # one parent class, no body
-        b = """class X(object): __metaclass__ = Q"""
-        a = """class X(object, metaclass=Q): pass"""
-        self.check(b, a)
-
-
-        # one parent, simple body
-        b = """
-        class X(object):
-            __metaclass__ = Meta
-            bar = 7
-        """
-        a = """
-        class X(object, metaclass=Meta):
-            bar = 7
-        """
-        self.check(b, a)
-
-        b = """
-        class X:
-            __metaclass__ = Meta; x = 4; g = 23
-        """
-        a = """
-        class X(metaclass=Meta):
-            x = 4; g = 23
-        """
-        self.check(b, a)
-
-        # one parent, simple body, __metaclass__ last
-        b = """
-        class X(object):
-            bar = 7
-            __metaclass__ = Meta
-        """
-        a = """
-        class X(object, metaclass=Meta):
-            bar = 7
-        """
-        self.check(b, a)
-
-        # redefining __metaclass__
-        b = """
-        class X():
-            __metaclass__ = A
-            __metaclass__ = B
-            bar = 7
-        """
-        a = """
-        class X(metaclass=B):
-            bar = 7
-        """
-        self.check(b, a)
-
-        # multiple inheritance, simple body
-        b = """
-        class X(clsA, clsB):
-            __metaclass__ = Meta
-            bar = 7
-        """
-        a = """
-        class X(clsA, clsB, metaclass=Meta):
-            bar = 7
-        """
-        self.check(b, a)
-
-        # keywords in the class statement
-        b = """class m(a, arg=23): __metaclass__ = Meta"""
-        a = """class m(a, arg=23, metaclass=Meta): pass"""
-        self.check(b, a)
-
-        b = """
-        class X(expression(2 + 4)):
-            __metaclass__ = Meta
-        """
-        a = """
-        class X(expression(2 + 4), metaclass=Meta):
-            pass
-        """
-        self.check(b, a)
-
-        b = """
-        class X(expression(2 + 4), x**4):
-            __metaclass__ = Meta
-        """
-        a = """
-        class X(expression(2 + 4), x**4, metaclass=Meta):
-            pass
-        """
-        self.check(b, a)
-
-        b = """
-        class X:
-            __metaclass__ = Meta
-            save.py = 23
-        """
-        a = """
-        class X(metaclass=Meta):
-            save.py = 23
-        """
-        self.check(b, a)
-
-
-class Test_getcwdu(FixerTestCase):
-
-    fixer = 'getcwdu'
-
-    def test_basic(self):
-        b = """os.getcwdu"""
-        a = """os.getcwd"""
-        self.check(b, a)
-
-        b = """os.getcwdu()"""
-        a = """os.getcwd()"""
-        self.check(b, a)
-
-        b = """meth = os.getcwdu"""
-        a = """meth = os.getcwd"""
-        self.check(b, a)
-
-        b = """os.getcwdu(args)"""
-        a = """os.getcwd(args)"""
-        self.check(b, a)
-
-    def test_comment(self):
-        b = """os.getcwdu() # Foo"""
-        a = """os.getcwd() # Foo"""
-        self.check(b, a)
-
-    def test_unchanged(self):
-        s = """os.getcwd()"""
-        self.unchanged(s)
-
-        s = """getcwdu()"""
-        self.unchanged(s)
-
-        s = """os.getcwdb()"""
-        self.unchanged(s)
-
-    def test_indentation(self):
-        b = """
-            if 1:
-                os.getcwdu()
-            """
-        a = """
-            if 1:
-                os.getcwd()
-            """
-        self.check(b, a)
-
-    def test_multilation(self):
-        b = """os .getcwdu()"""
-        a = """os .getcwd()"""
-        self.check(b, a)
-
-        b = """os.  getcwdu"""
-        a = """os.  getcwd"""
-        self.check(b, a)
-
-        b = """os.getcwdu (  )"""
-        a = """os.getcwd (  )"""
-        self.check(b, a)
-
-
-class Test_operator(FixerTestCase):
-
-    fixer = "operator"
-
-    def test_operator_isCallable(self):
-        b = "operator.isCallable(x)"
-        a = "hasattr(x, '__call__')"
-        self.check(b, a)
-
-    def test_operator_sequenceIncludes(self):
-        b = "operator.sequenceIncludes(x, y)"
-        a = "operator.contains(x, y)"
-        self.check(b, a)
-
-        b = "operator .sequenceIncludes(x, y)"
-        a = "operator .contains(x, y)"
-        self.check(b, a)
-
-        b = "operator.  sequenceIncludes(x, y)"
-        a = "operator.  contains(x, y)"
-        self.check(b, a)
-
-    def test_operator_isSequenceType(self):
-        b = "operator.isSequenceType(x)"
-        a = "import collections\nisinstance(x, collections.Sequence)"
-        self.check(b, a)
-
-    def test_operator_isMappingType(self):
-        b = "operator.isMappingType(x)"
-        a = "import collections\nisinstance(x, collections.Mapping)"
-        self.check(b, a)
-
-    def test_operator_isNumberType(self):
-        b = "operator.isNumberType(x)"
-        a = "import numbers\nisinstance(x, numbers.Number)"
-        self.check(b, a)
-
-    def test_operator_repeat(self):
-        b = "operator.repeat(x, n)"
-        a = "operator.mul(x, n)"
-        self.check(b, a)
-
-        b = "operator .repeat(x, n)"
-        a = "operator .mul(x, n)"
-        self.check(b, a)
-
-        b = "operator.  repeat(x, n)"
-        a = "operator.  mul(x, n)"
-        self.check(b, a)
-
-    def test_operator_irepeat(self):
-        b = "operator.irepeat(x, n)"
-        a = "operator.imul(x, n)"
-        self.check(b, a)
-
-        b = "operator .irepeat(x, n)"
-        a = "operator .imul(x, n)"
-        self.check(b, a)
-
-        b = "operator.  irepeat(x, n)"
-        a = "operator.  imul(x, n)"
-        self.check(b, a)
-
-    def test_bare_isCallable(self):
-        s = "isCallable(x)"
-        t = "You should use 'hasattr(x, '__call__')' here."
-        self.warns_unchanged(s, t)
-
-    def test_bare_sequenceIncludes(self):
-        s = "sequenceIncludes(x, y)"
-        t = "You should use 'operator.contains(x, y)' here."
-        self.warns_unchanged(s, t)
-
-    def test_bare_operator_isSequenceType(self):
-        s = "isSequenceType(z)"
-        t = "You should use 'isinstance(z, collections.Sequence)' here."
-        self.warns_unchanged(s, t)
-
-    def test_bare_operator_isMappingType(self):
-        s = "isMappingType(x)"
-        t = "You should use 'isinstance(x, collections.Mapping)' here."
-        self.warns_unchanged(s, t)
-
-    def test_bare_operator_isNumberType(self):
-        s = "isNumberType(y)"
-        t = "You should use 'isinstance(y, numbers.Number)' here."
-        self.warns_unchanged(s, t)
-
-    def test_bare_operator_repeat(self):
-        s = "repeat(x, n)"
-        t = "You should use 'operator.mul(x, n)' here."
-        self.warns_unchanged(s, t)
-
-    def test_bare_operator_irepeat(self):
-        s = "irepeat(y, 187)"
-        t = "You should use 'operator.imul(y, 187)' here."
-        self.warns_unchanged(s, t)
-
-
-class Test_exitfunc(FixerTestCase):
-
-    fixer = "exitfunc"
-
-    def test_simple(self):
-        b = """
-            import sys
-            sys.exitfunc = my_atexit
-            """
-        a = """
-            import sys
-            import atexit
-            atexit.register(my_atexit)
-            """
-        self.check(b, a)
-
-    def test_names_import(self):
-        b = """
-            import sys, crumbs
-            sys.exitfunc = my_func
-            """
-        a = """
-            import sys, crumbs, atexit
-            atexit.register(my_func)
-            """
-        self.check(b, a)
-
-    def test_complex_expression(self):
-        b = """
-            import sys
-            sys.exitfunc = do(d)/a()+complex(f=23, g=23)*expression
-            """
-        a = """
-            import sys
-            import atexit
-            atexit.register(do(d)/a()+complex(f=23, g=23)*expression)
-            """
-        self.check(b, a)
-
-    def test_comments(self):
-        b = """
-            import sys # Foo
-            sys.exitfunc = f # Blah
-            """
-        a = """
-            import sys
-            import atexit # Foo
-            atexit.register(f) # Blah
-            """
-        self.check(b, a)
-
-        b = """
-            import apples, sys, crumbs, larry # Pleasant comments
-            sys.exitfunc = func
-            """
-        a = """
-            import apples, sys, crumbs, larry, atexit # Pleasant comments
-            atexit.register(func)
-            """
-        self.check(b, a)
-
-    def test_in_a_function(self):
-        b = """
-            import sys
-            def f():
-                sys.exitfunc = func
-            """
-        a = """
-            import sys
-            import atexit
-            def f():
-                atexit.register(func)
-             """
-        self.check(b, a)
-
-    def test_no_sys_import(self):
-        b = """sys.exitfunc = f"""
-        a = """atexit.register(f)"""
-        msg = ("Can't find sys import; Please add an atexit import at the "
-            "top of your file.")
-        self.warns(b, a, msg)
-
-
-    def test_unchanged(self):
-        s = """f(sys.exitfunc)"""
-        self.unchanged(s)
diff --git a/lib/python2.7/lib2to3/tests/test_main.py b/lib/python2.7/lib2to3/tests/test_main.py
deleted file mode 100644
index 7f8b25c..0000000
--- a/lib/python2.7/lib2to3/tests/test_main.py
+++ /dev/null
@@ -1,149 +0,0 @@
-# -*- coding: utf-8 -*-
-import sys
-import codecs
-import logging
-import os
-import re
-import shutil
-import StringIO
-import sys
-import tempfile
-import unittest
-
-from lib2to3 import main
-
-
-TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), "data")
-PY2_TEST_MODULE = os.path.join(TEST_DATA_DIR, "py2_test_grammar.py")
-
-
-class TestMain(unittest.TestCase):
-
-    if not hasattr(unittest.TestCase, 'assertNotRegex'):
-        # This method was only introduced in 3.2.
-        def assertNotRegex(self, text, regexp, msg=None):
-            import re
-            if not hasattr(regexp, 'search'):
-                regexp = re.compile(regexp)
-            if regexp.search(text):
-                self.fail("regexp %s MATCHED text %r" % (regexp.pattern, text))
-
-    def setUp(self):
-        self.temp_dir = None  # tearDown() will rmtree this directory if set.
-
-    def tearDown(self):
-        # Clean up logging configuration down by main.
-        del logging.root.handlers[:]
-        if self.temp_dir:
-            shutil.rmtree(self.temp_dir)
-
-    def run_2to3_capture(self, args, in_capture, out_capture, err_capture):
-        save_stdin = sys.stdin
-        save_stdout = sys.stdout
-        save_stderr = sys.stderr
-        sys.stdin = in_capture
-        sys.stdout = out_capture
-        sys.stderr = err_capture
-        try:
-            return main.main("lib2to3.fixes", args)
-        finally:
-            sys.stdin = save_stdin
-            sys.stdout = save_stdout
-            sys.stderr = save_stderr
-
-    def test_unencodable_diff(self):
-        input_stream = StringIO.StringIO(u"print 'nothing'\nprint u'über'\n")
-        out = StringIO.StringIO()
-        out_enc = codecs.getwriter("ascii")(out)
-        err = StringIO.StringIO()
-        ret = self.run_2to3_capture(["-"], input_stream, out_enc, err)
-        self.assertEqual(ret, 0)
-        output = out.getvalue()
-        self.assertTrue("-print 'nothing'" in output)
-        self.assertTrue("WARNING: couldn't encode <stdin>'s diff for "
-                        "your terminal" in err.getvalue())
-
-    def setup_test_source_trees(self):
-        """Setup a test source tree and output destination tree."""
-        self.temp_dir = tempfile.mkdtemp()  # tearDown() cleans this up.
-        self.py2_src_dir = os.path.join(self.temp_dir, "python2_project")
-        self.py3_dest_dir = os.path.join(self.temp_dir, "python3_project")
-        os.mkdir(self.py2_src_dir)
-        os.mkdir(self.py3_dest_dir)
-        # Turn it into a package with a few files.
-        self.setup_files = []
-        open(os.path.join(self.py2_src_dir, "__init__.py"), "w").close()
-        self.setup_files.append("__init__.py")
-        shutil.copy(PY2_TEST_MODULE, self.py2_src_dir)
-        self.setup_files.append(os.path.basename(PY2_TEST_MODULE))
-        self.trivial_py2_file = os.path.join(self.py2_src_dir, "trivial.py")
-        self.init_py2_file = os.path.join(self.py2_src_dir, "__init__.py")
-        with open(self.trivial_py2_file, "w") as trivial:
-            trivial.write("print 'I need a simple conversion.'")
-        self.setup_files.append("trivial.py")
-
-    def test_filename_changing_on_output_single_dir(self):
-        """2to3 a single directory with a new output dir and suffix."""
-        self.setup_test_source_trees()
-        out = StringIO.StringIO()
-        err = StringIO.StringIO()
-        suffix = "TEST"
-        ret = self.run_2to3_capture(
-                ["-n", "--add-suffix", suffix, "--write-unchanged-files",
-                 "--no-diffs", "--output-dir",
-                 self.py3_dest_dir, self.py2_src_dir],
-                StringIO.StringIO(""), out, err)
-        self.assertEqual(ret, 0)
-        stderr = err.getvalue()
-        self.assertIn(" implies -w.", stderr)
-        self.assertIn(
-                "Output in %r will mirror the input directory %r layout" % (
-                        self.py3_dest_dir, self.py2_src_dir), stderr)
-        self.assertEqual(set(name+suffix for name in self.setup_files),
-                         set(os.listdir(self.py3_dest_dir)))
-        for name in self.setup_files:
-            self.assertIn("Writing converted %s to %s" % (
-                    os.path.join(self.py2_src_dir, name),
-                    os.path.join(self.py3_dest_dir, name+suffix)), stderr)
-        sep = re.escape(os.sep)
-        self.assertRegexpMatches(
-                stderr, r"No changes to .*/__init__\.py".replace("/", sep))
-        self.assertNotRegex(
-                stderr, r"No changes to .*/trivial\.py".replace("/", sep))
-
-    def test_filename_changing_on_output_two_files(self):
-        """2to3 two files in one directory with a new output dir."""
-        self.setup_test_source_trees()
-        err = StringIO.StringIO()
-        py2_files = [self.trivial_py2_file, self.init_py2_file]
-        expected_files = set(os.path.basename(name) for name in py2_files)
-        ret = self.run_2to3_capture(
-                ["-n", "-w", "--write-unchanged-files",
-                 "--no-diffs", "--output-dir", self.py3_dest_dir] + py2_files,
-                StringIO.StringIO(""), StringIO.StringIO(), err)
-        self.assertEqual(ret, 0)
-        stderr = err.getvalue()
-        self.assertIn(
-                "Output in %r will mirror the input directory %r layout" % (
-                        self.py3_dest_dir, self.py2_src_dir), stderr)
-        self.assertEqual(expected_files, set(os.listdir(self.py3_dest_dir)))
-
-    def test_filename_changing_on_output_single_file(self):
-        """2to3 a single file with a new output dir."""
-        self.setup_test_source_trees()
-        err = StringIO.StringIO()
-        ret = self.run_2to3_capture(
-                ["-n", "-w", "--no-diffs", "--output-dir", self.py3_dest_dir,
-                 self.trivial_py2_file],
-                StringIO.StringIO(""), StringIO.StringIO(), err)
-        self.assertEqual(ret, 0)
-        stderr = err.getvalue()
-        self.assertIn(
-                "Output in %r will mirror the input directory %r layout" % (
-                        self.py3_dest_dir, self.py2_src_dir), stderr)
-        self.assertEqual(set([os.path.basename(self.trivial_py2_file)]),
-                         set(os.listdir(self.py3_dest_dir)))
-
-
-if __name__ == '__main__':
-    unittest.main()
diff --git a/lib/python2.7/lib2to3/tests/test_parser.py b/lib/python2.7/lib2to3/tests/test_parser.py
deleted file mode 100644
index 2602381..0000000
--- a/lib/python2.7/lib2to3/tests/test_parser.py
+++ /dev/null
@@ -1,227 +0,0 @@
-"""Test suite for 2to3's parser and grammar files.
-
-This is the place to add tests for changes to 2to3's grammar, such as those
-merging the grammars for Python 2 and 3. In addition to specific tests for
-parts of the grammar we've changed, we also make sure we can parse the
-test_grammar.py files from both Python 2 and Python 3.
-"""
-
-from __future__ import with_statement
-
-# Testing imports
-from . import support
-from .support import driver, test_dir
-
-# Python imports
-import os
-import sys
-
-# Local imports
-from lib2to3.pgen2 import tokenize
-from ..pgen2.parse import ParseError
-from lib2to3.pygram import python_symbols as syms
-
-
-class TestDriver(support.TestCase):
-
-    def test_formfeed(self):
-        s = """print 1\n\x0Cprint 2\n"""
-        t = driver.parse_string(s)
-        self.assertEqual(t.children[0].children[0].type, syms.print_stmt)
-        self.assertEqual(t.children[1].children[0].type, syms.print_stmt)
-
-
-class GrammarTest(support.TestCase):
-    def validate(self, code):
-        support.parse_string(code)
-
-    def invalid_syntax(self, code):
-        try:
-            self.validate(code)
-        except ParseError:
-            pass
-        else:
-            raise AssertionError("Syntax shouldn't have been valid")
-
-
-class TestRaiseChanges(GrammarTest):
-    def test_2x_style_1(self):
-        self.validate("raise")
-
-    def test_2x_style_2(self):
-        self.validate("raise E, V")
-
-    def test_2x_style_3(self):
-        self.validate("raise E, V, T")
-
-    def test_2x_style_invalid_1(self):
-        self.invalid_syntax("raise E, V, T, Z")
-
-    def test_3x_style(self):
-        self.validate("raise E1 from E2")
-
-    def test_3x_style_invalid_1(self):
-        self.invalid_syntax("raise E, V from E1")
-
-    def test_3x_style_invalid_2(self):
-        self.invalid_syntax("raise E from E1, E2")
-
-    def test_3x_style_invalid_3(self):
-        self.invalid_syntax("raise from E1, E2")
-
-    def test_3x_style_invalid_4(self):
-        self.invalid_syntax("raise E from")
-
-
-# Adapated from Python 3's Lib/test/test_grammar.py:GrammarTests.testFuncdef
-class TestFunctionAnnotations(GrammarTest):
-    def test_1(self):
-        self.validate("""def f(x) -> list: pass""")
-
-    def test_2(self):
-        self.validate("""def f(x:int): pass""")
-
-    def test_3(self):
-        self.validate("""def f(*x:str): pass""")
-
-    def test_4(self):
-        self.validate("""def f(**x:float): pass""")
-
-    def test_5(self):
-        self.validate("""def f(x, y:1+2): pass""")
-
-    def test_6(self):
-        self.validate("""def f(a, (b:1, c:2, d)): pass""")
-
-    def test_7(self):
-        self.validate("""def f(a, (b:1, c:2, d), e:3=4, f=5, *g:6): pass""")
-
-    def test_8(self):
-        s = """def f(a, (b:1, c:2, d), e:3=4, f=5,
-                        *g:6, h:7, i=8, j:9=10, **k:11) -> 12: pass"""
-        self.validate(s)
-
-
-class TestExcept(GrammarTest):
-    def test_new(self):
-        s = """
-            try:
-                x
-            except E as N:
-                y"""
-        self.validate(s)
-
-    def test_old(self):
-        s = """
-            try:
-                x
-            except E, N:
-                y"""
-        self.validate(s)
-
-
-# Adapted from Python 3's Lib/test/test_grammar.py:GrammarTests.testAtoms
-class TestSetLiteral(GrammarTest):
-    def test_1(self):
-        self.validate("""x = {'one'}""")
-
-    def test_2(self):
-        self.validate("""x = {'one', 1,}""")
-
-    def test_3(self):
-        self.validate("""x = {'one', 'two', 'three'}""")
-
-    def test_4(self):
-        self.validate("""x = {2, 3, 4,}""")
-
-
-class TestNumericLiterals(GrammarTest):
-    def test_new_octal_notation(self):
-        self.validate("""0o7777777777777""")
-        self.invalid_syntax("""0o7324528887""")
-
-    def test_new_binary_notation(self):
-        self.validate("""0b101010""")
-        self.invalid_syntax("""0b0101021""")
-
-
-class TestClassDef(GrammarTest):
-    def test_new_syntax(self):
-        self.validate("class B(t=7): pass")
-        self.validate("class B(t, *args): pass")
-        self.validate("class B(t, **kwargs): pass")
-        self.validate("class B(t, *args, **kwargs): pass")
-        self.validate("class B(t, y=9, *args, **kwargs): pass")
-
-
-class TestParserIdempotency(support.TestCase):
-
-    """A cut-down version of pytree_idempotency.py."""
-
-    def test_all_project_files(self):
-        if sys.platform.startswith("win"):
-            # XXX something with newlines goes wrong on Windows.
-            return
-        for filepath in support.all_project_files():
-            with open(filepath, "rb") as fp:
-                encoding = tokenize.detect_encoding(fp.readline)[0]
-            self.assertTrue(encoding is not None,
-                            "can't detect encoding for %s" % filepath)
-            with open(filepath, "r") as fp:
-                source = fp.read()
-                source = source.decode(encoding)
-            tree = driver.parse_string(source)
-            new = unicode(tree)
-            if diff(filepath, new, encoding):
-                self.fail("Idempotency failed: %s" % filepath)
-
-    def test_extended_unpacking(self):
-        driver.parse_string("a, *b, c = x\n")
-        driver.parse_string("[*a, b] = x\n")
-        driver.parse_string("(z, *y, w) = m\n")
-        driver.parse_string("for *z, m in d: pass\n")
-
-class TestLiterals(GrammarTest):
-
-    def validate(self, s):
-        driver.parse_string(support.dedent(s) + "\n\n")
-
-    def test_multiline_bytes_literals(self):
-        s = """
-            md5test(b"\xaa" * 80,
-                    (b"Test Using Larger Than Block-Size Key "
-                     b"and Larger Than One Block-Size Data"),
-                    "6f630fad67cda0ee1fb1f562db3aa53e")
-            """
-        self.validate(s)
-
-    def test_multiline_bytes_tripquote_literals(self):
-        s = '''
-            b"""
-            <?xml version="1.0" encoding="UTF-8"?>
-            <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN">
-            """
-            '''
-        self.validate(s)
-
-    def test_multiline_str_literals(self):
-        s = """
-            md5test("\xaa" * 80,
-                    ("Test Using Larger Than Block-Size Key "
-                     "and Larger Than One Block-Size Data"),
-                    "6f630fad67cda0ee1fb1f562db3aa53e")
-            """
-        self.validate(s)
-
-
-def diff(fn, result, encoding):
-    f = open("@", "w")
-    try:
-        f.write(result.encode(encoding))
-    finally:
-        f.close()
-    try:
-        fn = fn.replace('"', '\\"')
-        return os.system('diff -u "%s" @' % fn)
-    finally:
-        os.remove("@")
diff --git a/lib/python2.7/lib2to3/tests/test_pytree.py b/lib/python2.7/lib2to3/tests/test_pytree.py
deleted file mode 100644
index ac7d900..0000000
--- a/lib/python2.7/lib2to3/tests/test_pytree.py
+++ /dev/null
@@ -1,494 +0,0 @@
-# Copyright 2006 Google, Inc. All Rights Reserved.
-# Licensed to PSF under a Contributor Agreement.
-
-"""Unit tests for pytree.py.
-
-NOTE: Please *don't* add doc strings to individual test methods!
-In verbose mode, printing of the module, class and method name is much
-more helpful than printing of (the first line of) the docstring,
-especially when debugging a test.
-"""
-
-from __future__ import with_statement
-
-import sys
-import warnings
-
-# Testing imports
-from . import support
-
-from lib2to3 import pytree
-
-try:
-    sorted
-except NameError:
-    def sorted(lst):
-        l = list(lst)
-        l.sort()
-        return l
-
-class TestNodes(support.TestCase):
-
-    """Unit tests for nodes (Base, Leaf, Node)."""
-
-    if sys.version_info >= (2,6):
-        # warnings.catch_warnings is new in 2.6.
-        def test_deprecated_prefix_methods(self):
-            l = pytree.Leaf(100, "foo")
-            with warnings.catch_warnings(record=True) as w:
-                warnings.simplefilter("always", DeprecationWarning)
-                self.assertEqual(l.get_prefix(), "")
-                l.set_prefix("hi")
-            self.assertEqual(l.prefix, "hi")
-            self.assertEqual(len(w), 2)
-            for warning in w:
-                self.assertTrue(warning.category is DeprecationWarning)
-            self.assertEqual(str(w[0].message), "get_prefix() is deprecated; " \
-                                 "use the prefix property")
-            self.assertEqual(str(w[1].message), "set_prefix() is deprecated; " \
-                                 "use the prefix property")
-
-    def test_instantiate_base(self):
-        if __debug__:
-            # Test that instantiating Base() raises an AssertionError
-            self.assertRaises(AssertionError, pytree.Base)
-
-    def test_leaf(self):
-        l1 = pytree.Leaf(100, "foo")
-        self.assertEqual(l1.type, 100)
-        self.assertEqual(l1.value, "foo")
-
-    def test_leaf_repr(self):
-        l1 = pytree.Leaf(100, "foo")
-        self.assertEqual(repr(l1), "Leaf(100, 'foo')")
-
-    def test_leaf_str(self):
-        l1 = pytree.Leaf(100, "foo")
-        self.assertEqual(str(l1), "foo")
-        l2 = pytree.Leaf(100, "foo", context=(" ", (10, 1)))
-        self.assertEqual(str(l2), " foo")
-
-    def test_leaf_str_numeric_value(self):
-        # Make sure that the Leaf's value is stringified. Failing to
-        #  do this can cause a TypeError in certain situations.
-        l1 = pytree.Leaf(2, 5)
-        l1.prefix = "foo_"
-        self.assertEqual(str(l1), "foo_5")
-
-    def test_leaf_equality(self):
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "foo", context=(" ", (1, 0)))
-        self.assertEqual(l1, l2)
-        l3 = pytree.Leaf(101, "foo")
-        l4 = pytree.Leaf(100, "bar")
-        self.assertNotEqual(l1, l3)
-        self.assertNotEqual(l1, l4)
-
-    def test_leaf_prefix(self):
-        l1 = pytree.Leaf(100, "foo")
-        self.assertEqual(l1.prefix, "")
-        self.assertFalse(l1.was_changed)
-        l1.prefix = "  ##\n\n"
-        self.assertEqual(l1.prefix, "  ##\n\n")
-        self.assertTrue(l1.was_changed)
-
-    def test_node(self):
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(200, "bar")
-        n1 = pytree.Node(1000, [l1, l2])
-        self.assertEqual(n1.type, 1000)
-        self.assertEqual(n1.children, [l1, l2])
-
-    def test_node_repr(self):
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "bar", context=(" ", (1, 0)))
-        n1 = pytree.Node(1000, [l1, l2])
-        self.assertEqual(repr(n1),
-                         "Node(1000, [%s, %s])" % (repr(l1), repr(l2)))
-
-    def test_node_str(self):
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "bar", context=(" ", (1, 0)))
-        n1 = pytree.Node(1000, [l1, l2])
-        self.assertEqual(str(n1), "foo bar")
-
-    def test_node_prefix(self):
-        l1 = pytree.Leaf(100, "foo")
-        self.assertEqual(l1.prefix, "")
-        n1 = pytree.Node(1000, [l1])
-        self.assertEqual(n1.prefix, "")
-        n1.prefix = " "
-        self.assertEqual(n1.prefix, " ")
-        self.assertEqual(l1.prefix, " ")
-
-    def test_get_suffix(self):
-        l1 = pytree.Leaf(100, "foo", prefix="a")
-        l2 = pytree.Leaf(100, "bar", prefix="b")
-        n1 = pytree.Node(1000, [l1, l2])
-
-        self.assertEqual(l1.get_suffix(), l2.prefix)
-        self.assertEqual(l2.get_suffix(), "")
-        self.assertEqual(n1.get_suffix(), "")
-
-        l3 = pytree.Leaf(100, "bar", prefix="c")
-        n2 = pytree.Node(1000, [n1, l3])
-
-        self.assertEqual(n1.get_suffix(), l3.prefix)
-        self.assertEqual(l3.get_suffix(), "")
-        self.assertEqual(n2.get_suffix(), "")
-
-    def test_node_equality(self):
-        n1 = pytree.Node(1000, ())
-        n2 = pytree.Node(1000, [], context=(" ", (1, 0)))
-        self.assertEqual(n1, n2)
-        n3 = pytree.Node(1001, ())
-        self.assertNotEqual(n1, n3)
-
-    def test_node_recursive_equality(self):
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "foo")
-        n1 = pytree.Node(1000, [l1])
-        n2 = pytree.Node(1000, [l2])
-        self.assertEqual(n1, n2)
-        l3 = pytree.Leaf(100, "bar")
-        n3 = pytree.Node(1000, [l3])
-        self.assertNotEqual(n1, n3)
-
-    def test_replace(self):
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "+")
-        l3 = pytree.Leaf(100, "bar")
-        n1 = pytree.Node(1000, [l1, l2, l3])
-        self.assertEqual(n1.children, [l1, l2, l3])
-        self.assertTrue(isinstance(n1.children, list))
-        self.assertFalse(n1.was_changed)
-        l2new = pytree.Leaf(100, "-")
-        l2.replace(l2new)
-        self.assertEqual(n1.children, [l1, l2new, l3])
-        self.assertTrue(isinstance(n1.children, list))
-        self.assertTrue(n1.was_changed)
-
-    def test_replace_with_list(self):
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "+")
-        l3 = pytree.Leaf(100, "bar")
-        n1 = pytree.Node(1000, [l1, l2, l3])
-
-        l2.replace([pytree.Leaf(100, "*"), pytree.Leaf(100, "*")])
-        self.assertEqual(str(n1), "foo**bar")
-        self.assertTrue(isinstance(n1.children, list))
-
-    def test_leaves(self):
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "bar")
-        l3 = pytree.Leaf(100, "fooey")
-        n2 = pytree.Node(1000, [l1, l2])
-        n3 = pytree.Node(1000, [l3])
-        n1 = pytree.Node(1000, [n2, n3])
-
-        self.assertEqual(list(n1.leaves()), [l1, l2, l3])
-
-    def test_depth(self):
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "bar")
-        n2 = pytree.Node(1000, [l1, l2])
-        n3 = pytree.Node(1000, [])
-        n1 = pytree.Node(1000, [n2, n3])
-
-        self.assertEqual(l1.depth(), 2)
-        self.assertEqual(n3.depth(), 1)
-        self.assertEqual(n1.depth(), 0)
-
-    def test_post_order(self):
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "bar")
-        l3 = pytree.Leaf(100, "fooey")
-        c1 = pytree.Node(1000, [l1, l2])
-        n1 = pytree.Node(1000, [c1, l3])
-        self.assertEqual(list(n1.post_order()), [l1, l2, c1, l3, n1])
-
-    def test_pre_order(self):
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "bar")
-        l3 = pytree.Leaf(100, "fooey")
-        c1 = pytree.Node(1000, [l1, l2])
-        n1 = pytree.Node(1000, [c1, l3])
-        self.assertEqual(list(n1.pre_order()), [n1, c1, l1, l2, l3])
-
-    def test_changed(self):
-        l1 = pytree.Leaf(100, "f")
-        self.assertFalse(l1.was_changed)
-        l1.changed()
-        self.assertTrue(l1.was_changed)
-
-        l1 = pytree.Leaf(100, "f")
-        n1 = pytree.Node(1000, [l1])
-        self.assertFalse(n1.was_changed)
-        n1.changed()
-        self.assertTrue(n1.was_changed)
-
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "+")
-        l3 = pytree.Leaf(100, "bar")
-        n1 = pytree.Node(1000, [l1, l2, l3])
-        n2 = pytree.Node(1000, [n1])
-        self.assertFalse(l1.was_changed)
-        self.assertFalse(n1.was_changed)
-        self.assertFalse(n2.was_changed)
-
-        n1.changed()
-        self.assertTrue(n1.was_changed)
-        self.assertTrue(n2.was_changed)
-        self.assertFalse(l1.was_changed)
-
-    def test_leaf_constructor_prefix(self):
-        for prefix in ("xyz_", ""):
-            l1 = pytree.Leaf(100, "self", prefix=prefix)
-            self.assertTrue(str(l1), prefix + "self")
-            self.assertEqual(l1.prefix, prefix)
-
-    def test_node_constructor_prefix(self):
-        for prefix in ("xyz_", ""):
-            l1 = pytree.Leaf(100, "self")
-            l2 = pytree.Leaf(100, "foo", prefix="_")
-            n1 = pytree.Node(1000, [l1, l2], prefix=prefix)
-            self.assertTrue(str(n1), prefix + "self_foo")
-            self.assertEqual(n1.prefix, prefix)
-            self.assertEqual(l1.prefix, prefix)
-            self.assertEqual(l2.prefix, "_")
-
-    def test_remove(self):
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "foo")
-        n1 = pytree.Node(1000, [l1, l2])
-        n2 = pytree.Node(1000, [n1])
-
-        self.assertEqual(n1.remove(), 0)
-        self.assertEqual(n2.children, [])
-        self.assertEqual(l1.parent, n1)
-        self.assertEqual(n1.parent, None)
-        self.assertEqual(n2.parent, None)
-        self.assertFalse(n1.was_changed)
-        self.assertTrue(n2.was_changed)
-
-        self.assertEqual(l2.remove(), 1)
-        self.assertEqual(l1.remove(), 0)
-        self.assertEqual(n1.children, [])
-        self.assertEqual(l1.parent, None)
-        self.assertEqual(n1.parent, None)
-        self.assertEqual(n2.parent, None)
-        self.assertTrue(n1.was_changed)
-        self.assertTrue(n2.was_changed)
-
-    def test_remove_parentless(self):
-        n1 = pytree.Node(1000, [])
-        n1.remove()
-        self.assertEqual(n1.parent, None)
-
-        l1 = pytree.Leaf(100, "foo")
-        l1.remove()
-        self.assertEqual(l1.parent, None)
-
-    def test_node_set_child(self):
-        l1 = pytree.Leaf(100, "foo")
-        n1 = pytree.Node(1000, [l1])
-
-        l2 = pytree.Leaf(100, "bar")
-        n1.set_child(0, l2)
-        self.assertEqual(l1.parent, None)
-        self.assertEqual(l2.parent, n1)
-        self.assertEqual(n1.children, [l2])
-
-        n2 = pytree.Node(1000, [l1])
-        n2.set_child(0, n1)
-        self.assertEqual(l1.parent, None)
-        self.assertEqual(n1.parent, n2)
-        self.assertEqual(n2.parent, None)
-        self.assertEqual(n2.children, [n1])
-
-        self.assertRaises(IndexError, n1.set_child, 4, l2)
-        # I don't care what it raises, so long as it's an exception
-        self.assertRaises(Exception, n1.set_child, 0, list)
-
-    def test_node_insert_child(self):
-        l1 = pytree.Leaf(100, "foo")
-        n1 = pytree.Node(1000, [l1])
-
-        l2 = pytree.Leaf(100, "bar")
-        n1.insert_child(0, l2)
-        self.assertEqual(l2.parent, n1)
-        self.assertEqual(n1.children, [l2, l1])
-
-        l3 = pytree.Leaf(100, "abc")
-        n1.insert_child(2, l3)
-        self.assertEqual(n1.children, [l2, l1, l3])
-
-        # I don't care what it raises, so long as it's an exception
-        self.assertRaises(Exception, n1.insert_child, 0, list)
-
-    def test_node_append_child(self):
-        n1 = pytree.Node(1000, [])
-
-        l1 = pytree.Leaf(100, "foo")
-        n1.append_child(l1)
-        self.assertEqual(l1.parent, n1)
-        self.assertEqual(n1.children, [l1])
-
-        l2 = pytree.Leaf(100, "bar")
-        n1.append_child(l2)
-        self.assertEqual(l2.parent, n1)
-        self.assertEqual(n1.children, [l1, l2])
-
-        # I don't care what it raises, so long as it's an exception
-        self.assertRaises(Exception, n1.append_child, list)
-
-    def test_node_next_sibling(self):
-        n1 = pytree.Node(1000, [])
-        n2 = pytree.Node(1000, [])
-        p1 = pytree.Node(1000, [n1, n2])
-
-        self.assertTrue(n1.next_sibling is n2)
-        self.assertEqual(n2.next_sibling, None)
-        self.assertEqual(p1.next_sibling, None)
-
-    def test_leaf_next_sibling(self):
-        l1 = pytree.Leaf(100, "a")
-        l2 = pytree.Leaf(100, "b")
-        p1 = pytree.Node(1000, [l1, l2])
-
-        self.assertTrue(l1.next_sibling is l2)
-        self.assertEqual(l2.next_sibling, None)
-        self.assertEqual(p1.next_sibling, None)
-
-    def test_node_prev_sibling(self):
-        n1 = pytree.Node(1000, [])
-        n2 = pytree.Node(1000, [])
-        p1 = pytree.Node(1000, [n1, n2])
-
-        self.assertTrue(n2.prev_sibling is n1)
-        self.assertEqual(n1.prev_sibling, None)
-        self.assertEqual(p1.prev_sibling, None)
-
-    def test_leaf_prev_sibling(self):
-        l1 = pytree.Leaf(100, "a")
-        l2 = pytree.Leaf(100, "b")
-        p1 = pytree.Node(1000, [l1, l2])
-
-        self.assertTrue(l2.prev_sibling is l1)
-        self.assertEqual(l1.prev_sibling, None)
-        self.assertEqual(p1.prev_sibling, None)
-
-
-class TestPatterns(support.TestCase):
-
-    """Unit tests for tree matching patterns."""
-
-    def test_basic_patterns(self):
-        # Build a tree
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "bar")
-        l3 = pytree.Leaf(100, "foo")
-        n1 = pytree.Node(1000, [l1, l2])
-        n2 = pytree.Node(1000, [l3])
-        root = pytree.Node(1000, [n1, n2])
-        # Build a pattern matching a leaf
-        pl = pytree.LeafPattern(100, "foo", name="pl")
-        r = {}
-        self.assertFalse(pl.match(root, results=r))
-        self.assertEqual(r, {})
-        self.assertFalse(pl.match(n1, results=r))
-        self.assertEqual(r, {})
-        self.assertFalse(pl.match(n2, results=r))
-        self.assertEqual(r, {})
-        self.assertTrue(pl.match(l1, results=r))
-        self.assertEqual(r, {"pl": l1})
-        r = {}
-        self.assertFalse(pl.match(l2, results=r))
-        self.assertEqual(r, {})
-        # Build a pattern matching a node
-        pn = pytree.NodePattern(1000, [pl], name="pn")
-        self.assertFalse(pn.match(root, results=r))
-        self.assertEqual(r, {})
-        self.assertFalse(pn.match(n1, results=r))
-        self.assertEqual(r, {})
-        self.assertTrue(pn.match(n2, results=r))
-        self.assertEqual(r, {"pn": n2, "pl": l3})
-        r = {}
-        self.assertFalse(pn.match(l1, results=r))
-        self.assertEqual(r, {})
-        self.assertFalse(pn.match(l2, results=r))
-        self.assertEqual(r, {})
-
-    def test_wildcard(self):
-        # Build a tree for testing
-        l1 = pytree.Leaf(100, "foo")
-        l2 = pytree.Leaf(100, "bar")
-        l3 = pytree.Leaf(100, "foo")
-        n1 = pytree.Node(1000, [l1, l2])
-        n2 = pytree.Node(1000, [l3])
-        root = pytree.Node(1000, [n1, n2])
-        # Build a pattern
-        pl = pytree.LeafPattern(100, "foo", name="pl")
-        pn = pytree.NodePattern(1000, [pl], name="pn")
-        pw = pytree.WildcardPattern([[pn], [pl, pl]], name="pw")
-        r = {}
-        self.assertFalse(pw.match_seq([root], r))
-        self.assertEqual(r, {})
-        self.assertFalse(pw.match_seq([n1], r))
-        self.assertEqual(r, {})
-        self.assertTrue(pw.match_seq([n2], r))
-        # These are easier to debug
-        self.assertEqual(sorted(r.keys()), ["pl", "pn", "pw"])
-        self.assertEqual(r["pl"], l1)
-        self.assertEqual(r["pn"], n2)
-        self.assertEqual(r["pw"], [n2])
-        # But this is equivalent
-        self.assertEqual(r, {"pl": l1, "pn": n2, "pw": [n2]})
-        r = {}
-        self.assertTrue(pw.match_seq([l1, l3], r))
-        self.assertEqual(r, {"pl": l3, "pw": [l1, l3]})
-        self.assertTrue(r["pl"] is l3)
-        r = {}
-
-    def test_generate_matches(self):
-        la = pytree.Leaf(1, "a")
-        lb = pytree.Leaf(1, "b")
-        lc = pytree.Leaf(1, "c")
-        ld = pytree.Leaf(1, "d")
-        le = pytree.Leaf(1, "e")
-        lf = pytree.Leaf(1, "f")
-        leaves = [la, lb, lc, ld, le, lf]
-        root = pytree.Node(1000, leaves)
-        pa = pytree.LeafPattern(1, "a", "pa")
-        pb = pytree.LeafPattern(1, "b", "pb")
-        pc = pytree.LeafPattern(1, "c", "pc")
-        pd = pytree.LeafPattern(1, "d", "pd")
-        pe = pytree.LeafPattern(1, "e", "pe")
-        pf = pytree.LeafPattern(1, "f", "pf")
-        pw = pytree.WildcardPattern([[pa, pb, pc], [pd, pe],
-                                     [pa, pb], [pc, pd], [pe, pf]],
-                                    min=1, max=4, name="pw")
-        self.assertEqual([x[0] for x in pw.generate_matches(leaves)],
-                         [3, 5, 2, 4, 6])
-        pr = pytree.NodePattern(type=1000, content=[pw], name="pr")
-        matches = list(pytree.generate_matches([pr], [root]))
-        self.assertEqual(len(matches), 1)
-        c, r = matches[0]
-        self.assertEqual(c, 1)
-        self.assertEqual(str(r["pr"]), "abcdef")
-        self.assertEqual(r["pw"], [la, lb, lc, ld, le, lf])
-        for c in "abcdef":
-            self.assertEqual(r["p" + c], pytree.Leaf(1, c))
-
-    def test_has_key_example(self):
-        pattern = pytree.NodePattern(331,
-                                     (pytree.LeafPattern(7),
-                                      pytree.WildcardPattern(name="args"),
-                                      pytree.LeafPattern(8)))
-        l1 = pytree.Leaf(7, "(")
-        l2 = pytree.Leaf(3, "x")
-        l3 = pytree.Leaf(8, ")")
-        node = pytree.Node(331, [l1, l2, l3])
-        r = {}
-        self.assertTrue(pattern.match(node, r))
-        self.assertEqual(r["args"], [l2])
diff --git a/lib/python2.7/lib2to3/tests/test_refactor.py b/lib/python2.7/lib2to3/tests/test_refactor.py
deleted file mode 100644
index 6020d1f..0000000
--- a/lib/python2.7/lib2to3/tests/test_refactor.py
+++ /dev/null
@@ -1,317 +0,0 @@
-"""
-Unit tests for refactor.py.
-"""
-
-from __future__ import with_statement
-
-import sys
-import os
-import codecs
-import operator
-import StringIO
-import tempfile
-import shutil
-import unittest
-import warnings
-
-from lib2to3 import refactor, pygram, fixer_base
-from lib2to3.pgen2 import token
-
-from . import support
-
-
-TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), "data")
-FIXER_DIR = os.path.join(TEST_DATA_DIR, "fixers")
-
-sys.path.append(FIXER_DIR)
-try:
-    _DEFAULT_FIXERS = refactor.get_fixers_from_package("myfixes")
-finally:
-    sys.path.pop()
-
-_2TO3_FIXERS = refactor.get_fixers_from_package("lib2to3.fixes")
-
-class TestRefactoringTool(unittest.TestCase):
-
-    def setUp(self):
-        sys.path.append(FIXER_DIR)
-
-    def tearDown(self):
-        sys.path.pop()
-
-    def check_instances(self, instances, classes):
-        for inst, cls in zip(instances, classes):
-            if not isinstance(inst, cls):
-                self.fail("%s are not instances of %s" % instances, classes)
-
-    def rt(self, options=None, fixers=_DEFAULT_FIXERS, explicit=None):
-        return refactor.RefactoringTool(fixers, options, explicit)
-
-    def test_print_function_option(self):
-        rt = self.rt({"print_function" : True})
-        self.assertTrue(rt.grammar is pygram.python_grammar_no_print_statement)
-        self.assertTrue(rt.driver.grammar is
-                        pygram.python_grammar_no_print_statement)
-
-    def test_write_unchanged_files_option(self):
-        rt = self.rt()
-        self.assertFalse(rt.write_unchanged_files)
-        rt = self.rt({"write_unchanged_files" : True})
-        self.assertTrue(rt.write_unchanged_files)
-
-    def test_fixer_loading_helpers(self):
-        contents = ["explicit", "first", "last", "parrot", "preorder"]
-        non_prefixed = refactor.get_all_fix_names("myfixes")
-        prefixed = refactor.get_all_fix_names("myfixes", False)
-        full_names = refactor.get_fixers_from_package("myfixes")
-        self.assertEqual(prefixed, ["fix_" + name for name in contents])
-        self.assertEqual(non_prefixed, contents)
-        self.assertEqual(full_names,
-                         ["myfixes.fix_" + name for name in contents])
-
-    def test_detect_future_features(self):
-        run = refactor._detect_future_features
-        fs = frozenset
-        empty = fs()
-        self.assertEqual(run(""), empty)
-        self.assertEqual(run("from __future__ import print_function"),
-                         fs(("print_function",)))
-        self.assertEqual(run("from __future__ import generators"),
-                         fs(("generators",)))
-        self.assertEqual(run("from __future__ import generators, feature"),
-                         fs(("generators", "feature")))
-        inp = "from __future__ import generators, print_function"
-        self.assertEqual(run(inp), fs(("generators", "print_function")))
-        inp ="from __future__ import print_function, generators"
-        self.assertEqual(run(inp), fs(("print_function", "generators")))
-        inp = "from __future__ import (print_function,)"
-        self.assertEqual(run(inp), fs(("print_function",)))
-        inp = "from __future__ import (generators, print_function)"
-        self.assertEqual(run(inp), fs(("generators", "print_function")))
-        inp = "from __future__ import (generators, nested_scopes)"
-        self.assertEqual(run(inp), fs(("generators", "nested_scopes")))
-        inp = """from __future__ import generators
-from __future__ import print_function"""
-        self.assertEqual(run(inp), fs(("generators", "print_function")))
-        invalid = ("from",
-                   "from 4",
-                   "from x",
-                   "from x 5",
-                   "from x im",
-                   "from x import",
-                   "from x import 4",
-                   )
-        for inp in invalid:
-            self.assertEqual(run(inp), empty)
-        inp = "'docstring'\nfrom __future__ import print_function"
-        self.assertEqual(run(inp), fs(("print_function",)))
-        inp = "'docstring'\n'somng'\nfrom __future__ import print_function"
-        self.assertEqual(run(inp), empty)
-        inp = "# comment\nfrom __future__ import print_function"
-        self.assertEqual(run(inp), fs(("print_function",)))
-        inp = "# comment\n'doc'\nfrom __future__ import print_function"
-        self.assertEqual(run(inp), fs(("print_function",)))
-        inp = "class x: pass\nfrom __future__ import print_function"
-        self.assertEqual(run(inp), empty)
-
-    def test_get_headnode_dict(self):
-        class NoneFix(fixer_base.BaseFix):
-            pass
-
-        class FileInputFix(fixer_base.BaseFix):
-            PATTERN = "file_input< any * >"
-
-        class SimpleFix(fixer_base.BaseFix):
-            PATTERN = "'name'"
-
-        no_head = NoneFix({}, [])
-        with_head = FileInputFix({}, [])
-        simple = SimpleFix({}, [])
-        d = refactor._get_headnode_dict([no_head, with_head, simple])
-        top_fixes = d.pop(pygram.python_symbols.file_input)
-        self.assertEqual(top_fixes, [with_head, no_head])
-        name_fixes = d.pop(token.NAME)
-        self.assertEqual(name_fixes, [simple, no_head])
-        for fixes in d.itervalues():
-            self.assertEqual(fixes, [no_head])
-
-    def test_fixer_loading(self):
-        from myfixes.fix_first import FixFirst
-        from myfixes.fix_last import FixLast
-        from myfixes.fix_parrot import FixParrot
-        from myfixes.fix_preorder import FixPreorder
-
-        rt = self.rt()
-        pre, post = rt.get_fixers()
-
-        self.check_instances(pre, [FixPreorder])
-        self.check_instances(post, [FixFirst, FixParrot, FixLast])
-
-    def test_naughty_fixers(self):
-        self.assertRaises(ImportError, self.rt, fixers=["not_here"])
-        self.assertRaises(refactor.FixerError, self.rt, fixers=["no_fixer_cls"])
-        self.assertRaises(refactor.FixerError, self.rt, fixers=["bad_order"])
-
-    def test_refactor_string(self):
-        rt = self.rt()
-        input = "def parrot(): pass\n\n"
-        tree = rt.refactor_string(input, "<test>")
-        self.assertNotEqual(str(tree), input)
-
-        input = "def f(): pass\n\n"
-        tree = rt.refactor_string(input, "<test>")
-        self.assertEqual(str(tree), input)
-
-    def test_refactor_stdin(self):
-
-        class MyRT(refactor.RefactoringTool):
-
-            def print_output(self, old_text, new_text, filename, equal):
-                results.extend([old_text, new_text, filename, equal])
-
-        results = []
-        rt = MyRT(_DEFAULT_FIXERS)
-        save = sys.stdin
-        sys.stdin = StringIO.StringIO("def parrot(): pass\n\n")
-        try:
-            rt.refactor_stdin()
-        finally:
-            sys.stdin = save
-        expected = ["def parrot(): pass\n\n",
-                    "def cheese(): pass\n\n",
-                    "<stdin>", False]
-        self.assertEqual(results, expected)
-
-    def check_file_refactoring(self, test_file, fixers=_2TO3_FIXERS,
-                               options=None, mock_log_debug=None,
-                               actually_write=True):
-        tmpdir = tempfile.mkdtemp(prefix="2to3-test_refactor")
-        self.addCleanup(shutil.rmtree, tmpdir)
-        # make a copy of the tested file that we can write to
-        shutil.copy(test_file, tmpdir)
-        test_file = os.path.join(tmpdir, os.path.basename(test_file))
-        os.chmod(test_file, 0o644)
-
-        def read_file():
-            with open(test_file, "rb") as fp:
-                return fp.read()
-
-        old_contents = read_file()
-        rt = self.rt(fixers=fixers, options=options)
-        if mock_log_debug:
-            rt.log_debug = mock_log_debug
-
-        rt.refactor_file(test_file)
-        self.assertEqual(old_contents, read_file())
-
-        if not actually_write:
-            return
-        rt.refactor_file(test_file, True)
-        new_contents = read_file()
-        self.assertNotEqual(old_contents, new_contents)
-        return new_contents
-
-    def test_refactor_file(self):
-        test_file = os.path.join(FIXER_DIR, "parrot_example.py")
-        self.check_file_refactoring(test_file, _DEFAULT_FIXERS)
-
-    def test_refactor_file_write_unchanged_file(self):
-        test_file = os.path.join(FIXER_DIR, "parrot_example.py")
-        debug_messages = []
-        def recording_log_debug(msg, *args):
-            debug_messages.append(msg % args)
-        self.check_file_refactoring(test_file, fixers=(),
-                                    options={"write_unchanged_files": True},
-                                    mock_log_debug=recording_log_debug,
-                                    actually_write=False)
-        # Testing that it logged this message when write=False was passed is
-        # sufficient to see that it did not bail early after "No changes".
-        message_regex = r"Not writing changes to .*%s%s" % (
-                os.sep, os.path.basename(test_file))
-        for message in debug_messages:
-            if "Not writing changes" in message:
-                self.assertRegexpMatches(message, message_regex)
-                break
-        else:
-            self.fail("%r not matched in %r" % (message_regex, debug_messages))
-
-    def test_refactor_dir(self):
-        def check(structure, expected):
-            def mock_refactor_file(self, f, *args):
-                got.append(f)
-            save_func = refactor.RefactoringTool.refactor_file
-            refactor.RefactoringTool.refactor_file = mock_refactor_file
-            rt = self.rt()
-            got = []
-            dir = tempfile.mkdtemp(prefix="2to3-test_refactor")
-            try:
-                os.mkdir(os.path.join(dir, "a_dir"))
-                for fn in structure:
-                    open(os.path.join(dir, fn), "wb").close()
-                rt.refactor_dir(dir)
-            finally:
-                refactor.RefactoringTool.refactor_file = save_func
-                shutil.rmtree(dir)
-            self.assertEqual(got,
-                             [os.path.join(dir, path) for path in expected])
-        check([], [])
-        tree = ["nothing",
-                "hi.py",
-                ".dumb",
-                ".after.py",
-                "notpy.npy",
-                "sappy"]
-        expected = ["hi.py"]
-        check(tree, expected)
-        tree = ["hi.py",
-                os.path.join("a_dir", "stuff.py")]
-        check(tree, tree)
-
-    def test_file_encoding(self):
-        fn = os.path.join(TEST_DATA_DIR, "different_encoding.py")
-        self.check_file_refactoring(fn)
-
-    def test_bom(self):
-        fn = os.path.join(TEST_DATA_DIR, "bom.py")
-        data = self.check_file_refactoring(fn)
-        self.assertTrue(data.startswith(codecs.BOM_UTF8))
-
-    def test_crlf_newlines(self):
-        old_sep = os.linesep
-        os.linesep = "\r\n"
-        try:
-            fn = os.path.join(TEST_DATA_DIR, "crlf.py")
-            fixes = refactor.get_fixers_from_package("lib2to3.fixes")
-            self.check_file_refactoring(fn, fixes)
-        finally:
-            os.linesep = old_sep
-
-    def test_refactor_docstring(self):
-        rt = self.rt()
-
-        doc = """
->>> example()
-42
-"""
-        out = rt.refactor_docstring(doc, "<test>")
-        self.assertEqual(out, doc)
-
-        doc = """
->>> def parrot():
-...      return 43
-"""
-        out = rt.refactor_docstring(doc, "<test>")
-        self.assertNotEqual(out, doc)
-
-    def test_explicit(self):
-        from myfixes.fix_explicit import FixExplicit
-
-        rt = self.rt(fixers=["myfixes.fix_explicit"])
-        self.assertEqual(len(rt.post_order), 0)
-
-        rt = self.rt(explicit=["myfixes.fix_explicit"])
-        for fix in rt.post_order:
-            if isinstance(fix, FixExplicit):
-                break
-        else:
-            self.fail("explicit fixer not loaded")
diff --git a/lib/python2.7/lib2to3/tests/test_util.py b/lib/python2.7/lib2to3/tests/test_util.py
deleted file mode 100644
index 2fab8b9..0000000
--- a/lib/python2.7/lib2to3/tests/test_util.py
+++ /dev/null
@@ -1,594 +0,0 @@
-""" Test suite for the code in fixer_util """
-
-# Testing imports
-from . import support
-
-# Python imports
-import os.path
-
-# Local imports
-from lib2to3.pytree import Node, Leaf
-from lib2to3 import fixer_util
-from lib2to3.fixer_util import Attr, Name, Call, Comma
-from lib2to3.pgen2 import token
-
-def parse(code, strip_levels=0):
-    # The topmost node is file_input, which we don't care about.
-    # The next-topmost node is a *_stmt node, which we also don't care about
-    tree = support.parse_string(code)
-    for i in range(strip_levels):
-        tree = tree.children[0]
-    tree.parent = None
-    return tree
-
-class MacroTestCase(support.TestCase):
-    def assertStr(self, node, string):
-        if isinstance(node, (tuple, list)):
-            node = Node(fixer_util.syms.simple_stmt, node)
-        self.assertEqual(str(node), string)
-
-
-class Test_is_tuple(support.TestCase):
-    def is_tuple(self, string):
-        return fixer_util.is_tuple(parse(string, strip_levels=2))
-
-    def test_valid(self):
-        self.assertTrue(self.is_tuple("(a, b)"))
-        self.assertTrue(self.is_tuple("(a, (b, c))"))
-        self.assertTrue(self.is_tuple("((a, (b, c)),)"))
-        self.assertTrue(self.is_tuple("(a,)"))
-        self.assertTrue(self.is_tuple("()"))
-
-    def test_invalid(self):
-        self.assertFalse(self.is_tuple("(a)"))
-        self.assertFalse(self.is_tuple("('foo') % (b, c)"))
-
-
-class Test_is_list(support.TestCase):
-    def is_list(self, string):
-        return fixer_util.is_list(parse(string, strip_levels=2))
-
-    def test_valid(self):
-        self.assertTrue(self.is_list("[]"))
-        self.assertTrue(self.is_list("[a]"))
-        self.assertTrue(self.is_list("[a, b]"))
-        self.assertTrue(self.is_list("[a, [b, c]]"))
-        self.assertTrue(self.is_list("[[a, [b, c]],]"))
-
-    def test_invalid(self):
-        self.assertFalse(self.is_list("[]+[]"))
-
-
-class Test_Attr(MacroTestCase):
-    def test(self):
-        call = parse("foo()", strip_levels=2)
-
-        self.assertStr(Attr(Name("a"), Name("b")), "a.b")
-        self.assertStr(Attr(call, Name("b")), "foo().b")
-
-    def test_returns(self):
-        attr = Attr(Name("a"), Name("b"))
-        self.assertEqual(type(attr), list)
-
-
-class Test_Name(MacroTestCase):
-    def test(self):
-        self.assertStr(Name("a"), "a")
-        self.assertStr(Name("foo.foo().bar"), "foo.foo().bar")
-        self.assertStr(Name("a", prefix="b"), "ba")
-
-
-class Test_Call(MacroTestCase):
-    def _Call(self, name, args=None, prefix=None):
-        """Help the next test"""
-        children = []
-        if isinstance(args, list):
-            for arg in args:
-                children.append(arg)
-                children.append(Comma())
-            children.pop()
-        return Call(Name(name), children, prefix)
-
-    def test(self):
-        kids = [None,
-                [Leaf(token.NUMBER, 1), Leaf(token.NUMBER, 2),
-                 Leaf(token.NUMBER, 3)],
-                [Leaf(token.NUMBER, 1), Leaf(token.NUMBER, 3),
-                 Leaf(token.NUMBER, 2), Leaf(token.NUMBER, 4)],
-                [Leaf(token.STRING, "b"), Leaf(token.STRING, "j", prefix=" ")]
-                ]
-        self.assertStr(self._Call("A"), "A()")
-        self.assertStr(self._Call("b", kids[1]), "b(1,2,3)")
-        self.assertStr(self._Call("a.b().c", kids[2]), "a.b().c(1,3,2,4)")
-        self.assertStr(self._Call("d", kids[3], prefix=" "), " d(b, j)")
-
-
-class Test_does_tree_import(support.TestCase):
-    def _find_bind_rec(self, name, node):
-        # Search a tree for a binding -- used to find the starting
-        # point for these tests.
-        c = fixer_util.find_binding(name, node)
-        if c: return c
-        for child in node.children:
-            c = self._find_bind_rec(name, child)
-            if c: return c
-
-    def does_tree_import(self, package, name, string):
-        node = parse(string)
-        # Find the binding of start -- that's what we'll go from
-        node = self._find_bind_rec('start', node)
-        return fixer_util.does_tree_import(package, name, node)
-
-    def try_with(self, string):
-        failing_tests = (("a", "a", "from a import b"),
-                         ("a.d", "a", "from a.d import b"),
-                         ("d.a", "a", "from d.a import b"),
-                         (None, "a", "import b"),
-                         (None, "a", "import b, c, d"))
-        for package, name, import_ in failing_tests:
-            n = self.does_tree_import(package, name, import_ + "\n" + string)
-            self.assertFalse(n)
-            n = self.does_tree_import(package, name, string + "\n" + import_)
-            self.assertFalse(n)
-
-        passing_tests = (("a", "a", "from a import a"),
-                         ("x", "a", "from x import a"),
-                         ("x", "a", "from x import b, c, a, d"),
-                         ("x.b", "a", "from x.b import a"),
-                         ("x.b", "a", "from x.b import b, c, a, d"),
-                         (None, "a", "import a"),
-                         (None, "a", "import b, c, a, d"))
-        for package, name, import_ in passing_tests:
-            n = self.does_tree_import(package, name, import_ + "\n" + string)
-            self.assertTrue(n)
-            n = self.does_tree_import(package, name, string + "\n" + import_)
-            self.assertTrue(n)
-
-    def test_in_function(self):
-        self.try_with("def foo():\n\tbar.baz()\n\tstart=3")
-
-class Test_find_binding(support.TestCase):
-    def find_binding(self, name, string, package=None):
-        return fixer_util.find_binding(name, parse(string), package)
-
-    def test_simple_assignment(self):
-        self.assertTrue(self.find_binding("a", "a = b"))
-        self.assertTrue(self.find_binding("a", "a = [b, c, d]"))
-        self.assertTrue(self.find_binding("a", "a = foo()"))
-        self.assertTrue(self.find_binding("a", "a = foo().foo.foo[6][foo]"))
-        self.assertFalse(self.find_binding("a", "foo = a"))
-        self.assertFalse(self.find_binding("a", "foo = (a, b, c)"))
-
-    def test_tuple_assignment(self):
-        self.assertTrue(self.find_binding("a", "(a,) = b"))
-        self.assertTrue(self.find_binding("a", "(a, b, c) = [b, c, d]"))
-        self.assertTrue(self.find_binding("a", "(c, (d, a), b) = foo()"))
-        self.assertTrue(self.find_binding("a", "(a, b) = foo().foo[6][foo]"))
-        self.assertFalse(self.find_binding("a", "(foo, b) = (b, a)"))
-        self.assertFalse(self.find_binding("a", "(foo, (b, c)) = (a, b, c)"))
-
-    def test_list_assignment(self):
-        self.assertTrue(self.find_binding("a", "[a] = b"))
-        self.assertTrue(self.find_binding("a", "[a, b, c] = [b, c, d]"))
-        self.assertTrue(self.find_binding("a", "[c, [d, a], b] = foo()"))
-        self.assertTrue(self.find_binding("a", "[a, b] = foo().foo[a][foo]"))
-        self.assertFalse(self.find_binding("a", "[foo, b] = (b, a)"))
-        self.assertFalse(self.find_binding("a", "[foo, [b, c]] = (a, b, c)"))
-
-    def test_invalid_assignments(self):
-        self.assertFalse(self.find_binding("a", "foo.a = 5"))
-        self.assertFalse(self.find_binding("a", "foo[a] = 5"))
-        self.assertFalse(self.find_binding("a", "foo(a) = 5"))
-        self.assertFalse(self.find_binding("a", "foo(a, b) = 5"))
-
-    def test_simple_import(self):
-        self.assertTrue(self.find_binding("a", "import a"))
-        self.assertTrue(self.find_binding("a", "import b, c, a, d"))
-        self.assertFalse(self.find_binding("a", "import b"))
-        self.assertFalse(self.find_binding("a", "import b, c, d"))
-
-    def test_from_import(self):
-        self.assertTrue(self.find_binding("a", "from x import a"))
-        self.assertTrue(self.find_binding("a", "from a import a"))
-        self.assertTrue(self.find_binding("a", "from x import b, c, a, d"))
-        self.assertTrue(self.find_binding("a", "from x.b import a"))
-        self.assertTrue(self.find_binding("a", "from x.b import b, c, a, d"))
-        self.assertFalse(self.find_binding("a", "from a import b"))
-        self.assertFalse(self.find_binding("a", "from a.d import b"))
-        self.assertFalse(self.find_binding("a", "from d.a import b"))
-
-    def test_import_as(self):
-        self.assertTrue(self.find_binding("a", "import b as a"))
-        self.assertTrue(self.find_binding("a", "import b as a, c, a as f, d"))
-        self.assertFalse(self.find_binding("a", "import a as f"))
-        self.assertFalse(self.find_binding("a", "import b, c as f, d as e"))
-
-    def test_from_import_as(self):
-        self.assertTrue(self.find_binding("a", "from x import b as a"))
-        self.assertTrue(self.find_binding("a", "from x import g as a, d as b"))
-        self.assertTrue(self.find_binding("a", "from x.b import t as a"))
-        self.assertTrue(self.find_binding("a", "from x.b import g as a, d"))
-        self.assertFalse(self.find_binding("a", "from a import b as t"))
-        self.assertFalse(self.find_binding("a", "from a.d import b as t"))
-        self.assertFalse(self.find_binding("a", "from d.a import b as t"))
-
-    def test_simple_import_with_package(self):
-        self.assertTrue(self.find_binding("b", "import b"))
-        self.assertTrue(self.find_binding("b", "import b, c, d"))
-        self.assertFalse(self.find_binding("b", "import b", "b"))
-        self.assertFalse(self.find_binding("b", "import b, c, d", "c"))
-
-    def test_from_import_with_package(self):
-        self.assertTrue(self.find_binding("a", "from x import a", "x"))
-        self.assertTrue(self.find_binding("a", "from a import a", "a"))
-        self.assertTrue(self.find_binding("a", "from x import *", "x"))
-        self.assertTrue(self.find_binding("a", "from x import b, c, a, d", "x"))
-        self.assertTrue(self.find_binding("a", "from x.b import a", "x.b"))
-        self.assertTrue(self.find_binding("a", "from x.b import *", "x.b"))
-        self.assertTrue(self.find_binding("a", "from x.b import b, c, a, d", "x.b"))
-        self.assertFalse(self.find_binding("a", "from a import b", "a"))
-        self.assertFalse(self.find_binding("a", "from a.d import b", "a.d"))
-        self.assertFalse(self.find_binding("a", "from d.a import b", "a.d"))
-        self.assertFalse(self.find_binding("a", "from x.y import *", "a.b"))
-
-    def test_import_as_with_package(self):
-        self.assertFalse(self.find_binding("a", "import b.c as a", "b.c"))
-        self.assertFalse(self.find_binding("a", "import a as f", "f"))
-        self.assertFalse(self.find_binding("a", "import a as f", "a"))
-
-    def test_from_import_as_with_package(self):
-        # Because it would take a lot of special-case code in the fixers
-        # to deal with from foo import bar as baz, we'll simply always
-        # fail if there is an "from ... import ... as ..."
-        self.assertFalse(self.find_binding("a", "from x import b as a", "x"))
-        self.assertFalse(self.find_binding("a", "from x import g as a, d as b", "x"))
-        self.assertFalse(self.find_binding("a", "from x.b import t as a", "x.b"))
-        self.assertFalse(self.find_binding("a", "from x.b import g as a, d", "x.b"))
-        self.assertFalse(self.find_binding("a", "from a import b as t", "a"))
-        self.assertFalse(self.find_binding("a", "from a import b as t", "b"))
-        self.assertFalse(self.find_binding("a", "from a import b as t", "t"))
-
-    def test_function_def(self):
-        self.assertTrue(self.find_binding("a", "def a(): pass"))
-        self.assertTrue(self.find_binding("a", "def a(b, c, d): pass"))
-        self.assertTrue(self.find_binding("a", "def a(): b = 7"))
-        self.assertFalse(self.find_binding("a", "def d(b, (c, a), e): pass"))
-        self.assertFalse(self.find_binding("a", "def d(a=7): pass"))
-        self.assertFalse(self.find_binding("a", "def d(a): pass"))
-        self.assertFalse(self.find_binding("a", "def d(): a = 7"))
-
-        s = """
-            def d():
-                def a():
-                    pass"""
-        self.assertFalse(self.find_binding("a", s))
-
-    def test_class_def(self):
-        self.assertTrue(self.find_binding("a", "class a: pass"))
-        self.assertTrue(self.find_binding("a", "class a(): pass"))
-        self.assertTrue(self.find_binding("a", "class a(b): pass"))
-        self.assertTrue(self.find_binding("a", "class a(b, c=8): pass"))
-        self.assertFalse(self.find_binding("a", "class d: pass"))
-        self.assertFalse(self.find_binding("a", "class d(a): pass"))
-        self.assertFalse(self.find_binding("a", "class d(b, a=7): pass"))
-        self.assertFalse(self.find_binding("a", "class d(b, *a): pass"))
-        self.assertFalse(self.find_binding("a", "class d(b, **a): pass"))
-        self.assertFalse(self.find_binding("a", "class d: a = 7"))
-
-        s = """
-            class d():
-                class a():
-                    pass"""
-        self.assertFalse(self.find_binding("a", s))
-
-    def test_for(self):
-        self.assertTrue(self.find_binding("a", "for a in r: pass"))
-        self.assertTrue(self.find_binding("a", "for a, b in r: pass"))
-        self.assertTrue(self.find_binding("a", "for (a, b) in r: pass"))
-        self.assertTrue(self.find_binding("a", "for c, (a,) in r: pass"))
-        self.assertTrue(self.find_binding("a", "for c, (a, b) in r: pass"))
-        self.assertTrue(self.find_binding("a", "for c in r: a = c"))
-        self.assertFalse(self.find_binding("a", "for c in a: pass"))
-
-    def test_for_nested(self):
-        s = """
-            for b in r:
-                for a in b:
-                    pass"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            for b in r:
-                for a, c in b:
-                    pass"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            for b in r:
-                for (a, c) in b:
-                    pass"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            for b in r:
-                for (a,) in b:
-                    pass"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            for b in r:
-                for c, (a, d) in b:
-                    pass"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            for b in r:
-                for c in b:
-                    a = 7"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            for b in r:
-                for c in b:
-                    d = a"""
-        self.assertFalse(self.find_binding("a", s))
-
-        s = """
-            for b in r:
-                for c in a:
-                    d = 7"""
-        self.assertFalse(self.find_binding("a", s))
-
-    def test_if(self):
-        self.assertTrue(self.find_binding("a", "if b in r: a = c"))
-        self.assertFalse(self.find_binding("a", "if a in r: d = e"))
-
-    def test_if_nested(self):
-        s = """
-            if b in r:
-                if c in d:
-                    a = c"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            if b in r:
-                if c in d:
-                    c = a"""
-        self.assertFalse(self.find_binding("a", s))
-
-    def test_while(self):
-        self.assertTrue(self.find_binding("a", "while b in r: a = c"))
-        self.assertFalse(self.find_binding("a", "while a in r: d = e"))
-
-    def test_while_nested(self):
-        s = """
-            while b in r:
-                while c in d:
-                    a = c"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            while b in r:
-                while c in d:
-                    c = a"""
-        self.assertFalse(self.find_binding("a", s))
-
-    def test_try_except(self):
-        s = """
-            try:
-                a = 6
-            except:
-                b = 8"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            try:
-                b = 8
-            except:
-                a = 6"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            try:
-                b = 8
-            except KeyError:
-                pass
-            except:
-                a = 6"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            try:
-                b = 8
-            except:
-                b = 6"""
-        self.assertFalse(self.find_binding("a", s))
-
-    def test_try_except_nested(self):
-        s = """
-            try:
-                try:
-                    a = 6
-                except:
-                    pass
-            except:
-                b = 8"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            try:
-                b = 8
-            except:
-                try:
-                    a = 6
-                except:
-                    pass"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            try:
-                b = 8
-            except:
-                try:
-                    pass
-                except:
-                    a = 6"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            try:
-                try:
-                    b = 8
-                except KeyError:
-                    pass
-                except:
-                    a = 6
-            except:
-                pass"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            try:
-                pass
-            except:
-                try:
-                    b = 8
-                except KeyError:
-                    pass
-                except:
-                    a = 6"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            try:
-                b = 8
-            except:
-                b = 6"""
-        self.assertFalse(self.find_binding("a", s))
-
-        s = """
-            try:
-                try:
-                    b = 8
-                except:
-                    c = d
-            except:
-                try:
-                    b = 6
-                except:
-                    t = 8
-                except:
-                    o = y"""
-        self.assertFalse(self.find_binding("a", s))
-
-    def test_try_except_finally(self):
-        s = """
-            try:
-                c = 6
-            except:
-                b = 8
-            finally:
-                a = 9"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            try:
-                b = 8
-            finally:
-                a = 6"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            try:
-                b = 8
-            finally:
-                b = 6"""
-        self.assertFalse(self.find_binding("a", s))
-
-        s = """
-            try:
-                b = 8
-            except:
-                b = 9
-            finally:
-                b = 6"""
-        self.assertFalse(self.find_binding("a", s))
-
-    def test_try_except_finally_nested(self):
-        s = """
-            try:
-                c = 6
-            except:
-                b = 8
-            finally:
-                try:
-                    a = 9
-                except:
-                    b = 9
-                finally:
-                    c = 9"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            try:
-                b = 8
-            finally:
-                try:
-                    pass
-                finally:
-                    a = 6"""
-        self.assertTrue(self.find_binding("a", s))
-
-        s = """
-            try:
-                b = 8
-            finally:
-                try:
-                    b = 6
-                finally:
-                    b = 7"""
-        self.assertFalse(self.find_binding("a", s))
-
-class Test_touch_import(support.TestCase):
-
-    def test_after_docstring(self):
-        node = parse('"""foo"""\nbar()')
-        fixer_util.touch_import(None, "foo", node)
-        self.assertEqual(str(node), '"""foo"""\nimport foo\nbar()\n\n')
-
-    def test_after_imports(self):
-        node = parse('"""foo"""\nimport bar\nbar()')
-        fixer_util.touch_import(None, "foo", node)
-        self.assertEqual(str(node), '"""foo"""\nimport bar\nimport foo\nbar()\n\n')
-
-    def test_beginning(self):
-        node = parse('bar()')
-        fixer_util.touch_import(None, "foo", node)
-        self.assertEqual(str(node), 'import foo\nbar()\n\n')
-
-    def test_from_import(self):
-        node = parse('bar()')
-        fixer_util.touch_import("html", "escape", node)
-        self.assertEqual(str(node), 'from html import escape\nbar()\n\n')
-
-    def test_name_import(self):
-        node = parse('bar()')
-        fixer_util.touch_import(None, "cgi", node)
-        self.assertEqual(str(node), 'import cgi\nbar()\n\n')
-
-class Test_find_indentation(support.TestCase):
-
-    def test_nothing(self):
-        fi = fixer_util.find_indentation
-        node = parse("node()")
-        self.assertEqual(fi(node), u"")
-        node = parse("")
-        self.assertEqual(fi(node), u"")
-
-    def test_simple(self):
-        fi = fixer_util.find_indentation
-        node = parse("def f():\n    x()")
-        self.assertEqual(fi(node), u"")
-        self.assertEqual(fi(node.children[0].children[4].children[2]), u"    ")
-        node = parse("def f():\n    x()\n    y()")
-        self.assertEqual(fi(node.children[0].children[4].children[4]), u"    ")
diff --git a/repo.prop b/repo.prop
index dc76b15..156f796 100644
--- a/repo.prop
+++ b/repo.prop
@@ -1,41 +1,49 @@
-platform/bionic 8d92afe32265be8c36ea2adb3c4059298cd583eb
-platform/development 54212f988146578dd014c42a8b1e66e98ab740e7
-platform/external/chromite f9a912f6cfbc0c8e9419cafb0c7b1698926dce5f
-platform/manifest d035665c8d9aa7a26a8d590818777692e81ab6de
-platform/ndk d635836b69953d91568a686f5613b1787dc3e1bd
-platform/prebuilts/clang/darwin-x86/host/3.6 2f82e647995de18b47411091197d47714a502015
-platform/prebuilts/clang/host/windows-x86 f815c2be35252a78d3c0f4aed41630827f41e71d
-platform/prebuilts/clang/linux-x86/host/3.6 ac7be37a7a0cabeb34c335bf5d8882afcba4efa0
-platform/prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9 e821c649f37f3aafa2f84e919bdf006a163b1b76
+platform/bionic e23df93915dd89ae9661dded3c51bfd5a0bd185e
+platform/development 6980f5dc5e877fe993868473ffda6111deb06954
+platform/external/googletest 013ee6fccb6bb9ebd6215b504f0eef45dccfde4e
+platform/external/shaderc/glslang c1ccd4bf91d665a19c7ed2694fe65bf1738a6845
+platform/external/shaderc/shaderc 08f8e49598711f107422b6027c26d6957a241e1d
+platform/external/shaderc/spirv-tools ed0b8866c47b26c9fe2a728b73392f6baefa2158
+platform/external/vulkan-validation-layers 6130dca5798afb9e08e2b7e532aef5d2ebd4d706
+platform/manifest 0eb35214ca6f6954ded44e69844bbebe196bf476
+platform/ndk 92748458b72f89e3d8f9c431ccb615bec8e20c26
+platform/prebuilts/clang/host/darwin-x86 33f0063128e4d6ab7f63782c9cd32db4e832848d
+platform/prebuilts/clang/host/linux-x86 77a403cdd725a3ba75a4d86d777cc1b2343eba1a
+platform/prebuilts/clang/host/windows-x86 97ebdaddae61ce3a666e8a9a620fc3cc9828bb85
+platform/prebuilts/cmake/darwin-x86 d4410da1ac307f4c8362a2b0ae727c682ae06ed4
+platform/prebuilts/cmake/linux-x86 091caafda44f7fe52a94387b2eafcf204ea909d3
+platform/prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9 51fa77f10f8c5ee658bfaf3e5a2a29ebd8de50d2
 platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.8 6d08ca9f45ff685648fd13c75bf5cac4b11c19bb
-platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.9 83189309ee02314ad9e7147b96c6a893e5cf1ca0
+platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.9 39fd9577fe3895a68a921216836ebdd46b4255a8
 platform/prebuilts/gcc/darwin-x86/host/headers 4ac4f7cc41cf3c9e36fc3d6cf37fd1cfa9587a68
-platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1 8834958755acc291d126ba7ee38ac731d04f9c9e
-platform/prebuilts/gcc/darwin-x86/mips/mips64el-linux-android-4.9 aa65de04f78c9c87805be00666ae0c6bbe0ebfb6
-platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9 c0371efb25365f44e0ad4ea61a74d6e4fb84f3ce
-platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9 94cc9234bb6adef9d701819180a3c2db8360ea31
+platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1 ec5aa66aaa4964c27564d0ec84dc1f18a2d72b7e
+platform/prebuilts/gcc/darwin-x86/mips/mips64el-linux-android-4.9 4ba48d4ace63404304f201dc7d5e87ac55fc7d59
+platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9 2500bd9aaa640c179730df7f7315d5ee90e4c3c1
+platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9 423c0265176bcabd1c885f8cf6f0cedf67d3f59b
 platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8 26e93f6af47f7bd3a9beb5c102a5f45e19bfa38a
-platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9 a70724fae4d4c571e5657340f80a0c130d5283ec
-platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8 63b209feac0b045f5fc68810fd2e65bf1ca51e2f
-platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8 f61a459478cdc31e8aae22a182cdbf814ba08012
-platform/prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8 f691cae2f256d5f72388c0ce9113007a53ad333a
-platform/prebuilts/gcc/linux-x86/mips/mips64el-linux-android-4.9 59461df1418b3771c11f1957bb8f7f41e399447d
-platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9 c1a39ddef8496eb84c49883423a220e7dfe80d06
-platform/prebuilts/ndk 494e98c2aca71476d9f9383c1205a7172dddd343
-platform/prebuilts/python/darwin-x86/2.7.5 dacf2de576516f2751420eb60b8daf64d0f91677
-platform/prebuilts/python/linux-x86/2.7.5 583652f1b6e213ea1763099736dabc8070798d47
-toolchain/binutils 042c220bc2d2c48ecf410b0dfffb388a5d57cccc
-toolchain/build 79b5701f1e2f0dee68958c7c4206cdf9c44f1261
+platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9 887574f98e97475d6fb2f91a8f7b24602466017a
+platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8 1273431a189717842f033573eb8c777e13dd88b7
+platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8 73ca99196723f810dad42390d154654354f57c16
+platform/prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8 c795eed743bc6cee4ead5407cc237c43abf6fa26
+platform/prebuilts/gcc/linux-x86/mips/mips64el-linux-android-4.9 88bfecab5b700a1f6a601434d5816fab6c9261fc
+platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9 e3b93a8f44d43101b396d41ef30562885714e130
+platform/prebuilts/ndk 0677c905795eac2b69980105c44514df813aed23
+platform/prebuilts/ninja/darwin-x86 cc147ae2956e96279085abfadda2767b50edc2cc
+platform/prebuilts/ninja/linux-x86 543112c6744acb7a018ac36118eb2a862834809b
+platform/prebuilts/python/darwin-x86/2.7.5 0c5958b1636c47ed7c284f859c8e805fd06a0e63
+platform/prebuilts/python/linux-x86/2.7.5 9870834a1f61689aaff1eedda0e1ee73d7150763
+toolchain/binutils d929cfd50d770364fd652d252abc19598b0cc84c
+toolchain/build f280657461aee54b6d2807881d8a77832f4e794c
 toolchain/cloog 604793eab97d360aef729f064674569ee6dbf3e1
 toolchain/expat 40172a0ae9d40a068f1e1a48ffcf6a1ccf765ed5
-toolchain/gcc 81762471dff662de3066037f425d4dadc20be40f
-toolchain/gdb c9f9f54d36124448cf18d57923ec801ca84478b5
+toolchain/gcc 3791dafeb2d58bc6c45753f4cdf0fa5431963cfa
+toolchain/gdb abe5c08aee8f2602c40a951dae64daac4beb597a
 toolchain/gmp b2acd5dbf47868ac5b5bc844e16d2cadcbd4c810
-toolchain/isl b05d4572958c5d497da793f3317084bab90c3033
+toolchain/isl 0ccf95726af8ce58ad61ff474addbce3a31ba99c
 toolchain/mpc 835d16e92eed875638a8b5d552034c3b1aae045b
 toolchain/mpfr de979fc377db766591e7feaf052f0de59be46e76
-toolchain/ndk_chromite_config aaf0bc7c5c33aa92f2b796537cea44309f514e09
 toolchain/ppl 979062d362bc5a1c00804237b408b19b4618fb24
-toolchain/python 5d4afafe362cfabf6c4783a11c4c80df5afa1e1f
+toolchain/python 6a7fc9bfd21da85dda97a8bcd2952e0bfbded424
 toolchain/sed 45df23d6dc8b51ea5cd903d023c10fd7d72415b9
-toolchain/yasm c78ebe9a44cf69c46fd4e3185fef62e567b5ad4a
\ No newline at end of file
+toolchain/xz 595407f5a237e9bfd6821d70096d38825ec9c4e0
+toolchain/yasm a159fe073809b4138cf90b7298ea31ea17af85c0
diff --git a/share/gdb/python/gdb/FrameDecorator.py b/share/gdb/python/gdb/FrameDecorator.py
index 8b64ee9..d6bfa1e 100644
--- a/share/gdb/python/gdb/FrameDecorator.py
+++ b/share/gdb/python/gdb/FrameDecorator.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2015 Free Software Foundation, Inc.
+# Copyright (C) 2013-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/FrameIterator.py b/share/gdb/python/gdb/FrameIterator.py
index 1e96ab0..70dfaf3 100644
--- a/share/gdb/python/gdb/FrameIterator.py
+++ b/share/gdb/python/gdb/FrameIterator.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2015 Free Software Foundation, Inc.
+# Copyright (C) 2013-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/__init__.py b/share/gdb/python/gdb/__init__.py
index 81789e5..5205cc9 100644
--- a/share/gdb/python/gdb/__init__.py
+++ b/share/gdb/python/gdb/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/command/__init__.py b/share/gdb/python/gdb/command/__init__.py
index bb77cd7..8433d50 100644
--- a/share/gdb/python/gdb/command/__init__.py
+++ b/share/gdb/python/gdb/command/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/command/explore.py b/share/gdb/python/gdb/command/explore.py
index 88f3e9a..6c9f17b 100644
--- a/share/gdb/python/gdb/command/explore.py
+++ b/share/gdb/python/gdb/command/explore.py
@@ -1,5 +1,5 @@
 # GDB 'explore' command.
-# Copyright (C) 2012-2015 Free Software Foundation, Inc.
+# Copyright (C) 2012-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/command/frame_filters.py b/share/gdb/python/gdb/command/frame_filters.py
index d88cb96..c9d4f3e 100644
--- a/share/gdb/python/gdb/command/frame_filters.py
+++ b/share/gdb/python/gdb/command/frame_filters.py
@@ -1,5 +1,5 @@
 # Frame-filter commands.
-# Copyright (C) 2013-2015 Free Software Foundation, Inc.
+# Copyright (C) 2013-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/command/pretty_printers.py b/share/gdb/python/gdb/command/pretty_printers.py
index afe8fb8..21bb0d6 100644
--- a/share/gdb/python/gdb/command/pretty_printers.py
+++ b/share/gdb/python/gdb/command/pretty_printers.py
@@ -1,5 +1,5 @@
 # Pretty-printer commands.
-# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/command/prompt.py b/share/gdb/python/gdb/command/prompt.py
index 4ac4cb6..c7fc0d8 100644
--- a/share/gdb/python/gdb/command/prompt.py
+++ b/share/gdb/python/gdb/command/prompt.py
@@ -1,5 +1,5 @@
 # Extended prompt.
-# Copyright (C) 2011-2015 Free Software Foundation, Inc.
+# Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/command/type_printers.py b/share/gdb/python/gdb/command/type_printers.py
index 1203989..c83ed35 100644
--- a/share/gdb/python/gdb/command/type_printers.py
+++ b/share/gdb/python/gdb/command/type_printers.py
@@ -1,5 +1,5 @@
 # Type printer commands.
-# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/command/unwinders.py b/share/gdb/python/gdb/command/unwinders.py
index 1a5aed9..a9b9d8a 100644
--- a/share/gdb/python/gdb/command/unwinders.py
+++ b/share/gdb/python/gdb/command/unwinders.py
@@ -1,5 +1,5 @@
 # Unwinder commands.
-# Copyright 2015 Free Software Foundation, Inc.
+# Copyright 2015-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/command/xmethods.py b/share/gdb/python/gdb/command/xmethods.py
index 0788a81..46f7b66 100644
--- a/share/gdb/python/gdb/command/xmethods.py
+++ b/share/gdb/python/gdb/command/xmethods.py
@@ -1,5 +1,5 @@
 # Xmethod commands.
-# Copyright 2013-2015 Free Software Foundation, Inc.
+# Copyright 2013-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/frames.py b/share/gdb/python/gdb/frames.py
index d51b579..6ae92ed 100644
--- a/share/gdb/python/gdb/frames.py
+++ b/share/gdb/python/gdb/frames.py
@@ -1,5 +1,5 @@
 # Frame-filter commands.
-# Copyright (C) 2013-2015 Free Software Foundation, Inc.
+# Copyright (C) 2013-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/function/__init__.py b/share/gdb/python/gdb/function/__init__.py
index 25ca285..5220787 100644
--- a/share/gdb/python/gdb/function/__init__.py
+++ b/share/gdb/python/gdb/function/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015 Free Software Foundation, Inc.
+# Copyright (C) 2012-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/function/caller_is.py b/share/gdb/python/gdb/function/caller_is.py
index 7a7be9d..5b89191 100644
--- a/share/gdb/python/gdb/function/caller_is.py
+++ b/share/gdb/python/gdb/function/caller_is.py
@@ -1,5 +1,5 @@
 # Caller-is functions.
-# Copyright (C) 2008-2015 Free Software Foundation, Inc.
+# Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/function/strfns.py b/share/gdb/python/gdb/function/strfns.py
index 0287c9a..06a37ad 100644
--- a/share/gdb/python/gdb/function/strfns.py
+++ b/share/gdb/python/gdb/function/strfns.py
@@ -1,5 +1,5 @@
 # Useful gdb string convenience functions.
-# Copyright (C) 2012-2015 Free Software Foundation, Inc.
+# Copyright (C) 2012-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/printer/__init__.py b/share/gdb/python/gdb/printer/__init__.py
index 13a0634..a8ac8bc 100644
--- a/share/gdb/python/gdb/printer/__init__.py
+++ b/share/gdb/python/gdb/printer/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2015 Free Software Foundation, Inc.
+# Copyright (C) 2014-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/printer/bound_registers.py b/share/gdb/python/gdb/printer/bound_registers.py
index e372e59..9ff94aa 100644
--- a/share/gdb/python/gdb/printer/bound_registers.py
+++ b/share/gdb/python/gdb/printer/bound_registers.py
@@ -1,5 +1,5 @@
 # Pretty-printers for bounds registers.
-# Copyright (C) 2013-2015 Free Software Foundation, Inc.
+# Copyright (C) 2013-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/printing.py b/share/gdb/python/gdb/printing.py
index ff20f71..63c3aeb 100644
--- a/share/gdb/python/gdb/printing.py
+++ b/share/gdb/python/gdb/printing.py
@@ -1,5 +1,5 @@
 # Pretty-printer utilities.
-# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -239,7 +239,7 @@
         if not any_found or v != 0:
             # Leftover value.
             flag_list.append('<unknown: 0x%x>' % v)
-        return "0x%x [%s]" % (self.val, " | ".join(flag_list))
+        return "0x%x [%s]" % (int(self.val), " | ".join(flag_list))
 
 class FlagEnumerationPrinter(PrettyPrinter):
     """A pretty-printer which can be used to print a flag-style enumeration.
@@ -263,7 +263,7 @@
                 self.enumerators.append((field.name, field.enumval))
             # Sorting the enumerators by value usually does the right
             # thing.
-            self.enumerators.sort(key = lambda x: x.enumval)
+            self.enumerators.sort(key = lambda x: x[1])
 
         if self.enabled:
             return _EnumInstance(self.enumerators, val)
diff --git a/share/gdb/python/gdb/prompt.py b/share/gdb/python/gdb/prompt.py
index 9de1433..15f4a1d 100644
--- a/share/gdb/python/gdb/prompt.py
+++ b/share/gdb/python/gdb/prompt.py
@@ -1,5 +1,5 @@
 # Extended prompt utilities.
-# Copyright (C) 2011-2015 Free Software Foundation, Inc.
+# Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/types.py b/share/gdb/python/gdb/types.py
index 5c9f5a9..c22e8a9 100644
--- a/share/gdb/python/gdb/types.py
+++ b/share/gdb/python/gdb/types.py
@@ -1,5 +1,5 @@
 # Type utilities.
-# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/unwinder.py b/share/gdb/python/gdb/unwinder.py
index 3554e9c..14b2758 100644
--- a/share/gdb/python/gdb/unwinder.py
+++ b/share/gdb/python/gdb/unwinder.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2015 Free Software Foundation, Inc.
+# Copyright (C) 2015-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/xmethod.py b/share/gdb/python/gdb/xmethod.py
index 6acc23c..aa0cf0a 100644
--- a/share/gdb/python/gdb/xmethod.py
+++ b/share/gdb/python/gdb/xmethod.py
@@ -1,5 +1,5 @@
 # Python side of the support for xmethods.
-# Copyright (C) 2013-2015 Free Software Foundation, Inc.
+# Copyright (C) 2013-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/syscalls/aarch64-linux.xml b/share/gdb/syscalls/aarch64-linux.xml
index 537d789..e1fa0da 100644
--- a/share/gdb/syscalls/aarch64-linux.xml
+++ b/share/gdb/syscalls/aarch64-linux.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/amd64-linux.xml b/share/gdb/syscalls/amd64-linux.xml
index 171ca92..074b587 100644
--- a/share/gdb/syscalls/amd64-linux.xml
+++ b/share/gdb/syscalls/amd64-linux.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/arm-linux.xml b/share/gdb/syscalls/arm-linux.xml
index 5f7a35a..c0a456b 100644
--- a/share/gdb/syscalls/arm-linux.xml
+++ b/share/gdb/syscalls/arm-linux.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/gdb-syscalls.dtd b/share/gdb/syscalls/gdb-syscalls.dtd
index b05976e..3deda12 100644
--- a/share/gdb/syscalls/gdb-syscalls.dtd
+++ b/share/gdb/syscalls/gdb-syscalls.dtd
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2009-2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/i386-linux.xml b/share/gdb/syscalls/i386-linux.xml
index 7121af5..aab03ec 100644
--- a/share/gdb/syscalls/i386-linux.xml
+++ b/share/gdb/syscalls/i386-linux.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/mips-n32-linux.xml b/share/gdb/syscalls/mips-n32-linux.xml
index 5cf33bf..7318ae1 100644
--- a/share/gdb/syscalls/mips-n32-linux.xml
+++ b/share/gdb/syscalls/mips-n32-linux.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2011-2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/mips-n64-linux.xml b/share/gdb/syscalls/mips-n64-linux.xml
index 3c89c2a..b45f4b9 100644
--- a/share/gdb/syscalls/mips-n64-linux.xml
+++ b/share/gdb/syscalls/mips-n64-linux.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2011-2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/mips-o32-linux.xml b/share/gdb/syscalls/mips-o32-linux.xml
index ef8e421..94fa3f7 100644
--- a/share/gdb/syscalls/mips-o32-linux.xml
+++ b/share/gdb/syscalls/mips-o32-linux.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2011-2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/ppc-linux.xml b/share/gdb/syscalls/ppc-linux.xml
index ce2d34f..71e7cd6 100644
--- a/share/gdb/syscalls/ppc-linux.xml
+++ b/share/gdb/syscalls/ppc-linux.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/ppc64-linux.xml b/share/gdb/syscalls/ppc64-linux.xml
index a456317..6906e7e 100644
--- a/share/gdb/syscalls/ppc64-linux.xml
+++ b/share/gdb/syscalls/ppc64-linux.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/s390-linux.xml b/share/gdb/syscalls/s390-linux.xml
index a45011e..6c0593f 100644
--- a/share/gdb/syscalls/s390-linux.xml
+++ b/share/gdb/syscalls/s390-linux.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/s390x-linux.xml b/share/gdb/syscalls/s390x-linux.xml
index f2c046c..563e521 100644
--- a/share/gdb/syscalls/s390x-linux.xml
+++ b/share/gdb/syscalls/s390x-linux.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2009-2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/sparc-linux.xml b/share/gdb/syscalls/sparc-linux.xml
index a711e72..70115ab 100644
--- a/share/gdb/syscalls/sparc-linux.xml
+++ b/share/gdb/syscalls/sparc-linux.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/sparc64-linux.xml b/share/gdb/syscalls/sparc64-linux.xml
index c7c149d..7dd62b4 100644
--- a/share/gdb/syscalls/sparc64-linux.xml
+++ b/share/gdb/syscalls/sparc64-linux.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<!-- Copyright (C) 2010-2015 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
      Copying and distribution of this file, with or without modification,
      are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/system-gdbinit/elinos.py b/share/gdb/system-gdbinit/elinos.py
index 5944abc..79530cc 100644
--- a/share/gdb/system-gdbinit/elinos.py
+++ b/share/gdb/system-gdbinit/elinos.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2015 Free Software Foundation, Inc.
+# Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/system-gdbinit/wrs-linux.py b/share/gdb/system-gdbinit/wrs-linux.py
index b345389..5c73df4 100644
--- a/share/gdb/system-gdbinit/wrs-linux.py
+++ b/share/gdb/system-gdbinit/wrs-linux.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2015 Free Software Foundation, Inc.
+# Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/share/man/man1/python.1 b/share/man/man1/python.1
deleted file mode 120000
index 822d62f..0000000
--- a/share/man/man1/python.1
+++ /dev/null
@@ -1 +0,0 @@
-python2.1
\ No newline at end of file
diff --git a/share/man/man1/python.1 b/share/man/man1/python.1
new file mode 100644
index 0000000..39edbca
--- /dev/null
+++ b/share/man/man1/python.1
@@ -0,0 +1,473 @@
+.TH PYTHON "1" "$Date$"
+
+.\" To view this file while editing, run it through groff:
+.\"   groff -Tascii -man python.man | less
+
+.SH NAME
+python \- an interpreted, interactive, object-oriented programming language
+.SH SYNOPSIS
+.B python
+[
+.B \-B
+]
+[
+.B \-d
+]
+[
+.B \-E
+]
+[
+.B \-h
+]
+[
+.B \-i
+]
+[
+.B \-m 
+.I module-name
+]
+.br
+       [
+.B \-O
+]
+[
+.B \-OO
+]
+[
+.B \-R
+]
+[
+.B -Q
+.I argument
+]
+[
+.B \-s
+]
+[
+.B \-S
+]
+[
+.B \-t
+]
+[
+.B \-u
+]
+.br
+       [
+.B \-v
+]
+[
+.B \-V
+]
+[
+.B \-W
+.I argument
+]
+[
+.B \-x
+]
+[
+.B \-3
+]
+[
+.B \-?
+]
+.br
+       [
+.B \-c
+.I command
+|
+.I script
+|
+\-
+]
+[
+.I arguments
+]
+.SH DESCRIPTION
+Python is an interpreted, interactive, object-oriented programming
+language that combines remarkable power with very clear syntax.
+For an introduction to programming in Python you are referred to the
+Python Tutorial.
+The Python Library Reference documents built-in and standard types,
+constants, functions and modules.
+Finally, the Python Reference Manual describes the syntax and
+semantics of the core language in (perhaps too) much detail.
+(These documents may be located via the
+.B "INTERNET RESOURCES"
+below; they may be installed on your system as well.)
+.PP
+Python's basic power can be extended with your own modules written in
+C or C++.
+On most systems such modules may be dynamically loaded.
+Python is also adaptable as an extension language for existing
+applications.
+See the internal documentation for hints.
+.PP
+Documentation for installed Python modules and packages can be 
+viewed by running the 
+.B pydoc
+program.  
+.SH COMMAND LINE OPTIONS
+.TP
+.B \-B
+Don't write
+.I .py[co]
+files on import. See also PYTHONDONTWRITEBYTECODE.
+.TP
+.BI "\-c " command
+Specify the command to execute (see next section).
+This terminates the option list (following options are passed as
+arguments to the command).
+.TP
+.B \-d
+Turn on parser debugging output (for wizards only, depending on
+compilation options).
+.TP
+.B \-E
+Ignore environment variables like PYTHONPATH and PYTHONHOME that modify
+the behavior of the interpreter.
+.TP
+.B \-h ", " \-? ", "\-\-help
+Prints the usage for the interpreter executable and exits.
+.TP
+.B \-i
+When a script is passed as first argument or the \fB\-c\fP option is
+used, enter interactive mode after executing the script or the
+command.  It does not read the $PYTHONSTARTUP file.  This can be
+useful to inspect global variables or a stack trace when a script
+raises an exception.
+.TP
+.BI "\-m " module-name
+Searches 
+.I sys.path 
+for the named module and runs the corresponding 
+.I .py 
+file as a script.
+.TP
+.B \-O
+Turn on basic optimizations.  This changes the filename extension for
+compiled (bytecode) files from
+.I .pyc
+to \fI.pyo\fP.  Given twice, causes docstrings to be discarded.
+.TP
+.B \-OO
+Discard docstrings in addition to the \fB-O\fP optimizations.
+.TP
+.B \-R
+Turn on "hash randomization", so that the hash() values of str, bytes and
+datetime objects are "salted" with an unpredictable pseudo-random value.
+Although they remain constant within an individual Python process, they are
+not predictable between repeated invocations of Python.
+.IP
+This is intended to provide protection against a denial of service
+caused by carefully-chosen inputs that exploit the worst case performance
+of a dict construction, O(n^2) complexity.  See
+http://www.ocert.org/advisories/ocert-2011-003.html
+for details.
+.TP
+.BI "\-Q " argument
+Division control; see PEP 238.  The argument must be one of "old" (the
+default, int/int and long/long return an int or long), "new" (new
+division semantics, i.e. int/int and long/long returns a float),
+"warn" (old division semantics with a warning for int/int and
+long/long), or "warnall" (old division semantics with a warning for
+all use of the division operator).  For a use of "warnall", see the
+Tools/scripts/fixdiv.py script.
+.TP
+.B \-s
+Don't add user site directory to sys.path.
+.TP
+.B \-S
+Disable the import of the module
+.I site
+and the site-dependent manipulations of
+.I sys.path
+that it entails.
+.TP
+.B \-t
+Issue a warning when a source file mixes tabs and spaces for
+indentation in a way that makes it depend on the worth of a tab
+expressed in spaces.  Issue an error when the option is given twice.
+.TP
+.B \-u
+Force stdin, stdout and stderr to be totally unbuffered.  On systems
+where it matters, also put stdin, stdout and stderr in binary mode.
+Note that there is internal buffering in xreadlines(), readlines() and
+file-object iterators ("for line in sys.stdin") which is not
+influenced by this option.  To work around this, you will want to use
+"sys.stdin.readline()" inside a "while 1:" loop.
+.TP
+.B \-v
+Print a message each time a module is initialized, showing the place
+(filename or built-in module) from which it is loaded.  When given
+twice, print a message for each file that is checked for when 
+searching for a module.  Also provides information on module cleanup
+at exit.
+.TP
+.B \-V ", " \-\-version
+Prints the Python version number of the executable and exits.
+.TP
+.BI "\-W " argument
+Warning control.  Python sometimes prints warning message to
+.IR sys.stderr .
+A typical warning message has the following form:
+.IB file ":" line ": " category ": " message.
+By default, each warning is printed once for each source line where it
+occurs.  This option controls how often warnings are printed.
+Multiple
+.B \-W
+options may be given; when a warning matches more than one
+option, the action for the last matching option is performed.
+Invalid
+.B \-W
+options are ignored (a warning message is printed about invalid
+options when the first warning is issued).  Warnings can also be
+controlled from within a Python program using the
+.I warnings
+module.
+
+The simplest form of
+.I argument
+is one of the following
+.I action
+strings (or a unique abbreviation):
+.B ignore
+to ignore all warnings;
+.B default
+to explicitly request the default behavior (printing each warning once
+per source line);
+.B all
+to print a warning each time it occurs (this may generate many
+messages if a warning is triggered repeatedly for the same source
+line, such as inside a loop);
+.B module
+to print each warning only the first time it occurs in each
+module;
+.B once
+to print each warning only the first time it occurs in the program; or
+.B error
+to raise an exception instead of printing a warning message.
+
+The full form of
+.I argument
+is
+.IB action : message : category : module : line.
+Here,
+.I action
+is as explained above but only applies to messages that match the
+remaining fields.  Empty fields match all values; trailing empty
+fields may be omitted.  The
+.I message
+field matches the start of the warning message printed; this match is
+case-insensitive.  The
+.I category
+field matches the warning category.  This must be a class name; the
+match test whether the actual warning category of the message is a
+subclass of the specified warning category.  The full class name must
+be given.  The
+.I module
+field matches the (fully-qualified) module name; this match is
+case-sensitive.  The
+.I line
+field matches the line number, where zero matches all line numbers and
+is thus equivalent to an omitted line number.
+.TP
+.B \-x
+Skip the first line of the source.  This is intended for a DOS
+specific hack only.  Warning: the line numbers in error messages will
+be off by one!
+.TP
+.B \-3
+Warn about Python 3.x incompatibilities that 2to3 cannot trivially fix.
+.SH INTERPRETER INTERFACE
+The interpreter interface resembles that of the UNIX shell: when
+called with standard input connected to a tty device, it prompts for
+commands and executes them until an EOF is read; when called with a
+file name argument or with a file as standard input, it reads and
+executes a
+.I script
+from that file;
+when called with
+.B \-c
+.I command,
+it executes the Python statement(s) given as
+.I command.
+Here
+.I command
+may contain multiple statements separated by newlines.
+Leading whitespace is significant in Python statements!
+In non-interactive mode, the entire input is parsed before it is
+executed.
+.PP
+If available, the script name and additional arguments thereafter are
+passed to the script in the Python variable
+.I sys.argv ,
+which is a list of strings (you must first
+.I import sys
+to be able to access it).
+If no script name is given,
+.I sys.argv[0]
+is an empty string; if
+.B \-c
+is used,
+.I sys.argv[0]
+contains the string
+.I '-c'.
+Note that options interpreted by the Python interpreter itself
+are not placed in
+.I sys.argv.
+.PP
+In interactive mode, the primary prompt is `>>>'; the second prompt
+(which appears when a command is not complete) is `...'.
+The prompts can be changed by assignment to
+.I sys.ps1
+or
+.I sys.ps2.
+The interpreter quits when it reads an EOF at a prompt.
+When an unhandled exception occurs, a stack trace is printed and
+control returns to the primary prompt; in non-interactive mode, the
+interpreter exits after printing the stack trace.
+The interrupt signal raises the
+.I Keyboard\%Interrupt
+exception; other UNIX signals are not caught (except that SIGPIPE is
+sometimes ignored, in favor of the
+.I IOError
+exception).  Error messages are written to stderr.
+.SH FILES AND DIRECTORIES
+These are subject to difference depending on local installation
+conventions; ${prefix} and ${exec_prefix} are installation-dependent
+and should be interpreted as for GNU software; they may be the same.
+The default for both is \fI/usr/local\fP.
+.IP \fI${exec_prefix}/bin/python\fP
+Recommended location of the interpreter.
+.PP
+.I ${prefix}/lib/python<version>
+.br
+.I ${exec_prefix}/lib/python<version>
+.RS
+Recommended locations of the directories containing the standard
+modules.
+.RE
+.PP
+.I ${prefix}/include/python<version>
+.br
+.I ${exec_prefix}/include/python<version>
+.RS
+Recommended locations of the directories containing the include files
+needed for developing Python extensions and embedding the
+interpreter.
+.RE
+.IP \fI~/.pythonrc.py\fP
+User-specific initialization file loaded by the \fIuser\fP module;
+not used by default or by most applications.
+.SH ENVIRONMENT VARIABLES
+.IP PYTHONHOME
+Change the location of the standard Python libraries.  By default, the
+libraries are searched in ${prefix}/lib/python<version> and
+${exec_prefix}/lib/python<version>, where ${prefix} and ${exec_prefix}
+are installation-dependent directories, both defaulting to
+\fI/usr/local\fP.  When $PYTHONHOME is set to a single directory, its value
+replaces both ${prefix} and ${exec_prefix}.  To specify different values
+for these, set $PYTHONHOME to ${prefix}:${exec_prefix}.
+.IP PYTHONPATH
+Augments the default search path for module files.
+The format is the same as the shell's $PATH: one or more directory
+pathnames separated by colons.
+Non-existent directories are silently ignored.
+The default search path is installation dependent, but generally
+begins with ${prefix}/lib/python<version> (see PYTHONHOME above).
+The default search path is always appended to $PYTHONPATH.
+If a script argument is given, the directory containing the script is
+inserted in the path in front of $PYTHONPATH.
+The search path can be manipulated from within a Python program as the
+variable
+.I sys.path .
+.IP PYTHONSTARTUP
+If this is the name of a readable file, the Python commands in that
+file are executed before the first prompt is displayed in interactive
+mode.
+The file is executed in the same name space where interactive commands
+are executed so that objects defined or imported in it can be used
+without qualification in the interactive session.
+You can also change the prompts
+.I sys.ps1
+and
+.I sys.ps2
+in this file.
+.IP PYTHONY2K
+Set this to a non-empty string to cause the \fItime\fP module to
+require dates specified as strings to include 4-digit years, otherwise
+2-digit years are converted based on rules described in the \fItime\fP
+module documentation.
+.IP PYTHONOPTIMIZE
+If this is set to a non-empty string it is equivalent to specifying
+the \fB\-O\fP option. If set to an integer, it is equivalent to
+specifying \fB\-O\fP multiple times.
+.IP PYTHONDEBUG
+If this is set to a non-empty string it is equivalent to specifying
+the \fB\-d\fP option. If set to an integer, it is equivalent to
+specifying \fB\-d\fP multiple times.
+.IP PYTHONDONTWRITEBYTECODE
+If this is set to a non-empty string it is equivalent to specifying
+the \fB\-B\fP option (don't try to write
+.I .py[co]
+files).
+.IP PYTHONINSPECT
+If this is set to a non-empty string it is equivalent to specifying
+the \fB\-i\fP option.
+.IP PYTHONIOENCODING
+If this is set before running the interpreter, it overrides the encoding used
+for stdin/stdout/stderr, in the syntax
+.IB encodingname ":" errorhandler
+The
+.IB errorhandler
+part is optional and has the same meaning as in str.encode. For stderr, the
+.IB errorhandler
+ part is ignored; the handler will always be \'backslashreplace\'.
+.IP PYTHONNOUSERSITE
+If this is set to a non-empty string it is equivalent to specifying the
+\fB\-s\fP option (Don't add the user site directory to sys.path).
+.IP PYTHONUNBUFFERED
+If this is set to a non-empty string it is equivalent to specifying
+the \fB\-u\fP option.
+.IP PYTHONVERBOSE
+If this is set to a non-empty string it is equivalent to specifying
+the \fB\-v\fP option. If set to an integer, it is equivalent to
+specifying \fB\-v\fP multiple times. 
+.IP PYTHONWARNINGS
+If this is set to a comma-separated string it is equivalent to
+specifying the \fB\-W\fP option for each separate value.
+.IP PYTHONHASHSEED
+If this variable is set to "random", the effect is the same as specifying
+the \fB-R\fP option: a random value is used to seed the hashes of str,
+bytes and datetime objects.
+
+If PYTHONHASHSEED is set to an integer value, it is used as a fixed seed for
+generating the hash() of the types covered by the hash randomization.  Its
+purpose is to allow repeatable hashing, such as for selftests for the
+interpreter itself, or to allow a cluster of python processes to share hash
+values.
+
+The integer must be a decimal number in the range [0,4294967295].  Specifying
+the value 0 will lead to the same hash values as when hash randomization is
+disabled.
+.SH AUTHOR
+The Python Software Foundation: http://www.python.org/psf
+.SH INTERNET RESOURCES
+Main website:  http://www.python.org/
+.br
+Documentation:  http://docs.python.org/
+.br
+Developer resources:  http://docs.python.org/devguide/
+.br
+Downloads:  http://python.org/download/
+.br
+Module repository:  http://pypi.python.org/
+.br
+Newsgroups:  comp.lang.python, comp.lang.python.announce
+.SH LICENSING
+Python is distributed under an Open Source license.  See the file
+"LICENSE" in the Python source distribution for information on terms &
+conditions for accessing and otherwise using Python and for a
+DISCLAIMER OF ALL WARRANTIES.
diff --git a/share/man/man1/python2.1 b/share/man/man1/python2.1
deleted file mode 120000
index afc5687..0000000
--- a/share/man/man1/python2.1
+++ /dev/null
@@ -1 +0,0 @@
-python2.7.1
\ No newline at end of file
diff --git a/share/man/man1/python2.1 b/share/man/man1/python2.1
new file mode 100644
index 0000000..39edbca
--- /dev/null
+++ b/share/man/man1/python2.1
@@ -0,0 +1,473 @@
+.TH PYTHON "1" "$Date$"
+
+.\" To view this file while editing, run it through groff:
+.\"   groff -Tascii -man python.man | less
+
+.SH NAME
+python \- an interpreted, interactive, object-oriented programming language
+.SH SYNOPSIS
+.B python
+[
+.B \-B
+]
+[
+.B \-d
+]
+[
+.B \-E
+]
+[
+.B \-h
+]
+[
+.B \-i
+]
+[
+.B \-m 
+.I module-name
+]
+.br
+       [
+.B \-O
+]
+[
+.B \-OO
+]
+[
+.B \-R
+]
+[
+.B -Q
+.I argument
+]
+[
+.B \-s
+]
+[
+.B \-S
+]
+[
+.B \-t
+]
+[
+.B \-u
+]
+.br
+       [
+.B \-v
+]
+[
+.B \-V
+]
+[
+.B \-W
+.I argument
+]
+[
+.B \-x
+]
+[
+.B \-3
+]
+[
+.B \-?
+]
+.br
+       [
+.B \-c
+.I command
+|
+.I script
+|
+\-
+]
+[
+.I arguments
+]
+.SH DESCRIPTION
+Python is an interpreted, interactive, object-oriented programming
+language that combines remarkable power with very clear syntax.
+For an introduction to programming in Python you are referred to the
+Python Tutorial.
+The Python Library Reference documents built-in and standard types,
+constants, functions and modules.
+Finally, the Python Reference Manual describes the syntax and
+semantics of the core language in (perhaps too) much detail.
+(These documents may be located via the
+.B "INTERNET RESOURCES"
+below; they may be installed on your system as well.)
+.PP
+Python's basic power can be extended with your own modules written in
+C or C++.
+On most systems such modules may be dynamically loaded.
+Python is also adaptable as an extension language for existing
+applications.
+See the internal documentation for hints.
+.PP
+Documentation for installed Python modules and packages can be 
+viewed by running the 
+.B pydoc
+program.  
+.SH COMMAND LINE OPTIONS
+.TP
+.B \-B
+Don't write
+.I .py[co]
+files on import. See also PYTHONDONTWRITEBYTECODE.
+.TP
+.BI "\-c " command
+Specify the command to execute (see next section).
+This terminates the option list (following options are passed as
+arguments to the command).
+.TP
+.B \-d
+Turn on parser debugging output (for wizards only, depending on
+compilation options).
+.TP
+.B \-E
+Ignore environment variables like PYTHONPATH and PYTHONHOME that modify
+the behavior of the interpreter.
+.TP
+.B \-h ", " \-? ", "\-\-help
+Prints the usage for the interpreter executable and exits.
+.TP
+.B \-i
+When a script is passed as first argument or the \fB\-c\fP option is
+used, enter interactive mode after executing the script or the
+command.  It does not read the $PYTHONSTARTUP file.  This can be
+useful to inspect global variables or a stack trace when a script
+raises an exception.
+.TP
+.BI "\-m " module-name
+Searches 
+.I sys.path 
+for the named module and runs the corresponding 
+.I .py 
+file as a script.
+.TP
+.B \-O
+Turn on basic optimizations.  This changes the filename extension for
+compiled (bytecode) files from
+.I .pyc
+to \fI.pyo\fP.  Given twice, causes docstrings to be discarded.
+.TP
+.B \-OO
+Discard docstrings in addition to the \fB-O\fP optimizations.
+.TP
+.B \-R
+Turn on "hash randomization", so that the hash() values of str, bytes and
+datetime objects are "salted" with an unpredictable pseudo-random value.
+Although they remain constant within an individual Python process, they are
+not predictable between repeated invocations of Python.
+.IP
+This is intended to provide protection against a denial of service
+caused by carefully-chosen inputs that exploit the worst case performance
+of a dict construction, O(n^2) complexity.  See
+http://www.ocert.org/advisories/ocert-2011-003.html
+for details.
+.TP
+.BI "\-Q " argument
+Division control; see PEP 238.  The argument must be one of "old" (the
+default, int/int and long/long return an int or long), "new" (new
+division semantics, i.e. int/int and long/long returns a float),
+"warn" (old division semantics with a warning for int/int and
+long/long), or "warnall" (old division semantics with a warning for
+all use of the division operator).  For a use of "warnall", see the
+Tools/scripts/fixdiv.py script.
+.TP
+.B \-s
+Don't add user site directory to sys.path.
+.TP
+.B \-S
+Disable the import of the module
+.I site
+and the site-dependent manipulations of
+.I sys.path
+that it entails.
+.TP
+.B \-t
+Issue a warning when a source file mixes tabs and spaces for
+indentation in a way that makes it depend on the worth of a tab
+expressed in spaces.  Issue an error when the option is given twice.
+.TP
+.B \-u
+Force stdin, stdout and stderr to be totally unbuffered.  On systems
+where it matters, also put stdin, stdout and stderr in binary mode.
+Note that there is internal buffering in xreadlines(), readlines() and
+file-object iterators ("for line in sys.stdin") which is not
+influenced by this option.  To work around this, you will want to use
+"sys.stdin.readline()" inside a "while 1:" loop.
+.TP
+.B \-v
+Print a message each time a module is initialized, showing the place
+(filename or built-in module) from which it is loaded.  When given
+twice, print a message for each file that is checked for when 
+searching for a module.  Also provides information on module cleanup
+at exit.
+.TP
+.B \-V ", " \-\-version
+Prints the Python version number of the executable and exits.
+.TP
+.BI "\-W " argument
+Warning control.  Python sometimes prints warning message to
+.IR sys.stderr .
+A typical warning message has the following form:
+.IB file ":" line ": " category ": " message.
+By default, each warning is printed once for each source line where it
+occurs.  This option controls how often warnings are printed.
+Multiple
+.B \-W
+options may be given; when a warning matches more than one
+option, the action for the last matching option is performed.
+Invalid
+.B \-W
+options are ignored (a warning message is printed about invalid
+options when the first warning is issued).  Warnings can also be
+controlled from within a Python program using the
+.I warnings
+module.
+
+The simplest form of
+.I argument
+is one of the following
+.I action
+strings (or a unique abbreviation):
+.B ignore
+to ignore all warnings;
+.B default
+to explicitly request the default behavior (printing each warning once
+per source line);
+.B all
+to print a warning each time it occurs (this may generate many
+messages if a warning is triggered repeatedly for the same source
+line, such as inside a loop);
+.B module
+to print each warning only the first time it occurs in each
+module;
+.B once
+to print each warning only the first time it occurs in the program; or
+.B error
+to raise an exception instead of printing a warning message.
+
+The full form of
+.I argument
+is
+.IB action : message : category : module : line.
+Here,
+.I action
+is as explained above but only applies to messages that match the
+remaining fields.  Empty fields match all values; trailing empty
+fields may be omitted.  The
+.I message
+field matches the start of the warning message printed; this match is
+case-insensitive.  The
+.I category
+field matches the warning category.  This must be a class name; the
+match test whether the actual warning category of the message is a
+subclass of the specified warning category.  The full class name must
+be given.  The
+.I module
+field matches the (fully-qualified) module name; this match is
+case-sensitive.  The
+.I line
+field matches the line number, where zero matches all line numbers and
+is thus equivalent to an omitted line number.
+.TP
+.B \-x
+Skip the first line of the source.  This is intended for a DOS
+specific hack only.  Warning: the line numbers in error messages will
+be off by one!
+.TP
+.B \-3
+Warn about Python 3.x incompatibilities that 2to3 cannot trivially fix.
+.SH INTERPRETER INTERFACE
+The interpreter interface resembles that of the UNIX shell: when
+called with standard input connected to a tty device, it prompts for
+commands and executes them until an EOF is read; when called with a
+file name argument or with a file as standard input, it reads and
+executes a
+.I script
+from that file;
+when called with
+.B \-c
+.I command,
+it executes the Python statement(s) given as
+.I command.
+Here
+.I command
+may contain multiple statements separated by newlines.
+Leading whitespace is significant in Python statements!
+In non-interactive mode, the entire input is parsed before it is
+executed.
+.PP
+If available, the script name and additional arguments thereafter are
+passed to the script in the Python variable
+.I sys.argv ,
+which is a list of strings (you must first
+.I import sys
+to be able to access it).
+If no script name is given,
+.I sys.argv[0]
+is an empty string; if
+.B \-c
+is used,
+.I sys.argv[0]
+contains the string
+.I '-c'.
+Note that options interpreted by the Python interpreter itself
+are not placed in
+.I sys.argv.
+.PP
+In interactive mode, the primary prompt is `>>>'; the second prompt
+(which appears when a command is not complete) is `...'.
+The prompts can be changed by assignment to
+.I sys.ps1
+or
+.I sys.ps2.
+The interpreter quits when it reads an EOF at a prompt.
+When an unhandled exception occurs, a stack trace is printed and
+control returns to the primary prompt; in non-interactive mode, the
+interpreter exits after printing the stack trace.
+The interrupt signal raises the
+.I Keyboard\%Interrupt
+exception; other UNIX signals are not caught (except that SIGPIPE is
+sometimes ignored, in favor of the
+.I IOError
+exception).  Error messages are written to stderr.
+.SH FILES AND DIRECTORIES
+These are subject to difference depending on local installation
+conventions; ${prefix} and ${exec_prefix} are installation-dependent
+and should be interpreted as for GNU software; they may be the same.
+The default for both is \fI/usr/local\fP.
+.IP \fI${exec_prefix}/bin/python\fP
+Recommended location of the interpreter.
+.PP
+.I ${prefix}/lib/python<version>
+.br
+.I ${exec_prefix}/lib/python<version>
+.RS
+Recommended locations of the directories containing the standard
+modules.
+.RE
+.PP
+.I ${prefix}/include/python<version>
+.br
+.I ${exec_prefix}/include/python<version>
+.RS
+Recommended locations of the directories containing the include files
+needed for developing Python extensions and embedding the
+interpreter.
+.RE
+.IP \fI~/.pythonrc.py\fP
+User-specific initialization file loaded by the \fIuser\fP module;
+not used by default or by most applications.
+.SH ENVIRONMENT VARIABLES
+.IP PYTHONHOME
+Change the location of the standard Python libraries.  By default, the
+libraries are searched in ${prefix}/lib/python<version> and
+${exec_prefix}/lib/python<version>, where ${prefix} and ${exec_prefix}
+are installation-dependent directories, both defaulting to
+\fI/usr/local\fP.  When $PYTHONHOME is set to a single directory, its value
+replaces both ${prefix} and ${exec_prefix}.  To specify different values
+for these, set $PYTHONHOME to ${prefix}:${exec_prefix}.
+.IP PYTHONPATH
+Augments the default search path for module files.
+The format is the same as the shell's $PATH: one or more directory
+pathnames separated by colons.
+Non-existent directories are silently ignored.
+The default search path is installation dependent, but generally
+begins with ${prefix}/lib/python<version> (see PYTHONHOME above).
+The default search path is always appended to $PYTHONPATH.
+If a script argument is given, the directory containing the script is
+inserted in the path in front of $PYTHONPATH.
+The search path can be manipulated from within a Python program as the
+variable
+.I sys.path .
+.IP PYTHONSTARTUP
+If this is the name of a readable file, the Python commands in that
+file are executed before the first prompt is displayed in interactive
+mode.
+The file is executed in the same name space where interactive commands
+are executed so that objects defined or imported in it can be used
+without qualification in the interactive session.
+You can also change the prompts
+.I sys.ps1
+and
+.I sys.ps2
+in this file.
+.IP PYTHONY2K
+Set this to a non-empty string to cause the \fItime\fP module to
+require dates specified as strings to include 4-digit years, otherwise
+2-digit years are converted based on rules described in the \fItime\fP
+module documentation.
+.IP PYTHONOPTIMIZE
+If this is set to a non-empty string it is equivalent to specifying
+the \fB\-O\fP option. If set to an integer, it is equivalent to
+specifying \fB\-O\fP multiple times.
+.IP PYTHONDEBUG
+If this is set to a non-empty string it is equivalent to specifying
+the \fB\-d\fP option. If set to an integer, it is equivalent to
+specifying \fB\-d\fP multiple times.
+.IP PYTHONDONTWRITEBYTECODE
+If this is set to a non-empty string it is equivalent to specifying
+the \fB\-B\fP option (don't try to write
+.I .py[co]
+files).
+.IP PYTHONINSPECT
+If this is set to a non-empty string it is equivalent to specifying
+the \fB\-i\fP option.
+.IP PYTHONIOENCODING
+If this is set before running the interpreter, it overrides the encoding used
+for stdin/stdout/stderr, in the syntax
+.IB encodingname ":" errorhandler
+The
+.IB errorhandler
+part is optional and has the same meaning as in str.encode. For stderr, the
+.IB errorhandler
+ part is ignored; the handler will always be \'backslashreplace\'.
+.IP PYTHONNOUSERSITE
+If this is set to a non-empty string it is equivalent to specifying the
+\fB\-s\fP option (Don't add the user site directory to sys.path).
+.IP PYTHONUNBUFFERED
+If this is set to a non-empty string it is equivalent to specifying
+the \fB\-u\fP option.
+.IP PYTHONVERBOSE
+If this is set to a non-empty string it is equivalent to specifying
+the \fB\-v\fP option. If set to an integer, it is equivalent to
+specifying \fB\-v\fP multiple times. 
+.IP PYTHONWARNINGS
+If this is set to a comma-separated string it is equivalent to
+specifying the \fB\-W\fP option for each separate value.
+.IP PYTHONHASHSEED
+If this variable is set to "random", the effect is the same as specifying
+the \fB-R\fP option: a random value is used to seed the hashes of str,
+bytes and datetime objects.
+
+If PYTHONHASHSEED is set to an integer value, it is used as a fixed seed for
+generating the hash() of the types covered by the hash randomization.  Its
+purpose is to allow repeatable hashing, such as for selftests for the
+interpreter itself, or to allow a cluster of python processes to share hash
+values.
+
+The integer must be a decimal number in the range [0,4294967295].  Specifying
+the value 0 will lead to the same hash values as when hash randomization is
+disabled.
+.SH AUTHOR
+The Python Software Foundation: http://www.python.org/psf
+.SH INTERNET RESOURCES
+Main website:  http://www.python.org/
+.br
+Documentation:  http://docs.python.org/
+.br
+Developer resources:  http://docs.python.org/devguide/
+.br
+Downloads:  http://python.org/download/
+.br
+Module repository:  http://pypi.python.org/
+.br
+Newsgroups:  comp.lang.python, comp.lang.python.announce
+.SH LICENSING
+Python is distributed under an Open Source license.  See the file
+"LICENSE" in the Python source distribution for information on terms &
+conditions for accessing and otherwise using Python and for a
+DISCLAIMER OF ALL WARRANTIES.
diff --git a/share/pretty-printers/libstdcxx/gcc-4.8/__init__.py b/share/pretty-printers/libstdcxx/gcc-4.8.3/__init__.py
similarity index 100%
rename from share/pretty-printers/libstdcxx/gcc-4.8/__init__.py
rename to share/pretty-printers/libstdcxx/gcc-4.8.3/__init__.py
diff --git a/share/pretty-printers/libstdcxx/gcc-4.8/printers.py b/share/pretty-printers/libstdcxx/gcc-4.8.3/printers.py
similarity index 100%
rename from share/pretty-printers/libstdcxx/gcc-4.8/printers.py
rename to share/pretty-printers/libstdcxx/gcc-4.8.3/printers.py
diff --git a/share/pretty-printers/libstdcxx/gcc-4.9/printers.py b/share/pretty-printers/libstdcxx/gcc-4.9/printers.py
index 1fa08fb..65b8a93 100644
--- a/share/pretty-printers/libstdcxx/gcc-4.9/printers.py
+++ b/share/pretty-printers/libstdcxx/gcc-4.9/printers.py
@@ -443,11 +443,12 @@
 
     def __init__ (self, typename, val):
         self.val = val
+        valtype = self.val.type.template_argument(0).strip_typedefs()
+        nodetype = gdb.lookup_type('std::_Rb_tree_node<' + str(valtype) + '>')
+        self.link_type = nodetype.strip_typedefs().pointer()
 
     def to_string (self):
-        typename = str(self.val.type.strip_typedefs()) + '::_Link_type'
-        nodetype = gdb.lookup_type(typename).strip_typedefs()
-        node = self.val.cast(nodetype).dereference()
+        node = self.val['_M_node'].cast(self.link_type).dereference()
         return get_value_from_Rb_tree_node(node)
 
 class StdDebugIteratorPrinter: