summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin')
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/LICENSE201
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/MANIFEST354
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/PKG-INFO316
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/README.chromium16
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/README.rst153
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/__init__.py39
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/include/cext.h244
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/__init__.py27
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/commands.py267
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/data.py165
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/dist.py51
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/ext.py254
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/setup.py419
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/shell.py478
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/term/__init__.py28
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/term/_term.py115
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/util.py73
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/__init__.py27
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/commands.py266
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/data.py165
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/dist.py51
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/ext.py253
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/setup.py420
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/shell.py351
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/term/__init__.py28
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/term/_term.py116
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/util.py63
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/LICENSE.cssmin64
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/__init__.py30
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/cssmin.py246
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/main.py236
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/wikipedia.css3861
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/wikipedia.min.css1
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/write.py344
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/BENCHMARKS61
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/CHANGES42
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/CLASSIFIERS19
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/DESCRIPTION85
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/PROVIDES1
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/SUMMARY1
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/api-objects.txt6
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/crarr.pngbin340 -> 0 bytes
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/epydoc.css322
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/epydoc.js293
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/help.html261
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/identifier-index.html163
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/index.html224
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/module-tree.html94
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/rcssmin-module.html224
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/rcssmin-pysrc.html477
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/redirect.html38
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/package.cfg84
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/rcssmin.c1163
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/rcssmin.py374
-rwxr-xr-xchromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/run_tests.py166
-rw-r--r--chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/setup.py42
56 files changed, 0 insertions, 13862 deletions
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/LICENSE b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/LICENSE
deleted file mode 100644
index 261eeb9e9f8..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/MANIFEST b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/MANIFEST
deleted file mode 100644
index a0384d9c1b4..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/MANIFEST
+++ /dev/null
@@ -1,354 +0,0 @@
-LICENSE
-MANIFEST
-PKG-INFO
-README.rst
-_setup/__init__.py
-_setup/include/cext.h
-_setup/py2/__init__.py
-_setup/py2/commands.py
-_setup/py2/data.py
-_setup/py2/dist.py
-_setup/py2/ext.py
-_setup/py2/setup.py
-_setup/py2/shell.py
-_setup/py2/term/__init__.py
-_setup/py2/term/_term.py
-_setup/py2/util.py
-_setup/py3/__init__.py
-_setup/py3/commands.py
-_setup/py3/data.py
-_setup/py3/dist.py
-_setup/py3/ext.py
-_setup/py3/setup.py
-_setup/py3/shell.py
-_setup/py3/term/__init__.py
-_setup/py3/term/_term.py
-_setup/py3/util.py
-bench
-bench.sh
-bench/LICENSE.cssmin
-bench/__init__.py
-bench/cssmin.py
-bench/main.py
-bench/wikipedia.css
-bench/wikipedia.min.css
-bench/write.py
-docs/BENCHMARKS
-docs/CHANGES
-docs/CLASSIFIERS
-docs/DESCRIPTION
-docs/PROVIDES
-docs/SUMMARY
-docs/apidoc/api-objects.txt
-docs/apidoc/crarr.png
-docs/apidoc/epydoc.css
-docs/apidoc/epydoc.js
-docs/apidoc/help.html
-docs/apidoc/identifier-index.html
-docs/apidoc/index.html
-docs/apidoc/module-tree.html
-docs/apidoc/rcssmin-module.html
-docs/apidoc/rcssmin-pysrc.html
-docs/apidoc/redirect.html
-package.cfg
-rcssmin.c
-rcssmin.py
-run_tests.py
-setup.py
-tests
-tests/main/atgroup_00.css
-tests/main/atgroup_01.css
-tests/main/atgroup_02.css
-tests/main/atgroup_03.css
-tests/main/atgroup_04.css
-tests/main/atgroup_05.css
-tests/main/atgroup_06.css
-tests/main/atgroup_07.css
-tests/main/atgroup_08.css
-tests/main/atgroup_09.css
-tests/main/atgroup_10.css
-tests/main/atgroup_11.css
-tests/main/comment_00.css
-tests/main/comment_01.css
-tests/main/comment_02.css
-tests/main/comment_03.css
-tests/main/comment_04.css
-tests/main/escape_00.css
-tests/main/escape_01.css
-tests/main/escape_02.css
-tests/main/escape_03.css
-tests/main/escape_04.css
-tests/main/escape_05.css
-tests/main/escape_06.css
-tests/main/first_00.css
-tests/main/first_01.css
-tests/main/first_02.css
-tests/main/out/atgroup_00.out
-tests/main/out/atgroup_00.out.b
-tests/main/out/atgroup_01.out
-tests/main/out/atgroup_01.out.b
-tests/main/out/atgroup_02.out
-tests/main/out/atgroup_02.out.b
-tests/main/out/atgroup_03.out
-tests/main/out/atgroup_03.out.b
-tests/main/out/atgroup_04.out
-tests/main/out/atgroup_04.out.b
-tests/main/out/atgroup_05.out
-tests/main/out/atgroup_05.out.b
-tests/main/out/atgroup_06.out
-tests/main/out/atgroup_06.out.b
-tests/main/out/atgroup_07.out
-tests/main/out/atgroup_07.out.b
-tests/main/out/atgroup_08.out
-tests/main/out/atgroup_08.out.b
-tests/main/out/atgroup_09.out
-tests/main/out/atgroup_09.out.b
-tests/main/out/atgroup_10.out
-tests/main/out/atgroup_10.out.b
-tests/main/out/atgroup_11.out
-tests/main/out/atgroup_11.out.b
-tests/main/out/comment_00.out
-tests/main/out/comment_00.out.b
-tests/main/out/comment_01.out
-tests/main/out/comment_01.out.b
-tests/main/out/comment_02.out
-tests/main/out/comment_02.out.b
-tests/main/out/comment_03.out
-tests/main/out/comment_03.out.b
-tests/main/out/comment_04.out
-tests/main/out/comment_04.out.b
-tests/main/out/escape_00.out
-tests/main/out/escape_00.out.b
-tests/main/out/escape_01.out
-tests/main/out/escape_01.out.b
-tests/main/out/escape_02.out
-tests/main/out/escape_02.out.b
-tests/main/out/escape_03.out
-tests/main/out/escape_03.out.b
-tests/main/out/escape_04.out
-tests/main/out/escape_04.out.b
-tests/main/out/escape_05.out
-tests/main/out/escape_05.out.b
-tests/main/out/escape_06.out
-tests/main/out/escape_06.out.b
-tests/main/out/first_00.out
-tests/main/out/first_00.out.b
-tests/main/out/first_01.out
-tests/main/out/first_01.out.b
-tests/main/out/first_02.out
-tests/main/out/first_02.out.b
-tests/main/out/url_00.out
-tests/main/out/url_00.out.b
-tests/main/out/url_01.out
-tests/main/out/url_01.out.b
-tests/main/out/url_02.out
-tests/main/out/url_02.out.b
-tests/main/out/url_03.out
-tests/main/out/url_03.out.b
-tests/main/out/url_04.out
-tests/main/out/url_04.out.b
-tests/main/out/url_05.out
-tests/main/out/url_05.out.b
-tests/main/out/url_06.out
-tests/main/out/url_06.out.b
-tests/main/out/url_07.out
-tests/main/out/url_07.out.b
-tests/main/out/url_08.out
-tests/main/out/url_08.out.b
-tests/main/out/url_09.out
-tests/main/out/url_09.out.b
-tests/main/url_00.css
-tests/main/url_01.css
-tests/main/url_02.css
-tests/main/url_03.css
-tests/main/url_04.css
-tests/main/url_05.css
-tests/main/url_06.css
-tests/main/url_07.css
-tests/main/url_08.css
-tests/main/url_09.css
-tests/yui/README
-tests/yui/background-position.css
-tests/yui/background-position.css.min
-tests/yui/border-none.css
-tests/yui/border-none.css.min
-tests/yui/box-model-hack.css
-tests/yui/box-model-hack.css.min
-tests/yui/bug2527974.css
-tests/yui/bug2527974.css.min
-tests/yui/bug2527991.css
-tests/yui/bug2527991.css.min
-tests/yui/bug2527998.css
-tests/yui/bug2527998.css.min
-tests/yui/bug2528034.css
-tests/yui/bug2528034.css.min
-tests/yui/charset-media.css
-tests/yui/charset-media.css.min
-tests/yui/color-simple.css
-tests/yui/color-simple.css.min
-tests/yui/color.css
-tests/yui/color.css.min
-tests/yui/comment.css
-tests/yui/comment.css.min
-tests/yui/concat-charset.css
-tests/yui/concat-charset.css.min
-tests/yui/dataurl-base64-doublequotes.css
-tests/yui/dataurl-base64-doublequotes.css.min
-tests/yui/dataurl-base64-eof.css
-tests/yui/dataurl-base64-eof.css.min
-tests/yui/dataurl-base64-linebreakindata.css
-tests/yui/dataurl-base64-linebreakindata.css.min
-tests/yui/dataurl-base64-noquotes.css
-tests/yui/dataurl-base64-noquotes.css.min
-tests/yui/dataurl-base64-singlequotes.css
-tests/yui/dataurl-base64-singlequotes.css.min
-tests/yui/dataurl-base64-twourls.css
-tests/yui/dataurl-base64-twourls.css.min
-tests/yui/dataurl-dbquote-font.css
-tests/yui/dataurl-dbquote-font.css.min
-tests/yui/dataurl-nonbase64-doublequotes.css
-tests/yui/dataurl-nonbase64-doublequotes.css.min
-tests/yui/dataurl-nonbase64-noquotes.css
-tests/yui/dataurl-nonbase64-noquotes.css.min
-tests/yui/dataurl-nonbase64-singlequotes.css
-tests/yui/dataurl-nonbase64-singlequotes.css.min
-tests/yui/dataurl-noquote-multiline-font.css
-tests/yui/dataurl-noquote-multiline-font.css.min
-tests/yui/dataurl-realdata-doublequotes.css
-tests/yui/dataurl-realdata-doublequotes.css.min
-tests/yui/dataurl-realdata-noquotes.css
-tests/yui/dataurl-realdata-noquotes.css.min
-tests/yui/dataurl-realdata-singlequotes.css
-tests/yui/dataurl-realdata-singlequotes.css.min
-tests/yui/dataurl-realdata-yuiapp.css
-tests/yui/dataurl-realdata-yuiapp.css.min
-tests/yui/dataurl-singlequote-font.css
-tests/yui/dataurl-singlequote-font.css.min
-tests/yui/decimals.css
-tests/yui/decimals.css.min
-tests/yui/dollar-header.css
-tests/yui/dollar-header.css.min
-tests/yui/font-face.css
-tests/yui/font-face.css.min
-tests/yui/ie5mac.css
-tests/yui/ie5mac.css.min
-tests/yui/media-empty-class.css
-tests/yui/media-empty-class.css.min
-tests/yui/media-multi.css
-tests/yui/media-multi.css.min
-tests/yui/media-test.css
-tests/yui/media-test.css.min
-tests/yui/opacity-filter.css
-tests/yui/opacity-filter.css.min
-tests/yui/out/background-position.out
-tests/yui/out/background-position.out.b
-tests/yui/out/border-none.out
-tests/yui/out/border-none.out.b
-tests/yui/out/box-model-hack.out
-tests/yui/out/box-model-hack.out.b
-tests/yui/out/bug2527974.out
-tests/yui/out/bug2527974.out.b
-tests/yui/out/bug2527991.out
-tests/yui/out/bug2527991.out.b
-tests/yui/out/bug2527998.out
-tests/yui/out/bug2527998.out.b
-tests/yui/out/bug2528034.out
-tests/yui/out/bug2528034.out.b
-tests/yui/out/charset-media.out
-tests/yui/out/charset-media.out.b
-tests/yui/out/color-simple.out
-tests/yui/out/color-simple.out.b
-tests/yui/out/color.out
-tests/yui/out/color.out.b
-tests/yui/out/comment.out
-tests/yui/out/comment.out.b
-tests/yui/out/concat-charset.out
-tests/yui/out/concat-charset.out.b
-tests/yui/out/dataurl-base64-doublequotes.out
-tests/yui/out/dataurl-base64-doublequotes.out.b
-tests/yui/out/dataurl-base64-eof.out
-tests/yui/out/dataurl-base64-eof.out.b
-tests/yui/out/dataurl-base64-linebreakindata.out
-tests/yui/out/dataurl-base64-linebreakindata.out.b
-tests/yui/out/dataurl-base64-noquotes.out
-tests/yui/out/dataurl-base64-noquotes.out.b
-tests/yui/out/dataurl-base64-singlequotes.out
-tests/yui/out/dataurl-base64-singlequotes.out.b
-tests/yui/out/dataurl-base64-twourls.out
-tests/yui/out/dataurl-base64-twourls.out.b
-tests/yui/out/dataurl-dbquote-font.out
-tests/yui/out/dataurl-dbquote-font.out.b
-tests/yui/out/dataurl-nonbase64-doublequotes.out
-tests/yui/out/dataurl-nonbase64-doublequotes.out.b
-tests/yui/out/dataurl-nonbase64-noquotes.out
-tests/yui/out/dataurl-nonbase64-noquotes.out.b
-tests/yui/out/dataurl-nonbase64-singlequotes.out
-tests/yui/out/dataurl-nonbase64-singlequotes.out.b
-tests/yui/out/dataurl-noquote-multiline-font.out
-tests/yui/out/dataurl-noquote-multiline-font.out.b
-tests/yui/out/dataurl-realdata-doublequotes.out
-tests/yui/out/dataurl-realdata-doublequotes.out.b
-tests/yui/out/dataurl-realdata-noquotes.out
-tests/yui/out/dataurl-realdata-noquotes.out.b
-tests/yui/out/dataurl-realdata-singlequotes.out
-tests/yui/out/dataurl-realdata-singlequotes.out.b
-tests/yui/out/dataurl-realdata-yuiapp.out
-tests/yui/out/dataurl-realdata-yuiapp.out.b
-tests/yui/out/dataurl-singlequote-font.out
-tests/yui/out/dataurl-singlequote-font.out.b
-tests/yui/out/decimals.out
-tests/yui/out/decimals.out.b
-tests/yui/out/dollar-header.out
-tests/yui/out/dollar-header.out.b
-tests/yui/out/font-face.out
-tests/yui/out/font-face.out.b
-tests/yui/out/ie5mac.out
-tests/yui/out/ie5mac.out.b
-tests/yui/out/media-empty-class.out
-tests/yui/out/media-empty-class.out.b
-tests/yui/out/media-multi.out
-tests/yui/out/media-multi.out.b
-tests/yui/out/media-test.out
-tests/yui/out/media-test.out.b
-tests/yui/out/opacity-filter.out
-tests/yui/out/opacity-filter.out.b
-tests/yui/out/preserve-case.out
-tests/yui/out/preserve-case.out.b
-tests/yui/out/preserve-new-line.out
-tests/yui/out/preserve-new-line.out.b
-tests/yui/out/preserve-strings.out
-tests/yui/out/preserve-strings.out.b
-tests/yui/out/pseudo-first.out
-tests/yui/out/pseudo-first.out.b
-tests/yui/out/pseudo.out
-tests/yui/out/pseudo.out.b
-tests/yui/out/special-comments.out
-tests/yui/out/special-comments.out.b
-tests/yui/out/star-underscore-hacks.out
-tests/yui/out/star-underscore-hacks.out.b
-tests/yui/out/string-in-comment.out
-tests/yui/out/string-in-comment.out.b
-tests/yui/out/webkit-transform.out
-tests/yui/out/webkit-transform.out.b
-tests/yui/out/zeros.out
-tests/yui/out/zeros.out.b
-tests/yui/preserve-case.css
-tests/yui/preserve-case.css.min
-tests/yui/preserve-new-line.css
-tests/yui/preserve-new-line.css.min
-tests/yui/preserve-strings.css
-tests/yui/preserve-strings.css.min
-tests/yui/pseudo-first.css
-tests/yui/pseudo-first.css.min
-tests/yui/pseudo.css
-tests/yui/pseudo.css.min
-tests/yui/special-comments.css
-tests/yui/special-comments.css.min
-tests/yui/star-underscore-hacks.css
-tests/yui/star-underscore-hacks.css.min
-tests/yui/string-in-comment.css
-tests/yui/string-in-comment.css.min
-tests/yui/webkit-transform.css
-tests/yui/webkit-transform.css.min
-tests/yui/zeros.css
-tests/yui/zeros.css.min
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/PKG-INFO b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/PKG-INFO
deleted file mode 100644
index d4ee866c986..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/PKG-INFO
+++ /dev/null
@@ -1,316 +0,0 @@
-Metadata-Version: 1.1
-Name: rcssmin
-Version: 1.0.5
-Summary: CSS Minifier
-Home-page: http://opensource.perlig.de/rcssmin/
-Author: André Malo
-Author-email: nd@perlig.de
-License: Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
-Download-URL: http://storage.perlig.de/rcssmin/
-Description: ==============
- CSS Minifier
- ==============
-
- RCSSmin is a CSS minifier.
-
- The minifier is based on the semantics of the `YUI compressor`_\, which itself
- is based on `the rule list by Isaac Schlueter`_\.
-
- This module is a re-implementation aiming for speed instead of maximum
- compression, so it can be used at runtime (rather than during a preprocessing
- step). RCSSmin does syntactical compression only (removing spaces, comments
- and possibly semicolons). It does not provide semantic compression (like
- removing empty blocks, collapsing redundant properties etc). It does, however,
- support various CSS hacks (by keeping them working as intended).
-
- Here's a feature list:
-
- - Strings are kept, except that escaped newlines are stripped
- - Space/Comments before the very end or before various characters are
- stripped: ``:{});=>+],!`` (The colon (``:``) is a special case, a single
- space is kept if it's outside a ruleset.)
- - Space/Comments at the very beginning or after various characters are
- stripped: ``{}(=:>+[,!``
- - Optional space after unicode escapes is kept, resp. replaced by a simple
- space
- - whitespaces inside ``url()`` definitions are stripped
- - Comments starting with an exclamation mark (``!``) can be kept optionally.
- - All other comments and/or whitespace characters are replaced by a single
- space.
- - Multiple consecutive semicolons are reduced to one
- - The last semicolon within a ruleset is stripped
- - CSS Hacks supported:
-
- - IE7 hack (``>/**/``)
- - Mac-IE5 hack (``/*\*/.../**/``)
- - The boxmodelhack is supported naturally because it relies on valid CSS2
- strings
- - Between ``:first-line`` and the following comma or curly brace a space is
- inserted. (apparently it's needed for IE6)
- - Same for ``:first-letter``
-
- rcssmin.c is a reimplementation of rcssmin.py in C and improves runtime up to
- factor 100 or so (depending on the input). docs/BENCHMARKS in the source
- distribution contains the details.
-
- Both python 2 (>= 2.4) and python 3 are supported.
-
- .. _YUI compressor: https://github.com/yui/yuicompressor/
-
- .. _the rule list by Isaac Schlueter: https://github.com/isaacs/cssmin/
-
-
- Copyright and License
- ~~~~~~~~~~~~~~~~~~~~~
-
- Copyright 2011 - 2014
- André Malo or his licensors, as applicable.
-
- The whole package (except for the files in the bench/ directory) is
- distributed under the Apache License Version 2.0. You'll find a copy in the
- root directory of the distribution or online at:
- <http://www.apache.org/licenses/LICENSE-2.0>.
-
-
- Bugs
- ~~~~
-
- No bugs, of course. ;-)
- But if you've found one or have an idea how to improve rcssmin, feel free
- to send a pull request on `github <https://github.com/ndparker/rcssmin>`_
- or send a mail to <rcssmin-bugs@perlig.de>.
-
-
- Author Information
- ~~~~~~~~~~~~~~~~~~
-
- André "nd" Malo <nd perlig.de>
- GPG: 0x8103A37E
-
-
- If God intended people to be naked, they would be born that way.
- -- Oscar Wilde
-
- .. vim:tw=72 syntax=rest
-Keywords: CSS,Minimization
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Environment :: Web Environment
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved
-Classifier: License :: OSI Approved :: Apache License, Version 2.0
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: C
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: Implementation :: CPython
-Classifier: Programming Language :: Python :: Implementation :: Jython
-Classifier: Programming Language :: Python :: Implementation :: PyPy
-Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
-Classifier: Topic :: Software Development :: Libraries
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Classifier: Topic :: Text Processing
-Classifier: Topic :: Text Processing :: Filters
-Classifier: Topic :: Utilities
-Provides: rcssmin (1.0)
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/README.chromium b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/README.chromium
deleted file mode 100644
index b1350fc9fa4..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/README.chromium
+++ /dev/null
@@ -1,16 +0,0 @@
-Name: rCSSmin
-Short Name: rcssmin
-URL: http://opensource.perlig.de/rcssmin/
-Version: 1.0.5
-License: Apache 2.0
-License File: NOT_SHIPPED
-Security Critical: no
-
-Description:
-rCSSmin is a CSS minifier written in python.
-The minifier is based on the semantics of the YUI compressor, which itself is
-based on the rule list by Isaac Schlueter.
-
-Modifications made:
- - Removed the bench.sh since the file doesn't have the licensing info and
- caused license checker to fail.
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/README.rst b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/README.rst
deleted file mode 100644
index 95fb3083a89..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/README.rst
+++ /dev/null
@@ -1,153 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-=====================================
- rCSSmin - A CSS Minifier For Python
-=====================================
-
-TABLE OF CONTENTS
------------------
-
-1. Introduction
-2. Copyright and License
-3. System Requirements
-4. Installation
-5. Documentation
-6. Bugs
-7. Author Information
-
-
-INTRODUCTION
-------------
-
-RCSSmin is a CSS minifier written in python.
-
-The minifier is based on the semantics of the `YUI compressor`_\, which itself
-is based on `the rule list by Isaac Schlueter`_\.
-
-This module is a re-implementation aiming for speed instead of maximum
-compression, so it can be used at runtime (rather than during a preprocessing
-step). RCSSmin does syntactical compression only (removing spaces, comments
-and possibly semicolons). It does not provide semantic compression (like
-removing empty blocks, collapsing redundant properties etc). It does, however,
-support various CSS hacks (by keeping them working as intended).
-
-Here's a feature list:
-
-- Strings are kept, except that escaped newlines are stripped
-- Space/Comments before the very end or before various characters are
- stripped: ``:{});=>+],!`` (The colon (``:``) is a special case, a single
- space is kept if it's outside a ruleset.)
-- Space/Comments at the very beginning or after various characters are
- stripped: ``{}(=:>+[,!``
-- Optional space after unicode escapes is kept, resp. replaced by a simple
- space
-- whitespaces inside ``url()`` definitions are stripped
-- Comments starting with an exclamation mark (``!``) can be kept optionally.
-- All other comments and/or whitespace characters are replaced by a single
- space.
-- Multiple consecutive semicolons are reduced to one
-- The last semicolon within a ruleset is stripped
-- CSS Hacks supported:
-
- - IE7 hack (``>/**/``)
- - Mac-IE5 hack (``/*\*/.../**/``)
- - The boxmodelhack is supported naturally because it relies on valid CSS2
- strings
- - Between ``:first-line`` and the following comma or curly brace a space is
- inserted. (apparently it's needed for IE6)
- - Same for ``:first-letter``
-
-rcssmin.c is a reimplementation of rcssmin.py in C and improves runtime up to
-factor 100 or so (depending on the input). docs/BENCHMARKS in the source
-distribution contains the details.
-
-.. _YUI compressor: https://github.com/yui/yuicompressor/
-
-.. _the rule list by Isaac Schlueter: https://github.com/isaacs/cssmin/
-
-
-COPYRIGHT AND LICENSE
----------------------
-
-Copyright 2011 - 2014
-André Malo or his licensors, as applicable.
-
-The whole package (except for the files in the bench/ directory)
-is distributed under the Apache License Version 2.0. You'll find a copy in the
-root directory of the distribution or online at:
-<http://www.apache.org/licenses/LICENSE-2.0>.
-
-
-SYSTEM REQUIREMENTS
--------------------
-
-Both python 2 (>=2.4) and python 3 are supported.
-
-
-INSTALLATION
-------------
-
-Using pip
-~~~~~~~~~
-
-$ pip install rcssmin
-
-
-Using distutils
-~~~~~~~~~~~~~~~
-
-$ python setup.py install
-
-The following extra options to the install command may be of interest:
-
- --without-c-extensions Don't install C extensions
- --without-docs Do not install documentation files
-
-
-Drop-in
-~~~~~~~
-
-rCSSmin effectively consists of two files: rcssmin.py and rcssmin.c, the
-latter being entirely optional. So, for simple integration you can just
-copy rcssmin.py into your project and use it.
-
-
-DOCUMENTATION
--------------
-
-A generated API documentation is available in the docs/apidoc/ directory.
-But you can just look into the module. It provides a simple function,
-called cssmin which takes the CSS as a string and returns the minified
-CSS as a string.
-
-The module additionally provides a "streamy" interface:
-
-$ python -mrcssmin <css >minified
-
-It takes two options:
-
- -b Keep bang-comments (Comments starting with an exclamation mark)
- -p Force using the python implementation (not the C implementation)
-
-The latest documentation is also available online at
-<http://opensource.perlig.de/rcssmin/>.
-
-
-BUGS
-----
-
-No bugs, of course. ;-)
-But if you've found one or have an idea how to improve rcssmin, feel free to
-send a pull request on `github <https://github.com/ndparker/rcssmin>`_ or
-send a mail to <rcssmin-bugs@perlig.de>.
-
-
-AUTHOR INFORMATION
-------------------
-
-André "nd" Malo <nd@perlig.de>
-GPG: 0x8103A37E
-
-
- If God intended people to be naked, they would be born that way.
- -- Oscar Wilde
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/__init__.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/__init__.py
deleted file mode 100644
index 77dc23c8412..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/__init__.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-================
- Package _setup
-================
-
-This package provides tools for main package setup.
-"""
-__author__ = "Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-import os as _os
-import sys as _sys
-
-if _sys.version_info[0] == 2:
- __path__ = [_os.path.join(__path__[0], 'py2')]
- __author__ = __author__.decode('latin-1')
-elif _sys.version_info[0] == 3:
- __path__ = [_os.path.join(__path__[0], 'py3')]
-else:
- raise RuntimeError("Unsupported python version")
-del _os, _sys
-
-from _setup.setup import run # pylint: disable = W0611
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/include/cext.h b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/include/cext.h
deleted file mode 100644
index 47b6f5b9c11..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/include/cext.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * Copyright 2006 - 2014
- * Andr\xe9 Malo or his licensors, as applicable
- *
- * 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.
- */
-
-/*
- * central naming stuff
- */
-
-#ifndef SETUP_CEXT_H
-#define SETUP_CEXT_H
-
-#ifndef EXT_MODULE
-#error EXT_MODULE must be defined outside of this file (-DEXT_MODULE=...)
-#endif
-
-/*
- * include core header files
- */
-#define PY_SSIZE_T_CLEAN
-
-#include "Python.h"
-#include "structmember.h"
-
-/*
- * define our helper macros depending on the stuff above
- */
-#define STRINGIFY(n) STRINGIFY_HELPER(n)
-#define STRINGIFY_HELPER(n) #n
-#define CONCATENATE(first, second) CONCATENATE_HELPER(first, second)
-#define CONCATENATE_HELPER(first, second) first##second
-
-#define EXT_MODULE_NAME STRINGIFY(EXT_MODULE)
-#ifdef EXT_PACKAGE
-#define EXT_PACKAGE_NAME STRINGIFY(EXT_PACKAGE)
-#define EXT_MODULE_PATH EXT_PACKAGE_NAME "." EXT_MODULE_NAME
-#else
-#define EXT_PACKAGE_NAME ""
-#define EXT_MODULE_PATH EXT_MODULE_NAME
-#endif
-
-#define EXT_DOCS_VAR CONCATENATE(var, CONCATENATE(EXT_MODULE, __doc__))
-#define EXT_METHODS_VAR CONCATENATE(var, CONCATENATE(EXT_MODULE, _methods))
-#define EXT_METHODS static PyMethodDef EXT_METHODS_VAR[]
-
-#define EXT_DEFINE_VAR CONCATENATE(var, CONCATENATE(EXT_MODULE, _module))
-
-/* Py3K Support */
-#if PY_MAJOR_VERSION >= 3
-
-#define EXT3
-
-#ifndef PyMODINIT_FUNC
-#define EXT_INIT_FUNC PyObject *CONCATENATE(PyInit_, EXT_MODULE)(void)
-#else
-#define EXT_INIT_FUNC PyMODINIT_FUNC CONCATENATE(PyInit_, EXT_MODULE)(void)
-#endif
-
-#define EXT_DEFINE(name, methods, doc) \
-static struct PyModuleDef EXT_DEFINE_VAR = { \
- PyModuleDef_HEAD_INIT, \
- name, \
- doc, \
- -1, \
- methods, \
- NULL, \
- NULL, \
- NULL, \
- NULL \
-}
-
-#define EXT_CREATE(def) (PyModule_Create(def))
-#define EXT_INIT_ERROR(module) do {Py_XDECREF(module); return NULL;} while(0)
-#define EXT_INIT_RETURN(module) return module
-
-#else /* end py3k */
-
-#define EXT2
-
-#ifndef PyMODINIT_FUNC
-#define EXT_INIT_FUNC void CONCATENATE(init, EXT_MODULE)(void)
-#else
-#define EXT_INIT_FUNC PyMODINIT_FUNC CONCATENATE(init, EXT_MODULE)(void)
-#endif
-
-#define EXT_DEFINE__STRUCT \
- CONCATENATE(struct, CONCATENATE(EXT_MODULE, _module))
-
-struct EXT_DEFINE__STRUCT {
- char *m_name;
- char *m_doc;
- PyMethodDef *m_methods;
-};
-#define EXT_DEFINE(name, methods, doc) \
-static struct EXT_DEFINE__STRUCT EXT_DEFINE_VAR = { \
- name, \
- doc, \
- methods \
-}
-
-#define EXT_CREATE(def) ((def)->m_doc \
- ? Py_InitModule3((def)->m_name, (def)->m_methods, (def)->m_doc) \
- : Py_InitModule((def)->m_name, (def)->m_methods) \
-)
-#define EXT_INIT_ERROR(module) return
-#define EXT_INIT_RETURN(module) return
-
-#endif /* end py2K */
-
-#define EXT_INIT_TYPE(module, type) do { \
- if (PyType_Ready(type) < 0) \
- EXT_INIT_ERROR(module); \
-} while (0)
-
-#define EXT_ADD_TYPE(module, name, type) do { \
- Py_INCREF(type); \
- if (PyModule_AddObject(module, name, (PyObject *)(type)) < 0) \
- EXT_INIT_ERROR(module); \
-} while (0)
-
-#define EXT_ADD_UNICODE(module, name, string, encoding) do { \
- if (PyModule_AddObject( \
- module, \
- name, \
- PyUnicode_Decode( \
- string, \
- sizeof(string) - 1, \
- encoding, \
- "strict" \
- )) < 0) \
- EXT_INIT_ERROR(module); \
-} while (0)
-
-#define EXT_ADD_STRING(module, name, string) do { \
- if (PyModule_AddStringConstant(module, name, string) < 0) \
- EXT_INIT_ERROR(module); \
-} while (0)
-
-#define EXT_ADD_INT(module, name, number) do { \
- if (PyModule_AddIntConstant(module, name, number) < 0) \
- EXT_INIT_ERROR(module); \
-} while (0)
-
-
-/* PEP 353 support, implemented as of python 2.5 */
-#if PY_VERSION_HEX < 0x02050000
-typedef int Py_ssize_t;
-#define PyInt_FromSsize_t(arg) PyInt_FromLong((long)arg)
-#define PyInt_AsSsize_t(arg) (int)PyInt_AsLong(arg)
-#define PY_SSIZE_T_MAX ((Py_ssize_t)INT_MAX)
-#endif
-
-/*
- * some helper macros (Python 2.4)
- */
-#ifndef Py_VISIT
-#define Py_VISIT(op) do { \
- if (op) { \
- int vret = visit((op), arg); \
- if (vret) return vret; \
- } \
-} while (0)
-#endif
-
-#ifdef Py_CLEAR
-#undef Py_CLEAR
-#endif
-#define Py_CLEAR(op) do { \
- if (op) { \
- PyObject *tmp__ = (PyObject *)(op); \
- (op) = NULL; \
- Py_DECREF(tmp__); \
- } \
-} while (0)
-
-#ifndef Py_RETURN_NONE
-#define Py_RETURN_NONE return Py_INCREF(Py_None), Py_None
-#endif
-
-#ifndef Py_RETURN_FALSE
-#define Py_RETURN_FALSE return Py_INCREF(Py_False), Py_False
-#endif
-
-#ifndef Py_RETURN_TRUE
-#define Py_RETURN_TRUE return Py_INCREF(Py_True), Py_True
-#endif
-
-/* Macros for inline documentation. (Python 2.3) */
-#ifndef PyDoc_VAR
-#define PyDoc_VAR(name) static char name[]
-#endif
-
-#ifndef PyDoc_STRVAR
-#define PyDoc_STRVAR(name,str) PyDoc_VAR(name) = PyDoc_STR(str)
-#endif
-
-#ifndef PyDoc_STR
-#ifdef WITH_DOC_STRINGS
-#define PyDoc_STR(str) str
-#else
-#define PyDoc_STR(str) ""
-#endif
-#endif
-
-/* Basestring check (basestring introduced in Python 2.3) */
-#if PY_VERSION_HEX < 0x02030000
-#define BaseString_Check(type) ( \
- PyObject_TypeCheck((type), &PyString_Type) \
- || PyObject_TypeCheck((type), &PyUnicode_Type) \
-)
-#else
-#define BaseString_Check(type) PyObject_TypeCheck((type), &PyBaseString_Type)
-#endif
-
-#define GENERIC_ALLOC(type) \
- ((void *)((PyTypeObject *)type)->tp_alloc(type, (Py_ssize_t)0))
-
-/* PyPy doesn't define it */
-#ifndef PyType_IS_GC
-#define PyType_IS_GC(t) PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC)
-#endif
-
-#define DEFINE_GENERIC_DEALLOC(prefix) \
-static void prefix##_dealloc(void *self) \
-{ \
- if (PyType_IS_GC(((PyObject *)self)->ob_type)) \
- PyObject_GC_UnTrack(self); \
- (void)prefix##_clear(self); \
- ((PyObject *)self)->ob_type->tp_free((PyObject *)self); \
-}
-
-#endif /* SETUP_CEXT_H */
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/__init__.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/__init__.py
deleted file mode 100644
index 9582ecc1087..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/__init__.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-================
- Package _setup
-================
-
-This package provides tools for main package setup.
-"""
-__author__ = u"Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-from _setup.setup import run # pylint: disable = W0611
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/commands.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/commands.py
deleted file mode 100644
index a41b166e0a5..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/commands.py
+++ /dev/null
@@ -1,267 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-===================
- Command extenders
-===================
-
-Command extenders.
-"""
-__author__ = u"Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-__test__ = False
-
-from distutils import fancy_getopt as _fancy_getopt
-from distutils.command import build as _build
-from distutils.command import build_ext as _build_ext
-from distutils.command import install as _install
-from distutils.command import install_data as _install_data
-from distutils.command import install_lib as _install_lib
-import os as _os
-
-from _setup.util import log
-
-_option_defaults = {}
-_option_inherits = {}
-_option_finalizers = {}
-_command_mapping = {
- 'install': 'Install',
- 'install_data': 'InstallData',
- 'install_lib': 'InstallLib',
- 'build': 'Build',
- 'build_ext': 'BuildExt',
-}
-
-
-def add_option(command, long_name, help_text, short_name=None, default=None,
- inherit=None):
- """ Add an option """
- try:
- command_class = globals()[_command_mapping[command]]
- except KeyError:
- raise ValueError("Unknown command %r" % (command,))
- for opt in command_class.user_options:
- if opt[0] == long_name:
- break
- else:
- opt = (long_name, short_name, help_text)
- command_class.user_options.append(opt)
- if not long_name.endswith('='):
- command_class.boolean_options.append(long_name)
- attr_name = _fancy_getopt.translate_longopt(long_name)
- else:
- attr_name = _fancy_getopt.translate_longopt(long_name[:-1])
- if not _option_defaults.has_key(command):
- _option_defaults[command] = []
- if inherit is not None:
- if isinstance(inherit, (str, unicode)):
- inherit = [inherit]
- for i_inherit in inherit:
- add_option(
- i_inherit, long_name, help_text, short_name, default
- )
- default = None
- if not _option_inherits.has_key(command):
- _option_inherits[command] = []
- for i_inherit in inherit:
- for i_command, opt_name in _option_inherits[command]:
- if i_command == i_inherit and opt_name == attr_name:
- break
- else:
- _option_inherits[command].append((i_inherit, attr_name))
- _option_defaults[command].append((attr_name, default))
-
-
-def add_finalizer(command, key, func):
- """ Add finalizer """
- if not _option_finalizers.has_key(command):
- _option_finalizers[command] = {}
- if not _option_finalizers[command].has_key(key):
- _option_finalizers[command][key] = func
-
-
-class Install(_install.install):
- """ Extended installer to reflect the additional data options """
- user_options = _install.install.user_options + [
- ('single-version-externally-managed', None,
- "Compat option. Does not a thing."),
- ]
- boolean_options = _install.install.boolean_options + [
- 'single-version-externally-managed'
- ]
-
- def initialize_options(self):
- """ Prepare for new options """
- _install.install.initialize_options(self)
- self.single_version_externally_managed = None
- if _option_defaults.has_key('install'):
- for opt_name, default in _option_defaults['install']:
- setattr(self, opt_name, default)
-
- def finalize_options(self):
- """ Finalize options """
- _install.install.finalize_options(self)
- if _option_inherits.has_key('install'):
- for parent, opt_name in _option_inherits['install']:
- self.set_undefined_options(parent, (opt_name, opt_name))
- if _option_finalizers.has_key('install'):
- for func in _option_finalizers['install'].values():
- func(self)
-
-
-class InstallData(_install_data.install_data):
- """ Extended data installer """
- user_options = _install_data.install_data.user_options + []
- boolean_options = _install_data.install_data.boolean_options + []
-
- def initialize_options(self):
- """ Prepare for new options """
- _install_data.install_data.initialize_options(self)
- if _option_defaults.has_key('install_data'):
- for opt_name, default in _option_defaults['install_data']:
- setattr(self, opt_name, default)
-
- def finalize_options(self):
- """ Finalize options """
- _install_data.install_data.finalize_options(self)
- if _option_inherits.has_key('install_data'):
- for parent, opt_name in _option_inherits['install_data']:
- self.set_undefined_options(parent, (opt_name, opt_name))
- if _option_finalizers.has_key('install_data'):
- for func in _option_finalizers['install_data'].values():
- func(self)
-
-
-class InstallLib(_install_lib.install_lib):
- """ Extended lib installer """
- user_options = _install_lib.install_lib.user_options + []
- boolean_options = _install_lib.install_lib.boolean_options + []
-
- def initialize_options(self):
- """ Prepare for new options """
- _install_lib.install_lib.initialize_options(self)
- if _option_defaults.has_key('install_lib'):
- for opt_name, default in _option_defaults['install_lib']:
- setattr(self, opt_name, default)
-
- def finalize_options(self):
- """ Finalize options """
- _install_lib.install_lib.finalize_options(self)
- if _option_inherits.has_key('install_lib'):
- for parent, opt_name in _option_inherits['install_lib']:
- self.set_undefined_options(parent, (opt_name, opt_name))
- if _option_finalizers.has_key('install_lib'):
- for func in _option_finalizers['install_lib'].values():
- func(self)
-
-
-class BuildExt(_build_ext.build_ext):
- """
- Extended extension builder class
-
- This class allows extensions to provide a ``check_prerequisites`` method
- which is called before actually building it. The method takes the
- `BuildExt` instance and returns whether the extension should be skipped or
- not.
- """
-
- def initialize_options(self):
- """ Prepare for new options """
- _build_ext.build_ext.initialize_options(self)
- if _option_defaults.has_key('build_ext'):
- for opt_name, default in _option_defaults['build_ext']:
- setattr(self, opt_name, default)
-
- def finalize_options(self):
- """ Finalize options """
- _build_ext.build_ext.finalize_options(self)
- if _option_inherits.has_key('build_ext'):
- for parent, opt_name in _option_inherits['build_ext']:
- self.set_undefined_options(parent, (opt_name, opt_name))
- if _option_finalizers.has_key('build_ext'):
- for func in _option_finalizers['build_ext'].values():
- func(self)
-
- def build_extension(self, ext):
- """
- Build C extension - with extended functionality
-
- The following features are added here:
-
- - ``ext.check_prerequisites`` is called before the extension is being
- built. See `Extension` for details. If the method does not exist,
- simply no check will be run.
- - The macros ``EXT_PACKAGE`` and ``EXT_MODULE`` will be filled (or
- unset) depending on the extensions name, but only if they are not
- already defined.
-
- :Parameters:
- `ext` : `Extension`
- The extension to build. If it's a pure
- ``distutils.core.Extension``, simply no prequisites check is
- applied.
-
- :Return: whatever ``distutils.command.build_ext.build_ext`` returns
- :Rtype: any
- """
- # handle name macros
- macros = dict(ext.define_macros or ())
- tup = ext.name.split('.')
- if len(tup) == 1:
- pkg, mod = None, tup[0]
- else:
- pkg, mod = '.'.join(tup[:-1]), tup[-1]
- if pkg is not None and 'EXT_PACKAGE' not in macros:
- ext.define_macros.append(('EXT_PACKAGE', pkg))
- if 'EXT_MODULE' not in macros:
- ext.define_macros.append(('EXT_MODULE', mod))
- if pkg is None:
- macros = dict(ext.undef_macros or ())
- if 'EXT_PACKAGE' not in macros:
- ext.undef_macros.append('EXT_PACKAGE')
-
- # handle prereq checks
- try:
- checker = ext.check_prerequisites
- except AttributeError:
- pass
- else:
- if checker(self):
- log.info("Skipping %s extension" % ext.name)
- return
-
- return _build_ext.build_ext.build_extension(self, ext)
-
-
-class Build(_build.build):
-
- def initialize_options(self):
- """ Prepare for new options """
- _build.build.initialize_options(self)
- if _option_defaults.has_key('build'):
- for opt_name, default in _option_defaults['build']:
- setattr(self, opt_name, default)
-
- def finalize_options(self):
- """ Finalize options """
- _build.build.finalize_options(self)
- if _option_inherits.has_key('build'):
- for parent, opt_name in _option_inherits['build']:
- self.set_undefined_options(parent, (opt_name, opt_name))
- if _option_finalizers.has_key('build'):
- for func in _option_finalizers['build'].values():
- func(self)
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/data.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/data.py
deleted file mode 100644
index 9cf04e104c2..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/data.py
+++ /dev/null
@@ -1,165 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-===================
- Data distribution
-===================
-
-This module provides tools to simplify data distribution.
-"""
-__author__ = u"Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-from distutils import filelist as _filelist
-import os as _os
-import posixpath as _posixpath
-import sys as _sys
-
-from _setup import commands as _commands
-
-
-def splitpath(path):
- """ Split a path """
- drive, path = '', _os.path.normpath(path)
- try:
- splitunc = _os.path.splitunc
- except AttributeError:
- pass
- else:
- drive, path = splitunc(path)
- if not drive:
- drive, path = _os.path.splitdrive(path)
- elems = []
- try:
- sep = _os.path.sep
- except AttributeError:
- sep = _os.path.join('1', '2')[1:-1]
- while 1:
- prefix, path = _os.path.split(path)
- elems.append(path)
- if prefix in ('', sep):
- drive = _os.path.join(drive, prefix)
- break
- path = prefix
- elems.reverse()
- return drive, elems
-
-
-def finalizer(installer):
- """ Finalize install_data """
- data_files = []
- for item in installer.data_files:
- if not isinstance(item, Data):
- data_files.append(item)
- continue
- data_files.extend(item.flatten(installer))
- installer.data_files = data_files
-
-
-class Data(object):
- """ File list container """
-
- def __init__(self, files, target=None, preserve=0, strip=0,
- prefix=None):
- """ Initialization """
- self._files = files
- self._target = target
- self._preserve = preserve
- self._strip = strip
- self._prefix = prefix
- self.fixup_commands()
-
- def fixup_commands(self):
- pass
-
- def from_templates(cls, *templates, **kwargs):
- """ Initialize from template """
- files = _filelist.FileList()
- for tpl in templates:
- for line in tpl.split(';'):
- files.process_template_line(line.strip())
- files.sort()
- files.remove_duplicates()
- result = []
- for filename in files.files:
- _, elems = splitpath(filename)
- if '.svn' in elems or '.git' in elems:
- continue
- result.append(filename)
- return cls(result, **kwargs)
- from_templates = classmethod(from_templates)
-
- def flatten(self, installer):
- """ Flatten the file list to (target, file) tuples """
- # pylint: disable = W0613
- if self._prefix:
- _, prefix = splitpath(self._prefix)
- telems = prefix
- else:
- telems = []
-
- tmap = {}
- for fname in self._files:
- (_, name), target = splitpath(fname), telems
- if self._preserve:
- if self._strip:
- name = name[max(0, min(self._strip, len(name) - 1)):]
- if len(name) > 1:
- target = telems + name[:-1]
- tmap.setdefault(_posixpath.join(*target), []).append(fname)
- return tmap.items()
-
-
-class Documentation(Data):
- """ Documentation container """
-
- def fixup_commands(self):
- _commands.add_option('install_data', 'without-docs',
- help_text='Do not install documentation files',
- inherit='install',
- )
- _commands.add_finalizer('install_data', 'documentation', finalizer)
-
- def flatten(self, installer):
- """ Check if docs should be installed at all """
- if installer.without_docs:
- return []
- return Data.flatten(self, installer)
-
-
-class Manpages(Documentation):
- """ Manpages container """
-
- def dispatch(cls, files):
- """ Automatically dispatch manpages to their target directories """
- mpmap = {}
- for manpage in files:
- normalized = _os.path.normpath(manpage)
- _, ext = _os.path.splitext(normalized)
- if ext.startswith(_os.path.extsep):
- ext = ext[len(_os.path.extsep):]
- mpmap.setdefault(ext, []).append(manpage)
- return [cls(manpages, prefix=_posixpath.join(
- 'share', 'man', 'man%s' % section,
- )) for section, manpages in mpmap.items()]
- dispatch = classmethod(dispatch)
-
- def flatten(self, installer):
- """ Check if manpages are suitable """
- if _sys.platform == 'win32':
- return []
- return Documentation.flatten(self, installer)
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/dist.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/dist.py
deleted file mode 100644
index 21a65415185..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/dist.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-================
- dist utilities
-================
-
-dist utilities.
-"""
-__author__ = u"Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-import sys as _sys
-
-from _setup import shell as _shell
-
-
-def run_setup(*args, **kwargs):
- """ Run setup """
- if 'setup' in kwargs:
- script = kwargs.get('setup') or 'setup.py'
- del kwargs['setup']
- else:
- script = 'setup.py'
- if 'fakeroot' in kwargs:
- fakeroot = kwargs['fakeroot']
- del kwargs['fakeroot']
- else:
- fakeroot = None
- if kwargs:
- raise TypeError("Unrecognized keyword parameters")
-
- script = _shell.native(script)
- argv = [_sys.executable, script] + list(args)
- if fakeroot:
- argv.insert(0, fakeroot)
- return not _shell.spawn(*argv)
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/ext.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/ext.py
deleted file mode 100644
index bcc0209a53a..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/ext.py
+++ /dev/null
@@ -1,254 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-===================
- C extension tools
-===================
-
-C extension tools.
-"""
-__author__ = u"Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-__test__ = False
-
-from distutils import core as _core
-from distutils import errors as _distutils_errors
-import os as _os
-import posixpath as _posixpath
-import shutil as _shutil
-import tempfile as _tempfile
-
-from _setup import commands as _commands
-from _setup.util import log
-
-
-def _install_finalizer(installer):
- if installer.without_c_extensions:
- installer.distribution.ext_modules = []
-
-def _build_finalizer(builder):
- if builder.without_c_extensions:
- builder.extensions = []
-
-
-class Extension(_core.Extension):
- """
- Extension with prerequisite check interface
-
- If your check is cacheable (during the setup run), override
- `cached_check_prerequisites`, `check_prerequisites` otherwise.
-
- :IVariables:
- `cached_check` : ``bool``
- The cached check result
- """
- cached_check = None
-
- def __init__(self, *args, **kwargs):
- """ Initialization """
- if kwargs.has_key('depends'):
- self.depends = kwargs['depends'] or []
- else:
- self.depends = []
- _core.Extension.__init__(self, *args, **kwargs)
-
- # add include path
- included = _posixpath.join('_setup', 'include')
- if included not in self.include_dirs:
- self.include_dirs.append(included)
-
- # add cext.h to the dependencies
- cext_h = _posixpath.join(included, 'cext.h')
- if cext_h not in self.depends:
- self.depends.append(cext_h)
-
- _commands.add_option('install_lib', 'without-c-extensions',
- help_text='Don\'t install C extensions',
- inherit='install',
- )
- _commands.add_finalizer('install_lib', 'c-extensions',
- _install_finalizer
- )
- _commands.add_option('build_ext', 'without-c-extensions',
- help_text='Don\'t build C extensions',
- inherit=('build', 'install_lib'),
- )
- _commands.add_finalizer('build_ext', 'c-extensions', _build_finalizer)
-
- def check_prerequisites(self, build):
- """
- Check prerequisites
-
- The check should cover all dependencies needed for the extension to
- be built and run. The method can do the following:
-
- - return a false value: the extension will be built
- - return a true value: the extension will be skipped. This is useful
- for optional extensions
- - raise an exception. This is useful for mandatory extensions
-
- If the check result is cacheable (during the setup run), override
- `cached_check_prerequisites` instead.
-
- :Parameters:
- `build` : `BuildExt`
- The extension builder
-
- :Return: Skip the extension?
- :Rtype: ``bool``
- """
- if self.cached_check is None:
- log.debug("PREREQ check for %s" % self.name)
- self.cached_check = self.cached_check_prerequisites(build)
- else:
- log.debug("PREREQ check for %s (cached)" % self.name)
- return self.cached_check
-
- def cached_check_prerequisites(self, build):
- """
- Check prerequisites
-
- The check should cover all dependencies needed for the extension to
- be built and run. The method can do the following:
-
- - return a false value: the extension will be built
- - return a true value: the extension will be skipped. This is useful
- for optional extensions
- - raise an exception. This is useful for mandatory extensions
-
- If the check result is *not* cacheable (during the setup run),
- override `check_prerequisites` instead.
-
- :Parameters:
- `build` : `BuildExt`
- The extension builder
-
- :Return: Skip the extension?
- :Rtype: ``bool``
- """
- # pylint: disable = W0613
- log.debug("Nothing to check for %s!" % self.name)
- return False
-
-
-class ConfTest(object):
- """
- Single conftest abstraction
-
- :IVariables:
- `_tempdir` : ``str``
- The tempdir created for this test
-
- `src` : ``str``
- Name of the source file
-
- `target` : ``str``
- Target filename
-
- `compiler` : ``CCompiler``
- compiler instance
-
- `obj` : ``list``
- List of object filenames (``[str, ...]``)
- """
- _tempdir = None
-
- def __init__(self, build, source):
- """
- Initialization
-
- :Parameters:
- `build` : ``distuils.command.build_ext.build_ext``
- builder instance
-
- `source` : ``str``
- Source of the file to compile
- """
- self._tempdir = tempdir = _tempfile.mkdtemp()
- src = _os.path.join(tempdir, 'conftest.c')
- fp = open(src, 'w')
- try:
- fp.write(source)
- finally:
- fp.close()
- self.src = src
- self.compiler = compiler = build.compiler
- self.target = _os.path.join(tempdir, 'conftest')
- self.obj = compiler.object_filenames([src], output_dir=tempdir)
-
- def __del__(self):
- """ Destruction """
- self.destroy()
-
- def destroy(self):
- """ Destroy the conftest leftovers on disk """
- tempdir, self._tempdir = self._tempdir, None
- if tempdir is not None:
- _shutil.rmtree(tempdir)
-
- def compile(self, **kwargs):
- """
- Compile the conftest
-
- :Parameters:
- `kwargs` : ``dict``
- Optional keyword parameters for the compiler call
-
- :Return: Was the compilation successful?
- :Rtype: ``bool``
- """
- kwargs['output_dir'] = self._tempdir
- try:
- self.compiler.compile([self.src], **kwargs)
- except _distutils_errors.CompileError:
- return False
- return True
-
- def link(self, **kwargs):
- r"""
- Link the conftest
-
- Before you can link the conftest objects they need to be `compile`\d.
-
- :Parameters:
- `kwargs` : ``dict``
- Optional keyword parameters for the linker call
-
- :Return: Was the linking successful?
- :Rtype: ``bool``
- """
- try:
- self.compiler.link_executable(self.obj, self.target, **kwargs)
- except _distutils_errors.LinkError:
- return False
- return True
-
- def pipe(self, mode="r"):
- r"""
- Execute the conftest binary and connect to it using a pipe
-
- Before you can pipe to or from the conftest binary it needs to
- be `link`\ed.
-
- :Parameters:
- `mode` : ``str``
- Pipe mode - r/w
-
- :Return: The open pipe
- :Rtype: ``file``
- """
- return _os.popen(self.compiler.executable_filename(self.target), mode)
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/setup.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/setup.py
deleted file mode 100644
index fd86f62f9bc..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/setup.py
+++ /dev/null
@@ -1,419 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007 - 2013
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-===================
- Main setup runner
-===================
-
-This module provides a wrapper around the distutils core setup.
-"""
-__author__ = u"Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-import ConfigParser as _config_parser
-from distutils import core as _core
-import os as _os
-import posixpath as _posixpath
-import sys as _sys
-
-from _setup import commands as _commands
-from _setup import data as _data
-from _setup import ext as _ext
-from _setup import util as _util
-from _setup import shell as _shell
-
-
-def check_python_version(impl, version_min, version_max):
- """ Check python version """
- if impl == 'python':
- version_info = _sys.version_info
- elif impl == 'pypy':
- version_info = getattr(_sys, 'pypy_version_info', None)
- if not version_info:
- return
- elif impl == 'jython':
- if not 'java' in _sys.platform.lower():
- return
- version_info = _sys.version_info
- else:
- raise AssertionError("impl not in ('python', 'pypy', 'jython')")
-
- pyversion = map(int, version_info[:3])
- if version_min:
- min_required = \
- map(int, '.'.join((version_min, '0.0.0')).split('.')[:3])
- if pyversion < min_required:
- raise EnvironmentError("Need at least %s %s (vs. %s)" % (
- impl, version_min, '.'.join(map(str, pyversion))
- ))
- if version_max:
- max_required = map(int, version_max.split('.'))
- max_required[-1] += 1
- if pyversion >= max_required:
- raise EnvironmentError("Need at max %s %s (vs. %s)" % (
- impl,
- version_max,
- '.'.join(map(str, pyversion))
- ))
-
-
-def find_description(docs):
- """
- Determine the package description from DESCRIPTION
-
- :Parameters:
- `docs` : ``dict``
- Docs config section
-
- :Return: Tuple of summary, description and license
- (``('summary', 'description', 'license')``)
- (all may be ``None``)
- :Rtype: ``tuple``
- """
- summary = None
- filename = docs.get('meta.summary', 'SUMMARY').strip()
- if filename and _os.path.isfile(filename):
- fp = open(filename)
- try:
- try:
- summary = fp.read().strip().splitlines()[0].rstrip()
- except IndexError:
- summary = ''
- finally:
- fp.close()
-
- description = None
- filename = docs.get('meta.description', 'DESCRIPTION').strip()
- if filename and _os.path.isfile(filename):
- fp = open(filename)
- try:
- description = fp.read().rstrip()
- finally:
- fp.close()
-
- if summary is None and description:
- from docutils import core
- summary = core.publish_parts(
- source=description,
- source_path=filename,
- writer_name='html',
- )['title'].encode('utf-8')
-
- return summary, description
-
-
-def find_classifiers(docs):
- """
- Determine classifiers from CLASSIFIERS
-
- :return: List of classifiers (``['classifier', ...]``)
- :rtype: ``list``
- """
- filename = docs.get('meta.classifiers', 'CLASSIFIERS').strip()
- if filename and _os.path.isfile(filename):
- fp = open(filename)
- try:
- content = fp.read()
- finally:
- fp.close()
- content = [item.strip() for item in content.splitlines()]
- return [item for item in content if item and not item.startswith('#')]
- return []
-
-
-def find_provides(docs):
- """
- Determine provides from PROVIDES
-
- :return: List of provides (``['provides', ...]``)
- :rtype: ``list``
- """
- filename = docs.get('meta.provides', 'PROVIDES').strip()
- if filename and _os.path.isfile(filename):
- fp = open(filename)
- try:
- content = fp.read()
- finally:
- fp.close()
- content = [item.strip() for item in content.splitlines()]
- return [item for item in content if item and not item.startswith('#')]
- return []
-
-
-def find_license(docs):
- """
- Determine license from LICENSE
-
- :return: License text
- :rtype: ``str``
- """
- filename = docs.get('meta.license', 'LICENSE').strip()
- if filename and _os.path.isfile(filename):
- fp = open(filename)
- try:
- return fp.read().rstrip()
- finally:
- fp.close()
- return None
-
-
-def find_packages(manifest):
- """ Determine packages and subpackages """
- packages = {}
- collect = manifest.get('packages.collect', '').split()
- lib = manifest.get('packages.lib', '.')
- try:
- sep = _os.path.sep
- except AttributeError:
- sep = _os.path.join('1', '2')[1:-1]
- for root in collect:
- for dirpath, _, filenames in _shell.walk(_os.path.join(lib, root)):
- if dirpath.find('.svn') >= 0 or dirpath.find('.git') >= 0:
- continue
- if '__init__.py' in filenames:
- packages[
- _os.path.normpath(dirpath).replace(sep, '.')
- ] = None
- packages = packages.keys()
- packages.sort()
- return packages
-
-
-def find_data(name, docs):
- """ Determine data files """
- result = []
- if docs.get('extra', '').strip():
- result.append(_data.Documentation(docs['extra'].split(),
- prefix='share/doc/%s' % name,
- ))
- if docs.get('examples.dir', '').strip():
- tpl = ['recursive-include %s *' % docs['examples.dir']]
- if docs.get('examples.ignore', '').strip():
- tpl.extend(["global-exclude %s" % item
- for item in docs['examples.ignore'].split()
- ])
- strip = int(docs.get('examples.strip', '') or 0)
- result.append(_data.Documentation.from_templates(*tpl, **{
- 'strip': strip,
- 'prefix': 'share/doc/%s' % name,
- 'preserve': 1,
- }))
- if docs.get('userdoc.dir', '').strip():
- tpl = ['recursive-include %s *' % docs['userdoc.dir']]
- if docs.get('userdoc.ignore', '').strip():
- tpl.extend(["global-exclude %s" % item
- for item in docs['userdoc.ignore'].split()
- ])
- strip = int(docs.get('userdoc.strip', '') or 0)
- result.append(_data.Documentation.from_templates(*tpl, **{
- 'strip': strip,
- 'prefix': 'share/doc/%s' % name,
- 'preserve': 1,
- }))
- if docs.get('apidoc.dir', '').strip():
- tpl = ['recursive-include %s *' % docs['apidoc.dir']]
- if docs.get('apidoc.ignore', '').strip():
- tpl.extend(["global-exclude %s" % item
- for item in docs['apidoc.ignore'].split()
- ])
- strip = int(docs.get('apidoc.strip', '') or 0)
- result.append(_data.Documentation.from_templates(*tpl, **{
- 'strip': strip,
- 'prefix': 'share/doc/%s' % name,
- 'preserve': 1,
- }))
- if docs.get('man', '').strip():
- result.extend(_data.Manpages.dispatch(docs['man'].split()))
- return result
-
-
-def make_manifest(manifest, config, docs, kwargs):
- """ Create file list to pack up """
- # pylint: disable = R0912
- kwargs = kwargs.copy()
- kwargs['script_args'] = ['install']
- kwargs['packages'] = list(kwargs.get('packages') or ()) + [
- '_setup', '_setup.py2', '_setup.py3',
- ] + list(manifest.get('packages.extra', '').split() or ())
- _core._setup_stop_after = "commandline"
- try:
- dist = _core.setup(**kwargs)
- finally:
- _core._setup_stop_after = None
-
- result = ['MANIFEST', 'PKG-INFO', 'setup.py'] + list(config)
- # TODO: work with default values:
- for key in ('classifiers', 'description', 'summary', 'provides',
- 'license'):
- filename = docs.get('meta.' + key, '').strip()
- if filename and _os.path.isfile(filename):
- result.append(filename)
-
- cmd = dist.get_command_obj("build_py")
- cmd.ensure_finalized()
- #from pprint import pprint; pprint(("build_py", cmd.get_source_files()))
- for item in cmd.get_source_files():
- result.append(_posixpath.sep.join(
- _os.path.normpath(item).split(_os.path.sep)
- ))
-
- cmd = dist.get_command_obj("build_ext")
- cmd.ensure_finalized()
- #from pprint import pprint; pprint(("build_ext", cmd.get_source_files()))
- for item in cmd.get_source_files():
- result.append(_posixpath.sep.join(
- _os.path.normpath(item).split(_os.path.sep)
- ))
- for ext in cmd.extensions:
- if ext.depends:
- result.extend([_posixpath.sep.join(
- _os.path.normpath(item).split(_os.path.sep)
- ) for item in ext.depends])
-
- cmd = dist.get_command_obj("build_clib")
- cmd.ensure_finalized()
- if cmd.libraries:
- #import pprint; pprint.pprint(("build_clib", cmd.get_source_files()))
- for item in cmd.get_source_files():
- result.append(_posixpath.sep.join(
- _os.path.normpath(item).split(_os.path.sep)
- ))
- for lib in cmd.libraries:
- if lib[1].get('depends'):
- result.extend([_posixpath.sep.join(
- _os.path.normpath(item).split(_os.path.sep)
- ) for item in lib[1]['depends']])
-
- cmd = dist.get_command_obj("build_scripts")
- cmd.ensure_finalized()
- #import pprint; pprint.pprint(("build_scripts", cmd.get_source_files()))
- if cmd.get_source_files():
- for item in cmd.get_source_files():
- result.append(_posixpath.sep.join(
- _os.path.normpath(item).split(_os.path.sep)
- ))
-
- cmd = dist.get_command_obj("install_data")
- cmd.ensure_finalized()
- #from pprint import pprint; pprint(("install_data", cmd.get_inputs()))
- try:
- strings = basestring
- except NameError:
- strings = (str, unicode)
-
- for item in cmd.get_inputs():
- if isinstance(item, strings):
- result.append(item)
- else:
- result.extend(item[1])
-
- for item in manifest.get('dist', '').split():
- result.append(item)
- if _os.path.isdir(item):
- for filename in _shell.files(item):
- result.append(filename)
-
- result = dict([(item, None) for item in result]).keys()
- result.sort()
- return result
-
-
-def run(config=('package.cfg',), ext=None, script_args=None, manifest_only=0):
- """ Main runner """
- if ext is None:
- ext = []
-
- cfg = _util.SafeConfigParser()
- cfg.read(config)
- pkg = dict(cfg.items('package'))
- python_min = pkg.get('python.min') or None
- python_max = pkg.get('python.max') or None
- check_python_version('python', python_min, python_max)
- pypy_min = pkg.get('pypy.min') or None
- pypy_max = pkg.get('pypy.max') or None
- check_python_version('pypy', pypy_min, pypy_max)
- jython_min = pkg.get('jython.min') or None
- jython_max = pkg.get('jython.max') or None
- check_python_version('jython', jython_min, jython_max)
-
- manifest = dict(cfg.items('manifest'))
- try:
- docs = dict(cfg.items('docs'))
- except _config_parser.NoSectionError:
- docs = {}
-
- summary, description = find_description(docs)
- scripts = manifest.get('scripts', '').strip() or None
- if scripts:
- scripts = scripts.split()
- modules = manifest.get('modules', '').strip() or None
- if modules:
- modules = modules.split()
- keywords = docs.get('meta.keywords', '').strip() or None
- if keywords:
- keywords = keywords.split()
- revision = pkg.get('version.revision', '').strip()
- if revision:
- revision = "-r%s" % (revision,)
-
- kwargs = {
- 'name': pkg['name'],
- 'version': "%s%s" % (
- pkg['version.number'],
- ["", "-dev%s" % (revision,)][_util.humanbool(
- 'version.dev', pkg.get('version.dev', 'false')
- )],
- ),
- 'provides': find_provides(docs),
- 'description': summary,
- 'long_description': description,
- 'classifiers': find_classifiers(docs),
- 'keywords': keywords,
- 'author': pkg['author.name'],
- 'author_email': pkg['author.email'],
- 'maintainer': pkg.get('maintainer.name'),
- 'maintainer_email': pkg.get('maintainer.email'),
- 'url': pkg.get('url.homepage'),
- 'download_url': pkg.get('url.download'),
- 'license': find_license(docs),
- 'package_dir': {'': manifest.get('packages.lib', '.')},
- 'packages': find_packages(manifest),
- 'py_modules': modules,
- 'ext_modules': ext,
- 'scripts': scripts,
- 'script_args': script_args,
- 'data_files': find_data(pkg['name'], docs),
- 'cmdclass': {
- 'build' : _commands.Build,
- 'build_ext' : _commands.BuildExt,
- 'install' : _commands.Install,
- 'install_data': _commands.InstallData,
- 'install_lib' : _commands.InstallLib,
- }
- }
- for key in ('provides',):
- if key not in _core.setup_keywords:
- del kwargs[key]
-
- if manifest_only:
- return make_manifest(manifest, config, docs, kwargs)
-
- # monkey-patch crappy manifest writer away.
- from distutils.command import sdist
- sdist.sdist.get_file_list = sdist.sdist.read_manifest
-
- return _core.setup(**kwargs)
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/shell.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/shell.py
deleted file mode 100644
index 4eafb9c8647..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/shell.py
+++ /dev/null
@@ -1,478 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007 - 2013
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-=================
- Shell utilities
-=================
-
-Shell utilities.
-"""
-from __future__ import generators
-
-__author__ = u"Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-import errno as _errno
-import fnmatch as _fnmatch
-import os as _os
-import shutil as _shutil
-import sys as _sys
-import tempfile as _tempfile
-
-cwd = _os.path.dirname(_os.path.abspath(_sys.argv[0]))
-
-class ExitError(RuntimeError):
- """ Exit error """
- def __init__(self, code):
- RuntimeError.__init__(self, code)
- self.code = code
- self.signal = None
-
-
-class SignalError(ExitError):
- """ Signal error """
- def __init__(self, code, signal):
- ExitError.__init__(self, code)
- import signal as _signal
- self.signal = signal
- for key, val in vars(_signal).iteritems():
- if key.startswith('SIG') and not key.startswith('SIG_'):
- if val == signal:
- self.signalstr = key[3:]
- break
- else:
- self.signalstr = '%04d' % signal
-
-
-def native(path):
- """ Convert slash path to native """
- path = _os.path.sep.join(path.split('/'))
- return _os.path.normpath(_os.path.join(cwd, path))
-
-
-def cp(src, dest):
- """ Copy src to dest """
- _shutil.copy2(native(src), native(dest))
-
-
-def cp_r(src, dest):
- """ Copy -r src to dest """
- _shutil.copytree(native(src), native(dest))
-
-
-def rm(dest):
- """ Remove a file """
- try:
- _os.unlink(native(dest))
- except OSError, e:
- if _errno.ENOENT != e.errno:
- raise
-
-def rm_rf(dest):
- """ Remove a tree """
- dest = native(dest)
- if _os.path.exists(dest):
- for path in files(dest, '*'):
- _os.chmod(native(path), 0644)
- _shutil.rmtree(dest)
-
-
-try:
- mkstemp = _tempfile.mkstemp
-except AttributeError:
- # helpers stolen from 2.4 tempfile module
- try:
- import fcntl as _fcntl
- except ImportError:
- def _set_cloexec(fd):
- """ Set close-on-exec (not implemented, but not an error) """
- # pylint: disable = W0613
- pass
- else:
- def _set_cloexec(fd):
- """ Set close-on-exec """
- try:
- flags = _fcntl.fcntl(fd, _fcntl.F_GETFD, 0)
- except IOError:
- pass
- else:
- # flags read successfully, modify
- flags |= _fcntl.FD_CLOEXEC
- _fcntl.fcntl(fd, _fcntl.F_SETFD, flags)
-
- _text_openflags = _os.O_RDWR | _os.O_CREAT | _os.O_EXCL
- _text_openflags |= getattr(_os, 'O_NOINHERIT', 0)
- _text_openflags |= getattr(_os, 'O_NOFOLLOW', 0)
-
- _bin_openflags = _text_openflags
- _bin_openflags |= getattr(_os, 'O_BINARY', 0)
-
- def mkstemp(suffix="", prefix=_tempfile.gettempprefix(), dir=None,
- text=False):
- """ Create secure temp file """
- # pylint: disable = W0622
- if dir is None:
- dir = _tempfile.gettempdir()
- if text:
- flags = _text_openflags
- else:
- flags = _bin_openflags
- count = 100
- while count > 0:
- j = _tempfile._counter.get_next() # pylint: disable = E1101, W0212
- fname = _os.path.join(dir, prefix + str(j) + suffix)
- try:
- fd = _os.open(fname, flags, 0600)
- except OSError, e:
- if e.errno == _errno.EEXIST:
- count -= 1
- continue
- raise
- _set_cloexec(fd)
- return fd, _os.path.abspath(fname)
- raise IOError, (_errno.EEXIST, "No usable temporary file name found")
-
-
-def _pipespawn(argv, env):
- """ Pipe spawn """
- # pylint: disable = R0912
- import pickle as _pickle
- fd, name = mkstemp('.py')
- try:
- _os.write(fd, (r"""
-import os
-import pickle
-try:
- import subprocess
-except ImportError:
- subprocess = None
-import sys
-
-argv = pickle.loads(%(argv)s)
-env = pickle.loads(%(env)s)
-if 'X_JYTHON_WA_PATH' in env:
- env['PATH'] = env['X_JYTHON_WA_PATH']
-
-if subprocess is None:
- pid = os.spawnve(os.P_NOWAIT, argv[0], argv, env)
- result = os.waitpid(pid, 0)[1]
-else:
- p = subprocess.Popen(argv, env=env)
- result = p.wait()
- if result < 0:
- print "\n%%d 1" %% (-result)
- sys.exit(2)
-
-if result == 0:
- sys.exit(0)
-signalled = getattr(os, 'WIFSIGNALED', None)
-if signalled is not None:
- if signalled(result):
- print "\n%%d %%d" %% (os.WTERMSIG(result), result & 7)
- sys.exit(2)
-print "\n%%d" %% (result & 7,)
-sys.exit(3)
- """.strip() + "\n") % {
- 'argv': repr(_pickle.dumps(argv)),
- 'env': repr(_pickle.dumps(env)),
- })
- fd, _ = None, _os.close(fd)
- if _sys.platform == 'win32':
- argv = []
- for arg in [_sys.executable, name]:
- if ' ' in arg or arg.startswith('"'):
- arg = '"%s"' % arg.replace('"', '\\"')
- argv.append(arg)
- argv = ' '.join(argv)
- shell = True
- close_fds = False
- else:
- argv = [_sys.executable, name]
- shell = False
- close_fds = True
-
- res = 0
- try:
- import subprocess
- except ImportError:
- import popen2 as _popen2
- proc = _popen2.Popen3(argv, False)
- try:
- proc.tochild.close()
- result = proc.fromchild.read()
- finally:
- res = proc.wait()
- else:
- if 'X_JYTHON_WA_PATH' in env:
- env['PATH'] = env['X_JYTHON_WA_PATH']
-
- proc = subprocess.Popen(argv,
- shell=shell,
- stdin=subprocess.PIPE,
- stdout=subprocess.PIPE,
- close_fds=close_fds,
- env=env,
- )
- try:
- proc.stdin.close()
- result = proc.stdout.read()
- finally:
- res = proc.wait()
- if res != 0:
- if res == 2:
- signal, code = map(int, result.splitlines()[-1].split())
- raise SignalError(code, signal)
- elif res == 3:
- code = int(result.splitlines()[-1].strip())
- raise ExitError(code)
- raise ExitError(res)
-
- return result
- finally:
- try:
- if fd is not None:
- _os.close(fd)
- finally:
- _os.unlink(name)
-
-
-def _filepipespawn(infile, outfile, argv, env):
- """ File Pipe spawn """
- try:
- import subprocess
- except ImportError:
- subprocess = None
- import pickle as _pickle
- fd, name = mkstemp('.py')
- try:
- _os.write(fd, ("""
-import os
-import pickle
-import sys
-
-infile = pickle.loads(%(infile)s)
-outfile = pickle.loads(%(outfile)s)
-argv = pickle.loads(%(argv)s)
-env = pickle.loads(%(env)s)
-
-if infile is not None:
- infile = open(infile, 'rb')
- os.dup2(infile.fileno(), 0)
- infile.close()
-if outfile is not None:
- outfile = open(outfile, 'wb')
- os.dup2(outfile.fileno(), 1)
- outfile.close()
-
-pid = os.spawnve(os.P_NOWAIT, argv[0], argv, env)
-result = os.waitpid(pid, 0)[1]
-sys.exit(result & 7)
- """.strip() + "\n") % {
- 'infile': repr(_pickle.dumps(_os.path.abspath(infile))),
- 'outfile': repr(_pickle.dumps(_os.path.abspath(outfile))),
- 'argv': repr(_pickle.dumps(argv)),
- 'env': repr(_pickle.dumps(env)),
- })
- fd, _ = None, _os.close(fd)
- if _sys.platform == 'win32':
- argv = []
- for arg in [_sys.executable, name]:
- if ' ' in arg or arg.startswith('"'):
- arg = '"%s"' % arg.replace('"', '\\"')
- argv.append(arg)
- argv = ' '.join(argv)
- close_fds = False
- shell = True
- else:
- argv = [_sys.executable, name]
- close_fds = True
- shell = False
-
- if subprocess is None:
- pid = _os.spawnve(_os.P_NOWAIT, argv[0], argv, env)
- return _os.waitpid(pid, 0)[1]
- else:
- p = subprocess.Popen(
- argv, env=env, shell=shell, close_fds=close_fds
- )
- return p.wait()
- finally:
- try:
- if fd is not None:
- _os.close(fd)
- finally:
- _os.unlink(name)
-
-
-def spawn(*argv, **kwargs):
- """ Spawn a process """
- try:
- import subprocess
- except ImportError:
- subprocess = None
-
- if _sys.platform == 'win32':
- newargv = []
- for arg in argv:
- if not arg or ' ' in arg or arg.startswith('"'):
- arg = '"%s"' % arg.replace('"', '\\"')
- newargv.append(arg)
- argv = newargv
- close_fds = False
- shell = True
- else:
- close_fds = True
- shell = False
-
- env = kwargs.get('env')
- if env is None:
- env = dict(_os.environ)
- if 'X_JYTHON_WA_PATH' in env:
- env['PATH'] = env['X_JYTHON_WA_PATH']
-
- echo = kwargs.get('echo')
- if echo:
- print ' '.join(argv)
- filepipe = kwargs.get('filepipe')
- if filepipe:
- return _filepipespawn(
- kwargs.get('stdin'), kwargs.get('stdout'), argv, env
- )
- pipe = kwargs.get('stdout')
- if pipe:
- return _pipespawn(argv, env)
-
- if subprocess is None:
- pid = _os.spawnve(_os.P_NOWAIT, argv[0], argv, env)
- return _os.waitpid(pid, 0)[1]
- else:
- p = subprocess.Popen(argv, env=env, shell=shell, close_fds=close_fds)
- return p.wait()
-
-
-try:
- walk = _os.walk
-except AttributeError:
- # copy from python 2.4 sources (modulo docs and comments)
- def walk(top, topdown=True, onerror=None):
- """ directory tree walker """
- # pylint: disable = C0103
- join, isdir, islink = _os.path.join, _os.path.isdir, _os.path.islink
- listdir, error = _os.listdir, _os.error
-
- try:
- names = listdir(top)
- except error, err:
- if onerror is not None:
- onerror(err)
- return
-
- dirs, nondirs = [], []
- for name in names:
- if isdir(join(top, name)):
- dirs.append(name)
- else:
- nondirs.append(name)
-
- if topdown:
- yield top, dirs, nondirs
- for name in dirs:
- path = join(top, name)
- if not islink(path):
- for x in walk(path, topdown, onerror):
- yield x
- if not topdown:
- yield top, dirs, nondirs
-
-
-def files(base, wildcard='[!.]*', recursive=1, prune=('.git', '.svn', 'CVS')):
- """ Determine a filelist """
- for dirpath, dirnames, filenames in walk(native(base)):
- for item in prune:
- if item in dirnames:
- dirnames.remove(item)
-
- filenames.sort()
- for name in _fnmatch.filter(filenames, wildcard):
- dest = _os.path.join(dirpath, name)
- if dest.startswith(cwd):
- dest = dest.replace(cwd, '', 1)
- aslist = []
- head, tail = _os.path.split(dest)
- while tail:
- aslist.append(tail)
- head, tail = _os.path.split(head)
- aslist.reverse()
- dest = '/'.join(aslist)
- yield dest
-
- if not recursive:
- break
- dirnames.sort()
-
-
-def dirs(base, wildcard='[!.]*', recursive=1, prune=('.git', '.svn', 'CVS')):
- """ Determine a filelist """
- for dirpath, dirnames, filenames in walk(native(base)):
- for item in prune:
- if item in dirnames:
- dirnames.remove(item)
-
- dirnames.sort()
- for name in _fnmatch.filter(dirnames, wildcard):
- dest = _os.path.join(dirpath, name)
- if dest.startswith(cwd):
- dest = dest.replace(cwd, '', 1)
- aslist = []
- head, tail = _os.path.split(dest)
- while tail:
- aslist.append(tail)
- head, tail = _os.path.split(head)
- aslist.reverse()
- dest = '/'.join(aslist)
- yield dest
-
- if not recursive:
- break
-
-
-def frompath(executable):
- """ Find executable in PATH """
- # Based on distutils.spawn.find_executable.
- path = _os.environ.get('PATH', '')
- paths = [
- _os.path.expanduser(item)
- for item in path.split(_os.pathsep)
- ]
- ext = _os.path.splitext(executable)[1]
- exts = ['']
- if _sys.platform == 'win32' or _os.name == 'os2':
- eext = ['.exe', '.bat', '.py']
- if ext not in eext:
- exts.extend(eext)
-
- for ext in exts:
- if not _os.path.isfile(executable + ext):
- for path in paths:
- fname = _os.path.join(path, executable + ext)
- if _os.path.isfile(fname):
- # the file exists, we have a shot at spawn working
- return fname
- else:
- return executable + ext
-
- return None
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/term/__init__.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/term/__init__.py
deleted file mode 100644
index 4e50ec37493..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/term/__init__.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-=====================
- Package _setup.term
-=====================
-
-Terminal tools, not distributed.
-"""
-__author__ = u"Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-# pylint: disable = W0611
-from _setup.term._term import terminfo, write, green, red, yellow, announce
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/term/_term.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/term/_term.py
deleted file mode 100644
index 72b727c1a95..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/term/_term.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-=================
- Terminal writer
-=================
-"""
-__author__ = u"Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-import sys as _sys
-
-
-class _INFO(dict):
- """ Terminal info dict """
-
- def __init__(self):
- """ Initialization """
- dict.__init__(self, {
- 'NORMAL': '',
- 'BOLD': '',
- 'ERASE': '\n',
- 'RED': '',
- 'YELLOW': '',
- 'GREEN': '',
- })
- try:
- import curses as _curses
- except ImportError:
- # fixup if a submodule of curses failed.
- if 'curses' in _sys.modules:
- del _sys.modules['curses']
- else:
- try:
- _curses.setupterm()
- except (TypeError, _curses.error):
- pass
- else:
- def make_color(color):
- """ Make color control string """
- seq = _curses.tigetstr('setaf')
- if seq is not None:
- # XXX may fail - need better logic
- seq = seq.replace("%p1", "") % color
- return seq
-
- self['NORMAL'] = _curses.tigetstr('sgr0')
- self['BOLD'] = _curses.tigetstr('bold')
-
- erase = _curses.tigetstr('el1')
- if erase is not None:
- self['ERASE'] = erase + _curses.tigetstr('cr')
-
- self['RED'] = make_color(_curses.COLOR_RED)
- self['YELLOW'] = make_color(_curses.COLOR_YELLOW)
- self['GREEN'] = make_color(_curses.COLOR_GREEN)
-
- def __getitem__(self, key):
- """ Deliver always """
- dict.get(self, key) or ""
-
-
-def terminfo():
- """ Get info singleton """
- # pylint: disable = E1101, W0612
- if terminfo.info is None:
- terminfo.info = _INFO()
- return terminfo.info
-terminfo.info = None
-
-
-def write(fmt, **kwargs):
- """ Write stuff on the terminal """
- parm = dict(terminfo())
- parm.update(kwargs)
- _sys.stdout.write(fmt % parm)
- _sys.stdout.flush()
-
-
-def green(bmt, **kwargs):
- """ Write something in green on screen """
- announce("%%(GREEN)s%s%%(NORMAL)s" % bmt, **kwargs)
-
-
-def red(bmt, **kwargs):
- """ Write something in red on the screen """
- announce("%%(BOLD)s%%(RED)s%s%%(NORMAL)s" % bmt, **kwargs)
-
-
-def yellow(fmt, **kwargs):
- """ Write something in yellow on the screen """
- announce("%%(BOLD)s%%(YELLOW)s%s%%(NORMAL)s" % fmt, **kwargs)
-
-
-def announce(fmt, **kwargs):
- """ Announce something """
- write(fmt, **kwargs)
- _sys.stdout.write("\n")
- _sys.stdout.flush()
-
-
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/util.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/util.py
deleted file mode 100644
index 5c05fac6e4c..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py2/util.py
+++ /dev/null
@@ -1,73 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-=================
- Setup utilities
-=================
-
-Setup utilities.
-"""
-__author__ = u"Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-try:
- from distutils import log
-except ImportError:
- class log(object):
- def info(self, value):
- print value
- def debug(self, value):
- pass
- log = log()
-
-from distutils import util as _util
-try:
- from ConfigParser import SafeConfigParser
-except ImportError:
- import ConfigParser as _config_parser
- class SafeConfigParser(_config_parser.ConfigParser):
- """ Safe config parser """
- def _interpolate(self, section, option, rawval, vars):
- return rawval
-
- def items(self, section):
- return [(key, self.get(section, key))
- for key in self.options(section)
- ]
-
-
-def humanbool(name, value):
- """
- Determine human boolean value
-
- :Parameters:
- `name` : ``str``
- The config key (used for error message)
-
- `value` : ``str``
- The config value
-
- :Return: The boolean value
- :Rtype: ``bool``
-
- :Exceptions:
- - `ValueError` : The value could not be recognized
- """
- try:
- return _util.strtobool(str(value).strip().lower() or 'no')
- except ValueError:
- raise ValueError("Unrecognized config value: %s = %s" % (name, value))
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/__init__.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/__init__.py
deleted file mode 100644
index 6139d510a10..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/__init__.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-================
- Package _setup
-================
-
-This package provides tools for main package setup.
-"""
-__author__ = "Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-from _setup.setup import run # pylint: disable = W0611
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/commands.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/commands.py
deleted file mode 100644
index 7bfacbc86ef..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/commands.py
+++ /dev/null
@@ -1,266 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-===================
- Command extenders
-===================
-
-Command extenders.
-"""
-__author__ = "Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-__test__ = False
-
-from distutils import fancy_getopt as _fancy_getopt
-from distutils import log
-from distutils.command import build as _build
-from distutils.command import build_ext as _build_ext
-from distutils.command import install as _install
-from distutils.command import install_data as _install_data
-from distutils.command import install_lib as _install_lib
-import os as _os
-
-_option_defaults = {}
-_option_inherits = {}
-_option_finalizers = {}
-_command_mapping = {
- 'install': 'Install',
- 'install_data': 'InstallData',
- 'install_lib': 'InstallLib',
- 'build': 'Build',
- 'build_ext': 'BuildExt',
-}
-
-
-def add_option(command, long_name, help_text, short_name=None, default=None,
- inherit=None):
- """ Add an option """
- try:
- command_class = globals()[_command_mapping[command]]
- except KeyError:
- raise ValueError("Unknown command %r" % (command,))
- for opt in command_class.user_options:
- if opt[0] == long_name:
- break
- else:
- opt = (long_name, short_name, help_text)
- command_class.user_options.append(opt)
- if not long_name.endswith('='):
- command_class.boolean_options.append(long_name)
- attr_name = _fancy_getopt.translate_longopt(long_name)
- else:
- attr_name = _fancy_getopt.translate_longopt(long_name[:-1])
- if command not in _option_defaults:
- _option_defaults[command] = []
- if inherit is not None:
- if isinstance(inherit, str):
- inherit = [inherit]
- for i_inherit in inherit:
- add_option(
- i_inherit, long_name, help_text, short_name, default
- )
- default = None
- if command not in _option_inherits:
- _option_inherits[command] = []
- for i_inherit in inherit:
- for i_command, opt_name in _option_inherits[command]:
- if i_command == i_inherit and opt_name == attr_name:
- break
- else:
- _option_inherits[command].append((i_inherit, attr_name))
- _option_defaults[command].append((attr_name, default))
-
-
-def add_finalizer(command, key, func):
- """ Add finalizer """
- if command not in _option_finalizers:
- _option_finalizers[command] = {}
- if key not in _option_finalizers[command]:
- _option_finalizers[command][key] = func
-
-
-class Install(_install.install):
- """ Extended installer to reflect the additional data options """
- user_options = _install.install.user_options + [
- ('single-version-externally-managed', None,
- "Compat option. Does not a thing."),
- ]
- boolean_options = _install.install.boolean_options + [
- 'single-version-externally-managed'
- ]
-
- def initialize_options(self):
- """ Prepare for new options """
- _install.install.initialize_options(self)
- self.single_version_externally_managed = None
- if 'install' in _option_defaults:
- for opt_name, default in _option_defaults['install']:
- setattr(self, opt_name, default)
-
- def finalize_options(self):
- """ Finalize options """
- _install.install.finalize_options(self)
- if 'install' in _option_inherits:
- for parent, opt_name in _option_inherits['install']:
- self.set_undefined_options(parent, (opt_name, opt_name))
- if 'install' in _option_finalizers:
- for func in list(_option_finalizers['install'].values()):
- func(self)
-
-
-class InstallData(_install_data.install_data):
- """ Extended data installer """
- user_options = _install_data.install_data.user_options + []
- boolean_options = _install_data.install_data.boolean_options + []
-
- def initialize_options(self):
- """ Prepare for new options """
- _install_data.install_data.initialize_options(self)
- if 'install_data' in _option_defaults:
- for opt_name, default in _option_defaults['install_data']:
- setattr(self, opt_name, default)
-
- def finalize_options(self):
- """ Finalize options """
- _install_data.install_data.finalize_options(self)
- if 'install_data' in _option_inherits:
- for parent, opt_name in _option_inherits['install_data']:
- self.set_undefined_options(parent, (opt_name, opt_name))
- if 'install_data' in _option_finalizers:
- for func in list(_option_finalizers['install_data'].values()):
- func(self)
-
-
-class InstallLib(_install_lib.install_lib):
- """ Extended lib installer """
- user_options = _install_lib.install_lib.user_options + []
- boolean_options = _install_lib.install_lib.boolean_options + []
-
- def initialize_options(self):
- """ Prepare for new options """
- _install_lib.install_lib.initialize_options(self)
- if 'install_lib' in _option_defaults:
- for opt_name, default in _option_defaults['install_lib']:
- setattr(self, opt_name, default)
-
- def finalize_options(self):
- """ Finalize options """
- _install_lib.install_lib.finalize_options(self)
- if 'install_lib' in _option_inherits:
- for parent, opt_name in _option_inherits['install_lib']:
- self.set_undefined_options(parent, (opt_name, opt_name))
- if 'install_lib' in _option_finalizers:
- for func in list(_option_finalizers['install_lib'].values()):
- func(self)
-
-
-class BuildExt(_build_ext.build_ext):
- """
- Extended extension builder class
-
- This class allows extensions to provide a ``check_prerequisites`` method
- which is called before actually building it. The method takes the
- `BuildExt` instance and returns whether the extension should be skipped or
- not.
- """
-
- def initialize_options(self):
- """ Prepare for new options """
- _build_ext.build_ext.initialize_options(self)
- if 'build_ext' in _option_defaults:
- for opt_name, default in _option_defaults['build_ext']:
- setattr(self, opt_name, default)
-
- def finalize_options(self):
- """ Finalize options """
- _build_ext.build_ext.finalize_options(self)
- if 'build_ext' in _option_inherits:
- for parent, opt_name in _option_inherits['build_ext']:
- self.set_undefined_options(parent, (opt_name, opt_name))
- if 'build_ext' in _option_finalizers:
- for func in list(_option_finalizers['build_ext'].values()):
- func(self)
-
- def build_extension(self, ext):
- """
- Build C extension - with extended functionality
-
- The following features are added here:
-
- - ``ext.check_prerequisites`` is called before the extension is being
- built. See `Extension` for details. If the method does not exist,
- simply no check will be run.
- - The macros ``EXT_PACKAGE`` and ``EXT_MODULE`` will be filled (or
- unset) depending on the extensions name, but only if they are not
- already defined.
-
- :Parameters:
- `ext` : `Extension`
- The extension to build. If it's a pure
- ``distutils.core.Extension``, simply no prequisites check is
- applied.
-
- :Return: whatever ``distutils.command.build_ext.build_ext`` returns
- :Rtype: any
- """
- # handle name macros
- macros = dict(ext.define_macros or ())
- tup = ext.name.split('.')
- if len(tup) == 1:
- pkg, mod = None, tup[0]
- else:
- pkg, mod = '.'.join(tup[:-1]), tup[-1]
- if pkg is not None and 'EXT_PACKAGE' not in macros:
- ext.define_macros.append(('EXT_PACKAGE', pkg))
- if 'EXT_MODULE' not in macros:
- ext.define_macros.append(('EXT_MODULE', mod))
- if pkg is None:
- macros = dict(ext.undef_macros or ())
- if 'EXT_PACKAGE' not in macros:
- ext.undef_macros.append('EXT_PACKAGE')
-
- # handle prereq checks
- try:
- checker = ext.check_prerequisites
- except AttributeError:
- pass
- else:
- if checker(self):
- log.info("Skipping %s extension" % ext.name)
- return
-
- return _build_ext.build_ext.build_extension(self, ext)
-
-
-class Build(_build.build):
-
- def initialize_options(self):
- """ Prepare for new options """
- _build.build.initialize_options(self)
- if 'build' in _option_defaults:
- for opt_name, default in _option_defaults['build']:
- setattr(self, opt_name, default)
-
- def finalize_options(self):
- """ Finalize options """
- _build.build.finalize_options(self)
- if 'build' in _option_inherits:
- for parent, opt_name in _option_inherits['build']:
- self.set_undefined_options(parent, (opt_name, opt_name))
- if 'build' in _option_finalizers:
- for func in list(_option_finalizers['build'].values()):
- func(self)
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/data.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/data.py
deleted file mode 100644
index d4221735768..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/data.py
+++ /dev/null
@@ -1,165 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-===================
- Data distribution
-===================
-
-This module provides tools to simplify data distribution.
-"""
-__author__ = "Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-from distutils import filelist as _filelist
-import os as _os
-import posixpath as _posixpath
-import sys as _sys
-
-from _setup import commands as _commands
-
-
-def splitpath(path):
- """ Split a path """
- drive, path = '', _os.path.normpath(path)
- try:
- splitunc = _os.path.splitunc
- except AttributeError:
- pass
- else:
- drive, path = splitunc(path)
- if not drive:
- drive, path = _os.path.splitdrive(path)
- elems = []
- try:
- sep = _os.path.sep
- except AttributeError:
- sep = _os.path.join('1', '2')[1:-1]
- while 1:
- prefix, path = _os.path.split(path)
- elems.append(path)
- if prefix in ('', sep):
- drive = _os.path.join(drive, prefix)
- break
- path = prefix
- elems.reverse()
- return drive, elems
-
-
-def finalizer(installer):
- """ Finalize install_data """
- data_files = []
- for item in installer.data_files:
- if not isinstance(item, Data):
- data_files.append(item)
- continue
- data_files.extend(item.flatten(installer))
- installer.data_files = data_files
-
-
-class Data(object):
- """ File list container """
-
- def __init__(self, files, target=None, preserve=0, strip=0,
- prefix=None):
- """ Initialization """
- self._files = files
- self._target = target
- self._preserve = preserve
- self._strip = strip
- self._prefix = prefix
- self.fixup_commands()
-
- def fixup_commands(self):
- pass
-
- def from_templates(cls, *templates, **kwargs):
- """ Initialize from template """
- files = _filelist.FileList()
- for tpl in templates:
- for line in tpl.split(';'):
- files.process_template_line(line.strip())
- files.sort()
- files.remove_duplicates()
- result = []
- for filename in files.files:
- _, elems = splitpath(filename)
- if '.svn' in elems or '.git' in elems:
- continue
- result.append(filename)
- return cls(result, **kwargs)
- from_templates = classmethod(from_templates)
-
- def flatten(self, installer):
- """ Flatten the file list to (target, file) tuples """
- # pylint: disable = W0613
- if self._prefix:
- _, prefix = splitpath(self._prefix)
- telems = prefix
- else:
- telems = []
-
- tmap = {}
- for fname in self._files:
- (_, name), target = splitpath(fname), telems
- if self._preserve:
- if self._strip:
- name = name[max(0, min(self._strip, len(name) - 1)):]
- if len(name) > 1:
- target = telems + name[:-1]
- tmap.setdefault(_posixpath.join(*target), []).append(fname)
- return list(tmap.items())
-
-
-class Documentation(Data):
- """ Documentation container """
-
- def fixup_commands(self):
- _commands.add_option('install_data', 'without-docs',
- help_text='Do not install documentation files',
- inherit='install',
- )
- _commands.add_finalizer('install_data', 'documentation', finalizer)
-
- def flatten(self, installer):
- """ Check if docs should be installed at all """
- if installer.without_docs:
- return []
- return Data.flatten(self, installer)
-
-
-class Manpages(Documentation):
- """ Manpages container """
-
- def dispatch(cls, files):
- """ Automatically dispatch manpages to their target directories """
- mpmap = {}
- for manpage in files:
- normalized = _os.path.normpath(manpage)
- _, ext = _os.path.splitext(normalized)
- if ext.startswith(_os.path.extsep):
- ext = ext[len(_os.path.extsep):]
- mpmap.setdefault(ext, []).append(manpage)
- return [cls(manpages, prefix=_posixpath.join(
- 'share', 'man', 'man%s' % section,
- )) for section, manpages in list(mpmap.items())]
- dispatch = classmethod(dispatch)
-
- def flatten(self, installer):
- """ Check if manpages are suitable """
- if _sys.platform == 'win32':
- return []
- return Documentation.flatten(self, installer)
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/dist.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/dist.py
deleted file mode 100644
index cce21e57a63..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/dist.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-================
- dist utilities
-================
-
-dist utilities.
-"""
-__author__ = "Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-import sys as _sys
-
-from _setup import shell as _shell
-
-
-def run_setup(*args, **kwargs):
- """ Run setup """
- if 'setup' in kwargs:
- script = kwargs.get('setup') or 'setup.py'
- del kwargs['setup']
- else:
- script = 'setup.py'
- if 'fakeroot' in kwargs:
- fakeroot = kwargs['fakeroot']
- del kwargs['fakeroot']
- else:
- fakeroot = None
- if kwargs:
- raise TypeError("Unrecognized keyword parameters")
-
- script = _shell.native(script)
- argv = [_sys.executable, script] + list(args)
- if fakeroot:
- argv.insert(0, fakeroot)
- return not _shell.spawn(*argv)
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/ext.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/ext.py
deleted file mode 100644
index 852c466547e..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/ext.py
+++ /dev/null
@@ -1,253 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-===================
- C extension tools
-===================
-
-C extension tools.
-"""
-__author__ = "Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-__test__ = False
-
-from distutils import core as _core
-from distutils import errors as _distutils_errors
-from distutils import log
-import os as _os
-import posixpath as _posixpath
-import shutil as _shutil
-import tempfile as _tempfile
-
-from _setup import commands as _commands
-
-def _install_finalizer(installer):
- if installer.without_c_extensions:
- installer.distribution.ext_modules = []
-
-def _build_finalizer(builder):
- if builder.without_c_extensions:
- builder.extensions = []
-
-
-class Extension(_core.Extension):
- """
- Extension with prerequisite check interface
-
- If your check is cacheable (during the setup run), override
- `cached_check_prerequisites`, `check_prerequisites` otherwise.
-
- :IVariables:
- `cached_check` : ``bool``
- The cached check result
- """
- cached_check = None
-
- def __init__(self, *args, **kwargs):
- """ Initialization """
- if 'depends' in kwargs:
- self.depends = kwargs['depends'] or []
- else:
- self.depends = []
- _core.Extension.__init__(self, *args, **kwargs)
-
- # add include path
- included = _posixpath.join('_setup', 'include')
- if included not in self.include_dirs:
- self.include_dirs.append(included)
-
- # add cext.h to the dependencies
- cext_h = _posixpath.join(included, 'cext.h')
- if cext_h not in self.depends:
- self.depends.append(cext_h)
-
- _commands.add_option('install_lib', 'without-c-extensions',
- help_text='Don\'t install C extensions',
- inherit='install',
- )
- _commands.add_finalizer('install_lib', 'c-extensions',
- _install_finalizer
- )
- _commands.add_option('build_ext', 'without-c-extensions',
- help_text='Don\'t build C extensions',
- inherit=('build', 'install_lib'),
- )
- _commands.add_finalizer('build_ext', 'c-extensions', _build_finalizer)
-
- def check_prerequisites(self, build):
- """
- Check prerequisites
-
- The check should cover all dependencies needed for the extension to
- be built and run. The method can do the following:
-
- - return a false value: the extension will be built
- - return a true value: the extension will be skipped. This is useful
- for optional extensions
- - raise an exception. This is useful for mandatory extensions
-
- If the check result is cacheable (during the setup run), override
- `cached_check_prerequisites` instead.
-
- :Parameters:
- `build` : `BuildExt`
- The extension builder
-
- :Return: Skip the extension?
- :Rtype: ``bool``
- """
- if self.cached_check is None:
- log.debug("PREREQ check for %s" % self.name)
- self.cached_check = self.cached_check_prerequisites(build)
- else:
- log.debug("PREREQ check for %s (cached)" % self.name)
- return self.cached_check
-
- def cached_check_prerequisites(self, build):
- """
- Check prerequisites
-
- The check should cover all dependencies needed for the extension to
- be built and run. The method can do the following:
-
- - return a false value: the extension will be built
- - return a true value: the extension will be skipped. This is useful
- for optional extensions
- - raise an exception. This is useful for mandatory extensions
-
- If the check result is *not* cacheable (during the setup run),
- override `check_prerequisites` instead.
-
- :Parameters:
- `build` : `BuildExt`
- The extension builder
-
- :Return: Skip the extension?
- :Rtype: ``bool``
- """
- # pylint: disable = W0613
- log.debug("Nothing to check for %s!" % self.name)
- return False
-
-
-class ConfTest(object):
- """
- Single conftest abstraction
-
- :IVariables:
- `_tempdir` : ``str``
- The tempdir created for this test
-
- `src` : ``str``
- Name of the source file
-
- `target` : ``str``
- Target filename
-
- `compiler` : ``CCompiler``
- compiler instance
-
- `obj` : ``list``
- List of object filenames (``[str, ...]``)
- """
- _tempdir = None
-
- def __init__(self, build, source):
- """
- Initialization
-
- :Parameters:
- `build` : ``distuils.command.build_ext.build_ext``
- builder instance
-
- `source` : ``str``
- Source of the file to compile
- """
- self._tempdir = tempdir = _tempfile.mkdtemp()
- src = _os.path.join(tempdir, 'conftest.c')
- fp = open(src, 'w', encoding='utf-8')
- try:
- fp.write(source)
- finally:
- fp.close()
- self.src = src
- self.compiler = compiler = build.compiler
- self.target = _os.path.join(tempdir, 'conftest')
- self.obj = compiler.object_filenames([src], output_dir=tempdir)
-
- def __del__(self):
- """ Destruction """
- self.destroy()
-
- def destroy(self):
- """ Destroy the conftest leftovers on disk """
- tempdir, self._tempdir = self._tempdir, None
- if tempdir is not None:
- _shutil.rmtree(tempdir)
-
- def compile(self, **kwargs):
- """
- Compile the conftest
-
- :Parameters:
- `kwargs` : ``dict``
- Optional keyword parameters for the compiler call
-
- :Return: Was the compilation successful?
- :Rtype: ``bool``
- """
- kwargs['output_dir'] = self._tempdir
- try:
- self.compiler.compile([self.src], **kwargs)
- except _distutils_errors.CompileError:
- return False
- return True
-
- def link(self, **kwargs):
- r"""
- Link the conftest
-
- Before you can link the conftest objects they need to be `compile`\d.
-
- :Parameters:
- `kwargs` : ``dict``
- Optional keyword parameters for the linker call
-
- :Return: Was the linking successful?
- :Rtype: ``bool``
- """
- try:
- self.compiler.link_executable(self.obj, self.target, **kwargs)
- except _distutils_errors.LinkError:
- return False
- return True
-
- def pipe(self, mode="r"):
- r"""
- Execute the conftest binary and connect to it using a pipe
-
- Before you can pipe to or from the conftest binary it needs to
- be `link`\ed.
-
- :Parameters:
- `mode` : ``str``
- Pipe mode - r/w
-
- :Return: The open pipe
- :Rtype: ``file``
- """
- return _os.popen(self.compiler.executable_filename(self.target), mode)
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/setup.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/setup.py
deleted file mode 100644
index 83f1c21d544..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/setup.py
+++ /dev/null
@@ -1,420 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007 - 2013
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-===================
- Main setup runner
-===================
-
-This module provides a wrapper around the distutils core setup.
-"""
-__author__ = "Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-import configparser as _config_parser
-from distutils import core as _core
-import os as _os
-import posixpath as _posixpath
-import sys as _sys
-
-from _setup import commands as _commands
-from _setup import data as _data
-from _setup import ext as _ext
-from _setup import util as _util
-from _setup import shell as _shell
-
-
-def check_python_version(impl, version_min, version_max):
- """ Check python version """
- if impl == 'python':
- version_info = _sys.version_info
- elif impl == 'pypy':
- version_info = getattr(_sys, 'pypy_version_info', None)
- if not version_info:
- return
- elif impl == 'jython':
- if not 'java' in _sys.platform.lower():
- return
- version_info = _sys.version_info
- else:
- raise AssertionError("impl not in ('python', 'pypy', 'jython')")
-
- pyversion = list(map(int, version_info[:3]))
- if version_min:
- min_required = list(
- map(int, '.'.join((version_min, '0.0.0')).split('.')[:3])
- )
- if pyversion < min_required:
- raise EnvironmentError("Need at least %s %s (vs. %s)" % (
- impl, version_min, '.'.join(map(str, pyversion))
- ))
- if version_max:
- max_required = list(map(int, version_max.split('.')))
- max_required[-1] += 1
- if pyversion >= max_required:
- raise EnvironmentError("Need at max %s %s (vs. %s)" % (
- impl,
- version_max,
- '.'.join(map(str, pyversion))
- ))
-
-
-def find_description(docs):
- """
- Determine the package description from DESCRIPTION
-
- :Parameters:
- `docs` : ``dict``
- Docs config section
-
- :Return: Tuple of summary, description and license
- (``('summary', 'description', 'license')``)
- (all may be ``None``)
- :Rtype: ``tuple``
- """
- summary = None
- filename = docs.get('meta.summary', 'SUMMARY').strip()
- if filename and _os.path.isfile(filename):
- fp = open(filename, encoding='utf-8')
- try:
- try:
- summary = fp.read().strip().splitlines()[0].rstrip()
- except IndexError:
- summary = ''
- finally:
- fp.close()
-
- description = None
- filename = docs.get('meta.description', 'DESCRIPTION').strip()
- if filename and _os.path.isfile(filename):
- fp = open(filename, encoding='utf-8')
- try:
- description = fp.read().rstrip()
- finally:
- fp.close()
-
- if summary is None and description:
- from docutils import core
- summary = core.publish_parts(
- source=description,
- source_path=filename,
- writer_name='html',
- )['title'].encode('utf-8')
-
- return summary, description
-
-
-def find_classifiers(docs):
- """
- Determine classifiers from CLASSIFIERS
-
- :return: List of classifiers (``['classifier', ...]``)
- :rtype: ``list``
- """
- filename = docs.get('meta.classifiers', 'CLASSIFIERS').strip()
- if filename and _os.path.isfile(filename):
- fp = open(filename, encoding='utf-8')
- try:
- content = fp.read()
- finally:
- fp.close()
- content = [item.strip() for item in content.splitlines()]
- return [item for item in content if item and not item.startswith('#')]
- return []
-
-
-def find_provides(docs):
- """
- Determine provides from PROVIDES
-
- :return: List of provides (``['provides', ...]``)
- :rtype: ``list``
- """
- filename = docs.get('meta.provides', 'PROVIDES').strip()
- if filename and _os.path.isfile(filename):
- fp = open(filename, encoding='utf-8')
- try:
- content = fp.read()
- finally:
- fp.close()
- content = [item.strip() for item in content.splitlines()]
- return [item for item in content if item and not item.startswith('#')]
- return []
-
-
-def find_license(docs):
- """
- Determine license from LICENSE
-
- :return: License text
- :rtype: ``str``
- """
- filename = docs.get('meta.license', 'LICENSE').strip()
- if filename and _os.path.isfile(filename):
- fp = open(filename, encoding='utf-8')
- try:
- return fp.read().rstrip()
- finally:
- fp.close()
- return None
-
-
-def find_packages(manifest):
- """ Determine packages and subpackages """
- packages = {}
- collect = manifest.get('packages.collect', '').split()
- lib = manifest.get('packages.lib', '.')
- try:
- sep = _os.path.sep
- except AttributeError:
- sep = _os.path.join('1', '2')[1:-1]
- for root in collect:
- for dirpath, _, filenames in _shell.walk(_os.path.join(lib, root)):
- if dirpath.find('.svn') >= 0 or dirpath.find('.git') >= 0:
- continue
- if '__init__.py' in filenames:
- packages[
- _os.path.normpath(dirpath).replace(sep, '.')
- ] = None
- packages = list(packages.keys())
- packages.sort()
- return packages
-
-
-def find_data(name, docs):
- """ Determine data files """
- result = []
- if docs.get('extra', '').strip():
- result.append(_data.Documentation(docs['extra'].split(),
- prefix='share/doc/%s' % name,
- ))
- if docs.get('examples.dir', '').strip():
- tpl = ['recursive-include %s *' % docs['examples.dir']]
- if docs.get('examples.ignore', '').strip():
- tpl.extend(["global-exclude %s" % item
- for item in docs['examples.ignore'].split()
- ])
- strip = int(docs.get('examples.strip', '') or 0)
- result.append(_data.Documentation.from_templates(*tpl, **{
- 'strip': strip,
- 'prefix': 'share/doc/%s' % name,
- 'preserve': 1,
- }))
- if docs.get('userdoc.dir', '').strip():
- tpl = ['recursive-include %s *' % docs['userdoc.dir']]
- if docs.get('userdoc.ignore', '').strip():
- tpl.extend(["global-exclude %s" % item
- for item in docs['userdoc.ignore'].split()
- ])
- strip = int(docs.get('userdoc.strip', '') or 0)
- result.append(_data.Documentation.from_templates(*tpl, **{
- 'strip': strip,
- 'prefix': 'share/doc/%s' % name,
- 'preserve': 1,
- }))
- if docs.get('apidoc.dir', '').strip():
- tpl = ['recursive-include %s *' % docs['apidoc.dir']]
- if docs.get('apidoc.ignore', '').strip():
- tpl.extend(["global-exclude %s" % item
- for item in docs['apidoc.ignore'].split()
- ])
- strip = int(docs.get('apidoc.strip', '') or 0)
- result.append(_data.Documentation.from_templates(*tpl, **{
- 'strip': strip,
- 'prefix': 'share/doc/%s' % name,
- 'preserve': 1,
- }))
- if docs.get('man', '').strip():
- result.extend(_data.Manpages.dispatch(docs['man'].split()))
- return result
-
-
-def make_manifest(manifest, config, docs, kwargs):
- """ Create file list to pack up """
- # pylint: disable = R0912
- kwargs = kwargs.copy()
- kwargs['script_args'] = ['install']
- kwargs['packages'] = list(kwargs.get('packages') or ()) + [
- '_setup', '_setup.py2', '_setup.py3',
- ] + list(manifest.get('packages.extra', '').split() or ())
- _core._setup_stop_after = "commandline"
- try:
- dist = _core.setup(**kwargs)
- finally:
- _core._setup_stop_after = None
-
- result = ['MANIFEST', 'PKG-INFO', 'setup.py'] + list(config)
- # TODO: work with default values:
- for key in ('classifiers', 'description', 'summary', 'provides',
- 'license'):
- filename = docs.get('meta.' + key, '').strip()
- if filename and _os.path.isfile(filename):
- result.append(filename)
-
- cmd = dist.get_command_obj("build_py")
- cmd.ensure_finalized()
- #from pprint import pprint; pprint(("build_py", cmd.get_source_files()))
- for item in cmd.get_source_files():
- result.append(_posixpath.sep.join(
- _os.path.normpath(item).split(_os.path.sep)
- ))
-
- cmd = dist.get_command_obj("build_ext")
- cmd.ensure_finalized()
- #from pprint import pprint; pprint(("build_ext", cmd.get_source_files()))
- for item in cmd.get_source_files():
- result.append(_posixpath.sep.join(
- _os.path.normpath(item).split(_os.path.sep)
- ))
- for ext in cmd.extensions:
- if ext.depends:
- result.extend([_posixpath.sep.join(
- _os.path.normpath(item).split(_os.path.sep)
- ) for item in ext.depends])
-
- cmd = dist.get_command_obj("build_clib")
- cmd.ensure_finalized()
- if cmd.libraries:
- #import pprint; pprint.pprint(("build_clib", cmd.get_source_files()))
- for item in cmd.get_source_files():
- result.append(_posixpath.sep.join(
- _os.path.normpath(item).split(_os.path.sep)
- ))
- for lib in cmd.libraries:
- if lib[1].get('depends'):
- result.extend([_posixpath.sep.join(
- _os.path.normpath(item).split(_os.path.sep)
- ) for item in lib[1]['depends']])
-
- cmd = dist.get_command_obj("build_scripts")
- cmd.ensure_finalized()
- #import pprint; pprint.pprint(("build_scripts", cmd.get_source_files()))
- if cmd.get_source_files():
- for item in cmd.get_source_files():
- result.append(_posixpath.sep.join(
- _os.path.normpath(item).split(_os.path.sep)
- ))
-
- cmd = dist.get_command_obj("install_data")
- cmd.ensure_finalized()
- #from pprint import pprint; pprint(("install_data", cmd.get_inputs()))
- try:
- strings = str
- except NameError:
- strings = (str, str)
-
- for item in cmd.get_inputs():
- if isinstance(item, strings):
- result.append(item)
- else:
- result.extend(item[1])
-
- for item in manifest.get('dist', '').split():
- result.append(item)
- if _os.path.isdir(item):
- for filename in _shell.files(item):
- result.append(filename)
-
- result = list(dict([(item, None) for item in result]).keys())
- result.sort()
- return result
-
-
-def run(config=('package.cfg',), ext=None, script_args=None, manifest_only=0):
- """ Main runner """
- if ext is None:
- ext = []
-
- cfg = _util.SafeConfigParser()
- cfg.read(config, encoding='utf-8')
- pkg = dict(cfg.items('package'))
- python_min = pkg.get('python.min') or None
- python_max = pkg.get('python.max') or None
- check_python_version('python', python_min, python_max)
- pypy_min = pkg.get('pypy.min') or None
- pypy_max = pkg.get('pypy.max') or None
- check_python_version('pypy', pypy_min, pypy_max)
- jython_min = pkg.get('jython.min') or None
- jython_max = pkg.get('jython.max') or None
- check_python_version('jython', jython_min, jython_max)
-
- manifest = dict(cfg.items('manifest'))
- try:
- docs = dict(cfg.items('docs'))
- except _config_parser.NoSectionError:
- docs = {}
-
- summary, description = find_description(docs)
- scripts = manifest.get('scripts', '').strip() or None
- if scripts:
- scripts = scripts.split()
- modules = manifest.get('modules', '').strip() or None
- if modules:
- modules = modules.split()
- keywords = docs.get('meta.keywords', '').strip() or None
- if keywords:
- keywords = keywords.split()
- revision = pkg.get('version.revision', '').strip()
- if revision:
- revision = "-r%s" % (revision,)
-
- kwargs = {
- 'name': pkg['name'],
- 'version': "%s%s" % (
- pkg['version.number'],
- ["", "-dev%s" % (revision,)][_util.humanbool(
- 'version.dev', pkg.get('version.dev', 'false')
- )],
- ),
- 'provides': find_provides(docs),
- 'description': summary,
- 'long_description': description,
- 'classifiers': find_classifiers(docs),
- 'keywords': keywords,
- 'author': pkg['author.name'],
- 'author_email': pkg['author.email'],
- 'maintainer': pkg.get('maintainer.name'),
- 'maintainer_email': pkg.get('maintainer.email'),
- 'url': pkg.get('url.homepage'),
- 'download_url': pkg.get('url.download'),
- 'license': find_license(docs),
- 'package_dir': {'': manifest.get('packages.lib', '.')},
- 'packages': find_packages(manifest),
- 'py_modules': modules,
- 'ext_modules': ext,
- 'scripts': scripts,
- 'script_args': script_args,
- 'data_files': find_data(pkg['name'], docs),
- 'cmdclass': {
- 'build' : _commands.Build,
- 'build_ext' : _commands.BuildExt,
- 'install' : _commands.Install,
- 'install_data': _commands.InstallData,
- 'install_lib' : _commands.InstallLib,
- }
- }
- for key in ('provides',):
- if key not in _core.setup_keywords:
- del kwargs[key]
-
- if manifest_only:
- return make_manifest(manifest, config, docs, kwargs)
-
- # monkey-patch crappy manifest writer away.
- from distutils.command import sdist
- sdist.sdist.get_file_list = sdist.sdist.read_manifest
-
- return _core.setup(**kwargs)
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/shell.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/shell.py
deleted file mode 100644
index 91f2ebc5b40..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/shell.py
+++ /dev/null
@@ -1,351 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007 - 2013
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-=================
- Shell utilities
-=================
-
-Shell utilities.
-"""
-__author__ = "Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-import errno as _errno
-import fnmatch as _fnmatch
-import os as _os
-import shutil as _shutil
-import subprocess as _subprocess
-import sys as _sys
-import tempfile as _tempfile
-
-cwd = _os.path.dirname(_os.path.abspath(_sys.argv[0]))
-
-class ExitError(RuntimeError):
- """ Exit error """
- def __init__(self, code):
- RuntimeError.__init__(self, code)
- self.code = code
- self.signal = None
-
-
-class SignalError(ExitError):
- """ Signal error """
- def __init__(self, code, signal):
- ExitError.__init__(self, code)
- import signal as _signal
- self.signal = signal
- for key, val in vars(_signal).items():
- if key.startswith('SIG') and not key.startswith('SIG_'):
- if val == signal:
- self.signalstr = key[3:]
- break
- else:
- self.signalstr = '%04d' % signal
-
-
-def native(path):
- """ Convert slash path to native """
- path = _os.path.sep.join(path.split('/'))
- return _os.path.normpath(_os.path.join(cwd, path))
-
-
-def cp(src, dest):
- """ Copy src to dest """
- _shutil.copy2(native(src), native(dest))
-
-
-def cp_r(src, dest):
- """ Copy -r src to dest """
- _shutil.copytree(native(src), native(dest))
-
-
-def rm(dest):
- """ Remove a file """
- try:
- _os.unlink(native(dest))
- except OSError as e:
- if _errno.ENOENT != e.errno:
- raise
-
-def rm_rf(dest):
- """ Remove a tree """
- dest = native(dest)
- if _os.path.exists(dest):
- for path in files(dest, '*'):
- _os.chmod(native(path), 0o644)
- _shutil.rmtree(dest)
-
-
-mkstemp = _tempfile.mkstemp
-
-
-def _pipespawn(argv, env):
- """ Pipe spawn """
- # pylint: disable = R0912
- import pickle as _pickle
- fd, name = mkstemp('.py')
- try:
- _os.write(fd, ((r"""
-import os
-import pickle
-import subprocess
-import sys
-
-argv = pickle.loads(%(argv)s)
-env = pickle.loads(%(env)s)
-if 'X_JYTHON_WA_PATH' in env:
- env['PATH'] = env['X_JYTHON_WA_PATH']
-
-p = subprocess.Popen(argv, env=env)
-result = p.wait()
-if result < 0:
- print("\n%%d 1" %% (-result))
- sys.exit(2)
-if result == 0:
- sys.exit(0)
-print("\n%%d" %% (result & 7,))
-sys.exit(3)
- """.strip() + "\n") % {
- 'argv': repr(_pickle.dumps(argv)),
- 'env': repr(_pickle.dumps(dict(env))),
- }).encode('utf-8'))
- fd, _ = None, _os.close(fd)
- if _sys.platform == 'win32':
- argv = []
- for arg in [_sys.executable, name]:
- if ' ' in arg or arg.startswith('"'):
- arg = '"%s"' % arg.replace('"', '\\"')
- argv.append(arg)
- argv = ' '.join(argv)
- shell = True
- close_fds = False
- else:
- argv = [_sys.executable, name]
- shell = False
- close_fds = True
-
- res = 0
- if 'X_JYTHON_WA_PATH' in env:
- env['PATH'] = env['X_JYTHON_WA_PATH']
-
- proc = _subprocess.Popen(argv,
- shell=shell,
- stdin=_subprocess.PIPE,
- stdout=_subprocess.PIPE,
- close_fds=close_fds,
- env=env,
- )
- try:
- proc.stdin.close()
- result = proc.stdout.read()
- finally:
- res = proc.wait()
- if res != 0:
- if res == 2:
- signal, code = list(map(int, result.splitlines()[-1].split()))
- raise SignalError(code, signal)
- elif res == 3:
- code = int(result.splitlines()[-1].strip())
- raise ExitError(code)
- raise ExitError(res)
-
- return result.decode('latin-1')
- finally:
- try:
- if fd is not None:
- _os.close(fd)
- finally:
- _os.unlink(name)
-
-
-def _filepipespawn(infile, outfile, argv, env):
- """ File Pipe spawn """
- import pickle as _pickle
- fd, name = mkstemp('.py')
- try:
- _os.write(fd, (("""
-import os
-import pickle
-import sys
-
-infile = pickle.loads(%(infile)s)
-outfile = pickle.loads(%(outfile)s)
-argv = pickle.loads(%(argv)s)
-env = pickle.loads(%(env)s)
-
-if infile is not None:
- infile = open(infile, 'rb')
- os.dup2(infile.fileno(), 0)
- infile.close()
-if outfile is not None:
- outfile = open(outfile, 'wb')
- os.dup2(outfile.fileno(), 1)
- outfile.close()
-
-pid = os.spawnve(os.P_NOWAIT, argv[0], argv, env)
-result = os.waitpid(pid, 0)[1]
-sys.exit(result & 7)
- """.strip() + "\n") % {
- 'infile': repr(_pickle.dumps(_os.path.abspath(infile))),
- 'outfile': repr(_pickle.dumps(_os.path.abspath(outfile))),
- 'argv': repr(_pickle.dumps(argv)),
- 'env': repr(_pickle.dumps(env)),
- }).encode('utf-8'))
- fd, _ = None, _os.close(fd)
- if _sys.platform == 'win32':
- argv = []
- for arg in [_sys.executable, name]:
- if ' ' in arg or arg.startswith('"'):
- arg = '"%s"' % arg.replace('"', '\\"')
- argv.append(arg)
- argv = ' '.join(argv)
- close_fds = False
- shell = True
- else:
- argv = [_sys.executable, name]
- close_fds = True
- shell = False
-
- p = _subprocess.Popen(
- argv, env=env, shell=shell, close_fds=close_fds
- )
- return p.wait()
- finally:
- try:
- if fd is not None:
- _os.close(fd)
- finally:
- _os.unlink(name)
-
-
-def spawn(*argv, **kwargs):
- """ Spawn a process """
- if _sys.platform == 'win32':
- newargv = []
- for arg in argv:
- if not arg or ' ' in arg or arg.startswith('"'):
- arg = '"%s"' % arg.replace('"', '\\"')
- newargv.append(arg)
- argv = newargv
- close_fds = False
- shell = True
- else:
- close_fds = True
- shell = False
-
- env = kwargs.get('env')
- if env is None:
- env = dict(_os.environ)
- if 'X_JYTHON_WA_PATH' in env:
- env['PATH'] = env['X_JYTHON_WA_PATH']
-
- echo = kwargs.get('echo')
- if echo:
- print(' '.join(argv))
- filepipe = kwargs.get('filepipe')
- if filepipe:
- return _filepipespawn(
- kwargs.get('stdin'), kwargs.get('stdout'), argv, env
- )
- pipe = kwargs.get('stdout')
- if pipe:
- return _pipespawn(argv, env)
-
- p = _subprocess.Popen(argv, env=env, shell=shell, close_fds=close_fds)
- return p.wait()
-
-
-walk = _os.walk
-
-
-def files(base, wildcard='[!.]*', recursive=1, prune=('.git', '.svn', 'CVS')):
- """ Determine a filelist """
- for dirpath, dirnames, filenames in walk(native(base)):
- for item in prune:
- if item in dirnames:
- dirnames.remove(item)
-
- filenames.sort()
- for name in _fnmatch.filter(filenames, wildcard):
- dest = _os.path.join(dirpath, name)
- if dest.startswith(cwd):
- dest = dest.replace(cwd, '', 1)
- aslist = []
- head, tail = _os.path.split(dest)
- while tail:
- aslist.append(tail)
- head, tail = _os.path.split(head)
- aslist.reverse()
- dest = '/'.join(aslist)
- yield dest
-
- if not recursive:
- break
- dirnames.sort()
-
-
-def dirs(base, wildcard='[!.]*', recursive=1, prune=('.git', '.svn', 'CVS')):
- """ Determine a filelist """
- for dirpath, dirnames, filenames in walk(native(base)):
- for item in prune:
- if item in dirnames:
- dirnames.remove(item)
-
- dirnames.sort()
- for name in _fnmatch.filter(dirnames, wildcard):
- dest = _os.path.join(dirpath, name)
- if dest.startswith(cwd):
- dest = dest.replace(cwd, '', 1)
- aslist = []
- head, tail = _os.path.split(dest)
- while tail:
- aslist.append(tail)
- head, tail = _os.path.split(head)
- aslist.reverse()
- dest = '/'.join(aslist)
- yield dest
-
- if not recursive:
- break
-
-
-def frompath(executable):
- """ Find executable in PATH """
- # Based on distutils.spawn.find_executable.
- path = _os.environ.get('PATH', '')
- paths = [
- _os.path.expanduser(item)
- for item in path.split(_os.pathsep)
- ]
- ext = _os.path.splitext(executable)[1]
- exts = ['']
- if _sys.platform == 'win32' or _os.name == 'os2':
- eext = ['.exe', '.bat', '.py']
- if ext not in eext:
- exts.extend(eext)
-
- for ext in exts:
- if not _os.path.isfile(executable + ext):
- for path in paths:
- fname = _os.path.join(path, executable + ext)
- if _os.path.isfile(fname):
- # the file exists, we have a shot at spawn working
- return fname
- else:
- return executable + ext
-
- return None
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/term/__init__.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/term/__init__.py
deleted file mode 100644
index 5459454514b..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/term/__init__.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-=====================
- Package _setup.term
-=====================
-
-Terminal tools, not distributed.
-"""
-__author__ = "Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-# pylint: disable = W0611
-from _setup.term._term import terminfo, write, green, red, yellow, announce
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/term/_term.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/term/_term.py
deleted file mode 100644
index b94f58e27f1..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/term/_term.py
+++ /dev/null
@@ -1,116 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-=================
- Terminal writer
-=================
-"""
-__author__ = "Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-import sys as _sys
-
-
-class _INFO(dict):
- """ Terminal info dict """
-
- def __init__(self):
- """ Initialization """
- dict.__init__(self, {
- 'NORMAL': '',
- 'BOLD': '',
- 'ERASE': '\n',
- 'RED': '',
- 'YELLOW': '',
- 'GREEN': '',
- })
- try:
- import curses as _curses
- except ImportError:
- # fixup if a submodule of curses failed.
- if 'curses' in _sys.modules:
- del _sys.modules['curses']
- else:
- try:
- _curses.setupterm()
- except (TypeError, _curses.error):
- pass
- else:
- def make_color(color):
- """ Make color control string """
- seq = _curses.tigetstr('setaf').decode('ascii')
- if seq is not None:
- # XXX may fail - need better logic
- seq = seq.replace("%p1", "") % color
- return seq
-
- self['NORMAL'] = _curses.tigetstr('sgr0').decode('ascii')
- self['BOLD'] = _curses.tigetstr('bold').decode('ascii')
-
- erase = _curses.tigetstr('el1').decode('ascii')
- if erase is not None:
- self['ERASE'] = erase + \
- _curses.tigetstr('cr').decode('ascii')
-
- self['RED'] = make_color(_curses.COLOR_RED)
- self['YELLOW'] = make_color(_curses.COLOR_YELLOW)
- self['GREEN'] = make_color(_curses.COLOR_GREEN)
-
- def __getitem__(self, key):
- """ Deliver always """
- dict.get(self, key) or ""
-
-
-def terminfo():
- """ Get info singleton """
- # pylint: disable = E1101, W0612
- if terminfo.info is None:
- terminfo.info = _INFO()
- return terminfo.info
-terminfo.info = None
-
-
-def write(fmt, **kwargs):
- """ Write stuff on the terminal """
- parm = dict(terminfo())
- parm.update(kwargs)
- _sys.stdout.write(fmt % parm)
- _sys.stdout.flush()
-
-
-def green(bmt, **kwargs):
- """ Write something in green on screen """
- announce("%%(GREEN)s%s%%(NORMAL)s" % bmt, **kwargs)
-
-
-def red(bmt, **kwargs):
- """ Write something in red on the screen """
- announce("%%(BOLD)s%%(RED)s%s%%(NORMAL)s" % bmt, **kwargs)
-
-
-def yellow(fmt, **kwargs):
- """ Write something in yellow on the screen """
- announce("%%(BOLD)s%%(YELLOW)s%s%%(NORMAL)s" % fmt, **kwargs)
-
-
-def announce(fmt, **kwargs):
- """ Announce something """
- write(fmt, **kwargs)
- _sys.stdout.write("\n")
- _sys.stdout.flush()
-
-
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/util.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/util.py
deleted file mode 100644
index a07daa812fe..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/_setup/py3/util.py
+++ /dev/null
@@ -1,63 +0,0 @@
-# -*- coding: ascii -*-
-#
-# Copyright 2007, 2008, 2009, 2010, 2011
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-=================
- Setup utilities
-=================
-
-Setup utilities.
-"""
-__author__ = "Andr\xe9 Malo"
-__docformat__ = "restructuredtext en"
-
-from distutils import util as _util
-try:
- from configparser import SafeConfigParser
-except ImportError:
- import configparser as _config_parser
- class SafeConfigParser(_config_parser.ConfigParser):
- """ Safe config parser """
- def _interpolate(self, section, option, rawval, vars):
- return rawval
-
- def items(self, section):
- return [(key, self.get(section, key))
- for key in self.options(section)
- ]
-
-
-def humanbool(name, value):
- """
- Determine human boolean value
-
- :Parameters:
- `name` : ``str``
- The config key (used for error message)
-
- `value` : ``str``
- The config value
-
- :Return: The boolean value
- :Rtype: ``bool``
-
- :Exceptions:
- - `ValueError` : The value could not be recognized
- """
- try:
- return _util.strtobool(str(value).strip().lower() or 'no')
- except ValueError:
- raise ValueError("Unrecognized config value: %s = %s" % (name, value))
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/LICENSE.cssmin b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/LICENSE.cssmin
deleted file mode 100644
index c10ccb05c7a..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/LICENSE.cssmin
+++ /dev/null
@@ -1,64 +0,0 @@
-`cssmin.py` - A Python port of the YUI CSS compressor.
-
-Copyright (c) 2010 Zachary Voase
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
--------------------------------------------------------------------------------
-
-This software contains portions of the YUI CSS Compressor, notably some regular
-expressions for reducing the size of CSS. The YUI Compressor source code can be
-found at <http://github.com/yui/yuicompressor>, and is licensed as follows:
-
-> YUI Compressor Copyright License Agreement (BSD License)
->
-> Copyright (c) 2009, Yahoo! Inc.
-> All rights reserved.
->
-> Redistribution and use of this software 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.
->
-> * Neither the name of Yahoo! Inc. nor the names of its
-> contributors may be used to endorse or promote products
-> derived from this software without specific prior
-> written permission of Yahoo! Inc.
->
-> 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.
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/__init__.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/__init__.py
deleted file mode 100644
index 705dd0ccd1b..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/__init__.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- coding: ascii -*-
-r"""
-=================================
- Benchmark cssmin implementations
-=================================
-
-Benchmark cssmin implementations.
-
-:Copyright:
-
- Copyright 2011 - 2014
- Andr\xe9 Malo or his licensors, as applicable
-
-:License:
-
- 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.
-
-"""
-if __doc__:
- __doc__ = __doc__.encode('ascii').decode('unicode_escape')
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/cssmin.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/cssmin.py
deleted file mode 100644
index cbfbf8d4966..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/cssmin.py
+++ /dev/null
@@ -1,246 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""`cssmin` - A Python port of the YUI CSS compressor.
-
-:Copyright:
-
- Copyright 2011 - 2014
- Andr\xe9 Malo or his licensors, as applicable
-
-:License:
-
- 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.
-
-"""
-
-try:
- from StringIO import StringIO # The pure-Python StringIO supports unicode.
-except ImportError:
- from io import StringIO
-import re
-
-
-__version__ = '0.2.0'
-
-
-def remove_comments(css):
- """Remove all CSS comment blocks."""
-
- iemac = False
- preserve = False
- comment_start = css.find("/*")
- while comment_start >= 0:
- # Preserve comments that look like `/*!...*/`.
- # Slicing is used to make sure we don"t get an IndexError.
- preserve = css[comment_start + 2:comment_start + 3] == "!"
-
- comment_end = css.find("*/", comment_start + 2)
- if comment_end < 0:
- if not preserve:
- css = css[:comment_start]
- break
- elif comment_end >= (comment_start + 2):
- if css[comment_end - 1] == "\\":
- # This is an IE Mac-specific comment; leave this one and the
- # following one alone.
- comment_start = comment_end + 2
- iemac = True
- elif iemac:
- comment_start = comment_end + 2
- iemac = False
- elif not preserve:
- css = css[:comment_start] + css[comment_end + 2:]
- else:
- comment_start = comment_end + 2
- comment_start = css.find("/*", comment_start)
-
- return css
-
-
-def remove_unnecessary_whitespace(css):
- """Remove unnecessary whitespace characters."""
-
- def pseudoclasscolon(css):
-
- """
- Prevents 'p :link' from becoming 'p:link'.
-
- Translates 'p :link' into 'p ___PSEUDOCLASSCOLON___link'; this is
- translated back again later.
- """
-
- regex = re.compile(r"(^|\})(([^\{\:])+\:)+([^\{]*\{)")
- match = regex.search(css)
- while match:
- css = ''.join([
- css[:match.start()],
- match.group().replace(":", "___PSEUDOCLASSCOLON___"),
- css[match.end():]])
- match = regex.search(css)
- return css
-
- css = pseudoclasscolon(css)
- # Remove spaces from before things.
- css = re.sub(r"\s+([!{};:>+\(\)\],])", r"\1", css)
-
- # If there is a `@charset`, then only allow one, and move to the beginning.
- css = re.sub(r"^(.*)(@charset \"[^\"]*\";)", r"\2\1", css)
- css = re.sub(r"^(\s*@charset [^;]+;\s*)+", r"\1", css)
-
- # Put the space back in for a few cases, such as `@media screen` and
- # `(-webkit-min-device-pixel-ratio:0)`.
- css = re.sub(r"\band\(", "and (", css)
-
- # Put the colons back.
- css = css.replace('___PSEUDOCLASSCOLON___', ':')
-
- # Remove spaces from after things.
- css = re.sub(r"([!{}:;>+\(\[,])\s+", r"\1", css)
-
- return css
-
-
-def remove_unnecessary_semicolons(css):
- """Remove unnecessary semicolons."""
-
- return re.sub(r";+\}", "}", css)
-
-
-def remove_empty_rules(css):
- """Remove empty rules."""
-
- return re.sub(r"[^\}\{]+\{\}", "", css)
-
-
-def normalize_rgb_colors_to_hex(css):
- """Convert `rgb(51,102,153)` to `#336699`."""
-
- regex = re.compile(r"rgb\s*\(\s*([0-9,\s]+)\s*\)")
- match = regex.search(css)
- while match:
- colors = map(lambda s: s.strip(), match.group(1).split(","))
- hexcolor = '#%.2x%.2x%.2x' % tuple(map(int, colors))
- css = css.replace(match.group(), hexcolor)
- match = regex.search(css)
- return css
-
-
-def condense_zero_units(css):
- """Replace `0(px, em, %, etc)` with `0`."""
-
- return re.sub(r"([\s:])(0)(px|em|%|in|cm|mm|pc|pt|ex)", r"\1\2", css)
-
-
-def condense_multidimensional_zeros(css):
- """Replace `:0 0 0 0;`, `:0 0 0;` etc. with `:0;`."""
-
- css = css.replace(":0 0 0 0;", ":0;")
- css = css.replace(":0 0 0;", ":0;")
- css = css.replace(":0 0;", ":0;")
-
- # Revert `background-position:0;` to the valid `background-position:0 0;`.
- css = css.replace("background-position:0;", "background-position:0 0;")
-
- return css
-
-
-def condense_floating_points(css):
- """Replace `0.6` with `.6` where possible."""
-
- return re.sub(r"(:|\s)0+\.(\d+)", r"\1.\2", css)
-
-
-def condense_hex_colors(css):
- """Shorten colors from #AABBCC to #ABC where possible."""
-
- regex = re.compile(r"([^\"'=\s])(\s*)#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])")
- match = regex.search(css)
- while match:
- first = match.group(3) + match.group(5) + match.group(7)
- second = match.group(4) + match.group(6) + match.group(8)
- if first.lower() == second.lower():
- css = css.replace(match.group(), match.group(1) + match.group(2) + '#' + first)
- match = regex.search(css, match.end() - 3)
- else:
- match = regex.search(css, match.end())
- return css
-
-
-def condense_whitespace(css):
- """Condense multiple adjacent whitespace characters into one."""
-
- return re.sub(r"\s+", " ", css)
-
-
-def condense_semicolons(css):
- """Condense multiple adjacent semicolon characters into one."""
-
- return re.sub(r";;+", ";", css)
-
-
-def wrap_css_lines(css, line_length):
- """Wrap the lines of the given CSS to an approximate length."""
-
- lines = []
- line_start = 0
- for i, char in enumerate(css):
- # It's safe to break after `}` characters.
- if char == '}' and (i - line_start >= line_length):
- lines.append(css[line_start:i + 1])
- line_start = i + 1
-
- if line_start < len(css):
- lines.append(css[line_start:])
- return '\n'.join(lines)
-
-
-def cssmin(css, wrap=None):
- css = remove_comments(css)
- css = condense_whitespace(css)
- # A pseudo class for the Box Model Hack
- # (see http://tantek.com/CSS/Examples/boxmodelhack.html)
- css = css.replace('"\\"}\\""', "___PSEUDOCLASSBMH___")
- css = remove_unnecessary_whitespace(css)
- css = remove_unnecessary_semicolons(css)
- css = condense_zero_units(css)
- css = condense_multidimensional_zeros(css)
- css = condense_floating_points(css)
- css = normalize_rgb_colors_to_hex(css)
- css = condense_hex_colors(css)
- if wrap is not None:
- css = wrap_css_lines(css, wrap)
- css = css.replace("___PSEUDOCLASSBMH___", '"\\"}\\""')
- css = condense_semicolons(css)
- return css.strip()
-
-
-def main():
- import optparse
- import sys
-
- p = optparse.OptionParser(
- prog="cssmin", version=__version__,
- usage="%prog [--wrap N]",
- description="""Reads raw CSS from stdin, and writes compressed CSS to stdout.""")
-
- p.add_option(
- '-w', '--wrap', type='int', default=None, metavar='N',
- help="Wrap output to approximately N chars per line.")
-
- options, args = p.parse_args()
- sys.stdout.write(cssmin(sys.stdin.read(), wrap=options.wrap))
-
-
-if __name__ == '__main__':
- main()
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/main.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/main.py
deleted file mode 100644
index 078150629f2..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/main.py
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: ascii -*-
-r"""
-==================================
- Benchmark cssmin implementations
-==================================
-
-Benchmark cssmin implementations.
-
-:Copyright:
-
- Copyright 2011 - 2014
- Andr\xe9 Malo or his licensors, as applicable
-
-:License:
-
- 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.
-
-Usage::
-
- python -mbench.main [-c COUNT] [-p file] cssfile ...
-
- -c COUNT number of runs per cssfile and minifier. Defaults to 10.
- -p file File to write the benchmark results in (pickled)
-
-"""
-if __doc__:
- __doc__ = __doc__.encode('ascii').decode('unicode_escape')
-__author__ = r"Andr\xe9 Malo".encode('ascii').decode('unicode_escape')
-__docformat__ = "restructuredtext en"
-__license__ = "Apache License, Version 2.0"
-__version__ = "1.0.0"
-
-import sys as _sys
-import time as _time
-
-import_notes = []
-class _p_02__rcssmin(object):
- def __init__(self):
- import rcssmin
- cssmin = rcssmin._make_cssmin(python_only=True)
- self.cssmin = lambda x: cssmin(x, keep_bang_comments=True)
-
-class _p_03__rcssmin(object):
- def __init__(self):
- import _rcssmin
- cssmin = _rcssmin.cssmin
- self.cssmin = lambda x: cssmin(x, keep_bang_comments=True)
-
-class cssmins(object):
- from bench import cssmin as p_01_cssmin
- p_02_rcssmin = _p_02__rcssmin()
- try:
- p_03__rcssmin = _p_03__rcssmin()
- except ImportError:
- import_notes.append("_rcssmin (C-Port) not available")
- print(import_notes[-1])
-
-print("Python Release: %s" % ".".join(map(str, _sys.version_info[:3])))
-print("")
-
-
-def slurp(filename):
- """ Load a file """
- fp = open(filename)
- try:
- return fp.read()
- finally:
- fp.close()
-
-
-def print_(*value, **kwargs):
- """ Print stuff """
- (kwargs.get('file') or _sys.stdout).write(
- ''.join(value) + kwargs.get('end', '\n')
- )
-
-
-def bench(filenames, count):
- """
- Benchmark the minifiers with given css samples
-
- :Parameters:
- `filenames` : sequence
- List of filenames
-
- `count` : ``int``
- Number of runs per css file and minifier
-
- :Exceptions:
- - `RuntimeError` : empty filenames sequence
- """
- if not filenames:
- raise RuntimeError("Missing files to benchmark")
- try:
- xrange
- except NameError:
- xrange = range
- try:
- cmp
- except NameError:
- cmp = lambda a, b: (a > b) - (a < b)
-
- ports = [item for item in dir(cssmins) if item.startswith('p_')]
- ports.sort()
- space = max(map(len, ports)) - 4
- ports = [(item[5:], getattr(cssmins, item).cssmin) for item in ports]
- flush = _sys.stdout.flush
-
- struct = []
- inputs = [(filename, slurp(filename)) for filename in filenames]
- for filename, style in inputs:
- print_("Benchmarking %r..." % filename, end=" ")
- flush()
- outputs = []
- for _, cssmin in ports:
- try:
- outputs.append(cssmin(style))
- except (SystemExit, KeyboardInterrupt):
- raise
- except:
- outputs.append(None)
- struct.append(dict(
- filename=filename,
- sizes=[
- (item is not None and len(item) or None) for item in outputs
- ],
- size=len(style),
- messages=[],
- times=[],
- ))
- print_("(%.1f KiB)" % (struct[-1]['size'] / 1024.0,))
- flush()
- times = []
- for idx, (name, cssmin) in enumerate(ports):
- if outputs[idx] is None:
- print_(" FAILED %s" % (name,))
- struct[-1]['times'].append((name, None))
- else:
- print_(" Timing %s%s... (%5.1f KiB %s)" % (
- name,
- " " * (space - len(name)),
- len(outputs[idx]) / 1024.0,
- idx == 0 and '*' or ['=', '>', '<'][
- cmp(len(outputs[idx]), len(outputs[0]))
- ],
- ), end=" ")
- flush()
-
- xcount = count
- while True:
- counted = [None for _ in xrange(xcount)]
- start = _time.time()
- for _ in counted:
- cssmin(style)
- end = _time.time()
- result = (end - start) * 1000
- if result < 10: # avoid measuring within the error range
- xcount *= 10
- continue
- times.append(result / xcount)
- break
-
- print_("%8.2f ms" % times[-1], end=" ")
- flush()
- if len(times) <= 1:
- print_()
- else:
- print_("(factor: %s)" % (', '.join([
- '%.2f' % (timed / times[-1]) for timed in times[:-1]
- ])))
- struct[-1]['times'].append((name, times[-1]))
-
- flush()
- print_()
-
- return struct
-
-
-def main(argv=None):
- """ Main """
- import getopt as _getopt
- import os as _os
- import pickle as _pickle
-
- if argv is None:
- argv = _sys.argv[1:]
- try:
- opts, args = _getopt.getopt(argv, "hc:p:", ["help"])
- except getopt.GetoptError:
- e = _sys.exc_info()[0](_sys.exc_info()[1])
- print >> _sys.stderr, "%s\nTry %s -mbench.main --help" % (
- e,
- _os.path.basename(_sys.executable),
- )
- _sys.exit(2)
-
- count, pickle = 10, None
- for key, value in opts:
- if key in ("-h", "--help"):
- print >> _sys.stderr, (
- "%s -mbench.main [-c count] [-p file] cssfile ..." % (
- _os.path.basename(_sys.executable),
- )
- )
- _sys.exit(0)
- elif key == '-c':
- count = int(value)
- elif key == '-p':
- pickle = str(value)
-
- struct = bench(args, count)
- if pickle:
- fp = open(pickle, 'wb')
- try:
- fp.write(_pickle.dumps((
- ".".join(map(str, _sys.version_info[:3])),
- import_notes,
- struct,
- ), 0))
- finally:
- fp.close()
-
-
-if __name__ == '__main__':
- main()
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/wikipedia.css b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/wikipedia.css
deleted file mode 100644
index 03079e35a6f..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/wikipedia.css
+++ /dev/null
@@ -1,3861 +0,0 @@
-/*
- * This CSS is taken from wikipedia / mediawiki, it's the combined files of
- * the vector skin described at:
- *
- * http://en.wikipedia.org/wiki/Wikipedia:Catalogue_of_CSS_classes
- */
-
-/*
- * Any rules which should not be flipped automatically in right-to-left situations should be
- * prepended with @noflip in a comment block. Images that should be embedded as base64 data-URLs
- * should be prepended with @embed in a comment block.
- *
- * This style-sheet employs a few CSS trick to accomplish compatibility with a wide range of web
- * browsers. The most common trick is to use some styles in IE6 only. This is accomplished by using
- * a rule that makes things work in IE6, and then following it with a rule that begins with
- * "html > body" or use a child selector ">", which is ignored by IE6 because it does not support
- * the child selector. You can spot this by looking for the "OVERRIDDEN BY COMPLIANT BROWSERS" and
- * "IGNORED BY IE6" comments.
- */
-
-/* Framework */
-html,
-body {
- height: 100%;
- margin: 0;
- padding: 0;
- font-family: sans-serif;
- font-size: 1em;
-}
-body {
- background-color: #f3f3f3;
- /* @embed */
- background-image: url(images/page-base.png);
-}
-/* Content */
-div#content {
- margin-left: 10em;
- padding: 1em;
- /* @embed */
- background-image: url(images/border.png);
- background-position: top left;
- background-repeat: repeat-y;
- background-color: white;
- color: black;
- direction: ltr;
-}
-/* Head */
-#mw-page-base {
- height: 5em;
- background-color: white;
- /* @embed */
- background-image: url(images/page-fade.png);
- background-position: bottom left;
- background-repeat: repeat-x;
-}
-#mw-head-base {
- margin-top: -5em;
- margin-left: 10em;
- height: 5em;
- /* @embed */
- background-image: url(images/border.png);
- background-position: bottom left;
- background-repeat: repeat-x;
-}
-div#mw-head {
- position: absolute;
- top: 0;
- right: 0;
- width: 100%;
-}
-div#mw-head h5 {
- margin: 0;
- padding: 0;
-}
-/* Hide empty portlets */
-div.emptyPortlet {
- display: none;
-}
-/* Personal */
-#p-personal {
- position: absolute;
- top: 0;
- right: 0.75em;
-}
-#p-personal h5 {
- display: none;
-}
-#p-personal ul {
- list-style: none;
- margin: 0;
- padding-left: 10em; /* Keep from overlapping logo */
-}
-/* @noflip */
-#p-personal li {
- line-height: 1.125em;
- float: left;
-}
-/* This one flips! */
-#p-personal li {
- margin-left: 0.75em;
- margin-top: 0.5em;
- font-size: 0.75em;
- white-space: nowrap;
-}
-/* Navigation Containers */
-#left-navigation {
- position: absolute;
- left: 10em;
- top: 2.5em;
-}
-#right-navigation {
- float: right;
- margin-top: 2.5em;
-}
-/* Navigation Labels */
-div.vectorTabs h5,
-div.vectorMenu h5 span {
- display: none;
-}
-/* Namespaces and Views */
-/* @noflip */
-div.vectorTabs {
- float: left;
- height: 2.5em;
-}
-div.vectorTabs {
- /* @embed */
- background-image: url(images/tab-break.png);
- background-position: bottom left;
- background-repeat: no-repeat;
- padding-left: 1px;
-}
-/* @noflip */
-div.vectorTabs ul {
- float: left;
-}
-div.vectorTabs ul {
- height: 100%;
- list-style: none;
- margin: 0;
- padding: 0;
-}
-/* @noflip */
-div.vectorTabs ul li {
- float: left;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorTabs ul li {
- line-height: 1.125em;
- display: inline-block;
- height: 100%;
- margin: 0;
- padding: 0;
- background-color: #f3f3f3;
- /* @embed */
- background-image: url(images/tab-normal-fade.png);
- background-position: bottom left;
- background-repeat: repeat-x;
- white-space:nowrap;
-}
-/* IGNORED BY IE6 */
-div.vectorTabs ul > li {
- display: block;
-}
-div.vectorTabs li.selected {
- /* @embed */
- background-image: url(images/tab-current-fade.png);
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorTabs li a {
- display: inline-block;
- height: 1.9em;
- padding-left: 0.5em;
- padding-right: 0.5em;
- color: #0645ad;
- cursor: pointer;
- font-size: 0.8em;
-}
-/* IGNORED BY IE6 */
-div.vectorTabs li > a {
- display: block;
-}
-div.vectorTabs li.icon a {
- background-position: bottom right;
- background-repeat: no-repeat;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorTabs span a {
- display: inline-block;
- padding-top: 1.25em;
-}
-/* IGNORED BY IE6 */
-/* @noflip */
-div.vectorTabs span > a {
- float: left;
- display: block;
-}
-div.vectorTabs span {
- display: inline-block;
- /* @embed */
- background-image: url(images/tab-break.png);
- background-position: bottom right;
- background-repeat: no-repeat;
-}
-div.vectorTabs li.selected a,
-div.vectorTabs li.selected a:visited{
- color: #333333;
- text-decoration: none;
-}
-div.vectorTabs li.new a,
-div.vectorTabs li.new a:visited{
- color: #a55858;
-}
-/* Variants and Actions */
-/* @noflip */
-div.vectorMenu {
- direction: ltr;
- float: left;
- /* @embed */
- background-image: url(images/arrow-down-icon.png);
- background-position: 100% 60%;
- background-repeat: no-repeat;
- cursor: pointer;
-}
-div.vectorMenuFocus {
- /* @embed */
- background-image: url(images/arrow-down-focus-icon.png);
- background-position: 100% 60%;
-}
-/* @noflip */
-body.rtl div.vectorMenu {
- direction: rtl;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-/* @noflip */
-div#mw-head div.vectorMenu h5 {
- float: left;
- /* @embed */
- background-image: url(images/tab-break.png);
- background-repeat: no-repeat;
-}
-/* This will be flipped - unlike the one above it */
-div#mw-head div.vectorMenu h5 {
- background-position: bottom left;
- margin-left: -1px;
-}
-/* IGNORED BY IE6 */
-div#mw-head div.vectorMenu > h5 {
- background-image: none;
-}
-div#mw-head div.vectorMenu h4 {
- display: inline-block;
- float: left;
- font-size: 0.8em;
- padding-left: 0.5em;
- padding-top: 1.375em;
- font-weight: normal;
- border: none;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-/* @noflip */
-div.vectorMenu h5 a {
- display: inline-block;
- width: 24px;
- height: 2.5em;
- text-decoration: none;
- /* @embed */
- background-image: url(images/tab-break.png);
- background-repeat: no-repeat;
-}
-/* This will be flipped - unlike the one above it */
-div.vectorMenu h5 a {
- background-position: bottom right;
-}
-/* IGNORED BY IE6 */
-div.vectorMenu h5 > a {
- display: block;
-}
-div.vectorMenu div.menu {
- position: relative;
- display: none;
- clear: both;
- text-align: left;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-/* @noflip */
-body.rtl div.vectorMenu div.menu {
- margin-left: 24px;
-}
-/* IGNORED BY IE6 */
-/* @noflip */
-body.rtl div.vectorMenu > div.menu {
- margin-left: auto;
-}
-/* IGNORED BY IE6 */
-/* Also fixes old versions of FireFox */
-/* @noflip */
-body.rtl div.vectorMenu > div.menu,
-x:-moz-any-link {
- margin-left: 23px;
-}
-/* Enable forcing showing of the menu for accessibility */
-div.vectorMenu:hover div.menu,
-div.vectorMenu div.menuForceShow {
- display: block;
-}
-div.vectorMenu ul {
- position: absolute;
- background-color: white;
- border: solid 1px silver;
- border-top-width: 0;
- list-style: none;
- list-style-image: none;
- list-style-type: none;
- padding: 0;
- margin: 0;
- margin-left: -1px;
- text-align: left;
-}
-/* Fixes old versions of FireFox */
-div.vectorMenu ul,
-x:-moz-any-link {
- min-width: 5em;
-}
-/* Returns things back to normal in modern versions of FireFox */
-div.vectorMenu ul,
-x:-moz-any-link,
-x:default {
- min-width: 0;
-}
-div.vectorMenu li {
- padding: 0;
- margin: 0;
- text-align: left;
- line-height: 1em;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div.vectorMenu li a {
- display: inline-block;
- padding: 0.5em;
- white-space: nowrap;
- color: #0645ad;
- cursor: pointer;
- font-size: 0.8em;
-}
-/* IGNORED BY IE6 */
-div.vectorMenu li > a {
- display: block;
-}
-div.vectorMenu li.selected a,
-div.vectorMenu li.selected a:visited {
- color: #333333;
- text-decoration: none;
-}
-/* Search */
-#p-search h5 {
- display: none;
-}
-/* @noflip */
-#p-search {
- float: left;
-}
-#p-search {
- margin-right: 0.5em;
- margin-left: 0.5em;
-}
-#p-search form,
-#p-search input {
- margin: 0;
- margin-top: 0.4em;
-}
-div#simpleSearch {
- display: block;
- width: 14em;
- height: 1.4em;
- margin-top: 0.65em;
- position: relative;
- min-height: 1px; /* Gotta trigger hasLayout for IE7 */
- border: solid 1px #AAAAAA;
- color: black;
- background-color: white;
- /* @embed */
- background-image: url(images/search-fade.png);
- background-position: top left;
- background-repeat: repeat-x;
-}
-div#simpleSearch label {
- /*
- * DON'T PANIC! Browsers that won't scale this properly are the same browsers that have JS issues that prevent
- * this from ever being shown anyways.
- */
- font-size: 13px;
- top: 0.25em;
- direction: ltr;
-}
-div#simpleSearch input {
- color: black;
- direction: ltr;
-}
-div#simpleSearch input:focus {
- outline: none;
-}
-div#simpleSearch input.placeholder {
- color: #999999;
-}
-div#simpleSearch input::-webkit-input-placeholder {
- color: #999999;
-}
-div#simpleSearch input#searchInput {
- position: absolute;
- top: 0;
- left: 0;
- width: 90%;
- margin: 0;
- padding: 0;
- padding-left: 0.2em;
- padding-top: 0.2em;
- padding-bottom: 0.2em;
- outline: none;
- border: none;
- /*
- * DON'T PANIC! Browsers that won't scale this properly are the same browsers that have JS issues that prevent
- * this from ever being shown anyways.
- */
- font-size: 13px;
- background-color: transparent;
- direction: ltr;
-}
-div#simpleSearch button#searchButton {
- position: absolute;
- width: 10%;
- right: 0;
- top: 0;
- padding: 0;
- padding-top: 0.3em;
- padding-bottom: 0.2em;
- padding-right: 0.4em;
- margin: 0;
- border: none;
- cursor: pointer;
- background-color: transparent;
- background-image: none;
-}
-/* OVERRIDDEN BY COMPLIANT BROWSERS */
-div#simpleSearch button#searchButton img {
- border: none;
- margin: 0;
- margin-top: -3px;
- padding: 0;
-}
-/* IGNORED BY IE6 */
-div#simpleSearch button#searchButton > img {
- margin: 0;
-}
-/* Panel */
-div#mw-panel {
- position: absolute;
- top: 160px;
- padding-top: 1em;
- width: 10em;
- left: 0;
-}
-div#mw-panel div.portal {
- padding-bottom: 1.5em;
- direction: ltr;
-}
-div#mw-panel div.portal h5 {
- font-weight: normal;
- color: #444444;
- padding: 0.25em;
- padding-top: 0;
- padding-left: 1.75em;
- cursor: default;
- border: none;
- font-size: 0.75em;
-}
-div#mw-panel div.portal div.body {
- margin: 0;
- padding-top: 0.5em;
- margin-left: 1.25em;
- /* @embed */
- background-image: url(images/portal-break.png);
- background-repeat: no-repeat;
- background-position: top left;
-}
-div#mw-panel div.portal div.body ul {
- list-style: none;
- list-style-image: none;
- list-style-type: none;
- padding: 0;
- margin: 0;
-}
-div#mw-panel div.portal div.body ul li {
- line-height: 1.125em;
- padding: 0;
- padding-bottom: 0.5em;
- margin: 0;
- overflow: hidden;
- font-size: 0.75em;
-}
-div#mw-panel div.portal div.body ul li a {
- color: #0645ad;
-}
-div#mw-panel div.portal div.body ul li a:visited {
- color: #0b0080;
-}
-/* Footer */
-div#footer {
- margin-left: 10em;
- margin-top: 0;
- padding: 0.75em;
- /* @embed */
- background-image: url(images/border.png);
- background-position: top left;
- background-repeat: repeat-x;
- direction: ltr;
-}
-div#footer ul {
- list-style: none;
- list-style-image: none;
- list-style-type: none;
- margin: 0;
- padding: 0;
-}
-div#footer ul li {
- margin: 0;
- padding: 0;
- padding-top: 0.5em;
- padding-bottom: 0.5em;
- color: #333333;
- font-size: 0.7em;
-}
-div#footer #footer-icons {
- float: right;
-}
-/* @noflip */
-body.ltr div#footer #footer-places {
- float: left;
-}
-div#footer #footer-info li {
- line-height: 1.4em;
-}
-div#footer #footer-icons li {
- float: left;
- margin-left: 0.5em;
- line-height: 2em;
- text-align: right;
-}
-div#footer #footer-places li {
- float: left;
- margin-right: 1em;
- line-height: 2em;
-}
-/* Logo */
-#p-logo {
- position: absolute;
- top: -160px;
- left: 0;
- width: 10em;
- height: 160px;
-}
-#p-logo a {
- display: block;
- width: 10em;
- height: 160px;
- background-repeat: no-repeat;
- background-position: center center;
- text-decoration: none;
-}
-
-/*
- *
- * The following code is highly modified from monobook. It would be nice if the
- * preftoc id was more human readable like preferences-toc for instance,
- * howerver this would require backporting the other skins.
- */
-
-/* Preferences */
-#preftoc {
- /* Tabs */
- width: 100%;
- float: left;
- clear: both;
- margin: 0 !important;
- padding: 0 !important;
- /* @embed */
- background-image: url(images/preferences-break.png);
- background-position: bottom left;
- background-repeat: no-repeat;
-}
- #preftoc li {
- /* Tab */
- float: left;
- margin: 0;
- padding: 0;
- padding-right: 1px;
- height: 2.25em;
- white-space: nowrap;
- list-style-type: none;
- list-style-image: none;
- /* @embed */
- background-image: url(images/preferences-break.png);
- background-position: bottom right;
- background-repeat: no-repeat;
- }
- /* Sadly, IE6 won't understand this */
- #preftoc li:first-child {
- margin-left: 1px;
- }
- #preftoc a,
- #preftoc a:active {
- display: inline-block;
- position: relative;
- color: #0645ad;
- padding: 0.5em;
- text-decoration: none;
- background-image: none;
- font-size: 0.9em;
- }
- #preftoc a:hover,
- #preftoc a:focus {
- text-decoration: underline;
- }
- #preftoc li.selected a {
- /* @embed */
- background-image: url(images/preferences-fade.png);
- background-position: bottom;
- background-repeat: repeat-x;
- color: #333333;
- text-decoration: none;
- }
-#preferences {
- float: left;
- width: 100%;
- margin: 0;
- margin-top: -2px;
- clear: both;
- border: solid 1px #cccccc;
- background-color: #f9f9f9;
- /* @embed */
- background-image: url(images/preferences-base.png);
-}
-#preferences fieldset {
- border: none;
- border-top: solid 1px #cccccc;
-}
-#preferences fieldset.prefsection {
- border: none;
- padding: 0;
- margin: 1em;
-}
-#preferences legend {
- color: #666666;
-}
-#preferences fieldset.prefsection legend.mainLegend {
- display: none;
-}
-#preferences td {
- padding-left: 0.5em;
- padding-right: 0.5em;
-}
-#preferences td.htmlform-tip {
- font-size: x-small;
- padding: .2em 2em;
- color: #666666;
-}
-#preferences div.mw-prefs-buttons {
- padding: 1em;
-}
-#preferences div.mw-prefs-buttons input {
- margin-right: 0.25em;
-}
-
-/**
- * The following code is slightly modified from monobook
- */
-div#content {
- line-height: 1.5em;
-}
-#bodyContent {
- font-size: 0.8em;
-}
-
-.editsection {
- float: right;
-}
-
-ul {
- /* @embed */
- list-style-image: url(images/bullet-icon.png);
-}
-
-pre {
- line-height: 1.3em;
-}
-
-/* Site Notice (includes notices from CentralNotice extension) */
-#siteNotice {
- font-size: 0.8em;
-}
-#firstHeading {
- padding-top: 0;
- margin-top: 0;
- padding-top: 0;
- font-size: 1.6em;
-}
-div#content a.external,
-div#content a.external[href ^="gopher://"] {
- /* @embed */
- background: url(images/external-link-ltr-icon.png) center right no-repeat;
- padding-right: 13px;
-}
-div#content a.external[href ^="https://"],
-.link-https {
- /* @embed */
- background: url(images/lock-icon.png) center right no-repeat;
- padding-right: 13px;
-}
-div#content a.external[href ^="mailto:"],
-.link-mailto {
- /* @embed */
- background: url(images/mail-icon.png) center right no-repeat;
- padding-right: 13px;
-}
-div#content a.external[href ^="news:"] {
- /* @embed */
- background: url(images/news-icon.png) center right no-repeat;
- padding-right: 13px;
-}
-div#content a.external[href ^="ftp://"],
-.link-ftp {
- /* @embed */
- background: url(images/file-icon.png) center right no-repeat;
- padding-right: 13px;
-}
-div#content a.external[href ^="irc://"],
-div#content a.external[href ^="ircs://"],
-.link-irc {
- /* @embed */
- background: url(images/talk-icon.png) center right no-repeat;
- padding-right: 13px;
-}
-div#content a.external[href $=".ogg"], div#content a.external[href $=".OGG"],
-div#content a.external[href $=".mid"], div#content a.external[href $=".MID"],
-div#content a.external[href $=".midi"], div#content a.external[href $=".MIDI"],
-div#content a.external[href $=".mp3"], div#content a.external[href $=".MP3"],
-div#content a.external[href $=".wav"], div#content a.external[href $=".WAV"],
-div#content a.external[href $=".wma"], div#content a.external[href $=".WMA"],
-.link-audio {
- /* @embed */
- background: url(images/audio-icon.png) center right no-repeat;
- padding-right: 13px;
-}
-div#content a.external[href $=".ogm"], div#content a.external[href $=".OGM"],
-div#content a.external[href $=".avi"], div#content a.external[href $=".AVI"],
-div#content a.external[href $=".mpeg"], div#content a.external[href $=".MPEG"],
-div#content a.external[href $=".mpg"], div#content a.external[href $=".MPG"],
-.link-video {
- /* @embed */
- background: url(images/video-icon.png) center right no-repeat;
- padding-right: 13px;
-}
-div#content a.external[href $=".pdf"], div#content a.external[href $=".PDF"],
-div#content a.external[href *=".pdf#"], div#content a.external[href *=".PDF#"],
-div#content a.external[href *=".pdf?"], div#content a.external[href *=".PDF?"],
-.link-document {
- /* @embed */
- background: url(images/document-icon.png) center right no-repeat;
- padding-right: 13px;
-}
-
-/* Icon for Usernames */
-#pt-userpage,
-#pt-anonuserpage,
-#pt-login {
- /* @embed */
- background: url(images/user-icon.png) left top no-repeat;
- padding-left: 15px !important;
- text-transform: none;
-}
-
-.redirectText {
- font-size: 140%;
-}
-
-.redirectMsg img {
- vertical-align: text-bottom;
-}
-
-#bodyContent {
- position: relative;
- width: 100%;
-}
-#mw-js-message {
- font-size: 0.8em;
-}
-div#bodyContent {
- line-height: 1.5em;
-}
-
-/* Watch/Unwatch Icon Styling */
-#ca-unwatch.icon a,
-#ca-watch.icon a {
- margin: 0;
- padding: 0;
- outline: none;
- display: block;
- width: 26px;
- /* This hides the text but shows the background image */
- padding-top: 3.1em;
- margin-top: 0;
- /* Only applied in IE6 */
- margin-top: -0.8em !ie;
- height: 0;
- overflow: hidden;
- /* @embed */
- background-image: url(images/watch-icons.png);
-}
-#ca-unwatch.icon a {
- background-position: -43px 60%;
-}
-#ca-watch.icon a {
- background-position: 5px 60%;
-}
-#ca-unwatch.icon a:hover,
-#ca-unwatch.icon a:focus {
- background-position: -67px 60%;
-}
-#ca-watch.icon a:hover,
-#ca-watch.icon a:focus {
- background-position: -19px 60%;
-}
-#ca-unwatch.icon a.loading,
-#ca-watch.icon a.loading {
- /* @embed */
- background-image: url(images/watch-icon-loading.gif);
- background-position: 5px 60%;
-}
-#ca-unwatch.icon a span,
-#ca-watch.icon a span {
- display: none;
-}
-div.vectorTabs ul {
- /* @embed */
- background-image:url(images/tab-break.png);
- background-position:right bottom;
- background-repeat:no-repeat;
-}
-
-/* Tooltips are outside of the normal body code, so this helps make the size of the text sensible */
-.tipsy {
- font-size: 0.8em;
-}
-/**
- * CSS in this file is used by *all* skins (that have any CSS at all). Be
- * careful what you put in here, since what looks good in one skin may not in
- * another, but don't ignore the poor pre-Monobook users either.
- */
-
-/* GENERAL CLASSES FOR DIRECTIONALITY SUPPORT */
-
-/**
- * These classes should be used for text depending on the content direction.
- * Content stuff like editsection, ul/ol and TOC depend on this.
- */
-.mw-content-ltr {
- /* @noflip */
- direction: ltr;
-}
-.mw-content-rtl {
- /* @noflip */
- direction: rtl;
-}
-
-/* Most input fields should be in site direction */
-.sitedir-ltr textarea,
-.sitedir-ltr input {
- /* @noflip */
- direction: ltr;
-}
-.sitedir-rtl textarea,
-.sitedir-rtl input {
- /* @noflip */
- direction: rtl;
-}
-
-/* Input types that should follow user direction, like buttons */
-/* TODO: What about buttons in wikipage content ? */
-input[type="submit"],
-input[type="button"],
-input[type="reset"],
-input[type="file"] {
- direction: ltr;
-}
-
-/* Override default values */
-textarea[dir="ltr"],
-input[dir="ltr"] {
- /* @noflip */
- direction: ltr;
-}
-textarea[dir="rtl"],
-input[dir="rtl"] {
- /* @noflip */
- direction: rtl;
-}
-
-/* Default style for semantic tags */
-abbr,
-acronym,
-.explain {
- border-bottom: 1px dotted;
- cursor: help;
-}
-
-/* Colored watchlist and recent changes numbers */
-.mw-plusminus-pos {
- color: #006400; /* dark green */
-}
-.mw-plusminus-neg {
- color: #8b0000; /* dark red */
-}
-.mw-plusminus-null {
- color: #aaa; /* gray */
-}
-
-/**
- * Links to redirects appear italicized on [[Special:AllPages]], [[Special:PrefixIndex]],
- * [[Special:Watchlist/edit]] and in category listings.
- */
-.allpagesredirect,
-.redirect-in-category,
-.watchlistredir {
- font-style: italic;
-}
-
-/* Comment and username portions of RC entries */
-span.comment {
- font-style: italic;
-}
-
-span.changedby {
- font-size: 95%;
-}
-
-/* Math */
-.texvc {
- direction: ltr;
- unicode-bidi: embed;
-}
-img.tex {
- vertical-align: middle;
-}
-span.texhtml {
- font-family: serif;
-}
-
-/**
- * Add a bit of margin space between the preview and the toolbar.
- * This replaces the ugly <p><br /></p> we used to insert into the page source
- */
-#wikiPreview.ontop {
- margin-bottom: 1em;
-}
-
-/* Stop floats from intruding into edit area in previews */
-#editform,
-#toolbar,
-#wpTextbox1 {
- clear: both;
-}
-#toolbar img {
- cursor: pointer;
-}
-div#mw-js-message {
- margin: 1em 5%;
- padding: 0.5em 2.5%;
- border: solid 1px #ddd;
- background-color: #fcfcfc;
-}
-
-/* Edit section links */
-.editsection {
- float: right;
- margin-left: 5px;
-}
-/* Correct directionality when page dir is different from site/user dir */
-.mw-content-ltr .editsection,
-.mw-content-rtl .mw-content-ltr .editsection {
- /* @noflip */
- float: right;
-}
-.mw-content-rtl .editsection,
-.mw-content-ltr .mw-content-rtl .editsection {
- /* @noflip */
- float: left;
-}
-
-/**
- * File description page
- */
-
-div.mw-filepage-resolutioninfo {
- font-size: smaller;
-}
-
-/**
- * File histories
- */
-h2#filehistory {
- clear: both;
-}
-
-table.filehistory th,
-table.filehistory td {
- vertical-align: top;
-}
-table.filehistory th {
- text-align: left;
-}
-table.filehistory td.mw-imagepage-filesize,
-table.filehistory th.mw-imagepage-filesize {
- white-space: nowrap;
-}
-
-table.filehistory td.filehistory-selected {
- font-weight: bold;
-}
-
-/**
- * Add a checkered background image on hover for file
- * description pages. (bug 26470)
- */
-.filehistory a img,
-#file img:hover {
- /* @embed */
- background: white url(images/Checker-16x16.png) repeat;
-}
-
-/**
- * rev_deleted stuff
- */
-li span.deleted,
-span.history-deleted {
- text-decoration: line-through;
- color: #888;
- font-style: italic;
-}
-
-/**
- * Patrol stuff
- */
-.not-patrolled {
- background-color: #ffa;
-}
-
-.unpatrolled {
- font-weight: bold;
- color: red;
-}
-
-div.patrollink {
- font-size: 75%;
- text-align: right;
-}
-
-/**
- * Forms
- */
-td.mw-label {
- text-align: right;
-}
-td.mw-input {
- text-align: left;
-}
-td.mw-submit {
- text-align: left;
-}
-
-td.mw-label {
- vertical-align: top;
-}
-.prefsection td.mw-label {
- width: 20%;
-}
-.prefsection table {
- width: 100%;
-}
-td.mw-submit {
- white-space: nowrap;
-}
-
-table.mw-htmlform-nolabel td.mw-label {
- width: 1px;
-}
-
-tr.mw-htmlform-vertical-label td.mw-label {
- text-align: left !important;
-}
-
-.mw-htmlform-invalid-input td.mw-input input {
- border-color: red;
-}
-
-.mw-htmlform-flatlist div.mw-htmlform-flatlist-item {
- display: inline;
- margin-right: 1em;
- white-space: nowrap;
-}
-
-input#wpSummary {
- width: 80%;
-}
-
-/**
- * Image captions
- */
-.thumbcaption {
- text-align: left;
-}
-.magnify {
- float: right;
-}
-
-/**
- * Categories
- */
-#catlinks {
- /**
- * Overrides text justification (user preference)
- * See bug 31990
- */
- text-align: left;
-}
-.catlinks ul {
- display: inline;
- margin: 0;
- padding: 0;
- list-style: none;
- list-style-type: none;
- list-style-image: none;
- vertical-align: middle !ie;
-}
-
-.catlinks li {
- display: inline-block;
- line-height: 1.25em;
- border-left: 1px solid #AAA;
- margin: 0.125em 0;
- padding: 0 0.5em;
- zoom: 1;
- display: inline !ie;
-}
-
-.catlinks li:first-child {
- padding-left: 0.25em;
- border-left: none;
-}
-/**
- * Hidden categories
- */
-.mw-hidden-cats-hidden {
- display: none;
-}
-.catlinks-allhidden {
- display: none;
-}
-
-/* Convenience links to edit block, delete and protect reasons */
-p.mw-ipb-conveniencelinks,
-p.mw-protect-editreasons,
-p.mw-filedelete-editreasons,
-p.mw-delete-editreasons,
-p.mw-revdel-editreasons {
- font-size: 90%;
- text-align: right;
-}
-
-/**
- * OpenSearch ajax suggestions
- */
-.os-suggest {
- overflow: auto;
- overflow-x: hidden;
- position: absolute;
- top: 0;
- left: 0;
- width: 0;
- background-color: white;
- border-style: solid;
- border-color: #AAAAAA;
- border-width: 1px;
- z-index:99;
- font-size:95%;
-}
-
-table.os-suggest-results {
- font-size: 95%;
- cursor: pointer;
- border: 0;
- border-collapse: collapse;
- width: 100%;
-}
-
-.os-suggest-result,
-.os-suggest-result-hl {
- white-space: nowrap;
- background-color: white;
- color: black;
- padding: 2px;
-}
-.os-suggest-result-hl,
-.os-suggest-result-hl-webkit {
- background-color: #4C59A6;
- color: white;
-}
-
-.os-suggest-toggle {
- position: relative;
- left: 1ex;
- font-size: 65%;
-}
-.os-suggest-toggle-def {
- position: absolute;
- top: 0;
- left: 0;
- font-size: 65%;
- visibility: hidden;
-}
-
-/* Page history styling */
-
-/* The auto-generated edit comments */
-.autocomment {
- color: gray;
-}
-#pagehistory .history-user {
- margin-left: 0.4em;
- margin-right: 0.2em;
-}
-#pagehistory span.minor {
- font-weight: bold;
-}
-#pagehistory li {
- border: 1px solid white;
-}
-#pagehistory li.selected {
- background-color: #f9f9f9;
- border: 1px dashed #aaa;
-}
-
-.mw-history-revisiondelete-button, #mw-fileduplicatesearch-icon {
- float: right;
-}
-
-/** Generic minor/bot/newpage styling (recent changes) */
-.newpage,
-.minoredit,
-.botedit {
- font-weight: bold;
-}
-
-#shared-image-dup,
-#shared-image-conflict {
- font-style: italic;
-}
-
-/**
- * Recreating deleted page warning
- * Reupload file warning
- * Page protection warning
- * incl. log entries for these warnings
- */
-div.mw-warning-with-logexcerpt {
- padding: 3px;
- margin-bottom: 3px;
- border: 2px solid #2F6FAB;
- clear: both;
-}
-div.mw-warning-with-logexcerpt ul li {
- font-size: 90%;
-}
-
-/* (show/hide) revision deletion links */
-span.mw-revdelundel-link,
-strong.mw-revdelundel-link {
- font-size: 90%;
-}
-span.mw-revdelundel-hidden,
-input.mw-revdelundel-hidden {
- visibility: hidden;
-}
-
-td.mw-revdel-checkbox,
-th.mw-revdel-checkbox {
- padding-right: 10px;
- text-align: center;
-}
-
-/* feed links */
-a.feedlink {
- /* @embed */
- background: url(images/feed-icon.png) center left no-repeat;
- padding-left: 16px;
-}
-
-/* Plainlinks - this can be used to switch
- * off special external link styling */
-.plainlinks a {
- background: none !important;
- padding: 0 !important;
-}
-/* External URLs should always be treated as LTR (bug 4330) */
-/* @noflip */ .rtl a.external.free,
-.rtl a.external.autonumber {
- direction: ltr;
- unicode-bidi: embed;
-}
-
-/**
- * wikitable class for skinning normal tables
- * keep in sync with commonPrint.css
- */
-table.wikitable {
- margin: 1em 1em 1em 0;
- background-color: #f9f9f9;
- border: 1px #aaa solid;
- border-collapse: collapse;
- color: black;
-}
-table.wikitable > tr > th,
-table.wikitable > tr > td,
-table.wikitable > * > tr > th,
-table.wikitable > * > tr > td {
- border: 1px #aaa solid;
- padding: 0.2em;
-}
-table.wikitable > tr > th,
-table.wikitable > * > tr > th {
- background-color: #f2f2f2;
- text-align: center;
-}
-table.wikitable > caption {
- font-weight: bold;
-}
-
-/* hide initially collapsed collapsable tables */
-table.collapsed tr.collapsable {
- display: none;
-}
-
-/* success and error messages */
-.success {
- color: green;
- font-size: larger;
-}
-.warning {
- color: #FFA500; /* orange */
- font-size: larger;
-}
-.error {
- color: red;
- font-size: larger;
-}
-.errorbox,
-.warningbox,
-.successbox {
- font-size: larger;
- border: 2px solid;
- padding: .5em 1em;
- float: left;
- margin-bottom: 2em;
- color: #000;
-}
-.errorbox {
- border-color: red;
- background-color: #fff2f2;
-}
-.warningbox {
- border-color: #FF8C00; /* darkorange */
- background-color: #FFFFC0;
-}
-.successbox {
- border-color: green;
- background-color: #dfd;
-}
-.errorbox h2,
-.warningbox h2,
-.successbox h2 {
- font-size: 1em;
- font-weight: bold;
- display: inline;
- margin: 0 .5em 0 0;
- border: none;
-}
-
-/* general info/warning box for SP */
-.mw-infobox {
- border: 2px solid #ff7f00;
- margin: 0.5em;
- clear: left;
- overflow: hidden;
-}
-
-.mw-infobox-left {
- margin: 7px;
- float: left;
- width: 35px;
-}
-
-.mw-infobox-right {
- margin: 0.5em 0.5em 0.5em 49px;
-}
-
-/* Note on preview page */
-.previewnote {
- color: #c00;
- margin-bottom: 1em;
-}
-
-.previewnote p {
- text-indent: 3em;
- margin: 0.8em 0;
-}
-
-.visualClear {
- clear: both;
-}
-
-#mw_trackbacks {
- border: solid 1px #bbbbff;
- background-color: #eeeeff;
- padding: 0.2em;
-}
-
-/**
- * Data table style
- *
- * Transparent table with suddle borders
- * and blue row-highlighting.
- */
-.mw-datatable {
- border-collapse: collapse;
-}
-.mw-datatable,
-.mw-datatable td,
-.mw-datatable th {
- border: 1px solid #aaaaaa;
- padding: 0 0.15em 0 0.15em;
-}
-.mw-datatable th {
- background-color: #ddddff;
-}
-.mw-datatable td {
- background-color: #ffffff;
-}
-.mw-datatable tr:hover td {
- background-color: #eeeeff;
-}
-
-
-/**
- * TablePager tables generated by the TablePager PHP class
- * in MediaWiki (e.g. Special:ListFiles).
- */
-.TablePager {
- min-width: 80%;
-}
-.TablePager_nav {
- margin: 0 auto;
-}
-.TablePager_nav td {
- padding: 3px;
- text-align: center;
-}
-.TablePager_nav a {
- text-decoration: none;
-}
-
-.imagelist td,
-.imagelist th {
- white-space: nowrap;
-}
-.imagelist .TablePager_col_links {
- background-color: #eeeeff;
-}
-.imagelist .TablePager_col_img_description {
- white-space: normal;
-}
-.imagelist th.TablePager_sort {
- background-color: #ccccff;
-}
-
-/* filetoc */
-ul#filetoc {
- text-align: center;
- border: 1px solid #aaaaaa;
- background-color: #f9f9f9;
- padding: 5px;
- font-size: 95%;
- margin-bottom: 0.5em;
- margin-left: 0;
- margin-right: 0;
-}
-
-#filetoc li {
- display: inline;
- list-style-type: none;
- padding-right: 2em;
-}
-
-/* Classes for EXIF data display */
-table.mw_metadata {
- font-size: 0.8em;
- margin-left: 0.5em;
- margin-bottom: 0.5em;
- width: 400px;
-}
-
-table.mw_metadata caption {
- font-weight: bold;
-}
-
-table.mw_metadata th {
- font-weight: normal;
-}
-
-table.mw_metadata td {
- padding: 0.1em;
-}
-
-table.mw_metadata {
- border: none;
- border-collapse: collapse;
-}
-
-table.mw_metadata td,
-table.mw_metadata th {
- text-align: center;
- border: 1px solid #aaaaaa;
- padding-left: 5px;
- padding-right: 5px;
-}
-
-table.mw_metadata th {
- background-color: #f9f9f9;
-}
-
-table.mw_metadata td {
- background-color: #fcfcfc;
-}
-
-table.mw_metadata ul.metadata-langlist {
- list-style-type: none;
- list-style-image: none;
- padding-right: 5px;
- padding-left: 5px;
- margin: 0;
-}
-
-/* Correct directionality when page dir is different from site/user dir */
-.mw-content-ltr ul,
-.mw-content-rtl .mw-content-ltr ul {
- /* @noflip */
- margin: 0.3em 0 0 1.6em;
- padding: 0;
-}
-.mw-content-rtl ul,
-.mw-content-ltr .mw-content-rtl ul {
- /* @noflip */
- margin: 0.3em 1.6em 0 0;
- padding: 0;
-}
-.mw-content-ltr ol,
-.mw-content-rtl .mw-content-ltr ol {
- /* @noflip */
- margin: 0.3em 0 0 3.2em;
- padding: 0;
-}
-.mw-content-rtl ol,
-.mw-content-ltr .mw-content-rtl ol {
- /* @noflip */
- margin: 0.3em 3.2em 0 0;
- padding: 0;
-}
-/* @noflip */
-.mw-content-ltr dd,
-.mw-content-rtl .mw-content-ltr dd {
- margin-left: 1.6em;
- margin-right: 0;
-}
-/* @noflip */
-.mw-content-rtl dd,
-.mw-content-ltr .mw-content-rtl dd {
- margin-right: 1.6em;
- margin-left: 0;
-}
-
-/* Galleries */
-/* These display attributes look nonsensical, but are needed to support IE and FF2 */
-/* Don't forget to update commonPrint.css */
-li.gallerybox {
- vertical-align: top;
- border: solid 2px white;
- display: -moz-inline-box;
- display: inline-block;
-}
-
-ul.gallery,
-li.gallerybox {
- zoom: 1;
- *display: inline;
-}
-
-ul.gallery {
- margin: 2px;
- padding: 2px;
- display: block;
-}
-
-li.gallerycaption {
- font-weight: bold;
- text-align: center;
- display: block;
- word-wrap: break-word;
-}
-
-li.gallerybox div.thumb {
- text-align: center;
- border: 1px solid #ccc;
- background-color: #f9f9f9;
- margin: 2px;
-}
-
-li.gallerybox div.thumb img {
- display: block;
- margin: 0 auto;
-}
-
-div.gallerytext {
- overflow: hidden;
- font-size: 94%;
- padding: 2px 4px;
- word-wrap: break-word;
-}
-
-.mw-ajax-loader {
- /* @embed */
- background-image: url(images/ajax-loader.gif);
- background-position: center center;
- background-repeat: no-repeat;
- padding: 16px;
- position: relative;
- top: -16px;
-}
-
-.mw-small-spinner {
- padding: 10px !important;
- margin-right: 0.6em;
- /* @embed */
- background-image: url(images/spinner.gif);
- background-position: center center;
- background-repeat: no-repeat;
-}
-
-/* Language specific height correction for titles. Ref Bug 29405 and Bug 30809 */
-/* Languages like hi or ml require slightly more vertical space to show diacritics properly */
-h1:lang(as),
-h1:lang(bh), /* Macrolanguage, used on bh.wikipedia.org, should be removed one day */
-h1:lang(bho),
-h1:lang(bn),
-h1:lang(gu),
-h1:lang(hi),
-h1:lang(kn),
-h1:lang(ml),
-h1:lang(mr),
-h1:lang(or),
-h1:lang(pa),
-h1:lang(sa),
-h1:lang(ta),
-h1:lang(te) {
- line-height: 1.5em !important;
-}
-h2:lang(as), h3:lang(as), h4:lang(as), h5:lang(as), h6:lang(as),
-h2:lang(bho), h3:lang(bho), h4:lang(bho), h5:lang(bho), h6:lang(bho),
-h2:lang(bh), h3:lang(bh), h4:lang(bh), h5:lang(bh), h6:lang(bh),
-h2:lang(bn), h3:lang(bn), h4:lang(bn), h5:lang(bn), h6:lang(bn),
-h2:lang(gu), h3:lang(gu), h4:lang(gu), h5:lang(gu), h6:lang(gu),
-h2:lang(hi), h3:lang(hi), h4:lang(hi), h5:lang(hi), h6:lang(hi),
-h2:lang(kn), h3:lang(kn), h4:lang(kn), h5:lang(kn), h6:lang(kn),
-h2:lang(ml), h3:lang(ml), h4:lang(ml), h5:lang(ml), h6:lang(ml),
-h2:lang(mr), h3:lang(mr), h4:lang(mr), h5:lang(mr), h6:lang(mr),
-h2:lang(or), h3:lang(or), h4:lang(or), h5:lang(or), h6:lang(or),
-h2:lang(pa), h3:lang(pa), h4:lang(pa), h5:lang(pa), h6:lang(pa),
-h2:lang(sa), h3:lang(sa), h4:lang(sa), h5:lang(sa), h6:lang(sa),
-h2:lang(ta), h3:lang(ta), h4:lang(ta), h5:lang(ta), h6:lang(ta),
-h2:lang(te), h3:lang(te), h4:lang(te), h5:lang(te), h6:lang(te) {
- line-height: 1.2em;
-}
-
-/* Localised ordered list numbering for some languages */
-ol:lang(bcc) li,
-ol:lang(bqi) li,
-ol:lang(fa) li,
-ol:lang(glk) li,
-ol:lang(kk-arab) li,
-ol:lang(mzn) li {
- list-style-type: -moz-persian;
- list-style-type: persian;
-}
-
-ol:lang(ckb) li {
- list-style-type: -moz-arabic-indic;
- list-style-type: arabic-indic;
-}
-
-ol:lang(hi) li,
-ol:lang(mr) li {
- list-style-type: -moz-devanagari;
- list-style-type: devanagari;
-}
-
-ol:lang(as) li,
-ol:lang(bn) li {
- list-style-type: -moz-bengali;
- list-style-type: bengali;
-}
-
-ol:lang(or) li {
- list-style-type: -moz-oriya;
- list-style-type: oriya;
-}
-
-#toc ul, .toc ul {
- margin: .3em 0;
-}
-
-/* Correct directionality when page dir is different from site/user dir */
-/* @noflip */ .mw-content-ltr .toc ul,
-.mw-content-ltr #toc ul,
-.mw-content-rtl .mw-content-ltr .toc ul,
-.mw-content-rtl .mw-content-ltr #toc ul {
- text-align: left;
-}
-/* @noflip */ .mw-content-rtl .toc ul,
-.mw-content-rtl #toc ul,
-.mw-content-ltr .mw-content-rtl .toc ul,
-.mw-content-ltr .mw-content-rtl #toc ul {
- text-align: right;
-}
-/* @noflip */ .mw-content-ltr .toc ul ul,
-.mw-content-ltr #toc ul ul,
-.mw-content-rtl .mw-content-ltr .toc ul ul,
-.mw-content-rtl .mw-content-ltr #toc ul ul {
- margin: 0 0 0 2em;
-}
-/* @noflip */ .mw-content-rtl .toc ul ul,
-.mw-content-rtl #toc ul ul,
-.mw-content-ltr .mw-content-rtl .toc ul ul,
-.mw-content-ltr .mw-content-rtl #toc ul ul {
- margin: 0 2em 0 0;
-}
-
-#toc #toctitle,
-.toc #toctitle,
-#toc .toctitle,
-.toc .toctitle {
- direction: ltr;
-}
-
-/* tooltip styles */
-.mw-help-field-hint {
- display: none;
- margin-left: 2px;
- margin-bottom: -8px;
- padding: 0 0 0 15px;
- /* @embed */
- background-image: url('images/help-question.gif');
- background-position: left center;
- background-repeat: no-repeat;
- cursor: pointer;
- font-size: .8em;
- text-decoration: underline;
- color: #0645ad;
-}
-.mw-help-field-hint:hover {
- /* @embed */
- background-image: url('images/help-question-hover.gif');
-}
-.mw-help-field-data {
- display: block;
- background-color: #d6f3ff;
- padding:5px 8px 4px 8px;
- border: 1px solid #5dc9f4;
- margin-left: 20px;
-}
-.tipsy {
- padding: 5px 5px 10px;
- font-size: 12px;
- position: absolute;
- z-index: 100000;
- overflow: visible;
-}
-.tipsy-inner {
- padding: 5px 8px 4px 8px;
- background-color: #d6f3ff;
- color: black;
- border: 1px solid #5dc9f4;
- max-width: 300px;
- text-align: left;
-}
-.tipsy-arrow {
- position: absolute;
- /* @embed */
- background: url(images/tipsy-arrow.gif) no-repeat top left;
- width: 13px;
- height: 13px;
-}
-.tipsy-se .tipsy-arrow {
- bottom: -2px;
- right: 10px;
- background-position: 0% 100%;
-}
-
-#mw-clearyourcache,
-#mw-sitecsspreview,
-#mw-sitejspreview,
-#mw-usercsspreview,
-#mw-userjspreview {
- direction: ltr;
- unicode-bidi: embed;
-}
-
-/* Correct user & content directionality when viewing a diff */
-.diff-currentversion-title,
-.diff {
- direction: ltr;
- unicode-bidi: embed;
-}
-/* @noflip */ .diff-contentalign-right td {
- direction: rtl;
- unicode-bidi: embed;
-}
-/* @noflip */ .diff-contentalign-left td {
- direction: ltr;
- unicode-bidi: embed;
-}
-.diff-otitle,
-.diff-ntitle,
-.diff-lineno {
- direction: ltr !important;
- unicode-bidi: embed;
-}
-
-#mw-revision-info,
-#mw-revision-info-current,
-#mw-revision-nav {
- direction: ltr;
- display: inline;
-}
-
-/* Images */
-
-/* @noflip */ div.tright,
-div.floatright,
-table.floatright {
- clear: right;
- float: right;
-}
-/* @noflip */ div.tleft,
-div.floatleft,
-table.floatleft {
- float: left;
- clear: left;
-}
-div.floatright,
-table.floatright,
-div.floatleft,
-table.floatleft {
- position: relative;
-}
-
-/* bug 12205 */
-#mw-credits a {
- unicode-bidi: embed;
-}
-
-/* Accessibility */
-.mw-jump,
-#jump-to-nav {
- overflow: hidden;
- height: 0;
- zoom: 1; /* http://webaim.org/techniques/skipnav/#iequirk */
-}
-
-/* Print footer should be hidden by default in screen. */
-.printfooter {
- display: none;
-}
-
-/* For developpers */
-.xdebug-error {
- position: absolute;
- z-index: 99;
-}
-
-.editsection, .toctoggle {
- -moz-user-select: none;
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-/**
- * MediaWiki Print style sheet for CSS2-capable browsers.
- * Copyright Gabriel Wicke, http://www.aulinx.de/
- *
- * Derived from the plone (http://plone.org/) styles
- * Copyright Alexander Limi
- */
-
-/* Thanks to A List Apart (http://alistapart.com/) for useful extras */
-a.stub,
-a.new {
- color: #ba0000;
- text-decoration: none;
-}
-
-#toc {
- border: 1px solid #aaaaaa;
- background-color: #f9f9f9;
- padding: 5px;
-}
-
-/* images */
-div.floatright {
- float: right;
- clear: right;
- position: relative;
- margin: 0.5em 0 0.8em 1.4em;
-}
-div.floatright p {
- font-style: italic;
-}
-div.floatleft {
- float: left;
- clear: left;
- position: relative;
- margin: 0.5em 1.4em 0.8em 0;
-}
-div.floatleft p {
- font-style: italic;
-}
-div.center {
- text-align: center;
-}
-
-/* thumbnails */
-div.thumb {
- border: none;
- width: auto;
- margin-top: 0.5em;
- margin-bottom: 0.8em;
- background-color: transparent;
-}
-div.thumbinner {
- border:1px solid #cccccc;
- padding: 3px !important;
- background-color: White;
- font-size: 94%;
- text-align: center;
- overflow: hidden;
-}
-html .thumbimage {
- border: 1px solid #cccccc;
-}
-html .thumbcaption {
- border: none;
- text-align: left;
- line-height: 1.4em;
- padding: 3px !important;
- font-size: 94%;
-}
-
-div.magnify {
- display: none;
-}
-/* @noflip */
-div.tright {
- float: right;
- clear: right;
- margin: 0.5em 0 0.8em 1.4em;
-}
-/* @noflip */
-div.tleft {
- float: left;
- clear: left;
- margin: 0.5em 1.4em 0.8em 0;
-}
-img.thumbborder {
- border: 1px solid #dddddd;
-}
-
-/* table standards */
-table.rimage {
- float: right;
- width: 1pt;
- position: relative;
- margin-left: 1em;
- margin-bottom: 1em;
- text-align: center;
-}
-
-body {
- background: white;
- color: black;
- margin: 0;
- padding: 0;
-}
-
-.noprint,
-div#jump-to-nav,
-.mw-jump,
-div.top,
-div#column-one,
-#colophon,
-.editsection,
-.toctoggle,
-.tochidden,
-div#f-poweredbyico,
-div#f-copyrightico,
-li#viewcount,
-li#about,
-li#disclaimer,
-li#mobileview,
-li#privacy,
-#footer-places,
-.mw-hidden-catlinks,
-tr.mw-metadata-show-hide-extended,
-span.mw-filepage-other-resolutions,
-#filetoc {
- /* Hides all the elements irrelevant for printing */
- display: none;
-}
-
-ul {
- list-style-type: square;
-}
-
-#content {
- background: none;
- border: none !important;
- padding: 0 !important;
- margin: 0 !important;
- direction: ltr;
-}
-#footer {
- background : white;
- color : black;
- margin-top: 1em;
- border-top: 1px solid #AAA;
- direction: ltr;
-}
-
-h1, h2, h3, h4, h5, h6 {
- font-weight: bold;
-}
-
-p {
- margin: 1em 0;
- line-height: 1.2em;
-}
-
-pre {
- border: 1pt dashed black;
- white-space: pre;
- font-size: 8pt;
- overflow: auto;
- padding: 1em 0;
- background: white;
- color: black;
-}
-
-table.listing,
-table.listing td {
- border: 1pt solid black;
- border-collapse: collapse;
-}
-
-a {
- color: black !important;
- background: none !important;
- padding: 0 !important;
-}
-
-a:link, a:visited {
- color: #520;
- background: transparent;
- text-decoration: underline;
-}
-
-#content a.external.text:after,
-#content a.external.autonumber:after {
- /* Expand URLs for printing */
- content: " (" attr(href) ") ";
-}
-
-#globalWrapper {
- width: 100% !important;
- min-width: 0 !important;
-}
-
-#content {
- background: white;
- color: black;
-}
-
-#column-content {
- margin: 0 !important;
-}
-
-#column-content #content {
- padding: 1em;
- margin: 0 !important;
-}
-
-/* MSIE/Win doesn't understand 'inherit' */
-a,
-a.external,
-a.new,
-a.stub {
- color: black !important;
- text-decoration: none !important;
-}
-
-/* Continue ... */
-a,
-a.external,
-a.new,
-a.stub {
- color: inherit !important;
- text-decoration: inherit !important;
-}
-
-img {
- border: none;
- vertical-align: middle;
-}
-
-/* math */
-span.texhtml {
- font-family: serif;
-}
-
-#siteNotice {
- display: none;
-}
-
-/* Galleries (see shared.css for more info) */
-li.gallerybox {
- vertical-align: top;
- border: solid 2px white;
- display: -moz-inline-box;
- display: inline-block;
-}
-
-ul.gallery, li.gallerybox {
- zoom: 1;
- *display: inline;
-}
-
-ul.gallery {
- margin: 2px;
- padding: 2px;
- display: block;
-}
-
-li.gallerycaption {
- font-weight: bold;
- text-align: center;
- display: block;
- word-wrap: break-word;
-}
-
-li.gallerybox div.thumb {
- text-align: center;
- border: 1px solid #ccc;
- margin: 2px;
-}
-
-div.gallerytext {
- overflow: hidden;
- font-size: 94%;
- padding: 2px 4px;
- word-wrap: break-word;
-}
-
-/**
- * Diff rendering
- */
-table.diff {
- background: white;
-}
-td.diff-otitle {
- background: #ffffff;
-}
-td.diff-ntitle {
- background: #ffffff;
-}
-td.diff-addedline {
- background: #ccffcc;
- font-size: smaller;
- border: solid 2px black;
-}
-td.diff-deletedline {
- background: #ffffaa;
- font-size: smaller;
- border: dotted 2px black;
-}
-td.diff-context {
- background: #eeeeee;
- font-size: smaller;
-}
-.diffchange {
- color: silver;
- font-weight: bold;
- text-decoration: underline;
-}
-
-/**
- * Table rendering
- * As on shared.css but with white background.
- */
-table.wikitable,
-table.mw_metadata {
- margin: 1em 1em 1em 0;
- border: 1px #aaa solid;
- background: white;
- border-collapse: collapse;
-}
-table.wikitable > tr > th, table.wikitable > tr > td,
-table.wikitable > * > tr > th, table.wikitable > * > tr > td,
-.mw_metadata th, .mw_metadata td {
- border: 1px #aaa solid;
- padding: 0.2em;
-}
-table.wikitable > tr > th,
-table.wikitable > * > tr > th,
-.mw_metadata th {
- text-align: center;
- background: white;
- font-weight: bold;
-}
-table.wikitable > caption,
-.mw_metadata caption {
- font-weight: bold;
-}
-
-a.sortheader {
- margin: 0 0.3em;
-}
-
-/* Some pagination options */
-.wikitable, .thumb, img {
- page-break-inside: avoid;
-}
-h2, h3, h4, h5, h6, h7 {
- page-break-after: avoid;
-}
-p {
- widows: 3;
- orphans: 3;
-}
-
-/**
- * Categories
- */
-.catlinks ul {
- display: inline;
- margin: 0;
- padding: 0;
- list-style: none;
- list-style-type: none;
- list-style-image: none;
- vertical-align: middle !ie;
-}
-
-.catlinks li {
- display: inline-block;
- line-height: 1.15em;
- padding: 0 .4em;
- border-left: 1px solid #AAA;
- margin: 0.1em 0;
- zoom: 1;
- display: inline !ie;
-}
-
-.catlinks li:first-child {
- padding-left: .2em;
- border-left: none;
-}
-/* Default styling for HTML elements */
-dfn {
- font-style: inherit; /* Reset default styling for <dfn> */
-}
-sup, sub {
- line-height: 1em; /* Reduce line-height for <sup> and <sub> */
-}
-
-/* Main page fixes */
-#interwiki-completelist {
- font-weight: bold;
-}
-body.page-Main_Page #ca-delete {
- display: none !important;
-}
-body.page-Main_Page #mp-topbanner {
- clear: both;
-}
-
-/* Edit window toolbar */
-#toolbar {
- height: 22px;
- margin-bottom: 6px;
-}
-
-/* Highlight data points in the info action if specified in the URL */
-body.action-info :target {
- background: #DEF;
-}
-
-/* Make the list of references smaller */
-ol.references,
-div.reflist,
-div.refbegin {
- font-size: 90%; /* Default font-size */
- margin-bottom: 0.5em;
-}
-div.refbegin-100 {
- font-size: 100%; /* Option for normal fontsize in {{refbegin}} */
-}
-div.reflist ol.references {
- font-size: 100%; /* Reset font-size when nested in div.reflist */
- list-style-type: inherit; /* Enable custom list style types */
-}
-
-/* Reset top margin for lists embedded in columns */
-div.columns {
- margin-top: 0.3em;
-}
-div.columns dl,
-div.columns ol,
-div.columns ul {
- margin-top: 0;
-}
-
-/* Avoid list items from breaking between columns */
-div.columns li,
-div.columns dd dd {
- -webkit-column-break-inside: avoid;
- page-break-inside: avoid;
- break-inside: avoid-column;
-}
-
-/* Highlight clicked reference in blue to help navigation */
-ol.references li:target,
-sup.reference:target,
-span.citation:target {
- background-color: #DEF;
-}
-
-/* Ensure refs in table headers and the like aren't bold or italic */
-sup.reference {
- font-weight: normal;
- font-style: normal;
-}
-
-/* Allow hidden ref errors to be shown by user CSS */
-span.brokenref {
- display: none;
-}
-
-/* Styling for citations (CSS3). Breaks long urls, etc., rather than overflowing box */
-.citation {
- word-wrap: break-word;
-}
-
-/* For linked citation numbers and document IDs, where
- the number need not be shown on a screen or a handheld,
- but should be included in the printed version */
-@media screen, handheld {
- .citation *.printonly {
- display: none;
- }
-}
-
-/* Style for [[Template:Flowlist]] that Lets lists flow around floating objecs */
-.flowlist ul {
- overflow-x: hidden;
- margin-left: 0em;
- padding-left: 1.6em;
-}
-.flowlist ol {
- overflow-x: hidden;
- margin-left: 0em;
- padding-left: 3.2em;
-}
-.flowlist dl {
- overflow-x: hidden;
-}
-
-/* Style for horizontal lists (separator following item).
- IE8-specific classes are assigned in [[MediaWiki:Common.js/IEFixes.js]].
- @source mediawiki.org/wiki/Snippets/Horizontal_lists
- @revision 4.3 (2014-01-06)
- @author [[User:Edokter]]
- */
-.hlist dl,
-.hlist ol,
-.hlist ul {
- margin: 0;
- padding: 0;
-}
-/* Display list items inline */
-.hlist dd,
-.hlist dt,
-.hlist li {
- margin: 0;
- display: inline;
-}
-/* Display nested lists inline */
-.hlist dl dl, .hlist dl ol, .hlist dl ul,
-.hlist ol dl, .hlist ol ol, .hlist ol ul,
-.hlist ul dl, .hlist ul ol, .hlist ul ul {
- display: inline;
-}
-/* Generate interpuncts */
-.hlist dt:after {
- content: ": ";
-}
-.hlist dd:after,
-.hlist li:after {
- content: " · ";
- font-weight: bold;
-}
-.hlist dd:last-child:after,
-.hlist dt:last-child:after,
-.hlist li:last-child:after {
- content: none;
-}
-/* For IE8 */
-.hlist dd.hlist-last-child:after,
-.hlist dt.hlist-last-child:after,
-.hlist li.hlist-last-child:after {
- content: none;
-}
-/* Add parentheses around nested lists */
-.hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before,
-.hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before,
-.hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before {
- content: " (";
- font-weight: normal;
-}
-.hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after,
-.hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after,
-.hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after {
- content: ") ";
- font-weight: normal;
-}
-/* For IE8 */
-.hlist dd dd.hlist-last-child:after, .hlist dd dt.hlist-last-child:after, .hlist dd li.hlist-last-child:after,
-.hlist dt dd.hlist-last-child:after, .hlist dt dt.hlist-last-child:after, .hlist dt li.hlist-last-child:after,
-.hlist li dd.hlist-last-child:after, .hlist li dt.hlist-last-child:after, .hlist li li.hlist-last-child:after {
- content: ") ";
- font-weight: normal;
-}
-/* Put ordinals in front of ordered list items */
-.hlist ol {
- counter-reset: listitem;
-}
-.hlist ol > li {
- counter-increment: listitem;
-}
-.hlist ol > li:before {
- content: " " counter(listitem) " ";
-}
-.hlist dd ol > li:first-child:before,
-.hlist dt ol > li:first-child:before,
-.hlist li ol > li:first-child:before {
- content: " (" counter(listitem) " ";
-}
-
-/* Unbulleted lists */
-.plainlist ul {
- line-height: inherit;
- list-style: none none;
- margin: 0;
-}
-.plainlist ul li {
- margin-bottom: 0;
-}
-
-/* Default style for navigation boxes */
-.navbox { /* Navbox container style */
- border: 1px solid #aaa;
- width: 100%;
- margin: auto;
- clear: both;
- font-size: 88%;
- text-align: center;
- padding: 1px;
-}
-.navbox-inner,
-.navbox-subgroup {
- width: 100%;
-}
-.navbox-group,
-.navbox-title,
-.navbox-abovebelow {
- padding: 0.25em 1em; /* Title, group and above/below styles */
- line-height: 1.5em;
- text-align: center;
-}
-th.navbox-group { /* Group style */
- white-space: nowrap;
- /* @noflip */
- text-align: right;
-}
-.navbox,
-.navbox-subgroup {
- background: #fdfdfd; /* Background color */
-}
-.navbox-list {
- line-height: 1.8em;
- border-color: #fdfdfd; /* Must match background color */
-}
-.navbox th,
-.navbox-title {
- background: #ccccff; /* Level 1 color */
-}
-.navbox-abovebelow,
-th.navbox-group,
-.navbox-subgroup .navbox-title {
- background: #ddddff; /* Level 2 color */
-}
-.navbox-subgroup .navbox-group,
-.navbox-subgroup .navbox-abovebelow {
- background: #e6e6ff; /* Level 3 color */
-}
-.navbox-even {
- background: #f7f7f7; /* Even row striping */
-}
-.navbox-odd {
- background: transparent; /* Odd row striping */
-}
-table.navbox + table.navbox { /* Single pixel border between adjacent navboxes */
- margin-top: -1px; /* (doesn't work for IE6, but that's okay) */
-}
-.navbox .hlist td dl,
-.navbox .hlist td ol,
-.navbox .hlist td ul,
-.navbox td.hlist dl,
-.navbox td.hlist ol,
-.navbox td.hlist ul {
- padding: 0.125em 0; /* Adjust hlist padding in navboxes */
-}
-ol + table.navbox,
-ul + table.navbox {
- margin-top: 0.5em; /* Prevent lists from clinging to navboxes */
-}
-
-/* Default styling for Navbar template */
-.navbar {
- display: inline;
- font-size: 88%;
- font-weight: normal;
-}
-.navbar ul {
- display: inline;
- white-space: nowrap;
-}
-.navbar li {
- word-spacing: -0.125em;
-}
-.navbar.mini li span {
- font-variant: small-caps;
-}
-/* Navbar styling when nested in infobox and navbox */
-.infobox .navbar {
- font-size: 100%;
-}
-.navbox .navbar {
- display: block;
- font-size: 100%;
-}
-.navbox-title .navbar {
- /* @noflip */
- float: left;
- /* @noflip */
- text-align: left;
- /* @noflip */
- margin-right: 0.5em;
- width: 6em;
-}
-
-/* 'show'/'hide' buttons created dynamically by the CollapsibleTables javascript
- in [[MediaWiki:Common.js]] are styled here so they can be customised. */
-.collapseButton {
- /* @noflip */
- float: right;
- font-weight: normal;
- /* @noflip */
- margin-left: 0.5em;
- /* @noflip */
- text-align: right;
- width: auto;
-}
-/* In navboxes, the show/hide button balances the v·d·e links
- from [[Template:Navbar]], so they need to be the same width. */
-.navbox .collapseButton {
- width: 6em;
-}
-
-/* Styling for JQuery makeCollapsible, matching that of collapseButton */
-.mw-collapsible-toggle {
- font-weight: normal;
- /* @noflip */
- text-align: right;
-}
-.navbox .mw-collapsible-toggle {
- width: 6em;
-}
-
-/* Infobox template style */
-.infobox {
- border: 1px solid #aaa;
- background-color: #f9f9f9;
- color: black;
- /* @noflip */
- margin: 0.5em 0 0.5em 1em;
- padding: 0.2em;
- /* @noflip */
- float: right;
- /* @noflip */
- clear: right;
- /* @noflip */
- text-align: left;
- font-size: 88%;
- line-height: 1.5em;
-}
-.infobox caption {
- font-size: 125%;
- font-weight: bold;
-}
-.infobox td,
-.infobox th {
- vertical-align: top;
-}
-.infobox.bordered {
- border-collapse: collapse;
-}
-.infobox.bordered td,
-.infobox.bordered th {
- border: 1px solid #aaa;
-}
-.infobox.bordered .borderless td,
-.infobox.bordered .borderless th {
- border: 0;
-}
-
-.infobox.sisterproject {
- width: 20em;
- font-size: 90%;
-}
-
-.infobox.standard-talk {
- border: 1px solid #c0c090;
- background-color: #f8eaba;
-}
-.infobox.standard-talk.bordered td,
-.infobox.standard-talk.bordered th {
- border: 1px solid #c0c090;
-}
-
-/* styles for bordered infobox with merged rows */
-.infobox.bordered .mergedtoprow td,
-.infobox.bordered .mergedtoprow th {
- border: 0;
- border-top: 1px solid #aaa;
- /* @noflip */
- border-right: 1px solid #aaa;
-}
-
-.infobox.bordered .mergedrow td,
-.infobox.bordered .mergedrow th {
- border: 0;
- /* @noflip */
- border-right: 1px solid #aaa;
-}
-
-/* Styles for geography infoboxes, eg countries,
- country subdivisions, cities, etc. */
-.infobox.geography {
- border-collapse: collapse;
- line-height: 1.2em;
- font-size: 90%;
-}
-
-.infobox.geography td,
-.infobox.geography th {
- border-top: 1px solid #aaa;
- padding: 0.4em 0.6em 0.4em 0.6em;
-}
-.infobox.geography .mergedtoprow td,
-.infobox.geography .mergedtoprow th {
- border-top: 1px solid #aaa;
- padding: 0.4em 0.6em 0.2em 0.6em;
-}
-
-.infobox.geography .mergedrow td,
-.infobox.geography .mergedrow th {
- border: 0;
- padding: 0 0.6em 0.2em 0.6em;
-}
-
-.infobox.geography .mergedbottomrow td,
-.infobox.geography .mergedbottomrow th {
- border-top: 0;
- border-bottom: 1px solid #aaa;
- padding: 0 0.6em 0.4em 0.6em;
-}
-
-.infobox.geography .maptable td,
-.infobox.geography .maptable th {
- border: 0;
- padding: 0;
-}
-
-/* Normal font styling for table row headers with scope="row" tag */
-.wikitable.plainrowheaders th[scope=row] {
- font-weight: normal;
- /* @noflip */
- text-align: left;
-}
-
-/* Lists in data cells are always left-aligned */
-.wikitable td ul,
-.wikitable td ol,
-.wikitable td dl {
- /* @noflip */
- text-align: left;
-}
-/* ...unless they also use the hlist class */
-.wikitable.hlist td ul,
-.wikitable.hlist td ol,
-.wikitable.hlist td dl {
- text-align: inherit;
-}
-
-/* Icons for medialist templates [[Template:Listen]],
- [[Template:Multi-listen_start]], [[Template:Video]],
- [[Template:Multi-video_start]] */
-div.listenlist {
- background: url("//upload.wikimedia.org/wikipedia/commons/4/47/Sound-icon.svg") no-repeat scroll 0% 0% transparent;
- background-size: 30px;
- padding-left: 40px;
-}
-
-/* Fix for hieroglyphs specificality issue in infoboxes ([[Bugzilla:41869]]) */
-table.mw-hiero-table td {
- vertical-align: middle;
-}
-
-/* Style rules for media list templates */
-div.medialist {
- min-height: 50px;
- margin: 1em;
- /* @noflip */
- background-position: top left;
- background-repeat: no-repeat;
-}
-div.medialist ul {
- list-style-type: none;
- list-style-image: none;
- margin: 0;
-}
-div.medialist ul li {
- padding-bottom: 0.5em;
-}
-div.medialist ul li li {
- font-size: 91%;
- padding-bottom: 0;
-}
-
-/* Change the external link icon to an Adobe icon for all PDF files
- in browsers that support these CSS selectors, like Mozilla and Opera */
-div#content a[href$=".pdf"].external,
-div#content a[href*=".pdf?"].external,
-div#content a[href*=".pdf#"].external,
-div#content a[href$=".PDF"].external,
-div#content a[href*=".PDF?"].external,
-div#content a[href*=".PDF#"].external,
-div#mw_content a[href$=".pdf"].external,
-div#mw_content a[href*=".pdf?"].external,
-div#mw_content a[href*=".pdf#"].external,
-div#mw_content a[href$=".PDF"].external,
-div#mw_content a[href*=".PDF?"].external,
-div#mw_content a[href*=".PDF#"].external {
- background: url("//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif") no-repeat right;
- /* @noflip */
- padding-right: 18px;
-}
-
-/* Change the external link icon to an Adobe icon anywhere the PDFlink class
- is used (notably Template:PDFlink). This works in IE, unlike the above. */
-div#content span.PDFlink a,
-div#mw_content span.PDFlink a {
- background: url("//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif") no-repeat right;
- /* @noflip */
- padding-right: 18px;
-}
-
-/* Content in columns with CSS instead of tables ([[Template:Columns]]) */
-div.columns-2 div.column {
- /* @noflip */
- float: left;
- width: 50%;
- min-width: 300px;
-}
-div.columns-3 div.column {
- /* @noflip */
- float: left;
- width: 33.3%;
- min-width: 200px;
-}
-div.columns-4 div.column {
- /* @noflip */
- float: left;
- width: 25%;
- min-width: 150px;
-}
-div.columns-5 div.column {
- /* @noflip */
- float: left;
- width: 20%;
- min-width: 120px;
-}
-
-/* Messagebox templates */
-.messagebox {
- border: 1px solid #aaa;
- background-color: #f9f9f9;
- width: 80%;
- margin: 0 auto 1em auto;
- padding: .2em;
-}
-.messagebox.merge {
- border: 1px solid #c0b8cc;
- background-color: #f0e5ff;
- text-align: center;
-}
-.messagebox.cleanup {
- border: 1px solid #9f9fff;
- background-color: #efefff;
- text-align: center;
-}
-.messagebox.standard-talk {
- border: 1px solid #c0c090;
- background-color: #f8eaba;
- margin: 4px auto;
-}
-/* For old WikiProject banners inside banner shells. */
-.mbox-inside .standard-talk,
-.messagebox.nested-talk {
- border: 1px solid #c0c090;
- background-color: #f8eaba;
- width: 100%;
- margin: 2px 0;
- padding: 2px;
-}
-.messagebox.small {
- width: 238px;
- font-size: 85%;
- /* @noflip */
- float: right;
- clear: both;
- /* @noflip */
- margin: 0 0 1em 1em;
- line-height: 1.25em;
-}
-.messagebox.small-talk {
- width: 238px;
- font-size: 85%;
- /* @noflip */
- float: right;
- clear: both;
- /* @noflip */
- margin: 0 0 1em 1em;
- line-height: 1.25em;
- background: #F8EABA;
-}
-
-/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */
-th.mbox-text, td.mbox-text { /* The message body cell(s) */
- border: none;
- /* @noflip */
- padding: 0.25em 0.9em; /* 0.9em left/right */
- width: 100%; /* Make all mboxes the same width regardless of text length */
-}
-td.mbox-image { /* The left image cell */
- border: none;
- /* @noflip */
- padding: 2px 0 2px 0.9em; /* 0.9em left, 0px right */
- text-align: center;
-}
-td.mbox-imageright { /* The right image cell */
- border: none;
- /* @noflip */
- padding: 2px 0.9em 2px 0; /* 0px left, 0.9em right */
- text-align: center;
-}
-td.mbox-empty-cell { /* An empty narrow cell */
- border: none;
- padding: 0px;
- width: 1px;
-}
-
-/* Article message box styles */
-table.ambox {
- margin: 0px 10%; /* 10% = Will not overlap with other elements */
- border: 1px solid #aaa;
- /* @noflip */
- border-left: 10px solid #1e90ff; /* Default "notice" blue */
- background: #fbfbfb;
-}
-table.ambox + table.ambox { /* Single border between stacked boxes. */
- margin-top: -1px;
-}
-.ambox th.mbox-text,
-.ambox td.mbox-text { /* The message body cell(s) */
- padding: 0.25em 0.5em; /* 0.5em left/right */
-}
-.ambox td.mbox-image { /* The left image cell */
- /* @noflip */
- padding: 2px 0 2px 0.5em; /* 0.5em left, 0px right */
-}
-.ambox td.mbox-imageright { /* The right image cell */
- /* @noflip */
- padding: 2px 0.5em 2px 0; /* 0px left, 0.5em right */
-}
-
-table.ambox-notice {
- /* @noflip */
- border-left: 10px solid #1e90ff; /* Blue */
-}
-table.ambox-speedy {
- /* @noflip */
- border-left: 10px solid #b22222; /* Red */
- background: #fee; /* Pink */
-}
-table.ambox-delete {
- /* @noflip */
- border-left: 10px solid #b22222; /* Red */
-}
-table.ambox-content {
- /* @noflip */
- border-left: 10px solid #f28500; /* Orange */
-}
-table.ambox-style {
- /* @noflip */
- border-left: 10px solid #f4c430; /* Yellow */
-}
-table.ambox-move {
- /* @noflip */
- border-left: 10px solid #9932cc; /* Purple */
-}
-table.ambox-protection {
- /* @noflip */
- border-left: 10px solid #bba; /* Gray-gold */
-}
-
-/* Image message box styles */
-table.imbox {
- margin: 4px 10%;
- border-collapse: collapse;
- border: 3px solid #1e90ff; /* Default "notice" blue */
- background: #fbfbfb;
-}
-.imbox .mbox-text .imbox { /* For imboxes inside imbox-text cells. */
- margin: 0 -0.5em; /* 0.9 - 0.5 = 0.4em left/right. */
- display: block; /* Fix for webkit to force 100% width. */
-}
-.mbox-inside .imbox { /* For imboxes inside other templates. */
- margin: 4px;
-}
-
-table.imbox-notice {
- border: 3px solid #1e90ff; /* Blue */
-}
-table.imbox-speedy {
- border: 3px solid #b22222; /* Red */
- background: #fee; /* Pink */
-}
-table.imbox-delete {
- border: 3px solid #b22222; /* Red */
-}
-table.imbox-content {
- border: 3px solid #f28500; /* Orange */
-}
-table.imbox-style {
- border: 3px solid #f4c430; /* Yellow */
-}
-table.imbox-move {
- border: 3px solid #9932cc; /* Purple */
-}
-table.imbox-protection {
- border: 3px solid #bba; /* Gray-gold */
-}
-table.imbox-license {
- border: 3px solid #88a; /* Dark gray */
- background: #f7f8ff; /* Light gray */
-}
-table.imbox-featured {
- border: 3px solid #cba135; /* Brown-gold */
-}
-
-/* Category message box styles */
-table.cmbox {
- margin: 3px 10%;
- border-collapse: collapse;
- border: 1px solid #aaa;
- background: #DFE8FF; /* Default "notice" blue */
-}
-
-table.cmbox-notice {
- background: #D8E8FF; /* Blue */
-}
-table.cmbox-speedy {
- margin-top: 4px;
- margin-bottom: 4px;
- border: 4px solid #b22222; /* Red */
- background: #FFDBDB; /* Pink */
-}
-table.cmbox-delete {
- background: #FFDBDB; /* Red */
-}
-table.cmbox-content {
- background: #FFE7CE; /* Orange */
-}
-table.cmbox-style {
- background: #FFF9DB; /* Yellow */
-}
-table.cmbox-move {
- background: #E4D8FF; /* Purple */
-}
-table.cmbox-protection {
- background: #EFEFE1; /* Gray-gold */
-}
-
-/* Other pages message box styles */
-table.ombox {
- margin: 4px 10%;
- border-collapse: collapse;
- border: 1px solid #aaa; /* Default "notice" gray */
- background: #f9f9f9;
-}
-
-table.ombox-notice {
- border: 1px solid #aaa; /* Gray */
-}
-table.ombox-speedy {
- border: 2px solid #b22222; /* Red */
- background: #fee; /* Pink */
-}
-table.ombox-delete {
- border: 2px solid #b22222; /* Red */
-}
-table.ombox-content {
- border: 1px solid #f28500; /* Orange */
-}
-table.ombox-style {
- border: 1px solid #f4c430; /* Yellow */
-}
-table.ombox-move {
- border: 1px solid #9932cc; /* Purple */
-}
-table.ombox-protection {
- border: 2px solid #bba; /* Gray-gold */
-}
-
-/* Talk page message box styles */
-table.tmbox {
- margin: 4px 10%;
- border-collapse: collapse;
- border: 1px solid #c0c090; /* Default "notice" gray-brown */
- background: #f8eaba;
-}
-.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The "mediawiki" class ensures that */
- margin: 2px 0; /* this declaration overrides other styles (including mbox-small above) */
- width: 100%; /* For Safari and Opera */
-}
-.mbox-inside .tmbox.mbox-small { /* "small" tmboxes should not be small when */
- line-height: 1.5em; /* also "nested", so reset styles that are */
- font-size: 100%; /* set in "mbox-small" above. */
-}
-
-table.tmbox-speedy {
- border: 2px solid #b22222; /* Red */
- background: #fee; /* Pink */
-}
-table.tmbox-delete {
- border: 2px solid #b22222; /* Red */
-}
-table.tmbox-content {
- border: 2px solid #f28500; /* Orange */
-}
-table.tmbox-style {
- border: 2px solid #f4c430; /* Yellow */
-}
-table.tmbox-move {
- border: 2px solid #9932cc; /* Purple */
-}
-table.tmbox-protection,
-table.tmbox-notice {
- border: 1px solid #c0c090; /* Gray-brown */
-}
-
-/* Disambig and set index box styles */
-table.dmbox {
- clear: both;
- margin: 0.9em 1em;
- border-top: 1px solid #ccc;
- border-bottom: 1px solid #ccc;
- background: transparent;
-}
-
-/* Footer and header message box styles */
-table.fmbox {
- clear: both;
- margin: 0.2em 0;
- width: 100%;
- border: 1px solid #aaa;
- background: #f9f9f9; /* Default "system" gray */
-}
-table.fmbox-system {
- background: #f9f9f9;
-}
-table.fmbox-warning {
- border: 1px solid #bb7070; /* Dark pink */
- background: #ffdbdb; /* Pink */
-}
-table.fmbox-editnotice {
- background: transparent;
-}
-/* Div based "warning" style fmbox messages. */
-div.mw-warning-with-logexcerpt,
-div.mw-lag-warn-high,
-div.mw-cascadeprotectedwarning,
-div#mw-protect-cascadeon {
- clear: both;
- margin: 0.2em 0;
- border: 1px solid #bb7070;
- background: #ffdbdb;
- padding: 0.25em 0.9em;
-}
-/* Div based "system" style fmbox messages.
- Used in [[MediaWiki:Readonly lag]]. */
-div.mw-lag-warn-normal,
-div.fmbox-system {
- clear: both;
- margin: 0.2em 0;
- border: 1px solid #aaa;
- background: #f9f9f9;
- padding: 0.25em 0.9em;
-}
-
-/* These mbox-small classes must be placed after all other
- ambox/tmbox/ombox etc classes. "body.mediawiki" is so
- they override "table.ambox + table.ambox" above. */
-body.mediawiki table.mbox-small { /* For the "small=yes" option. */
- /* @noflip */
- clear: right;
- /* @noflip */
- float: right;
- /* @noflip */
- margin: 4px 0 4px 1em;
- width: 238px;
- font-size: 88%;
- line-height: 1.25em;
-}
-body.mediawiki table.mbox-small-left { /* For the "small=left" option. */
- /* @noflip */
- margin: 4px 1em 4px 0;
- width: 238px;
- border-collapse: collapse;
- font-size: 88%;
- line-height: 1.25em;
-}
-
-/* Style for compact ambox */
-/* Hide the images */
-.compact-ambox table .mbox-image,
-.compact-ambox table .mbox-imageright,
-.compact-ambox table .mbox-empty-cell {
- display: none;
-}
-/* Remove borders, backgrounds, padding, etc. */
-.compact-ambox table.ambox {
- border: none;
- border-collapse: collapse;
- background: transparent;
- margin: 0 0 0 1.6em !important;
- padding: 0 !important;
- width: auto;
- display: block;
-}
-body.mediawiki .compact-ambox table.mbox-small-left {
- font-size: 100%;
- width: auto;
- margin: 0;
-}
-/* Style the text cell as a list item and remove its padding */
-.compact-ambox table .mbox-text {
- padding: 0 !important;
- margin: 0 !important;
-}
-.compact-ambox table .mbox-text-span {
- display: list-item;
- line-height: 1.5em;
- list-style-type: square;
- list-style-image: url(//bits.wikimedia.org/skins/common/images/bullet.gif);
-}
-.skin-vector .compact-ambox table .mbox-text-span {
- list-style-type: circle;
- list-style-image: url(//bits.wikimedia.org/skins/vector/images/bullet-icon.png)
-}
-/* Allow for hiding text in compact form */
-.compact-ambox .hide-when-compact {
- display: none;
-}
-
-/* Remove default styles for [[MediaWiki:Noarticletext]]. */
-div.noarticletext {
- border: none;
- background: transparent;
- padding: 0;
-}
-
-/* Hide (formatting) elements from screen, but not from screenreaders */
-.visualhide {
- position: absolute;
- left: -10000px;
- top: auto;
- width: 1px;
- height: 1px;
- overflow: hidden;
-}
-
-/* Bold save button */
-#wpSave {
- font-weight: bold;
-}
-
-/* class hiddenStructure is defunct. See [[Wikipedia:hiddenStructure]] */
-.hiddenStructure {
- display: inline !important;
- color: #f00;
- background-color: #0f0;
-}
-
-/* suppress missing interwiki image links where #ifexist cannot
- be used due to high number of requests see .hidden-redlink on
- [[m:MediaWiki:Common.css]] */
-.check-icon a.new {
- display: none;
- speak: none;
-}
-
-/* Removes underlines from certain links */
-.nounderlines a,
-.IPA a:link, .IPA a:visited {
- text-decoration: none !important;
-}
-
-/* Standard Navigationsleisten, aka box hiding thingy
- from .de. Documentation at [[Wikipedia:NavFrame]]. */
-div.NavFrame {
- margin: 0;
- padding: 4px;
- border: 1px solid #aaa;
- text-align: center;
- border-collapse: collapse;
- font-size: 95%;
-}
-div.NavFrame + div.NavFrame {
- border-top-style: none;
- border-top-style: hidden;
-}
-div.NavPic {
- background-color: #fff;
- margin: 0;
- padding: 2px;
- /* @noflip */
- float: left;
-}
-div.NavFrame div.NavHead {
- height: 1.6em;
- font-weight: bold;
- background-color: #ccf;
- position: relative;
-}
-div.NavFrame p,
-div.NavFrame div.NavContent,
-div.NavFrame div.NavContent p {
- font-size: 100%;
-}
-div.NavEnd {
- margin: 0;
- padding: 0;
- line-height: 1px;
- clear: both;
-}
-a.NavToggle {
- position: absolute;
- top: 0;
- /* @noflip */
- right: 3px;
- font-weight: normal;
- font-size: 90%;
-}
-
-/* Hatnotes and disambiguation notices */
-.rellink,
-.dablink {
- font-style: italic;
- /* @noflip */
- padding-left: 1.6em;
- margin-bottom: 0.5em;
-}
-.rellink i,
-.dablink i {
- font-style: normal;
-}
-
-/* Allow transcluded pages to display in lists rather than a table.
- Compatible in Firefox; incompatible in IE6. */
-.listify td { display: list-item; }
-.listify tr { display: block; }
-.listify table { display: block; }
-
-/* Geographical coordinates defaults. See [[Template:Coord/link]]
- for how these are used. The classes "geo", "longitude", and
- "latitude" are used by the [[Geo microformat]]. */
-.geo-default, .geo-dms, .geo-dec { display: inline; }
-.geo-nondefault, .geo-multi-punct { display: none; }
-.longitude, .latitude { white-space: nowrap; }
-
-/* When <div class="nonumtoc"> is used on the table of contents,
- the ToC will display without numbers */
-.nonumtoc .tocnumber { display: none; }
-.nonumtoc #toc ul,
-.nonumtoc .toc ul {
- line-height: 1.5em;
- list-style: none none;
- margin: .3em 0 0;
- padding: 0;
-}
-.nonumtoc #toc ul ul,
-.nonumtoc .toc ul ul {
- /* @noflip */
- margin: 0 0 0 2em;
-}
-
-/* Allow limiting of which header levels are shown in a TOC;
- <div class="toclimit-3">, for instance, will limit to
- showing ==headings== and ===headings=== but no further
- (as long as there are no =headings= on the page, which
- there shouldn't be according to the MoS). */
-.toclimit-2 .toclevel-1 ul,
-.toclimit-3 .toclevel-2 ul,
-.toclimit-4 .toclevel-3 ul,
-.toclimit-5 .toclevel-4 ul,
-.toclimit-6 .toclevel-5 ul,
-.toclimit-7 .toclevel-6 ul {
- display: none;
-}
-
-/* Styling for Template:Quote */
-blockquote.templatequote {
- margin-top: 0;
-}
-blockquote.templatequote div.templatequotecite {
- line-height: 1em;
- /* @noflip */
- text-align: left;
- /* @noflip */
- padding-left: 2em;
- margin-top: 0;
-}
-blockquote.templatequote div.templatequotecite cite {
- font-size: 85%;
-}
-
-/* User block messages */
-div.user-block {
- padding: 5px;
- margin-bottom: 0.5em;
- border: 1px solid #A9A9A9;
- background-color: #FFEFD5;
-}
-
-/* Prevent line breaks in silly places:
- 1) Where desired
- 2) Links when we don't want them to
- 3) Bold "links" to the page itself
- 4) Ref tags with group names <ref group="Note"> --> "[Note 1]" */
-.nowrap,
-.nowraplinks a,
-.nowraplinks .selflink,
-sup.reference a {
- white-space: nowrap;
-}
-/* But allow wrapping where desired: */
-.wrap,
-.wraplinks a {
- white-space: normal;
-}
-
-/* For template documentation */
-.template-documentation {
- clear: both;
- margin: 1em 0 0 0;
- border: 1px solid #aaa;
- background-color: #ecfcf4;
- padding: 1em;
-}
-
-/* Inline divs in ImageMaps (code borrowed from de.wiki) */
-.imagemap-inline div {
- display: inline;
-}
-
-/* Increase the height of the image upload box */
-#wpUploadDescription {
- height: 13em;
-}
-
-/* Minimum thumb width */
-.thumbinner {
- min-width: 100px;
-}
-
-/* Makes the background of a framed image white instead of gray.
- Only visible with transparent images. */
-div.thumb .thumbimage {
- background-color: #fff;
-}
-
-/* The backgrounds for galleries. */
-div#content .gallerybox div.thumb {
- /* Light gray padding */
- background-color: #F9F9F9;
-}
-/* Put a chequered background behind images, only visible if they have transparency.
- '.filehistory a img' and '#file img:hover' are handled by MediaWiki core (as of 1.19) */
-.gallerybox .thumb img {
- background: #fff url(//bits.wikimedia.org/skins/common/images/Checker-16x16.png) repeat;
-}
-/* But not on articles, user pages, portals or with opt-out. */
-.ns-0 .gallerybox .thumb img,
-.ns-2 .gallerybox .thumb img,
-.ns-100 .gallerybox .thumb img,
-.nochecker .gallerybox .thumb img {
- background: #fff;
-}
-
-/* Prevent floating boxes from overlapping any category listings,
- file histories, edit previews, and edit [Show changes] views. */
-#mw-subcategories, #mw-pages, #mw-category-media,
-#filehistory, #wikiPreview, #wikiDiff {
- clear: both;
-}
-
-body.rtl #mw-articlefeedbackv5, body.rtl #mw-articlefeedback {
- display: block; /* Override inline block mode */
- margin-bottom: 1em;
- /* @noflip */
- clear: right; /* Clear any info boxes that stick out */
- /* @noflip */
- float: right; /* Prevents margin collapsing */
-}
-
-/* Selectively hide headers in WikiProject banners */
-.wpb .wpb-header { display: none; }
-.wpbs-inner .wpb .wpb-header { display: block; } /* for IE */
-.wpbs-inner .wpb .wpb-header { display: table-row; } /* for real browsers */
-.wpbs-inner .wpb-outside { display: none; } /* hide things that should only display outside shells */
-
-/* Styling for Abuse Filter tags */
-.mw-tag-markers {
- font-family:sans-serif;
- font-style:italic;
- font-size:90%;
-}
-
-/* Hide stuff meant for accounts with special permissions. Made visible again in
- [[MediaWiki:Group-sysop.css]], [[MediaWiki:Group-accountcreator.css]],
- [[MediaWiki:Group-templateeditor.css]] and [[Mediawiki:Group-autoconfirmed.css]]. */
-.sysop-show,
-.accountcreator-show,
-.templateeditor-show,
-.autoconfirmed-show {
- display: none;
-}
-
-/**
- * Hide the redlink generated by {{Editnotice}},
- * this overrides the ".sysop-show { display: none; }" above that applies
- * to the same link as well.
- */
-.ve-init-mw-viewPageTarget-toolbar-editNotices-notice .editnotice-redlink {
- display: none !important;
-}
-
-/* Remove bullets when there are multiple edit page warnings */
-ul.permissions-errors > li {
- list-style: none none;
-}
-ul.permissions-errors {
- margin: 0;
-}
-
-/* No linewrap on the labels of the login/signup page */
-body.page-Special_UserLogin .mw-label label,
-body.page-Special_UserLogin_signup .mw-label label {
- white-space: nowrap;
-}
-
-/* Pie chart test: Transparent borders */
-.transborder {
- border: solid transparent;
-}
-* html .transborder { /* IE6 */
- border: solid #000001;
- filter: chroma(color=#000001);
-}
-
-/* Styling for updated markers on watchlist, history and recent/related changes.
- Bullets are handled in skin-specific stylesheets. */
-.updatedmarker {
- background-color: transparent;
- color: #006400;
-}
-li.mw-changeslist-line-watched .mw-title,
-table.mw-changeslist-line-watched .mw-title,
-table.mw-enhanced-watch .mw-enhanced-rctime {
- font-weight: normal;
-}
-
-/* Adjust font for inline HTML generated formulae */
-span.texhtml {
- font-family: "Times New Roman", "Nimbus Roman No9 L", Times, serif;
- font-size: 118%;
- white-space: nowrap;
-}
-span.texhtml span.texhtml {
- font-size: 100%;
-}
-
-/* Fix so <syntaxhighlight> tags and .css and .js pages get normal text size.
- [[Bugzilla:26204]]. See also [[Wikipedia:Typography#The monospace 'bug']] */
-div.mw-geshi div,
-div.mw-geshi div pre,
-span.mw-geshi,
-pre.source-css,
-pre.source-javascript,
-pre.source-lua {
- font-family: monospace, Courier !important;
-}
-
-/* Fix styling of transcluded prefindex tables */
-table#mw-prefixindex-list-table,
-table#mw-prefixindex-nav-table {
- width: 98%;
-}
-
-/* For portals, added 2011-12-07 -bv
- On wide screens, show these as two columns
- On narrow and mobile screens, let them collapse into a single column */
-.portal-column-left {
- float: left;
- width: 50%;
-}
-.portal-column-right {
- float: right;
- width: 49%;
-}
-.portal-column-left-wide {
- float: left;
- width: 60%;
-}
-.portal-column-right-narrow {
- float: right;
- width: 39%;
-}
-.portal-column-left-extra-wide {
- float: left;
- width: 70%;
-}
-.portal-column-right-extra-narrow {
- float: right;
- width: 29%;
-}
-@media only screen and (max-width: 800px) {
- /* Decouple the columns on narrow screens */
- .portal-column-left,
- .portal-column-right,
- .portal-column-left-wide,
- .portal-column-right-narrow,
- .portal-column-left-extra-wide,
- .portal-column-right-extra-narrow {
- float: inherit;
- width: inherit;
- }
-}
-
-/* For announcements */
-#bodyContent .letterhead {
- background-image:url('//upload.wikimedia.org/wikipedia/commons/e/e0/Tan-page-corner.png');
- background-repeat:no-repeat;
- padding: 2em;
- background-color: #faf9f2;
-}
-
-/* Tree style lists */
-.treeview ul {
- padding: 0;
- margin: 0;
-}
-.treeview li {
- padding: 0;
- margin: 0;
- list-style-type: none;
- list-style-image: none;
- zoom: 1; /* BE KIND TO IE6 */;
-}
-.treeview li li {
- background: url("//upload.wikimedia.org/wikipedia/commons/f/f2/Treeview-grey-line.png") no-repeat 0 -2981px;
- /* @noflip */
- padding-left: 20px;
- text-indent: 0.3em;
-}
-.treeview li li.lastline {
- background-position: 0 -5971px
-}
-.treeview li.emptyline > ul {
- /* @noflip */
- margin-left: -1px;
-}
-.treeview li.emptyline > ul > li:first-child {
- background-position: 0 9px
-}
-
-/* hidden sortkey for tablesorter */
-td .sortkey,
-th .sortkey {
- display: none;
- speak: none;
-}
-
-/* Make it possible to hide checkboxes in <inputbox> */
-.inputbox-hidecheckboxes form .inputbox-element {
- display: none !important;
-}
-
-/* Hide charinsert base for those not using the gadget */
-#editpage-specialchars {
- display: none;
-}
-
-/* work-around for [[bugzilla:23965]] (Kaltura advertisement) */
-.k-player .k-attribution {
- visibility: hidden;
-}
-
-/* [[MediaZilla:35337]] */
-@media (-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (min-resolution: 1.5dppx), (min-resolution: 144dpi) {
- #p-logo a {
- background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Wikipedia-logo-v2-en.svg/204px-Wikipedia-logo-v2-en.svg.png") !important;
- background-size: 136px auto;
- }
-}
-@media (-webkit-min-device-pixel-ratio: 2), (min--moz-device-pixel-ratio: 2), (min-resolution: 2dppx), (min-resolution: 192dpi) {
- #p-logo a {
- background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Wikipedia-logo-v2-en.svg/270px-Wikipedia-logo-v2-en.svg.png") !important;
- background-size: 135px auto;
- }
-}
-/* Do not print:
- 1: When in mainspace: Article message boxes,
- navboxes, sister project boxes, disambig links,
- and items marked as metadata.
- 2: section edit links.
- 3: navbar links.
- 4: Show/hide toggles for collapsible items.
-*/
-.ns-0 .ambox,
-.ns-0 .navbox,
-.ns-0 .vertical-navbox,
-.ns-0 .infobox.sisterproject,
-.ns-0 .dablink,
-.ns-0 .metadata,
-.editlink,
-.navbar,
-a.NavToggle, span.collapseButton, span.mw-collapsible-toggle,
-th .sortkey, td .sortkey {
- display: none !important;
-}
-
-/* Add formatting to make sure that "external references" from templates
- like [[Template:Ref]] do not get URL expansion, not even when printed.
- The anchor itself has class "external autonumber" and the url expansion
- is inserted when printing (see the common printing style sheet at
- http://en.wikipedia.org/skins-1.5/common/commonPrint.css) using the
- ":after" pseudo-element of CSS. Also hide in <cite> elements.
-*/
-#content cite a.external.text:after,
-.nourlexpansion a.external.text:after,
-.nourlexpansion a.external.autonumber:after {
- display: none !important;
-}
-
-/* Uncollapse collapsible tables/divs.
- The proper way to do this for tables is to use display:table-row,
- but this is not supported by all browsers, so use display:block as fallback.
-*/
-table.collapsible tr, div.NavPic, div.NavContent {
- display: block !important;
-}
-table.collapsible tr {
- display: table-row !important;
-}
-
-/* On websites with siteSub visible, the margin on the firstHeading is not needed. */
-#firstHeading {
- margin: 0px;
-}
-
-/* We don't want very long URLs (that are added to the content in print) to widen the canvas */
-#content a.external.text:after,
-#content a.external.autonumber:after {
- word-wrap: break-word;
-}
-/* Don't display some stuff on the main page */
-body.page-Main_Page #deleteconfirm,
-body.page-Main_Page #t-cite,
-body.page-Main_Page #footer-info-lastmod,
-body.action-view.page-Main_Page #siteSub,
-body.action-view.page-Main_Page #contentSub,
-body.action-view.page-Main_Page h1.firstHeading {
- display: none !important;
-}
-
-/* Position Main Page top banner */
-body.page-Main_Page #mp-topbanner {
- margin-top: 0 !important;
-}
-
-/* Position coordinates */
-#coordinates {
- position: absolute;
- top: 0em;
- right: 0em;
- float: right;
- margin: 0em;
- padding: 0em;
- line-height: 1.5em;
- text-align: right;
- text-indent: 0;
- font-size: 85%;
- text-transform: none;
- white-space: nowrap;
-}
-
-/* For positioning icons at top-right, used in Templates
- "Spoken Article" and "Featured Article" */
-div.topicon {
- position: absolute;
- top: -2em;
- margin-right: -10px;
- display: block !important;
-}
-
-/* FR topicon position */
-div.flaggedrevs_short {
- position: absolute;
- top: -3em;
- right: 80px;
- z-index: 1;
- margin-left: 0;
- /* Because this is not yet a topicon, we emulate it's behavior,
- this ensure compatibility with edit lead section gadget. */
- margin-right: -10px;
-}
-
-/* On rtl interfaces, we need to override the defaults.
- It is content included (so ltr), but positioned in part of the rtl interface. */
-body.rtl #protected-icon {
- /* @noflip */
- left: 55px;
-}
-body.rtl #spoken-icon,
-body.rtl #commons-icon {
- /* @noflip */
- left: 30px;
-}
-body.rtl #featured-star {
- /* @noflip */
- left: 10px;
-}
-
-/* Menu over FR box */
-div.vectorMenu div {
- z-index: 2;
-}
-
-/* Display "From Wikipedia, the free encyclopedia" */
-#siteSub {
- display: inline;
- font-size: 92%;
-}
-
-/* Bullets for Good and Featured interwiki links */
-li.GA {
- list-style-image: url(//upload.wikimedia.org/wikipedia/commons/4/42/Monobook-bullet-ga.png);
-}
-li.FA {
- list-style-image: url(//upload.wikimedia.org/wikipedia/commons/d/d4/Monobook-bullet-star.png);
-}
-
-/* Styling for updated markers on watchlist, history and recent/related changes */
-li.mw-changeslist-line-watched,
-li.mw-history-line-updated {
- list-style-image: url(//upload.wikimedia.org/wikipedia/commons/c/c2/ChangedBulletVector.png);
-}
-
-/* Blue instead of yellow padlock for secure links. */
-#bodyContent a.external[href ^="https://"],
-.link-https {
- background: url(//upload.wikimedia.org/wikipedia/en/0/00/Lock_icon_blue.gif) center right no-repeat;
- /* @noflip */
- padding-right: 16px;
-}
-
-/* (Soft) redirect styling (bug:26544) */
-div.redirectMsg img {
- vertical-align: text-bottom;
-}
-.redirectText {
- font-size: 150%;
- margin: 5px;
-}
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/wikipedia.min.css b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/wikipedia.min.css
deleted file mode 100644
index eecfc919430..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/wikipedia.min.css
+++ /dev/null
@@ -1 +0,0 @@
-html,body{height:100%;margin:0;padding:0;font-family:sans-serif;font-size:1em}body{background-color:#f3f3f3;background-image:url(images/page-base.png)}div#content{margin-left:10em;padding:1em;background-image:url(images/border.png);background-position:top left;background-repeat:repeat-y;background-color:white;color:black;direction:ltr}#mw-page-base{height:5em;background-color:white;background-image:url(images/page-fade.png);background-position:bottom left;background-repeat:repeat-x}#mw-head-base{margin-top:-5em;margin-left:10em;height:5em;background-image:url(images/border.png);background-position:bottom left;background-repeat:repeat-x}div#mw-head{position:absolute;top:0;right:0;width:100%}div#mw-head h5{margin:0;padding:0}div.emptyPortlet{display:none}#p-personal{position:absolute;top:0;right:.75em}#p-personal h5{display:none}#p-personal ul{list-style:none;margin:0;padding-left:10em}#p-personal li{line-height:1.125em;float:left}#p-personal li{margin-left:.75em;margin-top:.5em;font-size:.75em;white-space:nowrap}#left-navigation{position:absolute;left:10em;top:2.5em}#right-navigation{float:right;margin-top:2.5em}div.vectorTabs h5,div.vectorMenu h5 span{display:none}div.vectorTabs{float:left;height:2.5em}div.vectorTabs{background-image:url(images/tab-break.png);background-position:bottom left;background-repeat:no-repeat;padding-left:1px}div.vectorTabs ul{float:left}div.vectorTabs ul{height:100%;list-style:none;margin:0;padding:0}div.vectorTabs ul li{float:left}div.vectorTabs ul li{line-height:1.125em;display:inline-block;height:100%;margin:0;padding:0;background-color:#f3f3f3;background-image:url(images/tab-normal-fade.png);background-position:bottom left;background-repeat:repeat-x;white-space:nowrap}div.vectorTabs ul>li{display:block}div.vectorTabs li.selected{background-image:url(images/tab-current-fade.png)}div.vectorTabs li a{display:inline-block;height:1.9em;padding-left:.5em;padding-right:.5em;color:#0645ad;cursor:pointer;font-size:.8em}div.vectorTabs li>a{display:block}div.vectorTabs li.icon a{background-position:bottom right;background-repeat:no-repeat}div.vectorTabs span a{display:inline-block;padding-top:1.25em}div.vectorTabs span>a{float:left;display:block}div.vectorTabs span{display:inline-block;background-image:url(images/tab-break.png);background-position:bottom right;background-repeat:no-repeat}div.vectorTabs li.selected a,div.vectorTabs li.selected a:visited{color:#333;text-decoration:none}div.vectorTabs li.new a,div.vectorTabs li.new a:visited{color:#a55858}div.vectorMenu{direction:ltr;float:left;background-image:url(images/arrow-down-icon.png);background-position:100% 60%;background-repeat:no-repeat;cursor:pointer}div.vectorMenuFocus{background-image:url(images/arrow-down-focus-icon.png);background-position:100% 60%}body.rtl div.vectorMenu{direction:rtl}div#mw-head div.vectorMenu h5{float:left;background-image:url(images/tab-break.png);background-repeat:no-repeat}div#mw-head div.vectorMenu h5{background-position:bottom left;margin-left:-1px}div#mw-head div.vectorMenu>h5{background-image:none}div#mw-head div.vectorMenu h4{display:inline-block;float:left;font-size:.8em;padding-left:.5em;padding-top:1.375em;font-weight:normal;border:none}div.vectorMenu h5 a{display:inline-block;width:24px;height:2.5em;text-decoration:none;background-image:url(images/tab-break.png);background-repeat:no-repeat}div.vectorMenu h5 a{background-position:bottom right}div.vectorMenu h5>a{display:block}div.vectorMenu div.menu{position:relative;display:none;clear:both;text-align:left}body.rtl div.vectorMenu div.menu{margin-left:24px}body.rtl div.vectorMenu>div.menu{margin-left:auto}body.rtl div.vectorMenu>div.menu,x:-moz-any-link{margin-left:23px}div.vectorMenu:hover div.menu,div.vectorMenu div.menuForceShow{display:block}div.vectorMenu ul{position:absolute;background-color:white;border:solid 1px silver;border-top-width:0;list-style:none;list-style-image:none;list-style-type:none;padding:0;margin:0;margin-left:-1px;text-align:left}div.vectorMenu ul,x:-moz-any-link{min-width:5em}div.vectorMenu ul,x:-moz-any-link,x:default{min-width:0}div.vectorMenu li{padding:0;margin:0;text-align:left;line-height:1em}div.vectorMenu li a{display:inline-block;padding:.5em;white-space:nowrap;color:#0645ad;cursor:pointer;font-size:.8em}div.vectorMenu li>a{display:block}div.vectorMenu li.selected a,div.vectorMenu li.selected a:visited{color:#333;text-decoration:none}#p-search h5{display:none}#p-search{float:left}#p-search{margin-right:.5em;margin-left:.5em}#p-search form,#p-search input{margin:0;margin-top:.4em}div#simpleSearch{display:block;width:14em;height:1.4em;margin-top:.65em;position:relative;min-height:1px;border:solid 1px #AAA;color:black;background-color:white;background-image:url(images/search-fade.png);background-position:top left;background-repeat:repeat-x}div#simpleSearch label{font-size:13px;top:.25em;direction:ltr}div#simpleSearch input{color:black;direction:ltr}div#simpleSearch input:focus{outline:none}div#simpleSearch input.placeholder{color:#999}div#simpleSearch input::-webkit-input-placeholder{color:#999}div#simpleSearch input#searchInput{position:absolute;top:0;left:0;width:90%;margin:0;padding:0;padding-left:.2em;padding-top:.2em;padding-bottom:.2em;outline:none;border:none;font-size:13px;background-color:transparent;direction:ltr}div#simpleSearch button#searchButton{position:absolute;width:10%;right:0;top:0;padding:0;padding-top:.3em;padding-bottom:.2em;padding-right:.4em;margin:0;border:none;cursor:pointer;background-color:transparent;background-image:none}div#simpleSearch button#searchButton img{border:none;margin:0;margin-top:-3px;padding:0}div#simpleSearch button#searchButton>img{margin:0}div#mw-panel{position:absolute;top:160px;padding-top:1em;width:10em;left:0}div#mw-panel div.portal{padding-bottom:1.5em;direction:ltr}div#mw-panel div.portal h5{font-weight:normal;color:#444;padding:.25em;padding-top:0;padding-left:1.75em;cursor:default;border:none;font-size:.75em}div#mw-panel div.portal div.body{margin:0;padding-top:.5em;margin-left:1.25em;background-image:url(images/portal-break.png);background-repeat:no-repeat;background-position:top left}div#mw-panel div.portal div.body ul{list-style:none;list-style-image:none;list-style-type:none;padding:0;margin:0}div#mw-panel div.portal div.body ul li{line-height:1.125em;padding:0;padding-bottom:.5em;margin:0;overflow:hidden;font-size:.75em}div#mw-panel div.portal div.body ul li a{color:#0645ad}div#mw-panel div.portal div.body ul li a:visited{color:#0b0080}div#footer{margin-left:10em;margin-top:0;padding:.75em;background-image:url(images/border.png);background-position:top left;background-repeat:repeat-x;direction:ltr}div#footer ul{list-style:none;list-style-image:none;list-style-type:none;margin:0;padding:0}div#footer ul li{margin:0;padding:0;padding-top:.5em;padding-bottom:.5em;color:#333;font-size:.7em}div#footer #footer-icons{float:right}body.ltr div#footer #footer-places{float:left}div#footer #footer-info li{line-height:1.4em}div#footer #footer-icons li{float:left;margin-left:.5em;line-height:2em;text-align:right}div#footer #footer-places li{float:left;margin-right:1em;line-height:2em}#p-logo{position:absolute;top:-160px;left:0;width:10em;height:160px}#p-logo a{display:block;width:10em;height:160px;background-repeat:no-repeat;background-position:center center;text-decoration:none}#preftoc{width:100%;float:left;clear:both;margin:0!important;padding:0!important;background-image:url(images/preferences-break.png);background-position:bottom left;background-repeat:no-repeat}#preftoc li{float:left;margin:0;padding:0;padding-right:1px;height:2.25em;white-space:nowrap;list-style-type:none;list-style-image:none;background-image:url(images/preferences-break.png);background-position:bottom right;background-repeat:no-repeat}#preftoc li:first-child{margin-left:1px}#preftoc a,#preftoc a:active{display:inline-block;position:relative;color:#0645ad;padding:.5em;text-decoration:none;background-image:none;font-size:.9em}#preftoc a:hover,#preftoc a:focus{text-decoration:underline}#preftoc li.selected a{background-image:url(images/preferences-fade.png);background-position:bottom;background-repeat:repeat-x;color:#333;text-decoration:none}#preferences{float:left;width:100%;margin:0;margin-top:-2px;clear:both;border:solid 1px #ccc;background-color:#f9f9f9;background-image:url(images/preferences-base.png)}#preferences fieldset{border:none;border-top:solid 1px #ccc}#preferences fieldset.prefsection{border:none;padding:0;margin:1em}#preferences legend{color:#666}#preferences fieldset.prefsection legend.mainLegend{display:none}#preferences td{padding-left:.5em;padding-right:.5em}#preferences td.htmlform-tip{font-size:x-small;padding:.2em 2em;color:#666}#preferences div.mw-prefs-buttons{padding:1em}#preferences div.mw-prefs-buttons input{margin-right:.25em}div#content{line-height:1.5em}#bodyContent{font-size:.8em}.editsection{float:right}ul{list-style-image:url(images/bullet-icon.png)}pre{line-height:1.3em}#siteNotice{font-size:.8em}#firstHeading{padding-top:0;margin-top:0;padding-top:0;font-size:1.6em}div#content a.external,div#content a.external[href ^="gopher://"]{background:url(images/external-link-ltr-icon.png) center right no-repeat;padding-right:13px}div#content a.external[href ^="https://"],.link-https{background:url(images/lock-icon.png) center right no-repeat;padding-right:13px}div#content a.external[href ^="mailto:"],.link-mailto{background:url(images/mail-icon.png) center right no-repeat;padding-right:13px}div#content a.external[href ^="news:"]{background:url(images/news-icon.png) center right no-repeat;padding-right:13px}div#content a.external[href ^="ftp://"],.link-ftp{background:url(images/file-icon.png) center right no-repeat;padding-right:13px}div#content a.external[href ^="irc://"],div#content a.external[href ^="ircs://"],.link-irc{background:url(images/talk-icon.png) center right no-repeat;padding-right:13px}div#content a.external[href $=".ogg"],div#content a.external[href $=".OGG"],div#content a.external[href $=".mid"],div#content a.external[href $=".MID"],div#content a.external[href $=".midi"],div#content a.external[href $=".MIDI"],div#content a.external[href $=".mp3"],div#content a.external[href $=".MP3"],div#content a.external[href $=".wav"],div#content a.external[href $=".WAV"],div#content a.external[href $=".wma"],div#content a.external[href $=".WMA"],.link-audio{background:url(images/audio-icon.png) center right no-repeat;padding-right:13px}div#content a.external[href $=".ogm"],div#content a.external[href $=".OGM"],div#content a.external[href $=".avi"],div#content a.external[href $=".AVI"],div#content a.external[href $=".mpeg"],div#content a.external[href $=".MPEG"],div#content a.external[href $=".mpg"],div#content a.external[href $=".MPG"],.link-video{background:url(images/video-icon.png) center right no-repeat;padding-right:13px}div#content a.external[href $=".pdf"],div#content a.external[href $=".PDF"],div#content a.external[href *=".pdf#"],div#content a.external[href *=".PDF#"],div#content a.external[href *=".pdf?"],div#content a.external[href *=".PDF?"],.link-document{background:url(images/document-icon.png) center right no-repeat;padding-right:13px}#pt-userpage,#pt-anonuserpage,#pt-login{background:url(images/user-icon.png) left top no-repeat;padding-left:15px!important;text-transform:none}.redirectText{font-size:140%}.redirectMsg img{vertical-align:text-bottom}#bodyContent{position:relative;width:100%}#mw-js-message{font-size:.8em}div#bodyContent{line-height:1.5em}#ca-unwatch.icon a,#ca-watch.icon a{margin:0;padding:0;outline:none;display:block;width:26px;padding-top:3.1em;margin-top:0;margin-top:-0.8em!ie;height:0;overflow:hidden;background-image:url(images/watch-icons.png)}#ca-unwatch.icon a{background-position:-43px 60%}#ca-watch.icon a{background-position:5px 60%}#ca-unwatch.icon a:hover,#ca-unwatch.icon a:focus{background-position:-67px 60%}#ca-watch.icon a:hover,#ca-watch.icon a:focus{background-position:-19px 60%}#ca-unwatch.icon a.loading,#ca-watch.icon a.loading{background-image:url(images/watch-icon-loading.gif);background-position:5px 60%}#ca-unwatch.icon a span,#ca-watch.icon a span{display:none}div.vectorTabs ul{background-image:url(images/tab-break.png);background-position:right bottom;background-repeat:no-repeat}.tipsy{font-size:.8em}.mw-content-ltr{direction:ltr}.mw-content-rtl{direction:rtl}.sitedir-ltr textarea,.sitedir-ltr input{direction:ltr}.sitedir-rtl textarea,.sitedir-rtl input{direction:rtl}input[type="submit"],input[type="button"],input[type="reset"],input[type="file"]{direction:ltr}textarea[dir="ltr"],input[dir="ltr"]{direction:ltr}textarea[dir="rtl"],input[dir="rtl"]{direction:rtl}abbr,acronym,.explain{border-bottom:1px dotted;cursor:help}.mw-plusminus-pos{color:#006400}.mw-plusminus-neg{color:#8b0000}.mw-plusminus-null{color:#aaa}.allpagesredirect,.redirect-in-category,.watchlistredir{font-style:italic}span.comment{font-style:italic}span.changedby{font-size:95%}.texvc{direction:ltr;unicode-bidi:embed}img.tex{vertical-align:middle}span.texhtml{font-family:serif}#wikiPreview.ontop{margin-bottom:1em}#editform,#toolbar,#wpTextbox1{clear:both}#toolbar img{cursor:pointer}div#mw-js-message{margin:1em 5%;padding:.5em 2.5%;border:solid 1px #ddd;background-color:#fcfcfc}.editsection{float:right;margin-left:5px}.mw-content-ltr .editsection,.mw-content-rtl .mw-content-ltr .editsection{float:right}.mw-content-rtl .editsection,.mw-content-ltr .mw-content-rtl .editsection{float:left}div.mw-filepage-resolutioninfo{font-size:smaller}h2#filehistory{clear:both}table.filehistory th,table.filehistory td{vertical-align:top}table.filehistory th{text-align:left}table.filehistory td.mw-imagepage-filesize,table.filehistory th.mw-imagepage-filesize{white-space:nowrap}table.filehistory td.filehistory-selected{font-weight:bold}.filehistory a img,#file img:hover{background:white url(images/Checker-16x16.png) repeat}li span.deleted,span.history-deleted{text-decoration:line-through;color:#888;font-style:italic}.not-patrolled{background-color:#ffa}.unpatrolled{font-weight:bold;color:red}div.patrollink{font-size:75%;text-align:right}td.mw-label{text-align:right}td.mw-input{text-align:left}td.mw-submit{text-align:left}td.mw-label{vertical-align:top}.prefsection td.mw-label{width:20%}.prefsection table{width:100%}td.mw-submit{white-space:nowrap}table.mw-htmlform-nolabel td.mw-label{width:1px}tr.mw-htmlform-vertical-label td.mw-label{text-align:left!important}.mw-htmlform-invalid-input td.mw-input input{border-color:red}.mw-htmlform-flatlist div.mw-htmlform-flatlist-item{display:inline;margin-right:1em;white-space:nowrap}input#wpSummary{width:80%}.thumbcaption{text-align:left}.magnify{float:right}#catlinks{text-align:left}.catlinks ul{display:inline;margin:0;padding:0;list-style:none;list-style-type:none;list-style-image:none;vertical-align:middle!ie}.catlinks li{display:inline-block;line-height:1.25em;border-left:1px solid #AAA;margin:.125em 0;padding:0 .5em;zoom:1;display:inline!ie}.catlinks li:first-child{padding-left:.25em;border-left:none}.mw-hidden-cats-hidden{display:none}.catlinks-allhidden{display:none}p.mw-ipb-conveniencelinks,p.mw-protect-editreasons,p.mw-filedelete-editreasons,p.mw-delete-editreasons,p.mw-revdel-editreasons{font-size:90%;text-align:right}.os-suggest{overflow:auto;overflow-x:hidden;position:absolute;top:0;left:0;width:0;background-color:white;border-style:solid;border-color:#AAA;border-width:1px;z-index:99;font-size:95%}table.os-suggest-results{font-size:95%;cursor:pointer;border:0;border-collapse:collapse;width:100%}.os-suggest-result,.os-suggest-result-hl{white-space:nowrap;background-color:white;color:black;padding:2px}.os-suggest-result-hl,.os-suggest-result-hl-webkit{background-color:#4C59A6;color:white}.os-suggest-toggle{position:relative;left:1ex;font-size:65%}.os-suggest-toggle-def{position:absolute;top:0;left:0;font-size:65%;visibility:hidden}.autocomment{color:gray}#pagehistory .history-user{margin-left:.4em;margin-right:.2em}#pagehistory span.minor{font-weight:bold}#pagehistory li{border:1px solid white}#pagehistory li.selected{background-color:#f9f9f9;border:1px dashed #aaa}.mw-history-revisiondelete-button,#mw-fileduplicatesearch-icon{float:right}.newpage,.minoredit,.botedit{font-weight:bold}#shared-image-dup,#shared-image-conflict{font-style:italic}div.mw-warning-with-logexcerpt{padding:3px;margin-bottom:3px;border:2px solid #2F6FAB;clear:both}div.mw-warning-with-logexcerpt ul li{font-size:90%}span.mw-revdelundel-link,strong.mw-revdelundel-link{font-size:90%}span.mw-revdelundel-hidden,input.mw-revdelundel-hidden{visibility:hidden}td.mw-revdel-checkbox,th.mw-revdel-checkbox{padding-right:10px;text-align:center}a.feedlink{background:url(images/feed-icon.png) center left no-repeat;padding-left:16px}.plainlinks a{background:none!important;padding:0!important}.rtl a.external.free,.rtl a.external.autonumber{direction:ltr;unicode-bidi:embed}table.wikitable{margin:1em 1em 1em 0;background-color:#f9f9f9;border:1px #aaa solid;border-collapse:collapse;color:black}table.wikitable>tr>th,table.wikitable>tr>td,table.wikitable>*>tr>th,table.wikitable>*>tr>td{border:1px #aaa solid;padding:.2em}table.wikitable>tr>th,table.wikitable>*>tr>th{background-color:#f2f2f2;text-align:center}table.wikitable>caption{font-weight:bold}table.collapsed tr.collapsable{display:none}.success{color:green;font-size:larger}.warning{color:#FFA500;font-size:larger}.error{color:red;font-size:larger}.errorbox,.warningbox,.successbox{font-size:larger;border:2px solid;padding:.5em 1em;float:left;margin-bottom:2em;color:#000}.errorbox{border-color:red;background-color:#fff2f2}.warningbox{border-color:#FF8C00;background-color:#FFFFC0}.successbox{border-color:green;background-color:#dfd}.errorbox h2,.warningbox h2,.successbox h2{font-size:1em;font-weight:bold;display:inline;margin:0 .5em 0 0;border:none}.mw-infobox{border:2px solid #ff7f00;margin:.5em;clear:left;overflow:hidden}.mw-infobox-left{margin:7px;float:left;width:35px}.mw-infobox-right{margin:.5em .5em .5em 49px}.previewnote{color:#c00;margin-bottom:1em}.previewnote p{text-indent:3em;margin:.8em 0}.visualClear{clear:both}#mw_trackbacks{border:solid 1px #bbf;background-color:#eef;padding:.2em}.mw-datatable{border-collapse:collapse}.mw-datatable,.mw-datatable td,.mw-datatable th{border:1px solid #aaa;padding:0 .15em 0 .15em}.mw-datatable th{background-color:#ddf}.mw-datatable td{background-color:#fff}.mw-datatable tr:hover td{background-color:#eef}.TablePager{min-width:80%}.TablePager_nav{margin:0 auto}.TablePager_nav td{padding:3px;text-align:center}.TablePager_nav a{text-decoration:none}.imagelist td,.imagelist th{white-space:nowrap}.imagelist .TablePager_col_links{background-color:#eef}.imagelist .TablePager_col_img_description{white-space:normal}.imagelist th.TablePager_sort{background-color:#ccf}ul#filetoc{text-align:center;border:1px solid #aaa;background-color:#f9f9f9;padding:5px;font-size:95%;margin-bottom:.5em;margin-left:0;margin-right:0}#filetoc li{display:inline;list-style-type:none;padding-right:2em}table.mw_metadata{font-size:.8em;margin-left:.5em;margin-bottom:.5em;width:400px}table.mw_metadata caption{font-weight:bold}table.mw_metadata th{font-weight:normal}table.mw_metadata td{padding:.1em}table.mw_metadata{border:none;border-collapse:collapse}table.mw_metadata td,table.mw_metadata th{text-align:center;border:1px solid #aaa;padding-left:5px;padding-right:5px}table.mw_metadata th{background-color:#f9f9f9}table.mw_metadata td{background-color:#fcfcfc}table.mw_metadata ul.metadata-langlist{list-style-type:none;list-style-image:none;padding-right:5px;padding-left:5px;margin:0}.mw-content-ltr ul,.mw-content-rtl .mw-content-ltr ul{margin:.3em 0 0 1.6em;padding:0}.mw-content-rtl ul,.mw-content-ltr .mw-content-rtl ul{margin:.3em 1.6em 0 0;padding:0}.mw-content-ltr ol,.mw-content-rtl .mw-content-ltr ol{margin:.3em 0 0 3.2em;padding:0}.mw-content-rtl ol,.mw-content-ltr .mw-content-rtl ol{margin:.3em 3.2em 0 0;padding:0}.mw-content-ltr dd,.mw-content-rtl .mw-content-ltr dd{margin-left:1.6em;margin-right:0}.mw-content-rtl dd,.mw-content-ltr .mw-content-rtl dd{margin-right:1.6em;margin-left:0}li.gallerybox{vertical-align:top;border:solid 2px white;display:-moz-inline-box;display:inline-block}ul.gallery,li.gallerybox{zoom:1;*display:inline}ul.gallery{margin:2px;padding:2px;display:block}li.gallerycaption{font-weight:bold;text-align:center;display:block;word-wrap:break-word}li.gallerybox div.thumb{text-align:center;border:1px solid #ccc;background-color:#f9f9f9;margin:2px}li.gallerybox div.thumb img{display:block;margin:0 auto}div.gallerytext{overflow:hidden;font-size:94%;padding:2px 4px;word-wrap:break-word}.mw-ajax-loader{background-image:url(images/ajax-loader.gif);background-position:center center;background-repeat:no-repeat;padding:16px;position:relative;top:-16px}.mw-small-spinner{padding:10px!important;margin-right:.6em;background-image:url(images/spinner.gif);background-position:center center;background-repeat:no-repeat}h1:lang(as),h1:lang(bh),h1:lang(bho),h1:lang(bn),h1:lang(gu),h1:lang(hi),h1:lang(kn),h1:lang(ml),h1:lang(mr),h1:lang(or),h1:lang(pa),h1:lang(sa),h1:lang(ta),h1:lang(te){line-height:1.5em!important}h2:lang(as),h3:lang(as),h4:lang(as),h5:lang(as),h6:lang(as),h2:lang(bho),h3:lang(bho),h4:lang(bho),h5:lang(bho),h6:lang(bho),h2:lang(bh),h3:lang(bh),h4:lang(bh),h5:lang(bh),h6:lang(bh),h2:lang(bn),h3:lang(bn),h4:lang(bn),h5:lang(bn),h6:lang(bn),h2:lang(gu),h3:lang(gu),h4:lang(gu),h5:lang(gu),h6:lang(gu),h2:lang(hi),h3:lang(hi),h4:lang(hi),h5:lang(hi),h6:lang(hi),h2:lang(kn),h3:lang(kn),h4:lang(kn),h5:lang(kn),h6:lang(kn),h2:lang(ml),h3:lang(ml),h4:lang(ml),h5:lang(ml),h6:lang(ml),h2:lang(mr),h3:lang(mr),h4:lang(mr),h5:lang(mr),h6:lang(mr),h2:lang(or),h3:lang(or),h4:lang(or),h5:lang(or),h6:lang(or),h2:lang(pa),h3:lang(pa),h4:lang(pa),h5:lang(pa),h6:lang(pa),h2:lang(sa),h3:lang(sa),h4:lang(sa),h5:lang(sa),h6:lang(sa),h2:lang(ta),h3:lang(ta),h4:lang(ta),h5:lang(ta),h6:lang(ta),h2:lang(te),h3:lang(te),h4:lang(te),h5:lang(te),h6:lang(te){line-height:1.2em}ol:lang(bcc) li,ol:lang(bqi) li,ol:lang(fa) li,ol:lang(glk) li,ol:lang(kk-arab) li,ol:lang(mzn) li{list-style-type:-moz-persian;list-style-type:persian}ol:lang(ckb) li{list-style-type:-moz-arabic-indic;list-style-type:arabic-indic}ol:lang(hi) li,ol:lang(mr) li{list-style-type:-moz-devanagari;list-style-type:devanagari}ol:lang(as) li,ol:lang(bn) li{list-style-type:-moz-bengali;list-style-type:bengali}ol:lang(or) li{list-style-type:-moz-oriya;list-style-type:oriya}#toc ul,.toc ul{margin:.3em 0}.mw-content-ltr .toc ul,.mw-content-ltr #toc ul,.mw-content-rtl .mw-content-ltr .toc ul,.mw-content-rtl .mw-content-ltr #toc ul{text-align:left}.mw-content-rtl .toc ul,.mw-content-rtl #toc ul,.mw-content-ltr .mw-content-rtl .toc ul,.mw-content-ltr .mw-content-rtl #toc ul{text-align:right}.mw-content-ltr .toc ul ul,.mw-content-ltr #toc ul ul,.mw-content-rtl .mw-content-ltr .toc ul ul,.mw-content-rtl .mw-content-ltr #toc ul ul{margin:0 0 0 2em}.mw-content-rtl .toc ul ul,.mw-content-rtl #toc ul ul,.mw-content-ltr .mw-content-rtl .toc ul ul,.mw-content-ltr .mw-content-rtl #toc ul ul{margin:0 2em 0 0}#toc #toctitle,.toc #toctitle,#toc .toctitle,.toc .toctitle{direction:ltr}.mw-help-field-hint{display:none;margin-left:2px;margin-bottom:-8px;padding:0 0 0 15px;background-image:url('images/help-question.gif');background-position:left center;background-repeat:no-repeat;cursor:pointer;font-size:.8em;text-decoration:underline;color:#0645ad}.mw-help-field-hint:hover{background-image:url('images/help-question-hover.gif')}.mw-help-field-data{display:block;background-color:#d6f3ff;padding:5px 8px 4px 8px;border:1px solid #5dc9f4;margin-left:20px}.tipsy{padding:5px 5px 10px;font-size:12px;position:absolute;z-index:100000;overflow:visible}.tipsy-inner{padding:5px 8px 4px 8px;background-color:#d6f3ff;color:black;border:1px solid #5dc9f4;max-width:300px;text-align:left}.tipsy-arrow{position:absolute;background:url(images/tipsy-arrow.gif) no-repeat top left;width:13px;height:13px}.tipsy-se .tipsy-arrow{bottom:-2px;right:10px;background-position:0 100%}#mw-clearyourcache,#mw-sitecsspreview,#mw-sitejspreview,#mw-usercsspreview,#mw-userjspreview{direction:ltr;unicode-bidi:embed}.diff-currentversion-title,.diff{direction:ltr;unicode-bidi:embed}.diff-contentalign-right td{direction:rtl;unicode-bidi:embed}.diff-contentalign-left td{direction:ltr;unicode-bidi:embed}.diff-otitle,.diff-ntitle,.diff-lineno{direction:ltr!important;unicode-bidi:embed}#mw-revision-info,#mw-revision-info-current,#mw-revision-nav{direction:ltr;display:inline}div.tright,div.floatright,table.floatright{clear:right;float:right}div.tleft,div.floatleft,table.floatleft{float:left;clear:left}div.floatright,table.floatright,div.floatleft,table.floatleft{position:relative}#mw-credits a{unicode-bidi:embed}.mw-jump,#jump-to-nav{overflow:hidden;height:0;zoom:1}.printfooter{display:none}.xdebug-error{position:absolute;z-index:99}.editsection,.toctoggle{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}a.stub,a.new{color:#ba0000;text-decoration:none}#toc{border:1px solid #aaa;background-color:#f9f9f9;padding:5px}div.floatright{float:right;clear:right;position:relative;margin:.5em 0 .8em 1.4em}div.floatright p{font-style:italic}div.floatleft{float:left;clear:left;position:relative;margin:.5em 1.4em .8em 0}div.floatleft p{font-style:italic}div.center{text-align:center}div.thumb{border:none;width:auto;margin-top:.5em;margin-bottom:.8em;background-color:transparent}div.thumbinner{border:1px solid #ccc;padding:3px!important;background-color:White;font-size:94%;text-align:center;overflow:hidden}html .thumbimage{border:1px solid #ccc}html .thumbcaption{border:none;text-align:left;line-height:1.4em;padding:3px!important;font-size:94%}div.magnify{display:none}div.tright{float:right;clear:right;margin:.5em 0 .8em 1.4em}div.tleft{float:left;clear:left;margin:.5em 1.4em .8em 0}img.thumbborder{border:1px solid #ddd}table.rimage{float:right;width:1pt;position:relative;margin-left:1em;margin-bottom:1em;text-align:center}body{background:white;color:black;margin:0;padding:0}.noprint,div#jump-to-nav,.mw-jump,div.top,div#column-one,#colophon,.editsection,.toctoggle,.tochidden,div#f-poweredbyico,div#f-copyrightico,li#viewcount,li#about,li#disclaimer,li#mobileview,li#privacy,#footer-places,.mw-hidden-catlinks,tr.mw-metadata-show-hide-extended,span.mw-filepage-other-resolutions,#filetoc{display:none}ul{list-style-type:square}#content{background:none;border:none!important;padding:0!important;margin:0!important;direction:ltr}#footer{background:white;color:black;margin-top:1em;border-top:1px solid #AAA;direction:ltr}h1,h2,h3,h4,h5,h6{font-weight:bold}p{margin:1em 0;line-height:1.2em}pre{border:1pt dashed black;white-space:pre;font-size:8pt;overflow:auto;padding:1em 0;background:white;color:black}table.listing,table.listing td{border:1pt solid black;border-collapse:collapse}a{color:black!important;background:none!important;padding:0!important}a:link,a:visited{color:#520;background:transparent;text-decoration:underline}#content a.external.text:after,#content a.external.autonumber:after{content:"(" attr(href) ") "}#globalWrapper{width:100%!important;min-width:0!important}#content{background:white;color:black}#column-content{margin:0!important}#column-content #content{padding:1em;margin:0!important}a,a.external,a.new,a.stub{color:black!important;text-decoration:none!important}a,a.external,a.new,a.stub{color:inherit!important;text-decoration:inherit!important}img{border:none;vertical-align:middle}span.texhtml{font-family:serif}#siteNotice{display:none}li.gallerybox{vertical-align:top;border:solid 2px white;display:-moz-inline-box;display:inline-block}ul.gallery,li.gallerybox{zoom:1;*display:inline}ul.gallery{margin:2px;padding:2px;display:block}li.gallerycaption{font-weight:bold;text-align:center;display:block;word-wrap:break-word}li.gallerybox div.thumb{text-align:center;border:1px solid #ccc;margin:2px}div.gallerytext{overflow:hidden;font-size:94%;padding:2px 4px;word-wrap:break-word}table.diff{background:white}td.diff-otitle{background:#fff}td.diff-ntitle{background:#fff}td.diff-addedline{background:#cfc;font-size:smaller;border:solid 2px black}td.diff-deletedline{background:#ffa;font-size:smaller;border:dotted 2px black}td.diff-context{background:#eee;font-size:smaller}.diffchange{color:silver;font-weight:bold;text-decoration:underline}table.wikitable,table.mw_metadata{margin:1em 1em 1em 0;border:1px #aaa solid;background:white;border-collapse:collapse}table.wikitable>tr>th,table.wikitable>tr>td,table.wikitable>*>tr>th,table.wikitable>*>tr>td,.mw_metadata th,.mw_metadata td{border:1px #aaa solid;padding:.2em}table.wikitable>tr>th,table.wikitable>*>tr>th,.mw_metadata th{text-align:center;background:white;font-weight:bold}table.wikitable>caption,.mw_metadata caption{font-weight:bold}a.sortheader{margin:0 .3em}.wikitable,.thumb,img{page-break-inside:avoid}h2,h3,h4,h5,h6,h7{page-break-after:avoid}p{widows:3;orphans:3}.catlinks ul{display:inline;margin:0;padding:0;list-style:none;list-style-type:none;list-style-image:none;vertical-align:middle!ie}.catlinks li{display:inline-block;line-height:1.15em;padding:0 .4em;border-left:1px solid #AAA;margin:.1em 0;zoom:1;display:inline!ie}.catlinks li:first-child{padding-left:.2em;border-left:none}dfn{font-style:inherit}sup,sub{line-height:1em}#interwiki-completelist{font-weight:bold}body.page-Main_Page #ca-delete{display:none!important}body.page-Main_Page #mp-topbanner{clear:both}#toolbar{height:22px;margin-bottom:6px}body.action-info :target{background:#DEF}ol.references,div.reflist,div.refbegin{font-size:90%;margin-bottom:.5em}div.refbegin-100{font-size:100%}div.reflist ol.references{font-size:100%;list-style-type:inherit}div.columns{margin-top:.3em}div.columns dl,div.columns ol,div.columns ul{margin-top:0}div.columns li,div.columns dd dd{-webkit-column-break-inside:avoid;page-break-inside:avoid;break-inside:avoid-column}ol.references li:target,sup.reference:target,span.citation:target{background-color:#DEF}sup.reference{font-weight:normal;font-style:normal}span.brokenref{display:none}.citation{word-wrap:break-word}@media screen,handheld{.citation *.printonly{display:none}}.flowlist ul{overflow-x:hidden;margin-left:0;padding-left:1.6em}.flowlist ol{overflow-x:hidden;margin-left:0;padding-left:3.2em}.flowlist dl{overflow-x:hidden}.hlist dl,.hlist ol,.hlist ul{margin:0;padding:0}.hlist dd,.hlist dt,.hlist li{margin:0;display:inline}.hlist dl dl,.hlist dl ol,.hlist dl ul,.hlist ol dl,.hlist ol ol,.hlist ol ul,.hlist ul dl,.hlist ul ol,.hlist ul ul{display:inline}.hlist dt:after{content:":"}.hlist dd:after,.hlist li:after{content:" · ";font-weight:bold}.hlist dd:last-child:after,.hlist dt:last-child:after,.hlist li:last-child:after{content:none}.hlist dd.hlist-last-child:after,.hlist dt.hlist-last-child:after,.hlist li.hlist-last-child:after{content:none}.hlist dd dd:first-child:before,.hlist dd dt:first-child:before,.hlist dd li:first-child:before,.hlist dt dd:first-child:before,.hlist dt dt:first-child:before,.hlist dt li:first-child:before,.hlist li dd:first-child:before,.hlist li dt:first-child:before,.hlist li li:first-child:before{content:"(";font-weight:normal}.hlist dd dd:last-child:after,.hlist dd dt:last-child:after,.hlist dd li:last-child:after,.hlist dt dd:last-child:after,.hlist dt dt:last-child:after,.hlist dt li:last-child:after,.hlist li dd:last-child:after,.hlist li dt:last-child:after,.hlist li li:last-child:after{content:") ";font-weight:normal}.hlist dd dd.hlist-last-child:after,.hlist dd dt.hlist-last-child:after,.hlist dd li.hlist-last-child:after,.hlist dt dd.hlist-last-child:after,.hlist dt dt.hlist-last-child:after,.hlist dt li.hlist-last-child:after,.hlist li dd.hlist-last-child:after,.hlist li dt.hlist-last-child:after,.hlist li li.hlist-last-child:after{content:") ";font-weight:normal}.hlist ol{counter-reset:listitem}.hlist ol>li{counter-increment:listitem}.hlist ol>li:before{content:" " counter(listitem) " "}.hlist dd ol>li:first-child:before,.hlist dt ol>li:first-child:before,.hlist li ol>li:first-child:before{content:"(" counter(listitem) " "}.plainlist ul{line-height:inherit;list-style:none none;margin:0}.plainlist ul li{margin-bottom:0}.navbox{border:1px solid #aaa;width:100%;margin:auto;clear:both;font-size:88%;text-align:center;padding:1px}.navbox-inner,.navbox-subgroup{width:100%}.navbox-group,.navbox-title,.navbox-abovebelow{padding:.25em 1em;line-height:1.5em;text-align:center}th.navbox-group{white-space:nowrap;text-align:right}.navbox,.navbox-subgroup{background:#fdfdfd}.navbox-list{line-height:1.8em;border-color:#fdfdfd}.navbox th,.navbox-title{background:#ccf}.navbox-abovebelow,th.navbox-group,.navbox-subgroup .navbox-title{background:#ddf}.navbox-subgroup .navbox-group,.navbox-subgroup .navbox-abovebelow{background:#e6e6ff}.navbox-even{background:#f7f7f7}.navbox-odd{background:transparent}table.navbox+table.navbox{margin-top:-1px}.navbox .hlist td dl,.navbox .hlist td ol,.navbox .hlist td ul,.navbox td.hlist dl,.navbox td.hlist ol,.navbox td.hlist ul{padding:.125em 0}ol+table.navbox,ul+table.navbox{margin-top:.5em}.navbar{display:inline;font-size:88%;font-weight:normal}.navbar ul{display:inline;white-space:nowrap}.navbar li{word-spacing:-0.125em}.navbar.mini li span{font-variant:small-caps}.infobox .navbar{font-size:100%}.navbox .navbar{display:block;font-size:100%}.navbox-title .navbar{float:left;text-align:left;margin-right:.5em;width:6em}.collapseButton{float:right;font-weight:normal;margin-left:.5em;text-align:right;width:auto}.navbox .collapseButton{width:6em}.mw-collapsible-toggle{font-weight:normal;text-align:right}.navbox .mw-collapsible-toggle{width:6em}.infobox{border:1px solid #aaa;background-color:#f9f9f9;color:black;margin:.5em 0 .5em 1em;padding:.2em;float:right;clear:right;text-align:left;font-size:88%;line-height:1.5em}.infobox caption{font-size:125%;font-weight:bold}.infobox td,.infobox th{vertical-align:top}.infobox.bordered{border-collapse:collapse}.infobox.bordered td,.infobox.bordered th{border:1px solid #aaa}.infobox.bordered .borderless td,.infobox.bordered .borderless th{border:0}.infobox.sisterproject{width:20em;font-size:90%}.infobox.standard-talk{border:1px solid #c0c090;background-color:#f8eaba}.infobox.standard-talk.bordered td,.infobox.standard-talk.bordered th{border:1px solid #c0c090}.infobox.bordered .mergedtoprow td,.infobox.bordered .mergedtoprow th{border:0;border-top:1px solid #aaa;border-right:1px solid #aaa}.infobox.bordered .mergedrow td,.infobox.bordered .mergedrow th{border:0;border-right:1px solid #aaa}.infobox.geography{border-collapse:collapse;line-height:1.2em;font-size:90%}.infobox.geography td,.infobox.geography th{border-top:1px solid #aaa;padding:.4em .6em .4em .6em}.infobox.geography .mergedtoprow td,.infobox.geography .mergedtoprow th{border-top:1px solid #aaa;padding:.4em .6em .2em .6em}.infobox.geography .mergedrow td,.infobox.geography .mergedrow th{border:0;padding:0 .6em .2em .6em}.infobox.geography .mergedbottomrow td,.infobox.geography .mergedbottomrow th{border-top:0;border-bottom:1px solid #aaa;padding:0 .6em .4em .6em}.infobox.geography .maptable td,.infobox.geography .maptable th{border:0;padding:0}.wikitable.plainrowheaders th[scope=row]{font-weight:normal;text-align:left}.wikitable td ul,.wikitable td ol,.wikitable td dl{text-align:left}.wikitable.hlist td ul,.wikitable.hlist td ol,.wikitable.hlist td dl{text-align:inherit}div.listenlist{background:url("//upload.wikimedia.org/wikipedia/commons/4/47/Sound-icon.svg") no-repeat scroll 0 0 transparent;background-size:30px;padding-left:40px}table.mw-hiero-table td{vertical-align:middle}div.medialist{min-height:50px;margin:1em;background-position:top left;background-repeat:no-repeat}div.medialist ul{list-style-type:none;list-style-image:none;margin:0}div.medialist ul li{padding-bottom:.5em}div.medialist ul li li{font-size:91%;padding-bottom:0}div#content a[href$=".pdf"].external,div#content a[href*=".pdf?"].external,div#content a[href*=".pdf#"].external,div#content a[href$=".PDF"].external,div#content a[href*=".PDF?"].external,div#content a[href*=".PDF#"].external,div#mw_content a[href$=".pdf"].external,div#mw_content a[href*=".pdf?"].external,div#mw_content a[href*=".pdf#"].external,div#mw_content a[href$=".PDF"].external,div#mw_content a[href*=".PDF?"].external,div#mw_content a[href*=".PDF#"].external{background:url("//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif") no-repeat right;padding-right:18px}div#content span.PDFlink a,div#mw_content span.PDFlink a{background:url("//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif") no-repeat right;padding-right:18px}div.columns-2 div.column{float:left;width:50%;min-width:300px}div.columns-3 div.column{float:left;width:33.3%;min-width:200px}div.columns-4 div.column{float:left;width:25%;min-width:150px}div.columns-5 div.column{float:left;width:20%;min-width:120px}.messagebox{border:1px solid #aaa;background-color:#f9f9f9;width:80%;margin:0 auto 1em auto;padding:.2em}.messagebox.merge{border:1px solid #c0b8cc;background-color:#f0e5ff;text-align:center}.messagebox.cleanup{border:1px solid #9f9fff;background-color:#efefff;text-align:center}.messagebox.standard-talk{border:1px solid #c0c090;background-color:#f8eaba;margin:4px auto}.mbox-inside .standard-talk,.messagebox.nested-talk{border:1px solid #c0c090;background-color:#f8eaba;width:100%;margin:2px 0;padding:2px}.messagebox.small{width:238px;font-size:85%;float:right;clear:both;margin:0 0 1em 1em;line-height:1.25em}.messagebox.small-talk{width:238px;font-size:85%;float:right;clear:both;margin:0 0 1em 1em;line-height:1.25em;background:#F8EABA}th.mbox-text,td.mbox-text{border:none;padding:.25em .9em;width:100%}td.mbox-image{border:none;padding:2px 0 2px .9em;text-align:center}td.mbox-imageright{border:none;padding:2px .9em 2px 0;text-align:center}td.mbox-empty-cell{border:none;padding:0;width:1px}table.ambox{margin:0 10%;border:1px solid #aaa;border-left:10px solid #1e90ff;background:#fbfbfb}table.ambox+table.ambox{margin-top:-1px}.ambox th.mbox-text,.ambox td.mbox-text{padding:.25em .5em}.ambox td.mbox-image{padding:2px 0 2px .5em}.ambox td.mbox-imageright{padding:2px .5em 2px 0}table.ambox-notice{border-left:10px solid #1e90ff}table.ambox-speedy{border-left:10px solid #b22222;background:#fee}table.ambox-delete{border-left:10px solid #b22222}table.ambox-content{border-left:10px solid #f28500}table.ambox-style{border-left:10px solid #f4c430}table.ambox-move{border-left:10px solid #9932cc}table.ambox-protection{border-left:10px solid #bba}table.imbox{margin:4px 10%;border-collapse:collapse;border:3px solid #1e90ff;background:#fbfbfb}.imbox .mbox-text .imbox{margin:0 -0.5em;display:block}.mbox-inside .imbox{margin:4px}table.imbox-notice{border:3px solid #1e90ff}table.imbox-speedy{border:3px solid #b22222;background:#fee}table.imbox-delete{border:3px solid #b22222}table.imbox-content{border:3px solid #f28500}table.imbox-style{border:3px solid #f4c430}table.imbox-move{border:3px solid #9932cc}table.imbox-protection{border:3px solid #bba}table.imbox-license{border:3px solid #88a;background:#f7f8ff}table.imbox-featured{border:3px solid #cba135}table.cmbox{margin:3px 10%;border-collapse:collapse;border:1px solid #aaa;background:#DFE8FF}table.cmbox-notice{background:#D8E8FF}table.cmbox-speedy{margin-top:4px;margin-bottom:4px;border:4px solid #b22222;background:#FFDBDB}table.cmbox-delete{background:#FFDBDB}table.cmbox-content{background:#FFE7CE}table.cmbox-style{background:#FFF9DB}table.cmbox-move{background:#E4D8FF}table.cmbox-protection{background:#EFEFE1}table.ombox{margin:4px 10%;border-collapse:collapse;border:1px solid #aaa;background:#f9f9f9}table.ombox-notice{border:1px solid #aaa}table.ombox-speedy{border:2px solid #b22222;background:#fee}table.ombox-delete{border:2px solid #b22222}table.ombox-content{border:1px solid #f28500}table.ombox-style{border:1px solid #f4c430}table.ombox-move{border:1px solid #9932cc}table.ombox-protection{border:2px solid #bba}table.tmbox{margin:4px 10%;border-collapse:collapse;border:1px solid #c0c090;background:#f8eaba}.mediawiki .mbox-inside .tmbox{margin:2px 0;width:100%}.mbox-inside .tmbox.mbox-small{line-height:1.5em;font-size:100%}table.tmbox-speedy{border:2px solid #b22222;background:#fee}table.tmbox-delete{border:2px solid #b22222}table.tmbox-content{border:2px solid #f28500}table.tmbox-style{border:2px solid #f4c430}table.tmbox-move{border:2px solid #9932cc}table.tmbox-protection,table.tmbox-notice{border:1px solid #c0c090}table.dmbox{clear:both;margin:.9em 1em;border-top:1px solid #ccc;border-bottom:1px solid #ccc;background:transparent}table.fmbox{clear:both;margin:.2em 0;width:100%;border:1px solid #aaa;background:#f9f9f9}table.fmbox-system{background:#f9f9f9}table.fmbox-warning{border:1px solid #bb7070;background:#ffdbdb}table.fmbox-editnotice{background:transparent}div.mw-warning-with-logexcerpt,div.mw-lag-warn-high,div.mw-cascadeprotectedwarning,div#mw-protect-cascadeon{clear:both;margin:.2em 0;border:1px solid #bb7070;background:#ffdbdb;padding:.25em .9em}div.mw-lag-warn-normal,div.fmbox-system{clear:both;margin:.2em 0;border:1px solid #aaa;background:#f9f9f9;padding:.25em .9em}body.mediawiki table.mbox-small{clear:right;float:right;margin:4px 0 4px 1em;width:238px;font-size:88%;line-height:1.25em}body.mediawiki table.mbox-small-left{margin:4px 1em 4px 0;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.compact-ambox table .mbox-image,.compact-ambox table .mbox-imageright,.compact-ambox table .mbox-empty-cell{display:none}.compact-ambox table.ambox{border:none;border-collapse:collapse;background:transparent;margin:0 0 0 1.6em!important;padding:0!important;width:auto;display:block}body.mediawiki .compact-ambox table.mbox-small-left{font-size:100%;width:auto;margin:0}.compact-ambox table .mbox-text{padding:0!important;margin:0!important}.compact-ambox table .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:square;list-style-image:url(//bits.wikimedia.org/skins/common/images/bullet.gif)}.skin-vector .compact-ambox table .mbox-text-span{list-style-type:circle;list-style-image:url(//bits.wikimedia.org/skins/vector/images/bullet-icon.png)}.compact-ambox .hide-when-compact{display:none}div.noarticletext{border:none;background:transparent;padding:0}.visualhide{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}#wpSave{font-weight:bold}.hiddenStructure{display:inline!important;color:#f00;background-color:#0f0}.check-icon a.new{display:none;speak:none}.nounderlines a,.IPA a:link,.IPA a:visited{text-decoration:none!important}div.NavFrame{margin:0;padding:4px;border:1px solid #aaa;text-align:center;border-collapse:collapse;font-size:95%}div.NavFrame+div.NavFrame{border-top-style:none;border-top-style:hidden}div.NavPic{background-color:#fff;margin:0;padding:2px;float:left}div.NavFrame div.NavHead{height:1.6em;font-weight:bold;background-color:#ccf;position:relative}div.NavFrame p,div.NavFrame div.NavContent,div.NavFrame div.NavContent p{font-size:100%}div.NavEnd{margin:0;padding:0;line-height:1px;clear:both}a.NavToggle{position:absolute;top:0;right:3px;font-weight:normal;font-size:90%}.rellink,.dablink{font-style:italic;padding-left:1.6em;margin-bottom:.5em}.rellink i,.dablink i{font-style:normal}.listify td{display:list-item}.listify tr{display:block}.listify table{display:block}.geo-default,.geo-dms,.geo-dec{display:inline}.geo-nondefault,.geo-multi-punct{display:none}.longitude,.latitude{white-space:nowrap}.nonumtoc .tocnumber{display:none}.nonumtoc #toc ul,.nonumtoc .toc ul{line-height:1.5em;list-style:none none;margin:.3em 0 0;padding:0}.nonumtoc #toc ul ul,.nonumtoc .toc ul ul{margin:0 0 0 2em}.toclimit-2 .toclevel-1 ul,.toclimit-3 .toclevel-2 ul,.toclimit-4 .toclevel-3 ul,.toclimit-5 .toclevel-4 ul,.toclimit-6 .toclevel-5 ul,.toclimit-7 .toclevel-6 ul{display:none}blockquote.templatequote{margin-top:0}blockquote.templatequote div.templatequotecite{line-height:1em;text-align:left;padding-left:2em;margin-top:0}blockquote.templatequote div.templatequotecite cite{font-size:85%}div.user-block{padding:5px;margin-bottom:.5em;border:1px solid #A9A9A9;background-color:#FFEFD5}.nowrap,.nowraplinks a,.nowraplinks .selflink,sup.reference a{white-space:nowrap}.wrap,.wraplinks a{white-space:normal}.template-documentation{clear:both;margin:1em 0 0 0;border:1px solid #aaa;background-color:#ecfcf4;padding:1em}.imagemap-inline div{display:inline}#wpUploadDescription{height:13em}.thumbinner{min-width:100px}div.thumb .thumbimage{background-color:#fff}div#content .gallerybox div.thumb{background-color:#F9F9F9}.gallerybox .thumb img{background:#fff url(//bits.wikimedia.org/skins/common/images/Checker-16x16.png) repeat}.ns-0 .gallerybox .thumb img,.ns-2 .gallerybox .thumb img,.ns-100 .gallerybox .thumb img,.nochecker .gallerybox .thumb img{background:#fff}#mw-subcategories,#mw-pages,#mw-category-media,#filehistory,#wikiPreview,#wikiDiff{clear:both}body.rtl #mw-articlefeedbackv5,body.rtl #mw-articlefeedback{display:block;margin-bottom:1em;clear:right;float:right}.wpb .wpb-header{display:none}.wpbs-inner .wpb .wpb-header{display:block}.wpbs-inner .wpb .wpb-header{display:table-row}.wpbs-inner .wpb-outside{display:none}.mw-tag-markers{font-family:sans-serif;font-style:italic;font-size:90%}.sysop-show,.accountcreator-show,.templateeditor-show,.autoconfirmed-show{display:none}.ve-init-mw-viewPageTarget-toolbar-editNotices-notice .editnotice-redlink{display:none!important}ul.permissions-errors>li{list-style:none none}ul.permissions-errors{margin:0}body.page-Special_UserLogin .mw-label label,body.page-Special_UserLogin_signup .mw-label label{white-space:nowrap}.transborder{border:solid transparent}* html .transborder{border:solid #000001;filter:chroma(color=#000001)}.updatedmarker{background-color:transparent;color:#006400}li.mw-changeslist-line-watched .mw-title,table.mw-changeslist-line-watched .mw-title,table.mw-enhanced-watch .mw-enhanced-rctime{font-weight:normal}span.texhtml{font-family:"Times New Roman","Nimbus Roman No9 L",Times,serif;font-size:118%;white-space:nowrap}span.texhtml span.texhtml{font-size:100%}div.mw-geshi div,div.mw-geshi div pre,span.mw-geshi,pre.source-css,pre.source-javascript,pre.source-lua{font-family:monospace,Courier!important}table#mw-prefixindex-list-table,table#mw-prefixindex-nav-table{width:98%}.portal-column-left{float:left;width:50%}.portal-column-right{float:right;width:49%}.portal-column-left-wide{float:left;width:60%}.portal-column-right-narrow{float:right;width:39%}.portal-column-left-extra-wide{float:left;width:70%}.portal-column-right-extra-narrow{float:right;width:29%}@media only screen and (max-width:800px){.portal-column-left,.portal-column-right,.portal-column-left-wide,.portal-column-right-narrow,.portal-column-left-extra-wide,.portal-column-right-extra-narrow{float:inherit;width:inherit}}#bodyContent .letterhead{background-image:url('//upload.wikimedia.org/wikipedia/commons/e/e0/Tan-page-corner.png');background-repeat:no-repeat;padding:2em;background-color:#faf9f2}.treeview ul{padding:0;margin:0}.treeview li{padding:0;margin:0;list-style-type:none;list-style-image:none;zoom:1}.treeview li li{background:url("//upload.wikimedia.org/wikipedia/commons/f/f2/Treeview-grey-line.png") no-repeat 0 -2981px;padding-left:20px;text-indent:.3em}.treeview li li.lastline{background-position:0 -5971px}.treeview li.emptyline>ul{margin-left:-1px}.treeview li.emptyline>ul>li:first-child{background-position:0 9px}td .sortkey,th .sortkey{display:none;speak:none}.inputbox-hidecheckboxes form .inputbox-element{display:none!important}#editpage-specialchars{display:none}.k-player .k-attribution{visibility:hidden}@media(-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(min-resolution:1.5dppx),(min-resolution:144dpi){#p-logo a{background-image:url("//upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Wikipedia-logo-v2-en.svg/204px-Wikipedia-logo-v2-en.svg.png")!important;background-size:136px auto}}@media(-webkit-min-device-pixel-ratio:2),(min--moz-device-pixel-ratio:2),(min-resolution:2dppx),(min-resolution:192dpi){#p-logo a{background-image:url("//upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Wikipedia-logo-v2-en.svg/270px-Wikipedia-logo-v2-en.svg.png")!important;background-size:135px auto}}.ns-0 .ambox,.ns-0 .navbox,.ns-0 .vertical-navbox,.ns-0 .infobox.sisterproject,.ns-0 .dablink,.ns-0 .metadata,.editlink,.navbar,a.NavToggle,span.collapseButton,span.mw-collapsible-toggle,th .sortkey,td .sortkey{display:none!important}#content cite a.external.text:after,.nourlexpansion a.external.text:after,.nourlexpansion a.external.autonumber:after{display:none!important}table.collapsible tr,div.NavPic,div.NavContent{display:block!important}table.collapsible tr{display:table-row!important}#firstHeading{margin:0}#content a.external.text:after,#content a.external.autonumber:after{word-wrap:break-word}body.page-Main_Page #deleteconfirm,body.page-Main_Page #t-cite,body.page-Main_Page #footer-info-lastmod,body.action-view.page-Main_Page #siteSub,body.action-view.page-Main_Page #contentSub,body.action-view.page-Main_Page h1.firstHeading{display:none!important}body.page-Main_Page #mp-topbanner{margin-top:0!important}#coordinates{position:absolute;top:0;right:0;float:right;margin:0;padding:0;line-height:1.5em;text-align:right;text-indent:0;font-size:85%;text-transform:none;white-space:nowrap}div.topicon{position:absolute;top:-2em;margin-right:-10px;display:block!important}div.flaggedrevs_short{position:absolute;top:-3em;right:80px;z-index:1;margin-left:0;margin-right:-10px}body.rtl #protected-icon{left:55px}body.rtl #spoken-icon,body.rtl #commons-icon{left:30px}body.rtl #featured-star{left:10px}div.vectorMenu div{z-index:2}#siteSub{display:inline;font-size:92%}li.GA{list-style-image:url(//upload.wikimedia.org/wikipedia/commons/4/42/Monobook-bullet-ga.png)}li.FA{list-style-image:url(//upload.wikimedia.org/wikipedia/commons/d/d4/Monobook-bullet-star.png)}li.mw-changeslist-line-watched,li.mw-history-line-updated{list-style-image:url(//upload.wikimedia.org/wikipedia/commons/c/c2/ChangedBulletVector.png)}#bodyContent a.external[href ^="https://"],.link-https{background:url(//upload.wikimedia.org/wikipedia/en/0/00/Lock_icon_blue.gif) center right no-repeat;padding-right:16px}div.redirectMsg img{vertical-align:text-bottom}.redirectText{font-size:150%;margin:5px} \ No newline at end of file
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/write.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/write.py
deleted file mode 100644
index 939e11d5910..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/bench/write.py
+++ /dev/null
@@ -1,344 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: ascii -*-
-r"""
-=========================
- Write benchmark results
-=========================
-
-Write benchmark results.
-
-:Copyright:
-
- Copyright 2014
- Andr\xe9 Malo or his licensors, as applicable
-
-:License:
-
- 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.
-
-Usage::
-
- python -mbench.write [-p plain] [-t table] <pickled
-
- -p plain Plain file to write to (like docs/BENCHMARKS).
- -t table Table file to write to (like docs/_userdoc/benchmark.txt).
-
-"""
-if __doc__:
- __doc__ = __doc__.encode('ascii').decode('unicode_escape')
-__author__ = r"Andr\xe9 Malo".encode('ascii').decode('unicode_escape')
-__docformat__ = "restructuredtext en"
-__license__ = "Apache License, Version 2.0"
-__version__ = "1.0.0"
-
-import os as _os
-import re as _re
-import sys as _sys
-
-
-try:
- unicode
-except NameError:
- def uni(v):
- if hasattr(v, 'decode'):
- return v.decode('latin-1')
- return str(v)
-else:
- def uni(v):
- if isinstance(v, unicode):
- return v.encode('utf-8')
- return str(v)
-
-
-def write_table(filename, results):
- """
- Output tabled benchmark results
-
- :Parameters:
- `filename` : ``str``
- Filename to write to
-
- `results` : ``list``
- Results
- """
- try:
- next
- except NameError:
- next = lambda i: (getattr(i, 'next', None) or i.__next__)()
- try:
- cmp
- except NameError:
- cmp = lambda a, b: (a > b) - (a < b)
-
- names = [
- ('cssmin', 'YUI Port'),
- ('rcssmin', '|rcssmin|'),
- ('_rcssmin', r'_\ |rcssmin|'),
- ]
- benched_per_table = 2
-
- results = sorted(results, reverse=True)
-
- # First we transform our data into a table (list of lists)
- pythons, widths = [], [0] * (benched_per_table + 1)
- last_version = None
- for version, _, result in results:
- version = uni(version)
- if not(last_version is None or version.startswith('2.')):
- continue
- last_version = version
-
- namesub = _re.compile(r'(?:-\d+(?:\.\d+)*)?\.css$').sub
- result = iter(result)
- tables = []
-
- # given our data it's easier to create the table transposed...
- for benched in result:
- rows = [['Name'] + [desc for _, desc in names]]
- for _ in range(benched_per_table):
- if _:
- try:
- benched = next(result)
- except StopIteration:
- rows.append([''] + ['' for _ in names])
- continue
-
- times = dict((
- uni(port), (time, benched['sizes'][idx])
- ) for idx, (port, time) in enumerate(benched['times']))
- columns = ['%s (%.1f)' % (
- namesub('', _os.path.basename(uni(benched['filename']))),
- benched['size'] / 1024.0,
- )]
- for idx, (port, _) in enumerate(names):
- if port not in times:
- columns.append('n/a')
- continue
- time, size = times[port]
- if time is None:
- columns.append('(failed)')
- continue
- columns.append('%s%.2f ms (%.1f %s)' % (
- idx == 0 and ' ' or '',
- time,
- size / 1024.0,
- idx == 0 and '\\*' or ['=', '>', '<'][
- cmp(size, benched['sizes'][0])
- ],
- ))
- rows.append(columns)
-
- # calculate column widths (global for all tables)
- for idx, row in enumerate(rows):
- widths[idx] = max(widths[idx], max(map(len, row)))
-
- # ... and transpose it back.
- tables.append(zip(*rows))
- pythons.append((version, tables))
-
- if last_version.startswith('2.'):
- break
-
- # Second we create a rest table from it
- lines = []
- separator = lambda c='-': '+'.join([''] + [
- c * (width + 2) for width in widths
- ] + [''])
-
- for idx, (version, tables) in enumerate(pythons):
- if idx:
- lines.append('')
- lines.append('')
-
- line = 'Python %s' % (version,)
- lines.append(line)
- lines.append('~' * len(line))
-
- for table in tables:
- lines.append('')
- lines.append('.. rst-class:: benchmark')
- lines.append('')
-
- for idx, row in enumerate(table):
- if idx == 0:
- # header
- lines.append(separator())
- lines.append('|'.join([''] + [
- ' %s%*s ' % (col, len(col) - width, '')
- for width, col in zip(widths, row)
- ] + ['']))
- lines.append(separator('='))
- else: # data
- lines.append('|'.join([''] + [
- j == 0 and (
- ' %s%*s ' % (col, len(col) - widths[j], '')
- ) or (
- ['%*s ', ' %*s '][idx == 1] % (widths[j], col)
- )
- for j, col in enumerate(row)
- ] + ['']))
- lines.append(separator())
-
- fplines = []
- fp = open(filename)
- try:
- fpiter = iter(fp)
- for line in fpiter:
- line = line.rstrip()
- if line == '.. begin tables':
- buf = []
- for line in fpiter:
- line = line.rstrip()
- if line == '.. end tables':
- fplines.append('.. begin tables')
- fplines.append('')
- fplines.extend(lines)
- fplines.append('')
- fplines.append('.. end tables')
- buf = []
- break
- else:
- buf.append(line)
- else:
- fplines.extend(buf)
- _sys.stderr.write("Placeholder container not found!\n")
- else:
- fplines.append(line)
- finally:
- fp.close()
-
- fp = open(filename, 'w')
- try:
- fp.write('\n'.join(fplines) + '\n')
- finally:
- fp.close()
-
-
-def write_plain(filename, results):
- """
- Output plain benchmark results
-
- :Parameters:
- `filename` : ``str``
- Filename to write to
-
- `results` : ``list``
- Results
- """
- lines = []
- results = sorted(results, reverse=True)
- for idx, (version, import_notes, result) in enumerate(results):
- if idx:
- lines.append('')
- lines.append('')
-
- lines.append('$ python%s -OO bench/main.py bench/*.css' % (
- '.'.join(version.split('.')[:2])
- ))
- lines.append('~' * 72)
- for note in import_notes:
- lines.append(uni(note))
- lines.append('Python Release: %s' % (version,))
-
- for single in result:
- lines.append('')
- lines.append('Benchmarking %r... (%.1f KiB)' % (
- uni(single['filename']), single['size'] / 1024.0
- ))
- for msg in single['messages']:
- lines.append(msg)
- times = []
- space = max([len(uni(port)) for port, _ in single['times']])
- for idx, (port, time) in enumerate(single['times']):
- port = uni(port)
- if time is None:
- lines.append(" FAILED %s" % (port,))
- else:
- times.append(time)
- lines.append(
- " Timing %s%s ... (%5.1f KiB %s) %8.2f ms" % (
- port,
- " " * (space - len(port)),
- single['sizes'][idx] / 1024.0,
- idx == 0 and '*' or ['=', '>', '<'][
- cmp(single['sizes'][idx], single['sizes'][0])
- ],
- time
- )
- )
- if len(times) > 1:
- lines[-1] += " (factor: %s)" % (', '.join([
- '%.2f' % (timed / time) for timed in times[:-1]
- ]))
-
- lines.append('')
- lines.append('')
- lines.append('# vim: nowrap')
- fp = open(filename, 'w')
- try:
- fp.write('\n'.join(lines) + '\n')
- finally:
- fp.close()
-
-
-def main(argv=None):
- """ Main """
- import getopt as _getopt
- import pickle as _pickle
-
- if argv is None:
- argv = _sys.argv[1:]
- try:
- opts, args = _getopt.getopt(argv, "hp:t:", ["help"])
- except getopt.GetoptError:
- e = _sys.exc_info()[0](_sys.exc_info()[1])
- print >> _sys.stderr, "%s\nTry %s -mbench.write --help" % (
- e,
- _os.path.basename(_sys.executable),
- )
- _sys.exit(2)
-
- plain, table = None, None
- for key, value in opts:
- if key in ("-h", "--help"):
- print >> _sys.stderr, (
- "%s -mbench.write [-p plain] [-t table] <pickled" % (
- _os.path.basename(_sys.executable),
- )
- )
- _sys.exit(0)
- elif key == '-p':
- plain = str(value)
- elif key == '-t':
- table = str(value)
-
- struct = []
- _sys.stdin = getattr(_sys.stdin, 'detach', lambda: _sys.stdin)()
- try:
- while True:
- version, import_notes, result = _pickle.load(_sys.stdin)
- if hasattr(version, 'decode'):
- version = version.decode('latin-1')
- struct.append((version, import_notes, result))
- except EOFError:
- pass
-
- if plain:
- write_plain(plain, struct)
-
- if table:
- write_table(table, struct)
-
-
-if __name__ == '__main__':
- main()
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/BENCHMARKS b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/BENCHMARKS
deleted file mode 100644
index 9a49e9b51bf..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/BENCHMARKS
+++ /dev/null
@@ -1,61 +0,0 @@
-$ python3.4 -OO bench/main.py bench/*.css
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Python Release: 3.4.2
-
-Benchmarking 'bench/wikipedia.css'... (81.0 KiB)
- Timing cssmin ... ( 49.4 KiB *) 163.11 ms
- Timing rcssmin ... ( 49.6 KiB >) 45.48 ms (factor: 3.59)
- Timing _rcssmin ... ( 49.6 KiB >) 0.43 ms (factor: 378.93, 105.66)
-
-Benchmarking 'bench/wikipedia.min.css'... (49.4 KiB)
- Timing cssmin ... ( 49.4 KiB *) 119.00 ms
- Timing rcssmin ... ( 49.4 KiB =) 20.94 ms (factor: 5.68)
- Timing _rcssmin ... ( 49.4 KiB =) 0.26 ms (factor: 454.45, 79.98)
-
-
-$ python3.3 -OO bench/main.py bench/*.css
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Python Release: 3.3.5
-
-Benchmarking 'bench/wikipedia.css'... (81.0 KiB)
- Timing cssmin ... ( 49.4 KiB *) 185.01 ms
- Timing rcssmin ... ( 49.6 KiB >) 59.30 ms (factor: 3.12)
- Timing _rcssmin ... ( 49.6 KiB >) 0.52 ms (factor: 356.38, 114.23)
-
-Benchmarking 'bench/wikipedia.min.css'... (49.4 KiB)
- Timing cssmin ... ( 49.4 KiB *) 136.26 ms
- Timing rcssmin ... ( 49.4 KiB =) 25.51 ms (factor: 5.34)
- Timing _rcssmin ... ( 49.4 KiB =) 0.26 ms (factor: 515.24, 96.47)
-
-
-$ python3.2 -OO bench/main.py bench/*.css
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Python Release: 3.2.5
-
-Benchmarking 'bench/wikipedia.css'... (81.0 KiB)
- Timing cssmin ... ( 49.4 KiB *) 225.32 ms
- Timing rcssmin ... ( 49.6 KiB >) 57.51 ms (factor: 3.92)
- Timing _rcssmin ... ( 49.6 KiB >) 0.43 ms (factor: 527.98, 134.77)
-
-Benchmarking 'bench/wikipedia.min.css'... (49.4 KiB)
- Timing cssmin ... ( 49.4 KiB *) 129.43 ms
- Timing rcssmin ... ( 49.4 KiB =) 24.45 ms (factor: 5.29)
- Timing _rcssmin ... ( 49.4 KiB =) 0.25 ms (factor: 526.94, 99.55)
-
-
-$ python2.7 -OO bench/main.py bench/*.css
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Python Release: 2.7.7
-
-Benchmarking 'bench/wikipedia.css'... (81.0 KiB)
- Timing cssmin ... ( 49.4 KiB *) 175.98 ms
- Timing rcssmin ... ( 49.6 KiB >) 46.22 ms (factor: 3.81)
- Timing _rcssmin ... ( 49.6 KiB >) 0.45 ms (factor: 390.95, 102.68)
-
-Benchmarking 'bench/wikipedia.min.css'... (49.4 KiB)
- Timing cssmin ... ( 49.4 KiB *) 126.19 ms
- Timing rcssmin ... ( 49.4 KiB =) 19.92 ms (factor: 6.33)
- Timing _rcssmin ... ( 49.4 KiB =) 0.27 ms (factor: 469.78, 74.17)
-
-
-# vim: nowrap
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/CHANGES b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/CHANGES
deleted file mode 100644
index e179dce99dd..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/CHANGES
+++ /dev/null
@@ -1,42 +0,0 @@
-Changes with version 1.0.5
-
- *) Added support for pypy 2.2
-
- *) Updated benchmarks
-
- *) Relint with newer pylint
-
- *) Fix locale problem with the setup script on python3.
- Submitted by https://github.com/svenstaro
-
-
-Changes with version 1.0.4
-
- *) Documentation and benchmark updates
-
-
-Changes with version 1.0.3
-
- *) Added support for the following grouping @-rules:
- @supports, @document, @keyframes
-
- *) Added support for Python 3.4 and Jython 2.7
-
-
-Changes with version 1.0.2
-
- *) Added compat option to setup.py supporting the pip installer
-
- *) Added support for pypy (1.9, 2.0)
-
- *) Added support for jython (2.5)
-
-
-Changes with version 1.0.1
-
- *) Added support for Python 3.3
-
-
-Changes with version 1.0.0
-
- *) First stable release.
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/CLASSIFIERS b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/CLASSIFIERS
deleted file mode 100644
index 10d59650380..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/CLASSIFIERS
+++ /dev/null
@@ -1,19 +0,0 @@
-Development Status :: 5 - Production/Stable
-Environment :: Web Environment
-Intended Audience :: Developers
-License :: OSI Approved
-License :: OSI Approved :: Apache License, Version 2.0
-Operating System :: OS Independent
-Programming Language :: C
-Programming Language :: Python
-Programming Language :: Python :: 2
-Programming Language :: Python :: 3
-Programming Language :: Python :: Implementation :: CPython
-Programming Language :: Python :: Implementation :: Jython
-Programming Language :: Python :: Implementation :: PyPy
-Topic :: Internet :: WWW/HTTP :: Dynamic Content
-Topic :: Software Development :: Libraries
-Topic :: Software Development :: Libraries :: Python Modules
-Topic :: Text Processing
-Topic :: Text Processing :: Filters
-Topic :: Utilities
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/DESCRIPTION b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/DESCRIPTION
deleted file mode 100644
index b51a7fdb837..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/DESCRIPTION
+++ /dev/null
@@ -1,85 +0,0 @@
-==============
- CSS Minifier
-==============
-
-RCSSmin is a CSS minifier.
-
-The minifier is based on the semantics of the `YUI compressor`_\, which itself
-is based on `the rule list by Isaac Schlueter`_\.
-
-This module is a re-implementation aiming for speed instead of maximum
-compression, so it can be used at runtime (rather than during a preprocessing
-step). RCSSmin does syntactical compression only (removing spaces, comments
-and possibly semicolons). It does not provide semantic compression (like
-removing empty blocks, collapsing redundant properties etc). It does, however,
-support various CSS hacks (by keeping them working as intended).
-
-Here's a feature list:
-
-- Strings are kept, except that escaped newlines are stripped
-- Space/Comments before the very end or before various characters are
- stripped: ``:{});=>+],!`` (The colon (``:``) is a special case, a single
- space is kept if it's outside a ruleset.)
-- Space/Comments at the very beginning or after various characters are
- stripped: ``{}(=:>+[,!``
-- Optional space after unicode escapes is kept, resp. replaced by a simple
- space
-- whitespaces inside ``url()`` definitions are stripped
-- Comments starting with an exclamation mark (``!``) can be kept optionally.
-- All other comments and/or whitespace characters are replaced by a single
- space.
-- Multiple consecutive semicolons are reduced to one
-- The last semicolon within a ruleset is stripped
-- CSS Hacks supported:
-
- - IE7 hack (``>/**/``)
- - Mac-IE5 hack (``/*\*/.../**/``)
- - The boxmodelhack is supported naturally because it relies on valid CSS2
- strings
- - Between ``:first-line`` and the following comma or curly brace a space is
- inserted. (apparently it's needed for IE6)
- - Same for ``:first-letter``
-
-rcssmin.c is a reimplementation of rcssmin.py in C and improves runtime up to
-factor 100 or so (depending on the input). docs/BENCHMARKS in the source
-distribution contains the details.
-
-Both python 2 (>= 2.4) and python 3 are supported.
-
-.. _YUI compressor: https://github.com/yui/yuicompressor/
-
-.. _the rule list by Isaac Schlueter: https://github.com/isaacs/cssmin/
-
-
-Copyright and License
-~~~~~~~~~~~~~~~~~~~~~
-
-Copyright 2011 - 2014
-André Malo or his licensors, as applicable.
-
-The whole package (except for the files in the bench/ directory) is
-distributed under the Apache License Version 2.0. You'll find a copy in the
-root directory of the distribution or online at:
-<http://www.apache.org/licenses/LICENSE-2.0>.
-
-
-Bugs
-~~~~
-
-No bugs, of course. ;-)
-But if you've found one or have an idea how to improve rcssmin, feel free
-to send a pull request on `github <https://github.com/ndparker/rcssmin>`_
-or send a mail to <rcssmin-bugs@perlig.de>.
-
-
-Author Information
-~~~~~~~~~~~~~~~~~~
-
-André "nd" Malo <nd perlig.de>
-GPG: 0x8103A37E
-
-
- If God intended people to be naked, they would be born that way.
- -- Oscar Wilde
-
-.. vim:tw=72 syntax=rest
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/PROVIDES b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/PROVIDES
deleted file mode 100644
index d6d4e9ebe93..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/PROVIDES
+++ /dev/null
@@ -1 +0,0 @@
-rcssmin (1.0)
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/SUMMARY b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/SUMMARY
deleted file mode 100644
index 490e5373442..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/SUMMARY
+++ /dev/null
@@ -1 +0,0 @@
-CSS Minifier
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/api-objects.txt b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/api-objects.txt
deleted file mode 100644
index f4ed223ee65..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/api-objects.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-rcssmin rcssmin-module.html
-rcssmin.__license__ rcssmin-module.html#__license__
-rcssmin._make_cssmin rcssmin-module.html#_make_cssmin
-rcssmin.__doc__ rcssmin-module.html#__doc__
-rcssmin.__package__ rcssmin-module.html#__package__
-rcssmin.cssmin rcssmin-module.html#cssmin
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/crarr.png b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/crarr.png
deleted file mode 100644
index 26b43c52433..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/crarr.png
+++ /dev/null
Binary files differ
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/epydoc.css b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/epydoc.css
deleted file mode 100644
index 86d41706824..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/epydoc.css
+++ /dev/null
@@ -1,322 +0,0 @@
-
-
-/* Epydoc CSS Stylesheet
- *
- * This stylesheet can be used to customize the appearance of epydoc's
- * HTML output.
- *
- */
-
-/* Default Colors & Styles
- * - Set the default foreground & background color with 'body'; and
- * link colors with 'a:link' and 'a:visited'.
- * - Use bold for decision list terms.
- * - The heading styles defined here are used for headings *within*
- * docstring descriptions. All headings used by epydoc itself use
- * either class='epydoc' or class='toc' (CSS styles for both
- * defined below).
- */
-body { background: #ffffff; color: #000000; }
-p { margin-top: 0.5em; margin-bottom: 0.5em; }
-a:link { color: #0000ff; }
-a:visited { color: #204080; }
-dt { font-weight: bold; }
-h1 { font-size: +140%; font-style: italic;
- font-weight: bold; }
-h2 { font-size: +125%; font-style: italic;
- font-weight: bold; }
-h3 { font-size: +110%; font-style: italic;
- font-weight: normal; }
-code { font-size: 100%; }
-/* N.B.: class, not pseudoclass */
-a.link { font-family: monospace; }
-
-/* Page Header & Footer
- * - The standard page header consists of a navigation bar (with
- * pointers to standard pages such as 'home' and 'trees'); a
- * breadcrumbs list, which can be used to navigate to containing
- * classes or modules; options links, to show/hide private
- * variables and to show/hide frames; and a page title (using
- * <h1>). The page title may be followed by a link to the
- * corresponding source code (using 'span.codelink').
- * - The footer consists of a navigation bar, a timestamp, and a
- * pointer to epydoc's homepage.
- */
-h1.epydoc { margin: 0; font-size: +140%; font-weight: bold; }
-h2.epydoc { font-size: +130%; font-weight: bold; }
-h3.epydoc { font-size: +115%; font-weight: bold;
- margin-top: 0.2em; }
-td h3.epydoc { font-size: +115%; font-weight: bold;
- margin-bottom: 0; }
-table.navbar { background: #a0c0ff; color: #000000;
- border: 2px groove #c0d0d0; }
-table.navbar table { color: #000000; }
-th.navbar-select { background: #70b0ff;
- color: #000000; }
-table.navbar a { text-decoration: none; }
-table.navbar a:link { color: #0000ff; }
-table.navbar a:visited { color: #204080; }
-span.breadcrumbs { font-size: 85%; font-weight: bold; }
-span.options { font-size: 70%; }
-span.codelink { font-size: 85%; }
-td.footer { font-size: 85%; }
-
-/* Table Headers
- * - Each summary table and details section begins with a 'header'
- * row. This row contains a section title (marked by
- * 'span.table-header') as well as a show/hide private link
- * (marked by 'span.options', defined above).
- * - Summary tables that contain user-defined groups mark those
- * groups using 'group header' rows.
- */
-td.table-header { background: #70b0ff; color: #000000;
- border: 1px solid #608090; }
-td.table-header table { color: #000000; }
-td.table-header table a:link { color: #0000ff; }
-td.table-header table a:visited { color: #204080; }
-span.table-header { font-size: 120%; font-weight: bold; }
-th.group-header { background: #c0e0f8; color: #000000;
- text-align: left; font-style: italic;
- font-size: 115%;
- border: 1px solid #608090; }
-
-/* Summary Tables (functions, variables, etc)
- * - Each object is described by a single row of the table with
- * two cells. The left cell gives the object's type, and is
- * marked with 'code.summary-type'. The right cell gives the
- * object's name and a summary description.
- * - CSS styles for the table's header and group headers are
- * defined above, under 'Table Headers'
- */
-table.summary { border-collapse: collapse;
- background: #e8f0f8; color: #000000;
- border: 1px solid #608090;
- margin-bottom: 0.5em; }
-td.summary { border: 1px solid #608090; }
-code.summary-type { font-size: 85%; }
-table.summary a:link { color: #0000ff; }
-table.summary a:visited { color: #204080; }
-
-
-/* Details Tables (functions, variables, etc)
- * - Each object is described in its own div.
- * - A single-row summary table w/ table-header is used as
- * a header for each details section (CSS style for table-header
- * is defined above, under 'Table Headers').
- */
-table.details { border-collapse: collapse;
- background: #e8f0f8; color: #000000;
- border: 1px solid #608090;
- margin: .2em 0 0 0; }
-table.details table { color: #000000; }
-table.details a:link { color: #0000ff; }
-table.details a:visited { color: #204080; }
-
-/* Fields */
-dl.fields { margin-left: 2em; margin-top: 1em;
- margin-bottom: 1em; }
-dl.fields dd ul { margin-left: 0em; padding-left: 0em; }
-dl.fields dd ul li ul { margin-left: 2em; padding-left: 0em; }
-div.fields { margin-left: 2em; }
-div.fields p { margin-bottom: 0.5em; }
-
-/* Index tables (identifier index, term index, etc)
- * - link-index is used for indices containing lists of links
- * (namely, the identifier index & term index).
- * - index-where is used in link indices for the text indicating
- * the container/source for each link.
- * - metadata-index is used for indices containing metadata
- * extracted from fields (namely, the bug index & todo index).
- */
-table.link-index { border-collapse: collapse;
- background: #e8f0f8; color: #000000;
- border: 1px solid #608090; }
-td.link-index { border-width: 0px; }
-table.link-index a:link { color: #0000ff; }
-table.link-index a:visited { color: #204080; }
-span.index-where { font-size: 70%; }
-table.metadata-index { border-collapse: collapse;
- background: #e8f0f8; color: #000000;
- border: 1px solid #608090;
- margin: .2em 0 0 0; }
-td.metadata-index { border-width: 1px; border-style: solid; }
-table.metadata-index a:link { color: #0000ff; }
-table.metadata-index a:visited { color: #204080; }
-
-/* Function signatures
- * - sig* is used for the signature in the details section.
- * - .summary-sig* is used for the signature in the summary
- * table, and when listing property accessor functions.
- * */
-.sig-name { color: #006080; }
-.sig-arg { color: #008060; }
-.sig-default { color: #602000; }
-.summary-sig { font-family: monospace; }
-.summary-sig-name { color: #006080; font-weight: bold; }
-table.summary a.summary-sig-name:link
- { color: #006080; font-weight: bold; }
-table.summary a.summary-sig-name:visited
- { color: #006080; font-weight: bold; }
-.summary-sig-arg { color: #006040; }
-.summary-sig-default { color: #501800; }
-
-/* Subclass list
- */
-ul.subclass-list { display: inline; }
-ul.subclass-list li { display: inline; }
-
-/* To render variables, classes etc. like functions */
-table.summary .summary-name { color: #006080; font-weight: bold;
- font-family: monospace; }
-table.summary
- a.summary-name:link { color: #006080; font-weight: bold;
- font-family: monospace; }
-table.summary
- a.summary-name:visited { color: #006080; font-weight: bold;
- font-family: monospace; }
-
-/* Variable values
- * - In the 'variable details' sections, each varaible's value is
- * listed in a 'pre.variable' box. The width of this box is
- * restricted to 80 chars; if the value's repr is longer than
- * this it will be wrapped, using a backslash marked with
- * class 'variable-linewrap'. If the value's repr is longer
- * than 3 lines, the rest will be ellided; and an ellipsis
- * marker ('...' marked with 'variable-ellipsis') will be used.
- * - If the value is a string, its quote marks will be marked
- * with 'variable-quote'.
- * - If the variable is a regexp, it is syntax-highlighted using
- * the re* CSS classes.
- */
-pre.variable { padding: .5em; margin: 0;
- background: #dce4ec; color: #000000;
- border: 1px solid #708890; }
-.variable-linewrap { color: #604000; font-weight: bold; }
-.variable-ellipsis { color: #604000; font-weight: bold; }
-.variable-quote { color: #604000; font-weight: bold; }
-.variable-group { color: #008000; font-weight: bold; }
-.variable-op { color: #604000; font-weight: bold; }
-.variable-string { color: #006030; }
-.variable-unknown { color: #a00000; font-weight: bold; }
-.re { color: #000000; }
-.re-char { color: #006030; }
-.re-op { color: #600000; }
-.re-group { color: #003060; }
-.re-ref { color: #404040; }
-
-/* Base tree
- * - Used by class pages to display the base class hierarchy.
- */
-pre.base-tree { font-size: 80%; margin: 0; }
-
-/* Frames-based table of contents headers
- * - Consists of two frames: one for selecting modules; and
- * the other listing the contents of the selected module.
- * - h1.toc is used for each frame's heading
- * - h2.toc is used for subheadings within each frame.
- */
-h1.toc { text-align: center; font-size: 105%;
- margin: 0; font-weight: bold;
- padding: 0; }
-h2.toc { font-size: 100%; font-weight: bold;
- margin: 0.5em 0 0 -0.3em; }
-
-/* Syntax Highlighting for Source Code
- * - doctest examples are displayed in a 'pre.py-doctest' block.
- * If the example is in a details table entry, then it will use
- * the colors specified by the 'table pre.py-doctest' line.
- * - Source code listings are displayed in a 'pre.py-src' block.
- * Each line is marked with 'span.py-line' (used to draw a line
- * down the left margin, separating the code from the line
- * numbers). Line numbers are displayed with 'span.py-lineno'.
- * The expand/collapse block toggle button is displayed with
- * 'a.py-toggle' (Note: the CSS style for 'a.py-toggle' should not
- * modify the font size of the text.)
- * - If a source code page is opened with an anchor, then the
- * corresponding code block will be highlighted. The code
- * block's header is highlighted with 'py-highlight-hdr'; and
- * the code block's body is highlighted with 'py-highlight'.
- * - The remaining py-* classes are used to perform syntax
- * highlighting (py-string for string literals, py-name for names,
- * etc.)
- */
-pre.py-doctest { padding: .5em; margin: 1em;
- background: #e8f0f8; color: #000000;
- border: 1px solid #708890; }
-table pre.py-doctest { background: #dce4ec;
- color: #000000; }
-pre.py-src { border: 2px solid #000000;
- background: #f0f0f0; color: #000000; }
-.py-line { border-left: 2px solid #000000;
- margin-left: .2em; padding-left: .4em; }
-.py-lineno { font-style: italic; font-size: 90%;
- padding-left: .5em; }
-a.py-toggle { text-decoration: none; }
-div.py-highlight-hdr { border-top: 2px solid #000000;
- border-bottom: 2px solid #000000;
- background: #d8e8e8; }
-div.py-highlight { border-bottom: 2px solid #000000;
- background: #d0e0e0; }
-.py-prompt { color: #005050; font-weight: bold;}
-.py-more { color: #005050; font-weight: bold;}
-.py-string { color: #006030; }
-.py-comment { color: #003060; }
-.py-keyword { color: #600000; }
-.py-output { color: #404040; }
-.py-name { color: #000050; }
-.py-name:link { color: #000050 !important; }
-.py-name:visited { color: #000050 !important; }
-.py-number { color: #005000; }
-.py-defname { color: #000060; font-weight: bold; }
-.py-def-name { color: #000060; font-weight: bold; }
-.py-base-class { color: #000060; }
-.py-param { color: #000060; }
-.py-docstring { color: #006030; }
-.py-decorator { color: #804020; }
-/* Use this if you don't want links to names underlined: */
-/*a.py-name { text-decoration: none; }*/
-
-/* Graphs & Diagrams
- * - These CSS styles are used for graphs & diagrams generated using
- * Graphviz dot. 'img.graph-without-title' is used for bare
- * diagrams (to remove the border created by making the image
- * clickable).
- */
-img.graph-without-title { border: none; }
-img.graph-with-title { border: 1px solid #000000; }
-span.graph-title { font-weight: bold; }
-span.graph-caption { }
-
-/* General-purpose classes
- * - 'p.indent-wrapped-lines' defines a paragraph whose first line
- * is not indented, but whose subsequent lines are.
- * - The 'nomargin-top' class is used to remove the top margin (e.g.
- * from lists). The 'nomargin' class is used to remove both the
- * top and bottom margin (but not the left or right margin --
- * for lists, that would cause the bullets to disappear.)
- */
-p.indent-wrapped-lines { padding: 0 0 0 7em; text-indent: -7em;
- margin: 0; }
-.nomargin-top { margin-top: 0; }
-.nomargin { margin-top: 0; margin-bottom: 0; }
-
-/* HTML Log */
-div.log-block { padding: 0; margin: .5em 0 .5em 0;
- background: #e8f0f8; color: #000000;
- border: 1px solid #000000; }
-div.log-error { padding: .1em .3em .1em .3em; margin: 4px;
- background: #ffb0b0; color: #000000;
- border: 1px solid #000000; }
-div.log-warning { padding: .1em .3em .1em .3em; margin: 4px;
- background: #ffffb0; color: #000000;
- border: 1px solid #000000; }
-div.log-info { padding: .1em .3em .1em .3em; margin: 4px;
- background: #b0ffb0; color: #000000;
- border: 1px solid #000000; }
-h2.log-hdr { background: #70b0ff; color: #000000;
- margin: 0; padding: 0em 0.5em 0em 0.5em;
- border-bottom: 1px solid #000000; font-size: 110%; }
-p.log { font-weight: bold; margin: .5em 0 .5em 0; }
-tr.opt-changed { color: #000000; font-weight: bold; }
-tr.opt-default { color: #606060; }
-pre.log { margin: 0; padding: 0; padding-left: 1em; }
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/epydoc.js b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/epydoc.js
deleted file mode 100644
index e787dbcf471..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/epydoc.js
+++ /dev/null
@@ -1,293 +0,0 @@
-function toggle_private() {
- // Search for any private/public links on this page. Store
- // their old text in "cmd," so we will know what action to
- // take; and change their text to the opposite action.
- var cmd = "?";
- var elts = document.getElementsByTagName("a");
- for(var i=0; i<elts.length; i++) {
- if (elts[i].className == "privatelink") {
- cmd = elts[i].innerHTML;
- elts[i].innerHTML = ((cmd && cmd.substr(0,4)=="show")?
- "hide&nbsp;private":"show&nbsp;private");
- }
- }
- // Update all DIVs containing private objects.
- var elts = document.getElementsByTagName("div");
- for(var i=0; i<elts.length; i++) {
- if (elts[i].className == "private") {
- elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
- }
- else if (elts[i].className == "public") {
- elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"block":"none");
- }
- }
- // Update all table rows containing private objects. Note, we
- // use "" instead of "block" becaue IE & firefox disagree on what
- // this should be (block vs table-row), and "" just gives the
- // default for both browsers.
- var elts = document.getElementsByTagName("tr");
- for(var i=0; i<elts.length; i++) {
- if (elts[i].className == "private") {
- elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"");
- }
- }
- // Update all list items containing private objects.
- var elts = document.getElementsByTagName("li");
- for(var i=0; i<elts.length; i++) {
- if (elts[i].className == "private") {
- elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?
- "none":"");
- }
- }
- // Update all list items containing private objects.
- var elts = document.getElementsByTagName("ul");
- for(var i=0; i<elts.length; i++) {
- if (elts[i].className == "private") {
- elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
- }
- }
- // Set a cookie to remember the current option.
- document.cookie = "EpydocPrivate="+cmd;
- }
-function show_private() {
- var elts = document.getElementsByTagName("a");
- for(var i=0; i<elts.length; i++) {
- if (elts[i].className == "privatelink") {
- cmd = elts[i].innerHTML;
- if (cmd && cmd.substr(0,4)=="show")
- toggle_private();
- }
- }
- }
-function getCookie(name) {
- var dc = document.cookie;
- var prefix = name + "=";
- var begin = dc.indexOf("; " + prefix);
- if (begin == -1) {
- begin = dc.indexOf(prefix);
- if (begin != 0) return null;
- } else
- { begin += 2; }
- var end = document.cookie.indexOf(";", begin);
- if (end == -1)
- { end = dc.length; }
- return unescape(dc.substring(begin + prefix.length, end));
- }
-function setFrame(url1, url2) {
- parent.frames[1].location.href = url1;
- parent.frames[2].location.href = url2;
- }
-function checkCookie() {
- var cmd=getCookie("EpydocPrivate");
- if (cmd && cmd.substr(0,4)!="show" && location.href.indexOf("#_") < 0)
- toggle_private();
- }
-function toggleCallGraph(id) {
- var elt = document.getElementById(id);
- if (elt.style.display == "none")
- elt.style.display = "block";
- else
- elt.style.display = "none";
- }
-function expand(id) {
- var elt = document.getElementById(id+"-expanded");
- if (elt) elt.style.display = "block";
- var elt = document.getElementById(id+"-expanded-linenums");
- if (elt) elt.style.display = "block";
- var elt = document.getElementById(id+"-collapsed");
- if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
- var elt = document.getElementById(id+"-collapsed-linenums");
- if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
- var elt = document.getElementById(id+"-toggle");
- if (elt) { elt.innerHTML = "-"; }
-}
-
-function collapse(id) {
- var elt = document.getElementById(id+"-expanded");
- if (elt) elt.style.display = "none";
- var elt = document.getElementById(id+"-expanded-linenums");
- if (elt) elt.style.display = "none";
- var elt = document.getElementById(id+"-collapsed-linenums");
- if (elt) { elt.innerHTML = "<br />"; elt.style.display="block"; }
- var elt = document.getElementById(id+"-toggle");
- if (elt) { elt.innerHTML = "+"; }
- var elt = document.getElementById(id+"-collapsed");
- if (elt) {
- elt.style.display = "block";
-
- var indent = elt.getAttribute("indent");
- var pad = elt.getAttribute("pad");
- var s = "<tt class='py-lineno'>";
- for (var i=0; i<pad.length; i++) { s += "&nbsp;" }
- s += "</tt>";
- s += "&nbsp;&nbsp;<tt class='py-line'>";
- for (var i=0; i<indent.length; i++) { s += "&nbsp;" }
- s += "<a href='#' onclick='expand(\"" + id;
- s += "\");return false'>...</a></tt><br />";
- elt.innerHTML = s;
- }
-}
-
-function toggle(id) {
- elt = document.getElementById(id+"-toggle");
- if (elt.innerHTML == "-")
- collapse(id);
- else
- expand(id);
- return false;
-}
-
-function highlight(id) {
- var elt = document.getElementById(id+"-def");
- if (elt) elt.className = "py-highlight-hdr";
- var elt = document.getElementById(id+"-expanded");
- if (elt) elt.className = "py-highlight";
- var elt = document.getElementById(id+"-collapsed");
- if (elt) elt.className = "py-highlight";
-}
-
-function num_lines(s) {
- var n = 1;
- var pos = s.indexOf("\n");
- while ( pos > 0) {
- n += 1;
- pos = s.indexOf("\n", pos+1);
- }
- return n;
-}
-
-// Collapse all blocks that mave more than `min_lines` lines.
-function collapse_all(min_lines) {
- var elts = document.getElementsByTagName("div");
- for (var i=0; i<elts.length; i++) {
- var elt = elts[i];
- var split = elt.id.indexOf("-");
- if (split > 0)
- if (elt.id.substring(split, elt.id.length) == "-expanded")
- if (num_lines(elt.innerHTML) > min_lines)
- collapse(elt.id.substring(0, split));
- }
-}
-
-function expandto(href) {
- var start = href.indexOf("#")+1;
- if (start != 0 && start != href.length) {
- if (href.substring(start, href.length) != "-") {
- collapse_all(4);
- pos = href.indexOf(".", start);
- while (pos != -1) {
- var id = href.substring(start, pos);
- expand(id);
- pos = href.indexOf(".", pos+1);
- }
- var id = href.substring(start, href.length);
- expand(id);
- highlight(id);
- }
- }
-}
-
-function kill_doclink(id) {
- var parent = document.getElementById(id);
- parent.removeChild(parent.childNodes.item(0));
-}
-function auto_kill_doclink(ev) {
- if (!ev) var ev = window.event;
- if (!this.contains(ev.toElement)) {
- var parent = document.getElementById(this.parentID);
- parent.removeChild(parent.childNodes.item(0));
- }
-}
-
-function doclink(id, name, targets_id) {
- var elt = document.getElementById(id);
-
- // If we already opened the box, then destroy it.
- // (This case should never occur, but leave it in just in case.)
- if (elt.childNodes.length > 1) {
- elt.removeChild(elt.childNodes.item(0));
- }
- else {
- // The outer box: relative + inline positioning.
- var box1 = document.createElement("div");
- box1.style.position = "relative";
- box1.style.display = "inline";
- box1.style.top = 0;
- box1.style.left = 0;
-
- // A shadow for fun
- var shadow = document.createElement("div");
- shadow.style.position = "absolute";
- shadow.style.left = "-1.3em";
- shadow.style.top = "-1.3em";
- shadow.style.background = "#404040";
-
- // The inner box: absolute positioning.
- var box2 = document.createElement("div");
- box2.style.position = "relative";
- box2.style.border = "1px solid #a0a0a0";
- box2.style.left = "-.2em";
- box2.style.top = "-.2em";
- box2.style.background = "white";
- box2.style.padding = ".3em .4em .3em .4em";
- box2.style.fontStyle = "normal";
- box2.onmouseout=auto_kill_doclink;
- box2.parentID = id;
-
- // Get the targets
- var targets_elt = document.getElementById(targets_id);
- var targets = targets_elt.getAttribute("targets");
- var links = "";
- target_list = targets.split(",");
- for (var i=0; i<target_list.length; i++) {
- var target = target_list[i].split("=");
- links += "<li><a href='" + target[1] +
- "' style='text-decoration:none'>" +
- target[0] + "</a></li>";
- }
-
- // Put it all together.
- elt.insertBefore(box1, elt.childNodes.item(0));
- //box1.appendChild(box2);
- box1.appendChild(shadow);
- shadow.appendChild(box2);
- box2.innerHTML =
- "Which <b>"+name+"</b> do you want to see documentation for?" +
- "<ul style='margin-bottom: 0;'>" +
- links +
- "<li><a href='#' style='text-decoration:none' " +
- "onclick='kill_doclink(\""+id+"\");return false;'>"+
- "<i>None of the above</i></a></li></ul>";
- }
- return false;
-}
-
-function get_anchor() {
- var href = location.href;
- var start = href.indexOf("#")+1;
- if ((start != 0) && (start != href.length))
- return href.substring(start, href.length);
- }
-function redirect_url(dottedName) {
- // Scan through each element of the "pages" list, and check
- // if "name" matches with any of them.
- for (var i=0; i<pages.length; i++) {
-
- // Each page has the form "<pagename>-m" or "<pagename>-c";
- // extract the <pagename> portion & compare it to dottedName.
- var pagename = pages[i].substring(0, pages[i].length-2);
- if (pagename == dottedName.substring(0,pagename.length)) {
-
- // We've found a page that matches `dottedName`;
- // construct its URL, using leftover `dottedName`
- // content to form an anchor.
- var pagetype = pages[i].charAt(pages[i].length-1);
- var url = pagename + ((pagetype=="m")?"-module.html":
- "-class.html");
- if (dottedName.length > pagename.length)
- url += "#" + dottedName.substring(pagename.length+1,
- dottedName.length);
- return url;
- }
- }
- }
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/help.html b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/help.html
deleted file mode 100644
index d1bf1c8766d..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/help.html
+++ /dev/null
@@ -1,261 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>Help</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css" />
- <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
- bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="middle">
- <!-- Home link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="rcssmin-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Tree link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Index link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Help link -->
- <th bgcolor="#70b0f0" class="navbar-select"
- >&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Project homepage -->
- <th class="navbar" align="right" width="100%">
- <table border="0" cellpadding="0" cellspacing="0">
- <tr><th class="navbar" align="center"
- ><a href="http://opensource.perlig.de/rcssmin/" target="_top">Visit rcssmin Online</a></th>
- </tr></table></th>
- </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
- <tr valign="top">
- <td width="100%">&nbsp;</td>
- <td>
- <table cellpadding="0" cellspacing="0">
- <!-- hide/show private -->
- </table>
- </td>
- </tr>
-</table>
-
-<h1 class="epydoc"> API Documentation </h1>
-
-<p> This document contains the API (Application Programming Interface)
-documentation for this project. Documentation for the Python
-objects defined by the project is divided into separate pages for each
-package, module, and class. The API documentation also includes two
-pages containing information about the project as a whole: a trees
-page, and an index page. </p>
-
-<h2> Object Documentation </h2>
-
- <p>Each <strong>Package Documentation</strong> page contains: </p>
- <ul>
- <li> A description of the package. </li>
- <li> A list of the modules and sub-packages contained by the
- package. </li>
- <li> A summary of the classes defined by the package. </li>
- <li> A summary of the functions defined by the package. </li>
- <li> A summary of the variables defined by the package. </li>
- <li> A detailed description of each function defined by the
- package. </li>
- <li> A detailed description of each variable defined by the
- package. </li>
- </ul>
-
- <p>Each <strong>Module Documentation</strong> page contains:</p>
- <ul>
- <li> A description of the module. </li>
- <li> A summary of the classes defined by the module. </li>
- <li> A summary of the functions defined by the module. </li>
- <li> A summary of the variables defined by the module. </li>
- <li> A detailed description of each function defined by the
- module. </li>
- <li> A detailed description of each variable defined by the
- module. </li>
- </ul>
-
- <p>Each <strong>Class Documentation</strong> page contains: </p>
- <ul>
- <li> A class inheritance diagram. </li>
- <li> A list of known subclasses. </li>
- <li> A description of the class. </li>
- <li> A summary of the methods defined by the class. </li>
- <li> A summary of the instance variables defined by the class. </li>
- <li> A summary of the class (static) variables defined by the
- class. </li>
- <li> A detailed description of each method defined by the
- class. </li>
- <li> A detailed description of each instance variable defined by the
- class. </li>
- <li> A detailed description of each class (static) variable defined
- by the class. </li>
- </ul>
-
-<h2> Project Documentation </h2>
-
- <p> The <strong>Trees</strong> page contains the module and class hierarchies: </p>
- <ul>
- <li> The <em>module hierarchy</em> lists every package and module, with
- modules grouped into packages. At the top level, and within each
- package, modules and sub-packages are listed alphabetically. </li>
- <li> The <em>class hierarchy</em> lists every class, grouped by base
- class. If a class has more than one base class, then it will be
- listed under each base class. At the top level, and under each base
- class, classes are listed alphabetically. </li>
- </ul>
-
- <p> The <strong>Index</strong> page contains indices of terms and
- identifiers: </p>
- <ul>
- <li> The <em>term index</em> lists every term indexed by any object's
- documentation. For each term, the index provides links to each
- place where the term is indexed. </li>
- <li> The <em>identifier index</em> lists the (short) name of every package,
- module, class, method, function, variable, and parameter. For each
- identifier, the index provides a short description, and a link to
- its documentation. </li>
- </ul>
-
-<h2> The Table of Contents </h2>
-
-<p> The table of contents occupies the two frames on the left side of
-the window. The upper-left frame displays the <em>project
-contents</em>, and the lower-left frame displays the <em>module
-contents</em>: </p>
-
-<table class="help summary" border="1" cellspacing="0" cellpadding="3">
- <tr style="height: 30%">
- <td align="center" style="font-size: small">
- Project<br />Contents<hr />...</td>
- <td align="center" style="font-size: small" rowspan="2" width="70%">
- API<br />Documentation<br />Frame<br /><br /><br />
- </td>
- </tr>
- <tr>
- <td align="center" style="font-size: small">
- Module<br />Contents<hr />&nbsp;<br />...<br />&nbsp;
- </td>
- </tr>
-</table><br />
-
-<p> The <strong>project contents frame</strong> contains a list of all packages
-and modules that are defined by the project. Clicking on an entry
-will display its contents in the module contents frame. Clicking on a
-special entry, labeled "Everything," will display the contents of
-the entire project. </p>
-
-<p> The <strong>module contents frame</strong> contains a list of every
-submodule, class, type, exception, function, and variable defined by a
-module or package. Clicking on an entry will display its
-documentation in the API documentation frame. Clicking on the name of
-the module, at the top of the frame, will display the documentation
-for the module itself. </p>
-
-<p> The "<strong>frames</strong>" and "<strong>no frames</strong>" buttons below the top
-navigation bar can be used to control whether the table of contents is
-displayed or not. </p>
-
-<h2> The Navigation Bar </h2>
-
-<p> A navigation bar is located at the top and bottom of every page.
-It indicates what type of page you are currently viewing, and allows
-you to go to related pages. The following table describes the labels
-on the navigation bar. Note that not some labels (such as
-[Parent]) are not displayed on all pages. </p>
-
-<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">
-<tr class="summary">
- <th>Label</th>
- <th>Highlighted when...</th>
- <th>Links to...</th>
-</tr>
- <tr><td valign="top"><strong>[Parent]</strong></td>
- <td valign="top"><em>(never highlighted)</em></td>
- <td valign="top"> the parent of the current package </td></tr>
- <tr><td valign="top"><strong>[Package]</strong></td>
- <td valign="top">viewing a package</td>
- <td valign="top">the package containing the current object
- </td></tr>
- <tr><td valign="top"><strong>[Module]</strong></td>
- <td valign="top">viewing a module</td>
- <td valign="top">the module containing the current object
- </td></tr>
- <tr><td valign="top"><strong>[Class]</strong></td>
- <td valign="top">viewing a class </td>
- <td valign="top">the class containing the current object</td></tr>
- <tr><td valign="top"><strong>[Trees]</strong></td>
- <td valign="top">viewing the trees page</td>
- <td valign="top"> the trees page </td></tr>
- <tr><td valign="top"><strong>[Index]</strong></td>
- <td valign="top">viewing the index page</td>
- <td valign="top"> the index page </td></tr>
- <tr><td valign="top"><strong>[Help]</strong></td>
- <td valign="top">viewing the help page</td>
- <td valign="top"> the help page </td></tr>
-</table>
-
-<p> The "<strong>show private</strong>" and "<strong>hide private</strong>" buttons below
-the top navigation bar can be used to control whether documentation
-for private objects is displayed. Private objects are usually defined
-as objects whose (short) names begin with a single underscore, but do
-not end with an underscore. For example, "<code>_x</code>",
-"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"
-are private objects; but "<code>re.sub</code>",
-"<code>__init__</code>", and "<code>type_</code>" are not. However,
-if a module defines the "<code>__all__</code>" variable, then its
-contents are used to decide which objects are private. </p>
-
-<p> A timestamp below the bottom navigation bar indicates when each
-page was last updated. </p>
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
- bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="middle">
- <!-- Home link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="rcssmin-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Tree link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Index link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Help link -->
- <th bgcolor="#70b0f0" class="navbar-select"
- >&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Project homepage -->
- <th class="navbar" align="right" width="100%">
- <table border="0" cellpadding="0" cellspacing="0">
- <tr><th class="navbar" align="center"
- ><a href="http://opensource.perlig.de/rcssmin/" target="_top">Visit rcssmin Online</a></th>
- </tr></table></th>
- </tr>
-</table>
-
-<script type="text/javascript">
- <!--
- // Private objects are initially displayed (because if
- // javascript is turned off then we want them to be
- // visible); but by default, we want to hide them. So hide
- // them unless we have a cookie that says to show them.
- checkCookie();
- // -->
-</script>
-</body>
-</html>
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/identifier-index.html b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/identifier-index.html
deleted file mode 100644
index 82acafdbb7c..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/identifier-index.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>Identifier Index</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css" />
- <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
- bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="middle">
- <!-- Home link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="rcssmin-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Tree link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Index link -->
- <th bgcolor="#70b0f0" class="navbar-select"
- >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Help link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Project homepage -->
- <th class="navbar" align="right" width="100%">
- <table border="0" cellpadding="0" cellspacing="0">
- <tr><th class="navbar" align="center"
- ><a href="http://opensource.perlig.de/rcssmin/" target="_top">Visit rcssmin Online</a></th>
- </tr></table></th>
- </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
- <tr valign="top">
- <td width="100%">&nbsp;</td>
- <td>
- <table cellpadding="0" cellspacing="0">
- <!-- hide/show private -->
- </table>
- </td>
- </tr>
-</table>
-<table border="0" width="100%">
-<tr valign="bottom"><td>
-<h1 class="epydoc">Identifier Index</h1>
-</td><td>
-[
- A
- B
- <a href="#C">C</a>
- D
- E
- F
- G
- H
- I
- J
- K
- L
- M
- N
- O
- P
- Q
- <a href="#R">R</a>
- S
- T
- U
- V
- W
- X
- Y
- Z
- <a href="#_">_</a>
-]
-</td></table>
-<table border="0" width="100%">
-<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="C">C</a></h2></td>
-<td valign="top">
-<table class="link-index" width="100%" border="1">
-<tr>
-<td width="33%" class="link-index"><a href="rcssmin-module.html#cssmin">cssmin()</a><br />
-<span class="index-where">(in&nbsp;<a href="rcssmin-module.html">rcssmin</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
-<td width="33%" class="link-index">&nbsp;</td>
-</tr>
-<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
-</table>
-</td></tr>
-<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="R">R</a></h2></td>
-<td valign="top">
-<table class="link-index" width="100%" border="1">
-<tr>
-<td width="33%" class="link-index"><a href="rcssmin-module.html">rcssmin</a></td>
-<td width="33%" class="link-index">&nbsp;</td>
-<td width="33%" class="link-index">&nbsp;</td>
-</tr>
-<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
-</table>
-</td></tr>
-<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="_">_</a></h2></td>
-<td valign="top">
-<table class="link-index" width="100%" border="1">
-<tr>
-<td width="33%" class="link-index"><a href="rcssmin-module.html#__doc__">__doc__</a><br />
-<span class="index-where">(in&nbsp;<a href="rcssmin-module.html">rcssmin</a>)</span></td>
-<td width="33%" class="link-index"><a href="rcssmin-module.html#__license__">__license__</a><br />
-<span class="index-where">(in&nbsp;<a href="rcssmin-module.html">rcssmin</a>)</span></td>
-<td width="33%" class="link-index"><a href="rcssmin-module.html#__package__">__package__</a><br />
-<span class="index-where">(in&nbsp;<a href="rcssmin-module.html">rcssmin</a>)</span></td>
-</tr>
-<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
-</table>
-</td></tr>
-</table>
-<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
- bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="middle">
- <!-- Home link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="rcssmin-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Tree link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Index link -->
- <th bgcolor="#70b0f0" class="navbar-select"
- >&nbsp;&nbsp;&nbsp;Indices&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Help link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Project homepage -->
- <th class="navbar" align="right" width="100%">
- <table border="0" cellpadding="0" cellspacing="0">
- <tr><th class="navbar" align="center"
- ><a href="http://opensource.perlig.de/rcssmin/" target="_top">Visit rcssmin Online</a></th>
- </tr></table></th>
- </tr>
-</table>
-
-<script type="text/javascript">
- <!--
- // Private objects are initially displayed (because if
- // javascript is turned off then we want them to be
- // visible); but by default, we want to hide them. So hide
- // them unless we have a cookie that says to show them.
- checkCookie();
- // -->
-</script>
-</body>
-</html>
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/index.html b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/index.html
deleted file mode 100644
index 84ffddda734..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/index.html
+++ /dev/null
@@ -1,224 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>rcssmin</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css" />
- <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
- bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="middle">
- <!-- Home link -->
- <th bgcolor="#70b0f0" class="navbar-select"
- >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Tree link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Index link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Help link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Project homepage -->
- <th class="navbar" align="right" width="100%">
- <table border="0" cellpadding="0" cellspacing="0">
- <tr><th class="navbar" align="center"
- ><a href="http://opensource.perlig.de/rcssmin/" target="_top">Visit rcssmin Online</a></th>
- </tr></table></th>
- </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
- <tr valign="top">
- <td width="100%">
- <span class="breadcrumbs">
- Module&nbsp;rcssmin
- </span>
- </td>
- <td>
- <table cellpadding="0" cellspacing="0">
- <!-- hide/show private -->
- </table>
- </td>
- </tr>
-</table>
-<!-- ==================== MODULE DESCRIPTION ==================== -->
-<h1 class="epydoc">Module rcssmin</h1><p class="nomargin-top"><span class="codelink"><a href="rcssmin-pysrc.html">source&nbsp;code</a></span></p>
-<p>CSS Minifier.</p>
-<p>The minifier is based on the semantics of the <a class="rst-reference external" href="https://github.com/yui/yuicompressor/" target="_top">YUI compressor</a>, which
-itself is based on <a class="rst-reference external" href="https://github.com/isaacs/cssmin/" target="_top">the rule list by Isaac Schlueter</a>.</p>
-<p>This module is a re-implementation aiming for speed instead of maximum
-compression, so it can be used at runtime (rather than during a preprocessing
-step). RCSSmin does syntactical compression only (removing spaces, comments
-and possibly semicolons). It does not provide semantic compression (like
-removing empty blocks, collapsing redundant properties etc). It does, however,
-support various CSS hacks (by keeping them working as intended).</p>
-<p>Here's a feature list:</p>
-<ul class="rst-simple">
-<li>Strings are kept, except that escaped newlines are stripped</li>
-<li>Space/Comments before the very end or before various characters are
-stripped: <tt class="rst-docutils literal"><span class="pre">:{});=&gt;+],!</span></tt> (The colon (<tt class="rst-docutils literal">:</tt>) is a special case, a single
-space is kept if it's outside a ruleset.)</li>
-<li>Space/Comments at the very beginning or after various characters are
-stripped: <tt class="rst-docutils literal"><span class="pre">{}(=:&gt;+[,!</span></tt></li>
-<li>Optional space after unicode escapes is kept, resp. replaced by a simple
-space</li>
-<li>whitespaces inside <tt class="rst-docutils literal">url()</tt> definitions are stripped</li>
-<li>Comments starting with an exclamation mark (<tt class="rst-docutils literal">!</tt>) can be kept optionally.</li>
-<li>All other comments and/or whitespace characters are replaced by a single
-space.</li>
-<li>Multiple consecutive semicolons are reduced to one</li>
-<li>The last semicolon within a ruleset is stripped</li>
-<li>CSS Hacks supported:<ul>
-<li>IE7 hack (<tt class="rst-docutils literal"><span class="pre">&gt;/**/</span></tt>)</li>
-<li>Mac-IE5 hack (<tt class="rst-docutils literal"><span class="pre">/*\*/.../**/</span></tt>)</li>
-<li>The boxmodelhack is supported naturally because it relies on valid CSS2
-strings</li>
-<li>Between <tt class="rst-docutils literal"><span class="pre">:first-line</span></tt> and the following comma or curly brace a space is
-inserted. (apparently it's needed for IE6)</li>
-<li>Same for <tt class="rst-docutils literal"><span class="pre">:first-letter</span></tt></li>
-</ul>
-</li>
-</ul>
-<p>rcssmin.c is a reimplementation of rcssmin.py in C and improves runtime up to
-factor 100 or so (depending on the input). docs/BENCHMARKS in the source
-distribution contains the details.</p>
-<p>Both python 2 (&gt;= 2.4) and python 3 are supported.</p>
-
-<hr />
-<div class="fields"> <p><strong>Copyright:</strong>
- Copyright 2011 - 2014
-Andr&#233; Malo or his licensors, as applicable
- </p>
- <p><strong>License:</strong>
- <p>Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at</p>
-<blockquote>
-<a class="rst-reference external" href="http://www.apache.org/licenses/LICENSE-2.0" target="_top">http://www.apache.org/licenses/LICENSE-2.0</a></blockquote>
-<p>Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an &quot;AS IS&quot; 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.</p>
- </p>
- <p><strong>Version:</strong>
- 1.0.5
- </p>
- <p><strong>Author:</strong>
- Andr&#233; Malo
- </p>
-</div><!-- ==================== FUNCTIONS ==================== -->
-<a name="section-Functions"></a>
-<table class="summary" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="table-header">
- <td align="left" colspan="2" class="table-header">
- <span class="table-header">Functions</span></td>
-</tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type"><tt class="rst-docutils literal">str</tt></span>
- </td><td class="summary">
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td><span class="summary-sig"><a href="rcssmin-module.html#cssmin" class="summary-sig-name">cssmin</a>(<span class="summary-sig-arg">style</span>,
- <span class="summary-sig-arg">keep_bang_comments</span>=<span class="summary-sig-default">False</span>)</span><br />
- Minify CSS.</td>
- <td align="right" valign="top">
- <span class="codelink"><a href="rcssmin-pysrc.html#cssmin">source&nbsp;code</a></span>
-
- </td>
- </tr>
- </table>
-
- </td>
- </tr>
-</table>
-<!-- ==================== FUNCTION DETAILS ==================== -->
-<a name="section-FunctionDetails"></a>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="table-header">
- <td align="left" colspan="2" class="table-header">
- <span class="table-header">Function Details</span></td>
-</tr>
-</table>
-<a name="cssmin"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
- <tr valign="top"><td>
- <h3 class="epydoc"><span class="sig"><span class="sig-name">cssmin</span>(<span class="sig-arg">style</span>,
- <span class="sig-arg">keep_bang_comments</span>=<span class="sig-default">False</span>)</span>
- </h3>
- </td><td align="right" valign="top"
- ><span class="codelink"><a href="rcssmin-pysrc.html#cssmin">source&nbsp;code</a></span>&nbsp;
- </td>
- </tr></table>
-
- Minify CSS.
- <dl class="fields">
- <dt>Parameters:</dt>
- <dd><ul class="nomargin-top">
- <li><strong class="pname"><code>style</code></strong> (<tt class="rst-docutils literal">str</tt>) - CSS to minify</li>
- <li><strong class="pname"><code>keep_bang_comments</code></strong> (<tt class="rst-docutils literal">bool</tt>) - Keep comments starting with an exclamation mark? (<tt class="rst-docutils literal"><span class="pre">/*!...*/</span></tt>)</li>
- </ul></dd>
- <dt>Returns: <tt class="rst-docutils literal">str</tt></dt>
- <dd>Minified style</dd>
- </dl>
-</td></tr></table>
-</div>
-<br />
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
- bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="middle">
- <!-- Home link -->
- <th bgcolor="#70b0f0" class="navbar-select"
- >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Tree link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Index link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Help link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Project homepage -->
- <th class="navbar" align="right" width="100%">
- <table border="0" cellpadding="0" cellspacing="0">
- <tr><th class="navbar" align="center"
- ><a href="http://opensource.perlig.de/rcssmin/" target="_top">Visit rcssmin Online</a></th>
- </tr></table></th>
- </tr>
-</table>
-
-<script type="text/javascript">
- <!--
- // Private objects are initially displayed (because if
- // javascript is turned off then we want them to be
- // visible); but by default, we want to hide them. So hide
- // them unless we have a cookie that says to show them.
- checkCookie();
- // -->
-</script>
-</body>
-</html>
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/module-tree.html b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/module-tree.html
deleted file mode 100644
index e522dd1721b..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/module-tree.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>Module Hierarchy</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css" />
- <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
- bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="middle">
- <!-- Home link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="rcssmin-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Tree link -->
- <th bgcolor="#70b0f0" class="navbar-select"
- >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Index link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Help link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Project homepage -->
- <th class="navbar" align="right" width="100%">
- <table border="0" cellpadding="0" cellspacing="0">
- <tr><th class="navbar" align="center"
- ><a href="http://opensource.perlig.de/rcssmin/" target="_top">Visit rcssmin Online</a></th>
- </tr></table></th>
- </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
- <tr valign="top">
- <td width="100%">&nbsp;</td>
- <td>
- <table cellpadding="0" cellspacing="0">
- <!-- hide/show private -->
- </table>
- </td>
- </tr>
-</table>
-<h1 class="epydoc">Module Hierarchy</h1>
-<ul class="nomargin-top">
- <li> <strong class="uidlink"><a href="rcssmin-module.html">rcssmin</a></strong>: <em class="summary">CSS Minifier.</em> </li>
-</ul>
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
- bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="middle">
- <!-- Home link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="rcssmin-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Tree link -->
- <th bgcolor="#70b0f0" class="navbar-select"
- >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Index link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Help link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Project homepage -->
- <th class="navbar" align="right" width="100%">
- <table border="0" cellpadding="0" cellspacing="0">
- <tr><th class="navbar" align="center"
- ><a href="http://opensource.perlig.de/rcssmin/" target="_top">Visit rcssmin Online</a></th>
- </tr></table></th>
- </tr>
-</table>
-
-<script type="text/javascript">
- <!--
- // Private objects are initially displayed (because if
- // javascript is turned off then we want them to be
- // visible); but by default, we want to hide them. So hide
- // them unless we have a cookie that says to show them.
- checkCookie();
- // -->
-</script>
-</body>
-</html>
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/rcssmin-module.html b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/rcssmin-module.html
deleted file mode 100644
index 84ffddda734..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/rcssmin-module.html
+++ /dev/null
@@ -1,224 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>rcssmin</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css" />
- <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
- bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="middle">
- <!-- Home link -->
- <th bgcolor="#70b0f0" class="navbar-select"
- >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Tree link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Index link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Help link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Project homepage -->
- <th class="navbar" align="right" width="100%">
- <table border="0" cellpadding="0" cellspacing="0">
- <tr><th class="navbar" align="center"
- ><a href="http://opensource.perlig.de/rcssmin/" target="_top">Visit rcssmin Online</a></th>
- </tr></table></th>
- </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
- <tr valign="top">
- <td width="100%">
- <span class="breadcrumbs">
- Module&nbsp;rcssmin
- </span>
- </td>
- <td>
- <table cellpadding="0" cellspacing="0">
- <!-- hide/show private -->
- </table>
- </td>
- </tr>
-</table>
-<!-- ==================== MODULE DESCRIPTION ==================== -->
-<h1 class="epydoc">Module rcssmin</h1><p class="nomargin-top"><span class="codelink"><a href="rcssmin-pysrc.html">source&nbsp;code</a></span></p>
-<p>CSS Minifier.</p>
-<p>The minifier is based on the semantics of the <a class="rst-reference external" href="https://github.com/yui/yuicompressor/" target="_top">YUI compressor</a>, which
-itself is based on <a class="rst-reference external" href="https://github.com/isaacs/cssmin/" target="_top">the rule list by Isaac Schlueter</a>.</p>
-<p>This module is a re-implementation aiming for speed instead of maximum
-compression, so it can be used at runtime (rather than during a preprocessing
-step). RCSSmin does syntactical compression only (removing spaces, comments
-and possibly semicolons). It does not provide semantic compression (like
-removing empty blocks, collapsing redundant properties etc). It does, however,
-support various CSS hacks (by keeping them working as intended).</p>
-<p>Here's a feature list:</p>
-<ul class="rst-simple">
-<li>Strings are kept, except that escaped newlines are stripped</li>
-<li>Space/Comments before the very end or before various characters are
-stripped: <tt class="rst-docutils literal"><span class="pre">:{});=&gt;+],!</span></tt> (The colon (<tt class="rst-docutils literal">:</tt>) is a special case, a single
-space is kept if it's outside a ruleset.)</li>
-<li>Space/Comments at the very beginning or after various characters are
-stripped: <tt class="rst-docutils literal"><span class="pre">{}(=:&gt;+[,!</span></tt></li>
-<li>Optional space after unicode escapes is kept, resp. replaced by a simple
-space</li>
-<li>whitespaces inside <tt class="rst-docutils literal">url()</tt> definitions are stripped</li>
-<li>Comments starting with an exclamation mark (<tt class="rst-docutils literal">!</tt>) can be kept optionally.</li>
-<li>All other comments and/or whitespace characters are replaced by a single
-space.</li>
-<li>Multiple consecutive semicolons are reduced to one</li>
-<li>The last semicolon within a ruleset is stripped</li>
-<li>CSS Hacks supported:<ul>
-<li>IE7 hack (<tt class="rst-docutils literal"><span class="pre">&gt;/**/</span></tt>)</li>
-<li>Mac-IE5 hack (<tt class="rst-docutils literal"><span class="pre">/*\*/.../**/</span></tt>)</li>
-<li>The boxmodelhack is supported naturally because it relies on valid CSS2
-strings</li>
-<li>Between <tt class="rst-docutils literal"><span class="pre">:first-line</span></tt> and the following comma or curly brace a space is
-inserted. (apparently it's needed for IE6)</li>
-<li>Same for <tt class="rst-docutils literal"><span class="pre">:first-letter</span></tt></li>
-</ul>
-</li>
-</ul>
-<p>rcssmin.c is a reimplementation of rcssmin.py in C and improves runtime up to
-factor 100 or so (depending on the input). docs/BENCHMARKS in the source
-distribution contains the details.</p>
-<p>Both python 2 (&gt;= 2.4) and python 3 are supported.</p>
-
-<hr />
-<div class="fields"> <p><strong>Copyright:</strong>
- Copyright 2011 - 2014
-Andr&#233; Malo or his licensors, as applicable
- </p>
- <p><strong>License:</strong>
- <p>Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at</p>
-<blockquote>
-<a class="rst-reference external" href="http://www.apache.org/licenses/LICENSE-2.0" target="_top">http://www.apache.org/licenses/LICENSE-2.0</a></blockquote>
-<p>Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an &quot;AS IS&quot; 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.</p>
- </p>
- <p><strong>Version:</strong>
- 1.0.5
- </p>
- <p><strong>Author:</strong>
- Andr&#233; Malo
- </p>
-</div><!-- ==================== FUNCTIONS ==================== -->
-<a name="section-Functions"></a>
-<table class="summary" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="table-header">
- <td align="left" colspan="2" class="table-header">
- <span class="table-header">Functions</span></td>
-</tr>
-<tr>
- <td width="15%" align="right" valign="top" class="summary">
- <span class="summary-type"><tt class="rst-docutils literal">str</tt></span>
- </td><td class="summary">
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
- <tr>
- <td><span class="summary-sig"><a href="rcssmin-module.html#cssmin" class="summary-sig-name">cssmin</a>(<span class="summary-sig-arg">style</span>,
- <span class="summary-sig-arg">keep_bang_comments</span>=<span class="summary-sig-default">False</span>)</span><br />
- Minify CSS.</td>
- <td align="right" valign="top">
- <span class="codelink"><a href="rcssmin-pysrc.html#cssmin">source&nbsp;code</a></span>
-
- </td>
- </tr>
- </table>
-
- </td>
- </tr>
-</table>
-<!-- ==================== FUNCTION DETAILS ==================== -->
-<a name="section-FunctionDetails"></a>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="table-header">
- <td align="left" colspan="2" class="table-header">
- <span class="table-header">Function Details</span></td>
-</tr>
-</table>
-<a name="cssmin"></a>
-<div>
-<table class="details" border="1" cellpadding="3"
- cellspacing="0" width="100%" bgcolor="white">
-<tr><td>
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
- <tr valign="top"><td>
- <h3 class="epydoc"><span class="sig"><span class="sig-name">cssmin</span>(<span class="sig-arg">style</span>,
- <span class="sig-arg">keep_bang_comments</span>=<span class="sig-default">False</span>)</span>
- </h3>
- </td><td align="right" valign="top"
- ><span class="codelink"><a href="rcssmin-pysrc.html#cssmin">source&nbsp;code</a></span>&nbsp;
- </td>
- </tr></table>
-
- Minify CSS.
- <dl class="fields">
- <dt>Parameters:</dt>
- <dd><ul class="nomargin-top">
- <li><strong class="pname"><code>style</code></strong> (<tt class="rst-docutils literal">str</tt>) - CSS to minify</li>
- <li><strong class="pname"><code>keep_bang_comments</code></strong> (<tt class="rst-docutils literal">bool</tt>) - Keep comments starting with an exclamation mark? (<tt class="rst-docutils literal"><span class="pre">/*!...*/</span></tt>)</li>
- </ul></dd>
- <dt>Returns: <tt class="rst-docutils literal">str</tt></dt>
- <dd>Minified style</dd>
- </dl>
-</td></tr></table>
-</div>
-<br />
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
- bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="middle">
- <!-- Home link -->
- <th bgcolor="#70b0f0" class="navbar-select"
- >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Tree link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Index link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Help link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Project homepage -->
- <th class="navbar" align="right" width="100%">
- <table border="0" cellpadding="0" cellspacing="0">
- <tr><th class="navbar" align="center"
- ><a href="http://opensource.perlig.de/rcssmin/" target="_top">Visit rcssmin Online</a></th>
- </tr></table></th>
- </tr>
-</table>
-
-<script type="text/javascript">
- <!--
- // Private objects are initially displayed (because if
- // javascript is turned off then we want them to be
- // visible); but by default, we want to hide them. So hide
- // them unless we have a cookie that says to show them.
- checkCookie();
- // -->
-</script>
-</body>
-</html>
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/rcssmin-pysrc.html b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/rcssmin-pysrc.html
deleted file mode 100644
index 6856baca0e6..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/rcssmin-pysrc.html
+++ /dev/null
@@ -1,477 +0,0 @@
-<?xml version="1.0" encoding="ascii"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>rcssmin</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css" />
- <script type="text/javascript" src="epydoc.js"></script>
-</head>
-
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
- bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="middle">
- <!-- Home link -->
- <th bgcolor="#70b0f0" class="navbar-select"
- >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Tree link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Index link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Help link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Project homepage -->
- <th class="navbar" align="right" width="100%">
- <table border="0" cellpadding="0" cellspacing="0">
- <tr><th class="navbar" align="center"
- ><a href="http://opensource.perlig.de/rcssmin/" target="_top">Visit rcssmin Online</a></th>
- </tr></table></th>
- </tr>
-</table>
-<table width="100%" cellpadding="0" cellspacing="0">
- <tr valign="top">
- <td width="100%">
- <span class="breadcrumbs">
- Module&nbsp;rcssmin
- </span>
- </td>
- <td>
- <table cellpadding="0" cellspacing="0">
- <!-- hide/show private -->
- </table>
- </td>
- </tr>
-</table>
-<h1 class="epydoc">Source Code for <a href="rcssmin-module.html">Module rcssmin</a></h1>
-<pre class="py-src">
-<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
-<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"># -*- coding: ascii -*-</tt> </tt>
-<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-docstring">r"""</tt> </tt>
-<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-docstring">==============</tt> </tt>
-<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-docstring"> CSS Minifier</tt> </tt>
-<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-docstring">==============</tt> </tt>
-<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-docstring">CSS Minifier.</tt> </tt>
-<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-docstring">The minifier is based on the semantics of the `YUI compressor`_\\, which</tt> </tt>
-<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-docstring">itself is based on `the rule list by Isaac Schlueter`_\\.</tt> </tt>
-<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-docstring">:Copyright:</tt> </tt>
-<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-docstring"> Copyright 2011 - 2014</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-docstring"> Andr\xe9 Malo or his licensors, as applicable</tt> </tt>
-<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-docstring">:License:</tt> </tt>
-<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring"> Licensed under the Apache License, Version 2.0 (the "License");</tt> </tt>
-<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring"> you may not use this file except in compliance with the License.</tt> </tt>
-<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-docstring"> You may obtain a copy of the License at</tt> </tt>
-<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"><tt class="py-docstring"> http://www.apache.org/licenses/LICENSE-2.0</tt> </tt>
-<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-docstring"> Unless required by applicable law or agreed to in writing, software</tt> </tt>
-<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-docstring"> distributed under the License is distributed on an "AS IS" BASIS,</tt> </tt>
-<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-docstring"> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</tt> </tt>
-<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-docstring"> See the License for the specific language governing permissions and</tt> </tt>
-<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-docstring"> limitations under the License.</tt> </tt>
-<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-docstring">This module is a re-implementation aiming for speed instead of maximum</tt> </tt>
-<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-docstring">compression, so it can be used at runtime (rather than during a preprocessing</tt> </tt>
-<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-docstring">step). RCSSmin does syntactical compression only (removing spaces, comments</tt> </tt>
-<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring">and possibly semicolons). It does not provide semantic compression (like</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-docstring">removing empty blocks, collapsing redundant properties etc). It does, however,</tt> </tt>
-<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-docstring">support various CSS hacks (by keeping them working as intended).</tt> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-docstring">Here's a feature list:</tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-docstring">- Strings are kept, except that escaped newlines are stripped</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-docstring">- Space/Comments before the very end or before various characters are</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-docstring"> stripped: ``:{});=&gt;+],!`` (The colon (``:``) is a special case, a single</tt> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-docstring"> space is kept if it's outside a ruleset.)</tt> </tt>
-<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-docstring">- Space/Comments at the very beginning or after various characters are</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring"> stripped: ``{}(=:&gt;+[,!``</tt> </tt>
-<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-docstring">- Optional space after unicode escapes is kept, resp. replaced by a simple</tt> </tt>
-<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-docstring"> space</tt> </tt>
-<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-docstring">- whitespaces inside ``url()`` definitions are stripped</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-docstring">- Comments starting with an exclamation mark (``!``) can be kept optionally.</tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-docstring">- All other comments and/or whitespace characters are replaced by a single</tt> </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-docstring"> space.</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-docstring">- Multiple consecutive semicolons are reduced to one</tt> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-docstring">- The last semicolon within a ruleset is stripped</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-docstring">- CSS Hacks supported:</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-docstring"> - IE7 hack (``&gt;/**/``)</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> - Mac-IE5 hack (``/*\\*/.../**/``)</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-docstring"> - The boxmodelhack is supported naturally because it relies on valid CSS2</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-docstring"> strings</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-docstring"> - Between ``:first-line`` and the following comma or curly brace a space is</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-docstring"> inserted. (apparently it's needed for IE6)</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-docstring"> - Same for ``:first-letter``</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-docstring">rcssmin.c is a reimplementation of rcssmin.py in C and improves runtime up to</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-docstring">factor 100 or so (depending on the input). docs/BENCHMARKS in the source</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt class="py-docstring">distribution contains the details.</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-docstring">Both python 2 (&gt;= 2.4) and python 3 are supported.</tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"><tt class="py-docstring">.. _YUI compressor: https://github.com/yui/yuicompressor/</tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-docstring">.. _the rule list by Isaac Schlueter: https://github.com/isaacs/cssmin/</tt> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-0" class="py-name" targets="Variable rcssmin.__doc__=rcssmin-module.html#__doc__"><a title="rcssmin.__doc__" class="py-name" href="#" onclick="return doclink('link-0', '__doc__', 'link-0');">__doc__</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-comment"># pylint: disable = W0622</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt id="link-1" class="py-name"><a title="rcssmin.__doc__" class="py-name" href="#" onclick="return doclink('link-1', '__doc__', 'link-0');">__doc__</a></tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name"><a title="rcssmin.__doc__" class="py-name" href="#" onclick="return doclink('link-2', '__doc__', 'link-0');">__doc__</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'ascii'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">'unicode_escape'</tt><tt class="py-op">)</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-name">__author__</tt> <tt class="py-op">=</tt> <tt class="py-string">r"Andr\xe9 Malo"</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'ascii'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">'unicode_escape'</tt><tt class="py-op">)</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-name">__docformat__</tt> <tt class="py-op">=</tt> <tt class="py-string">"restructuredtext en"</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable rcssmin.__license__=rcssmin-module.html#__license__"><a title="rcssmin.__license__" class="py-name" href="#" onclick="return doclink('link-3', '__license__', 'link-3');">__license__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"Apache License, Version 2.0"</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-name">__version__</tt> <tt class="py-op">=</tt> <tt class="py-string">'1.0.5'</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-name">__all__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'cssmin'</tt><tt class="py-op">]</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> <tt class="py-keyword">as</tt> <tt class="py-name">_re</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> </tt>
-<a name="_make_cssmin"></a><div id="_make_cssmin-def"><a name="L87"></a><tt class="py-lineno"> 87</tt> <a class="py-toggle" href="#" id="_make_cssmin-toggle" onclick="return toggle('_make_cssmin');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="rcssmin-module.html#_make_cssmin">_make_cssmin</a><tt class="py-op">(</tt><tt class="py-param">python_only</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_make_cssmin-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_make_cssmin-expanded"><a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-docstring"> Generate CSS minifier.</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"> :Parameters:</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> `python_only` : ``bool``</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> Use only the python variant. If true, the c extension is not even</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> tried to be loaded.</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> :Return: Minifier</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> :Rtype: ``callable``</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-comment"># pylint: disable = R0912, R0914, W0612</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">python_only</tt><tt class="py-op">:</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">_rcssmin</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">_rcssmin</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Function rcssmin.cssmin()=rcssmin-module.html#cssmin"><a title="rcssmin.cssmin" class="py-name" href="#" onclick="return doclink('link-4', 'cssmin', 'link-4');">cssmin</a></tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-name">nl</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:[\n\f]|\r\n?)'</tt> <tt class="py-comment"># pylint: disable = C0103</tt> </tt>
-<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">spacechar</tt> <tt class="py-op">=</tt> <tt class="py-string">r'[\r\n\f\040\t]'</tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">unicoded</tt> <tt class="py-op">=</tt> <tt class="py-string">r'[0-9a-fA-F]{1,6}(?:[\040\n\t\f]|\r\n?)?'</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">escaped</tt> <tt class="py-op">=</tt> <tt class="py-string">r'[^\n\r\f0-9a-fA-F]'</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-name">escape</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:\\(?:%(unicoded)s|%(escaped)s))'</tt> <tt class="py-op">%</tt> <tt class="py-name">locals</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">nmchar</tt> <tt class="py-op">=</tt> <tt class="py-string">r'[^\000-\054\056\057\072-\100\133-\136\140\173-\177]'</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-comment">#nmstart = r'[^\000-\100\133-\136\140\173-\177]'</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-comment">#ident = (r'(?:'</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-comment"># r'-?(?:%(nmstart)s|%(escape)s)%(nmchar)s*(?:%(escape)s%(nmchar)s*)*'</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-comment">#r')') % locals()</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">comment</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:/\*[^*]*\*+(?:[^/*][^*]*\*+)*/)'</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-comment"># only for specific purposes. The bang is grouped:</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-name">_bang_comment</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:/\*(!?)[^*]*\*+(?:[^/*][^*]*\*+)*/)'</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-name">string1</tt> <tt class="py-op">=</tt> \ </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-string">r'(?:\047[^\047\\\r\n\f]*(?:\\[^\r\n\f][^\047\\\r\n\f]*)*\047)'</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-name">string2</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:"[^"\\\r\n\f]*(?:\\[^\r\n\f][^"\\\r\n\f]*)*")'</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-name">strings</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:%s|%s)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">string1</tt><tt class="py-op">,</tt> <tt class="py-name">string2</tt><tt class="py-op">)</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">nl_string1</tt> <tt class="py-op">=</tt> \ </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-string">r'(?:\047[^\047\\\r\n\f]*(?:\\(?:[^\r]|\r\n?)[^\047\\\r\n\f]*)*\047)'</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-name">nl_string2</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:"[^"\\\r\n\f]*(?:\\(?:[^\r]|\r\n?)[^"\\\r\n\f]*)*")'</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-name">nl_strings</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:%s|%s)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">nl_string1</tt><tt class="py-op">,</tt> <tt class="py-name">nl_string2</tt><tt class="py-op">)</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-name">uri_nl_string1</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:\047[^\047\\]*(?:\\(?:[^\r]|\r\n?)[^\047\\]*)*\047)'</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-name">uri_nl_string2</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:"[^"\\]*(?:\\(?:[^\r]|\r\n?)[^"\\]*)*")'</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-name">uri_nl_strings</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:%s|%s)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">uri_nl_string1</tt><tt class="py-op">,</tt> <tt class="py-name">uri_nl_string2</tt><tt class="py-op">)</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-name">nl_escaped</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:\\%(nl)s)'</tt> <tt class="py-op">%</tt> <tt class="py-name">locals</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-name">space</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:%(spacechar)s|%(comment)s)'</tt> <tt class="py-op">%</tt> <tt class="py-name">locals</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-name">ie7hack</tt> <tt class="py-op">=</tt> <tt class="py-string">r'(?:&gt;/\*\*/)'</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">r'(?:'</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-comment"># noqa pylint: disable = C0330</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-string">r'(?:[^\000-\040"\047()\\\177]*'</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-string">r'(?:%(escape)s[^\000-\040"\047()\\\177]*)*)'</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-string">r'(?:'</tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-string">r'(?:%(spacechar)s+|%(nl_escaped)s+)'</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-string">r'(?:'</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-string">r'(?:[^\000-\040"\047()\\\177]|%(escape)s|%(nl_escaped)s)'</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-string">r'[^\000-\040"\047()\\\177]*'</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-string">r'(?:%(escape)s[^\000-\040"\047()\\\177]*)*'</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-string">r')+'</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-string">r')*'</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-string">r')'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">locals</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> <tt class="py-name">nl_unesc_sub</tt> <tt class="py-op">=</tt> <tt class="py-name">_re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-name">nl_escaped</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-name">uri_space_sub</tt> <tt class="py-op">=</tt> <tt class="py-name">_re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-op">(</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-string">r'(%(escape)s+)|%(spacechar)s+|%(nl_escaped)s+'</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">locals</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-name">uri_space_subber</tt> <tt class="py-op">=</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">m</tt><tt class="py-op">:</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt class="py-name">groups</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-name">space_sub_simple</tt> <tt class="py-op">=</tt> <tt class="py-name">_re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-op">(</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-string">r'[\r\n\f\040\t;]+|(%(comment)s+)'</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">locals</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-name">space_sub_banged</tt> <tt class="py-op">=</tt> <tt class="py-name">_re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-op">(</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-string">r'[\r\n\f\040\t;]+|(%(_bang_comment)s+)'</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">locals</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">post_esc_sub</tt> <tt class="py-op">=</tt> <tt class="py-name">_re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'[\r\n\f\t]+'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">main_sub</tt> <tt class="py-op">=</tt> <tt class="py-name">_re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-op">(</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-comment"># noqa pylint: disable = C0330</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-string">r'([^\\"\047u&gt;@\r\n\f\040\t/;:{}]+)'</tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-string">r'|(?&lt;=[{}(=:&gt;+[,!])(%(space)s+)'</tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-string">r'|^(%(space)s+)'</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-string">r'|(%(space)s+)(?=(([:{});=&gt;+\],!])|$)?)'</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-string">r'|;(%(space)s*(?:;%(space)s*)*)(?=(\})?)'</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-string">r'|(\{)'</tt> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-string">r'|(\})'</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-string">r'|(%(strings)s)'</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-string">r'|(?&lt;!%(nmchar)s)url\(%(spacechar)s*('</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-string">r'%(uri_nl_strings)s'</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-string">r'|%(uri)s'</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-string">r')%(spacechar)s*\)'</tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-string">r'|(@(?:'</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-string">r'[mM][eE][dD][iI][aA]'</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-string">r'|[sS][uU][pP][pP][oO][rR][tT][sS]'</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-string">r'|[dD][oO][cC][uU][mM][eE][nN][tT]'</tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-string">r'|(?:-(?:'</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-string">r'[wW][eE][bB][kK][iI][tT]|[mM][oO][zZ]|[oO]|[mM][sS]'</tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-string">r')-)?'</tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-string">r'[kK][eE][yY][fF][rR][aA][mM][eE][sS]'</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-string">r'))(?!%(nmchar)s)'</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-string">r'|(%(ie7hack)s)(%(space)s*)'</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-string">r'|(:[fF][iI][rR][sS][tT]-[lL]'</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-string">r'(?:[iI][nN][eE]|[eE][tT][tT][eE][rR]))'</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-string">r'(%(space)s*)(?=[{,])'</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-string">r'|(%(nl_strings)s)'</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-string">r'|(%(escape)s[^\\"\047u&gt;@\r\n\f\040\t/;:{}]*)'</tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">locals</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt> </tt>
-<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-comment">#print main_sub.__self__.pattern</tt> </tt>
-<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">main_subber</tt><tt class="py-op">(</tt><tt class="py-param">keep_bang_comments</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-docstring">""" Make main subber """</tt> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-name">in_macie5</tt><tt class="py-op">,</tt> <tt class="py-name">in_rule</tt><tt class="py-op">,</tt> <tt class="py-name">at_group</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> </tt>
-<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">keep_bang_comments</tt><tt class="py-op">:</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-name">space_sub</tt> <tt class="py-op">=</tt> <tt class="py-name">space_sub_banged</tt> </tt>
-<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">space_subber</tt><tt class="py-op">(</tt><tt class="py-param">match</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-docstring">""" Space|Comment subber """</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">lastindex</tt><tt class="py-op">:</tt> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-name">group1</tt><tt class="py-op">,</tt> <tt class="py-name">group2</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">group2</tt><tt class="py-op">:</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">group1</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">r'\*/'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-name">in_macie5</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-name">in_macie5</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">group1</tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">group1</tt><tt class="py-op">:</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">group1</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">r'\*/'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">in_macie5</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-name">in_macie5</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">r'/*\*/'</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">in_macie5</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-name">in_macie5</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'/**/'</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
-</div><a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">space_sub</tt> <tt class="py-op">=</tt> <tt class="py-name">space_sub_simple</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">space_subber</tt><tt class="py-op">(</tt><tt class="py-param">match</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-docstring">""" Space|Comment subber """</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">lastindex</tt><tt class="py-op">:</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">r'\*/'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">in_macie5</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-name">in_macie5</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">r'/*\*/'</tt> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">in_macie5</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-name">in_macie5</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'/**/'</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
-</div><a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">fn_space_post</tt><tt class="py-op">(</tt><tt class="py-param">group</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-docstring">""" space with token after """</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">6</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">':'</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">in_rule</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">at_group</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">space_sub</tt><tt class="py-op">(</tt><tt class="py-name">space_subber</tt><tt class="py-op">,</tt> <tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">space_sub</tt><tt class="py-op">(</tt><tt class="py-name">space_subber</tt><tt class="py-op">,</tt> <tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">fn_semicolon</tt><tt class="py-op">(</tt><tt class="py-param">group</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-docstring">""" ; handler """</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">';'</tt> <tt class="py-op">+</tt> <tt class="py-name">space_sub</tt><tt class="py-op">(</tt><tt class="py-name">space_subber</tt><tt class="py-op">,</tt> <tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">7</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">fn_semicolon2</tt><tt class="py-op">(</tt><tt class="py-param">group</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-docstring">""" ; handler """</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">in_rule</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">space_sub</tt><tt class="py-op">(</tt><tt class="py-name">space_subber</tt><tt class="py-op">,</tt> <tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">7</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">';'</tt> <tt class="py-op">+</tt> <tt class="py-name">space_sub</tt><tt class="py-op">(</tt><tt class="py-name">space_subber</tt><tt class="py-op">,</tt> <tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">7</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">fn_open</tt><tt class="py-op">(</tt><tt class="py-param">_</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-docstring">""" { handler """</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">at_group</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-name">at_group</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-name">in_rule</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'{'</tt> </tt>
-</div><a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">fn_close</tt><tt class="py-op">(</tt><tt class="py-param">_</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-docstring">""" } handler """</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-name">in_rule</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'}'</tt> </tt>
-</div><a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> </tt>
-<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">fn_at_group</tt><tt class="py-op">(</tt><tt class="py-param">group</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-docstring">""" @xxx group handler """</tt> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-name">at_group</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">13</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> </tt>
-<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">fn_ie7hack</tt><tt class="py-op">(</tt><tt class="py-param">group</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-docstring">""" IE7 Hack handler """</tt> </tt>
-<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">in_rule</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">at_group</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-name">in_macie5</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">14</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">space_sub</tt><tt class="py-op">(</tt><tt class="py-name">space_subber</tt><tt class="py-op">,</tt> <tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'&gt;'</tt> <tt class="py-op">+</tt> <tt class="py-name">space_sub</tt><tt class="py-op">(</tt><tt class="py-name">space_subber</tt><tt class="py-op">,</tt> <tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">15</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> <tt class="py-name">table</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"> <tt class="py-comment"># noqa pylint: disable = C0330</tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-name">fn_space_post</tt><tt class="py-op">,</tt> <tt class="py-comment"># space with token after</tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-name">fn_space_post</tt><tt class="py-op">,</tt> <tt class="py-comment"># space with token after</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"> <tt class="py-name">fn_space_post</tt><tt class="py-op">,</tt> <tt class="py-comment"># space with token after</tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"> <tt class="py-name">fn_semicolon</tt><tt class="py-op">,</tt> <tt class="py-comment"># semicolon</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-name">fn_semicolon2</tt><tt class="py-op">,</tt> <tt class="py-comment"># semicolon</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"> <tt class="py-name">fn_open</tt><tt class="py-op">,</tt> <tt class="py-comment"># {</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"> <tt class="py-name">fn_close</tt><tt class="py-op">,</tt> <tt class="py-comment"># }</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"> <tt class="py-keyword">lambda</tt> <tt class="py-name">g</tt><tt class="py-op">:</tt> <tt class="py-name">g</tt><tt class="py-op">(</tt><tt class="py-number">11</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-comment"># string</tt> </tt>
-<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"> <tt class="py-keyword">lambda</tt> <tt class="py-name">g</tt><tt class="py-op">:</tt> <tt class="py-string">'url(%s)'</tt> <tt class="py-op">%</tt> <tt class="py-name">uri_space_sub</tt><tt class="py-op">(</tt><tt class="py-name">uri_space_subber</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">(</tt><tt class="py-number">12</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-comment"># url(...)</tt> </tt>
-<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> <tt class="py-name">fn_at_group</tt><tt class="py-op">,</tt> <tt class="py-comment"># @xxx expecting {...}</tt> </tt>
-<a name="L312"></a><tt class="py-lineno">312</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">fn_ie7hack</tt><tt class="py-op">,</tt> <tt class="py-comment"># ie7hack</tt> </tt>
-<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-keyword">lambda</tt> <tt class="py-name">g</tt><tt class="py-op">:</tt> <tt class="py-name">g</tt><tt class="py-op">(</tt><tt class="py-number">16</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">space_sub</tt><tt class="py-op">(</tt><tt class="py-name">space_subber</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">(</tt><tt class="py-number">17</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-comment"># :first-line|letter followed</tt> </tt>
-<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"> <tt class="py-comment"># by [{,] (apparently space</tt> </tt>
-<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"> <tt class="py-comment"># needed for IE6)</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"> <tt class="py-keyword">lambda</tt> <tt class="py-name">g</tt><tt class="py-op">:</tt> <tt class="py-name">nl_unesc_sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">(</tt><tt class="py-number">18</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-comment"># nl_string</tt> </tt>
-<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"> <tt class="py-keyword">lambda</tt> <tt class="py-name">g</tt><tt class="py-op">:</tt> <tt class="py-name">post_esc_sub</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">(</tt><tt class="py-number">19</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-comment"># escape</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"> <tt class="py-op">)</tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">func</tt><tt class="py-op">(</tt><tt class="py-param">match</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"> <tt class="py-docstring">""" Main subber """</tt> </tt>
-<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"> <tt class="py-name">idx</tt><tt class="py-op">,</tt> <tt class="py-name">group</tt> <tt class="py-op">=</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">lastindex</tt><tt class="py-op">,</tt> <tt class="py-name">match</tt><tt class="py-op">.</tt><tt class="py-name">group</tt> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">idx</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">table</tt><tt class="py-op">[</tt><tt class="py-name">idx</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">group</tt><tt class="py-op">)</tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"> </tt>
-<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"> <tt class="py-comment"># shortcuts for frequent operations below:</tt> </tt>
-<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">idx</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> <tt class="py-comment"># not interesting</tt> </tt>
-<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-comment">#else: # space with token before or at the beginning</tt> </tt>
-<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">space_sub</tt><tt class="py-op">(</tt><tt class="py-name">space_subber</tt><tt class="py-op">,</tt> <tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-name">idx</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">func</tt> </tt>
-</div><a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> </tt>
-<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"> <tt class="py-keyword">def</tt> <tt class="py-def-name">cssmin</tt><tt class="py-op">(</tt><tt class="py-param">style</tt><tt class="py-op">,</tt> <tt class="py-param">keep_bang_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-comment"># pylint: disable = W0621</tt> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
-<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"><tt class="py-docstring"> Minify CSS.</tt> </tt>
-<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"><tt class="py-docstring"> :Parameters:</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"><tt class="py-docstring"> `style` : ``str``</tt> </tt>
-<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"><tt class="py-docstring"> CSS to minify</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt> <tt class="py-line"><tt class="py-docstring"> `keep_bang_comments` : ``bool``</tt> </tt>
-<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"><tt class="py-docstring"> Keep comments starting with an exclamation mark? (``/*!...*/``)</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"><tt class="py-docstring"> :Return: Minified style</tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"><tt class="py-docstring"> :Rtype: ``str``</tt> </tt>
-<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">main_sub</tt><tt class="py-op">(</tt><tt class="py-name">main_subber</tt><tt class="py-op">(</tt><tt class="py-name">keep_bang_comments</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">style</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-5" class="py-name"><a title="rcssmin.cssmin" class="py-name" href="#" onclick="return doclink('link-5', 'cssmin', 'link-4');">cssmin</a></tt> </tt>
-</div><a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"><tt id="link-6" class="py-name"><a title="rcssmin.cssmin" class="py-name" href="#" onclick="return doclink('link-6', 'cssmin', 'link-4');">cssmin</a></tt> <tt class="py-op">=</tt> <tt class="py-name">_make_cssmin</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
-<a name="main"></a><div id="main-def"><a name="L359"></a><tt class="py-lineno">359</tt> <a class="py-toggle" href="#" id="main-toggle" onclick="return toggle('main');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="rcssmin-module.html#main">main</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="main-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="main-expanded"><a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"> <tt class="py-docstring">""" Main """</tt> </tt>
-<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> <tt class="py-keyword">as</tt> <tt class="py-name">_sys</tt> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt class="py-name">keep_bang_comments</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> </tt>
-<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"> <tt class="py-string">'-b'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">_sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"> <tt class="py-keyword">or</tt> <tt class="py-string">'-bp'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">_sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"> <tt class="py-keyword">or</tt> <tt class="py-string">'-pb'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">_sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-op">)</tt> </tt>
-<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-string">'-p'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">_sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-keyword">or</tt> <tt class="py-string">'-bp'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">_sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> \ </tt>
-<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-keyword">or</tt> <tt class="py-string">'-pb'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">_sys</tt><tt class="py-op">.</tt><tt class="py-name">argv</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"> <tt class="py-keyword">global</tt> <tt id="link-7" class="py-name"><a title="rcssmin.cssmin" class="py-name" href="#" onclick="return doclink('link-7', 'cssmin', 'link-4');">cssmin</a></tt> <tt class="py-comment"># pylint: disable = W0603</tt> </tt>
-<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt id="link-8" class="py-name"><a title="rcssmin.cssmin" class="py-name" href="#" onclick="return doclink('link-8', 'cssmin', 'link-4');">cssmin</a></tt> <tt class="py-op">=</tt> <tt class="py-name">_make_cssmin</tt><tt class="py-op">(</tt><tt class="py-name">python_only</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"> <tt class="py-name">_sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt id="link-9" class="py-name"><a title="rcssmin.cssmin" class="py-name" href="#" onclick="return doclink('link-9', 'cssmin', 'link-4');">cssmin</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-name">_sys</tt><tt class="py-op">.</tt><tt class="py-name">stdin</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">keep_bang_comments</tt><tt class="py-op">=</tt><tt class="py-name">keep_bang_comments</tt> </tt>
-<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"> <tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"> <tt class="py-name">main</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"> </tt><script type="text/javascript">
-<!--
-expandto(location.href);
-// -->
-</script>
-</pre>
-<br />
-<!-- ==================== NAVIGATION BAR ==================== -->
-<table class="navbar" border="0" width="100%" cellpadding="0"
- bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="middle">
- <!-- Home link -->
- <th bgcolor="#70b0f0" class="navbar-select"
- >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Tree link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Index link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Help link -->
- <th>&nbsp;&nbsp;&nbsp;<a
- href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
-
- <!-- Project homepage -->
- <th class="navbar" align="right" width="100%">
- <table border="0" cellpadding="0" cellspacing="0">
- <tr><th class="navbar" align="center"
- ><a href="http://opensource.perlig.de/rcssmin/" target="_top">Visit rcssmin Online</a></th>
- </tr></table></th>
- </tr>
-</table>
-
-<script type="text/javascript">
- <!--
- // Private objects are initially displayed (because if
- // javascript is turned off then we want them to be
- // visible); but by default, we want to hide them. So hide
- // them unless we have a cookie that says to show them.
- checkCookie();
- // -->
-</script>
-</body>
-</html>
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/redirect.html b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/redirect.html
deleted file mode 100644
index 95728fdf177..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/docs/apidoc/redirect.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<html><head><title>Epydoc Redirect Page</title>
-<meta http-equiv="cache-control" content="no-cache" />
-<meta http-equiv="expires" content="0" />
-<meta http-equiv="pragma" content="no-cache" />
- <script type="text/javascript" src="epydoc.js"></script>
-</head>
-<body>
-<script type="text/javascript">
-<!--
-var pages = ["rcssmin-m"];
-var dottedName = get_anchor();
-if (dottedName) {
- var target = redirect_url(dottedName);
- if (target) window.location.replace(target);
-}
-// -->
-</script>
-
-<h3>Epydoc Auto-redirect page</h3>
-
-<p>When javascript is enabled, this page will redirect URLs of
-the form <tt>redirect.html#<i>dotted.name</i></tt> to the
-documentation for the object with the given fully-qualified
-dotted name.</p>
-<p><a id="message"> &nbsp; </a></p>
-
-<script type="text/javascript">
-<!--
-if (dottedName) {
- var msg = document.getElementById("message");
- msg.innerHTML = "No documentation found for <tt>"+
- dottedName+"</tt>";
-}
-// -->
-</script>
-
-</body>
-</html>
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/package.cfg b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/package.cfg
deleted file mode 100644
index c09bbd0365b..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/package.cfg
+++ /dev/null
@@ -1,84 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright 2009 - 2014
-# André Malo or his licensors, as applicable
-#
-# 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.
-
-[package]
-name = rcssmin
-
-python.min = 2.3
-python.max = 3.4
-pypy.min = 1.9
-pypy.max = 2.2
-jython.min = 2.5
-jython.max = 2.7
-
-version.number = 1.0.5
-
-author.name = André Malo
-author.email = nd@perlig.de
-#maintainer.name =
-#maintainer.email =
-url.homepage = http://opensource.perlig.de/rcssmin/
-url.download = http://storage.perlig.de/rcssmin/
-
-
-[docs]
-meta.classifiers = docs/CLASSIFIERS
-meta.description = docs/DESCRIPTION
-meta.summary = docs/SUMMARY
-meta.provides = docs/PROVIDES
-meta.license = LICENSE
-meta.keywords =
- CSS
- Minimization
-
-apidoc.dir = docs/apidoc
-apidoc.strip = 1
-#apidoc.ignore =
-
-#userdoc.dir = docs/userdoc
-#userdoc.strip = 1
-#userdoc.ignore =
-# .buildinfo
-
-#examples.dir = docs/examples
-#examples.strip = 1
-#examples.ignore =
-
-#man =
-
-extra =
- README.rst
- docs/CHANGES
- docs/BENCHMARKS
-
-
-[manifest]
-#packages.lib = .
-#packages.collect =
-modules = rcssmin
-
-packages.extra =
- _setup.py2.term
- _setup.py3.term
-
-#scripts =
-
-dist =
- tests
- run_tests.py
- bench
- bench.sh
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/rcssmin.c b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/rcssmin.c
deleted file mode 100644
index a722fc276a9..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/rcssmin.c
+++ /dev/null
@@ -1,1163 +0,0 @@
-/*
- * Copyright 2011 - 2014
- * Andr\xe9 Malo or his licensors, as applicable
- *
- * 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.
- */
-
-#include "cext.h"
-EXT_INIT_FUNC;
-
-#ifdef EXT3
-typedef Py_UNICODE rchar;
-#else
-typedef unsigned char rchar;
-#endif
-#define U(c) ((rchar)(c))
-
-typedef struct {
- const rchar *start;
- const rchar *sentinel;
- const rchar *tsentinel;
- Py_ssize_t at_group;
- int in_macie5;
- int in_rule;
- int keep_bang_comments;
-} rcssmin_ctx_t;
-
-typedef enum {
- NEED_SPACE_MAYBE = 0,
- NEED_SPACE_NEVER
-} need_space_flag;
-
-
-#define RCSSMIN_DULL_BIT (1 << 0)
-#define RCSSMIN_HEX_BIT (1 << 1)
-#define RCSSMIN_ESC_BIT (1 << 2)
-#define RCSSMIN_SPACE_BIT (1 << 3)
-#define RCSSMIN_STRING_DULL_BIT (1 << 4)
-#define RCSSMIN_NMCHAR_BIT (1 << 5)
-#define RCSSMIN_URI_DULL_BIT (1 << 6)
-#define RCSSMIN_PRE_CHAR_BIT (1 << 7)
-#define RCSSMIN_POST_CHAR_BIT (1 << 8)
-
-static const unsigned short rcssmin_charmask[128] = {
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 28, 8, 21, 8, 8, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21,
- 28, 469, 4, 85, 85, 85, 85, 4,
- 149, 277, 85, 469, 469, 117, 85, 84,
- 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 468, 340, 85, 469, 468, 85,
- 84, 115, 115, 115, 115, 115, 115, 117,
- 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 213, 4, 341, 85, 117,
- 85, 115, 115, 115, 115, 115, 115, 117,
- 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 116, 117, 117,
- 117, 117, 117, 468, 85, 468, 85, 21
-};
-
-#define RCSSMIN_IS_DULL(c) ((U(c) > 127) || \
- (rcssmin_charmask[U(c) & 0x7F] & RCSSMIN_DULL_BIT))
-
-#define RCSSMIN_IS_HEX(c) ((U(c) <= 127) && \
- (rcssmin_charmask[U(c) & 0x7F] & RCSSMIN_HEX_BIT))
-
-#define RCSSMIN_IS_ESC(c) ((U(c) > 127) || \
- (rcssmin_charmask[U(c) & 0x7F] & RCSSMIN_ESC_BIT))
-
-#define RCSSMIN_IS_SPACE(c) ((U(c) <= 127) && \
- (rcssmin_charmask[U(c) & 0x7F] & RCSSMIN_SPACE_BIT))
-
-#define RCSSMIN_IS_STRING_DULL(c) ((U(c) > 127) || \
- (rcssmin_charmask[U(c) & 0x7F] & RCSSMIN_STRING_DULL_BIT))
-
-#define RCSSMIN_IS_NMCHAR(c) ((U(c) > 127) || \
- (rcssmin_charmask[U(c) & 0x7F] & RCSSMIN_NMCHAR_BIT))
-
-#define RCSSMIN_IS_URI_DULL(c) ((U(c) > 127) || \
- (rcssmin_charmask[U(c) & 0x7F] & RCSSMIN_URI_DULL_BIT))
-
-#define RCSSMIN_IS_PRE_CHAR(c) ((U(c) <= 127) && \
- (rcssmin_charmask[U(c) & 0x7F] & RCSSMIN_PRE_CHAR_BIT))
-
-#define RCSSMIN_IS_POST_CHAR(c) ((U(c) <= 127) && \
- (rcssmin_charmask[U(c) & 0x7F] & RCSSMIN_POST_CHAR_BIT))
-
-
-static const rchar pattern_url[] = {
- /*U('u'),*/ U('r'), U('l'), U('(')
-};
-
-static const rchar pattern_ie7[] = {
- /*U('>'),*/ U('/'), U('*'), U('*'), U('/')
-};
-
-static const rchar pattern_media[] = {
- U('m'), U('e'), U('d'), U('i'), U('a'),
- U('M'), U('E'), U('D'), U('I'), U('A')
-};
-
-static const rchar pattern_document[] = {
- U('d'), U('o'), U('c'), U('u'), U('m'), U('e'), U('n'), U('t'),
- U('D'), U('O'), U('C'), U('U'), U('M'), U('E'), U('N'), U('T')
-};
-
-static const rchar pattern_supports[] = {
- U('s'), U('u'), U('p'), U('p'), U('o'), U('r'), U('t'), U('s'),
- U('S'), U('U'), U('P'), U('P'), U('O'), U('R'), U('T'), U('S')
-};
-
-static const rchar pattern_keyframes[] = {
- U('k'), U('e'), U('y'), U('f'), U('r'), U('a'), U('m'), U('e'), U('s'),
- U('K'), U('E'), U('Y'), U('F'), U('R'), U('A'), U('M'), U('E'), U('S')
-};
-
-static const rchar pattern_vendor_o[] = {
- U('-'), U('o'), U('-'),
- U('-'), U('O'), U('-')
-};
-
-static const rchar pattern_vendor_moz[] = {
- U('-'), U('m'), U('o'), U('z'), U('-'),
- U('-'), U('M'), U('O'), U('Z'), U('-')
-};
-
-static const rchar pattern_vendor_webkit[] = {
- U('-'), U('w'), U('e'), U('b'), U('k'), U('i'), U('t'), U('-'),
- U('-'), U('W'), U('E'), U('B'), U('K'), U('I'), U('T'), U('-')
-};
-
-static const rchar pattern_vendor_ms[] = {
- U('-'), U('m'), U('s'), U('-'),
- U('-'), U('M'), U('S'), U('-')
-};
-
-static const rchar pattern_first[] = {
- U('f'), U('i'), U('r'), U('s'), U('t'), U('-'), U('l'),
- U('F'), U('I'), U('R'), U('S'), U('T'), U('-'), U('L')
-};
-
-static const rchar pattern_line[] = {
- U('i'), U('n'), U('e'),
- U('I'), U('N'), U('E'),
-};
-
-static const rchar pattern_letter[] = {
- U('e'), U('t'), U('t'), U('e'), U('r'),
- U('E'), U('T'), U('T'), U('E'), U('R')
-};
-
-static const rchar pattern_macie5_init[] = {
- U('/'), U('*'), U('\\'), U('*'), U('/')
-};
-
-static const rchar pattern_macie5_exit[] = {
- U('/'), U('*'), U('*'), U('/')
-};
-
-/*
- * Match a pattern (and copy immediately to target)
- */
-#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wstrict-overflow"
-#endif
-static int
-copy_match(const rchar *pattern, const rchar *psentinel,
- const rchar **source_, rchar **target_, rcssmin_ctx_t *ctx)
-{
- const rchar *source = *source_;
- rchar *target = *target_;
- rchar c;
-
- while (pattern < psentinel
- && source < ctx->sentinel && target < ctx->tsentinel
- && ((c = *source++) == *pattern++))
- *target++ = c;
-
- *source_ = source;
- *target_ = target;
-
- return (pattern == psentinel);
-}
-#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
-#pragma GCC diagnostic pop
-#endif
-
-#define MATCH(PAT, source, target, ctx) ( \
- copy_match(pattern_##PAT, \
- pattern_##PAT + sizeof(pattern_##PAT) / sizeof(rchar), \
- source, target, ctx) \
-)
-
-
-/*
- * Match a pattern (and copy immediately to target) - CI version
- */
-static int
-copy_imatch(const rchar *pattern, const rchar *psentinel,
- const rchar **source_, rchar **target_, rcssmin_ctx_t *ctx)
-{
- const rchar *source = *source_, *pstart = pattern;
- rchar *target = *target_;
- rchar c;
-
- while (pattern < psentinel
- && source < ctx->sentinel && target < ctx->tsentinel
- && ((c = *source++) == *pattern
- || c == pstart[(pattern - pstart) + (psentinel - pstart)])) {
- ++pattern;
- *target++ = c;
- }
-
- *source_ = source;
- *target_ = target;
-
- return (pattern == psentinel);
-}
-
-#define IMATCH(PAT, source, target, ctx) ( \
- copy_imatch(pattern_##PAT, \
- pattern_##PAT + sizeof(pattern_##PAT) / sizeof(rchar) / 2, \
- source, target, ctx) \
-)
-
-
-/*
- * Copy characters
- */
-#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wstrict-overflow"
-#endif
-static int
-copy(const rchar *source, const rchar *sentinel, rchar **target_,
- rcssmin_ctx_t *ctx)
-{
- rchar *target = *target_;
-
- while (source < sentinel && target < ctx->tsentinel)
- *target++ = *source++;
-
- *target_ = target;
-
- return (source == sentinel);
-}
-#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
-#pragma GCC diagnostic pop
-#endif
-
-#define COPY_PAT(PAT, target, ctx) ( \
- copy(pattern_##PAT, \
- pattern_##PAT + sizeof(pattern_##PAT) / sizeof(rchar), \
- target, ctx) \
-)
-
-
-/*
- * The ABORT macros work with known local variables!
- */
-#define ABORT_(RET) do { \
- if (source < ctx->sentinel && !(target < ctx->tsentinel)) { \
- *source_ = source; \
- *target_ = target; \
- } \
- return RET; \
-} while(0)
-
-
-#define CRAPPY_C90_COMPATIBLE_EMPTY
-#define ABORT ABORT_(CRAPPY_C90_COMPATIBLE_EMPTY)
-#define RABORT(RET) ABORT_((RET))
-
-
-/*
- * Copy escape
- */
-static void
-copy_escape(const rchar **source_, rchar **target_, rcssmin_ctx_t *ctx)
-{
- const rchar *source = *source_, *hsentinel;
- rchar *target = *target_;
- rchar c;
-
- *target++ = U('\\');
- *target_ = target;
-
- if (source < ctx->sentinel && target < ctx->tsentinel) {
- c = *source++;
- if (RCSSMIN_IS_ESC(c)) {
- *target++ = c;
- }
- else if (RCSSMIN_IS_HEX(c)) {
- *target++ = c;
-
- /* 6 hex chars max, one we got already */
- if (ctx->sentinel - source > 5)
- hsentinel = source + 5;
- else
- hsentinel = ctx->sentinel;
-
- while (source < hsentinel && target < ctx->tsentinel
- && (c = *source, RCSSMIN_IS_HEX(c))) {
- ++source;
- *target++ = c;
- }
-
- /* One optional space after */
- if (source < ctx->sentinel && target < ctx->tsentinel) {
- if (source == hsentinel)
- c = *source;
- if (RCSSMIN_IS_SPACE(c)) {
- ++source;
- *target++ = U(' ');
- if (c == U('\r') && source < ctx->sentinel
- && *source == U('\n'))
- ++source;
- }
- }
- }
- }
-
- *target_ = target;
- *source_ = source;
-}
-
-
-/*
- * Copy string
- */
-static void
-copy_string(const rchar **source_, rchar **target_, rcssmin_ctx_t *ctx)
-{
- const rchar *source = *source_;
- rchar *target = *target_;
- rchar c, quote = source[-1];
-
- *target++ = quote;
- *target_ = target;
-
- while (source < ctx->sentinel && target < ctx->tsentinel) {
- c = *target++ = *source++;
- if (RCSSMIN_IS_STRING_DULL(c))
- continue;
-
- switch (c) {
- case U('\''): case U('"'):
- if (c == quote) {
- *target_ = target;
- *source_ = source;
- return;
- }
- continue;
-
- case U('\\'):
- if (source < ctx->sentinel && target < ctx->tsentinel) {
- c = *source++;
- switch (c) {
- case U('\r'):
- if (source < ctx->sentinel && *source == U('\n'))
- ++source;
- /* fall through */
-
- case U('\n'): case U('\f'):
- --target;
- break;
-
- default:
- *target++ = c;
- }
- }
- continue;
- }
- break; /* forbidden characters */
- }
-
- ABORT;
-}
-
-
-/*
- * Copy URI string
- */
-static int
-copy_uri_string(const rchar **source_, rchar **target_, rcssmin_ctx_t *ctx)
-{
- const rchar *source = *source_;
- rchar *target = *target_;
- rchar c, quote = source[-1];
-
- *target++ = quote;
- *target_ = target;
-
- while (source < ctx->sentinel && target < ctx->tsentinel) {
- c = *source++;
- if (RCSSMIN_IS_SPACE(c))
- continue;
- *target++ = c;
- if (RCSSMIN_IS_STRING_DULL(c))
- continue;
-
- switch (c) {
- case U('\''): case U('"'):
- if (c == quote) {
- *target_ = target;
- *source_ = source;
- return 0;
- }
- continue;
-
- case U('\\'):
- if (source < ctx->sentinel && target < ctx->tsentinel) {
- c = *source;
- switch (c) {
- case U('\r'):
- if ((source + 1) < ctx->sentinel && source[1] == U('\n'))
- ++source;
- /* fall through */
-
- case U('\n'): case U('\f'):
- --target;
- ++source;
- break;
-
- default:
- --target;
- copy_escape(&source, &target, ctx);
- }
- }
- continue;
- }
-
- break; /* forbidden characters */
- }
-
- RABORT(-1);
-}
-
-
-/*
- * Copy URI (unquoted)
- */
-static int
-copy_uri_unquoted(const rchar **source_, rchar **target_, rcssmin_ctx_t *ctx)
-{
- const rchar *source = *source_;
- rchar *target = *target_;
- rchar c;
-
- *target++ = source[-1];
- *target_ = target;
-
- while (source < ctx->sentinel && target < ctx->tsentinel) {
- c = *source++;
- if (RCSSMIN_IS_SPACE(c))
- continue;
- *target++ = c;
- if (RCSSMIN_IS_URI_DULL(c))
- continue;
-
- switch (c) {
-
- case U(')'):
- *target_ = target - 1;
- *source_ = source - 1;
- return 0;
-
- case U('\\'):
- if (source < ctx->sentinel && target < ctx->tsentinel) {
- c = *source;
- switch (c) {
- case U('\r'):
- if ((source + 1) < ctx->sentinel && source[1] == U('\n'))
- ++source;
- /* fall through */
-
- case U('\n'): case U('\f'):
- --target;
- ++source;
- break;
-
- default:
- --target;
- copy_escape(&source, &target, ctx);
- }
- }
- continue;
- }
-
- break; /* forbidden characters */
- }
-
- RABORT(-1);
-}
-
-
-/*
- * Copy url
- */
-static void
-copy_url(const rchar **source_, rchar **target_, rcssmin_ctx_t *ctx)
-{
- const rchar *source = *source_;
- rchar *target = *target_;
- rchar c;
-
- *target++ = U('u');
- *target_ = target;
-
- /* Must not be inside an identifier */
- if ((source != ctx->start + 1) && RCSSMIN_IS_NMCHAR(source[-2]))
- return;
-
- if (!MATCH(url, &source, &target, ctx)
- || !(source < ctx->sentinel && target < ctx->tsentinel))
- ABORT;
-
- while (source < ctx->sentinel && RCSSMIN_IS_SPACE(*source))
- ++source;
-
- if (!(source < ctx->sentinel))
- ABORT;
-
- c = *source++;
- switch (c) {
- case U('"'): case U('\''):
- if (copy_uri_string(&source, &target, ctx) == -1)
- ABORT;
-
- while (source < ctx->sentinel && RCSSMIN_IS_SPACE(*source))
- ++source;
- break;
-
- default:
- if (copy_uri_unquoted(&source, &target, ctx) == -1)
- ABORT;
- }
-
- if (!(source < ctx->sentinel && target < ctx->tsentinel))
- ABORT;
-
- if ((*target++ = *source++) != U(')'))
- ABORT;
-
- *target_ = target;
- *source_ = source;
-}
-
-
-/*
- * Copy @-group
- */
-static void
-copy_at_group(const rchar **source_, rchar **target_, rcssmin_ctx_t *ctx)
-{
- const rchar *source = *source_;
- rchar *target = *target_;
-
- *target++ = U('@');
- *target_ = target;
-
-#define REMATCH(what) ( \
- source = *source_, \
- target = *target_, \
- IMATCH(what, &source, &target, ctx) \
-)
-#define CMATCH(what) IMATCH(what, &source, &target, ctx)
-
- if (( !CMATCH(media)
- && !REMATCH(supports)
- && !REMATCH(document)
- && !REMATCH(keyframes)
- && !(REMATCH(vendor_webkit) && CMATCH(keyframes))
- && !(REMATCH(vendor_moz) && CMATCH(keyframes))
- && !(REMATCH(vendor_o) && CMATCH(keyframes))
- && !(REMATCH(vendor_ms) && CMATCH(keyframes)))
- || !(source < ctx->sentinel && target < ctx->tsentinel)
- || RCSSMIN_IS_NMCHAR(*source))
- ABORT;
-
-#undef CMATCH
-#undef REMATCH
-
- ++ctx->at_group;
-
- *target_ = target;
- *source_ = source;
-}
-
-
-/*
- * Skip space
- */
-static const rchar *
-skip_space(const rchar *source, rcssmin_ctx_t *ctx)
-{
- const rchar *begin = source;
- int res;
- rchar c;
-
- while (source < ctx->sentinel) {
- c = *source;
- if (RCSSMIN_IS_SPACE(c)) {
- ++source;
- continue;
- }
- else if (c == U('/')) {
- ++source;
- if (!(source < ctx->sentinel && *source == U('*'))) {
- --source;
- break;
- }
- ++source;
- res = 0;
- while (source < ctx->sentinel) {
- c = *source++;
- if (c != U('*'))
- continue;
- if (!(source < ctx->sentinel))
- return begin;
- if (*source != U('/'))
- continue;
-
- /* Comment complete */
- ++source;
- res = 1;
- break;
- }
- if (!res)
- return begin;
-
- continue;
- }
-
- break;
- }
-
- return source;
-}
-
-
-/*
- * Copy space
- */
-static void
-copy_space(const rchar **source_, rchar **target_, rcssmin_ctx_t *ctx,
- need_space_flag need_space)
-{
- const rchar *source = *source_, *end, *comment;
- rchar *target = *target_;
- int res;
- rchar c;
-
- --source;
- if (need_space == NEED_SPACE_MAYBE
- && source > ctx->start
- && !RCSSMIN_IS_PRE_CHAR(source[-1])
- && (end = skip_space(source, ctx)) < ctx->sentinel
- && (!RCSSMIN_IS_POST_CHAR(*end)
- || (*end == U(':') && !ctx->in_rule && !ctx->at_group))) {
-
- if (!(target < ctx->tsentinel))
- ABORT;
- *target++ = U(' ');
- }
-
- while (source < ctx->sentinel) {
- switch (c = *source) {
-
- /* comment */
- case U('/'):
- comment = source++;
- if (!((source < ctx->sentinel && *source == U('*')))) {
- --source;
- break;
- }
- ++source;
- res = 0;
- while (source < ctx->sentinel) {
- c = *source++;
- if (c != U('*'))
- continue;
- if (!(source < ctx->sentinel))
- ABORT;
- if (*source != U('/'))
- continue;
-
- /* Comment complete */
- ++source;
- res = 1;
-
- if (ctx->keep_bang_comments && comment[2] == U('!')) {
- ctx->in_macie5 = (source[-3] == U('\\'));
- if (!copy(comment, source, &target, ctx))
- ABORT;
- }
- else if (source[-3] == U('\\')) {
- if (!ctx->in_macie5) {
- if (!COPY_PAT(macie5_init, &target, ctx))
- ABORT;
- }
- ctx->in_macie5 = 1;
- }
- else if (ctx->in_macie5) {
- if (!COPY_PAT(macie5_exit, &target, ctx))
- ABORT;
- ctx->in_macie5 = 0;
- }
- /* else don't copy anything */
- break;
- }
- if (!res)
- ABORT;
- continue;
-
- /* space */
- case U(' '): case U('\t'): case U('\r'): case U('\n'): case U('\f'):
- ++source;
- continue;
- }
-
- break;
- }
-
- *source_ = source;
- *target_ = target;
-}
-
-
-/*
- * Copy space if comment
- */
-static int
-copy_space_comment(const rchar **source_, rchar **target_,
- rcssmin_ctx_t *ctx, need_space_flag need_space)
-{
- const rchar *source = *source_;
- rchar *target = *target_;
-
- if (source < ctx->sentinel && *source == U('*')) {
- copy_space(source_, target_, ctx, need_space);
- if (*source_ > source)
- return 0;
- }
- if (!(target < ctx->tsentinel))
- RABORT(-1);
-
- *target++ = source[-1];
-
- /* *source_ = source; <-- unchanged */
- *target_ = target;
-
- return -1;
-}
-
-
-/*
- * Copy space if exists
- */
-static int
-copy_space_optional(const rchar **source_, rchar **target_,
- rcssmin_ctx_t *ctx)
-{
- const rchar *source = *source_;
-
- if (!(source < ctx->sentinel))
- return -1;
-
- if (*source == U('/')) {
- *source_ = source + 1;
- return copy_space_comment(source_, target_, ctx, NEED_SPACE_NEVER);
- }
- else if (RCSSMIN_IS_SPACE(*source)) {
- *source_ = source + 1;
- copy_space(source_, target_, ctx, NEED_SPACE_NEVER);
- return 0;
- }
-
- return -1;
-}
-
-
-/*
- * Copy :first-line|letter
- */
-static void
-copy_first(const rchar **source_, rchar **target_, rcssmin_ctx_t *ctx)
-{
- const rchar *source = *source_, *next, *source_fork;
- rchar *target = *target_, *target_fork;
-
- *target++ = U(':');
- *target_ = target;
-
- if (!IMATCH(first, &source, &target, ctx)
- || !(source < ctx->sentinel && target < ctx->tsentinel))
- ABORT;
-
- source_fork = source;
- target_fork = target;
-
- if (!IMATCH(line, &source, &target, ctx)) {
- source = source_fork;
- target = target_fork;
-
- if (!IMATCH(letter, &source, &target, ctx)
- || !(source < ctx->sentinel && target < ctx->tsentinel))
- ABORT;
- }
-
- next = skip_space(source, ctx);
- if (!(next < ctx->sentinel && target < ctx->tsentinel
- && (*next == U('{') || *next == U(','))))
- ABORT;
-
- *target++ = U(' ');
- *target_ = target;
- *source_ = source;
- (void)copy_space_optional(source_, target_, ctx);
-}
-
-
-/*
- * Copy IE7 hack
- */
-static void
-copy_ie7hack(const rchar **source_, rchar **target_, rcssmin_ctx_t *ctx)
-{
- const rchar *source = *source_;
- rchar *target = *target_;
-
- *target++ = U('>');
- *target_ = target;
-
- if (ctx->in_rule || ctx->at_group)
- return; /* abort */
-
- if (!MATCH(ie7, &source, &target, ctx))
- ABORT;
-
- ctx->in_macie5 = 0;
-
- *target_ = target;
- *source_ = source;
-
- (void)copy_space_optional(source_, target_, ctx);
-}
-
-
-/*
- * Copy semicolon; miss out duplicates or even this one (before '}')
- */
-static void
-copy_semicolon(const rchar **source_, rchar **target_, rcssmin_ctx_t *ctx)
-{
- const rchar *source = *source_, *begin, *end;
- rchar *target = *target_;
-
- begin = source;
- while (source < ctx->sentinel) {
- end = skip_space(source, ctx);
- if (!(end < ctx->sentinel)) {
- if (!(target < ctx->tsentinel))
- ABORT;
- *target++ = U(';');
- break;
- }
- switch (*end) {
- case U(';'):
- source = end + 1;
- continue;
-
- case U('}'):
- if (ctx->in_rule)
- break;
-
- /* fall through */
- default:
- if (!(target < ctx->tsentinel))
- ABORT;
- *target++ = U(';');
- break;
- }
-
- break;
- }
-
- source = begin;
- *target_ = target;
- while (source < ctx->sentinel) {
- if (*source == U(';')) {
- ++source;
- continue;
- }
-
- if (copy_space_optional(&source, target_, ctx) == 0)
- continue;
-
- break;
- }
-
- *source_ = source;
-}
-
-
-/*
- * Main function
- *
- * The return value determines the result length (kept in the target buffer).
- * However, if the target buffer is too small, the return value is greater
- * than tlength. The difference to tlength is the number of unconsumed source
- * characters at the time the buffer was full. In this case you should resize
- * the target buffer to the return value and call rcssmin again. Repeat as
- * often as needed.
- */
-static Py_ssize_t
-rcssmin(const rchar *source, rchar *target, Py_ssize_t slength,
- Py_ssize_t tlength, int keep_bang_comments)
-{
- rcssmin_ctx_t ctx_, *ctx = &ctx_;
- const rchar *tstart = target;
- rchar c;
-
- ctx->start = source;
- ctx->sentinel = source + slength;
- ctx->tsentinel = target + tlength;
- ctx->at_group = 0;
- ctx->in_macie5 = 0;
- ctx->in_rule = 0;
- ctx->keep_bang_comments = keep_bang_comments;
-
- while (source < ctx->sentinel && target < ctx->tsentinel) {
- c = *source++;
- if (RCSSMIN_IS_DULL(c)) {
- *target++ = c;
- continue;
- }
- else if (RCSSMIN_IS_SPACE(c)) {
- copy_space(&source, &target, ctx, NEED_SPACE_MAYBE);
- continue;
- }
-
- switch (c) {
-
- /* Escape */
- case U('\\'):
- copy_escape(&source, &target, ctx);
- continue;
-
- /* String */
- case U('"'): case U('\''):
- copy_string(&source, &target, ctx);
- continue;
-
- /* URL */
- case U('u'):
- copy_url(&source, &target, ctx);
- continue;
-
- /* IE7hack */
- case U('>'):
- copy_ie7hack(&source, &target, ctx);
- continue;
-
- /* @-group */
- case U('@'):
- copy_at_group(&source, &target, ctx);
- continue;
-
- /* ; */
- case U(';'):
- copy_semicolon(&source, &target, ctx);
- continue;
-
- /* :first-line|letter followed by [{,] */
- /* (apparently needed for IE6) */
- case U(':'):
- copy_first(&source, &target, ctx);
- continue;
-
- /* { */
- case U('{'):
- if (ctx->at_group)
- --ctx->at_group;
- else
- ++ctx->in_rule;
- *target++ = c;
- continue;
-
- /* } */
- case U('}'):
- if (ctx->in_rule)
- --ctx->in_rule;
- *target++ = c;
- continue;
-
- /* space starting with comment */
- case U('/'):
- (void)copy_space_comment(&source, &target, ctx, NEED_SPACE_MAYBE);
- continue;
-
- /* Fallback: copy character. Better safe than sorry. Should not be
- * reached, though */
- default:
- *target++ = c;
- continue;
- }
- }
-
- return
- (Py_ssize_t)(target - tstart) + (Py_ssize_t)(ctx->sentinel - source);
-}
-
-
-PyDoc_STRVAR(rcssmin_cssmin__doc__,
-"cssmin(style, keep_bang_comments=False)\n\
-\n\
-Minify CSS.\n\
-\n\
-:Note: This is a hand crafted C implementation built on the regex\n\
- semantics.\n\
-\n\
-:Parameters:\n\
- `style` : ``str``\n\
- CSS to minify\n\
-\n\
-:Return: Minified style\n\
-:Rtype: ``str``");
-
-static PyObject *
-rcssmin_cssmin(PyObject *self, PyObject *args, PyObject *kwds)
-{
- PyObject *style, *keep_bang_comments_ = NULL, *result;
- static char *kwlist[] = {"style", "keep_bang_comments", NULL};
- Py_ssize_t rlength, slength, length;
- int keep_bang_comments;
-#ifdef EXT2
- int uni;
-#define UOBJ "O"
-#endif
-#ifdef EXT3
-#define UOBJ "U"
-#endif
-
- if (!PyArg_ParseTupleAndKeywords(args, kwds, UOBJ "|O", kwlist,
- &style, &keep_bang_comments_))
- return NULL;
-
- if (!keep_bang_comments_)
- keep_bang_comments = 0;
- else {
- keep_bang_comments = PyObject_IsTrue(keep_bang_comments_);
- if (keep_bang_comments == -1)
- return NULL;
- }
-
-#ifdef EXT2
- if (PyUnicode_Check(style)) {
- if (!(style = PyUnicode_AsUTF8String(style)))
- return NULL;
- uni = 1;
- }
- else {
- if (!(style = PyObject_Str(style)))
- return NULL;
- uni = 0;
- }
-#endif
-
-#ifdef EXT3
- Py_INCREF(style);
-#define PyString_GET_SIZE PyUnicode_GET_SIZE
-#define PyString_AS_STRING PyUnicode_AS_UNICODE
-#define _PyString_Resize PyUnicode_Resize
-#define PyString_FromStringAndSize PyUnicode_FromUnicode
-#endif
-
- rlength = slength = PyString_GET_SIZE(style);
-
-again:
- if (!(result = PyString_FromStringAndSize(NULL, rlength))) {
- Py_DECREF(style);
- return NULL;
- }
- Py_BEGIN_ALLOW_THREADS
- length = rcssmin((rchar *)PyString_AS_STRING(style),
- (rchar *)PyString_AS_STRING(result),
- slength, rlength, keep_bang_comments);
- Py_END_ALLOW_THREADS
-
- if (length > rlength) {
- Py_DECREF(result);
- rlength = length;
- goto again;
- }
-
- Py_DECREF(style);
- if (length < 0) {
- Py_DECREF(result);
- return NULL;
- }
- if (length != rlength && _PyString_Resize(&result, length) == -1)
- return NULL;
-
-#ifdef EXT2
- if (uni) {
- style = PyUnicode_DecodeUTF8(PyString_AS_STRING(result),
- PyString_GET_SIZE(result), "strict");
- Py_DECREF(result);
- if (!style)
- return NULL;
- result = style;
- }
-#endif
- return result;
-}
-
-/* ------------------------ BEGIN MODULE DEFINITION ------------------------ */
-
-EXT_METHODS = {
- {"cssmin",
- (PyCFunction)rcssmin_cssmin, METH_VARARGS | METH_KEYWORDS,
- rcssmin_cssmin__doc__},
-
- {NULL} /* Sentinel */
-};
-
-PyDoc_STRVAR(EXT_DOCS_VAR,
-"C implementation of rcssmin\n\
-===========================\n\
-\n\
-C implementation of rcssmin.");
-
-
-EXT_DEFINE(EXT_MODULE_NAME, EXT_METHODS_VAR, EXT_DOCS_VAR);
-
-EXT_INIT_FUNC {
- PyObject *m;
-
- /* Create the module and populate stuff */
- if (!(m = EXT_CREATE(&EXT_DEFINE_VAR)))
- EXT_INIT_ERROR(NULL);
-
- EXT_ADD_UNICODE(m, "__author__", "Andr\xe9 Malo", "latin-1");
- EXT_ADD_STRING(m, "__docformat__", "restructuredtext en");
-
- EXT_INIT_RETURN(m);
-}
-
-/* ------------------------- END MODULE DEFINITION ------------------------- */
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/rcssmin.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/rcssmin.py
deleted file mode 100644
index ae1cefc3396..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/rcssmin.py
+++ /dev/null
@@ -1,374 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: ascii -*-
-r"""
-==============
- CSS Minifier
-==============
-
-CSS Minifier.
-
-The minifier is based on the semantics of the `YUI compressor`_\\, which
-itself is based on `the rule list by Isaac Schlueter`_\\.
-
-:Copyright:
-
- Copyright 2011 - 2014
- Andr\xe9 Malo or his licensors, as applicable
-
-:License:
-
- 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.
-
-This module is a re-implementation aiming for speed instead of maximum
-compression, so it can be used at runtime (rather than during a preprocessing
-step). RCSSmin does syntactical compression only (removing spaces, comments
-and possibly semicolons). It does not provide semantic compression (like
-removing empty blocks, collapsing redundant properties etc). It does, however,
-support various CSS hacks (by keeping them working as intended).
-
-Here's a feature list:
-
-- Strings are kept, except that escaped newlines are stripped
-- Space/Comments before the very end or before various characters are
- stripped: ``:{});=>+],!`` (The colon (``:``) is a special case, a single
- space is kept if it's outside a ruleset.)
-- Space/Comments at the very beginning or after various characters are
- stripped: ``{}(=:>+[,!``
-- Optional space after unicode escapes is kept, resp. replaced by a simple
- space
-- whitespaces inside ``url()`` definitions are stripped
-- Comments starting with an exclamation mark (``!``) can be kept optionally.
-- All other comments and/or whitespace characters are replaced by a single
- space.
-- Multiple consecutive semicolons are reduced to one
-- The last semicolon within a ruleset is stripped
-- CSS Hacks supported:
-
- - IE7 hack (``>/**/``)
- - Mac-IE5 hack (``/*\\*/.../**/``)
- - The boxmodelhack is supported naturally because it relies on valid CSS2
- strings
- - Between ``:first-line`` and the following comma or curly brace a space is
- inserted. (apparently it's needed for IE6)
- - Same for ``:first-letter``
-
-rcssmin.c is a reimplementation of rcssmin.py in C and improves runtime up to
-factor 100 or so (depending on the input). docs/BENCHMARKS in the source
-distribution contains the details.
-
-Both python 2 (>= 2.4) and python 3 are supported.
-
-.. _YUI compressor: https://github.com/yui/yuicompressor/
-
-.. _the rule list by Isaac Schlueter: https://github.com/isaacs/cssmin/
-"""
-if __doc__:
- # pylint: disable = W0622
- __doc__ = __doc__.encode('ascii').decode('unicode_escape')
-__author__ = r"Andr\xe9 Malo".encode('ascii').decode('unicode_escape')
-__docformat__ = "restructuredtext en"
-__license__ = "Apache License, Version 2.0"
-__version__ = '1.0.5'
-__all__ = ['cssmin']
-
-import re as _re
-
-
-def _make_cssmin(python_only=False):
- """
- Generate CSS minifier.
-
- :Parameters:
- `python_only` : ``bool``
- Use only the python variant. If true, the c extension is not even
- tried to be loaded.
-
- :Return: Minifier
- :Rtype: ``callable``
- """
- # pylint: disable = R0912, R0914, W0612
-
- if not python_only:
- try:
- import _rcssmin
- except ImportError:
- pass
- else:
- return _rcssmin.cssmin
-
- nl = r'(?:[\n\f]|\r\n?)' # pylint: disable = C0103
- spacechar = r'[\r\n\f\040\t]'
-
- unicoded = r'[0-9a-fA-F]{1,6}(?:[\040\n\t\f]|\r\n?)?'
- escaped = r'[^\n\r\f0-9a-fA-F]'
- escape = r'(?:\\(?:%(unicoded)s|%(escaped)s))' % locals()
-
- nmchar = r'[^\000-\054\056\057\072-\100\133-\136\140\173-\177]'
- #nmstart = r'[^\000-\100\133-\136\140\173-\177]'
- #ident = (r'(?:'
- # r'-?(?:%(nmstart)s|%(escape)s)%(nmchar)s*(?:%(escape)s%(nmchar)s*)*'
- #r')') % locals()
-
- comment = r'(?:/\*[^*]*\*+(?:[^/*][^*]*\*+)*/)'
-
- # only for specific purposes. The bang is grouped:
- _bang_comment = r'(?:/\*(!?)[^*]*\*+(?:[^/*][^*]*\*+)*/)'
-
- string1 = \
- r'(?:\047[^\047\\\r\n\f]*(?:\\[^\r\n\f][^\047\\\r\n\f]*)*\047)'
- string2 = r'(?:"[^"\\\r\n\f]*(?:\\[^\r\n\f][^"\\\r\n\f]*)*")'
- strings = r'(?:%s|%s)' % (string1, string2)
-
- nl_string1 = \
- r'(?:\047[^\047\\\r\n\f]*(?:\\(?:[^\r]|\r\n?)[^\047\\\r\n\f]*)*\047)'
- nl_string2 = r'(?:"[^"\\\r\n\f]*(?:\\(?:[^\r]|\r\n?)[^"\\\r\n\f]*)*")'
- nl_strings = r'(?:%s|%s)' % (nl_string1, nl_string2)
-
- uri_nl_string1 = r'(?:\047[^\047\\]*(?:\\(?:[^\r]|\r\n?)[^\047\\]*)*\047)'
- uri_nl_string2 = r'(?:"[^"\\]*(?:\\(?:[^\r]|\r\n?)[^"\\]*)*")'
- uri_nl_strings = r'(?:%s|%s)' % (uri_nl_string1, uri_nl_string2)
-
- nl_escaped = r'(?:\\%(nl)s)' % locals()
-
- space = r'(?:%(spacechar)s|%(comment)s)' % locals()
-
- ie7hack = r'(?:>/\*\*/)'
-
- uri = (r'(?:'
- # noqa pylint: disable = C0330
- r'(?:[^\000-\040"\047()\\\177]*'
- r'(?:%(escape)s[^\000-\040"\047()\\\177]*)*)'
- r'(?:'
- r'(?:%(spacechar)s+|%(nl_escaped)s+)'
- r'(?:'
- r'(?:[^\000-\040"\047()\\\177]|%(escape)s|%(nl_escaped)s)'
- r'[^\000-\040"\047()\\\177]*'
- r'(?:%(escape)s[^\000-\040"\047()\\\177]*)*'
- r')+'
- r')*'
- r')') % locals()
-
- nl_unesc_sub = _re.compile(nl_escaped).sub
-
- uri_space_sub = _re.compile((
- r'(%(escape)s+)|%(spacechar)s+|%(nl_escaped)s+'
- ) % locals()).sub
- uri_space_subber = lambda m: m.groups()[0] or ''
-
- space_sub_simple = _re.compile((
- r'[\r\n\f\040\t;]+|(%(comment)s+)'
- ) % locals()).sub
- space_sub_banged = _re.compile((
- r'[\r\n\f\040\t;]+|(%(_bang_comment)s+)'
- ) % locals()).sub
-
- post_esc_sub = _re.compile(r'[\r\n\f\t]+').sub
-
- main_sub = _re.compile((
- # noqa pylint: disable = C0330
- r'([^\\"\047u>@\r\n\f\040\t/;:{}]+)'
- r'|(?<=[{}(=:>+[,!])(%(space)s+)'
- r'|^(%(space)s+)'
- r'|(%(space)s+)(?=(([:{});=>+\],!])|$)?)'
- r'|;(%(space)s*(?:;%(space)s*)*)(?=(\})?)'
- r'|(\{)'
- r'|(\})'
- r'|(%(strings)s)'
- r'|(?<!%(nmchar)s)url\(%(spacechar)s*('
- r'%(uri_nl_strings)s'
- r'|%(uri)s'
- r')%(spacechar)s*\)'
- r'|(@(?:'
- r'[mM][eE][dD][iI][aA]'
- r'|[sS][uU][pP][pP][oO][rR][tT][sS]'
- r'|[dD][oO][cC][uU][mM][eE][nN][tT]'
- r'|(?:-(?:'
- r'[wW][eE][bB][kK][iI][tT]|[mM][oO][zZ]|[oO]|[mM][sS]'
- r')-)?'
- r'[kK][eE][yY][fF][rR][aA][mM][eE][sS]'
- r'))(?!%(nmchar)s)'
- r'|(%(ie7hack)s)(%(space)s*)'
- r'|(:[fF][iI][rR][sS][tT]-[lL]'
- r'(?:[iI][nN][eE]|[eE][tT][tT][eE][rR]))'
- r'(%(space)s*)(?=[{,])'
- r'|(%(nl_strings)s)'
- r'|(%(escape)s[^\\"\047u>@\r\n\f\040\t/;:{}]*)'
- ) % locals()).sub
-
- #print main_sub.__self__.pattern
-
- def main_subber(keep_bang_comments):
- """ Make main subber """
- in_macie5, in_rule, at_group = [0], [0], [0]
-
- if keep_bang_comments:
- space_sub = space_sub_banged
-
- def space_subber(match):
- """ Space|Comment subber """
- if match.lastindex:
- group1, group2 = match.group(1, 2)
- if group2:
- if group1.endswith(r'\*/'):
- in_macie5[0] = 1
- else:
- in_macie5[0] = 0
- return group1
- elif group1:
- if group1.endswith(r'\*/'):
- if in_macie5[0]:
- return ''
- in_macie5[0] = 1
- return r'/*\*/'
- elif in_macie5[0]:
- in_macie5[0] = 0
- return '/**/'
- return ''
- else:
- space_sub = space_sub_simple
-
- def space_subber(match):
- """ Space|Comment subber """
- if match.lastindex:
- if match.group(1).endswith(r'\*/'):
- if in_macie5[0]:
- return ''
- in_macie5[0] = 1
- return r'/*\*/'
- elif in_macie5[0]:
- in_macie5[0] = 0
- return '/**/'
- return ''
-
- def fn_space_post(group):
- """ space with token after """
- if group(5) is None or (
- group(6) == ':' and not in_rule[0] and not at_group[0]):
- return ' ' + space_sub(space_subber, group(4))
- return space_sub(space_subber, group(4))
-
- def fn_semicolon(group):
- """ ; handler """
- return ';' + space_sub(space_subber, group(7))
-
- def fn_semicolon2(group):
- """ ; handler """
- if in_rule[0]:
- return space_sub(space_subber, group(7))
- return ';' + space_sub(space_subber, group(7))
-
- def fn_open(_):
- """ { handler """
- if at_group[0]:
- at_group[0] -= 1
- else:
- in_rule[0] = 1
- return '{'
-
- def fn_close(_):
- """ } handler """
- in_rule[0] = 0
- return '}'
-
- def fn_at_group(group):
- """ @xxx group handler """
- at_group[0] += 1
- return group(13)
-
- def fn_ie7hack(group):
- """ IE7 Hack handler """
- if not in_rule[0] and not at_group[0]:
- in_macie5[0] = 0
- return group(14) + space_sub(space_subber, group(15))
- return '>' + space_sub(space_subber, group(15))
-
- table = (
- # noqa pylint: disable = C0330
- None,
- None,
- None,
- None,
- fn_space_post, # space with token after
- fn_space_post, # space with token after
- fn_space_post, # space with token after
- fn_semicolon, # semicolon
- fn_semicolon2, # semicolon
- fn_open, # {
- fn_close, # }
- lambda g: g(11), # string
- lambda g: 'url(%s)' % uri_space_sub(uri_space_subber, g(12)),
- # url(...)
- fn_at_group, # @xxx expecting {...}
- None,
- fn_ie7hack, # ie7hack
- None,
- lambda g: g(16) + ' ' + space_sub(space_subber, g(17)),
- # :first-line|letter followed
- # by [{,] (apparently space
- # needed for IE6)
- lambda g: nl_unesc_sub('', g(18)), # nl_string
- lambda g: post_esc_sub(' ', g(19)), # escape
- )
-
- def func(match):
- """ Main subber """
- idx, group = match.lastindex, match.group
- if idx > 3:
- return table[idx](group)
-
- # shortcuts for frequent operations below:
- elif idx == 1: # not interesting
- return group(1)
- #else: # space with token before or at the beginning
- return space_sub(space_subber, group(idx))
-
- return func
-
- def cssmin(style, keep_bang_comments=False): # pylint: disable = W0621
- """
- Minify CSS.
-
- :Parameters:
- `style` : ``str``
- CSS to minify
-
- `keep_bang_comments` : ``bool``
- Keep comments starting with an exclamation mark? (``/*!...*/``)
-
- :Return: Minified style
- :Rtype: ``str``
- """
- return main_sub(main_subber(keep_bang_comments), style)
-
- return cssmin
-
-cssmin = _make_cssmin()
-
-
-if __name__ == '__main__':
- def main():
- """ Main """
- import sys as _sys
- keep_bang_comments = (
- '-b' in _sys.argv[1:]
- or '-bp' in _sys.argv[1:]
- or '-pb' in _sys.argv[1:]
- )
- if '-p' in _sys.argv[1:] or '-bp' in _sys.argv[1:] \
- or '-pb' in _sys.argv[1:]:
- global cssmin # pylint: disable = W0603
- cssmin = _make_cssmin(python_only=True)
- _sys.stdout.write(cssmin(
- _sys.stdin.read(), keep_bang_comments=keep_bang_comments
- ))
- main()
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/run_tests.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/run_tests.py
deleted file mode 100755
index 9128d743586..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/run_tests.py
+++ /dev/null
@@ -1,166 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: ascii -*-
-#
-# Copyright 2014
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-"""
-===========
- Run tests
-===========
-
-Run tests.
-"""
-__author__ = "Andr\xe9 Malo"
-__author__ = getattr(__author__, 'decode', lambda x: __author__)('latin-1')
-__docformat__ = "restructuredtext en"
-
-import os as _os
-import re as _re
-import sys as _sys
-
-from _setup import shell
-from _setup import term
-
-
-def run_tests(basedir, libdir):
- """ Run output based tests """
- import rcssmin as _rcssmin
- py_cssmin = _rcssmin._make_cssmin(python_only=True)
- c_cssmin = _rcssmin._make_cssmin(python_only=False)
-
- def run_test(example, output_file):
- """ Run it """
- try:
- fp = open(example, 'r')
- except IOError:
- return
- else:
- try:
- input = fp.read()
- finally:
- fp.close()
-
- def load_output(filename):
- try:
- fp = open(filename, 'r')
- except IOError:
- return None
- else:
- try:
- output = fp.read()
- finally:
- fp.close()
- output = output.strip()
- if _re.search(r'(?<!\\)(?:\\\\)*\\[0-9a-zA-Z]{1,6}$', output):
- output += ' '
- return output
-
- output = load_output(output_file)
- output_b = load_output(output_file + '.b')
-
- def do_test(cssmin, output, **options):
- try:
- genout = cssmin(input, **options)
- except (KeyboardInterrupt, SystemExit):
- raise
- except:
- return 1, "%(RED)s exc%(NORMAL)s "
- else:
- if output is None:
- return 1, "%(RED)smiss%(NORMAL)s "
- elif genout == output or genout == output.rstrip():
- return 0, "%(GREEN)sOK%(NORMAL)s "
- else:
- return 1, "%(RED)sfail%(NORMAL)s "
-
- erred, out = do_test(py_cssmin, output)
- erred, c_out = do_test(c_cssmin, output)
- erred, out_b = do_test(py_cssmin, output_b, keep_bang_comments=True)
- erred, c_out_b = do_test(c_cssmin, output_b, keep_bang_comments=True)
-
- term.write(
- "%(out)s %(out_b)s | %(c_out)s %(c_out_b)s - %%(example)s\n"
- % locals(),
- example=_os.path.basename(example),
- )
- return erred
-
- # end
- # begin main test code
-
- erred = 0
- basedir = shell.native(basedir)
- strip = len(basedir) - len(_os.path.basename(basedir))
- for dirname, dirs, files in shell.walk(basedir):
- dirs[:] = [
- item for item in dirs if item not in ('.svn', '.git', 'out')
- ]
- dirs.sort()
- files = [item for item in files if item.endswith('.css')]
- if not files:
- continue
- if not _os.path.isdir(_os.path.join(basedir, dirname, 'out')):
- continue
- term.yellow("---> %s" % (dirname[strip:],))
- files.sort()
- for filename in files:
- if run_test(
- _os.path.join(dirname, filename),
- _os.path.join(dirname, 'out', filename[:-4] + '.out'),
- ): erred = 1
- term.yellow("<--- %s" % (dirname[strip:],))
- return erred
-
-
-def main():
- """ Main """
- basedir, libdir = None, None
- accept_opts = True
- args = []
- for arg in _sys.argv[1:]:
- if accept_opts:
- if arg == '--':
- accept_opts = False
- continue
- elif arg == '-q':
- term.write = term.green = term.red = term.yellow = \
- term.announce = \
- lambda fmt, **kwargs: None
- continue
- elif arg == '-p':
- info = {}
- for key in term.terminfo():
- info[key] = ''
- info['ERASE'] = '\n'
- term.terminfo.info = info
- continue
- elif arg.startswith('-'):
- _sys.stderr.write("Unrecognized option %r\n" % (arg,))
- return 2
- args.append(arg)
- if len(args) > 2:
- _sys.stderr.write("Too many arguments\n")
- return 2
- elif len(args) < 1:
- _sys.stderr.write("Missing arguments\n")
- return 2
- basedir = args[0]
- if len(args) > 1:
- libdir = args[1]
- return run_tests(basedir, libdir)
-
-
-if __name__ == '__main__':
- _sys.exit(main())
diff --git a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/setup.py b/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/setup.py
deleted file mode 100644
index d4ca570bf29..00000000000
--- a/chromium/third_party/catapult/third_party/py_vulcanize/third_party/rcssmin/setup.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: ascii -*-
-#
-# Copyright 2006 - 2013
-# Andr\xe9 Malo or his licensors, as applicable
-#
-# 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.
-
-import sys as _sys
-from _setup import run
-
-
-def setup(args=None, _manifest=0):
- """ Main setup function """
- from _setup.ext import Extension
-
- if 'java' in _sys.platform.lower():
- # no c extension for jython
- ext = None
- else:
- ext=[Extension('_rcssmin', sources=['rcssmin.c'])]
-
- return run(script_args=args, ext=ext, manifest_only=_manifest)
-
-
-def manifest():
- """ Create List of packaged files """
- return setup((), _manifest=1)
-
-
-if __name__ == '__main__':
- setup()