fune/third_party/python/PyECC/ecc/elliptic.py
Andrew Halberstadt 5ccbc0cfd7 Bug 1346025 - Move vendored python modules from /python to /third_party/python, r=ted
This commit is a simple 'hg mv' and does not contain any file modifications.

***
Bug 1346025 - Split vendored modules in python/moz.build to third_party/python/moz.build, r=ted

***
Bug 1346025 - Update references to moved python modules, r=ted

MozReview-Commit-ID: A12RnIFtXju

--HG--
rename : python/PyECC/MANIFEST.in => third_party/python/PyECC/MANIFEST.in
rename : python/PyECC/README.md => third_party/python/PyECC/README.md
rename : python/PyECC/ecc/Key.py => third_party/python/PyECC/ecc/Key.py
rename : python/PyECC/ecc/Rabbit.py => third_party/python/PyECC/ecc/Rabbit.py
rename : python/PyECC/ecc/SecurityViolationException.py => third_party/python/PyECC/ecc/SecurityViolationException.py
rename : python/PyECC/ecc/__init__.py => third_party/python/PyECC/ecc/__init__.py
rename : python/PyECC/ecc/curves.py => third_party/python/PyECC/ecc/curves.py
rename : python/PyECC/ecc/eccrypt.py => third_party/python/PyECC/ecc/eccrypt.py
rename : python/PyECC/ecc/ecdsa.py => third_party/python/PyECC/ecc/ecdsa.py
rename : python/PyECC/ecc/elliptic.py => third_party/python/PyECC/ecc/elliptic.py
rename : python/PyECC/ecc/encoding.py => third_party/python/PyECC/ecc/encoding.py
rename : python/PyECC/ecc/performance.py => third_party/python/PyECC/ecc/performance.py
rename : python/PyECC/ecc/primes.py => third_party/python/PyECC/ecc/primes.py
rename : python/PyECC/ecc/shacrypt.py => third_party/python/PyECC/ecc/shacrypt.py
rename : python/PyECC/setup.py => third_party/python/PyECC/setup.py
rename : python/blessings/LICENSE => third_party/python/blessings/LICENSE
rename : python/blessings/MANIFEST.in => third_party/python/blessings/MANIFEST.in
rename : python/blessings/PKG-INFO => third_party/python/blessings/PKG-INFO
rename : python/blessings/README.rst => third_party/python/blessings/README.rst
rename : python/blessings/blessings/__init__.py => third_party/python/blessings/blessings/__init__.py
rename : python/blessings/blessings/tests.py => third_party/python/blessings/blessings/tests.py
rename : python/blessings/setup.cfg => third_party/python/blessings/setup.cfg
rename : python/blessings/setup.py => third_party/python/blessings/setup.py
rename : python/blessings/tox.ini => third_party/python/blessings/tox.ini
rename : python/compare-locales/compare_locales/__init__.py => third_party/python/compare-locales/compare_locales/__init__.py
rename : python/compare-locales/compare_locales/checks.py => third_party/python/compare-locales/compare_locales/checks.py
rename : python/compare-locales/compare_locales/commands.py => third_party/python/compare-locales/compare_locales/commands.py
rename : python/compare-locales/compare_locales/compare.py => third_party/python/compare-locales/compare_locales/compare.py
rename : python/compare-locales/compare_locales/parser.py => third_party/python/compare-locales/compare_locales/parser.py
rename : python/compare-locales/compare_locales/paths.py => third_party/python/compare-locales/compare_locales/paths.py
rename : python/compare-locales/compare_locales/tests/__init__.py => third_party/python/compare-locales/compare_locales/tests/__init__.py
rename : python/compare-locales/compare_locales/tests/data/bug121341.properties => third_party/python/compare-locales/compare_locales/tests/data/bug121341.properties
rename : python/compare-locales/compare_locales/tests/data/test.properties => third_party/python/compare-locales/compare_locales/tests/data/test.properties
rename : python/compare-locales/compare_locales/tests/data/triple-license.dtd => third_party/python/compare-locales/compare_locales/tests/data/triple-license.dtd
rename : python/compare-locales/compare_locales/tests/test_checks.py => third_party/python/compare-locales/compare_locales/tests/test_checks.py
rename : python/compare-locales/compare_locales/tests/test_compare.py => third_party/python/compare-locales/compare_locales/tests/test_compare.py
rename : python/compare-locales/compare_locales/tests/test_dtd.py => third_party/python/compare-locales/compare_locales/tests/test_dtd.py
rename : python/compare-locales/compare_locales/tests/test_ini.py => third_party/python/compare-locales/compare_locales/tests/test_ini.py
rename : python/compare-locales/compare_locales/tests/test_merge.py => third_party/python/compare-locales/compare_locales/tests/test_merge.py
rename : python/compare-locales/compare_locales/tests/test_properties.py => third_party/python/compare-locales/compare_locales/tests/test_properties.py
rename : python/compare-locales/compare_locales/tests/test_util.py => third_party/python/compare-locales/compare_locales/tests/test_util.py
rename : python/compare-locales/compare_locales/tests/test_webapps.py => third_party/python/compare-locales/compare_locales/tests/test_webapps.py
rename : python/compare-locales/compare_locales/util.py => third_party/python/compare-locales/compare_locales/util.py
rename : python/compare-locales/compare_locales/webapps.py => third_party/python/compare-locales/compare_locales/webapps.py
rename : python/configobj/PKG-INFO => third_party/python/configobj/PKG-INFO
rename : python/configobj/configobj.py => third_party/python/configobj/configobj.py
rename : python/configobj/setup.py => third_party/python/configobj/setup.py
rename : python/configobj/validate.py => third_party/python/configobj/validate.py
rename : python/dlmanager/README.rst => third_party/python/dlmanager/README.rst
rename : python/dlmanager/check.py => third_party/python/dlmanager/check.py
rename : python/dlmanager/dlmanager/__init__.py => third_party/python/dlmanager/dlmanager/__init__.py
rename : python/dlmanager/dlmanager/fs.py => third_party/python/dlmanager/dlmanager/fs.py
rename : python/dlmanager/dlmanager/manager.py => third_party/python/dlmanager/dlmanager/manager.py
rename : python/dlmanager/dlmanager/persist_limit.py => third_party/python/dlmanager/dlmanager/persist_limit.py
rename : python/dlmanager/doc/Makefile => third_party/python/dlmanager/doc/Makefile
rename : python/dlmanager/doc/api.rst => third_party/python/dlmanager/doc/api.rst
rename : python/dlmanager/doc/conf.py => third_party/python/dlmanager/doc/conf.py
rename : python/dlmanager/doc/index.rst => third_party/python/dlmanager/doc/index.rst
rename : python/dlmanager/doc/make.bat => third_party/python/dlmanager/doc/make.bat
rename : python/dlmanager/examples/dl_progressbar.py => third_party/python/dlmanager/examples/dl_progressbar.py
rename : python/dlmanager/examples/dl_tqdm.py => third_party/python/dlmanager/examples/dl_tqdm.py
rename : python/dlmanager/requirements.txt => third_party/python/dlmanager/requirements.txt
rename : python/dlmanager/setup.cfg => third_party/python/dlmanager/setup.cfg
rename : python/dlmanager/setup.py => third_party/python/dlmanager/setup.py
rename : python/dlmanager/test-requirements.txt => third_party/python/dlmanager/test-requirements.txt
rename : python/dlmanager/tests/__init__.py => third_party/python/dlmanager/tests/__init__.py
rename : python/dlmanager/tests/test_manager.py => third_party/python/dlmanager/tests/test_manager.py
rename : python/dlmanager/tests/test_persist_limit.py => third_party/python/dlmanager/tests/test_persist_limit.py
rename : python/futures/CHANGES => third_party/python/futures/CHANGES
rename : python/futures/LICENSE => third_party/python/futures/LICENSE
rename : python/futures/MANIFEST.in => third_party/python/futures/MANIFEST.in
rename : python/futures/PKG-INFO => third_party/python/futures/PKG-INFO
rename : python/futures/concurrent/__init__.py => third_party/python/futures/concurrent/__init__.py
rename : python/futures/concurrent/futures/__init__.py => third_party/python/futures/concurrent/futures/__init__.py
rename : python/futures/concurrent/futures/_base.py => third_party/python/futures/concurrent/futures/_base.py
rename : python/futures/concurrent/futures/process.py => third_party/python/futures/concurrent/futures/process.py
rename : python/futures/concurrent/futures/thread.py => third_party/python/futures/concurrent/futures/thread.py
rename : python/futures/crawl.py => third_party/python/futures/crawl.py
rename : python/futures/docs/Makefile => third_party/python/futures/docs/Makefile
rename : python/futures/docs/conf.py => third_party/python/futures/docs/conf.py
rename : python/futures/docs/index.rst => third_party/python/futures/docs/index.rst
rename : python/futures/docs/make.bat => third_party/python/futures/docs/make.bat
rename : python/futures/futures.egg-info/PKG-INFO => third_party/python/futures/futures.egg-info/PKG-INFO
rename : python/futures/futures.egg-info/SOURCES.txt => third_party/python/futures/futures.egg-info/SOURCES.txt
rename : python/futures/futures.egg-info/dependency_links.txt => third_party/python/futures/futures.egg-info/dependency_links.txt
rename : python/futures/futures.egg-info/not-zip-safe => third_party/python/futures/futures.egg-info/not-zip-safe
rename : python/futures/futures.egg-info/pbr.json => third_party/python/futures/futures.egg-info/pbr.json
rename : python/futures/futures.egg-info/top_level.txt => third_party/python/futures/futures.egg-info/top_level.txt
rename : python/futures/primes.py => third_party/python/futures/primes.py
rename : python/futures/setup.cfg => third_party/python/futures/setup.cfg
rename : python/futures/setup.py => third_party/python/futures/setup.py
rename : python/futures/test_futures.py => third_party/python/futures/test_futures.py
rename : python/futures/tox.ini => third_party/python/futures/tox.ini
rename : python/gdbpp/gdbpp/__init__.py => third_party/python/gdbpp/gdbpp/__init__.py
rename : python/gdbpp/gdbpp/linkedlist.py => third_party/python/gdbpp/gdbpp/linkedlist.py
rename : python/gdbpp/gdbpp/owningthread.py => third_party/python/gdbpp/gdbpp/owningthread.py
rename : python/gdbpp/gdbpp/smartptr.py => third_party/python/gdbpp/gdbpp/smartptr.py
rename : python/gdbpp/gdbpp/string.py => third_party/python/gdbpp/gdbpp/string.py
rename : python/gdbpp/gdbpp/tarray.py => third_party/python/gdbpp/gdbpp/tarray.py
rename : python/gdbpp/gdbpp/thashtable.py => third_party/python/gdbpp/gdbpp/thashtable.py
rename : python/jsmin/jsmin/__init__.py => third_party/python/jsmin/jsmin/__init__.py
rename : python/jsmin/jsmin/test.py => third_party/python/jsmin/jsmin/test.py
rename : python/jsmin/setup.cfg => third_party/python/jsmin/setup.cfg
rename : python/jsmin/setup.py => third_party/python/jsmin/setup.py
rename : python/lldbutils/README.txt => third_party/python/lldbutils/README.txt
rename : python/lldbutils/lldbutils/__init__.py => third_party/python/lldbutils/lldbutils/__init__.py
rename : python/lldbutils/lldbutils/content.py => third_party/python/lldbutils/lldbutils/content.py
rename : python/lldbutils/lldbutils/general.py => third_party/python/lldbutils/lldbutils/general.py
rename : python/lldbutils/lldbutils/gfx.py => third_party/python/lldbutils/lldbutils/gfx.py
rename : python/lldbutils/lldbutils/layout.py => third_party/python/lldbutils/lldbutils/layout.py
rename : python/lldbutils/lldbutils/utils.py => third_party/python/lldbutils/lldbutils/utils.py
rename : python/mock-1.0.0/LICENSE.txt => third_party/python/mock-1.0.0/LICENSE.txt
rename : python/mock-1.0.0/MANIFEST.in => third_party/python/mock-1.0.0/MANIFEST.in
rename : python/mock-1.0.0/PKG-INFO => third_party/python/mock-1.0.0/PKG-INFO
rename : python/mock-1.0.0/README.txt => third_party/python/mock-1.0.0/README.txt
rename : python/mock-1.0.0/docs/changelog.txt => third_party/python/mock-1.0.0/docs/changelog.txt
rename : python/mock-1.0.0/docs/compare.txt => third_party/python/mock-1.0.0/docs/compare.txt
rename : python/mock-1.0.0/docs/conf.py => third_party/python/mock-1.0.0/docs/conf.py
rename : python/mock-1.0.0/docs/examples.txt => third_party/python/mock-1.0.0/docs/examples.txt
rename : python/mock-1.0.0/docs/getting-started.txt => third_party/python/mock-1.0.0/docs/getting-started.txt
rename : python/mock-1.0.0/docs/helpers.txt => third_party/python/mock-1.0.0/docs/helpers.txt
rename : python/mock-1.0.0/docs/index.txt => third_party/python/mock-1.0.0/docs/index.txt
rename : python/mock-1.0.0/docs/magicmock.txt => third_party/python/mock-1.0.0/docs/magicmock.txt
rename : python/mock-1.0.0/docs/mock.txt => third_party/python/mock-1.0.0/docs/mock.txt
rename : python/mock-1.0.0/docs/patch.txt => third_party/python/mock-1.0.0/docs/patch.txt
rename : python/mock-1.0.0/docs/sentinel.txt => third_party/python/mock-1.0.0/docs/sentinel.txt
rename : python/mock-1.0.0/html/.doctrees/changelog.doctree => third_party/python/mock-1.0.0/html/.doctrees/changelog.doctree
rename : python/mock-1.0.0/html/.doctrees/compare.doctree => third_party/python/mock-1.0.0/html/.doctrees/compare.doctree
rename : python/mock-1.0.0/html/.doctrees/examples.doctree => third_party/python/mock-1.0.0/html/.doctrees/examples.doctree
rename : python/mock-1.0.0/html/.doctrees/getting-started.doctree => third_party/python/mock-1.0.0/html/.doctrees/getting-started.doctree
rename : python/mock-1.0.0/html/.doctrees/index.doctree => third_party/python/mock-1.0.0/html/.doctrees/index.doctree
rename : python/mock-1.0.0/html/.doctrees/magicmock.doctree => third_party/python/mock-1.0.0/html/.doctrees/magicmock.doctree
rename : python/mock-1.0.0/html/.doctrees/mock.doctree => third_party/python/mock-1.0.0/html/.doctrees/mock.doctree
rename : python/mock-1.0.0/html/.doctrees/mocksignature.doctree => third_party/python/mock-1.0.0/html/.doctrees/mocksignature.doctree
rename : python/mock-1.0.0/html/.doctrees/patch.doctree => third_party/python/mock-1.0.0/html/.doctrees/patch.doctree
rename : python/mock-1.0.0/html/.doctrees/sentinel.doctree => third_party/python/mock-1.0.0/html/.doctrees/sentinel.doctree
rename : python/mock-1.0.0/html/_sources/changelog.txt => third_party/python/mock-1.0.0/html/_sources/changelog.txt
rename : python/mock-1.0.0/html/_sources/compare.txt => third_party/python/mock-1.0.0/html/_sources/compare.txt
rename : python/mock-1.0.0/html/_sources/examples.txt => third_party/python/mock-1.0.0/html/_sources/examples.txt
rename : python/mock-1.0.0/html/_sources/getting-started.txt => third_party/python/mock-1.0.0/html/_sources/getting-started.txt
rename : python/mock-1.0.0/html/_sources/index.txt => third_party/python/mock-1.0.0/html/_sources/index.txt
rename : python/mock-1.0.0/html/_sources/magicmock.txt => third_party/python/mock-1.0.0/html/_sources/magicmock.txt
rename : python/mock-1.0.0/html/_sources/mock.txt => third_party/python/mock-1.0.0/html/_sources/mock.txt
rename : python/mock-1.0.0/html/_sources/mocksignature.txt => third_party/python/mock-1.0.0/html/_sources/mocksignature.txt
rename : python/mock-1.0.0/html/_sources/patch.txt => third_party/python/mock-1.0.0/html/_sources/patch.txt
rename : python/mock-1.0.0/html/_sources/sentinel.txt => third_party/python/mock-1.0.0/html/_sources/sentinel.txt
rename : python/mock-1.0.0/html/_static/adctheme.css => third_party/python/mock-1.0.0/html/_static/adctheme.css
rename : python/mock-1.0.0/html/_static/basic.css => third_party/python/mock-1.0.0/html/_static/basic.css
rename : python/mock-1.0.0/html/_static/breadcrumb_background.png => third_party/python/mock-1.0.0/html/_static/breadcrumb_background.png
rename : python/mock-1.0.0/html/_static/default.css => third_party/python/mock-1.0.0/html/_static/default.css
rename : python/mock-1.0.0/html/_static/doctools.js => third_party/python/mock-1.0.0/html/_static/doctools.js
rename : python/mock-1.0.0/html/_static/documentation.png => third_party/python/mock-1.0.0/html/_static/documentation.png
rename : python/mock-1.0.0/html/_static/file.png => third_party/python/mock-1.0.0/html/_static/file.png
rename : python/mock-1.0.0/html/_static/header_sm_mid.png => third_party/python/mock-1.0.0/html/_static/header_sm_mid.png
rename : python/mock-1.0.0/html/_static/jquery.js => third_party/python/mock-1.0.0/html/_static/jquery.js
rename : python/mock-1.0.0/html/_static/minus.png => third_party/python/mock-1.0.0/html/_static/minus.png
rename : python/mock-1.0.0/html/_static/mobile.css => third_party/python/mock-1.0.0/html/_static/mobile.css
rename : python/mock-1.0.0/html/_static/plus.png => third_party/python/mock-1.0.0/html/_static/plus.png
rename : python/mock-1.0.0/html/_static/pygments.css => third_party/python/mock-1.0.0/html/_static/pygments.css
rename : python/mock-1.0.0/html/_static/scrn1.png => third_party/python/mock-1.0.0/html/_static/scrn1.png
rename : python/mock-1.0.0/html/_static/scrn2.png => third_party/python/mock-1.0.0/html/_static/scrn2.png
rename : python/mock-1.0.0/html/_static/searchfield_leftcap.png => third_party/python/mock-1.0.0/html/_static/searchfield_leftcap.png
rename : python/mock-1.0.0/html/_static/searchfield_repeat.png => third_party/python/mock-1.0.0/html/_static/searchfield_repeat.png
rename : python/mock-1.0.0/html/_static/searchfield_rightcap.png => third_party/python/mock-1.0.0/html/_static/searchfield_rightcap.png
rename : python/mock-1.0.0/html/_static/searchtools.js => third_party/python/mock-1.0.0/html/_static/searchtools.js
rename : python/mock-1.0.0/html/_static/sidebar.js => third_party/python/mock-1.0.0/html/_static/sidebar.js
rename : python/mock-1.0.0/html/_static/title_background.png => third_party/python/mock-1.0.0/html/_static/title_background.png
rename : python/mock-1.0.0/html/_static/toc.js => third_party/python/mock-1.0.0/html/_static/toc.js
rename : python/mock-1.0.0/html/_static/triangle_closed.png => third_party/python/mock-1.0.0/html/_static/triangle_closed.png
rename : python/mock-1.0.0/html/_static/triangle_left.png => third_party/python/mock-1.0.0/html/_static/triangle_left.png
rename : python/mock-1.0.0/html/_static/triangle_open.png => third_party/python/mock-1.0.0/html/_static/triangle_open.png
rename : python/mock-1.0.0/html/_static/underscore.js => third_party/python/mock-1.0.0/html/_static/underscore.js
rename : python/mock-1.0.0/html/changelog.html => third_party/python/mock-1.0.0/html/changelog.html
rename : python/mock-1.0.0/html/compare.html => third_party/python/mock-1.0.0/html/compare.html
rename : python/mock-1.0.0/html/examples.html => third_party/python/mock-1.0.0/html/examples.html
rename : python/mock-1.0.0/html/genindex.html => third_party/python/mock-1.0.0/html/genindex.html
rename : python/mock-1.0.0/html/getting-started.html => third_party/python/mock-1.0.0/html/getting-started.html
rename : python/mock-1.0.0/html/index.html => third_party/python/mock-1.0.0/html/index.html
rename : python/mock-1.0.0/html/magicmock.html => third_party/python/mock-1.0.0/html/magicmock.html
rename : python/mock-1.0.0/html/mock.html => third_party/python/mock-1.0.0/html/mock.html
rename : python/mock-1.0.0/html/mocksignature.html => third_party/python/mock-1.0.0/html/mocksignature.html
rename : python/mock-1.0.0/html/objects.inv => third_party/python/mock-1.0.0/html/objects.inv
rename : python/mock-1.0.0/html/output.txt => third_party/python/mock-1.0.0/html/output.txt
rename : python/mock-1.0.0/html/patch.html => third_party/python/mock-1.0.0/html/patch.html
rename : python/mock-1.0.0/html/search.html => third_party/python/mock-1.0.0/html/search.html
rename : python/mock-1.0.0/html/searchindex.js => third_party/python/mock-1.0.0/html/searchindex.js
rename : python/mock-1.0.0/html/sentinel.html => third_party/python/mock-1.0.0/html/sentinel.html
rename : python/mock-1.0.0/mock.egg-info/PKG-INFO => third_party/python/mock-1.0.0/mock.egg-info/PKG-INFO
rename : python/mock-1.0.0/mock.egg-info/SOURCES.txt => third_party/python/mock-1.0.0/mock.egg-info/SOURCES.txt
rename : python/mock-1.0.0/mock.egg-info/dependency_links.txt => third_party/python/mock-1.0.0/mock.egg-info/dependency_links.txt
rename : python/mock-1.0.0/mock.egg-info/top_level.txt => third_party/python/mock-1.0.0/mock.egg-info/top_level.txt
rename : python/mock-1.0.0/mock.py => third_party/python/mock-1.0.0/mock.py
rename : python/mock-1.0.0/setup.cfg => third_party/python/mock-1.0.0/setup.cfg
rename : python/mock-1.0.0/setup.py => third_party/python/mock-1.0.0/setup.py
rename : python/mock-1.0.0/tests/__init__.py => third_party/python/mock-1.0.0/tests/__init__.py
rename : python/mock-1.0.0/tests/_testwith.py => third_party/python/mock-1.0.0/tests/_testwith.py
rename : python/mock-1.0.0/tests/support.py => third_party/python/mock-1.0.0/tests/support.py
rename : python/mock-1.0.0/tests/support_with.py => third_party/python/mock-1.0.0/tests/support_with.py
rename : python/mock-1.0.0/tests/testcallable.py => third_party/python/mock-1.0.0/tests/testcallable.py
rename : python/mock-1.0.0/tests/testhelpers.py => third_party/python/mock-1.0.0/tests/testhelpers.py
rename : python/mock-1.0.0/tests/testmagicmethods.py => third_party/python/mock-1.0.0/tests/testmagicmethods.py
rename : python/mock-1.0.0/tests/testmock.py => third_party/python/mock-1.0.0/tests/testmock.py
rename : python/mock-1.0.0/tests/testpatch.py => third_party/python/mock-1.0.0/tests/testpatch.py
rename : python/mock-1.0.0/tests/testsentinel.py => third_party/python/mock-1.0.0/tests/testsentinel.py
rename : python/mock-1.0.0/tests/testwith.py => third_party/python/mock-1.0.0/tests/testwith.py
rename : python/mock-1.0.0/tox.ini => third_party/python/mock-1.0.0/tox.ini
rename : python/psutil/CREDITS => third_party/python/psutil/CREDITS
rename : python/psutil/HISTORY.rst => third_party/python/psutil/HISTORY.rst
rename : python/psutil/INSTALL.rst => third_party/python/psutil/INSTALL.rst
rename : python/psutil/LICENSE => third_party/python/psutil/LICENSE
rename : python/psutil/MANIFEST.in => third_party/python/psutil/MANIFEST.in
rename : python/psutil/Makefile => third_party/python/psutil/Makefile
rename : python/psutil/PKG-INFO => third_party/python/psutil/PKG-INFO
rename : python/psutil/README.rst => third_party/python/psutil/README.rst
rename : python/psutil/TODO => third_party/python/psutil/TODO
rename : python/psutil/docs/Makefile => third_party/python/psutil/docs/Makefile
rename : python/psutil/docs/README => third_party/python/psutil/docs/README
rename : python/psutil/docs/_static/copybutton.js => third_party/python/psutil/docs/_static/copybutton.js
rename : python/psutil/docs/_static/favicon.ico => third_party/python/psutil/docs/_static/favicon.ico
rename : python/psutil/docs/_static/logo.png => third_party/python/psutil/docs/_static/logo.png
rename : python/psutil/docs/_static/sidebar.js => third_party/python/psutil/docs/_static/sidebar.js
rename : python/psutil/docs/_template/globaltoc.html => third_party/python/psutil/docs/_template/globaltoc.html
rename : python/psutil/docs/_template/indexcontent.html => third_party/python/psutil/docs/_template/indexcontent.html
rename : python/psutil/docs/_template/indexsidebar.html => third_party/python/psutil/docs/_template/indexsidebar.html
rename : python/psutil/docs/_template/page.html => third_party/python/psutil/docs/_template/page.html
rename : python/psutil/docs/_themes/pydoctheme/static/pydoctheme.css => third_party/python/psutil/docs/_themes/pydoctheme/static/pydoctheme.css
rename : python/psutil/docs/_themes/pydoctheme/theme.conf => third_party/python/psutil/docs/_themes/pydoctheme/theme.conf
rename : python/psutil/docs/conf.py => third_party/python/psutil/docs/conf.py
rename : python/psutil/docs/index.rst => third_party/python/psutil/docs/index.rst
rename : python/psutil/docs/make.bat => third_party/python/psutil/docs/make.bat
rename : python/psutil/docs/xxx => third_party/python/psutil/docs/xxx
rename : python/psutil/examples/disk_usage.py => third_party/python/psutil/examples/disk_usage.py
rename : python/psutil/examples/free.py => third_party/python/psutil/examples/free.py
rename : python/psutil/examples/ifconfig.py => third_party/python/psutil/examples/ifconfig.py
rename : python/psutil/examples/iotop.py => third_party/python/psutil/examples/iotop.py
rename : python/psutil/examples/killall.py => third_party/python/psutil/examples/killall.py
rename : python/psutil/examples/meminfo.py => third_party/python/psutil/examples/meminfo.py
rename : python/psutil/examples/netstat.py => third_party/python/psutil/examples/netstat.py
rename : python/psutil/examples/nettop.py => third_party/python/psutil/examples/nettop.py
rename : python/psutil/examples/pidof.py => third_party/python/psutil/examples/pidof.py
rename : python/psutil/examples/pmap.py => third_party/python/psutil/examples/pmap.py
rename : python/psutil/examples/process_detail.py => third_party/python/psutil/examples/process_detail.py
rename : python/psutil/examples/ps.py => third_party/python/psutil/examples/ps.py
rename : python/psutil/examples/pstree.py => third_party/python/psutil/examples/pstree.py
rename : python/psutil/examples/top.py => third_party/python/psutil/examples/top.py
rename : python/psutil/examples/who.py => third_party/python/psutil/examples/who.py
rename : python/psutil/make.bat => third_party/python/psutil/make.bat
rename : python/psutil/psutil.egg-info/PKG-INFO => third_party/python/psutil/psutil.egg-info/PKG-INFO
rename : python/psutil/psutil.egg-info/SOURCES.txt => third_party/python/psutil/psutil.egg-info/SOURCES.txt
rename : python/psutil/psutil.egg-info/dependency_links.txt => third_party/python/psutil/psutil.egg-info/dependency_links.txt
rename : python/psutil/psutil.egg-info/top_level.txt => third_party/python/psutil/psutil.egg-info/top_level.txt
rename : python/psutil/psutil/__init__.py => third_party/python/psutil/psutil/__init__.py
rename : python/psutil/psutil/_common.py => third_party/python/psutil/psutil/_common.py
rename : python/psutil/psutil/_compat.py => third_party/python/psutil/psutil/_compat.py
rename : python/psutil/psutil/_psbsd.py => third_party/python/psutil/psutil/_psbsd.py
rename : python/psutil/psutil/_pslinux.py => third_party/python/psutil/psutil/_pslinux.py
rename : python/psutil/psutil/_psosx.py => third_party/python/psutil/psutil/_psosx.py
rename : python/psutil/psutil/_psposix.py => third_party/python/psutil/psutil/_psposix.py
rename : python/psutil/psutil/_pssunos.py => third_party/python/psutil/psutil/_pssunos.py
rename : python/psutil/psutil/_psutil_bsd.c => third_party/python/psutil/psutil/_psutil_bsd.c
rename : python/psutil/psutil/_psutil_bsd.h => third_party/python/psutil/psutil/_psutil_bsd.h
rename : python/psutil/psutil/_psutil_common.c => third_party/python/psutil/psutil/_psutil_common.c
rename : python/psutil/psutil/_psutil_common.h => third_party/python/psutil/psutil/_psutil_common.h
rename : python/psutil/psutil/_psutil_linux.c => third_party/python/psutil/psutil/_psutil_linux.c
rename : python/psutil/psutil/_psutil_linux.h => third_party/python/psutil/psutil/_psutil_linux.h
rename : python/psutil/psutil/_psutil_osx.c => third_party/python/psutil/psutil/_psutil_osx.c
rename : python/psutil/psutil/_psutil_osx.h => third_party/python/psutil/psutil/_psutil_osx.h
rename : python/psutil/psutil/_psutil_posix.c => third_party/python/psutil/psutil/_psutil_posix.c
rename : python/psutil/psutil/_psutil_posix.h => third_party/python/psutil/psutil/_psutil_posix.h
rename : python/psutil/psutil/_psutil_sunos.c => third_party/python/psutil/psutil/_psutil_sunos.c
rename : python/psutil/psutil/_psutil_sunos.h => third_party/python/psutil/psutil/_psutil_sunos.h
rename : python/psutil/psutil/_psutil_windows.c => third_party/python/psutil/psutil/_psutil_windows.c
rename : python/psutil/psutil/_psutil_windows.h => third_party/python/psutil/psutil/_psutil_windows.h
rename : python/psutil/psutil/_pswindows.py => third_party/python/psutil/psutil/_pswindows.py
rename : python/psutil/psutil/arch/bsd/process_info.c => third_party/python/psutil/psutil/arch/bsd/process_info.c
rename : python/psutil/psutil/arch/bsd/process_info.h => third_party/python/psutil/psutil/arch/bsd/process_info.h
rename : python/psutil/psutil/arch/osx/process_info.c => third_party/python/psutil/psutil/arch/osx/process_info.c
rename : python/psutil/psutil/arch/osx/process_info.h => third_party/python/psutil/psutil/arch/osx/process_info.h
rename : python/psutil/psutil/arch/windows/glpi.h => third_party/python/psutil/psutil/arch/windows/glpi.h
rename : python/psutil/psutil/arch/windows/inet_ntop.c => third_party/python/psutil/psutil/arch/windows/inet_ntop.c
rename : python/psutil/psutil/arch/windows/inet_ntop.h => third_party/python/psutil/psutil/arch/windows/inet_ntop.h
rename : python/psutil/psutil/arch/windows/ntextapi.h => third_party/python/psutil/psutil/arch/windows/ntextapi.h
rename : python/psutil/psutil/arch/windows/process_handles.c => third_party/python/psutil/psutil/arch/windows/process_handles.c
rename : python/psutil/psutil/arch/windows/process_handles.h => third_party/python/psutil/psutil/arch/windows/process_handles.h
rename : python/psutil/psutil/arch/windows/process_info.c => third_party/python/psutil/psutil/arch/windows/process_info.c
rename : python/psutil/psutil/arch/windows/process_info.h => third_party/python/psutil/psutil/arch/windows/process_info.h
rename : python/psutil/psutil/arch/windows/security.c => third_party/python/psutil/psutil/arch/windows/security.c
rename : python/psutil/psutil/arch/windows/security.h => third_party/python/psutil/psutil/arch/windows/security.h
rename : python/psutil/setup.cfg => third_party/python/psutil/setup.cfg
rename : python/psutil/setup.py => third_party/python/psutil/setup.py
rename : python/psutil/test/README.rst => third_party/python/psutil/test/README.rst
rename : python/psutil/test/_bsd.py => third_party/python/psutil/test/_bsd.py
rename : python/psutil/test/_linux.py => third_party/python/psutil/test/_linux.py
rename : python/psutil/test/_osx.py => third_party/python/psutil/test/_osx.py
rename : python/psutil/test/_posix.py => third_party/python/psutil/test/_posix.py
rename : python/psutil/test/_sunos.py => third_party/python/psutil/test/_sunos.py
rename : python/psutil/test/_windows.py => third_party/python/psutil/test/_windows.py
rename : python/psutil/test/test_memory_leaks.py => third_party/python/psutil/test/test_memory_leaks.py
rename : python/psutil/test/test_psutil.py => third_party/python/psutil/test/test_psutil.py
rename : python/psutil/tox.ini => third_party/python/psutil/tox.ini
rename : python/py/AUTHORS => third_party/python/py/AUTHORS
rename : python/py/LICENSE => third_party/python/py/LICENSE
rename : python/py/MANIFEST.in => third_party/python/py/MANIFEST.in
rename : python/py/PKG-INFO => third_party/python/py/PKG-INFO
rename : python/py/README.txt => third_party/python/py/README.txt
rename : python/py/py/__init__.py => third_party/python/py/py/__init__.py
rename : python/py/py/__metainfo.py => third_party/python/py/py/__metainfo.py
rename : python/py/py/_apipkg.py => third_party/python/py/py/_apipkg.py
rename : python/py/py/_builtin.py => third_party/python/py/py/_builtin.py
rename : python/py/py/_code/__init__.py => third_party/python/py/py/_code/__init__.py
rename : python/py/py/_code/_assertionnew.py => third_party/python/py/py/_code/_assertionnew.py
rename : python/py/py/_code/_assertionold.py => third_party/python/py/py/_code/_assertionold.py
rename : python/py/py/_code/_py2traceback.py => third_party/python/py/py/_code/_py2traceback.py
rename : python/py/py/_code/assertion.py => third_party/python/py/py/_code/assertion.py
rename : python/py/py/_code/code.py => third_party/python/py/py/_code/code.py
rename : python/py/py/_code/source.py => third_party/python/py/py/_code/source.py
rename : python/py/py/_error.py => third_party/python/py/py/_error.py
rename : python/py/py/_iniconfig.py => third_party/python/py/py/_iniconfig.py
rename : python/py/py/_io/__init__.py => third_party/python/py/py/_io/__init__.py
rename : python/py/py/_io/capture.py => third_party/python/py/py/_io/capture.py
rename : python/py/py/_io/saferepr.py => third_party/python/py/py/_io/saferepr.py
rename : python/py/py/_io/terminalwriter.py => third_party/python/py/py/_io/terminalwriter.py
rename : python/py/py/_log/__init__.py => third_party/python/py/py/_log/__init__.py
rename : python/py/py/_log/log.py => third_party/python/py/py/_log/log.py
rename : python/py/py/_log/warning.py => third_party/python/py/py/_log/warning.py
rename : python/py/py/_path/__init__.py => third_party/python/py/py/_path/__init__.py
rename : python/py/py/_path/cacheutil.py => third_party/python/py/py/_path/cacheutil.py
rename : python/py/py/_path/common.py => third_party/python/py/py/_path/common.py
rename : python/py/py/_path/local.py => third_party/python/py/py/_path/local.py
rename : python/py/py/_path/svnurl.py => third_party/python/py/py/_path/svnurl.py
rename : python/py/py/_path/svnwc.py => third_party/python/py/py/_path/svnwc.py
rename : python/py/py/_process/__init__.py => third_party/python/py/py/_process/__init__.py
rename : python/py/py/_process/cmdexec.py => third_party/python/py/py/_process/cmdexec.py
rename : python/py/py/_process/forkedfunc.py => third_party/python/py/py/_process/forkedfunc.py
rename : python/py/py/_process/killproc.py => third_party/python/py/py/_process/killproc.py
rename : python/py/py/_std.py => third_party/python/py/py/_std.py
rename : python/py/py/_xmlgen.py => third_party/python/py/py/_xmlgen.py
rename : python/py/py/test.py => third_party/python/py/py/test.py
rename : python/py/setup.cfg => third_party/python/py/setup.cfg
rename : python/py/setup.py => third_party/python/py/setup.py
rename : python/pyasn1-modules/CHANGES => third_party/python/pyasn1-modules/CHANGES
rename : python/pyasn1-modules/LICENSE => third_party/python/pyasn1-modules/LICENSE
rename : python/pyasn1-modules/MANIFEST.in => third_party/python/pyasn1-modules/MANIFEST.in
rename : python/pyasn1-modules/PKG-INFO => third_party/python/pyasn1-modules/PKG-INFO
rename : python/pyasn1-modules/README => third_party/python/pyasn1-modules/README
rename : python/pyasn1-modules/pyasn1_modules.egg-info/PKG-INFO => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/PKG-INFO
rename : python/pyasn1-modules/pyasn1_modules.egg-info/SOURCES.txt => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/SOURCES.txt
rename : python/pyasn1-modules/pyasn1_modules.egg-info/dependency_links.txt => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/dependency_links.txt
rename : python/pyasn1-modules/pyasn1_modules.egg-info/requires.txt => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/requires.txt
rename : python/pyasn1-modules/pyasn1_modules.egg-info/top_level.txt => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/top_level.txt
rename : python/pyasn1-modules/pyasn1_modules.egg-info/zip-safe => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/zip-safe
rename : python/pyasn1-modules/pyasn1_modules/__init__.py => third_party/python/pyasn1-modules/pyasn1_modules/__init__.py
rename : python/pyasn1-modules/pyasn1_modules/pem.py => third_party/python/pyasn1-modules/pyasn1_modules/pem.py
rename : python/pyasn1-modules/pyasn1_modules/pkcs12.py => third_party/python/pyasn1-modules/pyasn1_modules/pkcs12.py
rename : python/pyasn1-modules/pyasn1_modules/rfc1155.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1155.py
rename : python/pyasn1-modules/pyasn1_modules/rfc1157.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1157.py
rename : python/pyasn1-modules/pyasn1_modules/rfc1901.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1901.py
rename : python/pyasn1-modules/pyasn1_modules/rfc1902.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1902.py
rename : python/pyasn1-modules/pyasn1_modules/rfc1905.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1905.py
rename : python/pyasn1-modules/pyasn1_modules/rfc2251.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2251.py
rename : python/pyasn1-modules/pyasn1_modules/rfc2314.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2314.py
rename : python/pyasn1-modules/pyasn1_modules/rfc2315.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2315.py
rename : python/pyasn1-modules/pyasn1_modules/rfc2437.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2437.py
rename : python/pyasn1-modules/pyasn1_modules/rfc2459.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2459.py
rename : python/pyasn1-modules/pyasn1_modules/rfc2511.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2511.py
rename : python/pyasn1-modules/pyasn1_modules/rfc2560.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2560.py
rename : python/pyasn1-modules/pyasn1_modules/rfc3412.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc3412.py
rename : python/pyasn1-modules/pyasn1_modules/rfc3414.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc3414.py
rename : python/pyasn1-modules/pyasn1_modules/rfc3447.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc3447.py
rename : python/pyasn1-modules/pyasn1_modules/rfc4210.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc4210.py
rename : python/pyasn1-modules/pyasn1_modules/rfc5208.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc5208.py
rename : python/pyasn1-modules/setup.cfg => third_party/python/pyasn1-modules/setup.cfg
rename : python/pyasn1-modules/setup.py => third_party/python/pyasn1-modules/setup.py
rename : python/pyasn1-modules/test/cmp.sh => third_party/python/pyasn1-modules/test/cmp.sh
rename : python/pyasn1-modules/test/crl.sh => third_party/python/pyasn1-modules/test/crl.sh
rename : python/pyasn1-modules/test/crmf.sh => third_party/python/pyasn1-modules/test/crmf.sh
rename : python/pyasn1-modules/test/ocspreq.sh => third_party/python/pyasn1-modules/test/ocspreq.sh
rename : python/pyasn1-modules/test/ocsprsp.sh => third_party/python/pyasn1-modules/test/ocsprsp.sh
rename : python/pyasn1-modules/test/pkcs1.sh => third_party/python/pyasn1-modules/test/pkcs1.sh
rename : python/pyasn1-modules/test/pkcs10.sh => third_party/python/pyasn1-modules/test/pkcs10.sh
rename : python/pyasn1-modules/test/pkcs7.sh => third_party/python/pyasn1-modules/test/pkcs7.sh
rename : python/pyasn1-modules/test/pkcs8.sh => third_party/python/pyasn1-modules/test/pkcs8.sh
rename : python/pyasn1-modules/test/x509dump.sh => third_party/python/pyasn1-modules/test/x509dump.sh
rename : python/pyasn1-modules/tools/cmpdump.py => third_party/python/pyasn1-modules/tools/cmpdump.py
rename : python/pyasn1-modules/tools/crldump.py => third_party/python/pyasn1-modules/tools/crldump.py
rename : python/pyasn1-modules/tools/crmfdump.py => third_party/python/pyasn1-modules/tools/crmfdump.py
rename : python/pyasn1-modules/tools/ocspclient.py => third_party/python/pyasn1-modules/tools/ocspclient.py
rename : python/pyasn1-modules/tools/ocspreqdump.py => third_party/python/pyasn1-modules/tools/ocspreqdump.py
rename : python/pyasn1-modules/tools/ocsprspdump.py => third_party/python/pyasn1-modules/tools/ocsprspdump.py
rename : python/pyasn1-modules/tools/ocspserver.py => third_party/python/pyasn1-modules/tools/ocspserver.py
rename : python/pyasn1-modules/tools/pkcs10dump.py => third_party/python/pyasn1-modules/tools/pkcs10dump.py
rename : python/pyasn1-modules/tools/pkcs1dump.py => third_party/python/pyasn1-modules/tools/pkcs1dump.py
rename : python/pyasn1-modules/tools/pkcs7dump.py => third_party/python/pyasn1-modules/tools/pkcs7dump.py
rename : python/pyasn1-modules/tools/pkcs8dump.py => third_party/python/pyasn1-modules/tools/pkcs8dump.py
rename : python/pyasn1-modules/tools/snmpget.py => third_party/python/pyasn1-modules/tools/snmpget.py
rename : python/pyasn1-modules/tools/x509dump.py => third_party/python/pyasn1-modules/tools/x509dump.py
rename : python/pyasn1/CHANGES => third_party/python/pyasn1/CHANGES
rename : python/pyasn1/LICENSE => third_party/python/pyasn1/LICENSE
rename : python/pyasn1/MANIFEST.in => third_party/python/pyasn1/MANIFEST.in
rename : python/pyasn1/PKG-INFO => third_party/python/pyasn1/PKG-INFO
rename : python/pyasn1/README => third_party/python/pyasn1/README
rename : python/pyasn1/THANKS => third_party/python/pyasn1/THANKS
rename : python/pyasn1/TODO => third_party/python/pyasn1/TODO
rename : python/pyasn1/doc/codecs.html => third_party/python/pyasn1/doc/codecs.html
rename : python/pyasn1/doc/constraints.html => third_party/python/pyasn1/doc/constraints.html
rename : python/pyasn1/doc/constructed.html => third_party/python/pyasn1/doc/constructed.html
rename : python/pyasn1/doc/intro.html => third_party/python/pyasn1/doc/intro.html
rename : python/pyasn1/doc/pyasn1-tutorial.html => third_party/python/pyasn1/doc/pyasn1-tutorial.html
rename : python/pyasn1/doc/scalar.html => third_party/python/pyasn1/doc/scalar.html
rename : python/pyasn1/doc/tagging.html => third_party/python/pyasn1/doc/tagging.html
rename : python/pyasn1/pyasn1.egg-info/PKG-INFO => third_party/python/pyasn1/pyasn1.egg-info/PKG-INFO
rename : python/pyasn1/pyasn1.egg-info/SOURCES.txt => third_party/python/pyasn1/pyasn1.egg-info/SOURCES.txt
rename : python/pyasn1/pyasn1.egg-info/dependency_links.txt => third_party/python/pyasn1/pyasn1.egg-info/dependency_links.txt
rename : python/pyasn1/pyasn1.egg-info/top_level.txt => third_party/python/pyasn1/pyasn1.egg-info/top_level.txt
rename : python/pyasn1/pyasn1.egg-info/zip-safe => third_party/python/pyasn1/pyasn1.egg-info/zip-safe
rename : python/pyasn1/pyasn1/__init__.py => third_party/python/pyasn1/pyasn1/__init__.py
rename : python/pyasn1/pyasn1/codec/__init__.py => third_party/python/pyasn1/pyasn1/codec/__init__.py
rename : python/pyasn1/pyasn1/codec/ber/__init__.py => third_party/python/pyasn1/pyasn1/codec/ber/__init__.py
rename : python/pyasn1/pyasn1/codec/ber/decoder.py => third_party/python/pyasn1/pyasn1/codec/ber/decoder.py
rename : python/pyasn1/pyasn1/codec/ber/encoder.py => third_party/python/pyasn1/pyasn1/codec/ber/encoder.py
rename : python/pyasn1/pyasn1/codec/ber/eoo.py => third_party/python/pyasn1/pyasn1/codec/ber/eoo.py
rename : python/pyasn1/pyasn1/codec/cer/__init__.py => third_party/python/pyasn1/pyasn1/codec/cer/__init__.py
rename : python/pyasn1/pyasn1/codec/cer/decoder.py => third_party/python/pyasn1/pyasn1/codec/cer/decoder.py
rename : python/pyasn1/pyasn1/codec/cer/encoder.py => third_party/python/pyasn1/pyasn1/codec/cer/encoder.py
rename : python/pyasn1/pyasn1/codec/der/__init__.py => third_party/python/pyasn1/pyasn1/codec/der/__init__.py
rename : python/pyasn1/pyasn1/codec/der/decoder.py => third_party/python/pyasn1/pyasn1/codec/der/decoder.py
rename : python/pyasn1/pyasn1/codec/der/encoder.py => third_party/python/pyasn1/pyasn1/codec/der/encoder.py
rename : python/pyasn1/pyasn1/compat/__init__.py => third_party/python/pyasn1/pyasn1/compat/__init__.py
rename : python/pyasn1/pyasn1/compat/octets.py => third_party/python/pyasn1/pyasn1/compat/octets.py
rename : python/pyasn1/pyasn1/debug.py => third_party/python/pyasn1/pyasn1/debug.py
rename : python/pyasn1/pyasn1/error.py => third_party/python/pyasn1/pyasn1/error.py
rename : python/pyasn1/pyasn1/type/__init__.py => third_party/python/pyasn1/pyasn1/type/__init__.py
rename : python/pyasn1/pyasn1/type/base.py => third_party/python/pyasn1/pyasn1/type/base.py
rename : python/pyasn1/pyasn1/type/char.py => third_party/python/pyasn1/pyasn1/type/char.py
rename : python/pyasn1/pyasn1/type/constraint.py => third_party/python/pyasn1/pyasn1/type/constraint.py
rename : python/pyasn1/pyasn1/type/error.py => third_party/python/pyasn1/pyasn1/type/error.py
rename : python/pyasn1/pyasn1/type/namedtype.py => third_party/python/pyasn1/pyasn1/type/namedtype.py
rename : python/pyasn1/pyasn1/type/namedval.py => third_party/python/pyasn1/pyasn1/type/namedval.py
rename : python/pyasn1/pyasn1/type/tag.py => third_party/python/pyasn1/pyasn1/type/tag.py
rename : python/pyasn1/pyasn1/type/tagmap.py => third_party/python/pyasn1/pyasn1/type/tagmap.py
rename : python/pyasn1/pyasn1/type/univ.py => third_party/python/pyasn1/pyasn1/type/univ.py
rename : python/pyasn1/pyasn1/type/useful.py => third_party/python/pyasn1/pyasn1/type/useful.py
rename : python/pyasn1/setup.cfg => third_party/python/pyasn1/setup.cfg
rename : python/pyasn1/setup.py => third_party/python/pyasn1/setup.py
rename : python/pyasn1/test/__init__.py => third_party/python/pyasn1/test/__init__.py
rename : python/pyasn1/test/codec/__init__.py => third_party/python/pyasn1/test/codec/__init__.py
rename : python/pyasn1/test/codec/ber/__init__.py => third_party/python/pyasn1/test/codec/ber/__init__.py
rename : python/pyasn1/test/codec/ber/suite.py => third_party/python/pyasn1/test/codec/ber/suite.py
rename : python/pyasn1/test/codec/ber/test_decoder.py => third_party/python/pyasn1/test/codec/ber/test_decoder.py
rename : python/pyasn1/test/codec/ber/test_encoder.py => third_party/python/pyasn1/test/codec/ber/test_encoder.py
rename : python/pyasn1/test/codec/cer/__init__.py => third_party/python/pyasn1/test/codec/cer/__init__.py
rename : python/pyasn1/test/codec/cer/suite.py => third_party/python/pyasn1/test/codec/cer/suite.py
rename : python/pyasn1/test/codec/cer/test_decoder.py => third_party/python/pyasn1/test/codec/cer/test_decoder.py
rename : python/pyasn1/test/codec/cer/test_encoder.py => third_party/python/pyasn1/test/codec/cer/test_encoder.py
rename : python/pyasn1/test/codec/der/__init__.py => third_party/python/pyasn1/test/codec/der/__init__.py
rename : python/pyasn1/test/codec/der/suite.py => third_party/python/pyasn1/test/codec/der/suite.py
rename : python/pyasn1/test/codec/der/test_decoder.py => third_party/python/pyasn1/test/codec/der/test_decoder.py
rename : python/pyasn1/test/codec/der/test_encoder.py => third_party/python/pyasn1/test/codec/der/test_encoder.py
rename : python/pyasn1/test/codec/suite.py => third_party/python/pyasn1/test/codec/suite.py
rename : python/pyasn1/test/suite.py => third_party/python/pyasn1/test/suite.py
rename : python/pyasn1/test/type/__init__.py => third_party/python/pyasn1/test/type/__init__.py
rename : python/pyasn1/test/type/suite.py => third_party/python/pyasn1/test/type/suite.py
rename : python/pyasn1/test/type/test_constraint.py => third_party/python/pyasn1/test/type/test_constraint.py
rename : python/pyasn1/test/type/test_namedtype.py => third_party/python/pyasn1/test/type/test_namedtype.py
rename : python/pyasn1/test/type/test_tag.py => third_party/python/pyasn1/test/type/test_tag.py
rename : python/pyasn1/test/type/test_univ.py => third_party/python/pyasn1/test/type/test_univ.py
rename : python/pylru/pylru.py => third_party/python/pylru/pylru.py
rename : python/pylru/test.py => third_party/python/pylru/test.py
rename : python/pystache/.gitignore => third_party/python/pystache/.gitignore
rename : python/pystache/.gitmodules => third_party/python/pystache/.gitmodules
rename : python/pystache/.travis.yml => third_party/python/pystache/.travis.yml
rename : python/pystache/HISTORY.md => third_party/python/pystache/HISTORY.md
rename : python/pystache/LICENSE => third_party/python/pystache/LICENSE
rename : python/pystache/MANIFEST.in => third_party/python/pystache/MANIFEST.in
rename : python/pystache/README.md => third_party/python/pystache/README.md
rename : python/pystache/TODO.md => third_party/python/pystache/TODO.md
rename : python/pystache/gh/images/logo_phillips.png => third_party/python/pystache/gh/images/logo_phillips.png
rename : python/pystache/pystache/__init__.py => third_party/python/pystache/pystache/__init__.py
rename : python/pystache/pystache/commands/__init__.py => third_party/python/pystache/pystache/commands/__init__.py
rename : python/pystache/pystache/commands/render.py => third_party/python/pystache/pystache/commands/render.py
rename : python/pystache/pystache/commands/test.py => third_party/python/pystache/pystache/commands/test.py
rename : python/pystache/pystache/common.py => third_party/python/pystache/pystache/common.py
rename : python/pystache/pystache/context.py => third_party/python/pystache/pystache/context.py
rename : python/pystache/pystache/defaults.py => third_party/python/pystache/pystache/defaults.py
rename : python/pystache/pystache/init.py => third_party/python/pystache/pystache/init.py
rename : python/pystache/pystache/loader.py => third_party/python/pystache/pystache/loader.py
rename : python/pystache/pystache/locator.py => third_party/python/pystache/pystache/locator.py
rename : python/pystache/pystache/parsed.py => third_party/python/pystache/pystache/parsed.py
rename : python/pystache/pystache/parser.py => third_party/python/pystache/pystache/parser.py
rename : python/pystache/pystache/renderengine.py => third_party/python/pystache/pystache/renderengine.py
rename : python/pystache/pystache/renderer.py => third_party/python/pystache/pystache/renderer.py
rename : python/pystache/pystache/specloader.py => third_party/python/pystache/pystache/specloader.py
rename : python/pystache/pystache/template_spec.py => third_party/python/pystache/pystache/template_spec.py
rename : python/pystache/setup.py => third_party/python/pystache/setup.py
rename : python/pystache/setup_description.rst => third_party/python/pystache/setup_description.rst
rename : python/pystache/test_pystache.py => third_party/python/pystache/test_pystache.py
rename : python/pystache/tox.ini => third_party/python/pystache/tox.ini
rename : python/pytest/.coveragerc => third_party/python/pytest/.coveragerc
rename : python/pytest/AUTHORS => third_party/python/pytest/AUTHORS
rename : python/pytest/LICENSE => third_party/python/pytest/LICENSE
rename : python/pytest/MANIFEST.in => third_party/python/pytest/MANIFEST.in
rename : python/pytest/PKG-INFO => third_party/python/pytest/PKG-INFO
rename : python/pytest/README.rst => third_party/python/pytest/README.rst
rename : python/pytest/_pytest/__init__.py => third_party/python/pytest/_pytest/__init__.py
rename : python/pytest/_pytest/_argcomplete.py => third_party/python/pytest/_pytest/_argcomplete.py
rename : python/pytest/_pytest/_code/__init__.py => third_party/python/pytest/_pytest/_code/__init__.py
rename : python/pytest/_pytest/_code/_py2traceback.py => third_party/python/pytest/_pytest/_code/_py2traceback.py
rename : python/pytest/_pytest/_code/code.py => third_party/python/pytest/_pytest/_code/code.py
rename : python/pytest/_pytest/_code/source.py => third_party/python/pytest/_pytest/_code/source.py
rename : python/pytest/_pytest/_pluggy.py => third_party/python/pytest/_pytest/_pluggy.py
rename : python/pytest/_pytest/assertion/__init__.py => third_party/python/pytest/_pytest/assertion/__init__.py
rename : python/pytest/_pytest/assertion/reinterpret.py => third_party/python/pytest/_pytest/assertion/reinterpret.py
rename : python/pytest/_pytest/assertion/rewrite.py => third_party/python/pytest/_pytest/assertion/rewrite.py
rename : python/pytest/_pytest/assertion/util.py => third_party/python/pytest/_pytest/assertion/util.py
rename : python/pytest/_pytest/cacheprovider.py => third_party/python/pytest/_pytest/cacheprovider.py
rename : python/pytest/_pytest/capture.py => third_party/python/pytest/_pytest/capture.py
rename : python/pytest/_pytest/config.py => third_party/python/pytest/_pytest/config.py
rename : python/pytest/_pytest/doctest.py => third_party/python/pytest/_pytest/doctest.py
rename : python/pytest/_pytest/genscript.py => third_party/python/pytest/_pytest/genscript.py
rename : python/pytest/_pytest/helpconfig.py => third_party/python/pytest/_pytest/helpconfig.py
rename : python/pytest/_pytest/hookspec.py => third_party/python/pytest/_pytest/hookspec.py
rename : python/pytest/_pytest/junitxml.py => third_party/python/pytest/_pytest/junitxml.py
rename : python/pytest/_pytest/main.py => third_party/python/pytest/_pytest/main.py
rename : python/pytest/_pytest/mark.py => third_party/python/pytest/_pytest/mark.py
rename : python/pytest/_pytest/monkeypatch.py => third_party/python/pytest/_pytest/monkeypatch.py
rename : python/pytest/_pytest/nose.py => third_party/python/pytest/_pytest/nose.py
rename : python/pytest/_pytest/pastebin.py => third_party/python/pytest/_pytest/pastebin.py
rename : python/pytest/_pytest/pdb.py => third_party/python/pytest/_pytest/pdb.py
rename : python/pytest/_pytest/pytester.py => third_party/python/pytest/_pytest/pytester.py
rename : python/pytest/_pytest/python.py => third_party/python/pytest/_pytest/python.py
rename : python/pytest/_pytest/recwarn.py => third_party/python/pytest/_pytest/recwarn.py
rename : python/pytest/_pytest/resultlog.py => third_party/python/pytest/_pytest/resultlog.py
rename : python/pytest/_pytest/runner.py => third_party/python/pytest/_pytest/runner.py
rename : python/pytest/_pytest/skipping.py => third_party/python/pytest/_pytest/skipping.py
rename : python/pytest/_pytest/standalonetemplate.py => third_party/python/pytest/_pytest/standalonetemplate.py
rename : python/pytest/_pytest/terminal.py => third_party/python/pytest/_pytest/terminal.py
rename : python/pytest/_pytest/tmpdir.py => third_party/python/pytest/_pytest/tmpdir.py
rename : python/pytest/_pytest/unittest.py => third_party/python/pytest/_pytest/unittest.py
rename : python/pytest/_pytest/vendored_packages/README.md => third_party/python/pytest/_pytest/vendored_packages/README.md
rename : python/pytest/_pytest/vendored_packages/__init__.py => third_party/python/pytest/_pytest/vendored_packages/__init__.py
rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/DESCRIPTION.rst => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/DESCRIPTION.rst
rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/METADATA => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/METADATA
rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/RECORD => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/RECORD
rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/WHEEL => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/WHEEL
rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/metadata.json => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/metadata.json
rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/pbr.json => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/pbr.json
rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/top_level.txt => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/top_level.txt
rename : python/pytest/_pytest/vendored_packages/pluggy.py => third_party/python/pytest/_pytest/vendored_packages/pluggy.py
rename : python/pytest/pytest.py => third_party/python/pytest/pytest.py
rename : python/pytest/setup.cfg => third_party/python/pytest/setup.cfg
rename : python/pytest/setup.py => third_party/python/pytest/setup.py
rename : python/pytoml/PKG-INFO => third_party/python/pytoml/PKG-INFO
rename : python/pytoml/pytoml/__init__.py => third_party/python/pytoml/pytoml/__init__.py
rename : python/pytoml/pytoml/core.py => third_party/python/pytoml/pytoml/core.py
rename : python/pytoml/pytoml/parser.py => third_party/python/pytoml/pytoml/parser.py
rename : python/pytoml/pytoml/writer.py => third_party/python/pytoml/pytoml/writer.py
rename : python/pytoml/setup.cfg => third_party/python/pytoml/setup.cfg
rename : python/pytoml/setup.py => third_party/python/pytoml/setup.py
rename : python/pytoml/test/test.py => third_party/python/pytoml/test/test.py
rename : python/pyyaml/CHANGES => third_party/python/pyyaml/CHANGES
rename : python/pyyaml/LICENSE => third_party/python/pyyaml/LICENSE
rename : python/pyyaml/PKG-INFO => third_party/python/pyyaml/PKG-INFO
rename : python/pyyaml/README => third_party/python/pyyaml/README
rename : python/pyyaml/examples/pygments-lexer/example.yaml => third_party/python/pyyaml/examples/pygments-lexer/example.yaml
rename : python/pyyaml/examples/pygments-lexer/yaml.py => third_party/python/pyyaml/examples/pygments-lexer/yaml.py
rename : python/pyyaml/examples/yaml-highlight/yaml_hl.cfg => third_party/python/pyyaml/examples/yaml-highlight/yaml_hl.cfg
rename : python/pyyaml/examples/yaml-highlight/yaml_hl.py => third_party/python/pyyaml/examples/yaml-highlight/yaml_hl.py
rename : python/pyyaml/ext/_yaml.c => third_party/python/pyyaml/ext/_yaml.c
rename : python/pyyaml/ext/_yaml.h => third_party/python/pyyaml/ext/_yaml.h
rename : python/pyyaml/ext/_yaml.pxd => third_party/python/pyyaml/ext/_yaml.pxd
rename : python/pyyaml/ext/_yaml.pyx => third_party/python/pyyaml/ext/_yaml.pyx
rename : python/pyyaml/lib/yaml/__init__.py => third_party/python/pyyaml/lib/yaml/__init__.py
rename : python/pyyaml/lib/yaml/composer.py => third_party/python/pyyaml/lib/yaml/composer.py
rename : python/pyyaml/lib/yaml/constructor.py => third_party/python/pyyaml/lib/yaml/constructor.py
rename : python/pyyaml/lib/yaml/cyaml.py => third_party/python/pyyaml/lib/yaml/cyaml.py
rename : python/pyyaml/lib/yaml/dumper.py => third_party/python/pyyaml/lib/yaml/dumper.py
rename : python/pyyaml/lib/yaml/emitter.py => third_party/python/pyyaml/lib/yaml/emitter.py
rename : python/pyyaml/lib/yaml/error.py => third_party/python/pyyaml/lib/yaml/error.py
rename : python/pyyaml/lib/yaml/events.py => third_party/python/pyyaml/lib/yaml/events.py
rename : python/pyyaml/lib/yaml/loader.py => third_party/python/pyyaml/lib/yaml/loader.py
rename : python/pyyaml/lib/yaml/nodes.py => third_party/python/pyyaml/lib/yaml/nodes.py
rename : python/pyyaml/lib/yaml/parser.py => third_party/python/pyyaml/lib/yaml/parser.py
rename : python/pyyaml/lib/yaml/reader.py => third_party/python/pyyaml/lib/yaml/reader.py
rename : python/pyyaml/lib/yaml/representer.py => third_party/python/pyyaml/lib/yaml/representer.py
rename : python/pyyaml/lib/yaml/resolver.py => third_party/python/pyyaml/lib/yaml/resolver.py
rename : python/pyyaml/lib/yaml/scanner.py => third_party/python/pyyaml/lib/yaml/scanner.py
rename : python/pyyaml/lib/yaml/serializer.py => third_party/python/pyyaml/lib/yaml/serializer.py
rename : python/pyyaml/lib/yaml/tokens.py => third_party/python/pyyaml/lib/yaml/tokens.py
rename : python/pyyaml/lib3/yaml/__init__.py => third_party/python/pyyaml/lib3/yaml/__init__.py
rename : python/pyyaml/lib3/yaml/composer.py => third_party/python/pyyaml/lib3/yaml/composer.py
rename : python/pyyaml/lib3/yaml/constructor.py => third_party/python/pyyaml/lib3/yaml/constructor.py
rename : python/pyyaml/lib3/yaml/cyaml.py => third_party/python/pyyaml/lib3/yaml/cyaml.py
rename : python/pyyaml/lib3/yaml/dumper.py => third_party/python/pyyaml/lib3/yaml/dumper.py
rename : python/pyyaml/lib3/yaml/emitter.py => third_party/python/pyyaml/lib3/yaml/emitter.py
rename : python/pyyaml/lib3/yaml/error.py => third_party/python/pyyaml/lib3/yaml/error.py
rename : python/pyyaml/lib3/yaml/events.py => third_party/python/pyyaml/lib3/yaml/events.py
rename : python/pyyaml/lib3/yaml/loader.py => third_party/python/pyyaml/lib3/yaml/loader.py
rename : python/pyyaml/lib3/yaml/nodes.py => third_party/python/pyyaml/lib3/yaml/nodes.py
rename : python/pyyaml/lib3/yaml/parser.py => third_party/python/pyyaml/lib3/yaml/parser.py
rename : python/pyyaml/lib3/yaml/reader.py => third_party/python/pyyaml/lib3/yaml/reader.py
rename : python/pyyaml/lib3/yaml/representer.py => third_party/python/pyyaml/lib3/yaml/representer.py
rename : python/pyyaml/lib3/yaml/resolver.py => third_party/python/pyyaml/lib3/yaml/resolver.py
rename : python/pyyaml/lib3/yaml/scanner.py => third_party/python/pyyaml/lib3/yaml/scanner.py
rename : python/pyyaml/lib3/yaml/serializer.py => third_party/python/pyyaml/lib3/yaml/serializer.py
rename : python/pyyaml/lib3/yaml/tokens.py => third_party/python/pyyaml/lib3/yaml/tokens.py
rename : python/pyyaml/setup.cfg => third_party/python/pyyaml/setup.cfg
rename : python/pyyaml/setup.py => third_party/python/pyyaml/setup.py
rename : python/redo/PKG-INFO => third_party/python/redo/PKG-INFO
rename : python/redo/README => third_party/python/redo/README
rename : python/redo/redo.egg-info/PKG-INFO => third_party/python/redo/redo.egg-info/PKG-INFO
rename : python/redo/redo.egg-info/SOURCES.txt => third_party/python/redo/redo.egg-info/SOURCES.txt
rename : python/redo/redo.egg-info/dependency_links.txt => third_party/python/redo/redo.egg-info/dependency_links.txt
rename : python/redo/redo.egg-info/entry_points.txt => third_party/python/redo/redo.egg-info/entry_points.txt
rename : python/redo/redo.egg-info/top_level.txt => third_party/python/redo/redo.egg-info/top_level.txt
rename : python/redo/redo/__init__.py => third_party/python/redo/redo/__init__.py
rename : python/redo/redo/cmd.py => third_party/python/redo/redo/cmd.py
rename : python/redo/setup.cfg => third_party/python/redo/setup.cfg
rename : python/redo/setup.py => third_party/python/redo/setup.py
rename : python/requests/HISTORY.rst => third_party/python/requests/HISTORY.rst
rename : python/requests/LICENSE => third_party/python/requests/LICENSE
rename : python/requests/MANIFEST.in => third_party/python/requests/MANIFEST.in
rename : python/requests/NOTICE => third_party/python/requests/NOTICE
rename : python/requests/PKG-INFO => third_party/python/requests/PKG-INFO
rename : python/requests/README.rst => third_party/python/requests/README.rst
rename : python/requests/requests.egg-info/PKG-INFO => third_party/python/requests/requests.egg-info/PKG-INFO
rename : python/requests/requests.egg-info/SOURCES.txt => third_party/python/requests/requests.egg-info/SOURCES.txt
rename : python/requests/requests.egg-info/dependency_links.txt => third_party/python/requests/requests.egg-info/dependency_links.txt
rename : python/requests/requests.egg-info/not-zip-safe => third_party/python/requests/requests.egg-info/not-zip-safe
rename : python/requests/requests.egg-info/requires.txt => third_party/python/requests/requests.egg-info/requires.txt
rename : python/requests/requests.egg-info/top_level.txt => third_party/python/requests/requests.egg-info/top_level.txt
rename : python/requests/requests/__init__.py => third_party/python/requests/requests/__init__.py
rename : python/requests/requests/adapters.py => third_party/python/requests/requests/adapters.py
rename : python/requests/requests/api.py => third_party/python/requests/requests/api.py
rename : python/requests/requests/auth.py => third_party/python/requests/requests/auth.py
rename : python/requests/requests/cacert.pem => third_party/python/requests/requests/cacert.pem
rename : python/requests/requests/certs.py => third_party/python/requests/requests/certs.py
rename : python/requests/requests/compat.py => third_party/python/requests/requests/compat.py
rename : python/requests/requests/cookies.py => third_party/python/requests/requests/cookies.py
rename : python/requests/requests/exceptions.py => third_party/python/requests/requests/exceptions.py
rename : python/requests/requests/hooks.py => third_party/python/requests/requests/hooks.py
rename : python/requests/requests/models.py => third_party/python/requests/requests/models.py
rename : python/requests/requests/packages/__init__.py => third_party/python/requests/requests/packages/__init__.py
rename : python/requests/requests/packages/chardet/__init__.py => third_party/python/requests/requests/packages/chardet/__init__.py
rename : python/requests/requests/packages/chardet/big5freq.py => third_party/python/requests/requests/packages/chardet/big5freq.py
rename : python/requests/requests/packages/chardet/big5prober.py => third_party/python/requests/requests/packages/chardet/big5prober.py
rename : python/requests/requests/packages/chardet/chardetect.py => third_party/python/requests/requests/packages/chardet/chardetect.py
rename : python/requests/requests/packages/chardet/chardistribution.py => third_party/python/requests/requests/packages/chardet/chardistribution.py
rename : python/requests/requests/packages/chardet/charsetgroupprober.py => third_party/python/requests/requests/packages/chardet/charsetgroupprober.py
rename : python/requests/requests/packages/chardet/charsetprober.py => third_party/python/requests/requests/packages/chardet/charsetprober.py
rename : python/requests/requests/packages/chardet/codingstatemachine.py => third_party/python/requests/requests/packages/chardet/codingstatemachine.py
rename : python/requests/requests/packages/chardet/compat.py => third_party/python/requests/requests/packages/chardet/compat.py
rename : python/requests/requests/packages/chardet/constants.py => third_party/python/requests/requests/packages/chardet/constants.py
rename : python/requests/requests/packages/chardet/cp949prober.py => third_party/python/requests/requests/packages/chardet/cp949prober.py
rename : python/requests/requests/packages/chardet/escprober.py => third_party/python/requests/requests/packages/chardet/escprober.py
rename : python/requests/requests/packages/chardet/escsm.py => third_party/python/requests/requests/packages/chardet/escsm.py
rename : python/requests/requests/packages/chardet/eucjpprober.py => third_party/python/requests/requests/packages/chardet/eucjpprober.py
rename : python/requests/requests/packages/chardet/euckrfreq.py => third_party/python/requests/requests/packages/chardet/euckrfreq.py
rename : python/requests/requests/packages/chardet/euckrprober.py => third_party/python/requests/requests/packages/chardet/euckrprober.py
rename : python/requests/requests/packages/chardet/euctwfreq.py => third_party/python/requests/requests/packages/chardet/euctwfreq.py
rename : python/requests/requests/packages/chardet/euctwprober.py => third_party/python/requests/requests/packages/chardet/euctwprober.py
rename : python/requests/requests/packages/chardet/gb2312freq.py => third_party/python/requests/requests/packages/chardet/gb2312freq.py
rename : python/requests/requests/packages/chardet/gb2312prober.py => third_party/python/requests/requests/packages/chardet/gb2312prober.py
rename : python/requests/requests/packages/chardet/hebrewprober.py => third_party/python/requests/requests/packages/chardet/hebrewprober.py
rename : python/requests/requests/packages/chardet/jisfreq.py => third_party/python/requests/requests/packages/chardet/jisfreq.py
rename : python/requests/requests/packages/chardet/jpcntx.py => third_party/python/requests/requests/packages/chardet/jpcntx.py
rename : python/requests/requests/packages/chardet/langbulgarianmodel.py => third_party/python/requests/requests/packages/chardet/langbulgarianmodel.py
rename : python/requests/requests/packages/chardet/langcyrillicmodel.py => third_party/python/requests/requests/packages/chardet/langcyrillicmodel.py
rename : python/requests/requests/packages/chardet/langgreekmodel.py => third_party/python/requests/requests/packages/chardet/langgreekmodel.py
rename : python/requests/requests/packages/chardet/langhebrewmodel.py => third_party/python/requests/requests/packages/chardet/langhebrewmodel.py
rename : python/requests/requests/packages/chardet/langhungarianmodel.py => third_party/python/requests/requests/packages/chardet/langhungarianmodel.py
rename : python/requests/requests/packages/chardet/langthaimodel.py => third_party/python/requests/requests/packages/chardet/langthaimodel.py
rename : python/requests/requests/packages/chardet/latin1prober.py => third_party/python/requests/requests/packages/chardet/latin1prober.py
rename : python/requests/requests/packages/chardet/mbcharsetprober.py => third_party/python/requests/requests/packages/chardet/mbcharsetprober.py
rename : python/requests/requests/packages/chardet/mbcsgroupprober.py => third_party/python/requests/requests/packages/chardet/mbcsgroupprober.py
rename : python/requests/requests/packages/chardet/mbcssm.py => third_party/python/requests/requests/packages/chardet/mbcssm.py
rename : python/requests/requests/packages/chardet/sbcharsetprober.py => third_party/python/requests/requests/packages/chardet/sbcharsetprober.py
rename : python/requests/requests/packages/chardet/sbcsgroupprober.py => third_party/python/requests/requests/packages/chardet/sbcsgroupprober.py
rename : python/requests/requests/packages/chardet/sjisprober.py => third_party/python/requests/requests/packages/chardet/sjisprober.py
rename : python/requests/requests/packages/chardet/universaldetector.py => third_party/python/requests/requests/packages/chardet/universaldetector.py
rename : python/requests/requests/packages/chardet/utf8prober.py => third_party/python/requests/requests/packages/chardet/utf8prober.py
rename : python/requests/requests/packages/urllib3/__init__.py => third_party/python/requests/requests/packages/urllib3/__init__.py
rename : python/requests/requests/packages/urllib3/_collections.py => third_party/python/requests/requests/packages/urllib3/_collections.py
rename : python/requests/requests/packages/urllib3/connection.py => third_party/python/requests/requests/packages/urllib3/connection.py
rename : python/requests/requests/packages/urllib3/connectionpool.py => third_party/python/requests/requests/packages/urllib3/connectionpool.py
rename : python/requests/requests/packages/urllib3/contrib/__init__.py => third_party/python/requests/requests/packages/urllib3/contrib/__init__.py
rename : python/requests/requests/packages/urllib3/contrib/appengine.py => third_party/python/requests/requests/packages/urllib3/contrib/appengine.py
rename : python/requests/requests/packages/urllib3/contrib/ntlmpool.py => third_party/python/requests/requests/packages/urllib3/contrib/ntlmpool.py
rename : python/requests/requests/packages/urllib3/contrib/pyopenssl.py => third_party/python/requests/requests/packages/urllib3/contrib/pyopenssl.py
rename : python/requests/requests/packages/urllib3/exceptions.py => third_party/python/requests/requests/packages/urllib3/exceptions.py
rename : python/requests/requests/packages/urllib3/fields.py => third_party/python/requests/requests/packages/urllib3/fields.py
rename : python/requests/requests/packages/urllib3/filepost.py => third_party/python/requests/requests/packages/urllib3/filepost.py
rename : python/requests/requests/packages/urllib3/packages/__init__.py => third_party/python/requests/requests/packages/urllib3/packages/__init__.py
rename : python/requests/requests/packages/urllib3/packages/ordered_dict.py => third_party/python/requests/requests/packages/urllib3/packages/ordered_dict.py
rename : python/requests/requests/packages/urllib3/packages/six.py => third_party/python/requests/requests/packages/urllib3/packages/six.py
rename : python/requests/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py => third_party/python/requests/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py
rename : python/requests/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py => third_party/python/requests/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py
rename : python/requests/requests/packages/urllib3/poolmanager.py => third_party/python/requests/requests/packages/urllib3/poolmanager.py
rename : python/requests/requests/packages/urllib3/request.py => third_party/python/requests/requests/packages/urllib3/request.py
rename : python/requests/requests/packages/urllib3/response.py => third_party/python/requests/requests/packages/urllib3/response.py
rename : python/requests/requests/packages/urllib3/util/__init__.py => third_party/python/requests/requests/packages/urllib3/util/__init__.py
rename : python/requests/requests/packages/urllib3/util/connection.py => third_party/python/requests/requests/packages/urllib3/util/connection.py
rename : python/requests/requests/packages/urllib3/util/request.py => third_party/python/requests/requests/packages/urllib3/util/request.py
rename : python/requests/requests/packages/urllib3/util/response.py => third_party/python/requests/requests/packages/urllib3/util/response.py
rename : python/requests/requests/packages/urllib3/util/retry.py => third_party/python/requests/requests/packages/urllib3/util/retry.py
rename : python/requests/requests/packages/urllib3/util/ssl_.py => third_party/python/requests/requests/packages/urllib3/util/ssl_.py
rename : python/requests/requests/packages/urllib3/util/timeout.py => third_party/python/requests/requests/packages/urllib3/util/timeout.py
rename : python/requests/requests/packages/urllib3/util/url.py => third_party/python/requests/requests/packages/urllib3/util/url.py
rename : python/requests/requests/sessions.py => third_party/python/requests/requests/sessions.py
rename : python/requests/requests/status_codes.py => third_party/python/requests/requests/status_codes.py
rename : python/requests/requests/structures.py => third_party/python/requests/requests/structures.py
rename : python/requests/requests/utils.py => third_party/python/requests/requests/utils.py
rename : python/requests/requirements.txt => third_party/python/requests/requirements.txt
rename : python/requests/setup.cfg => third_party/python/requests/setup.cfg
rename : python/requests/setup.py => third_party/python/requests/setup.py
rename : python/requests/test_requests.py => third_party/python/requests/test_requests.py
rename : python/rsa/LICENSE => third_party/python/rsa/LICENSE
rename : python/rsa/MANIFEST.in => third_party/python/rsa/MANIFEST.in
rename : python/rsa/PKG-INFO => third_party/python/rsa/PKG-INFO
rename : python/rsa/README.rst => third_party/python/rsa/README.rst
rename : python/rsa/create_timing_table.py => third_party/python/rsa/create_timing_table.py
rename : python/rsa/playstuff.py => third_party/python/rsa/playstuff.py
rename : python/rsa/rsa.egg-info/PKG-INFO => third_party/python/rsa/rsa.egg-info/PKG-INFO
rename : python/rsa/rsa.egg-info/SOURCES.txt => third_party/python/rsa/rsa.egg-info/SOURCES.txt
rename : python/rsa/rsa.egg-info/dependency_links.txt => third_party/python/rsa/rsa.egg-info/dependency_links.txt
rename : python/rsa/rsa.egg-info/entry_points.txt => third_party/python/rsa/rsa.egg-info/entry_points.txt
rename : python/rsa/rsa.egg-info/requires.txt => third_party/python/rsa/rsa.egg-info/requires.txt
rename : python/rsa/rsa.egg-info/top_level.txt => third_party/python/rsa/rsa.egg-info/top_level.txt
rename : python/rsa/rsa/__init__.py => third_party/python/rsa/rsa/__init__.py
rename : python/rsa/rsa/_compat.py => third_party/python/rsa/rsa/_compat.py
rename : python/rsa/rsa/_version133.py => third_party/python/rsa/rsa/_version133.py
rename : python/rsa/rsa/_version200.py => third_party/python/rsa/rsa/_version200.py
rename : python/rsa/rsa/asn1.py => third_party/python/rsa/rsa/asn1.py
rename : python/rsa/rsa/bigfile.py => third_party/python/rsa/rsa/bigfile.py
rename : python/rsa/rsa/cli.py => third_party/python/rsa/rsa/cli.py
rename : python/rsa/rsa/common.py => third_party/python/rsa/rsa/common.py
rename : python/rsa/rsa/core.py => third_party/python/rsa/rsa/core.py
rename : python/rsa/rsa/key.py => third_party/python/rsa/rsa/key.py
rename : python/rsa/rsa/parallel.py => third_party/python/rsa/rsa/parallel.py
rename : python/rsa/rsa/pem.py => third_party/python/rsa/rsa/pem.py
rename : python/rsa/rsa/pkcs1.py => third_party/python/rsa/rsa/pkcs1.py
rename : python/rsa/rsa/prime.py => third_party/python/rsa/rsa/prime.py
rename : python/rsa/rsa/randnum.py => third_party/python/rsa/rsa/randnum.py
rename : python/rsa/rsa/transform.py => third_party/python/rsa/rsa/transform.py
rename : python/rsa/rsa/util.py => third_party/python/rsa/rsa/util.py
rename : python/rsa/rsa/varblock.py => third_party/python/rsa/rsa/varblock.py
rename : python/rsa/run_tests.py => third_party/python/rsa/run_tests.py
rename : python/rsa/setup.cfg => third_party/python/rsa/setup.cfg
rename : python/rsa/setup.py => third_party/python/rsa/setup.py
rename : python/rsa/tests/__init__.py => third_party/python/rsa/tests/__init__.py
rename : python/rsa/tests/constants.py => third_party/python/rsa/tests/constants.py
rename : python/rsa/tests/py2kconstants.py => third_party/python/rsa/tests/py2kconstants.py
rename : python/rsa/tests/py3kconstants.py => third_party/python/rsa/tests/py3kconstants.py
rename : python/rsa/tests/test_bigfile.py => third_party/python/rsa/tests/test_bigfile.py
rename : python/rsa/tests/test_common.py => third_party/python/rsa/tests/test_common.py
rename : python/rsa/tests/test_compat.py => third_party/python/rsa/tests/test_compat.py
rename : python/rsa/tests/test_integers.py => third_party/python/rsa/tests/test_integers.py
rename : python/rsa/tests/test_load_save_keys.py => third_party/python/rsa/tests/test_load_save_keys.py
rename : python/rsa/tests/test_pem.py => third_party/python/rsa/tests/test_pem.py
rename : python/rsa/tests/test_pkcs1.py => third_party/python/rsa/tests/test_pkcs1.py
rename : python/rsa/tests/test_strings.py => third_party/python/rsa/tests/test_strings.py
rename : python/rsa/tests/test_transform.py => third_party/python/rsa/tests/test_transform.py
rename : python/rsa/tests/test_varblock.py => third_party/python/rsa/tests/test_varblock.py
rename : python/slugid/.gitignore => third_party/python/slugid/.gitignore
rename : python/slugid/.travis.yml => third_party/python/slugid/.travis.yml
rename : python/slugid/LICENSE => third_party/python/slugid/LICENSE
rename : python/slugid/README.rst => third_party/python/slugid/README.rst
rename : python/slugid/requirements.txt => third_party/python/slugid/requirements.txt
rename : python/slugid/setup.py => third_party/python/slugid/setup.py
rename : python/slugid/slugid/__init__.py => third_party/python/slugid/slugid/__init__.py
rename : python/slugid/slugid/slugid.py => third_party/python/slugid/slugid/slugid.py
rename : python/slugid/test.py => third_party/python/slugid/test.py
rename : python/slugid/tox.ini => third_party/python/slugid/tox.ini
rename : python/virtualenv/AUTHORS.txt => third_party/python/virtualenv/AUTHORS.txt
rename : python/virtualenv/LICENSE.txt => third_party/python/virtualenv/LICENSE.txt
rename : python/virtualenv/MANIFEST.in => third_party/python/virtualenv/MANIFEST.in
rename : python/virtualenv/PKG-INFO => third_party/python/virtualenv/PKG-INFO
rename : python/virtualenv/README.rst => third_party/python/virtualenv/README.rst
rename : python/virtualenv/bin/rebuild-script.py => third_party/python/virtualenv/bin/rebuild-script.py
rename : python/virtualenv/docs/Makefile => third_party/python/virtualenv/docs/Makefile
rename : python/virtualenv/docs/changes.rst => third_party/python/virtualenv/docs/changes.rst
rename : python/virtualenv/docs/conf.py => third_party/python/virtualenv/docs/conf.py
rename : python/virtualenv/docs/development.rst => third_party/python/virtualenv/docs/development.rst
rename : python/virtualenv/docs/index.rst => third_party/python/virtualenv/docs/index.rst
rename : python/virtualenv/docs/installation.rst => third_party/python/virtualenv/docs/installation.rst
rename : python/virtualenv/docs/make.bat => third_party/python/virtualenv/docs/make.bat
rename : python/virtualenv/docs/reference.rst => third_party/python/virtualenv/docs/reference.rst
rename : python/virtualenv/docs/userguide.rst => third_party/python/virtualenv/docs/userguide.rst
rename : python/virtualenv/scripts/virtualenv => third_party/python/virtualenv/scripts/virtualenv
rename : python/virtualenv/setup.cfg => third_party/python/virtualenv/setup.cfg
rename : python/virtualenv/setup.py => third_party/python/virtualenv/setup.py
rename : python/virtualenv/site.py => third_party/python/virtualenv/site.py
rename : python/virtualenv/tests/__init__.py => third_party/python/virtualenv/tests/__init__.py
rename : python/virtualenv/tests/test_activate.sh => third_party/python/virtualenv/tests/test_activate.sh
rename : python/virtualenv/tests/test_activate_output.expected => third_party/python/virtualenv/tests/test_activate_output.expected
rename : python/virtualenv/tests/test_cmdline.py => third_party/python/virtualenv/tests/test_cmdline.py
rename : python/virtualenv/tests/test_virtualenv.py => third_party/python/virtualenv/tests/test_virtualenv.py
rename : python/virtualenv/virtualenv.py => third_party/python/virtualenv/virtualenv.py
rename : python/virtualenv/virtualenv_embedded/activate.bat => third_party/python/virtualenv/virtualenv_embedded/activate.bat
rename : python/virtualenv/virtualenv_embedded/activate.csh => third_party/python/virtualenv/virtualenv_embedded/activate.csh
rename : python/virtualenv/virtualenv_embedded/activate.fish => third_party/python/virtualenv/virtualenv_embedded/activate.fish
rename : python/virtualenv/virtualenv_embedded/activate.ps1 => third_party/python/virtualenv/virtualenv_embedded/activate.ps1
rename : python/virtualenv/virtualenv_embedded/activate.sh => third_party/python/virtualenv/virtualenv_embedded/activate.sh
rename : python/virtualenv/virtualenv_embedded/activate_this.py => third_party/python/virtualenv/virtualenv_embedded/activate_this.py
rename : python/virtualenv/virtualenv_embedded/deactivate.bat => third_party/python/virtualenv/virtualenv_embedded/deactivate.bat
rename : python/virtualenv/virtualenv_embedded/distutils-init.py => third_party/python/virtualenv/virtualenv_embedded/distutils-init.py
rename : python/virtualenv/virtualenv_embedded/distutils.cfg => third_party/python/virtualenv/virtualenv_embedded/distutils.cfg
rename : python/virtualenv/virtualenv_embedded/python-config => third_party/python/virtualenv/virtualenv_embedded/python-config
rename : python/virtualenv/virtualenv_embedded/site.py => third_party/python/virtualenv/virtualenv_embedded/site.py
rename : python/virtualenv/virtualenv_support/__init__.py => third_party/python/virtualenv/virtualenv_support/__init__.py
rename : python/virtualenv/virtualenv_support/argparse-1.4.0-py2.py3-none-any.whl => third_party/python/virtualenv/virtualenv_support/argparse-1.4.0-py2.py3-none-any.whl
rename : python/virtualenv/virtualenv_support/pip-8.1.2-py2.py3-none-any.whl => third_party/python/virtualenv/virtualenv_support/pip-8.1.2-py2.py3-none-any.whl
rename : python/virtualenv/virtualenv_support/setuptools-25.2.0-py2.py3-none-any.whl => third_party/python/virtualenv/virtualenv_support/setuptools-25.2.0-py2.py3-none-any.whl
rename : python/virtualenv/virtualenv_support/wheel-0.29.0-py2.py3-none-any.whl => third_party/python/virtualenv/virtualenv_support/wheel-0.29.0-py2.py3-none-any.whl
rename : python/voluptuous/COPYING => third_party/python/voluptuous/COPYING
rename : python/voluptuous/MANIFEST.in => third_party/python/voluptuous/MANIFEST.in
rename : python/voluptuous/PKG-INFO => third_party/python/voluptuous/PKG-INFO
rename : python/voluptuous/README.md => third_party/python/voluptuous/README.md
rename : python/voluptuous/README.rst => third_party/python/voluptuous/README.rst
rename : python/voluptuous/setup.cfg => third_party/python/voluptuous/setup.cfg
rename : python/voluptuous/setup.py => third_party/python/voluptuous/setup.py
rename : python/voluptuous/tests.md => third_party/python/voluptuous/tests.md
rename : python/voluptuous/voluptuous.py => third_party/python/voluptuous/voluptuous.py
rename : python/which/LICENSE.txt => third_party/python/which/LICENSE.txt
rename : python/which/MANIFEST.in => third_party/python/which/MANIFEST.in
rename : python/which/Makefile.win => third_party/python/which/Makefile.win
rename : python/which/PKG-INFO => third_party/python/which/PKG-INFO
rename : python/which/README.txt => third_party/python/which/README.txt
rename : python/which/TODO.txt => third_party/python/which/TODO.txt
rename : python/which/build.py => third_party/python/which/build.py
rename : python/which/launcher.cpp => third_party/python/which/launcher.cpp
rename : python/which/logo.jpg => third_party/python/which/logo.jpg
rename : python/which/setup.py => third_party/python/which/setup.py
rename : python/which/test/test_which.py => third_party/python/which/test/test_which.py
rename : python/which/test/testsupport.py => third_party/python/which/test/testsupport.py
rename : python/which/which.py => third_party/python/which/which.py
extra : rebase_source : fc38848c444c36b0d38a0c33aa5be74d5037d57d
2017-05-25 11:48:03 -04:00

381 lines
12 KiB
Python

# --- ELLIPTIC CURVE MATH ------------------------------------------------------
#
# curve definition: y^2 = x^3 - p*x - q
# over finite field: Z/nZ* (prime residue classes modulo a prime number n)
#
#
# COPYRIGHT (c) 2010 by Toni Mattis <solaris@live.de>
# ------------------------------------------------------------------------------
'''
Module for elliptic curve arithmetic over a prime field GF(n).
E(GF(n)) takes the form y**2 == x**3 - p*x - q (mod n) for a prime n.
0. Structures used by this module
PARAMETERS and SCALARS are non-negative (long) integers.
A POINT (x, y), usually denoted p1, p2, ...
is a pair of (long) integers where 0 <= x < n and 0 <= y < n
A POINT in PROJECTIVE COORDINATES, usually denoted jp1, jp2, ...
takes the form (X, Y, Z, Z**2, Z**3) where x = X / Z**2
and y = Y / z**3. This form is called Jacobian coordinates.
The NEUTRAL element "0" or "O" is represented by None
in both coordinate systems.
1. Basic Functions
euclid() Is the Extended Euclidean Algorithm.
inv() Computes the multiplicative inversion modulo n.
curve_q() Finds the curve parameter q (mod n)
when p and a point are given.
element() Tests whether a point (x, y) is on the curve.
2. Point transformations
to_projective() Converts a point (x, y) to projective coordinates.
from_projective() Converts a point from projective coordinates
to (x, y) using the transformation described above.
neg() Computes the inverse point -P in both coordinate
systems.
3. Slow point arithmetic
These algorithms make use of basic geometry and modular arithmetic
thus being suitable for small numbers and academic study.
add() Computes the sum of two (x, y)-points
mul() Perform scalar multiplication using "double & add"
4. Fast point arithmetic
These algorithms make use of projective coordinates, signed binary
expansion and a JSP-like approach (joint sparse form).
The following functions consume and return projective coordinates:
addf() Optimized point addition.
doublef() Optimized point doubling.
mulf() Highly optimized scalar multiplication.
muladdf() Highly optimized addition of two products.
The following functions use the optimized ones above but consume
and output (x, y)-coordinates for a more convenient usage:
mulp() Encapsulates mulf()
muladdp() Encapsulates muladdf()
For single additions add() is generally faster than an encapsulation of
addf() which would involve expensive coordinate transformations.
Hence there is no addp() and doublep().
'''
# BASIC MATH -------------------------------------------------------------------
def euclid(a, b):
'''Solve x*a + y*b = ggt(a, b) and return (x, y, ggt(a, b))'''
# Non-recursive approach hence suitable for large numbers
x = yy = 0
y = xx = 1
while b:
q = a // b
a, b = b, a % b
x, xx = xx - q * x, x
y, yy = yy - q * y, y
return xx, yy, a
def inv(a, n):
'''Perform inversion 1/a modulo n. a and n should be COPRIME.'''
# coprimality is not checked here in favour of performance
i = euclid(a, n)[0]
while i < 0:
i += n
return i
def curve_q(x, y, p, n):
'''Find curve parameter q mod n having point (x, y) and parameter p'''
return ((x * x - p) * x - y * y) % n
def element(point, p, q, n):
'''Test, whether the given point is on the curve (p, q, n)'''
if point:
x, y = point
return (x * x * x - p * x - q) % n == (y * y) % n
else:
return True
def to_projective(p):
'''Transform point p given as (x, y) to projective coordinates'''
if p:
return (p[0], p[1], 1, 1, 1)
else:
return None # Identity point (0)
def from_projective(jp, n):
'''Transform a point from projective coordinates to (x, y) mod n'''
if jp:
return (jp[0] * inv(jp[3], n)) % n, (jp[1] * inv(jp[4], n)) % n
else:
return None # Identity point (0)
def neg(p, n):
'''Compute the inverse point to p in any coordinate system'''
return (p[0], (n - p[1]) % n) + p[2:] if p else None
# POINT ADDITION ---------------------------------------------------------------
# addition of points in y**2 = x**3 - p*x - q over <Z/nZ*; +>
def add(p, q, n, p1, p2):
'''Add points p1 and p2 over curve (p, q, n)'''
if p1 and p2:
x1, y1 = p1
x2, y2 = p2
if (x1 - x2) % n:
s = ((y1 - y2) * inv(x1 - x2, n)) % n # slope
x = (s * s - x1 - x2) % n # intersection with curve
return (x, n - (y1 + s * (x - x1)) % n)
else:
if (y1 + y2) % n: # slope s calculated by derivation
s = ((3 * x1 * x1 - p) * inv(2 * y1, n)) % n
x = (s * s - 2 * x1) % n # intersection with curve
return (x, n - (y1 + s * (x - x1)) % n)
else:
return None
else: # either p1 is not none -> ret. p1, otherwiese p2, which may be
return p1 if p1 else p2 # none too.
# faster addition: redundancy in projective coordinates eliminates
# expensive inversions mod n.
def addf(p, q, n, jp1, jp2):
'''Add jp1 and jp2 in projective (jacobian) coordinates.'''
if jp1 and jp2:
x1, y1, z1, z1s, z1c = jp1
x2, y2, z2, z2s, z2c = jp2
s1 = (y1 * z2c) % n
s2 = (y2 * z1c) % n
u1 = (x1 * z2s) % n
u2 = (x2 * z1s) % n
if (u1 - u2) % n:
h = (u2 - u1) % n
r = (s2 - s1) % n
hs = (h * h) % n
hc = (hs * h) % n
x3 = (-hc - 2 * u1 * hs + r * r) % n
y3 = (-s1 * hc + r * (u1 * hs - x3)) % n
z3 = (z1 * z2 * h) % n
z3s = (z3 * z3) % n
z3c = (z3s * z3) % n
return (x3, y3, z3, z3s, z3c)
else:
if (s1 + s2) % n:
return doublef(p, q, n, jp1)
else:
return None
else:
return jp1 if jp1 else jp2
# explicit point doubling using redundant coordinates
def doublef(p, q, n, jp):
'''Double jp in projective (jacobian) coordinates'''
if not jp:
return None
x1, y1, z1, z1p2, z1p3 = jp
y1p2 = (y1 * y1) % n
a = (4 * x1 * y1p2) % n
b = (3 * x1 * x1 - p * z1p3 * z1) % n
x3 = (b * b - 2 * a) % n
y3 = (b * (a - x3) - 8 * y1p2 * y1p2) % n
z3 = (2 * y1 * z1) % n
z3p2 = (z3 * z3) % n
return x3, y3, z3, z3p2, (z3p2 * z3) % n
# SCALAR MULTIPLICATION --------------------------------------------------------
# scalar multiplication p1 * c = p1 + p1 + ... + p1 (c times) in O(log(n))
def mul(p, q, n, p1, c):
'''multiply point p1 by scalar c over curve (p, q, n)'''
res = None
while c > 0:
if c & 1:
res = add(p, q, n, res, p1)
c >>= 1 # c = c / 2
p1 = add(p, q, n, p1, p1) # p1 = p1 * 2
return res
# this method allows _signed_bin() to choose between 1 and -1. It will select
# the sign which leaves the higher number of zeroes in the binary
# representation (the higher GDB).
def _gbd(n):
'''Compute second greatest base-2 divisor'''
i = 1
if n <= 0: return 0
while not n % i:
i <<= 1
return i >> 2
# This method transforms n into a binary representation having signed bits.
# A signed binary expansion contains more zero-bits hence reducing the number
# of additions required by a multiplication algorithm.
#
# Example: 15 ( 0b1111 ) can be written as 16 - 1, resulting in (1,0,0,0,-1)
# and saving 2 additions. Subtraction can be performed as
# efficiently as addition.
def _signed_bin(n):
'''Transform n into an optimized signed binary representation'''
r = []
while n > 1:
if n & 1:
cp = _gbd(n + 1)
cn = _gbd(n - 1)
if cp > cn: # -1 leaves more zeroes -> subtract -1 (= +1)
r.append(-1)
n += 1
else: # +1 leaves more zeroes -> subtract +1 (= -1)
r.append(+1)
n -= 1
else:
r.append(0) # be glad about one more zero
n >>= 1
r.append(n)
return r[::-1]
# This multiplication algorithm combines signed binary expansion and
# fast addition using projective coordinates resulting in 5 to 10 times
# faster multiplication.
def mulf(p, q, n, jp1, c):
'''Multiply point jp1 by c in projective coordinates'''
sb = _signed_bin(c)
res = None
jp0 = neg(jp1, n) # additive inverse of jp1 to be used fot bit -1
for s in sb:
res = doublef(p, q, n, res)
if s:
res = addf(p, q, n, res, jp1) if s > 0 else \
addf(p, q, n, res, jp0)
return res
# Encapsulates mulf() in order to enable flat coordinates (x, y)
def mulp(p, q, n, p1, c):
'''Multiply point p by c using fast multiplication'''
return from_projective(mulf(p, q, n, to_projective(p1), c), n)
# Sum of two products using Shamir's trick and signed binary expansion
def muladdf(p, q, n, jp1, c1, jp2, c2):
'''Efficiently compute c1 * jp1 + c2 * jp2 in projective coordinates'''
s1 = _signed_bin(c1)
s2 = _signed_bin(c2)
diff = len(s2) - len(s1)
if diff > 0:
s1 = [0] * diff + s1
elif diff < 0:
s2 = [0] * -diff + s2
jp1p2 = addf(p, q, n, jp1, jp2)
jp1n2 = addf(p, q, n, jp1, neg(jp2, n))
precomp = ((None, jp2, neg(jp2, n)),
(jp1, jp1p2, jp1n2),
(neg(jp1, n), neg(jp1n2, n), neg(jp1p2, n)))
res = None
for i, j in zip(s1, s2):
res = doublef(p, q, n, res)
if i or j:
res = addf(p, q, n, res, precomp[i][j])
return res
# Encapsulate muladdf()
def muladdp(p, q, n, p1, c1, p2, c2):
'''Efficiently compute c1 * p1 + c2 * p2 in (x, y)-coordinates'''
return from_projective(muladdf(p, q, n,
to_projective(p1), c1,
to_projective(p2), c2), n)
# POINT COMPRESSION ------------------------------------------------------------
# Compute the square root modulo n
# Determine the sign-bit of a point allowing to reconstruct y-coordinates
# when x and the sign-bit are given:
def sign_bit(p1):
'''Return the signedness of a point p1'''
return p1[1] % 2 if p1 else 0
# Reconstruct the y-coordinate when curve parameters, x and the sign-bit of
# the y coordinate are given:
def y_from_x(x, p, q, n, sign):
'''Return the y coordinate over curve (p, q, n) for given (x, sign)'''
# optimized form of (x**3 - p*x - q) % n
a = (((x * x) % n - p) * x - q) % n
if __name__ == "__main__":
import rsa
import time
t = time.time()
n = rsa.get_prime(256/8, 20)
tp = time.time() - t
p = rsa.random.randint(1, n)
p1 = (rsa.random.randint(1, n), rsa.random.randint(1, n))
q = curve_q(p1[0], p1[1], p, n)
r1 = rsa.random.randint(1,n)
r2 = rsa.random.randint(1,n)
q1 = mulp(p, q, n, p1, r1)
q2 = mulp(p, q, n, p1, r2)
s1 = mulp(p, q, n, q1, r2)
s2 = mulp(p, q, n, q2, r1)
s1 == s2
tt = time.time() - t
def test(tcount, bits = 256):
n = rsa.get_prime(bits/8, 20)
p = rsa.random.randint(1, n)
p1 = (rsa.random.randint(1, n), rsa.random.randint(1, n))
q = curve_q(p1[0], p1[1], p, n)
p2 = mulp(p, q, n, p1, rsa.random.randint(1, n))
c1 = [rsa.random.randint(1, n) for i in xrange(tcount)]
c2 = [rsa.random.randint(1, n) for i in xrange(tcount)]
c = zip(c1, c2)
t = time.time()
for i, j in c:
from_projective(addf(p, q, n,
mulf(p, q, n, to_projective(p1), i),
mulf(p, q, n, to_projective(p2), j)), n)
t1 = time.time() - t
t = time.time()
for i, j in c:
muladdp(p, q, n, p1, i, p2, j)
t2 = time.time() - t
return tcount, t1, t2