Architecture specific change in rpms/python3.5.git
by githook-noreply@fedoraproject.org
The package rpms/python3.5.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/python3.5.git/commit/?id=f0e2965b...
https://src.fedoraproject.org/cgit/rpms/python3.5.git/commit/?id=a8ffdf32...
https://src.fedoraproject.org/cgit/rpms/python3.5.git/commit/?id=65d04c00...
https://src.fedoraproject.org/cgit/rpms/python3.5.git/commit/?id=9dab8a4c....
Change:
+%ifarch %{power64}
+%ifarch %{power64}
+%ifarch %{valgrind_arches}
+%ifarch %{ix86} x86_64
Thanks.
Full change:
============
commit 08486103540e95af913099d88b8bc08c2f3b8760
Author: Tomas Hrnciar <thrnciar(a)redhat.com>
Date: Wed Apr 29 12:04:31 2020 +0200
Always disable lchmod on Linux.
Backporting this commit because upstream no longer releases other than security fixes
for python35.
Backport: https://github.com/python/cpython/commit/40caa05fa4d1810a1a6bfc34e0ec930c...
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1819759
diff --git a/00348-always-disable-lchmod.patch b/00348-always-disable-lchmod.patch
new file mode 100644
index 0000000..f3df5ff
--- /dev/null
+++ b/00348-always-disable-lchmod.patch
@@ -0,0 +1,126 @@
+diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
+index cc9c570..b405f01 100644
+--- a/Lib/test/test_resource.py
++++ b/Lib/test/test_resource.py
+@@ -148,9 +148,6 @@ class ResourceTest(unittest.TestCase):
+ @support.requires_linux_version(2, 6, 36)
+ def test_prlimit(self):
+ self.assertRaises(TypeError, resource.prlimit)
+- if os.geteuid() != 0:
+- self.assertRaises(PermissionError, resource.prlimit,
+- 1, resource.RLIMIT_AS)
+ self.assertRaises(ProcessLookupError, resource.prlimit,
+ -1, resource.RLIMIT_AS)
+ limit = resource.getrlimit(resource.RLIMIT_AS)
+diff --git a/configure b/configure
+index ed37d5d..a00eb55 100755
+--- a/configure
++++ b/configure
+@@ -783,6 +783,7 @@ infodir
+ docdir
+ oldincludedir
+ includedir
++runstatedir
+ localstatedir
+ sharedstatedir
+ sysconfdir
+@@ -895,6 +896,7 @@ datadir='${datarootdir}'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
++runstatedir='${localstatedir}/run'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+ docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+@@ -1147,6 +1149,15 @@ do
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
++ -runstatedir | --runstatedir | --runstatedi | --runstated \
++ | --runstate | --runstat | --runsta | --runst | --runs \
++ | --run | --ru | --r)
++ ac_prev=runstatedir ;;
++ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
++ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
++ | --run=* | --ru=* | --r=*)
++ runstatedir=$ac_optarg ;;
++
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+@@ -1284,7 +1295,7 @@ fi
+ for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+- libdir localedir mandir
++ libdir localedir mandir runstatedir
+ do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+@@ -1437,6 +1448,7 @@ Fine tuning of the installation directories:
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
++ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+@@ -11290,7 +11302,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
+ getgrouplist getgroups getlogin getloadavg getpeername getpgid getpid \
+ getpriority getresuid getresgid getpwent getspnam getspent getsid getwd \
+ if_nameindex \
+- initgroups kill killpg lchmod lchown lockf linkat lstat lutimes mmap \
++ initgroups kill killpg lchown lockf linkat lstat lutimes mmap \
+ memrchr mbrtowc mkdirat mkfifo \
+ mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \
+ posix_fallocate posix_fadvise pread \
+@@ -11316,6 +11328,22 @@ _ACEOF
+ fi
+ done
+
++# Force lchmod off for Linux. Linux disallows changing the mode of symbolic
++# links. Some libc implementations have a stub lchmod implementation that always
++# returns an error.
++if test "$MACHDEP" != linux; then
++ for ac_func in lchmod
++do :
++ ac_fn_c_check_func "$LINENO" "lchmod" "ac_cv_func_lchmod"
++if test "x$ac_cv_func_lchmod" = xyes; then :
++ cat >>confdefs.h <<_ACEOF
++#define HAVE_LCHMOD 1
++_ACEOF
++
++fi
++done
++
++fi
+
+ ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h>
+ #include <dirent.h>
+diff --git a/configure.ac b/configure.ac
+index 937bb65..6c7813b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -3370,7 +3370,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
+ getgrouplist getgroups getlogin getloadavg getpeername getpgid getpid \
+ getpriority getresuid getresgid getpwent getspnam getspent getsid getwd \
+ if_nameindex \
+- initgroups kill killpg lchmod lchown lockf linkat lstat lutimes mmap \
++ initgroups kill killpg lchown lockf linkat lstat lutimes mmap \
+ memrchr mbrtowc mkdirat mkfifo \
+ mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \
+ posix_fallocate posix_fadvise pread \
+@@ -3386,6 +3386,13 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
+ truncate uname unlinkat unsetenv utimensat utimes waitid waitpid wait3 wait4 \
+ wcscoll wcsftime wcsxfrm wmemcmp writev _getpty)
+
++# Force lchmod off for Linux. Linux disallows changing the mode of symbolic
++# links. Some libc implementations have a stub lchmod implementation that always
++# returns an error.
++if test "$MACHDEP" != linux; then
++ AC_CHECK_FUNCS(lchmod)
++fi
++
+ AC_CHECK_DECL(dirfd,
+ AC_DEFINE(HAVE_DIRFD, 1,
+ Define if you have the 'dirfd' function or macro.), ,
diff --git a/python35.spec b/python35.spec
index 4be0ea6..90b206a 100644
--- a/python35.spec
+++ b/python35.spec
@@ -87,7 +87,7 @@ URL: https://www.python.org/
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 3%{?dist}
+Release: 4%{?dist}
License: Python
# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
@@ -418,6 +418,13 @@ Patch315: 00315-test_email-mktime.patch
# https://github.com/python/cpython/commit/ac827edc493d3ac3f5b9b0cc353df1d4...
Patch343: 00343-faulthandler-gcc10.patch
+# 00348 #
+# bpo-34652: Always disable lchmod on Linux.
+# Backport of commit, upstream is doing only security fixes for python35
+# https://bugs.python.org/issue34652
+# https://github.com/python/cpython/commit/40caa05fa4d1810a1a6bfc34e0ec930c...
+Patch348: 00348-always-disable-lchmod.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -544,6 +551,7 @@ rmdir Lib/ensurepip/_bundled
%patch290 -p1
%patch315 -p1
%patch343 -p1
+%patch348 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@@ -1060,6 +1068,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue May 05 2020 Tomas Hrnciar <thrnciar(a)redhat.com> - 3.5.9-4
+- Fix a build/test failure with glibc 2.31.9000+ (#1819759)
+
* Wed Feb 12 2020 Miro Hronok <mhroncok(a)redhat.com> - 3.5.9-3
- Update the ensurepip module to work with setuptools >= 45
commit 66ed56bcd4e1a49726ef262470f9c3ed85e01b49
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Feb 12 13:30:25 2020 +0100
Update the ensurepip module to work with setuptools >= 45
setuptools 45.x is Python 3 only and changed the name of the wheel
diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch
index c9daa94..93157da 100644
--- a/00189-use-rpm-wheels.patch
+++ b/00189-use-rpm-wheels.patch
@@ -2,7 +2,7 @@ diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
index 25c5567..2553524 100644
--- a/Lib/ensurepip/__init__.py
+++ b/Lib/ensurepip/__init__.py
-@@ -1,16 +1,27 @@
+@@ -1,16 +1,31 @@
+import distutils.version
+import glob
import os
@@ -17,14 +17,18 @@ index 25c5567..2553524 100644
+_WHEEL_DIR = "/usr/share/python-wheels/"
-_SETUPTOOLS_VERSION = "28.8.0"
++_wheels = {}
-_PIP_VERSION = "9.0.1"
+def _get_most_recent_wheel_version(pkg):
+ prefix = os.path.join(_WHEEL_DIR, "{}-".format(pkg))
-+ suffix = "-py2.py3-none-any.whl"
-+ pattern = "{}*{}".format(prefix, suffix)
-+ versions = (p[len(prefix):-len(suffix)] for p in glob.glob(pattern))
-+ return str(max(versions, key=distutils.version.LooseVersion))
++ _wheels[pkg] = {}
++ for suffix in "-py2.py3-none-any.whl", "-py3-none-any.whl":
++ pattern = "{}*{}".format(prefix, suffix)
++ for path in glob.glob(pattern):
++ version_str = path[len(prefix):-len(suffix)]
++ _wheels[pkg][version_str] = os.path.basename(path)
++ return str(max(_wheels[pkg], key=distutils.version.LooseVersion))
+
+
+_SETUPTOOLS_VERSION = _get_most_recent_wheel_version("setuptools")
@@ -52,13 +56,14 @@ index 25c5567..2553524 100644
@@ -93,12 +109,9 @@ def bootstrap(*, root=None, upgrade=False, user=False,
additional_paths = []
for project, version in _PROJECTS:
- wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version)
+- wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version)
- whl = pkgutil.get_data(
- "ensurepip",
- "_bundled/{}".format(wheel_name),
- )
- with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
- fp.write(whl)
++ wheel_name = _wheels[project][version]
+ with open(os.path.join(_WHEEL_DIR, wheel_name), "rb") as sfp:
+ with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
+ fp.write(sfp.read())
diff --git a/python35.spec b/python35.spec
index e025bfb..4be0ea6 100644
--- a/python35.spec
+++ b/python35.spec
@@ -87,7 +87,7 @@ URL: https://www.python.org/
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
@@ -1060,6 +1060,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Wed Feb 12 2020 Miro Hronok <mhroncok(a)redhat.com> - 3.5.9-3
+- Update the ensurepip module to work with setuptools >= 45
+
* Thu Jan 30 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
commit 2c60e9f07a9b0a9f1f5eecea051d5c13e436823a
Author: Victor Stinner <vstinner(a)python.org>
Date: Tue Feb 18 15:44:11 2020 +0100
Add rpmlintrc config file
Ignore the following rpmlint errors:
python35.x86_64: E: zero-length /usr/lib64/python3.5/test/test_import/data/package2/submodule2.py
python35.x86_64: E: zero-length /usr/lib64/python3.5/test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test/empty
python35.x86_64: E: zero-length /usr/lib64/python3.5/test/test_systemtap.py.systemtap
diff --git a/python35.rpmlintrc b/python35.rpmlintrc
new file mode 100644
index 0000000..d520a26
--- /dev/null
+++ b/python35.rpmlintrc
@@ -0,0 +1,2 @@
+# TESTS:
+addFilter(r'(zero-length|pem-certificate|uncompressed-zip) /usr/lib(64)?/python3.\d/test')
commit 99705571aabb22a3f0307e26181e5fadcba72b77
Author: Victor Stinner <vstinner(a)python.org>
Date: Mon Feb 17 17:37:24 2020 +0100
Fix test_faulthandler on GCC 10
Fix also faulthandler.register(chain=True) stack.
Resolves: rhbz#1799091
diff --git a/00343-faulthandler-gcc10.patch b/00343-faulthandler-gcc10.patch
new file mode 100644
index 0000000..199dcd7
--- /dev/null
+++ b/00343-faulthandler-gcc10.patch
@@ -0,0 +1,64 @@
+commit 5044c889dfced2f43e2cccb673d889a4882f6b3b
+Author: Miss Islington (bot) <31488909+miss-islington(a)users.noreply.github.com>
+Date: Wed Dec 4 12:29:22 2019 -0800
+
+ bpo-38965: Fix faulthandler._stack_overflow() on GCC 10 (GH-17467)
+
+ Use the "volatile" keyword to prevent tail call optimization
+ on any compiler, rather than relying on compiler specific pragma.
+ (cherry picked from commit 8b787964e0a647caa0558b7c29ae501470d727d9)
+
+ Co-authored-by: Victor Stinner <vstinner(a)python.org>
+
+commit ac827edc493d3ac3f5b9b0cc353df1d4b418a9aa
+Author: Victor Stinner <vstinner(a)redhat.com>
+Date: Wed Aug 14 23:35:27 2019 +0200
+
+ bpo-21131: Fix faulthandler.register(chain=True) stack (GH-15276)
+
+ faulthandler now allocates a dedicated stack of SIGSTKSZ*2 bytes,
+ instead of just SIGSTKSZ bytes. Calling the previous signal handler
+ in faulthandler signal handler uses more than SIGSTKSZ bytes of stack
+ memory on some platforms.
+
+diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c
+index 56285b6..a682ffa 100644
+--- a/Modules/faulthandler.c
++++ b/Modules/faulthandler.c
+@@ -952,18 +952,15 @@ faulthandler_fatal_error_py(PyObject *self, PyObject *args)
+ }
+
+ #if defined(HAVE_SIGALTSTACK) && defined(HAVE_SIGACTION)
+-#ifdef __INTEL_COMPILER
+- /* Issue #23654: Turn off ICC's tail call optimization for the
+- * stack_overflow generator. ICC turns the recursive tail call into
+- * a loop. */
+-# pragma intel optimization_level 0
+-#endif
+ static
+ Py_uintptr_t
+ stack_overflow(Py_uintptr_t min_sp, Py_uintptr_t max_sp, size_t *depth)
+ {
+- /* allocate 4096 bytes on the stack at each call */
+- unsigned char buffer[4096];
++ /* Allocate (at least) 4096 bytes on the stack at each call.
++
++ bpo-23654, bpo-38965: use volatile keyword to prevent tail call
++ optimization. */
++ volatile unsigned char buffer[4096];
+ Py_uintptr_t sp = (Py_uintptr_t)&buffer;
+ *depth += 1;
+ if (sp < min_sp || max_sp < sp)
+@@ -1146,7 +1143,11 @@ int _PyFaulthandler_Init(void)
+ * be able to allocate memory on the stack, even on a stack overflow. If it
+ * fails, ignore the error. */
+ stack.ss_flags = 0;
+- stack.ss_size = SIGSTKSZ;
++ /* bpo-21131: allocate dedicated stack of SIGSTKSZ*2 bytes, instead of just
++ SIGSTKSZ bytes. Calling the previous signal handler in faulthandler
++ signal handler uses more than SIGSTKSZ bytes of stack memory on some
++ platforms. */
++ stack.ss_size = SIGSTKSZ * 2;
+ stack.ss_sp = PyMem_Malloc(stack.ss_size);
+ if (stack.ss_sp != NULL) {
+ err = sigaltstack(&stack, &old_stack);
diff --git a/python35.spec b/python35.spec
index f7d52c4..e025bfb 100644
--- a/python35.spec
+++ b/python35.spec
@@ -407,6 +407,17 @@ Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1652843
Patch315: 00315-test_email-mktime.patch
+# 00343 #
+# bpo-38965: Fix faulthandler._stack_overflow() on GCC 10
+# Fixed upstream and backported from the 3.7 branch:
+# https://bugs.python.org/issue38965
+# https://github.com/python/cpython/commit/f4a21d3b239bf4f4e4e2a8a5936b9b04...
+#
+# bpo-21131: Fix faulthandler.register(chain=True) stack (GH-15276)
+# https://bugs.python.org/issue21131
+# https://github.com/python/cpython/commit/ac827edc493d3ac3f5b9b0cc353df1d4...
+Patch343: 00343-faulthandler-gcc10.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -532,6 +543,7 @@ rmdir Lib/ensurepip/_bundled
%patch273 -p1
%patch290 -p1
%patch315 -p1
+%patch343 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
commit 9307dee63eed029db746efab716d8bb0c167e217
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jan 30 16:33:33 2020 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/python35.spec b/python35.spec
index 6ac0dd9..f7d52c4 100644
--- a/python35.spec
+++ b/python35.spec
@@ -87,7 +87,7 @@ URL: https://www.python.org/
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
@@ -1048,6 +1048,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Jan 30 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.9-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
* Mon Nov 25 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.9-1
- Update to 3.5.9 (version number update only)
commit 659f3055826958b9e7a6b0dbcd6785522dbf59ba
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Nov 26 00:28:03 2019 +0100
Update to 3.5.9 (version number update only)
diff --git a/.gitignore b/.gitignore
index f951c62..f92f721 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,5 @@ Python-3.5.1.tar.xz
/Python-3.5.8rc2.tar.xz
/Python-3.5.8.tar.xz
/Python-3.5.8.tar.xz.asc
+/Python-3.5.9.tar.xz
+/Python-3.5.9.tar.xz.asc
diff --git a/python35.spec b/python35.spec
index 27f11c8..6ac0dd9 100644
--- a/python35.spec
+++ b/python35.spec
@@ -83,11 +83,11 @@ Name: python%{pyshortver}
Summary: Version %{pybasever} of the Python programming language
URL: https://www.python.org/
-%global general_version %{pybasever}.8
+%global general_version %{pybasever}.9
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 2%{?dist}
+Release: 1%{?dist}
License: Python
# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
@@ -1048,6 +1048,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Mon Nov 25 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.9-1
+- Update to 3.5.9 (version number update only)
+
* Wed Oct 30 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.8-2
- Use the correct upstream tarball
- https://mail.python.org/archives/list/python-dev@python.org/message/OYNQS...
diff --git a/sources b/sources
index 233e09b..1e39d04 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (Python-3.5.8.tar.xz) = ef36b234786a15592f69b0cd38421373e4713e314de847ebe6da4249fb09c467ba2a8d713dde355330ea0be995be4528912f71774e9418dee285ed891d2d2bd5
-SHA512 (Python-3.5.8.tar.xz.asc) = 9181d8e9fdb71eda72458b52cdf97d613c09bd58cd8dc46e3a749cffbbed28e3792d104a5234a60d0f454c8b73df7b989f4984e95a28155fa7186e6dadae8554
+SHA512 (Python-3.5.9.tar.xz) = 58127793adef42ed57ae4d56338268866e14c2d084f09f57f26fc6b1c9454e70cc6d3dffc638f8d56f182acc0884021a4dbb578f312dd6fc01995fa85e31377e
+SHA512 (Python-3.5.9.tar.xz.asc) = f2f8f5b876799d148d91f25b9edd8f293211f39b348017d75b3acb0211e84801cfa2fb19d65afa186fdc235227cd34db85983879cfd8a099b85fb5e426b77d09
commit 606c85efb2f6f137a6f25c1526bff2e5329a7e28
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Nov 1 07:09:41 2019 +0000
Verify upstream sources with GPG
This is now a recommended thing to do:
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_source_file_v...
Regardless if it adds actual security, it should prevent problems like this one:
https://mail.python.org/archives/list/python-dev@python.org/message/OYNQS...
diff --git a/.gitignore b/.gitignore
index d2c136f..f951c62 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,4 @@ Python-3.5.1.tar.xz
/Python-3.5.8rc1.tar.xz
/Python-3.5.8rc2.tar.xz
/Python-3.5.8.tar.xz
+/Python-3.5.8.tar.xz.asc
diff --git a/pubkeys.txt b/pubkeys.txt
new file mode 100644
index 0000000..c409e96
--- /dev/null
+++ b/pubkeys.txt
@@ -0,0 +1,11542 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+otGu1dAOMqiu+LpDVVSQLDhw3vBFdxdIfXA2H/81d+d07nMAsxPWbTIErROlvvmP
+XEvLl7gIntjrQg/sFh+JpqXFNBOiVXJ55I1nRzd4+myHfWyNRSrYSdNEVok/Jyj3
+sUZ97e3hCDdFXFU6L2/Vp90goz/ibpqsr3YD4/dZfV/BvtwmXyimPjdEBqfPBYfs
+6c9tnrqlTzt/ZbGJASIEEAECAAwFAkK3K0AFAwASdQAACgkQlxC4m8pXrXy9QAf/
+eseh2YRutIvE3w0Zt7SKUpDsq12uYAYmCi1sjY+pxUpTr9ntFibu7Sk3qltzgbwH
+RGfM7qOlexN8FAgBw0jAHkrF9aB37pAhFkVoRMzUplmo8BLwj6Xieq+d8cRkh0kQ
+bsaxuzILQz9C+K6JdfAfZxlcFNJacW/IAIzJ68fYybqZqOxTA7f7TG5clAaep9Ud
+KGjlTb4p1ZKrJcQLsHtjQ1ZPAr1j6Xv52Pl8GLgZqFjmw2s23A67aeE0xoOooR1T
+F03HLpLlFqkJYZQR1piI4EXNMXodyAj2Y4dq/t63I3es572VrOouDCykfWGwvQTG
+0/qjLwUaNegrAtlqNBcKlIkBIgQQAQIADAUCQsj6fwUDABJ1AAAKCRCXELibylet
+fJgFCACg+2tVWc65zW5hQjmNY0Y5qxTcGokZ+yvr4K2+TnAdkIh4iOM/z5+8F19e
+YNrI7gfXIOloamThAhIfLLp7oXp6qiIZlhkw4oCCkMlAsbsohu73iHyUYNVfXoLT
+2AkSartajyTMGNga3IoaP5s4PCXxClE6vjvpkNSTWxRPYvRgtfS9PTsK1BbeVLQW
+Fsy6HUNOBW88LB3tyzej02eVefCo5xbUmDf3yMyZOFS5FsWSn1OvPSVlk0XidShy
+mz7cnMwEZBtIy8Ijf/8rquaHlY4J+4izt+j2Y1OEaUco23L5HaQIEg/EzGwBMZa5
+Yy5gSHV/9E0xaryNlcBB+dh5SsGciQEiBBABAgAMBQJCzEaOBQMAEnUAAAoJEJcQ
+uJvKV618rbsIAMgMmO4TR43vPr/0vo3UxX2zLnrywhN3s0bDYc8JcT9+OY6YOFdk
+6KGqZ4XTvn6oKa4cjtVmLw0ZCCqwkGWjlgCa20PQgPWTt5CjZ5F9PJOu9q9vTeNh
+Ns6mS7dBt2kJ2ROyGB0vmrgs8rs5T/WIVJ/4tPWPNubDoSzKstyg6+IH4DzmXzlg
+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
+BUZM3z1Jb3/DZwL8l/nuBOR6eBo0VBXAK1BeUD0HSowFyJPaZKHMMhshGmZ+H+Ak
+qvss1y2VUKoGyX+a9GVBPs66T6dobqUXgwW093dO4NDZNtcZkGqViBRBOmDBGy9h
+NpoOEqYoFOcsKFQ7OGQVMXvA3hNx0CmGprVwn5ZWn3WTYYCPaX215C2N8NWJsxm+
+ZIBfXYz9n3Re/HfCx8JSS338L6osc2Wb/DkmRYjmVay4S2nm+3CqycGyV5v/9a+Q
+5QB2FyfClsT0IJpbmHCv9PT/nwOBojHRCd47ru2HMQLzsMO0exQE8JTwc5acpyBB
+xmLJDeps6Ws7O2TDYNjNRYhJdMWst9Dt19eUIE9jZ8i6ePdGrHLHre/PRucKlLsr
+Mrz8CEWbQfc0ycCAEwh9fy7vs7oG7hs0Kr77EeZ5mOYGSVS896Kkoii/TNzcBM/S
+fD4P3CUh2lAEiQIzBBABCAAdFiEEa0msutz2vRyiBmerzVT849lkvvsFAlki8Z4A
+CgkQzVT849lkvvtduQ//UxzHsrlOWV2EiO3Fx8lP8ooHhy+p5E0mye784VXM5QEK
+RVZeuIXbTl6ezzWq/UmzEaMUO6VutX+g/OPltg8qbFLXzywlklP2dmp488Rqjb4E
+i8eUBMACUq0KnM0D4JPzT/cPcg+0vrIH9gg0D7g4u7UsEaOoB6u61TayJfibJcYk
+DXG/dDagDELnTNbSpF3hfF0y7oAXADJUK95gTzHlvE/gjax5OQTGqXrun41/1zyH
+ZhulONYnoEZ3AFVWKLXk3kwEp0LZ5N5xdiNdKH9Xsz8gUid4sJwD3XRhtPQzkDBG
+YvuTFlm7VAMeyLgLV2ho9wXXAvO2JVyAmLnynpYDnfiNKQ5+/J/u0ujtd57J9sCj
+dW/LRBN2Lssj9f+CJvi3JaobuQ9s89srvisCfyit5607MVRRdbyZKgcaVgCcFyXl
+MXVwEiogwamtxWY29ToosMysepSuG3yaM22yd2fm/W6PIQqPVCFMrVISERgHIoWr
+EM/PrVobhVLM1j+LlmUYqDD9o5lZlHRQyWVnHn0OBCxEZ4WFwW8wlNsZxJ9ayamh
+tqZHT5insaWoZSx4m/bMPIAy16CJZv1V0MoDyhluBMEK8ymeZtXKba+sduLKQ9XG
+KAvcckE7cdZoNubsf1q4+muGF6NfvbfziUvWty+d7rmVtIHh83yFUkY0h0g8WkrR
+/wAAVXv/AABVdgEQAAEBAAAAAAAAAAAAAAAA/9j/4AAQSkZJRgABAQEASABIAAD/
+4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkA
+BgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADT
+LUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAAC
+BAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAAC
+VAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD
++AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAE
+PAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXds
+ZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0y
+LjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEA
+AAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFla
+IAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAA
+FklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3
+LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91
+ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQg
+UkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVz
+YwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2
+LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJ
+RUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk
+/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVh
+cwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3Vy
+dgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkA
+XgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA
+1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWAB
+ZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0C
+JgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsD
+FgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0E
+OwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYF
+lgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH
+Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI
++wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvML
+CwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUAN
+Wg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P
+7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMS
+wxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V
+4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZ
+RRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc
+9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg
+8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQkl
+OCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p
+0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIu
+ty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz
+8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5
+fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/
+YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVF
+mkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JM
+KkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdT
+E1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4Wgda
+VlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh
+9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp
+8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfBy
+S3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7
+BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qE
+HYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGN
+mI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqX
+dZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUeh
+tqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+ms
+XKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3
+aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C
+28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbO
+ts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba
++9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/n
+qegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0
+wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////4QCMRXhp
+ZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAA
+UgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAB85AAAAbwAAHzkAAABvAAOg
+AQADAAAAAQABAACgAgAEAAAAAQAAAMigAwAEAAAAAQAAAToAAAAA/9sAQwACAQEC
+AQECAgECAgICAgMFAwMDAwMGBAQDBQcGBwcHBgYGBwgLCQcICggGBgkNCQoLCwwM
+DAcJDQ4NDA4LDAwL/9sAQwECAgIDAgMFAwMFCwgGCAsLCwsLCwsLCwsLCwsLCwsL
+CwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsL/8AAEQgBOgDIAwEiAAIR
+AQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMC
+BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJ
+ChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3
+eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS
+09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAA
+AAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEH
+YXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVG
+R0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKj
+pKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX2
+9/j5+v/aAAwDAQACEQMRAD8A+BVTB5p6pzkUqrhh/nFSKMivSRgIqjuKeEB7UKvH
+P5U9Rx2o2APL9BzT/LBGaEUEAcjPpUijBOMUANEXzfOM0oXPQc05Rn/PWneucZpC
+GiIA9KURjoo59PWhpUXcXYAL1J6Gqw1mFJlAk2MSNoOAT7nOMD3rOpWhTXvOxtTo
+zm/dVywUwOO/FBjAODVG3vnu5A7tFb2qNhnMitnpyApP5cVBqHiJo9wtxiMKCJWG
+VznBHHP4D8a5/wC0KPc2+o1exqBMHDfU0zYGOCMH+VcbeeP5VfdLhDu2kp8y49uc
+VtaNrTSrvupklkYcAHAHA/z/ADrSGKhP4TOWGlHc1/J4yP50wx5/Co7fVre5fbBK
+GwcMF559yKnBUkg9utdCknszFxaIjHmmeVgfWrG0NjHU0xlwOeKu4rELxDqOKY0Y
+A+tWXhIbDdeoxzmoymSc5pXHYgZPy96YY+f5VOy44pjjrigViFkGMHtUbR9MirDL
+k96Y6ZHNTYdiu0ffoaKmKZ64/wAKKmwFhenNPH/16jB9OTUg+vNVcLD1OOvenLx1
+pgFPXrzSuFh6fninoeOaizjGKqazrkGk2jPdTRwHB27h1PoKUpKKuxqN9EWrvVI9
+JxLeyRhFOSG4J+lc9eeKmv7p47WK4eNmA84NhB7gjr2/Oudk0XUfHkjXMEcvkxtg
+ssgcKDnuPpn8a1tJ0rUmiiWLMLNvUDaVUgDJAHP/ANfIrxsTjHLSDsenh8Ko6yVz
+Z0vV4LRVS4h+05/56Fm479PTBGOelauozPqaeRHbzRwYyvkRgqeOm4dRz16itDwl
+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
+nT9AJE9WEH8R7bJ+YgQ8rcsAKHRZGS5QtBKjABEBAAG0L1RvdGFsbHkgTGVnaXQg
+U2lnbmluZyBLZXkgPG1hbGxvcnlAZXhhbXBsZS5vcmc+iNAEEwEIADoWIQSetJ3B
+ZvZADvXaU/V5tFfk5t8CXAUCUOqItQIbAQYLCQgHAwIHFQoJCAsDAgQWAgMBAh4B
+AheAAAoJEHm0V+Tm3wJcWjkEAI/0giyWy85DrMnJM7Q4hDyCjLEv+pN4VKAAcYBU
+ABDaJ4jvMAXkjjPR4kp4wd+mdE6OaVXGI4Vm6CWv/nfLX79OLvem7IzA5/3zRQKW
+Bu5/deuQbMCTNqRxxcUb6mN0JAr29/n++TNnEnCEMOpI9c4eVGysr3BU9AYbMgxf
+5wpNmI0EVV7zcgEEAJ084/KZCnF3LNjAnag4CrJe2N/4HY10K2+wrzJPkpP6nJ/C
+/cSF4214tWLeP3JUuhK8cfQDYd4gHUXjxSh8X6W0alNUPytKGyyutfu/AXsC3OOr
+yCB/++BJCEO/Bt1WuFHy+YIMRazCvo4hDyoXf4giPf5GshXoYqULsK/59fC/ABEB
+AAG0L1RvdGFsbHkgTGVnaXQgU2lnbmluZyBLZXkgPG1hbGxvcnlAZXhhbXBsZS5v
+cmc+iNAEEwEIADoWIQSAG9Wuk9OS4i3cbHr+o9xt6lu9cQUCVV7zcgIbAQYLCQgH
+AwIHFQoJCAsDAgQWAgMBAh4BAheAAAoJEP6j3G3qW71x37cD/AxkV2KkKC7Ag0TP
+28itBr+HYyIKPFyt34AkK/NscyUNK+uhsxNre6noV/rl61gKBgqcp4uOaPiOEF21
+Zh79x/k5MxR/XRN4S7Q8k4CxPQ1eafPvgB/+KL4qPO8I3cCFvq/6p3AFcxoGk6G5
+SQv0GYPRmWUShE0y+N6P11BdfGFpmI4EU554zgEEAObabQh5zAM31ZNAi7pek41m
+lrnAJiJVGfnEA4ItQmOevBIs55CFifhgGMobM3I9M3ty7TVw10AUdw5pxGGXkkic
+Wj3ziaOD1igaDBDvhTxzGTb+zTXmEKddcfwGl7ZVcmB72avmq2UgvPMQyAHQkw+j
+Bq0jwLhZhuXpt5B/gOAPACCxO4MBiQE3BCABAgChBQJXsqAKmh0CVGhpcyBrZXkg
+d2FzIGdlbmVyYXRlZCBhcyBwYXJ0IG9mIHRoZSBFdmlsMzIgcHJvamVjdC4KSXQg
+aXMgbm90IG93bmVkIGJ5IHRoZSB1c2VyIGRlc2NyaWJlZCBpbiB0aGUgVUlELgpT
+ZWUgaHR0cHM6Ly9ldmlsMzIuY29tL3Jldm9rZWQgZm9yIG1vcmUgZGV0YWlscy4A
+CgkQGScg9+pbvXH+EAP+JoMEpYItU+4M1+CCluv79GO2Vv+v26VGMfCw+kjhpHOd
+ssa2yxDdYR5Ihadl1tKZgeHBO4cRPfbYxJm6c9fVxvYP2lO6UDMf/NEa2Lxxte77
+fL93MPnQxQBYy8Sjh8gpO3rAVvagez1iptOT3k+o4i80hTCATItZ6v1gs5N+QjG0
+IUJhcnJ5IEEuIFdhcnNhdyA8YmFycnlAd2Fyc2F3LnVzPoicBBABAgAGBQJT4HiR
+AAoJEEpFBn+LvXfwXwQEAI53rYeJhS7bedw6vWEU1gL+EdtDuFxNdO24qPTQ7Q37
+iD69hILPoRUAvldrmD6rOhgctbxK7qFPxWuhhht2yXAb2kH0lJ8cA0yWSfm7rlGN
+3+sZZBUUEAufHKBly/5sYGd0hSHlRLaDZ5PE8XApCMq58liwvFrYqrIxXs3Z9PQW
+iJwEEAECAAYFAlPgeJEACgkQTi/IT0VD1XdfBAP8DcnKbEq9KJAbjMC+bpHSGn1K
+A/dKehkIFxrKjZtX5p2OHMoftL/5unbgZjjbNNELx5K5kbJ+nUZDi7NjeTLr0KlP
+GNAAlJTI5ByNM/bVO85rMCXr3vdHkALjdZDmvKgZv9RyZXDAimRek4+0MQ1Ni90h
+hdRxuWw5oGv3HpRuWnmInAQQAQIABgUCU+B4kQAKCRCC04i4Z5GxT18EA/0URUqv
+kwtkLNhjetBD/COYPssntHAtdJLkoeWY8bvz6uT6nHh9Fm5Q5QTaoqpsOg7qrIZT
+exUImsShJxAO3D1jUQM+uqv71PR2KvaFf939HLlG8cPWnNFYAp42FRLEDU0QO04m
+D4DJsOTH5SEETYP9rU1pnp0ovWhnQzXyQ23vv4icBBABAgAGBQJT4HiRAAoJEJb9
+czBHQhGNXwQEAKPDJx4sJOfBfIB1yUsUiqDh4wd0cBnA7BTVFEz4YKov60TCPMXF
+QRzS/tCDosNB6KR18zq6EvVldNmPoLnpdEK4t8/LDNWn1rqUDX6IvV4aHtKhT+1d
+RYxwt2csFNfy9YHr0K/1Zl/Gi6ZiCi9vcWguDIm/3O5ltxlGymvzMkTbiJwEEAEC
+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
+MiBwcm9qZWN0LgpJdCBpcyBub3Qgb3duZWQgYnkgdGhlIHVzZXIgZGVzY3JpYmVk
+IGluIHRoZSBVSUQuClNlZSBodHRwczovL2V2aWwzMi5jb20vcmV2b2tlZCBmb3Ig
+bW9yZSBkZXRhaWxzLgAKCRD+WfgTp0sGvzhgD/0fzz3JzuUeggnXfz8Tw4ZKC9Vl
+t5dn7KvsXfXa8jfRjdvn9lYeOUxi9OpinNojm/Jm/aVfPo9ZtjOXlquRP74zQCW5
+YIc/HtNpamSqJJKhxQvHQAHJ2+YNC9IM3cafDwNFZEJC0KDhb2eVwazptH2nckfC
+1foCccyXfBlKS3ZCd9z+8mkO56mIdeFQKG1scO84RxdNDQVdei5BSfmbJlTwbdko
+p3yeg0Oc4bpmpNFwNtVsVv59JtvGtmbpuWOU3Tw6mTubEoorFL8tkQuMj7AWqiTc
+5qXN37xS63+VddwKlTEC+Q1SlK1GqVMTPosXeELJv5AQDmfbYJ8bVoEqK0+kjAN9
+tyJzzz4aFrUztoE1qNEmwrZYT8pPmhndVE4hZ4xIX8/uLVdClYYLLozHnzOCCVrH
+xIIeT02KRy4glo0daeeBrw6pwn4Qzjsnvy05+rfxe7Fql0fi9mCUQnKS5yZF0bCd
+qqXc730e9sEkeTyRn9zyjdT6EXW2nM8grkkinTTL5izcYZviM0aFkvSD7surVsvh
+h/8RscpWQHokp0Y0lb9gGDe701FacV6mO0bFkJBmZdMI1a9J6lwzDWsjDlCywVxP
+9TkRZasTFehgephqpRgnTzxjy5uux9GE5Tujpj/jUzbtcOmjlfBBb1Zm8vaf5xJC
+8ljywm61mOca0vbCcLQeQmFycnkgV2Fyc2F3IDxiYXJyeUB3YXJzYXcudXM+iJwE
+EAECAAYFAlPgmd8ACgkQGScg9+pbvXHpKAP+J+FPJiRe3Qf4UdVSs5fIs2BVrb89
+dP7EJn2RDrwCLUEqGNi9S1ccNGfFKt5omfXEyEruVYyKI9/lS5RxO7urs+sTNj7f
+2AUXXwE4cN71fzkfmrb9GEDJuBQL8SccUCCRTzAqWwvm5Pn9vF3QFhEQqU/4citx
+IWBqYvtB5AsGMe6InAQQAQIABgUCU+CZ3wAKCRDxZZRZ3c1oaukoA/94acZdSKRp
+9liCgCZ6jQmrsBWtbIhPbnrIz8x+/7o8FnGMbYdoBSrOkcU6Q2JDasjcwrhQkZwq
+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
+IcR7vZzBYlcBV1oka+ZjkwQ8f/KYkfNSPo8CgNjnkTiAbcSJYIyWDZY7YVf7xr63
+MvEPdPrU9/8pgWE9k5E4L/7W49udJVKAzhLibIZfN/y20O0Ohga4Zx27BjKhLpwR
+bzh/aYre2yvsZ4adpXNkjMmaqdirFtS5C35Zg7Zj/vCxS37iXrrKiga53N4ws6+d
+0cIf7vJmsvbU6TO38VKwWga6PXNWk0sJi//E2OuBS2lEQTcXrhPxppbVNDSnXs/Q
+5LfGFNpCxGRgk8M7o2sa87jy+IFy70sBGYUdpAnwx+E/axyYrBr5i6+Nl51Z96dK
+QiPbz3igCjve0f+oLO/Zz+u36gsttkFlUYCV1OZnQ1ZSBdw+OS2fw/9rLknnUiTK
+ayq/Rrf83NyXOD5E6jZ/FQAHethEmI4EU55iSgEEAMi63SkHZmk7K/SE21sxrShk
+wCExuwH5XfztE7dklykNG2Crv7pRuZ5dMslXvXnjdm6JiEsZPtNcBQFFfSCNdVyj
+s0EGHTsjsuFmNi2rDSndzL48juzQ/m3+34Tp9sTztWJb+J1BJmEUiehfEZvBvkAJ
+bA/GfagCKk19sQXdn4J9ACDbfVzRiQE3BCABAgChBQJXsqAfmh0CVGhpcyBrZXkg
+d2FzIGdlbmVyYXRlZCBhcyBwYXJ0IG9mIHRoZSBFdmlsMzIgcHJvamVjdC4KSXQg
+aXMgbm90IG93bmVkIGJ5IHRoZSB1c2VyIGRlc2NyaWJlZCBpbiB0aGUgVUlELgpT
+ZWUgaHR0cHM6Ly9ldmlsMzIuY29tL3Jldm9rZWQgZm9yIG1vcmUgZGV0YWlscy4A
+CgkQM43t5aQTWzgpqAQAvNsSYdFkVCr7mC3nO9Bw3aswf+9GuyJXo8L7tSQXD/jY
+KR4IoqnEHJ+B/FIhylJaswEVrxk1MJxLr4eEaplj5HCNIF+2fACrLuXW8aCgUc5W
+dHUwo7o3RxEFABS5XDUcPhTuYDxTZ1HUfAju9DgLmqk+cA8doUqXkrdQ/InYyg+0
+J0JlbmphbWluIFBldGVyc29uIDxiZW5qYW1pbkBweXRob24ub3JnPoi4BBMBAgAi
+BQJT4CBqAhsvBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAzje3lpBNbOODy
+A/9z0Vw+/hMMMMhdnXyvSDNHMm3deWYg7ilgN1b4eeTJvRxlsHAj4XeRXXdnMMVZ
+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
+M1jzZSymwGCbmpjDHA0xp8lRWQA/zFMAIOLUd0mJATcEIAECAKEFAleyoAeaHQJU
+aGlzIGtleSB3YXMgZ2VuZXJhdGVkIGFzIHBhcnQgb2YgdGhlIEV2aWwzMiBwcm9q
+ZWN0LgpJdCBpcyBub3Qgb3duZWQgYnkgdGhlIHVzZXIgZGVzY3JpYmVkIGluIHRo
+ZSBVSUQuClNlZSBodHRwczovL2V2aWwzMi5jb20vcmV2b2tlZCBmb3IgbW9yZSBk
+ZXRhaWxzLgAKCRATwhXAakXIFqMRBAC11c2HJ2a51oVil371fACt/WO1MD/Vwk6W
+gA9wqBsNkDVYMBNFLjfF+YcVQpc8xuh/dHZwBbMd12w7NczxUbvOcy0eqXEHTKG7
+a4YU3eOBcPOG5vHPm4vTMKiFuinZausPmVC31yCo7mUOtlhDAd1PXA9QtbFE7QDr
+bJ3R6yfMALQpQW50aG9ueSBCYXh0ZXIgPGFudGhvbnlAaW50ZXJsaW5rLmNvbS5h
+dT6InAQQAQIABgUCU+B3uAAKCRA74bi7MLlLXInUBAC/X1z2onYWEMt/fSNSJYyK
+0dSW6vqd5aZPH/eR6INXlMJIiGXcIxnygHwzH3BEEYfhI2oiMztLlTVW7QFymMK3
+BEP05uj5wBuEZl9RCVku/sYHZRFMSuxcGEM5Cn6OAEvLtVz8zaw14wrQvtsf6OZn
+eZsepqxJul0Jfji7cDbXLYicBBABAgAGBQJT4He4AAoJEFdlTp4lHGXvidQD/3jK
+natl6Yo1GXwxrHNV+gNPXTvS7h1TAhCdn9NMnUpz/Q/izukFtaUjx4ZYMJDA071J
+1iVlnATJcolWKWXawI9CAvypRuSaetD4gmYaukFjEhqduRw6fsOI/TYlhBVY8G5z
+kwO79O5TLQQhgKRyibXvm1wrelMmudN+rNhS1XI/iJwEEAECAAYFAlPgd7gACgkQ
+n7q7OXdq/hKJ1AQAharG83xBSDL2QJ35pTugdDwBYRLBXCNl4xG+iAqRUZ8KethF
+s7TKIA6RsR9cen75aRT3dxp44F78fh5yelMMQ186BFMQi+Qt4HlkEsZFdGFtl0Qq
+O3PVhJ7wi4b+lSR4tOKHUyJLEFj8TEmHtRWGMSihVsITdXRoAblKxor48mWInAQQ
+AQIABgUCU+B3uAAKCRCxz8ox1wqv+YnUBACzLxjrrkq351SvtRIlPJYtAfewhisM
+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
+/G0Y7bwgUQIp4Al6TQ3tq5MB/u4xKpc=
+=3Kg1
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/python35.spec b/python35.spec
index 6037064..27f11c8 100644
--- a/python35.spec
+++ b/python35.spec
@@ -79,8 +79,10 @@
# ==================
# Top-level metadata
# ==================
-Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
+Summary: Version %{pybasever} of the Python programming language
+URL: https://www.python.org/
+
%global general_version %{pybasever}.8
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
@@ -115,6 +117,7 @@ BuildRequires: gdbm-devel
BuildRequires: glibc-all-langpacks
BuildRequires: glibc-devel
BuildRequires: gmp-devel
+BuildRequires: gnupg2
BuildRequires: libffi-devel
BuildRequires: libGL-devel
BuildRequires: libX11-devel
@@ -164,7 +167,9 @@ Provides: python%{pybasever} = %{version}-%{release}
# Source code and patches
# =======================
-Source: http://www.python.org/ftp/python/%{general_version}/Python-%{upstream_ver...
+Source0: %{url}ftp/python/%{general_version}/Python-%{upstream_version}.tar.xz
+Source1: %{url}ftp/python/%{general_version}/Python-%{upstream_version}.tar.xz.asc
+Source2: %{url}static/files/pubkeys.txt
# Supply an RPM macro "py_byte_compile" for the python3-devel subpackage
# to enable specfiles to selectively byte-compile individual files and paths
@@ -421,8 +426,6 @@ Patch5001: python3-powerppc-arch.patch
# Additional metadata, and subpackages
# ======================================================
-URL: http://www.python.org/
-
# We'll not provide this, on purpose
# No package in Fedora shall ever depend on this
# Provides: python(abi) = %%{pybasever}
@@ -452,6 +455,7 @@ or older Fedora releases.
# ======================================================
%prep
+%gpgverify -k2 -s1 -d0
%setup -q -n Python-%{upstream_version}
%if 0%{?with_systemtap}
diff --git a/sources b/sources
index cb79ecb..233e09b 100644
--- a/sources
+++ b/sources
@@ -1 +1,2 @@
SHA512 (Python-3.5.8.tar.xz) = ef36b234786a15592f69b0cd38421373e4713e314de847ebe6da4249fb09c467ba2a8d713dde355330ea0be995be4528912f71774e9418dee285ed891d2d2bd5
+SHA512 (Python-3.5.8.tar.xz.asc) = 9181d8e9fdb71eda72458b52cdf97d613c09bd58cd8dc46e3a749cffbbed28e3792d104a5234a60d0f454c8b73df7b989f4984e95a28155fa7186e6dadae8554
commit 502df2cc303e4c3ca01008765246521689fe1bce
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Oct 31 00:27:45 2019 +0100
Use the correct upstream tarball
See https://mail.python.org/archives/list/python-dev@python.org/message/OYNQS...
diff --git a/python35.spec b/python35.spec
index 68eadce..6037064 100644
--- a/python35.spec
+++ b/python35.spec
@@ -85,7 +85,7 @@ Name: python%{pyshortver}
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
@@ -1044,6 +1044,10 @@ CheckPython optimized
# ======================================================
%changelog
+* Wed Oct 30 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.8-2
+- Use the correct upstream tarball
+- https://mail.python.org/archives/list/python-dev@python.org/message/OYNQS...
+
* Tue Oct 29 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.8-1
- Update to 3.5.8
diff --git a/sources b/sources
index d00518c..cb79ecb 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.5.8.tar.xz) = 6439d288b0e58a771d67a9f9d4898fbe25c5508dc439cbb261a5e7d355acc7f46cd900fc2e98a6450664ebaf6121b3c481f10a12189488e619307ec1465e1908
+SHA512 (Python-3.5.8.tar.xz) = ef36b234786a15592f69b0cd38421373e4713e314de847ebe6da4249fb09c467ba2a8d713dde355330ea0be995be4528912f71774e9418dee285ed891d2d2bd5
commit fb10851b3711dac524641de13fb1cf8828caa5a4
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Oct 29 09:27:06 2019 +0100
Update to 3.5.8
diff --git a/.gitignore b/.gitignore
index 1560f81..d2c136f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,4 @@ Python-3.5.1.tar.xz
/Python-3.5.7.tar.xz
/Python-3.5.8rc1.tar.xz
/Python-3.5.8rc2.tar.xz
+/Python-3.5.8.tar.xz
diff --git a/python35.spec b/python35.spec
index fe80271..68eadce 100644
--- a/python35.spec
+++ b/python35.spec
@@ -82,7 +82,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
%global general_version %{pybasever}.8
-%global prerel rc2
+#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
Release: 1%{?dist}
@@ -1044,6 +1044,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Oct 29 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.8-1
+- Update to 3.5.8
+
* Sat Oct 12 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.8~rc2-1
- Update to 3.5.8rc2
diff --git a/sources b/sources
index 09b3f34..d00518c 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.5.8rc2.tar.xz) = 69360450412c99f44a4f290c9f6bfd3bb795a2e6d0b4263b51148784dee67497235bb5ef54a34cbe7fd11786281efb1c281b712201533445561ed87537f09fe4
+SHA512 (Python-3.5.8.tar.xz) = 6439d288b0e58a771d67a9f9d4898fbe25c5508dc439cbb261a5e7d355acc7f46cd900fc2e98a6450664ebaf6121b3c481f10a12189488e619307ec1465e1908
commit 5c418db7cf72516c26edf70cbe9dee9a23b3d137
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sat Oct 12 15:36:53 2019 +0200
Update to 3.5.8rc2
diff --git a/.gitignore b/.gitignore
index 0b8caf1..1560f81 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ Python-3.5.1.tar.xz
/Python-3.5.7rc1.tar.xz
/Python-3.5.7.tar.xz
/Python-3.5.8rc1.tar.xz
+/Python-3.5.8rc2.tar.xz
diff --git a/python35.spec b/python35.spec
index 9c2d2b7..fe80271 100644
--- a/python35.spec
+++ b/python35.spec
@@ -82,7 +82,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
%global general_version %{pybasever}.8
-%global prerel rc1
+%global prerel rc2
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
Release: 1%{?dist}
@@ -1044,6 +1044,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sat Oct 12 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.8~rc2-1
+- Update to 3.5.8rc2
+
* Mon Sep 09 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.8~rc1-1
- Update to 3.5.8rc1
diff --git a/sources b/sources
index 5ae0f6e..09b3f34 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.5.8rc1.tar.xz) = e7418f41bf542e7840cd83a723137216566895f8da5dbfdda3d8a891f79969323767ac821726318ce6dfb237df4ec2679e045bb7c7e591568380d5c1a9ca02e2
+SHA512 (Python-3.5.8rc2.tar.xz) = 69360450412c99f44a4f290c9f6bfd3bb795a2e6d0b4263b51148784dee67497235bb5ef54a34cbe7fd11786281efb1c281b712201533445561ed87537f09fe4
commit a67446d8f06936ab6b96b6666d6b209b764ca4e8
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Sep 9 17:19:40 2019 +0200
Update to 3.5.8rc1
Removed patch 322, already merged upstream.
diff --git a/.gitignore b/.gitignore
index 8e229e4..0b8caf1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@ Python-3.5.1.tar.xz
/Python-3.5.6.tar.xz
/Python-3.5.7rc1.tar.xz
/Python-3.5.7.tar.xz
+/Python-3.5.8rc1.tar.xz
diff --git a/00322-test_ssl-skip-openssl111.patch b/00322-test_ssl-skip-openssl111.patch
deleted file mode 100644
index 6618f8b..0000000
--- a/00322-test_ssl-skip-openssl111.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-bpo-36576: Skip test_ssl and test_asyncio tests failing with OpenSSL 1.1.1
-
-Some test_ssl and test_asyncio are written for OpenSSL 1.0 and TLS
-1.0, but fail with OpenSSL 1.1.1 and TLS 1.3.
-
-Fixing these needs require to backport new ssl flags like
-ssl.OP_NO_TLSv1_3 or ssl.OP_NO_COMPRESSION which cannot be done in a
-minor 3.5.x release. Moreover, it is not really worth it: the code
-works fine, issues are in the tests.
-
-Backport of: https://github.com/python/cpython/pull/12694
-
-Resolves: rhbz#1685609
-
-diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py
-index 492a84a2313b..b23889b20dea 100644
---- a/Lib/test/test_asyncio/test_events.py
-+++ b/Lib/test/test_asyncio/test_events.py
-@@ -38,6 +38,12 @@
- from asyncio import test_support as support
-
-
-+if ssl is not None:
-+ IS_OPENSSL_1_1_1 = ssl.OPENSSL_VERSION_INFO >= (1, 1, 1)
-+else:
-+ IS_OPENSSL_1_1_1 = False
-+
-+
- def data_file(filename):
- if hasattr(support, 'TEST_HOME_DIR'):
- fullname = os.path.join(support.TEST_HOME_DIR, filename)
-@@ -1145,6 +1151,7 @@ def test_legacy_create_unix_server_ssl_verify_failed(self):
- self.test_create_unix_server_ssl_verify_failed()
-
- @unittest.skipIf(ssl is None, 'No ssl module')
-+ @unittest.skipIf(IS_OPENSSL_1_1_1, "bpo-36576: fail on OpenSSL 1.1.1")
- def test_create_server_ssl_match_failed(self):
- proto = MyProto(loop=self.loop)
- server, host, port = self._make_ssl_server(
-diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
-index 6c78601b4589..30a64ee0a4c7 100644
---- a/Lib/test/test_ssl.py
-+++ b/Lib/test/test_ssl.py
-@@ -25,6 +25,7 @@
- HOST = support.HOST
- IS_LIBRESSL = ssl.OPENSSL_VERSION.startswith('LibreSSL')
- IS_OPENSSL_1_1 = not IS_LIBRESSL and ssl.OPENSSL_VERSION_INFO >= (1, 1, 0)
-+IS_OPENSSL_1_1_1 = not IS_LIBRESSL and ssl.OPENSSL_VERSION_INFO >= (1, 1, 1)
-
-
- def data_file(*name):
-@@ -857,6 +858,7 @@ def test_ciphers(self):
- ctx.set_ciphers("^$:,;?*'dorothyx")
-
- @skip_if_broken_ubuntu_ssl
-+ @unittest.skipIf(IS_OPENSSL_1_1_1, "bpo-36576: fail on OpenSSL 1.1.1")
- def test_options(self):
- ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
- # OP_ALL | OP_NO_SSLv2 | OP_NO_SSLv3 is the default value
-@@ -3047,6 +3049,7 @@ def test_version_basic(self):
- self.assertIs(s.version(), None)
-
- @unittest.skipUnless(ssl.HAS_ECDH, "test requires ECDH-enabled OpenSSL")
-+ @unittest.skipIf(IS_OPENSSL_1_1_1, "bpo-36576: fail on OpenSSL 1.1.1")
- def test_default_ecdh_curve(self):
- # Issue #21015: elliptic curve-based Diffie Hellman key exchange
- # should be enabled by default on SSL contexts.
-@@ -3176,6 +3179,7 @@ def test_selected_alpn_protocol_if_server_uses_alpn(self):
- self.assertIs(stats['client_alpn_protocol'], None)
-
- @unittest.skipUnless(ssl.HAS_ALPN, "ALPN support needed for this test")
-+ @unittest.skipIf(IS_OPENSSL_1_1_1, "bpo-36576: fail on OpenSSL 1.1.1")
- def test_alpn_protocols(self):
- server_protocols = ['foo', 'bar', 'milkshake']
- protocol_tests = [
-@@ -3356,6 +3360,7 @@ def cb_wrong_return_type(ssl_sock, server_name, initial_context):
- self.assertEqual(cm.exception.reason, 'TLSV1_ALERT_INTERNAL_ERROR')
- self.assertIn("TypeError", stderr.getvalue())
-
-+ @unittest.skipIf(IS_OPENSSL_1_1_1, "bpo-36576: fail on OpenSSL 1.1.1")
- def test_shared_ciphers(self):
- server_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
- server_context.load_cert_chain(SIGNED_CERTFILE)
-diff --git a/Misc/NEWS.d/next/Tests/2019-04-05-10-34-29.bpo-36576.7Cp2kK.rst b/Misc/NEWS.d/next/Tests/2019-04-05-10-34-29.bpo-36576.7Cp2kK.rst
-new file mode 100644
-index 000000000000..4d15bdf42796
---- /dev/null
-+++ b/Misc/NEWS.d/next/Tests/2019-04-05-10-34-29.bpo-36576.7Cp2kK.rst
-@@ -0,0 +1 @@
-+Skip test_ssl and test_asyncio tests failing with OpenSSL 1.1.1.
diff --git a/python35.spec b/python35.spec
index 53a4587..9c2d2b7 100644
--- a/python35.spec
+++ b/python35.spec
@@ -81,11 +81,11 @@
# ==================
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
-%global general_version %{pybasever}.7
-#global prerel ...
+%global general_version %{pybasever}.8
+%global prerel rc1
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 4%{?dist}
+Release: 1%{?dist}
License: Python
# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
@@ -402,11 +402,6 @@ Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1652843
Patch315: 00315-test_email-mktime.patch
-# 00322 #
-# Skip test_ssl and test_asyncio tests failing with OpenSSL 1.1.1
-# https://bugzilla.redhat.com/show_bug.cgi?id=1685609
-Patch322: 00322-test_ssl-skip-openssl111.patch
-
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -533,7 +528,6 @@ rmdir Lib/ensurepip/_bundled
%patch273 -p1
%patch290 -p1
%patch315 -p1
-%patch322 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@@ -1050,6 +1044,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Mon Sep 09 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.8~rc1-1
+- Update to 3.5.8rc1
+
* Sat Aug 10 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.7-4
- Build against OpenSSL 1.1.x, not 1.0.x
diff --git a/sources b/sources
index 10b3adf..5ae0f6e 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.5.7.tar.xz) = 83f57451e1d7082bf19e4e49a0902e9257e381836d9a04154a6b276135fa49e5c96b6869eed9ec4475e06b76556c1ae89f5cca111b762eb8b2dee6f65373e0f4
+SHA512 (Python-3.5.8rc1.tar.xz) = e7418f41bf542e7840cd83a723137216566895f8da5dbfdda3d8a891f79969323767ac821726318ce6dfb237df4ec2679e045bb7c7e591568380d5c1a9ca02e2
commit fc3d7ff992730083681cc0062c9df9b1654a0ef5
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sat Aug 10 11:06:58 2019 +0200
Build against OpenSSL 1.1.x, not 1.0.x
diff --git a/python35.spec b/python35.spec
index 7eb7f87..53a4587 100644
--- a/python35.spec
+++ b/python35.spec
@@ -85,7 +85,7 @@ Name: python%{pyshortver}
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 3%{?dist}
+Release: 4%{?dist}
License: Python
# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
@@ -121,13 +121,11 @@ BuildRequires: libX11-devel
BuildRequires: ncurses-devel
# workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig)
BuildRequires: net-tools
+BuildRequires: openssl-devel
BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: sqlite-devel
-# https://bugzilla.redhat.com/show_bug.cgi?id=1609291
-BuildRequires: compat-openssl10-devel
-
%if 0%{?with_systemtap}
BuildRequires: systemtap-sdt-devel
# (this introduces a dependency on "python", in that systemtap-sdt-devel's
@@ -1052,6 +1050,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sat Aug 10 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.7-4
+- Build against OpenSSL 1.1.x, not 1.0.x
+
* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.7-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
commit 911d6282e9a39dce58b844172c27305bd59dfb4c
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Fri Jul 26 17:27:19 2019 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/python35.spec b/python35.spec
index ffe83f8..7eb7f87 100644
--- a/python35.spec
+++ b/python35.spec
@@ -85,7 +85,7 @@ Name: python%{pyshortver}
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
@@ -1052,6 +1052,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Jul 26 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.7-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
* Tue Apr 02 2019 Victor Stinner <vstinner(a)redhat.com> - 3.5.7-2
- Skip test_ssl and test_asyncio tests failing with OpenSSL 1.1.1 (rhbz#1685609)
commit 529acb41f0641d6388b98dee64f08cf094d6d675
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Jul 11 16:20:09 2019 +0200
Keep the LICENSE.txt file in lib/pythonX.Y dir
The license() builtin tries to read it and virtualenv tries to copy it.
See https://github.com/pypa/virtualenv/issues/1352
Up until now, the license() builtin juts felt back to:
See https://www.python.org/psf/license/
However it should output the full license text.
Virtualenv ~16.6 warns:
No LICENSE.txt / LICENSE found in source
Technically, it is probably possible to install the package without
%license files, but that would simply resort to the previous noncritical
behavior.
This fix is not critical and hence it doesn't bump release, for easier
backporting to all our Python packages.
diff --git a/python35.spec b/python35.spec
index 5d65787..ffe83f8 100644
--- a/python35.spec
+++ b/python35.spec
@@ -816,7 +816,6 @@ find %{buildroot} -name \*.bat -exec rm {} \;
# Get rid of backup files:
find %{buildroot}/ -name "*~" -exec rm -f {} \;
find . -name "*~" -exec rm -f {} \;
-rm -f %{buildroot}%{pylibdir}/LICENSE.txt
# Junk, no point in putting in -test sub-pkg
rm -f ${RPM_BUILD_ROOT}/%{pylibdir}/idlelib/testcode.py*
@@ -987,8 +986,9 @@ CheckPython optimized
%files
-%doc LICENSE README
+%doc README
%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
+%license %{pylibdir}/LICENSE.txt
%{_bindir}/pydoc%{pybasever}
%{_bindir}/python%{pybasever}
commit 2cbb3223cb41462439428ee810425cfb4e2ef019
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Jul 23 13:23:43 2019 +0200
Provide pythonX.Y
diff --git a/python35.spec b/python35.spec
index d6a11e8..5d65787 100644
--- a/python35.spec
+++ b/python35.spec
@@ -159,6 +159,9 @@ Requires: glibc%{?_isa} >= 2.24.90-26
BuildRequires: python-rpm-macros
+# People might want to dnf install pythonX.Y instead of pythonXY
+Provides: python%{pybasever} = %{version}-%{release}
+
# =======================
# Source code and patches
# =======================
commit 35c70e379adf79fd7ebd00dfbe3abd9df1e8b745
Author: Victor Stinner <vstinner(a)redhat.com>
Date: Tue Apr 2 16:09:18 2019 +0200
Skip test_ssl and test_asyncio tests failing with OpenSSL 1.1.1
Backport of: https://github.com/python/cpython/pull/12694
Resolves: rhbz#1685609
diff --git a/00322-test_ssl-skip-openssl111.patch b/00322-test_ssl-skip-openssl111.patch
new file mode 100644
index 0000000..6618f8b
--- /dev/null
+++ b/00322-test_ssl-skip-openssl111.patch
@@ -0,0 +1,90 @@
+bpo-36576: Skip test_ssl and test_asyncio tests failing with OpenSSL 1.1.1
+
+Some test_ssl and test_asyncio are written for OpenSSL 1.0 and TLS
+1.0, but fail with OpenSSL 1.1.1 and TLS 1.3.
+
+Fixing these needs require to backport new ssl flags like
+ssl.OP_NO_TLSv1_3 or ssl.OP_NO_COMPRESSION which cannot be done in a
+minor 3.5.x release. Moreover, it is not really worth it: the code
+works fine, issues are in the tests.
+
+Backport of: https://github.com/python/cpython/pull/12694
+
+Resolves: rhbz#1685609
+
+diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py
+index 492a84a2313b..b23889b20dea 100644
+--- a/Lib/test/test_asyncio/test_events.py
++++ b/Lib/test/test_asyncio/test_events.py
+@@ -38,6 +38,12 @@
+ from asyncio import test_support as support
+
+
++if ssl is not None:
++ IS_OPENSSL_1_1_1 = ssl.OPENSSL_VERSION_INFO >= (1, 1, 1)
++else:
++ IS_OPENSSL_1_1_1 = False
++
++
+ def data_file(filename):
+ if hasattr(support, 'TEST_HOME_DIR'):
+ fullname = os.path.join(support.TEST_HOME_DIR, filename)
+@@ -1145,6 +1151,7 @@ def test_legacy_create_unix_server_ssl_verify_failed(self):
+ self.test_create_unix_server_ssl_verify_failed()
+
+ @unittest.skipIf(ssl is None, 'No ssl module')
++ @unittest.skipIf(IS_OPENSSL_1_1_1, "bpo-36576: fail on OpenSSL 1.1.1")
+ def test_create_server_ssl_match_failed(self):
+ proto = MyProto(loop=self.loop)
+ server, host, port = self._make_ssl_server(
+diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
+index 6c78601b4589..30a64ee0a4c7 100644
+--- a/Lib/test/test_ssl.py
++++ b/Lib/test/test_ssl.py
+@@ -25,6 +25,7 @@
+ HOST = support.HOST
+ IS_LIBRESSL = ssl.OPENSSL_VERSION.startswith('LibreSSL')
+ IS_OPENSSL_1_1 = not IS_LIBRESSL and ssl.OPENSSL_VERSION_INFO >= (1, 1, 0)
++IS_OPENSSL_1_1_1 = not IS_LIBRESSL and ssl.OPENSSL_VERSION_INFO >= (1, 1, 1)
+
+
+ def data_file(*name):
+@@ -857,6 +858,7 @@ def test_ciphers(self):
+ ctx.set_ciphers("^$:,;?*'dorothyx")
+
+ @skip_if_broken_ubuntu_ssl
++ @unittest.skipIf(IS_OPENSSL_1_1_1, "bpo-36576: fail on OpenSSL 1.1.1")
+ def test_options(self):
+ ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
+ # OP_ALL | OP_NO_SSLv2 | OP_NO_SSLv3 is the default value
+@@ -3047,6 +3049,7 @@ def test_version_basic(self):
+ self.assertIs(s.version(), None)
+
+ @unittest.skipUnless(ssl.HAS_ECDH, "test requires ECDH-enabled OpenSSL")
++ @unittest.skipIf(IS_OPENSSL_1_1_1, "bpo-36576: fail on OpenSSL 1.1.1")
+ def test_default_ecdh_curve(self):
+ # Issue #21015: elliptic curve-based Diffie Hellman key exchange
+ # should be enabled by default on SSL contexts.
+@@ -3176,6 +3179,7 @@ def test_selected_alpn_protocol_if_server_uses_alpn(self):
+ self.assertIs(stats['client_alpn_protocol'], None)
+
+ @unittest.skipUnless(ssl.HAS_ALPN, "ALPN support needed for this test")
++ @unittest.skipIf(IS_OPENSSL_1_1_1, "bpo-36576: fail on OpenSSL 1.1.1")
+ def test_alpn_protocols(self):
+ server_protocols = ['foo', 'bar', 'milkshake']
+ protocol_tests = [
+@@ -3356,6 +3360,7 @@ def cb_wrong_return_type(ssl_sock, server_name, initial_context):
+ self.assertEqual(cm.exception.reason, 'TLSV1_ALERT_INTERNAL_ERROR')
+ self.assertIn("TypeError", stderr.getvalue())
+
++ @unittest.skipIf(IS_OPENSSL_1_1_1, "bpo-36576: fail on OpenSSL 1.1.1")
+ def test_shared_ciphers(self):
+ server_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
+ server_context.load_cert_chain(SIGNED_CERTFILE)
+diff --git a/Misc/NEWS.d/next/Tests/2019-04-05-10-34-29.bpo-36576.7Cp2kK.rst b/Misc/NEWS.d/next/Tests/2019-04-05-10-34-29.bpo-36576.7Cp2kK.rst
+new file mode 100644
+index 000000000000..4d15bdf42796
+--- /dev/null
++++ b/Misc/NEWS.d/next/Tests/2019-04-05-10-34-29.bpo-36576.7Cp2kK.rst
+@@ -0,0 +1 @@
++Skip test_ssl and test_asyncio tests failing with OpenSSL 1.1.1.
diff --git a/python35.spec b/python35.spec
index de4ee05..d6a11e8 100644
--- a/python35.spec
+++ b/python35.spec
@@ -85,7 +85,7 @@ Name: python%{pyshortver}
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
@@ -401,6 +401,11 @@ Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1652843
Patch315: 00315-test_email-mktime.patch
+# 00322 #
+# Skip test_ssl and test_asyncio tests failing with OpenSSL 1.1.1
+# https://bugzilla.redhat.com/show_bug.cgi?id=1685609
+Patch322: 00322-test_ssl-skip-openssl111.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -527,6 +532,7 @@ rmdir Lib/ensurepip/_bundled
%patch273 -p1
%patch290 -p1
%patch315 -p1
+%patch322 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@@ -1043,6 +1049,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Apr 02 2019 Victor Stinner <vstinner(a)redhat.com> - 3.5.7-2
+- Skip test_ssl and test_asyncio tests failing with OpenSSL 1.1.1 (rhbz#1685609)
+
* Tue Mar 19 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.7-1
- Update to 3.5.7
commit ada3a909ab0a3cd2482f14ea1bcd6693fd6a3d7d
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Mar 19 12:23:06 2019 +0100
Update to 3.5.7
diff --git a/.gitignore b/.gitignore
index 96a4908..8e229e4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ Python-3.5.1.tar.xz
/Python-3.5.5.tar.xz
/Python-3.5.6.tar.xz
/Python-3.5.7rc1.tar.xz
+/Python-3.5.7.tar.xz
diff --git a/python35.spec b/python35.spec
index 9f4cd5e..de4ee05 100644
--- a/python35.spec
+++ b/python35.spec
@@ -82,7 +82,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
%global general_version %{pybasever}.7
-%global prerel rc1
+#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
Release: 1%{?dist}
@@ -1043,6 +1043,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Mar 19 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.7-1
+- Update to 3.5.7
+
* Tue Mar 05 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.7~rc1-1
- Update to 3.5.7rc1
diff --git a/sources b/sources
index 65fc3e2..10b3adf 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.5.7rc1.tar.xz) = d4dd45278b44f3e94f823d408d27b6b465fc7a4dcaac580a7b5daa5e623d7545ce8d76eeb31b67c4880525878eaf0ba2cf3d1f8f48b999cf31f75259f2fba8b0
+SHA512 (Python-3.5.7.tar.xz) = 83f57451e1d7082bf19e4e49a0902e9257e381836d9a04154a6b276135fa49e5c96b6869eed9ec4475e06b76556c1ae89f5cca111b762eb8b2dee6f65373e0f4
commit 955b9474413f594bb0eb155eafd471e4ebd40887
Author: Victor Stinner <vstinner(a)redhat.com>
Date: Tue Mar 12 15:00:45 2019 +0100
Reenable test_buffer on ppc64le
The test failed because of a GCC bug which has been fixed in GCC
master branch and Rawhide uses GCC 9 (master branch):
* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88892
* https://bugzilla.redhat.com/show_bug.cgi?id=1570256
diff --git a/python35.spec b/python35.spec
index 0bc8d2f..9f4cd5e 100644
--- a/python35.spec
+++ b/python35.spec
@@ -958,9 +958,6 @@ CheckPython() {
%ifarch %{mips64}
-x test_ctypes \
%endif
- %ifarch ppc64le
- -x test_buffer \
- %endif
%ifarch %{power64} s390 s390x armv7hl aarch64 %{mips}
-x test_gdb \
%endif
commit 9aa8c492fc1896841e483c7bb8e76f4d480d1a31
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Mar 5 11:23:16 2019 +0100
Update to 3.5.7rc1
Upstream merged patches 302 and 310
diff --git a/.gitignore b/.gitignore
index 8e6e1ec..96a4908 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@ Python-3.5.1.tar.xz
/Python-3.5.4.tar.xz
/Python-3.5.5.tar.xz
/Python-3.5.6.tar.xz
+/Python-3.5.7rc1.tar.xz
diff --git a/00302-fix-multiprocessing-regression-on-newer-glibcs.patch b/00302-fix-multiprocessing-regression-on-newer-glibcs.patch
deleted file mode 100644
index 965792a..0000000
--- a/00302-fix-multiprocessing-regression-on-newer-glibcs.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From a3febe3cba14b89885f42ca2f0224096a52885f6 Mon Sep 17 00:00:00 2001
-From: Antoine Pitrou <antoine(a)python.org>
-Date: Mon, 23 Apr 2018 13:19:42 +0200
-Subject: [PATCH] bpo-33329: Fix multiprocessing regression on newer glibcs
-
-Starting with glibc 2.27.9000-xxx, sigaddset() can return EINVAL for some
-reserved signal numbers between 1 and NSIG. The `range(1, NSIG)` idiom
-is commonly used to select all signals for blocking with `pthread_sigmask`.
-So we ignore the sigaddset() return value until we expose sigfillset()
-to provide a better idiom.
----
- .../next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst | 1 +
- Modules/signalmodule.c | 14 ++++++++------
- 2 files changed, 9 insertions(+), 6 deletions(-)
- create mode 100644 Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
-
-diff --git a/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst b/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
-new file mode 100644
-index 000000000000..d1a4e56d04b9
---- /dev/null
-+++ b/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
-@@ -0,0 +1 @@
-+Fix multiprocessing regression on newer glibcs
-diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
-index 791616014384..35fd87e2d1e7 100644
---- a/Modules/signalmodule.c
-+++ b/Modules/signalmodule.c
-@@ -819,7 +819,6 @@ iterable_to_sigset(PyObject *iterable, sigset_t *mask)
- int result = -1;
- PyObject *iterator, *item;
- long signum;
-- int err;
-
- sigemptyset(mask);
-
-@@ -841,11 +840,14 @@ iterable_to_sigset(PyObject *iterable, sigset_t *mask)
- Py_DECREF(item);
- if (signum == -1 && PyErr_Occurred())
- goto error;
-- if (0 < signum && signum < NSIG)
-- err = sigaddset(mask, (int)signum);
-- else
-- err = 1;
-- if (err) {
-+ if (0 < signum && signum < NSIG) {
-+ /* bpo-33329: ignore sigaddset() return value as it can fail
-+ * for some reserved signals, but we want the `range(1, NSIG)`
-+ * idiom to allow selecting all valid signals.
-+ */
-+ (void) sigaddset(mask, (int)signum);
-+ }
-+ else {
- PyErr_Format(PyExc_ValueError,
- "signal number %ld out of range", signum);
- goto error;
diff --git a/00310-use-xml-sethashsalt-in-elementtree.patch b/00310-use-xml-sethashsalt-in-elementtree.patch
deleted file mode 100644
index a206928..0000000
--- a/00310-use-xml-sethashsalt-in-elementtree.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 5f610ec2043aa6b52cb6a6b5e436df091a4f2d91 Mon Sep 17 00:00:00 2001
-From: Christian Heimes <christian(a)python.org>
-Date: Tue, 18 Sep 2018 14:38:58 +0200
-Subject: [PATCH] bpo-34623: Use XML_SetHashSalt in _elementtree (GH-9146)
-
-The C accelerated _elementtree module now initializes hash randomization
-salt from _Py_HashSecret instead of libexpat's default CPRNG.
-
-Signed-off-by: Christian Heimes <christian(a)python.org>
-
-https://bugs.python.org/issue34623
-(cherry picked from commit cb5778f00ce48631c7140f33ba242496aaf7102b)
-
-Co-authored-by: Christian Heimes <christian(a)python.org>
----
- Include/pyexpat.h | 4 +++-
- .../next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst | 2 ++
- Modules/_elementtree.c | 5 +++++
- Modules/pyexpat.c | 5 +++++
- 4 files changed, 15 insertions(+), 1 deletion(-)
- create mode 100644 Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst
-
-diff --git a/Include/pyexpat.h b/Include/pyexpat.h
-index 44259bf6d716..07020b5dc964 100644
---- a/Include/pyexpat.h
-+++ b/Include/pyexpat.h
-@@ -3,7 +3,7 @@
-
- /* note: you must import expat.h before importing this module! */
-
--#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.0"
-+#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.1"
- #define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI"
-
- struct PyExpat_CAPI
-@@ -48,6 +48,8 @@ struct PyExpat_CAPI
- enum XML_Status (*SetEncoding)(XML_Parser parser, const XML_Char *encoding);
- int (*DefaultUnknownEncodingHandler)(
- void *encodingHandlerData, const XML_Char *name, XML_Encoding *info);
-+ /* might be none for expat < 2.1.0 */
-+ int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt);
- /* always add new stuff to the end! */
- };
-
-diff --git a/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst b/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst
-new file mode 100644
-index 000000000000..31ad92ef8582
---- /dev/null
-+++ b/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst
-@@ -0,0 +1,2 @@
-+The C accelerated _elementtree module now initializes hash randomization
-+salt from _Py_HashSecret instead of libexpat's default CSPRNG.
-diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
-index 1dfdb3ce34f3..4b86f96a70d3 100644
---- a/Modules/_elementtree.c
-+++ b/Modules/_elementtree.c
-@@ -3305,6 +3305,11 @@ _elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *html,
- PyErr_NoMemory();
- return -1;
- }
-+ /* expat < 2.1.0 has no XML_SetHashSalt() */
-+ if (EXPAT(SetHashSalt) != NULL) {
-+ EXPAT(SetHashSalt)(self->parser,
-+ (unsigned long)_Py_HashSecret.expat.hashsalt);
-+ }
-
- if (target) {
- Py_INCREF(target);
-diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
-index c8a01d4e088e..c52079e518f2 100644
---- a/Modules/pyexpat.c
-+++ b/Modules/pyexpat.c
-@@ -1877,6 +1877,11 @@ MODULE_INITFUNC(void)
- capi.SetStartDoctypeDeclHandler = XML_SetStartDoctypeDeclHandler;
- capi.SetEncoding = XML_SetEncoding;
- capi.DefaultUnknownEncodingHandler = PyUnknownEncodingHandler;
-+#if XML_COMBINED_VERSION >= 20100
-+ capi.SetHashSalt = XML_SetHashSalt;
-+#else
-+ capi.SetHashSalt = NULL;
-+#endif
-
- /* export using capsule */
- capi_object = PyCapsule_New(&capi, PyExpat_CAPSULE_NAME, NULL);
diff --git a/python35.spec b/python35.spec
index 08deb0f..0bc8d2f 100644
--- a/python35.spec
+++ b/python35.spec
@@ -81,8 +81,11 @@
# ==================
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
-Version: %{pybasever}.6
-Release: 6%{?dist}
+%global general_version %{pybasever}.7
+%global prerel rc1
+%global upstream_version %{general_version}%{?prerel}
+Version: %{general_version}%{?prerel:~%{prerel}}
+Release: 1%{?dist}
License: Python
# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
@@ -160,7 +163,7 @@ BuildRequires: python-rpm-macros
# Source code and patches
# =======================
-Source: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
+Source: http://www.python.org/ftp/python/%{general_version}/Python-%{upstream_ver...
# Supply an RPM macro "py_byte_compile" for the python3-devel subpackage
# to enable specfiles to selectively byte-compile individual files and paths
@@ -392,19 +395,6 @@ Patch273: 00273-skip-float-test.patch
# Fixed upstream: https://bugs.python.org/issue32635
Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
-# 00302 #
-# Fix multiprocessing regression on newer glibcs
-# See: https://bugzilla.redhat.com/show_bug.cgi?id=1569933
-# and: https://bugs.python.org/issue33329
-Patch302: 00302-fix-multiprocessing-regression-on-newer-glibcs.patch
-
-# 00310 #
-# CVE-2018-14647
-# Use XML_SetHashSalt in _elementtree
-# rhbz#1631822
-# Fixed upstream https://bugs.python.org/issue34623
-Patch310: 00310-use-xml-sethashsalt-in-elementtree.patch
-
# 00315 #
# Fix mktime() error in test_email
# http://bugs.python.org/issue35317
@@ -461,7 +451,7 @@ or older Fedora releases.
# ======================================================
%prep
-%setup -q -n Python-%{version}%{?prerel}
+%setup -q -n Python-%{upstream_version}
%if 0%{?with_systemtap}
# Provide an example of usage of the tapset:
@@ -536,8 +526,6 @@ rmdir Lib/ensurepip/_bundled
%patch270 -p1
%patch273 -p1
%patch290 -p1
-%patch302 -p1
-%patch310 -p1
%patch315 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
@@ -1058,6 +1046,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Mar 05 2019 Miro Hronok <mhroncok(a)redhat.com> - 3.5.7~rc1-1
+- Update to 3.5.7rc1
+
* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.5.6-6
- Rebuild for readline 8.0
diff --git a/sources b/sources
index d535e31..65fc3e2 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.5.6.tar.xz) = 1ccf287dbe8594eb577c1197c19d882fbe235c72f4c01cda23258f2add8a93e639b41ebaf556508b867cbe1b4c1fc4e1cf457d70b98cf7a1502013660a7e0ac1
+SHA512 (Python-3.5.7rc1.tar.xz) = d4dd45278b44f3e94f823d408d27b6b465fc7a4dcaac580a7b5daa5e623d7545ce8d76eeb31b67c4880525878eaf0ba2cf3d1f8f48b999cf31f75259f2fba8b0
commit 9d23af54cc1962a7e6119d8c4f65d231dea2b0f9
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Sun Feb 17 09:30:53 2019 +0100
Rebuild for readline 8.0
diff --git a/python35.spec b/python35.spec
index 316fb8e..08deb0f 100644
--- a/python35.spec
+++ b/python35.spec
@@ -82,7 +82,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.6
-Release: 5%{?dist}
+Release: 6%{?dist}
License: Python
# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
@@ -1058,6 +1058,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sun Feb 17 2019 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> - 3.5.6-6
+- Rebuild for readline 8.0
+
* Sat Feb 02 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.6-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
commit 96ae6bc0bebf7be8748709d2952d5d0271040919
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Feb 2 10:23:09 2019 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/python35.spec b/python35.spec
index 762f6bd..316fb8e 100644
--- a/python35.spec
+++ b/python35.spec
@@ -82,7 +82,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.6
-Release: 4%{?dist}
+Release: 5%{?dist}
License: Python
# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
@@ -1058,6 +1058,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sat Feb 02 2019 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.6-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
* Mon Jan 14 2019 Bjrn Esser <besser82(a)fedoraproject.org> - 3.5.6-4
- Rebuilt for libcrypt.so.2 (#1666033)
commit 67235522e5f7cc7246c746f67212482bb784c60c
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Mon Jan 28 20:18:14 2019 +0100
Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
diff --git a/python35.spec b/python35.spec
index e54a5ca..762f6bd 100644
--- a/python35.spec
+++ b/python35.spec
@@ -84,7 +84,6 @@ Name: python%{pyshortver}
Version: %{pybasever}.6
Release: 4%{?dist}
License: Python
-Group: Development/Languages
# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
# Uses upstream bundled prebuilt wheels otherwise
commit cd287bd7df3b8ec27c8925d256d031e1943a0902
Author: Bjrn Esser <besser82(a)fedoraproject.org>
Date: Mon Jan 14 18:52:54 2019 +0100
Rebuilt for libcrypt.so.2 (#1666033)
diff --git a/python35.spec b/python35.spec
index bb6f144..e54a5ca 100644
--- a/python35.spec
+++ b/python35.spec
@@ -82,7 +82,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.6
-Release: 3%{?dist}
+Release: 4%{?dist}
License: Python
Group: Development/Languages
@@ -1059,6 +1059,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Mon Jan 14 2019 Bjrn Esser <besser82(a)fedoraproject.org> - 3.5.6-4
+- Rebuilt for libcrypt.so.2 (#1666033)
+
* Mon Sep 24 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.5.6-3
- Security fix for CVE-2018-14647 (#1631822)
commit 80530f163f0b94006c5eefae44a5492a4ca69f9e
Author: Victor Stinner <vstinner(a)redhat.com>
Date: Tue Dec 18 11:27:06 2018 +0100
Require glibc-all-langpacks to test locales
Python 3 test suite requires various locales. Install all of them to
build the package to make sure that no test is skipped because of a
missing locale.
diff --git a/python35.spec b/python35.spec
index 6eb774c..bb6f144 100644
--- a/python35.spec
+++ b/python35.spec
@@ -110,6 +110,7 @@ BuildRequires: gcc-c++
%if %{with_gdbm}
BuildRequires: gdbm-devel
%endif
+BuildRequires: glibc-all-langpacks
BuildRequires: glibc-devel
BuildRequires: gmp-devel
BuildRequires: libffi-devel
commit 7c14b22be9f09f4e7d74d3aa9d321dd3a8a81c5a
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Nov 27 13:36:14 2018 +0100
Fix mktime() error in test_email
http://bugs.python.org/issue35317
https://bugzilla.redhat.com/show_bug.cgi?id=1652843
diff --git a/00315-test_email-mktime.patch b/00315-test_email-mktime.patch
new file mode 100644
index 0000000..aacdcd6
--- /dev/null
+++ b/00315-test_email-mktime.patch
@@ -0,0 +1,46 @@
+From 0165caf04ef9c615c8b86dd16f7c201ca7a0befa Mon Sep 17 00:00:00 2001
+From: Victor Stinner <vstinner(a)redhat.com>
+Date: Tue, 27 Nov 2018 12:40:50 +0100
+Subject: [PATCH] bpo-35317: Fix mktime() error in test_email (GH-10721)
+
+Fix mktime() overflow error in test_email: run
+test_localtime_daylight_true_dst_true() and
+test_localtime_daylight_false_dst_true() with a specific timezone.
+(cherry picked from commit cfaafda8e3e19764682abb4bd4c574accb784c42)
+
+Co-authored-by: Victor Stinner <vstinner(a)redhat.com>
+---
+ Lib/test/test_email/test_utils.py | 2 ++
+ .../NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst | 3 +++
+ 2 files changed, 5 insertions(+)
+ create mode 100644 Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst
+
+diff --git a/Lib/test/test_email/test_utils.py b/Lib/test/test_email/test_utils.py
+index 6dcb3bbe7aab..4e3c3f3a195f 100644
+--- a/Lib/test/test_email/test_utils.py
++++ b/Lib/test/test_email/test_utils.py
+@@ -75,6 +75,7 @@ def test_localtime_daylight_false_dst_false(self):
+ t2 = utils.localtime(t1)
+ self.assertEqual(t1, t2)
+
++ @test.support.run_with_tz('Europe/Minsk')
+ def test_localtime_daylight_true_dst_true(self):
+ test.support.patch(self, time, 'daylight', True)
+ t0 = datetime.datetime(2012, 3, 12, 1, 1)
+@@ -82,6 +83,7 @@ def test_localtime_daylight_true_dst_true(self):
+ t2 = utils.localtime(t1)
+ self.assertEqual(t1, t2)
+
++ @test.support.run_with_tz('Europe/Minsk')
+ def test_localtime_daylight_false_dst_true(self):
+ test.support.patch(self, time, 'daylight', False)
+ t0 = datetime.datetime(2012, 3, 12, 1, 1)
+diff --git a/Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst b/Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst
+new file mode 100644
+index 000000000000..73a30f71927f
+--- /dev/null
++++ b/Misc/NEWS.d/next/Tests/2018-11-26-16-54-21.bpo-35317.jByGP2.rst
+@@ -0,0 +1,3 @@
++Fix ``mktime()`` overflow error in ``test_email``: run
++``test_localtime_daylight_true_dst_true()`` and
++``test_localtime_daylight_false_dst_true()`` with a specific timezone.
diff --git a/python35.spec b/python35.spec
index 7021922..6eb774c 100644
--- a/python35.spec
+++ b/python35.spec
@@ -405,6 +405,12 @@ Patch302: 00302-fix-multiprocessing-regression-on-newer-glibcs.patch
# Fixed upstream https://bugs.python.org/issue34623
Patch310: 00310-use-xml-sethashsalt-in-elementtree.patch
+# 00315 #
+# Fix mktime() error in test_email
+# http://bugs.python.org/issue35317
+# https://bugzilla.redhat.com/show_bug.cgi?id=1652843
+Patch315: 00315-test_email-mktime.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -532,6 +538,7 @@ rmdir Lib/ensurepip/_bundled
%patch290 -p1
%patch302 -p1
%patch310 -p1
+%patch315 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
commit b0ac86601ab5393b29e0c398790ce13b07f29859
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Sep 24 12:20:41 2018 +0200
Security fix for CVE-2018-14647 (#1631822)
diff --git a/00310-use-xml-sethashsalt-in-elementtree.patch b/00310-use-xml-sethashsalt-in-elementtree.patch
new file mode 100644
index 0000000..a206928
--- /dev/null
+++ b/00310-use-xml-sethashsalt-in-elementtree.patch
@@ -0,0 +1,84 @@
+From 5f610ec2043aa6b52cb6a6b5e436df091a4f2d91 Mon Sep 17 00:00:00 2001
+From: Christian Heimes <christian(a)python.org>
+Date: Tue, 18 Sep 2018 14:38:58 +0200
+Subject: [PATCH] bpo-34623: Use XML_SetHashSalt in _elementtree (GH-9146)
+
+The C accelerated _elementtree module now initializes hash randomization
+salt from _Py_HashSecret instead of libexpat's default CPRNG.
+
+Signed-off-by: Christian Heimes <christian(a)python.org>
+
+https://bugs.python.org/issue34623
+(cherry picked from commit cb5778f00ce48631c7140f33ba242496aaf7102b)
+
+Co-authored-by: Christian Heimes <christian(a)python.org>
+---
+ Include/pyexpat.h | 4 +++-
+ .../next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst | 2 ++
+ Modules/_elementtree.c | 5 +++++
+ Modules/pyexpat.c | 5 +++++
+ 4 files changed, 15 insertions(+), 1 deletion(-)
+ create mode 100644 Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst
+
+diff --git a/Include/pyexpat.h b/Include/pyexpat.h
+index 44259bf6d716..07020b5dc964 100644
+--- a/Include/pyexpat.h
++++ b/Include/pyexpat.h
+@@ -3,7 +3,7 @@
+
+ /* note: you must import expat.h before importing this module! */
+
+-#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.0"
++#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.1"
+ #define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI"
+
+ struct PyExpat_CAPI
+@@ -48,6 +48,8 @@ struct PyExpat_CAPI
+ enum XML_Status (*SetEncoding)(XML_Parser parser, const XML_Char *encoding);
+ int (*DefaultUnknownEncodingHandler)(
+ void *encodingHandlerData, const XML_Char *name, XML_Encoding *info);
++ /* might be none for expat < 2.1.0 */
++ int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt);
+ /* always add new stuff to the end! */
+ };
+
+diff --git a/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst b/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst
+new file mode 100644
+index 000000000000..31ad92ef8582
+--- /dev/null
++++ b/Misc/NEWS.d/next/Security/2018-09-10-16-05-39.bpo-34623.Ua9jMv.rst
+@@ -0,0 +1,2 @@
++The C accelerated _elementtree module now initializes hash randomization
++salt from _Py_HashSecret instead of libexpat's default CSPRNG.
+diff --git a/Modules/_elementtree.c b/Modules/_elementtree.c
+index 1dfdb3ce34f3..4b86f96a70d3 100644
+--- a/Modules/_elementtree.c
++++ b/Modules/_elementtree.c
+@@ -3305,6 +3305,11 @@ _elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *html,
+ PyErr_NoMemory();
+ return -1;
+ }
++ /* expat < 2.1.0 has no XML_SetHashSalt() */
++ if (EXPAT(SetHashSalt) != NULL) {
++ EXPAT(SetHashSalt)(self->parser,
++ (unsigned long)_Py_HashSecret.expat.hashsalt);
++ }
+
+ if (target) {
+ Py_INCREF(target);
+diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
+index c8a01d4e088e..c52079e518f2 100644
+--- a/Modules/pyexpat.c
++++ b/Modules/pyexpat.c
+@@ -1877,6 +1877,11 @@ MODULE_INITFUNC(void)
+ capi.SetStartDoctypeDeclHandler = XML_SetStartDoctypeDeclHandler;
+ capi.SetEncoding = XML_SetEncoding;
+ capi.DefaultUnknownEncodingHandler = PyUnknownEncodingHandler;
++#if XML_COMBINED_VERSION >= 20100
++ capi.SetHashSalt = XML_SetHashSalt;
++#else
++ capi.SetHashSalt = NULL;
++#endif
+
+ /* export using capsule */
+ capi_object = PyCapsule_New(&capi, PyExpat_CAPSULE_NAME, NULL);
diff --git a/python35.spec b/python35.spec
index bca4908..7021922 100644
--- a/python35.spec
+++ b/python35.spec
@@ -82,7 +82,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.6
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
Group: Development/Languages
@@ -398,6 +398,13 @@ Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
# and: https://bugs.python.org/issue33329
Patch302: 00302-fix-multiprocessing-regression-on-newer-glibcs.patch
+# 00310 #
+# CVE-2018-14647
+# Use XML_SetHashSalt in _elementtree
+# rhbz#1631822
+# Fixed upstream https://bugs.python.org/issue34623
+Patch310: 00310-use-xml-sethashsalt-in-elementtree.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -524,6 +531,7 @@ rmdir Lib/ensurepip/_bundled
%patch273 -p1
%patch290 -p1
%patch302 -p1
+%patch310 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@@ -1043,6 +1051,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Mon Sep 24 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.5.6-3
+- Security fix for CVE-2018-14647 (#1631822)
+
* Tue Aug 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.5.6-2
- Use RPM built wheels of pip and setuptools in ensurepip instead of bundled ones
commit 37a4d380cdce4d01e85a3455249b95e3accc504a
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Jul 20 12:37:22 2018 +0200
Enable basic venv smoke test in the CI
diff --git a/tests/tests.yml b/tests/tests.yml
new file mode 100644
index 0000000..fa2e2de
--- /dev/null
+++ b/tests/tests.yml
@@ -0,0 +1,17 @@
+---
+- hosts: localhost
+ roles:
+ - role: standard-test-basic
+ tags:
+ - classic
+ repositories:
+ - repo: "https://src.fedoraproject.org/tests/python.git"
+ dest: "python"
+ tests:
+ - smoke:
+ dir: python/smoke
+ run: VERSION=3.5 ./venv.sh
+ required_packages:
+ - gcc
+ - python3-tox
+ - python35
commit af9b3e7fe32abfa14c70f4ddeee8d316ebe2bab3
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Thu Jul 26 14:19:23 2018 +0200
Renew check-pyc-timestamps.py
- rename it, the are no pyo files on Python 3
- make sure to check all levels of pyc files optimization
- use path globs
- use comprehensions instead of map + filter
- use format() and print() instead of sys.stderr.write()
diff --git a/check-pyc-and-pyo-timestamps.py b/check-pyc-and-pyo-timestamps.py
deleted file mode 100644
index aab0cc1..0000000
--- a/check-pyc-and-pyo-timestamps.py
+++ /dev/null
@@ -1,59 +0,0 @@
-"""Checks if all *.pyc and *.pyo files have later mtime than their *.py files."""
-
-import imp
-import os
-import sys
-
-# list of test and other files that we expect not to have bytecode
-not_compiled = [
- 'test/bad_coding.py',
- 'test/bad_coding2.py',
- 'test/badsyntax_3131.py',
- 'test/badsyntax_future3.py',
- 'test/badsyntax_future4.py',
- 'test/badsyntax_future5.py',
- 'test/badsyntax_future6.py',
- 'test/badsyntax_future7.py',
- 'test/badsyntax_future8.py',
- 'test/badsyntax_future9.py',
- 'test/badsyntax_future10.py',
- 'test/badsyntax_async1.py',
- 'test/badsyntax_async2.py',
- 'test/badsyntax_async3.py',
- 'test/badsyntax_async4.py',
- 'test/badsyntax_async5.py',
- 'test/badsyntax_async6.py',
- 'test/badsyntax_async7.py',
- 'test/badsyntax_async8.py',
- 'test/badsyntax_async9.py',
- 'test/badsyntax_pep3120.py',
- 'lib2to3/tests/data/bom.py',
- 'lib2to3/tests/data/crlf.py',
- 'lib2to3/tests/data/different_encoding.py',
- 'lib2to3/tests/data/false_encoding.py',
- 'lib2to3/tests/data/py2_test_grammar.py',
- '.debug-gdb.py',
-]
-failed = 0
-
-def bytecode_expected(source):
- for f in not_compiled:
- if source.endswith(f):
- return False
- return True
-
-compiled = filter(lambda f: bytecode_expected(f), sys.argv[1:])
-for f in compiled:
- # check both pyo and pyc
- to_check = map(lambda b: imp.cache_from_source(f, b), (True, False))
- f_mtime = os.path.getmtime(f)
- for c in to_check:
- c_mtime = os.path.getmtime(c)
- if c_mtime < f_mtime:
- sys.stderr.write('Failed bytecompilation timestamps check: ')
- sys.stderr.write('Bytecode file {} is older than source file {}.\n'.format(c, f))
- failed += 1
-
-if failed:
- sys.stderr.write('\n{} files failed bytecompilation timestamps check.\n'.format(failed))
- sys.exit(1)
diff --git a/check-pyc-timestamps.py b/check-pyc-timestamps.py
new file mode 100644
index 0000000..7f9e11a
--- /dev/null
+++ b/check-pyc-timestamps.py
@@ -0,0 +1,55 @@
+"""Checks if all *.pyc files have later mtime than their *.py files."""
+
+import os
+import sys
+from importlib.util import cache_from_source
+from pathlib import Path
+
+
+RPM_BUILD_ROOT = os.environ.get('RPM_BUILD_ROOT', '')
+
+# ...cpython-3X.pyc
+# ...cpython-3X.opt-1.pyc
+# ...cpython-3X.opt-2.pyc
+LEVELS = (None, 1, 2)
+
+# list of globs of test and other files that we expect not to have bytecode
+not_compiled = [
+ '/usr/bin/*',
+ '*/test/bad_coding.py',
+ '*/test/bad_coding2.py',
+ '*/test/badsyntax_*.py',
+ '*/lib2to3/tests/data/bom.py',
+ '*/lib2to3/tests/data/crlf.py',
+ '*/lib2to3/tests/data/different_encoding.py',
+ '*/lib2to3/tests/data/false_encoding.py',
+ '*/lib2to3/tests/data/py2_test_grammar.py',
+ '*.debug-gdb.py',
+]
+
+
+def bytecode_expected(path):
+ path = Path(path[len(RPM_BUILD_ROOT):])
+ for glob in not_compiled:
+ if path.match(glob):
+ return False
+ return True
+
+
+failed = 0
+compiled = (path for path in sys.argv[1:] if bytecode_expected(path))
+for path in compiled:
+ to_check = (cache_from_source(path, optimization=opt) for opt in LEVELS)
+ f_mtime = os.path.getmtime(path)
+ for pyc in to_check:
+ c_mtime = os.path.getmtime(pyc)
+ if c_mtime < f_mtime:
+ print('Failed bytecompilation timestamps check: '
+ 'Bytecode file {} is older than source file {}'.format(pyc, path),
+ file=sys.stderr)
+ failed += 1
+
+if failed:
+ print('\n{} files failed bytecompilation timestamps check.'.format(failed),
+ file=sys.stderr)
+ sys.exit(1)
diff --git a/python35.spec b/python35.spec
index ef01e8f..bca4908 100644
--- a/python35.spec
+++ b/python35.spec
@@ -182,8 +182,8 @@ Source7: pyfuntop.stp
# A simple script to check timestamps of bytecode files
# Run in check section with Python that is currently being built
-# Written by bkabrda
-Source8: check-pyc-and-pyo-timestamps.py
+# Originally written by bkabrda
+Source8: check-pyc-timestamps.py
# Fixup distutils/unixccompiler.py to remove standard library path from rpath:
# Was Patch0 in ivazquez' python3000 specfile:
commit 0c847d2f336ce0d5b997d8b8d622e9a3dc7b5559
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Aug 15 15:36:29 2018 +0200
Use RPM built wheels instead of the bundled ones
diff --git a/00189-use-rpm-wheels.patch b/00189-use-rpm-wheels.patch
new file mode 100644
index 0000000..c9daa94
--- /dev/null
+++ b/00189-use-rpm-wheels.patch
@@ -0,0 +1,67 @@
+diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py
+index 25c5567..2553524 100644
+--- a/Lib/ensurepip/__init__.py
++++ b/Lib/ensurepip/__init__.py
+@@ -1,16 +1,27 @@
++import distutils.version
++import glob
+ import os
+ import os.path
+-import pkgutil
+ import sys
+ import tempfile
+
+
+ __all__ = ["version", "bootstrap"]
+
++_WHEEL_DIR = "/usr/share/python-wheels/"
+
+-_SETUPTOOLS_VERSION = "28.8.0"
+
+-_PIP_VERSION = "9.0.1"
++def _get_most_recent_wheel_version(pkg):
++ prefix = os.path.join(_WHEEL_DIR, "{}-".format(pkg))
++ suffix = "-py2.py3-none-any.whl"
++ pattern = "{}*{}".format(prefix, suffix)
++ versions = (p[len(prefix):-len(suffix)] for p in glob.glob(pattern))
++ return str(max(versions, key=distutils.version.LooseVersion))
++
++
++_SETUPTOOLS_VERSION = _get_most_recent_wheel_version("setuptools")
++
++_PIP_VERSION = _get_most_recent_wheel_version("pip")
+
+ # pip currently requires ssl support, so we try to provide a nicer
+ # error message when that is missing (http://bugs.python.org/issue19744)
+@@ -37,8 +48,13 @@ def _run_pip(args, additional_paths=None):
+ sys.path = additional_paths + sys.path
+
+ # Install the bundled software
+- import pip
+- pip.main(args)
++ try:
++ # pip 10
++ from pip._internal import main
++ except ImportError:
++ # pip 9
++ from pip import main
++ main(args)
+
+
+ def version():
+@@ -93,12 +109,9 @@ def bootstrap(*, root=None, upgrade=False, user=False,
+ additional_paths = []
+ for project, version in _PROJECTS:
+ wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version)
+- whl = pkgutil.get_data(
+- "ensurepip",
+- "_bundled/{}".format(wheel_name),
+- )
+- with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
+- fp.write(whl)
++ with open(os.path.join(_WHEEL_DIR, wheel_name), "rb") as sfp:
++ with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
++ fp.write(sfp.read())
+
+ additional_paths.append(os.path.join(tmpdir, wheel_name))
+
diff --git a/python35.spec b/python35.spec
index 42cce31..ef01e8f 100644
--- a/python35.spec
+++ b/python35.spec
@@ -82,10 +82,13 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.6
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
Group: Development/Languages
+# Whether to use RPM build wheels from the python-{pip,setuptools}-wheel package
+# Uses upstream bundled prebuilt wheels otherwise
+%bcond_without rpmwheels
# =======================
# Build-time requirements
@@ -141,6 +144,11 @@ BuildRequires: valgrind-devel
BuildRequires: xz-devel
BuildRequires: zlib-devel
+%if %{with rpmwheels}
+BuildRequires: python-setuptools-wheel
+BuildRequires: python-pip-wheel
+%endif
+
Requires: expat >= 2.1.0
# Python 3 built with glibc >= 2.24.90-26 needs to require it (rhbz#1410644).
@@ -335,6 +343,11 @@ Patch186: 00186-dont-raise-from-py_compile.patch
# relying on this will fail (test_filename_changing_on_output_single_dir)
Patch188: 00188-fix-lib2to3-tests-when-hashlib-doesnt-compile-properly.patch
+# 00189 #
+# Instead of bundled wheels, use our RPM packaged wheels from
+# /usr/share/python-wheels
+Patch189: 00189-use-rpm-wheels.patch
+
# 00205 #
# LIBPL variable in makefile takes LIBPL from configure.ac
# but the LIBPL variable defined there doesn't respect libdir macro
@@ -412,9 +425,13 @@ URL: http://www.python.org/
%global __requires_exclude ^python\\(abi\\) = 3\\..$
%global __provides_exclude ^python\\(abi\\) = 3\\..$
-# We keep those inside on purpose
+%if %{with rpmwheels}
+Requires: python-setuptools-wheel
+Requires: python-pip-wheel
+%else
Provides: bundled(python3-pip) = 9.0.1
Provides: bundled(python3-setuptools) = 28.8.0
+%endif
%description
Python %{pybasever} package for developers.
@@ -492,6 +509,13 @@ rm -r Modules/zlib || exit 1
%patch180 -p1
%patch186 -p1
%patch188 -p1
+
+%if %{with rpmwheels}
+%patch189 -p1
+rm Lib/ensurepip/_bundled/*.whl
+rmdir Lib/ensurepip/_bundled
+%endif
+
%patch205 -p1
%patch206 -p1
%patch243 -p1
@@ -1019,6 +1043,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Aug 21 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.5.6-2
+- Use RPM built wheels of pip and setuptools in ensurepip instead of bundled ones
+
* Sun Aug 05 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.5.6-1
- Rebased to version 3.5.6
commit babc5e18f6c8297848f88bbbd075130b4014adc6
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sun Aug 5 22:27:37 2018 +0200
Temporarily use compat-openssl10-devel to workaround #1609291
diff --git a/python35.spec b/python35.spec
index f87a265..42cce31 100644
--- a/python35.spec
+++ b/python35.spec
@@ -115,11 +115,13 @@ BuildRequires: libX11-devel
BuildRequires: ncurses-devel
# workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig)
BuildRequires: net-tools
-BuildRequires: openssl-devel
BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: sqlite-devel
+# https://bugzilla.redhat.com/show_bug.cgi?id=1609291
+BuildRequires: compat-openssl10-devel
+
%if 0%{?with_systemtap}
BuildRequires: systemtap-sdt-devel
# (this introduces a dependency on "python", in that systemtap-sdt-devel's
commit 9e434a4c08115e72baa9d9ff46f0ba327706660c
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sun Aug 5 13:47:25 2018 +0200
Rebased to version 3.5.6
diff --git a/.gitignore b/.gitignore
index 518dbba..8e6e1ec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@ Python-3.5.1.tar.xz
/Python-3.5.3.tar.xz
/Python-3.5.4.tar.xz
/Python-3.5.5.tar.xz
+/Python-3.5.6.tar.xz
diff --git a/python35.spec b/python35.spec
index d79bb5b..f87a265 100644
--- a/python35.spec
+++ b/python35.spec
@@ -81,8 +81,8 @@
# ==================
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
-Version: %{pybasever}.5
-Release: 3%{?dist}
+Version: %{pybasever}.6
+Release: 1%{?dist}
License: Python
Group: Development/Languages
@@ -1017,6 +1017,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sun Aug 05 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.5.6-1
+- Rebased to version 3.5.6
+
* Sat Jul 14 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
diff --git a/sources b/sources
index c3f630d..d535e31 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.5.5.tar.xz) = c9056baee6a2d1fe7f14b1f310db95b78e8972766d086f8ae10954f38f8182956171580bde01ddadebe897f2545a6fbe47669ca3e4887026ac1fae5ee9197f22
+SHA512 (Python-3.5.6.tar.xz) = 1ccf287dbe8594eb577c1197c19d882fbe235c72f4c01cda23258f2add8a93e639b41ebaf556508b867cbe1b4c1fc4e1cf457d70b98cf7a1502013660a7e0ac1
commit 65d04c003e79820149711768d27c37b76a1c7054
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sun Aug 5 13:45:58 2018 +0200
Use the %{valgrind_arches} macro instead of hardcoding unsupported arches
diff --git a/python35.spec b/python35.spec
index 30ce4ce..d79bb5b 100644
--- a/python35.spec
+++ b/python35.spec
@@ -57,7 +57,7 @@
%global with_systemtap 1
# some arches don't have valgrind so we need to disable its support on them
-%ifnarch s390 %{mips}
+%ifarch %{valgrind_arches}
%global with_valgrind 1
%else
%global with_valgrind 0
commit 046a3d07914525894a5a08c3e94e0b7155257300
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Jul 14 02:54:07 2018 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/python35.spec b/python35.spec
index 92c43ee..30ce4ce 100644
--- a/python35.spec
+++ b/python35.spec
@@ -82,7 +82,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.5
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
Group: Development/Languages
@@ -1017,6 +1017,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sat Jul 14 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.5-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
* Mon Apr 23 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.5.5-2
- Fix multiprocessing regression on newer glibcs
- Enable test_multiprocessing_fork(server) and _spawn again
commit 13906dd432e92435b8a338ab25f62235b099d2f3
Author: Jason Tibbitts <tibbs(a)math.uh.edu>
Date: Tue Jul 10 01:55:19 2018 -0500
Remove needless use of %defattr
diff --git a/python35.spec b/python35.spec
index b248b8c..92c43ee 100644
--- a/python35.spec
+++ b/python35.spec
@@ -952,7 +952,6 @@ CheckPython optimized
%files
-%defattr(-, root, root)
%doc LICENSE README
%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
commit 06af669bc2c3b2ff2125a7924b6eafc6e4d5f4ea
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Jun 29 12:24:41 2018 +0200
Remove ldconfig scriptlets
diff --git a/python35.spec b/python35.spec
index b95fdc2..b248b8c 100644
--- a/python35.spec
+++ b/python35.spec
@@ -951,15 +951,6 @@ CheckPython optimized
%endif # run_selftest_suite
-# ======================================================
-# Scriptlets
-# ======================================================
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-
%files
%defattr(-, root, root)
%doc LICENSE README
commit d5dc5b222f28272d209ad68b480cafdc9f894363
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Apr 27 22:20:32 2018 +0200
Fix shebangs of the GDB hooks
Also, use -p (preserve timestamp) with pathfix.py.
Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1560295
diff --git a/python35.spec b/python35.spec
index 2ef06f1..b95fdc2 100644
--- a/python35.spec
+++ b/python35.spec
@@ -748,8 +748,9 @@ sed -i -e "s/'pyconfig.h'/'%{_pyconfig_h}'/" \
# Switch all shebangs to refer to the specific Python version.
LD_LIBRARY_PATH=./build/optimized ./build/optimized/python \
Tools/scripts/pathfix.py \
- -i "%{_bindir}/python%{pybasever}" \
- %{buildroot}
+ -i "%{_bindir}/python%{pybasever}" -p \
+ %{buildroot} \
+ %{?with_gdb_hooks:%{buildroot}$DirHoldingGdbPy/*.py}
# Remove shebang lines from .py files that aren't executable, and
# remove executability from .py files that don't have a shebang line:
commit 82af650dd4692480547117736be88c51db1e5109
Author: Petr Viktorin <pviktori(a)redhat.com>
Date: Tue Aug 22 14:24:22 2017 +0200
Use configuration macro instead of workaround to disable byte-compilation
diff --git a/python35.spec b/python35.spec
index c74d5c3..2ef06f1 100644
--- a/python35.spec
+++ b/python35.spec
@@ -71,26 +71,10 @@
# Turn this to 0 to turn off the "check" phase:
%global run_selftest_suite 1
-# We want to byte-compile the .py files within the packages using the new
-# python3 binary.
-#
-# Unfortunately, rpmbuild's infrastructure requires us to jump through some
-# hoops to avoid byte-compiling with the system python 2 version:
-# /usr/lib/rpm/redhat/macros sets up build policy that (amongst other things)
-# defines __os_install_post. In particular, "brp-python-bytecompile" is
-# invoked without an argument thus using the wrong version of python
-# (/usr/bin/python, rather than the freshly built python), thus leading to
-# numerous syntax errors, and incorrect magic numbers in the .pyc files. We
-# thus override __os_install_post to avoid invoking this script:
-%global __os_install_post /usr/lib/rpm/brp-compress \
- %{!?__debug_package:/usr/lib/rpm/brp-strip %{__strip}} \
- /usr/lib/rpm/brp-strip-static-archive %{__strip} \
- /usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} \
- /usr/lib/rpm/brp-python-hardlink
-# to remove the invocation of brp-python-bytecompile, whilst keeping the
-# invocation of brp-python-hardlink (since this should still work for python3
-# pyc/pyo files)
-
+# Disable automatic bytecompilation. The python3 binary is not yet be
+# available in /usr/bin when Python is built. Also, the bytecompilation fails
+# on files that test invalid syntax.
+%undefine py_auto_byte_compile
# ==================
# Top-level metadata
commit 712f3838b8cc1cb1aa6816143275d749103626ef
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Apr 23 21:13:08 2018 +0200
Fix multiprocessing regression on newer glibcs
Enable test_multiprocessing_fork(server) and _spawn again
Resolves: rhbz#1569933
diff --git a/00302-fix-multiprocessing-regression-on-newer-glibcs.patch b/00302-fix-multiprocessing-regression-on-newer-glibcs.patch
new file mode 100644
index 0000000..965792a
--- /dev/null
+++ b/00302-fix-multiprocessing-regression-on-newer-glibcs.patch
@@ -0,0 +1,55 @@
+From a3febe3cba14b89885f42ca2f0224096a52885f6 Mon Sep 17 00:00:00 2001
+From: Antoine Pitrou <antoine(a)python.org>
+Date: Mon, 23 Apr 2018 13:19:42 +0200
+Subject: [PATCH] bpo-33329: Fix multiprocessing regression on newer glibcs
+
+Starting with glibc 2.27.9000-xxx, sigaddset() can return EINVAL for some
+reserved signal numbers between 1 and NSIG. The `range(1, NSIG)` idiom
+is commonly used to select all signals for blocking with `pthread_sigmask`.
+So we ignore the sigaddset() return value until we expose sigfillset()
+to provide a better idiom.
+---
+ .../next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst | 1 +
+ Modules/signalmodule.c | 14 ++++++++------
+ 2 files changed, 9 insertions(+), 6 deletions(-)
+ create mode 100644 Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
+
+diff --git a/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst b/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
+new file mode 100644
+index 000000000000..d1a4e56d04b9
+--- /dev/null
++++ b/Misc/NEWS.d/next/Library/2018-04-23-13-21-39.bpo-33329.lQ-Eod.rst
+@@ -0,0 +1 @@
++Fix multiprocessing regression on newer glibcs
+diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
+index 791616014384..35fd87e2d1e7 100644
+--- a/Modules/signalmodule.c
++++ b/Modules/signalmodule.c
+@@ -819,7 +819,6 @@ iterable_to_sigset(PyObject *iterable, sigset_t *mask)
+ int result = -1;
+ PyObject *iterator, *item;
+ long signum;
+- int err;
+
+ sigemptyset(mask);
+
+@@ -841,11 +840,14 @@ iterable_to_sigset(PyObject *iterable, sigset_t *mask)
+ Py_DECREF(item);
+ if (signum == -1 && PyErr_Occurred())
+ goto error;
+- if (0 < signum && signum < NSIG)
+- err = sigaddset(mask, (int)signum);
+- else
+- err = 1;
+- if (err) {
++ if (0 < signum && signum < NSIG) {
++ /* bpo-33329: ignore sigaddset() return value as it can fail
++ * for some reserved signals, but we want the `range(1, NSIG)`
++ * idiom to allow selecting all valid signals.
++ */
++ (void) sigaddset(mask, (int)signum);
++ }
++ else {
+ PyErr_Format(PyExc_ValueError,
+ "signal number %ld out of range", signum);
+ goto error;
diff --git a/python35.spec b/python35.spec
index 3c8bba9..c74d5c3 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.5
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
Group: Development/Languages
@@ -393,6 +393,12 @@ Patch273: 00273-skip-float-test.patch
# Fixed upstream: https://bugs.python.org/issue32635
Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
+# 00302 #
+# Fix multiprocessing regression on newer glibcs
+# See: https://bugzilla.redhat.com/show_bug.cgi?id=1569933
+# and: https://bugs.python.org/issue33329
+Patch302: 00302-fix-multiprocessing-regression-on-newer-glibcs.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -507,6 +513,7 @@ rm -r Modules/zlib || exit 1
%patch270 -p1
%patch273 -p1
%patch290 -p1
+%patch302 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@@ -943,12 +950,6 @@ CheckPython() {
%ifarch %{power64} s390 s390x armv7hl aarch64 %{mips}
-x test_gdb \
%endif
- -x test_multiprocessing_fork \
- -x test_multiprocessing_forkserver \
- -x test_multiprocessing_spawn \
- %ifnarch %{ix86} x86_64
- -x test_rapid_restart \
- %endif
echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
@@ -1041,6 +1042,11 @@ CheckPython optimized
# ======================================================
%changelog
+* Mon Apr 23 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.5.5-2
+- Fix multiprocessing regression on newer glibcs
+- Enable test_multiprocessing_fork(server) and _spawn again
+Resolves: rhbz#1569933
+
* Fri Apr 20 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.5.5-1
- Rebased to version 3.5.5
- Do not ship the Tools directory
commit ee04c1b4b6fb85ef84f01e865978d1a53bb7058c
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sat Apr 21 10:20:30 2018 +0200
Skip test_buffer on ppc64le
diff --git a/python35.spec b/python35.spec
index 54d18df..3c8bba9 100644
--- a/python35.spec
+++ b/python35.spec
@@ -937,6 +937,9 @@ CheckPython() {
%ifarch %{mips64}
-x test_ctypes \
%endif
+ %ifarch ppc64le
+ -x test_buffer \
+ %endif
%ifarch %{power64} s390 s390x armv7hl aarch64 %{mips}
-x test_gdb \
%endif
@@ -1043,6 +1046,7 @@ CheckPython optimized
- Do not ship the Tools directory
- Skip test_multiprocessing_fork(server) and _spawn for now
- Skip test_rapid_restart on non x86 arches
+- Skip test_buffer on ppc64le
* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
commit 3562e2af49a6ea73b8125167cc88e1f59cc843ac
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Apr 20 16:35:05 2018 +0200
Skip test_rapid_restart on non x86 arches
diff --git a/python35.spec b/python35.spec
index 9ad7f3e..54d18df 100644
--- a/python35.spec
+++ b/python35.spec
@@ -943,6 +943,9 @@ CheckPython() {
-x test_multiprocessing_fork \
-x test_multiprocessing_forkserver \
-x test_multiprocessing_spawn \
+ %ifnarch %{ix86} x86_64
+ -x test_rapid_restart \
+ %endif
echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
@@ -1039,6 +1042,7 @@ CheckPython optimized
- Rebased to version 3.5.5
- Do not ship the Tools directory
- Skip test_multiprocessing_fork(server) and _spawn for now
+- Skip test_rapid_restart on non x86 arches
* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
commit 05356b4f0619929ae9f01b38a2a08bec35b3d69f
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Apr 20 12:36:59 2018 +0200
Skip test_multiprocessing_fork(server) and _spawn for now
diff --git a/python35.spec b/python35.spec
index 40cc08a..9ad7f3e 100644
--- a/python35.spec
+++ b/python35.spec
@@ -938,8 +938,11 @@ CheckPython() {
-x test_ctypes \
%endif
%ifarch %{power64} s390 s390x armv7hl aarch64 %{mips}
- -x test_gdb
+ -x test_gdb \
%endif
+ -x test_multiprocessing_fork \
+ -x test_multiprocessing_forkserver \
+ -x test_multiprocessing_spawn \
echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
@@ -1032,9 +1035,10 @@ CheckPython optimized
# ======================================================
%changelog
-* Tue Mar 27 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.5.5-1
+* Fri Apr 20 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.5.5-1
- Rebased to version 3.5.5
- Do not ship the Tools directory
+- Skip test_multiprocessing_fork(server) and _spawn for now
* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
commit a04dbe7b26d77b2333d02564993efd454f82462f
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sun Apr 1 00:42:59 2018 +0200
Remove 2to3, don't mv it just to remove it later
diff --git a/python35.spec b/python35.spec
index bdcc0a9..40cc08a 100644
--- a/python35.spec
+++ b/python35.spec
@@ -687,7 +687,7 @@ InstallPython optimized \
install -d -m 0755 ${RPM_BUILD_ROOT}%{pylibdir}/site-packages/__pycache__
-mv ${RPM_BUILD_ROOT}%{_bindir}/2to3 ${RPM_BUILD_ROOT}%{_bindir}/python3-2to3
+rm ${RPM_BUILD_ROOT}%{_bindir}/2to3
# Documentation tools
install -m755 -d %{buildroot}%{pylibdir}/Doc
commit 9828dfcc61a0989aff45f3080d83a2375d32b4ae
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sun Apr 1 00:41:37 2018 +0200
Do not ship the Tools directory
It is not a part of the standard library, also has problematic shebangs, etc.
diff --git a/python35.spec b/python35.spec
index 3fabe38..bdcc0a9 100644
--- a/python35.spec
+++ b/python35.spec
@@ -689,21 +689,10 @@ install -d -m 0755 ${RPM_BUILD_ROOT}%{pylibdir}/site-packages/__pycache__
mv ${RPM_BUILD_ROOT}%{_bindir}/2to3 ${RPM_BUILD_ROOT}%{_bindir}/python3-2to3
-# Development tools
-install -m755 -d ${RPM_BUILD_ROOT}%{pylibdir}/Tools
-install Tools/README ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
-cp -ar Tools/freeze ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
-cp -ar Tools/i18n ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
-cp -ar Tools/pynche ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
-cp -ar Tools/scripts ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
-
# Documentation tools
install -m755 -d %{buildroot}%{pylibdir}/Doc
cp -ar Doc/tools %{buildroot}%{pylibdir}/Doc/
-# Demo scripts
-cp -ar Tools/demo %{buildroot}%{pylibdir}/Tools/
-
# Fix for bug #136654
rm -f %{buildroot}%{pylibdir}/email/test/data/audiotest.au %{buildroot}%{pylibdir}/test/audiotest.au
@@ -779,6 +768,9 @@ find %{buildroot} -name \*.py \
-perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
-exec chmod a-x {} \; \) \)
+# Remove tests for tools, we don't ship those
+rm -rf %{buildroot}%{pylibdir}/test/test_tools
+
# .xpm and .xbm files should not be executable:
find %{buildroot} \
\( -name \*.xbm -o -name \*.xpm -o -name \*.xpm.1 \) \
@@ -786,8 +778,7 @@ find %{buildroot} \
# Remove executable flag from files that shouldn't have it:
chmod a-x \
- %{buildroot}%{pylibdir}/distutils/tests/Setup.sample \
- %{buildroot}%{pylibdir}/Tools/README
+ %{buildroot}%{pylibdir}/distutils/tests/Setup.sample
# Get rid of DOS batch files:
find %{buildroot} -name \*.bat -exec rm {} \;
@@ -1043,6 +1034,7 @@ CheckPython optimized
%changelog
* Tue Mar 27 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.5.5-1
- Rebased to version 3.5.5
+- Do not ship the Tools directory
* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
commit 7ee46fb6c47dbd8bd790b52063227e5442a3fdac
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Tue Jan 23 17:09:27 2018 +0000
Synced patch for libxcrypt with upstream
diff --git a/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch b/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
index be62939..7cdd239 100644
--- a/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
+++ b/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
@@ -1,47 +1,54 @@
-From 6811089dbf34a2cef9799e1cb6d63b863b58739f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82(a)fedoraproject.org>
-Date: Sun, 21 Jan 2018 18:55:31 +0100
-Subject: [PATCH] cryptmodule: Include <crypt.h> for declaration of crypt() if
- needed
-
-Not every target system may provide a crypt() function in its stdlibc
-and may use an external or replacement library, like libxcrypt, for
-providing such functions.
----
- Modules/_cryptmodule.c | 4 ++++
- configure.ac | 4 ++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/Modules/_cryptmodule.c b/Modules/_cryptmodule.c
-index 58d179e6a3..bb26d83f55 100644
---- a/Modules/_cryptmodule.c
-+++ b/Modules/_cryptmodule.c
-@@ -5,6 +5,10 @@
-
- #include <sys/types.h>
-
-+#if defined(HAVE_XCRYPT)
+diff --git a/Include/Python.h b/Include/Python.h
+index 858dbd1..2845742 100644
+--- a/Include/Python.h
++++ b/Include/Python.h
+@@ -35,6 +35,9 @@
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
++#ifdef HAVE_CRYPT_H
+#include <crypt.h>
+#endif
-+
- /* Module crypt */
- /*[clinic input]
+ /* For size_t? */
+ #ifdef HAVE_STDDEF_H
+diff --git a/configure b/configure
+index 93f332f..ed37d5d 100755
+--- a/configure
++++ b/configure
+@@ -7709,7 +7709,7 @@ $as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+ fi
+
+-for ac_header in asm/types.h conio.h direct.h dlfcn.h errno.h \
++for ac_header in asm/types.h crypt.h conio.h direct.h dlfcn.h errno.h \
+ fcntl.h grp.h \
+ ieeefp.h io.h langinfo.h libintl.h process.h pthread.h \
+ sched.h shadow.h signal.h stdint.h stropts.h termios.h \
diff --git a/configure.ac b/configure.ac
-index 39e2e8e769..129c198c15 100644
+index d071dde..937bb65 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -2816,6 +2816,10 @@ LIBS="$withval $LIBS"
+@@ -1949,7 +1949,7 @@ dnl AC_MSG_RESULT($cpp_type)
- PKG_PROG_PKG_CONFIG
+ # checks for header files
+ AC_HEADER_STDC
+-AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \
++AC_CHECK_HEADERS(asm/types.h crypt.h conio.h direct.h dlfcn.h errno.h \
+ fcntl.h grp.h \
+ ieeefp.h io.h langinfo.h libintl.h process.h pthread.h \
+ sched.h shadow.h signal.h stdint.h stropts.h termios.h \
+diff --git a/pyconfig.h.in b/pyconfig.h.in
+index 9052dbc..7d1f125 100644
+--- a/pyconfig.h.in
++++ b/pyconfig.h.in
+@@ -137,6 +137,9 @@
+ /* Define to 1 if you have the `copysign' function. */
+ #undef HAVE_COPYSIGN
-+# Check for libxcrypt is present.
-+PKG_CHECK_MODULES([libxcrypt], libxcrypt,
-+ AC_DEFINE([HAVE_XCRYPT], 1, [Define to 1 if libxcrypt is found.]), [])
++/* Define to 1 if you have the <crypt.h> header file. */
++#undef HAVE_CRYPT_H
+
- # Check for use of the system expat library
- AC_MSG_CHECKING(for --with-system-expat)
- AC_ARG_WITH(system_expat,
---
-2.16.0
-
+ /* Define to 1 if you have the `ctermid' function. */
+ #undef HAVE_CTERMID
+
diff --git a/python35.spec b/python35.spec
index a82eabc..3fabe38 100644
--- a/python35.spec
+++ b/python35.spec
@@ -390,6 +390,7 @@ Patch273: 00273-skip-float-test.patch
# Not every target system may provide a crypt() function in its stdlibc
# and may use an external or replacement library, like libxcrypt, for
# providing such functions.
+# Fixed upstream: https://bugs.python.org/issue32635
Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
# (New patches go here ^^^)
commit 56f993d4f82441eb4156f0b08dba96908b964505
Author: Bjrn Esser <besser82(a)fedoraproject.org>
Date: Mon Jan 22 20:10:32 2018 +0000
Add patch for libxcrypt
diff --git a/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch b/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
new file mode 100644
index 0000000..be62939
--- /dev/null
+++ b/00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
@@ -0,0 +1,47 @@
+From 6811089dbf34a2cef9799e1cb6d63b863b58739f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82(a)fedoraproject.org>
+Date: Sun, 21 Jan 2018 18:55:31 +0100
+Subject: [PATCH] cryptmodule: Include <crypt.h> for declaration of crypt() if
+ needed
+
+Not every target system may provide a crypt() function in its stdlibc
+and may use an external or replacement library, like libxcrypt, for
+providing such functions.
+---
+ Modules/_cryptmodule.c | 4 ++++
+ configure.ac | 4 ++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/Modules/_cryptmodule.c b/Modules/_cryptmodule.c
+index 58d179e6a3..bb26d83f55 100644
+--- a/Modules/_cryptmodule.c
++++ b/Modules/_cryptmodule.c
+@@ -5,6 +5,10 @@
+
+ #include <sys/types.h>
+
++#if defined(HAVE_XCRYPT)
++#include <crypt.h>
++#endif
++
+ /* Module crypt */
+
+ /*[clinic input]
+diff --git a/configure.ac b/configure.ac
+index 39e2e8e769..129c198c15 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2816,6 +2816,10 @@ LIBS="$withval $LIBS"
+
+ PKG_PROG_PKG_CONFIG
+
++# Check for libxcrypt is present.
++PKG_CHECK_MODULES([libxcrypt], libxcrypt,
++ AC_DEFINE([HAVE_XCRYPT], 1, [Define to 1 if libxcrypt is found.]), [])
++
+ # Check for use of the system expat library
+ AC_MSG_CHECKING(for --with-system-expat)
+ AC_ARG_WITH(system_expat,
+--
+2.16.0
+
diff --git a/python35.spec b/python35.spec
index 7ff087d..a82eabc 100644
--- a/python35.spec
+++ b/python35.spec
@@ -386,6 +386,12 @@ Patch270: 00270-fix-ssl-alpn-hook-test.patch
# Reported upstream: https://bugs.python.org/issue31900
Patch273: 00273-skip-float-test.patch
+# 00290 #
+# Not every target system may provide a crypt() function in its stdlibc
+# and may use an external or replacement library, like libxcrypt, for
+# providing such functions.
+Patch290: 00290-cryptmodule-Include-crypt.h-for-declaration-of-crypt.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -499,6 +505,7 @@ rm -r Modules/zlib || exit 1
%patch264 -p1
%patch270 -p1
%patch273 -p1
+%patch290 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
commit 97e3884814281b095696c39cd63d6710c467f2ec
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Mar 27 13:59:13 2018 +0200
Rebased to version 3.5.5
diff --git a/.gitignore b/.gitignore
index d8377d7..518dbba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@ Python-3.5.1.tar.xz
/Python-3.5.2.tar.xz
/Python-3.5.3.tar.xz
/Python-3.5.4.tar.xz
+/Python-3.5.5.tar.xz
diff --git a/00206-remove-hf-from-arm-triplet.patch b/00206-remove-hf-from-arm-triplet.patch
index c5f309c..143418a 100644
--- a/00206-remove-hf-from-arm-triplet.patch
+++ b/00206-remove-hf-from-arm-triplet.patch
@@ -1,7 +1,24 @@
-diff -up Python-3.5.0/configure.ac.eabi Python-3.5.0/configure.ac
---- Python-3.5.0/configure.eabi 2015-09-23 13:52:20.756909744 +0200
-+++ Python-3.5.0/configure 2015-09-23 13:52:46.859163629 +0200
-@@ -762,9 +762,9 @@ cat >> conftest.c <<EOF
+diff --git a/configure b/configure
+index 708cc78..93f332f 100755
+--- a/configure
++++ b/configure
+@@ -5295,9 +5295,9 @@ cat >> conftest.c <<EOF
+ alpha-linux-gnu
+ # elif defined(__ARM_EABI__) && defined(__ARM_PCS_VFP)
+ # if defined(__ARMEL__)
+- arm-linux-gnueabihf
++ arm-linux-gnueabi
+ # else
+- armeb-linux-gnueabihf
++ armeb-linux-gnueabi
+ # endif
+ # elif defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP)
+ # if defined(__ARMEL__)
+diff --git a/configure.ac b/configure.ac
+index 82eb1e3..d071dde 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -782,9 +782,9 @@ cat >> conftest.c <<EOF
alpha-linux-gnu
# elif defined(__ARM_EABI__) && defined(__ARM_PCS_VFP)
# if defined(__ARMEL__)
diff --git a/00286-pystring-decodeescape-integer-overflow.patch b/00286-pystring-decodeescape-integer-overflow.patch
deleted file mode 100644
index 8c22f3c..0000000
--- a/00286-pystring-decodeescape-integer-overflow.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From c3c9db89273fabc62ea1b48389d9a3000c1c03ae Mon Sep 17 00:00:00 2001
-From: Jay Bosamiya <jaybosamiya(a)gmail.com>
-Date: Sun, 18 Jun 2017 22:11:03 +0530
-Subject: [PATCH] [2.7] bpo-30657: Check & prevent integer overflow in
- PyString_DecodeEscape (#2174)
-
-diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c
-index 77dd45e..9b29dc3 100644
---- a/Objects/bytesobject.c
-+++ b/Objects/bytesobject.c
-@@ -970,7 +970,13 @@ PyObject *PyBytes_DecodeEscape(const char *s,
- char *p, *buf;
- const char *end;
- PyObject *v;
-- Py_ssize_t newlen = recode_encoding ? 4*len:len;
-+ Py_ssize_t newlen;
-+ /* Check for integer overflow */
-+ if (recode_encoding && (len > PY_SSIZE_T_MAX / 4)) {
-+ PyErr_SetString(PyExc_OverflowError, "string is too large");
-+ return NULL;
-+ }
-+ newlen = recode_encoding ? 4*len:len;
- v = PyBytes_FromStringAndSize((char *)NULL, newlen);
- if (v == NULL)
- return NULL;
diff --git a/python35.spec b/python35.spec
index e4feca6..7ff087d 100644
--- a/python35.spec
+++ b/python35.spec
@@ -97,8 +97,8 @@
# ==================
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
-Version: %{pybasever}.4
-Release: 4%{?dist}
+Version: %{pybasever}.5
+Release: 1%{?dist}
License: Python
Group: Development/Languages
@@ -205,7 +205,7 @@ Patch55: 00055-systemtap.patch
Patch102: 00102-lib64.patch
# 00104 #
-# Only used when "%{_lib}" == "lib64"
+# Only used when "%%{_lib}" == "lib64"
# Another lib64 fix, for distutils/tests/test_install.py; not upstream:
Patch104: 00104-lib64-fix-for-test_install.patch
@@ -386,12 +386,6 @@ Patch270: 00270-fix-ssl-alpn-hook-test.patch
# Reported upstream: https://bugs.python.org/issue31900
Patch273: 00273-skip-float-test.patch
-# 00286 #
-# CVE-2017-1000158
-# Check & prevent integer overflow in PyString_DecodeEscape
-# Fixed upstream: https://bugs.python.org/issue30657
-Patch286: 00286-pystring-decodeescape-integer-overflow.patch
-
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -415,13 +409,13 @@ URL: http://www.python.org/
# We'll not provide this, on purpose
# No package in Fedora shall ever depend on this
-# Provides: python(abi) = %{pybasever}
+# Provides: python(abi) = %%{pybasever}
%global __requires_exclude ^python\\(abi\\) = 3\\..$
%global __provides_exclude ^python\\(abi\\) = 3\\..$
# We keep those inside on purpose
-Provides: bundled(python3-pip) = 8.1.1
-Provides: bundled(python3-setuptools) = 20.10.1
+Provides: bundled(python3-pip) = 9.0.1
+Provides: bundled(python3-setuptools) = 28.8.0
%description
Python %{pybasever} package for developers.
@@ -505,7 +499,6 @@ rm -r Modules/zlib || exit 1
%patch264 -p1
%patch270 -p1
%patch273 -p1
-%patch286 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@@ -1040,6 +1033,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Mar 27 2018 Miro Hronok <mhroncok(a)redhat.com> - 3.5.5-1
+- Rebased to version 3.5.5
+
* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
diff --git a/sources b/sources
index c5215a6..c3f630d 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.5.4.tar.xz) = dbbe2740ee1cce5404b7b6436a9b3887e15f415a1006efa22014ec7e5b1e48c43eed0ff98f6f5b365c527b8d2525be4ce72bbe404ce71c0835529fcd6f0267ff
+SHA512 (Python-3.5.5.tar.xz) = c9056baee6a2d1fe7f14b1f310db95b78e8972766d086f8ae10954f38f8182956171580bde01ddadebe897f2545a6fbe47669ca3e4887026ac1fae5ee9197f22
commit 2a2170c98d890b03e3d42e9f4ceb3d37da0e666b
Author: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
Date: Wed Feb 14 00:53:19 2018 +0100
Remove BuildRoot definition
None of currently supported distributions need that.
It was needed last for EL5 which is EOL now
Signed-off-by: Igor Gnatenko <ignatenkobrain(a)fedoraproject.org>
diff --git a/python35.spec b/python35.spec
index cf9086a..e4feca6 100644
--- a/python35.spec
+++ b/python35.spec
@@ -406,7 +406,6 @@ Patch286: 00286-pystring-decodeescape-integer-overflow.patch
# it should be ppc64le-linux-gnu/ppc64-linux-gnu instead powerpc64le-linux-gnu/powerpc64-linux-gnu
Patch5001: python3-powerppc-arch.patch
-BuildRoot: %{_tmppath}/%{name}-%{version}-root
# ======================================================
# Additional metadata, and subpackages
commit fa48f89072a86039ceb1ce730af25f7217796609
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Fri Feb 9 12:01:43 2018 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/python35.spec b/python35.spec
index 1bc9e10..cf9086a 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.4
-Release: 3%{?dist}
+Release: 4%{?dist}
License: Python
Group: Development/Languages
@@ -1041,6 +1041,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Feb 09 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.4-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
* Sat Jan 20 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.5.4-3
- Rebuilt for switch to libxcrypt
commit a2493978b5a16e84078d64a558f533721b9feabd
Author: Bjrn Esser <besser82(a)fedoraproject.org>
Date: Sat Jan 20 23:07:44 2018 +0100
Rebuilt for switch to libxcrypt
diff --git a/python35.spec b/python35.spec
index c946530..1bc9e10 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.4
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
Group: Development/Languages
@@ -1041,6 +1041,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sat Jan 20 2018 Bjrn Esser <besser82(a)fedoraproject.org> - 3.5.4-3
+- Rebuilt for switch to libxcrypt
+
* Tue Dec 05 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.5.4-2
- Fix for CVE-2017-1000158
- rhbz#1519603: https://bugzilla.redhat.com/show_bug.cgi?id=1519603
commit 930be24afc169c09a1e0d4707054145741797e7f
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Dec 5 16:03:42 2017 +0100
Fix for CVE-2017-1000158 (#1519603)
diff --git a/00286-pystring-decodeescape-integer-overflow.patch b/00286-pystring-decodeescape-integer-overflow.patch
new file mode 100644
index 0000000..8c22f3c
--- /dev/null
+++ b/00286-pystring-decodeescape-integer-overflow.patch
@@ -0,0 +1,25 @@
+From c3c9db89273fabc62ea1b48389d9a3000c1c03ae Mon Sep 17 00:00:00 2001
+From: Jay Bosamiya <jaybosamiya(a)gmail.com>
+Date: Sun, 18 Jun 2017 22:11:03 +0530
+Subject: [PATCH] [2.7] bpo-30657: Check & prevent integer overflow in
+ PyString_DecodeEscape (#2174)
+
+diff --git a/Objects/bytesobject.c b/Objects/bytesobject.c
+index 77dd45e..9b29dc3 100644
+--- a/Objects/bytesobject.c
++++ b/Objects/bytesobject.c
+@@ -970,7 +970,13 @@ PyObject *PyBytes_DecodeEscape(const char *s,
+ char *p, *buf;
+ const char *end;
+ PyObject *v;
+- Py_ssize_t newlen = recode_encoding ? 4*len:len;
++ Py_ssize_t newlen;
++ /* Check for integer overflow */
++ if (recode_encoding && (len > PY_SSIZE_T_MAX / 4)) {
++ PyErr_SetString(PyExc_OverflowError, "string is too large");
++ return NULL;
++ }
++ newlen = recode_encoding ? 4*len:len;
+ v = PyBytes_FromStringAndSize((char *)NULL, newlen);
+ if (v == NULL)
+ return NULL;
diff --git a/python35.spec b/python35.spec
index ea43a97..c946530 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.4
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
Group: Development/Languages
@@ -386,6 +386,12 @@ Patch270: 00270-fix-ssl-alpn-hook-test.patch
# Reported upstream: https://bugs.python.org/issue31900
Patch273: 00273-skip-float-test.patch
+# 00286 #
+# CVE-2017-1000158
+# Check & prevent integer overflow in PyString_DecodeEscape
+# Fixed upstream: https://bugs.python.org/issue30657
+Patch286: 00286-pystring-decodeescape-integer-overflow.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -500,6 +506,7 @@ rm -r Modules/zlib || exit 1
%patch264 -p1
%patch270 -p1
%patch273 -p1
+%patch286 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@@ -1034,6 +1041,10 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Dec 05 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.5.4-2
+- Fix for CVE-2017-1000158
+- rhbz#1519603: https://bugzilla.redhat.com/show_bug.cgi?id=1519603
+
* Mon Oct 30 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.4-1
- Rebased to version 3.5.4
commit 1b6cec384de730b5fce648dc8dfa68d3615683d3
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Mon Oct 30 17:43:37 2017 +0100
Add forgotten patch 273
diff --git a/00273-skip-float-test.patch b/00273-skip-float-test.patch
new file mode 100644
index 0000000..233d3ed
--- /dev/null
+++ b/00273-skip-float-test.patch
@@ -0,0 +1,12 @@
+diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py
+index 66726d6496d..3318fa5df59 100644
+--- a/Lib/test/test_float.py
++++ b/Lib/test/test_float.py
+@@ -141,6 +141,7 @@ class GeneralFloatCases(unittest.TestCase):
+ # non-UTF-8 byte string
+ check(b'123\xa0')
+
++ @unittest.skip('Fails in Koji: https://bugzilla.redhat.com/show_bug.cgi?id=1484497')
+ @support.run_with_locale('LC_NUMERIC', 'fr_FR', 'de_DE')
+ def test_float_with_comma(self):
+ # set locale to something that doesn't use '.' for the decimal point
commit ff4d630818a3a50e77bbbd4064d106255c94b513
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Mon Oct 30 17:36:25 2017 +0100
Update to 3.5.4
Removed patches due to being upstream: 250, 259, 267, 269
Added patch 264 to fix test_pass_by_value on aarch64 arch.
Added patch 273 to skip a test failure with glibc >= 2.26.90
diff --git a/.gitignore b/.gitignore
index feece4d..d8377d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
Python-3.5.1.tar.xz
/Python-3.5.2.tar.xz
/Python-3.5.3.tar.xz
+/Python-3.5.4.tar.xz
diff --git a/00055-systemtap.patch b/00055-systemtap.patch
index a4f3869..ab7146b 100644
--- a/00055-systemtap.patch
+++ b/00055-systemtap.patch
@@ -2,7 +2,7 @@ diff --git a/configure.ac b/configure.ac
index f50a6c8..b0650a5 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -3277,6 +3277,23 @@ if test "$with_valgrind" != no; then
+@@ -3288,6 +3288,23 @@ if test "$with_valgrind" != no; then
OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT"
fi
@@ -39,7 +39,7 @@ index 0906ae0..4acd1cd 100755
THREADOBJ
LDLAST
USE_THREAD_MODULE
-@@ -835,6 +837,7 @@ with_doc_strings
+@@ -834,6 +836,7 @@ with_doc_strings
with_tsc
with_pymalloc
with_valgrind
@@ -47,7 +47,7 @@ index 0906ae0..4acd1cd 100755
with_fpectl
with_libm
with_libc
-@@ -1540,6 +1543,7 @@ Optional Packages:
+@@ -1528,6 +1531,7 @@ Optional Packages:
--with(out)-tsc enable/disable timestamp counter profile
--with(out)-pymalloc disable/enable specialized mallocs
--with-valgrind Enable Valgrind support
@@ -55,7 +55,7 @@ index 0906ae0..4acd1cd 100755
--with-fpectl enable SIGFPE catching
--with-libm=STRING math library
--with-libc=STRING C library
-@@ -11181,6 +11185,31 @@ fi
+@@ -11180,6 +11184,31 @@ fi
OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT"
fi
@@ -642,7 +642,7 @@ diff --git a/Makefile.pre.in b/Makefile.pre.in
index a88b7d5..3585b88 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
-@@ -415,6 +415,7 @@ PYTHON_OBJS= \
+@@ -383,6 +383,7 @@ PYTHON_OBJS= \
Python/formatter_unicode.o \
Python/fileutils.o \
Python/$(DYNLOADFILE) \
@@ -650,19 +650,19 @@ index a88b7d5..3585b88 100644
$(LIBOBJS) \
$(MACHDEP_OBJS) \
$(THREADOBJ)
-@@ -868,7 +869,8 @@ Objects/setobject.o: $(srcdir)/Objects/stringlib/eq.h
- $(OPCODETARGETS_H): $(OPCODETARGETGEN_FILES)
- $(PYTHON_FOR_GEN) $(OPCODETARGETGEN) $(OPCODETARGETS_H)
+@@ -864,7 +865,8 @@ Objects/setobject.o: $(srcdir)/Objects/stringlib/eq.h
+ $(PYTHON_FOR_REGEN) $(srcdir)/Python/makeopcodetargets.py \
+ $(srcdir)/Python/opcode_targets.h
--Python/ceval.o: $(OPCODETARGETS_H) $(srcdir)/Python/ceval_gil.h
-+Python/ceval.o: $(OPCODETARGETS_H) $(srcdir)/Python/ceval_gil.h \
+-Python/ceval.o: $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/ceval_gil.h
++Python/ceval.o: $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/ceval_gil.h \
+ $(srcdir)/Python/ceval_systemtap.h @SYSTEMTAPDEPS@
- Python/frozen.o: Python/importlib.h Python/importlib_external.h
+ Python/frozen.o: $(srcdir)/Python/importlib.h $(srcdir)/Python/importlib_external.h
-@@ -876,6 +878,13 @@ Objects/typeobject.o: Objects/typeslots.inc
- Objects/typeslots.inc: $(srcdir)/Include/typeslots.h $(srcdir)/Objects/typeslots.py
- $(PYTHON_FOR_GEN) $(srcdir)/Objects/typeslots.py < $(srcdir)/Include/typeslots.h Objects/typeslots.inc
+@@ -878,6 +880,13 @@ Objects/typeobject.o: Objects/typeslots.inc
+ < $(srcdir)/Include/typeslots.h \
+ $(srcdir)/Objects/typeslots.inc
+# Only needed with --with-systemtap; not a public header:
+$(srcdir)/Python/pysystemtap.h: $(srcdir)/Python/pysystemtap.d
@@ -674,7 +674,7 @@ index a88b7d5..3585b88 100644
############################################################################
# Header files
-@@ -1597,6 +1606,7 @@ clean: pycremoval
+@@ -1601,6 +1610,7 @@ clean: pycremoval
-rm -f Lib/lib2to3/*Grammar*.pickle
-rm -f Programs/_testembed Programs/_freeze_importlib
-find build -type f -a ! -name '*.gc??' -exec rm -f {} ';'
@@ -720,7 +720,7 @@ index 7b40518..0e49de5 100644
co = f->f_code;
names = co->co_names;
consts = co->co_consts;
-@@ -3640,6 +3646,11 @@ fast_yield:
+@@ -3678,6 +3684,11 @@ fast_yield:
/* pop frame */
exit_eval_frame:
diff --git a/00259-tolerate-legacy-invalid-bytecode.patch b/00259-tolerate-legacy-invalid-bytecode.patch
deleted file mode 100644
index 8ac62f7..0000000
--- a/00259-tolerate-legacy-invalid-bytecode.patch
+++ /dev/null
@@ -1,5689 +0,0 @@
-From 93602e3af70d3b9f98ae2da654b16b3382b68d50 Mon Sep 17 00:00:00 2001
-From: Nick Coghlan <ncoghlan(a)gmail.com>
-Date: Wed, 8 Mar 2017 16:41:01 +1000
-Subject: [PATCH] [3.5] bpo-29537: Tolerate legacy invalid bytecode (#169)
-
-bpo-27286 fixed a problem where BUILD_MAP_UNPACK_WITH_CALL could
-be emitted with an incorrect oparg value, causing the eval loop
-to access the wrong stack entry when attempting to read the
-function name.
-
-The associated magic number change caused significant problems when
-attempting to upgrade to 3.5.3 for anyone that relies on pre-cached
-bytecode remaining valid across maintenance releases.
-
-This patch restores the ability to import legacy bytecode generated
-by 3.5.0, 3.5.1 or 3.5.2, and modifies the eval loop to
-avoid any harmful consequences from the potentially malformed legacy
-bytecode.
-
-Original import patch by Petr Viktorin, eval loop patch by Serhiy Storchaka,
-and tests and integration by Nick Coghlan.
----
- Lib/importlib/_bootstrap_external.py | 28 +-
- Lib/importlib/util.py | 2 +-
- Lib/pkgutil.py | 5 +-
- Lib/pydoc.py | 7 +-
- Lib/test/test_extcall.py | 6 +-
- Lib/test/test_importlib/source/test_file_loader.py | 104 +
- Lib/test/test_unpack_ex.py | 2 +-
- Modules/zipimport.c | 11 +-
- Python/ceval.c | 85 +-
- Python/import.c | 10 +-
- Python/importlib_external.h | 5145 ++++++++++----------
- Python/pythonrun.c | 19 +-
- 12 files changed, 2817 insertions(+), 2607 deletions(-)
-
-diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
-index e54d691..506bb33 100644
---- a/Lib/importlib/_bootstrap_external.py
-+++ b/Lib/importlib/_bootstrap_external.py
-@@ -230,7 +230,7 @@ _code_type = type(_write_atomic.__code__)
- # Python 3.5b1 3330 (PEP 448: Additional Unpacking Generalizations)
- # Python 3.5b2 3340 (fix dictionary display evaluation order #11205)
- # Python 3.5b2 3350 (add GET_YIELD_FROM_ITER opcode #24400)
--# Python 3.5.2 3351 (fix BUILD_MAP_UNPACK_WITH_CALL opcode #27286)
-+# Python 3.5.3 3351 (fix BUILD_MAP_UNPACK_WITH_CALL opcode #27286)
- #
- # MAGIC must change whenever the bytecode emitted by the compiler may no
- # longer be understood by older implementations of the eval loop (usually
-@@ -242,6 +242,28 @@ _code_type = type(_write_atomic.__code__)
- MAGIC_NUMBER = (3351).to_bytes(2, 'little') + b'\r\n'
- _RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c
-
-+# Issue #29537: handle issue27286 bytecode incompatibility
-+#
-+# The magic number bump in Python 3.5.3 for issue27286 turned out to create
-+# significant backwards compatibility problems for redistributors and
-+# other folks that rely on the bytecode format remaining stable within a
-+# given maintenance release series. See http://bugs.python.org/issue29514
-+# for more discussion of the problems that the original change caused.
-+#
-+# The _BACKCOMPAT_MAGIC_NUMBER below and any other changes marked with
-+# "Issue #29537" comments allow Python 3.5.4+ to load bytecode files with both
-+# the original 3.5.0 magic number and those with the updated magic number used
-+# since 3.5.3.
-+#
-+# This is expected to be a one-off change used solely to restore legacy
-+# bytecode compatibility within the 3.5.x series, so it avoids any changes
-+# that would prompt a rebuild of C extension modules.
-+#
-+if _RAW_MAGIC_NUMBER != 168627479:
-+ _msg = 'Magic number mismatch (the issue27286 workaround is for 3.5 only)'
-+ raise SystemError(_msg)
-+_BACKCOMPAT_MAGIC_NUMBER = (3350).to_bytes(2, 'little') + b'\r\n'
-+
- _PYCACHE = '__pycache__'
- _OPT = 'opt-'
-
-@@ -446,7 +468,9 @@ def _validate_bytecode_header(data, source_stats=None, name=None, path=None):
- magic = data[:4]
- raw_timestamp = data[4:8]
- raw_size = data[8:12]
-- if magic != MAGIC_NUMBER:
-+ if (magic != MAGIC_NUMBER
-+ # Issue #29537: handle issue27286 bytecode incompatibility
-+ and magic != _BACKCOMPAT_MAGIC_NUMBER):
- message = 'bad magic number in {!r}: {!r}'.format(name, magic)
- _verbose_message('{}', message)
- raise ImportError(message, **exc_details)
-diff --git a/Lib/importlib/util.py b/Lib/importlib/util.py
-index e1fa07a..a15cf00 100644
---- a/Lib/importlib/util.py
-+++ b/Lib/importlib/util.py
-@@ -4,7 +4,7 @@ from ._bootstrap import module_from_spec
- from ._bootstrap import _resolve_name
- from ._bootstrap import spec_from_loader
- from ._bootstrap import _find_spec
--from ._bootstrap_external import MAGIC_NUMBER
-+from ._bootstrap_external import MAGIC_NUMBER, _BACKCOMPAT_MAGIC_NUMBER
- from ._bootstrap_external import cache_from_source
- from ._bootstrap_external import decode_source
- from ._bootstrap_external import source_from_cache
-diff --git a/Lib/pkgutil.py b/Lib/pkgutil.py
-index 81d418d..9d1879a 100644
---- a/Lib/pkgutil.py
-+++ b/Lib/pkgutil.py
-@@ -37,7 +37,10 @@ def read_code(stream):
- import marshal
-
- magic = stream.read(4)
-- if magic != importlib.util.MAGIC_NUMBER:
-+ if (magic != importlib.util.MAGIC_NUMBER
-+ # Issue #29537: handle issue27286 bytecode incompatibility
-+ # See Lib/importlib/_bootstrap_external.py
-+ and magic != importlib.util._BACKCOMPAT_MAGIC_NUMBER):
- return None
-
- stream.read(8) # Skip timestamp and size
-diff --git a/Lib/pydoc.py b/Lib/pydoc.py
-index 0d0d0ab..729efba 100755
---- a/Lib/pydoc.py
-+++ b/Lib/pydoc.py
-@@ -289,7 +289,12 @@ def importfile(path):
- """Import a Python source file or compiled file given its path."""
- magic = importlib.util.MAGIC_NUMBER
- with open(path, 'rb') as file:
-- is_bytecode = magic == file.read(len(magic))
-+ first_bytes = file.read(len(magic))
-+ is_bytecode = first_bytes in (magic,
-+ # Issue #29537: handle issue27286
-+ # bytecode incompatibility
-+ # See Lib/importlib/_bootstrap_external.py
-+ importlib.util._BACKCOMPAT_MAGIC_NUMBER)
- filename = os.path.basename(path)
- name, ext = os.path.splitext(filename)
- if is_bytecode:
-diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py
-index 9cb0d38..94501de 100644
---- a/Lib/test/test_extcall.py
-+++ b/Lib/test/test_extcall.py
-@@ -52,15 +52,15 @@ Here we add keyword arguments
- >>> f(1, 2, **{'a': -1, 'b': 5}, **{'a': 4, 'c': 6})
- Traceback (most recent call last):
- ...
-- TypeError: f() got multiple values for keyword argument 'a'
-+ TypeError: function got multiple values for keyword argument 'a'
- >>> f(1, 2, **{'a': -1, 'b': 5}, a=4, c=6)
- Traceback (most recent call last):
- ...
-- TypeError: f() got multiple values for keyword argument 'a'
-+ TypeError: function got multiple values for keyword argument 'a'
- >>> f(1, 2, a=3, **{'a': 4}, **{'a': 5})
- Traceback (most recent call last):
- ...
-- TypeError: f() got multiple values for keyword argument 'a'
-+ TypeError: function got multiple values for keyword argument 'a'
- >>> f(1, 2, 3, *[4, 5], **{'a':6, 'b':7})
- (1, 2, 3, 4, 5) {'a': 6, 'b': 7}
- >>> f(1, 2, 3, x=4, y=5, *(6, 7), **{'a':8, 'b': 9})
-diff --git a/Lib/test/test_importlib/source/test_file_loader.py b/Lib/test/test_importlib/source/test_file_loader.py
-index 73f4c62..6d5a886 100644
---- a/Lib/test/test_importlib/source/test_file_loader.py
-+++ b/Lib/test/test_importlib/source/test_file_loader.py
-@@ -603,5 +603,109 @@ class SourcelessLoaderBadBytecodeTestPEP302(SourcelessLoaderBadBytecodeTest,
- util=importlib_util)
-
-
-+###########################################################################
-+# Issue #29537: Test backwards compatibility with legacy 3.5.0/1/2 bytecode
-+###########################################################################
-+
-+class LegacyBytecodeTest:
-+
-+ def _test_legacy_magic(self, test, *, del_source=False):
-+ # Replace the default magic number with one copied from a pyc file
-+ # generated by Python 3.5.2
-+ with util.create_modules('_temp') as mapping:
-+ bc_path = self.manipulate_bytecode('_temp', mapping,
-+ lambda bc: b'\x16\r\r\n' + bc[4:])
-+ test('_temp', mapping, bc_path)
-+
-+LegacyBytecodeTestPEP451 = BadBytecodeTestPEP451
-+LegacyBytecodeTestPEP302 = BadBytecodeTestPEP302
-+
-+# SourceLoader via both PEP 451 and 302 hooks
-+
-+class SourceLoaderLegacyBytecodeTest(LegacyBytecodeTest):
-+
-+ @classmethod
-+ def setUpClass(cls):
-+ cls.loader = cls.machinery.SourceFileLoader
-+
-+ @util.writes_bytecode_files
-+ def test_legacy_magic(self):
-+ # The magic number from 3.5.0/1/2 should be accepted as is
-+ def test(name, mapping, bytecode_path):
-+ self.import_(mapping[name], name)
-+ with open(bytecode_path, 'rb') as bytecode_file:
-+ self.assertEqual(bytecode_file.read(4),
-+ self.util._BACKCOMPAT_MAGIC_NUMBER)
-+
-+ self._test_legacy_magic(test)
-+
-+
-+class SourceLoaderLegacyBytecodeTestPEP451(
-+ SourceLoaderLegacyBytecodeTest, LegacyBytecodeTestPEP451):
-+ pass
-+
-+
-+(Frozen_SourceLegacyBytecodePEP451,
-+ Source_SourceLegacyBytecodePEP451
-+ ) = util.test_both(SourceLoaderLegacyBytecodeTestPEP451, importlib=importlib,
-+ machinery=machinery, abc=importlib_abc,
-+ util=importlib_util)
-+
-+
-+class SourceLoaderLegacyBytecodeTestPEP302(
-+ SourceLoaderLegacyBytecodeTest, LegacyBytecodeTestPEP302):
-+ pass
-+
-+
-+(Frozen_SourceLegacyBytecodePEP302,
-+ Source_SourceLegacyBytecodePEP302
-+ ) = util.test_both(SourceLoaderLegacyBytecodeTestPEP302, importlib=importlib,
-+ machinery=machinery, abc=importlib_abc,
-+ util=importlib_util)
-+
-+# SourcelessLoader via both PEP 451 and 302 hooks
-+
-+class SourcelessLoaderLegacyBytecodeTest(LegacyBytecodeTest):
-+
-+ @classmethod
-+ def setUpClass(cls):
-+ cls.loader = cls.machinery.SourcelessFileLoader
-+
-+
-+ @util.writes_bytecode_files
-+ def test_legacy_magic(self):
-+ # The magic number from 3.5.0/1/2 should be accepted as is
-+ def test(name, mapping, bytecode_path):
-+ self.import_(bytecode_path, name)
-+ with open(bytecode_path, 'rb') as bytecode_file:
-+ self.assertEqual(bytecode_file.read(4),
-+ self.util._BACKCOMPAT_MAGIC_NUMBER)
-+
-+ self._test_legacy_magic(test)
-+
-+class SourcelessLoaderLegacyBytecodeTestPEP451(
-+ SourcelessLoaderLegacyBytecodeTest, LegacyBytecodeTestPEP451):
-+ pass
-+
-+(Frozen_SourcelessLegacyBytecodePEP451,
-+ Source_SourcelessLegacyBytecodePEP451
-+ ) = util.test_both(SourcelessLoaderLegacyBytecodeTestPEP451, importlib=importlib,
-+ machinery=machinery, abc=importlib_abc,
-+ util=importlib_util)
-+
-+
-+class SourcelessLoaderLegacyBytecodeTestPEP302(SourcelessLoaderLegacyBytecodeTest,
-+ LegacyBytecodeTestPEP302):
-+ pass
-+
-+
-+(Frozen_SourcelessLegacyBytecodePEP302,
-+ Source_SourcelessLegacyBytecodePEP302
-+ ) = util.test_both(SourcelessLoaderLegacyBytecodeTestPEP302, importlib=importlib,
-+ machinery=machinery, abc=importlib_abc,
-+ util=importlib_util)
-+
-+# End of Issue #29537 legacy bytecode compatibility tests
-+
- if __name__ == '__main__':
- unittest.main()
-diff --git a/Lib/test/test_unpack_ex.py b/Lib/test/test_unpack_ex.py
-index 74346b4..43cf638 100644
---- a/Lib/test/test_unpack_ex.py
-+++ b/Lib/test/test_unpack_ex.py
-@@ -251,7 +251,7 @@ Overridden parameters
- >>> f(x=5, **{'x': 3}, **{'x': 2})
- Traceback (most recent call last):
- ...
-- TypeError: f() got multiple values for keyword argument 'x'
-+ TypeError: function got multiple values for keyword argument 'x'
-
- >>> f(**{1: 3}, **{1: 5})
- Traceback (most recent call last):
-diff --git a/Modules/zipimport.c b/Modules/zipimport.c
-index 7473a8f..a693fbb 100644
---- a/Modules/zipimport.c
-+++ b/Modules/zipimport.c
-@@ -1263,6 +1263,11 @@ eq_mtime(time_t t1, time_t t2)
- return d <= 1;
- }
-
-+/* Issue #29537: handle issue27286 bytecode incompatibility
-+ * See Lib/importlib/_bootstrap_external.py for general discussion
-+ */
-+extern PY_UINT32_T _Py_BACKCOMPAT_MAGIC_NUMBER;
-+
- /* Given the contents of a .py[co] file in a buffer, unmarshal the data
- and return the code object. Return None if it the magic word doesn't
- match (we do this instead of raising an exception as we fall back
-@@ -1274,6 +1279,7 @@ unmarshal_code(PyObject *pathname, PyObject *data, time_t mtime)
- PyObject *code;
- unsigned char *buf = (unsigned char *)PyBytes_AsString(data);
- Py_ssize_t size = PyBytes_Size(data);
-+ PY_UINT32_T magic;
-
- if (size < 12) {
- PyErr_SetString(ZipImportError,
-@@ -1281,7 +1287,10 @@ unmarshal_code(PyObject *pathname, PyObject *data, time_t mtime)
- return NULL;
- }
-
-- if (get_uint32(buf) != (unsigned int)PyImport_GetMagicNumber()) {
-+ magic = get_uint32(buf);
-+ if (magic != (unsigned int)PyImport_GetMagicNumber()
-+ /* Issue #29537: handle issue27286 bytecode incompatibility */
-+ && magic != _Py_BACKCOMPAT_MAGIC_NUMBER) {
- if (Py_VerboseFlag) {
- PySys_FormatStderr("# %R has bad magic\n",
- pathname);
-diff --git a/Python/ceval.c b/Python/ceval.c
-index 62badeb..9ae8653 100644
---- a/Python/ceval.c
-+++ b/Python/ceval.c
-@@ -2672,14 +2672,22 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
- if (PyErr_ExceptionMatches(PyExc_AttributeError) ||
- !PyMapping_Check(arg)) {
- int function_location = (oparg>>8) & 0xff;
-- PyObject *func = (
-- PEEK(function_location + num_maps));
-- PyErr_Format(PyExc_TypeError,
-- "%.200s%.200s argument after ** "
-- "must be a mapping, not %.200s",
-- PyEval_GetFuncName(func),
-- PyEval_GetFuncDesc(func),
-- arg->ob_type->tp_name);
-+ if (function_location == 1) {
-+ PyObject *func = (
-+ PEEK(function_location + num_maps));
-+ PyErr_Format(PyExc_TypeError,
-+ "%.200s%.200s argument after ** "
-+ "must be a mapping, not %.200s",
-+ PyEval_GetFuncName(func),
-+ PyEval_GetFuncDesc(func),
-+ arg->ob_type->tp_name);
-+ }
-+ else {
-+ PyErr_Format(PyExc_TypeError,
-+ "argument after ** "
-+ "must be a mapping, not %.200s",
-+ arg->ob_type->tp_name);
-+ }
- }
- Py_DECREF(sum);
- goto error;
-@@ -2689,21 +2697,34 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
- Py_ssize_t idx = 0;
- PyObject *key;
- int function_location = (oparg>>8) & 0xff;
-- PyObject *func = PEEK(function_location + num_maps);
- Py_hash_t hash;
- _PySet_NextEntry(intersection, &idx, &key, &hash);
-- if (!PyUnicode_Check(key)) {
-- PyErr_Format(PyExc_TypeError,
-- "%.200s%.200s keywords must be strings",
-- PyEval_GetFuncName(func),
-- PyEval_GetFuncDesc(func));
-- } else {
-- PyErr_Format(PyExc_TypeError,
-- "%.200s%.200s got multiple "
-- "values for keyword argument '%U'",
-- PyEval_GetFuncName(func),
-- PyEval_GetFuncDesc(func),
-- key);
-+ if (function_location == 1) {
-+ PyObject *func = PEEK(function_location + num_maps);
-+ if (!PyUnicode_Check(key)) {
-+ PyErr_Format(PyExc_TypeError,
-+ "%.200s%.200s keywords must be strings",
-+ PyEval_GetFuncName(func),
-+ PyEval_GetFuncDesc(func));
-+ } else {
-+ PyErr_Format(PyExc_TypeError,
-+ "%.200s%.200s got multiple "
-+ "values for keyword argument '%U'",
-+ PyEval_GetFuncName(func),
-+ PyEval_GetFuncDesc(func),
-+ key);
-+ }
-+ }
-+ else {
-+ if (!PyUnicode_Check(key)) {
-+ PyErr_SetString(PyExc_TypeError,
-+ "keywords must be strings");
-+ } else {
-+ PyErr_Format(PyExc_TypeError,
-+ "function got multiple "
-+ "values for keyword argument '%U'",
-+ key);
-+ }
- }
- Py_DECREF(intersection);
- Py_DECREF(sum);
-@@ -2716,13 +2737,21 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
- if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
- if (with_call) {
- int function_location = (oparg>>8) & 0xff;
-- PyObject *func = PEEK(function_location + num_maps);
-- PyErr_Format(PyExc_TypeError,
-- "%.200s%.200s argument after ** "
-- "must be a mapping, not %.200s",
-- PyEval_GetFuncName(func),
-- PyEval_GetFuncDesc(func),
-- arg->ob_type->tp_name);
-+ if (function_location == 1) {
-+ PyObject *func = PEEK(function_location + num_maps);
-+ PyErr_Format(PyExc_TypeError,
-+ "%.200s%.200s argument after ** "
-+ "must be a mapping, not %.200s",
-+ PyEval_GetFuncName(func),
-+ PyEval_GetFuncDesc(func),
-+ arg->ob_type->tp_name);
-+ }
-+ else {
-+ PyErr_Format(PyExc_TypeError,
-+ "argument after ** "
-+ "must be a mapping, not %.200s",
-+ arg->ob_type->tp_name);
-+ }
- }
- else {
- PyErr_Format(PyExc_TypeError,
-diff --git a/Python/import.c b/Python/import.c
-index 3579273..ea8bc00 100644
---- a/Python/import.c
-+++ b/Python/import.c
-@@ -483,9 +483,17 @@ PyImport_Cleanup(void)
- #undef STORE_MODULE_WEAKREF
- }
-
-+/* Issue #29537: handle issue27286 bytecode incompatibility
-+ *
-+ * In order to avoid forcing recompilation of all extension modules, we export
-+ * the legacy 3.5.0 magic number here rather than putting it in a header file.
-+ *
-+ * See Lib/importlib/_bootstrap_external.py for general discussion
-+ */
-+PY_UINT32_T _Py_BACKCOMPAT_MAGIC_NUMBER = 168627478;
-+PY_UINT32_T _Py_BACKCOMPAT_HALF_MAGIC = 3350;
-
- /* Helper for pythonrun.c -- return magic number and tag. */
--
- long
- PyImport_GetMagicNumber(void)
- {
-diff --git a/Python/importlib_external.h b/Python/importlib_external.h
-index 5ee843a..f337c8b 100644
---- a/Python/importlib_external.h
-+++ b/Python/importlib_external.h
-@@ -1,8 +1,8 @@
- /* Auto-generated by Programs/_freeze_importlib.c */
- const unsigned char _Py_M__importlib_external[] = {
- 99,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,
-- 0,64,0,0,0,115,244,2,0,0,100,0,0,90,0,0,
-- 100,96,0,90,1,0,100,97,0,90,2,0,101,2,0,101,
-+ 0,64,0,0,0,115,40,3,0,0,100,0,0,90,0,0,
-+ 100,99,0,90,1,0,100,100,0,90,2,0,101,2,0,101,
- 1,0,23,90,3,0,100,4,0,100,5,0,132,0,0,90,
- 4,0,100,6,0,100,7,0,132,0,0,90,5,0,100,8,
- 0,100,9,0,132,0,0,90,6,0,100,10,0,100,11,0,
-@@ -14,2592 +14,2605 @@ const unsigned char _Py_M__importlib_external[] = {
- 0,101,14,0,101,13,0,106,15,0,131,1,0,90,16,0,
- 100,25,0,106,17,0,100,26,0,100,27,0,131,2,0,100,
- 28,0,23,90,18,0,101,19,0,106,20,0,101,18,0,100,
-- 27,0,131,2,0,90,21,0,100,29,0,90,22,0,100,30,
-- 0,90,23,0,100,31,0,103,1,0,90,24,0,100,32,0,
-- 103,1,0,90,25,0,101,25,0,4,90,26,0,90,27,0,
-- 100,33,0,100,34,0,100,33,0,100,35,0,100,36,0,132,
-- 1,1,90,28,0,100,37,0,100,38,0,132,0,0,90,29,
-- 0,100,39,0,100,40,0,132,0,0,90,30,0,100,41,0,
-- 100,42,0,132,0,0,90,31,0,100,43,0,100,44,0,132,
-- 0,0,90,32,0,100,45,0,100,46,0,100,47,0,100,48,
-- 0,132,0,1,90,33,0,100,49,0,100,50,0,132,0,0,
-- 90,34,0,100,51,0,100,52,0,132,0,0,90,35,0,100,
-- 33,0,100,33,0,100,33,0,100,53,0,100,54,0,132,3,
-- 0,90,36,0,100,33,0,100,33,0,100,33,0,100,55,0,
-- 100,56,0,132,3,0,90,37,0,100,57,0,100,57,0,100,
-- 58,0,100,59,0,132,2,0,90,38,0,100,60,0,100,61,
-- 0,132,0,0,90,39,0,101,40,0,131,0,0,90,41,0,
-- 100,33,0,100,62,0,100,33,0,100,63,0,101,41,0,100,
-- 64,0,100,65,0,132,1,2,90,42,0,71,100,66,0,100,
-- 67,0,132,0,0,100,67,0,131,2,0,90,43,0,71,100,
-- 68,0,100,69,0,132,0,0,100,69,0,131,2,0,90,44,
-- 0,71,100,70,0,100,71,0,132,0,0,100,71,0,101,44,
-- 0,131,3,0,90,45,0,71,100,72,0,100,73,0,132,0,
-- 0,100,73,0,131,2,0,90,46,0,71,100,74,0,100,75,
-- 0,132,0,0,100,75,0,101,46,0,101,45,0,131,4,0,
-- 90,47,0,71,100,76,0,100,77,0,132,0,0,100,77,0,
-- 101,46,0,101,44,0,131,4,0,90,48,0,103,0,0,90,
-- 49,0,71,100,78,0,100,79,0,132,0,0,100,79,0,101,
-- 46,0,101,44,0,131,4,0,90,50,0,71,100,80,0,100,
-- 81,0,132,0,0,100,81,0,131,2,0,90,51,0,71,100,
-- 82,0,100,83,0,132,0,0,100,83,0,131,2,0,90,52,
-- 0,71,100,84,0,100,85,0,132,0,0,100,85,0,131,2,
-- 0,90,53,0,71,100,86,0,100,87,0,132,0,0,100,87,
-- 0,131,2,0,90,54,0,100,33,0,100,88,0,100,89,0,
-- 132,1,0,90,55,0,100,90,0,100,91,0,132,0,0,90,
-- 56,0,100,92,0,100,93,0,132,0,0,90,57,0,100,94,
-- 0,100,95,0,132,0,0,90,58,0,100,33,0,83,41,98,
-- 97,94,1,0,0,67,111,114,101,32,105,109,112,108,101,109,
-- 101,110,116,97,116,105,111,110,32,111,102,32,112,97,116,104,
-- 45,98,97,115,101,100,32,105,109,112,111,114,116,46,10,10,
-- 84,104,105,115,32,109,111,100,117,108,101,32,105,115,32,78,
-- 79,84,32,109,101,97,110,116,32,116,111,32,98,101,32,100,
-- 105,114,101,99,116,108,121,32,105,109,112,111,114,116,101,100,
-- 33,32,73,116,32,104,97,115,32,98,101,101,110,32,100,101,
-- 115,105,103,110,101,100,32,115,117,99,104,10,116,104,97,116,
-- 32,105,116,32,99,97,110,32,98,101,32,98,111,111,116,115,
-- 116,114,97,112,112,101,100,32,105,110,116,111,32,80,121,116,
-- 104,111,110,32,97,115,32,116,104,101,32,105,109,112,108,101,
-- 109,101,110,116,97,116,105,111,110,32,111,102,32,105,109,112,
-- 111,114,116,46,32,65,115,10,115,117,99,104,32,105,116,32,
-- 114,101,113,117,105,114,101,115,32,116,104,101,32,105,110,106,
-- 101,99,116,105,111,110,32,111,102,32,115,112,101,99,105,102,
-- 105,99,32,109,111,100,117,108,101,115,32,97,110,100,32,97,
-- 116,116,114,105,98,117,116,101,115,32,105,110,32,111,114,100,
-- 101,114,32,116,111,10,119,111,114,107,46,32,79,110,101,32,
-- 115,104,111,117,108,100,32,117,115,101,32,105,109,112,111,114,
-- 116,108,105,98,32,97,115,32,116,104,101,32,112,117,98,108,
-- 105,99,45,102,97,99,105,110,103,32,118,101,114,115,105,111,
-- 110,32,111,102,32,116,104,105,115,32,109,111,100,117,108,101,
-- 46,10,10,218,3,119,105,110,218,6,99,121,103,119,105,110,
-- 218,6,100,97,114,119,105,110,99,0,0,0,0,0,0,0,
-- 0,1,0,0,0,3,0,0,0,3,0,0,0,115,88,0,
-- 0,0,116,0,0,106,1,0,106,2,0,116,3,0,131,1,
-- 0,114,72,0,116,0,0,106,1,0,106,2,0,116,4,0,
-- 131,1,0,114,45,0,100,1,0,137,0,0,110,6,0,100,
-- 2,0,137,0,0,135,0,0,102,1,0,100,3,0,100,4,
-- 0,134,0,0,125,0,0,110,12,0,100,5,0,100,4,0,
-- 132,0,0,125,0,0,124,0,0,83,41,6,78,90,12,80,
-- 89,84,72,79,78,67,65,83,69,79,75,115,12,0,0,0,
-- 80,89,84,72,79,78,67,65,83,69,79,75,99,0,0,0,
-- 0,0,0,0,0,0,0,0,0,2,0,0,0,19,0,0,
-- 0,115,13,0,0,0,136,0,0,116,0,0,106,1,0,107,
-- 6,0,83,41,1,122,53,84,114,117,101,32,105,102,32,102,
-+ 27,0,131,2,0,90,21,0,101,21,0,100,29,0,107,3,
-+ 0,114,236,0,100,30,0,90,22,0,101,23,0,101,22,0,
-+ 131,1,0,130,1,0,100,31,0,106,17,0,100,26,0,100,
-+ 27,0,131,2,0,100,28,0,23,90,24,0,100,32,0,90,
-+ 25,0,100,33,0,90,26,0,100,34,0,103,1,0,90,27,
-+ 0,100,35,0,103,1,0,90,28,0,101,28,0,4,90,29,
-+ 0,90,30,0,100,36,0,100,37,0,100,36,0,100,38,0,
-+ 100,39,0,132,1,1,90,31,0,100,40,0,100,41,0,132,
-+ 0,0,90,32,0,100,42,0,100,43,0,132,0,0,90,33,
-+ 0,100,44,0,100,45,0,132,0,0,90,34,0,100,46,0,
-+ 100,47,0,132,0,0,90,35,0,100,48,0,100,49,0,100,
-+ 50,0,100,51,0,132,0,1,90,36,0,100,52,0,100,53,
-+ 0,132,0,0,90,37,0,100,54,0,100,55,0,132,0,0,
-+ 90,38,0,100,36,0,100,36,0,100,36,0,100,56,0,100,
-+ 57,0,132,3,0,90,39,0,100,36,0,100,36,0,100,36,
-+ 0,100,58,0,100,59,0,132,3,0,90,40,0,100,60,0,
-+ 100,60,0,100,61,0,100,62,0,132,2,0,90,41,0,100,
-+ 63,0,100,64,0,132,0,0,90,42,0,101,43,0,131,0,
-+ 0,90,44,0,100,36,0,100,65,0,100,36,0,100,66,0,
-+ 101,44,0,100,67,0,100,68,0,132,1,2,90,45,0,71,
-+ 100,69,0,100,70,0,132,0,0,100,70,0,131,2,0,90,
-+ 46,0,71,100,71,0,100,72,0,132,0,0,100,72,0,131,
-+ 2,0,90,47,0,71,100,73,0,100,74,0,132,0,0,100,
-+ 74,0,101,47,0,131,3,0,90,48,0,71,100,75,0,100,
-+ 76,0,132,0,0,100,76,0,131,2,0,90,49,0,71,100,
-+ 77,0,100,78,0,132,0,0,100,78,0,101,49,0,101,48,
-+ 0,131,4,0,90,50,0,71,100,79,0,100,80,0,132,0,
-+ 0,100,80,0,101,49,0,101,47,0,131,4,0,90,51,0,
-+ 103,0,0,90,52,0,71,100,81,0,100,82,0,132,0,0,
-+ 100,82,0,101,49,0,101,47,0,131,4,0,90,53,0,71,
-+ 100,83,0,100,84,0,132,0,0,100,84,0,131,2,0,90,
-+ 54,0,71,100,85,0,100,86,0,132,0,0,100,86,0,131,
-+ 2,0,90,55,0,71,100,87,0,100,88,0,132,0,0,100,
-+ 88,0,131,2,0,90,56,0,71,100,89,0,100,90,0,132,
-+ 0,0,100,90,0,131,2,0,90,57,0,100,36,0,100,91,
-+ 0,100,92,0,132,1,0,90,58,0,100,93,0,100,94,0,
-+ 132,0,0,90,59,0,100,95,0,100,96,0,132,0,0,90,
-+ 60,0,100,97,0,100,98,0,132,0,0,90,61,0,100,36,
-+ 0,83,41,101,97,94,1,0,0,67,111,114,101,32,105,109,
-+ 112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,
-+ 112,97,116,104,45,98,97,115,101,100,32,105,109,112,111,114,
-+ 116,46,10,10,84,104,105,115,32,109,111,100,117,108,101,32,
-+ 105,115,32,78,79,84,32,109,101,97,110,116,32,116,111,32,
-+ 98,101,32,100,105,114,101,99,116,108,121,32,105,109,112,111,
-+ 114,116,101,100,33,32,73,116,32,104,97,115,32,98,101,101,
-+ 110,32,100,101,115,105,103,110,101,100,32,115,117,99,104,10,
-+ 116,104,97,116,32,105,116,32,99,97,110,32,98,101,32,98,
-+ 111,111,116,115,116,114,97,112,112,101,100,32,105,110,116,111,
-+ 32,80,121,116,104,111,110,32,97,115,32,116,104,101,32,105,
-+ 109,112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,
-+ 32,105,109,112,111,114,116,46,32,65,115,10,115,117,99,104,
-+ 32,105,116,32,114,101,113,117,105,114,101,115,32,116,104,101,
-+ 32,105,110,106,101,99,116,105,111,110,32,111,102,32,115,112,
-+ 101,99,105,102,105,99,32,109,111,100,117,108,101,115,32,97,
-+ 110,100,32,97,116,116,114,105,98,117,116,101,115,32,105,110,
-+ 32,111,114,100,101,114,32,116,111,10,119,111,114,107,46,32,
-+ 79,110,101,32,115,104,111,117,108,100,32,117,115,101,32,105,
-+ 109,112,111,114,116,108,105,98,32,97,115,32,116,104,101,32,
-+ 112,117,98,108,105,99,45,102,97,99,105,110,103,32,118,101,
-+ 114,115,105,111,110,32,111,102,32,116,104,105,115,32,109,111,
-+ 100,117,108,101,46,10,10,218,3,119,105,110,218,6,99,121,
-+ 103,119,105,110,218,6,100,97,114,119,105,110,99,0,0,0,
-+ 0,0,0,0,0,1,0,0,0,3,0,0,0,3,0,0,
-+ 0,115,88,0,0,0,116,0,0,106,1,0,106,2,0,116,
-+ 3,0,131,1,0,114,72,0,116,0,0,106,1,0,106,2,
-+ 0,116,4,0,131,1,0,114,45,0,100,1,0,137,0,0,
-+ 110,6,0,100,2,0,137,0,0,135,0,0,102,1,0,100,
-+ 3,0,100,4,0,134,0,0,125,0,0,110,12,0,100,5,
-+ 0,100,4,0,132,0,0,125,0,0,124,0,0,83,41,6,
-+ 78,90,12,80,89,84,72,79,78,67,65,83,69,79,75,115,
-+ 12,0,0,0,80,89,84,72,79,78,67,65,83,69,79,75,
-+ 99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
-+ 0,19,0,0,0,115,13,0,0,0,136,0,0,116,0,0,
-+ 106,1,0,107,6,0,83,41,1,122,53,84,114,117,101,32,
-+ 105,102,32,102,105,108,101,110,97,109,101,115,32,109,117,115,
-+ 116,32,98,101,32,99,104,101,99,107,101,100,32,99,97,115,
-+ 101,45,105,110,115,101,110,115,105,116,105,118,101,108,121,46,
-+ 41,2,218,3,95,111,115,90,7,101,110,118,105,114,111,110,
-+ 169,0,41,1,218,3,107,101,121,114,4,0,0,0,250,38,
-+ 60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
-+ 98,46,95,98,111,111,116,115,116,114,97,112,95,101,120,116,
-+ 101,114,110,97,108,62,218,11,95,114,101,108,97,120,95,99,
-+ 97,115,101,37,0,0,0,115,2,0,0,0,0,2,122,37,
-+ 95,109,97,107,101,95,114,101,108,97,120,95,99,97,115,101,
-+ 46,60,108,111,99,97,108,115,62,46,95,114,101,108,97,120,
-+ 95,99,97,115,101,99,0,0,0,0,0,0,0,0,0,0,
-+ 0,0,1,0,0,0,83,0,0,0,115,4,0,0,0,100,
-+ 1,0,83,41,2,122,53,84,114,117,101,32,105,102,32,102,
- 105,108,101,110,97,109,101,115,32,109,117,115,116,32,98,101,
- 32,99,104,101,99,107,101,100,32,99,97,115,101,45,105,110,
-- 115,101,110,115,105,116,105,118,101,108,121,46,41,2,218,3,
-- 95,111,115,90,7,101,110,118,105,114,111,110,169,0,41,1,
-- 218,3,107,101,121,114,4,0,0,0,250,38,60,102,114,111,
-- 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
-- 111,111,116,115,116,114,97,112,95,101,120,116,101,114,110,97,
-- 108,62,218,11,95,114,101,108,97,120,95,99,97,115,101,37,
-- 0,0,0,115,2,0,0,0,0,2,122,37,95,109,97,107,
-- 101,95,114,101,108,97,120,95,99,97,115,101,46,60,108,111,
-- 99,97,108,115,62,46,95,114,101,108,97,120,95,99,97,115,
-- 101,99,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
-- 0,0,83,0,0,0,115,4,0,0,0,100,1,0,83,41,
-- 2,122,53,84,114,117,101,32,105,102,32,102,105,108,101,110,
-- 97,109,101,115,32,109,117,115,116,32,98,101,32,99,104,101,
-- 99,107,101,100,32,99,97,115,101,45,105,110,115,101,110,115,
-- 105,116,105,118,101,108,121,46,70,114,4,0,0,0,114,4,
-+ 115,101,110,115,105,116,105,118,101,108,121,46,70,114,4,0,
-+ 0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,
-+ 0,114,6,0,0,0,114,7,0,0,0,41,0,0,0,115,
-+ 2,0,0,0,0,2,41,5,218,3,115,121,115,218,8,112,
-+ 108,97,116,102,111,114,109,218,10,115,116,97,114,116,115,119,
-+ 105,116,104,218,27,95,67,65,83,69,95,73,78,83,69,78,
-+ 83,73,84,73,86,69,95,80,76,65,84,70,79,82,77,83,
-+ 218,35,95,67,65,83,69,95,73,78,83,69,78,83,73,84,
-+ 73,86,69,95,80,76,65,84,70,79,82,77,83,95,83,84,
-+ 82,95,75,69,89,41,1,114,7,0,0,0,114,4,0,0,
-+ 0,41,1,114,5,0,0,0,114,6,0,0,0,218,16,95,
-+ 109,97,107,101,95,114,101,108,97,120,95,99,97,115,101,30,
-+ 0,0,0,115,14,0,0,0,0,1,18,1,18,1,9,2,
-+ 6,2,21,4,12,3,114,13,0,0,0,99,1,0,0,0,
-+ 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
-+ 115,26,0,0,0,116,0,0,124,0,0,131,1,0,100,1,
-+ 0,64,106,1,0,100,2,0,100,3,0,131,2,0,83,41,
-+ 4,122,42,67,111,110,118,101,114,116,32,97,32,51,50,45,
-+ 98,105,116,32,105,110,116,101,103,101,114,32,116,111,32,108,
-+ 105,116,116,108,101,45,101,110,100,105,97,110,46,108,3,0,
-+ 0,0,255,127,255,127,3,0,233,4,0,0,0,218,6,108,
-+ 105,116,116,108,101,41,2,218,3,105,110,116,218,8,116,111,
-+ 95,98,121,116,101,115,41,1,218,1,120,114,4,0,0,0,
-+ 114,4,0,0,0,114,6,0,0,0,218,7,95,119,95,108,
-+ 111,110,103,47,0,0,0,115,2,0,0,0,0,2,114,19,
-+ 0,0,0,99,1,0,0,0,0,0,0,0,1,0,0,0,
-+ 3,0,0,0,67,0,0,0,115,16,0,0,0,116,0,0,
-+ 106,1,0,124,0,0,100,1,0,131,2,0,83,41,2,122,
-+ 47,67,111,110,118,101,114,116,32,52,32,98,121,116,101,115,
-+ 32,105,110,32,108,105,116,116,108,101,45,101,110,100,105,97,
-+ 110,32,116,111,32,97,110,32,105,110,116,101,103,101,114,46,
-+ 114,15,0,0,0,41,2,114,16,0,0,0,218,10,102,114,
-+ 111,109,95,98,121,116,101,115,41,1,90,9,105,110,116,95,
-+ 98,121,116,101,115,114,4,0,0,0,114,4,0,0,0,114,
-+ 6,0,0,0,218,7,95,114,95,108,111,110,103,52,0,0,
-+ 0,115,2,0,0,0,0,2,114,21,0,0,0,99,0,0,
-+ 0,0,0,0,0,0,1,0,0,0,3,0,0,0,71,0,
-+ 0,0,115,26,0,0,0,116,0,0,106,1,0,100,1,0,
-+ 100,2,0,132,0,0,124,0,0,68,131,1,0,131,1,0,
-+ 83,41,3,122,31,82,101,112,108,97,99,101,109,101,110,116,
-+ 32,102,111,114,32,111,115,46,112,97,116,104,46,106,111,105,
-+ 110,40,41,46,99,1,0,0,0,0,0,0,0,2,0,0,
-+ 0,4,0,0,0,83,0,0,0,115,37,0,0,0,103,0,
-+ 0,124,0,0,93,27,0,125,1,0,124,1,0,114,6,0,
-+ 124,1,0,106,0,0,116,1,0,131,1,0,145,2,0,113,
-+ 6,0,83,114,4,0,0,0,41,2,218,6,114,115,116,114,
-+ 105,112,218,15,112,97,116,104,95,115,101,112,97,114,97,116,
-+ 111,114,115,41,2,218,2,46,48,218,4,112,97,114,116,114,
-+ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,250,10,
-+ 60,108,105,115,116,99,111,109,112,62,59,0,0,0,115,2,
-+ 0,0,0,9,1,122,30,95,112,97,116,104,95,106,111,105,
-+ 110,46,60,108,111,99,97,108,115,62,46,60,108,105,115,116,
-+ 99,111,109,112,62,41,2,218,8,112,97,116,104,95,115,101,
-+ 112,218,4,106,111,105,110,41,1,218,10,112,97,116,104,95,
-+ 112,97,114,116,115,114,4,0,0,0,114,4,0,0,0,114,
-+ 6,0,0,0,218,10,95,112,97,116,104,95,106,111,105,110,
-+ 57,0,0,0,115,4,0,0,0,0,2,15,1,114,30,0,
-+ 0,0,99,1,0,0,0,0,0,0,0,5,0,0,0,5,
-+ 0,0,0,67,0,0,0,115,134,0,0,0,116,0,0,116,
-+ 1,0,131,1,0,100,1,0,107,2,0,114,52,0,124,0,
-+ 0,106,2,0,116,3,0,131,1,0,92,3,0,125,1,0,
-+ 125,2,0,125,3,0,124,1,0,124,3,0,102,2,0,83,
-+ 120,69,0,116,4,0,124,0,0,131,1,0,68,93,55,0,
-+ 125,4,0,124,4,0,116,1,0,107,6,0,114,65,0,124,
-+ 0,0,106,5,0,124,4,0,100,2,0,100,1,0,131,1,
-+ 1,92,2,0,125,1,0,125,3,0,124,1,0,124,3,0,
-+ 102,2,0,83,113,65,0,87,100,3,0,124,0,0,102,2,
-+ 0,83,41,4,122,32,82,101,112,108,97,99,101,109,101,110,
-+ 116,32,102,111,114,32,111,115,46,112,97,116,104,46,115,112,
-+ 108,105,116,40,41,46,233,1,0,0,0,90,8,109,97,120,
-+ 115,112,108,105,116,218,0,41,6,218,3,108,101,110,114,23,
-+ 0,0,0,218,10,114,112,97,114,116,105,116,105,111,110,114,
-+ 27,0,0,0,218,8,114,101,118,101,114,115,101,100,218,6,
-+ 114,115,112,108,105,116,41,5,218,4,112,97,116,104,90,5,
-+ 102,114,111,110,116,218,1,95,218,4,116,97,105,108,114,18,
- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
-- 0,0,114,7,0,0,0,41,0,0,0,115,2,0,0,0,
-- 0,2,41,5,218,3,115,121,115,218,8,112,108,97,116,102,
-- 111,114,109,218,10,115,116,97,114,116,115,119,105,116,104,218,
-- 27,95,67,65,83,69,95,73,78,83,69,78,83,73,84,73,
-- 86,69,95,80,76,65,84,70,79,82,77,83,218,35,95,67,
-- 65,83,69,95,73,78,83,69,78,83,73,84,73,86,69,95,
-- 80,76,65,84,70,79,82,77,83,95,83,84,82,95,75,69,
-- 89,41,1,114,7,0,0,0,114,4,0,0,0,41,1,114,
-- 5,0,0,0,114,6,0,0,0,218,16,95,109,97,107,101,
-- 95,114,101,108,97,120,95,99,97,115,101,30,0,0,0,115,
-- 14,0,0,0,0,1,18,1,18,1,9,2,6,2,21,4,
-- 12,3,114,13,0,0,0,99,1,0,0,0,0,0,0,0,
-- 1,0,0,0,3,0,0,0,67,0,0,0,115,26,0,0,
-- 0,116,0,0,124,0,0,131,1,0,100,1,0,64,106,1,
-- 0,100,2,0,100,3,0,131,2,0,83,41,4,122,42,67,
-- 111,110,118,101,114,116,32,97,32,51,50,45,98,105,116,32,
-- 105,110,116,101,103,101,114,32,116,111,32,108,105,116,116,108,
-- 101,45,101,110,100,105,97,110,46,108,3,0,0,0,255,127,
-- 255,127,3,0,233,4,0,0,0,218,6,108,105,116,116,108,
-- 101,41,2,218,3,105,110,116,218,8,116,111,95,98,121,116,
-- 101,115,41,1,218,1,120,114,4,0,0,0,114,4,0,0,
-- 0,114,6,0,0,0,218,7,95,119,95,108,111,110,103,47,
-- 0,0,0,115,2,0,0,0,0,2,114,19,0,0,0,99,
-- 1,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,
-- 67,0,0,0,115,16,0,0,0,116,0,0,106,1,0,124,
-- 0,0,100,1,0,131,2,0,83,41,2,122,47,67,111,110,
-- 118,101,114,116,32,52,32,98,121,116,101,115,32,105,110,32,
-- 108,105,116,116,108,101,45,101,110,100,105,97,110,32,116,111,
-- 32,97,110,32,105,110,116,101,103,101,114,46,114,15,0,0,
-- 0,41,2,114,16,0,0,0,218,10,102,114,111,109,95,98,
-- 121,116,101,115,41,1,90,9,105,110,116,95,98,121,116,101,
-- 115,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-- 218,7,95,114,95,108,111,110,103,52,0,0,0,115,2,0,
-- 0,0,0,2,114,21,0,0,0,99,0,0,0,0,0,0,
-- 0,0,1,0,0,0,3,0,0,0,71,0,0,0,115,26,
-- 0,0,0,116,0,0,106,1,0,100,1,0,100,2,0,132,
-- 0,0,124,0,0,68,131,1,0,131,1,0,83,41,3,122,
-- 31,82,101,112,108,97,99,101,109,101,110,116,32,102,111,114,
-- 32,111,115,46,112,97,116,104,46,106,111,105,110,40,41,46,
-- 99,1,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
-- 0,83,0,0,0,115,37,0,0,0,103,0,0,124,0,0,
-- 93,27,0,125,1,0,124,1,0,114,6,0,124,1,0,106,
-- 0,0,116,1,0,131,1,0,145,2,0,113,6,0,83,114,
-- 4,0,0,0,41,2,218,6,114,115,116,114,105,112,218,15,
-- 112,97,116,104,95,115,101,112,97,114,97,116,111,114,115,41,
-- 2,218,2,46,48,218,4,112,97,114,116,114,4,0,0,0,
-- 114,4,0,0,0,114,6,0,0,0,250,10,60,108,105,115,
-- 116,99,111,109,112,62,59,0,0,0,115,2,0,0,0,9,
-- 1,122,30,95,112,97,116,104,95,106,111,105,110,46,60,108,
-- 111,99,97,108,115,62,46,60,108,105,115,116,99,111,109,112,
-- 62,41,2,218,8,112,97,116,104,95,115,101,112,218,4,106,
-- 111,105,110,41,1,218,10,112,97,116,104,95,112,97,114,116,
-- 115,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-- 218,10,95,112,97,116,104,95,106,111,105,110,57,0,0,0,
-- 115,4,0,0,0,0,2,15,1,114,30,0,0,0,99,1,
-- 0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,67,
-- 0,0,0,115,134,0,0,0,116,0,0,116,1,0,131,1,
-- 0,100,1,0,107,2,0,114,52,0,124,0,0,106,2,0,
-- 116,3,0,131,1,0,92,3,0,125,1,0,125,2,0,125,
-- 3,0,124,1,0,124,3,0,102,2,0,83,120,69,0,116,
-- 4,0,124,0,0,131,1,0,68,93,55,0,125,4,0,124,
-- 4,0,116,1,0,107,6,0,114,65,0,124,0,0,106,5,
-- 0,124,4,0,100,2,0,100,1,0,131,1,1,92,2,0,
-- 125,1,0,125,3,0,124,1,0,124,3,0,102,2,0,83,
-- 113,65,0,87,100,3,0,124,0,0,102,2,0,83,41,4,
-- 122,32,82,101,112,108,97,99,101,109,101,110,116,32,102,111,
-- 114,32,111,115,46,112,97,116,104,46,115,112,108,105,116,40,
-- 41,46,233,1,0,0,0,90,8,109,97,120,115,112,108,105,
-- 116,218,0,41,6,218,3,108,101,110,114,23,0,0,0,218,
-- 10,114,112,97,114,116,105,116,105,111,110,114,27,0,0,0,
-- 218,8,114,101,118,101,114,115,101,100,218,6,114,115,112,108,
-- 105,116,41,5,218,4,112,97,116,104,90,5,102,114,111,110,
-- 116,218,1,95,218,4,116,97,105,108,114,18,0,0,0,114,
-- 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,11,
-- 95,112,97,116,104,95,115,112,108,105,116,63,0,0,0,115,
-- 16,0,0,0,0,2,18,1,24,1,10,1,19,1,12,1,
-- 27,1,14,1,114,40,0,0,0,99,1,0,0,0,0,0,
-- 0,0,1,0,0,0,2,0,0,0,67,0,0,0,115,13,
-- 0,0,0,116,0,0,106,1,0,124,0,0,131,1,0,83,
-- 41,1,122,126,83,116,97,116,32,116,104,101,32,112,97,116,
-- 104,46,10,10,32,32,32,32,77,97,100,101,32,97,32,115,
-- 101,112,97,114,97,116,101,32,102,117,110,99,116,105,111,110,
-- 32,116,111,32,109,97,107,101,32,105,116,32,101,97,115,105,
-- 101,114,32,116,111,32,111,118,101,114,114,105,100,101,32,105,
-- 110,32,101,120,112,101,114,105,109,101,110,116,115,10,32,32,
-- 32,32,40,101,46,103,46,32,99,97,99,104,101,32,115,116,
-- 97,116,32,114,101,115,117,108,116,115,41,46,10,10,32,32,
-- 32,32,41,2,114,3,0,0,0,90,4,115,116,97,116,41,
-- 1,114,37,0,0,0,114,4,0,0,0,114,4,0,0,0,
-- 114,6,0,0,0,218,10,95,112,97,116,104,95,115,116,97,
-- 116,75,0,0,0,115,2,0,0,0,0,7,114,41,0,0,
-- 0,99,2,0,0,0,0,0,0,0,3,0,0,0,11,0,
-- 0,0,67,0,0,0,115,58,0,0,0,121,16,0,116,0,
-- 0,124,0,0,131,1,0,125,2,0,87,110,22,0,4,116,
-- 1,0,107,10,0,114,40,0,1,1,1,100,1,0,83,89,
-- 110,1,0,88,124,2,0,106,2,0,100,2,0,64,124,1,
-- 0,107,2,0,83,41,3,122,49,84,101,115,116,32,119,104,
-- 101,116,104,101,114,32,116,104,101,32,112,97,116,104,32,105,
-- 115,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,
-- 109,111,100,101,32,116,121,112,101,46,70,105,0,240,0,0,
-- 41,3,114,41,0,0,0,218,7,79,83,69,114,114,111,114,
-- 218,7,115,116,95,109,111,100,101,41,3,114,37,0,0,0,
-- 218,4,109,111,100,101,90,9,115,116,97,116,95,105,110,102,
-- 111,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-- 218,18,95,112,97,116,104,95,105,115,95,109,111,100,101,95,
-- 116,121,112,101,85,0,0,0,115,10,0,0,0,0,2,3,
-- 1,16,1,13,1,9,1,114,45,0,0,0,99,1,0,0,
-- 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
-- 0,115,13,0,0,0,116,0,0,124,0,0,100,1,0,131,
-- 2,0,83,41,2,122,31,82,101,112,108,97,99,101,109,101,
-+ 0,0,218,11,95,112,97,116,104,95,115,112,108,105,116,63,
-+ 0,0,0,115,16,0,0,0,0,2,18,1,24,1,10,1,
-+ 19,1,12,1,27,1,14,1,114,40,0,0,0,99,1,0,
-+ 0,0,0,0,0,0,1,0,0,0,2,0,0,0,67,0,
-+ 0,0,115,13,0,0,0,116,0,0,106,1,0,124,0,0,
-+ 131,1,0,83,41,1,122,126,83,116,97,116,32,116,104,101,
-+ 32,112,97,116,104,46,10,10,32,32,32,32,77,97,100,101,
-+ 32,97,32,115,101,112,97,114,97,116,101,32,102,117,110,99,
-+ 116,105,111,110,32,116,111,32,109,97,107,101,32,105,116,32,
-+ 101,97,115,105,101,114,32,116,111,32,111,118,101,114,114,105,
-+ 100,101,32,105,110,32,101,120,112,101,114,105,109,101,110,116,
-+ 115,10,32,32,32,32,40,101,46,103,46,32,99,97,99,104,
-+ 101,32,115,116,97,116,32,114,101,115,117,108,116,115,41,46,
-+ 10,10,32,32,32,32,41,2,114,3,0,0,0,90,4,115,
-+ 116,97,116,41,1,114,37,0,0,0,114,4,0,0,0,114,
-+ 4,0,0,0,114,6,0,0,0,218,10,95,112,97,116,104,
-+ 95,115,116,97,116,75,0,0,0,115,2,0,0,0,0,7,
-+ 114,41,0,0,0,99,2,0,0,0,0,0,0,0,3,0,
-+ 0,0,11,0,0,0,67,0,0,0,115,58,0,0,0,121,
-+ 16,0,116,0,0,124,0,0,131,1,0,125,2,0,87,110,
-+ 22,0,4,116,1,0,107,10,0,114,40,0,1,1,1,100,
-+ 1,0,83,89,110,1,0,88,124,2,0,106,2,0,100,2,
-+ 0,64,124,1,0,107,2,0,83,41,3,122,49,84,101,115,
-+ 116,32,119,104,101,116,104,101,114,32,116,104,101,32,112,97,
-+ 116,104,32,105,115,32,116,104,101,32,115,112,101,99,105,102,
-+ 105,101,100,32,109,111,100,101,32,116,121,112,101,46,70,105,
-+ 0,240,0,0,41,3,114,41,0,0,0,218,7,79,83,69,
-+ 114,114,111,114,218,7,115,116,95,109,111,100,101,41,3,114,
-+ 37,0,0,0,218,4,109,111,100,101,90,9,115,116,97,116,
-+ 95,105,110,102,111,114,4,0,0,0,114,4,0,0,0,114,
-+ 6,0,0,0,218,18,95,112,97,116,104,95,105,115,95,109,
-+ 111,100,101,95,116,121,112,101,85,0,0,0,115,10,0,0,
-+ 0,0,2,3,1,16,1,13,1,9,1,114,45,0,0,0,
-+ 99,1,0,0,0,0,0,0,0,1,0,0,0,3,0,0,
-+ 0,67,0,0,0,115,13,0,0,0,116,0,0,124,0,0,
-+ 100,1,0,131,2,0,83,41,2,122,31,82,101,112,108,97,
-+ 99,101,109,101,110,116,32,102,111,114,32,111,115,46,112,97,
-+ 116,104,46,105,115,102,105,108,101,46,105,0,128,0,0,41,
-+ 1,114,45,0,0,0,41,1,114,37,0,0,0,114,4,0,
-+ 0,0,114,4,0,0,0,114,6,0,0,0,218,12,95,112,
-+ 97,116,104,95,105,115,102,105,108,101,94,0,0,0,115,2,
-+ 0,0,0,0,2,114,46,0,0,0,99,1,0,0,0,0,
-+ 0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,
-+ 31,0,0,0,124,0,0,115,18,0,116,0,0,106,1,0,
-+ 131,0,0,125,0,0,116,2,0,124,0,0,100,1,0,131,
-+ 2,0,83,41,2,122,30,82,101,112,108,97,99,101,109,101,
- 110,116,32,102,111,114,32,111,115,46,112,97,116,104,46,105,
-- 115,102,105,108,101,46,105,0,128,0,0,41,1,114,45,0,
-- 0,0,41,1,114,37,0,0,0,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,218,12,95,112,97,116,104,95,
-- 105,115,102,105,108,101,94,0,0,0,115,2,0,0,0,0,
-- 2,114,46,0,0,0,99,1,0,0,0,0,0,0,0,1,
-- 0,0,0,3,0,0,0,67,0,0,0,115,31,0,0,0,
-- 124,0,0,115,18,0,116,0,0,106,1,0,131,0,0,125,
-- 0,0,116,2,0,124,0,0,100,1,0,131,2,0,83,41,
-- 2,122,30,82,101,112,108,97,99,101,109,101,110,116,32,102,
-- 111,114,32,111,115,46,112,97,116,104,46,105,115,100,105,114,
-- 46,105,0,64,0,0,41,3,114,3,0,0,0,218,6,103,
-- 101,116,99,119,100,114,45,0,0,0,41,1,114,37,0,0,
-- 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-- 218,11,95,112,97,116,104,95,105,115,100,105,114,99,0,0,
-- 0,115,6,0,0,0,0,2,6,1,12,1,114,48,0,0,
-- 0,105,182,1,0,0,99,3,0,0,0,0,0,0,0,6,
-- 0,0,0,17,0,0,0,67,0,0,0,115,193,0,0,0,
-- 100,1,0,106,0,0,124,0,0,116,1,0,124,0,0,131,
-- 1,0,131,2,0,125,3,0,116,2,0,106,3,0,124,3,
-- 0,116,2,0,106,4,0,116,2,0,106,5,0,66,116,2,
-- 0,106,6,0,66,124,2,0,100,2,0,64,131,3,0,125,
-- 4,0,121,61,0,116,7,0,106,8,0,124,4,0,100,3,
-- 0,131,2,0,143,20,0,125,5,0,124,5,0,106,9,0,
-- 124,1,0,131,1,0,1,87,100,4,0,81,82,88,116,2,
-- 0,106,10,0,124,3,0,124,0,0,131,2,0,1,87,110,
-- 59,0,4,116,11,0,107,10,0,114,188,0,1,1,1,121,
-- 17,0,116,2,0,106,12,0,124,3,0,131,1,0,1,87,
-- 110,18,0,4,116,11,0,107,10,0,114,180,0,1,1,1,
-- 89,110,1,0,88,130,0,0,89,110,1,0,88,100,4,0,
-- 83,41,5,122,162,66,101,115,116,45,101,102,102,111,114,116,
-- 32,102,117,110,99,116,105,111,110,32,116,111,32,119,114,105,
-- 116,101,32,100,97,116,97,32,116,111,32,97,32,112,97,116,
-- 104,32,97,116,111,109,105,99,97,108,108,121,46,10,32,32,
-- 32,32,66,101,32,112,114,101,112,97,114,101,100,32,116,111,
-- 32,104,97,110,100,108,101,32,97,32,70,105,108,101,69,120,
-- 105,115,116,115,69,114,114,111,114,32,105,102,32,99,111,110,
-- 99,117,114,114,101,110,116,32,119,114,105,116,105,110,103,32,
-- 111,102,32,116,104,101,10,32,32,32,32,116,101,109,112,111,
-- 114,97,114,121,32,102,105,108,101,32,105,115,32,97,116,116,
-- 101,109,112,116,101,100,46,122,5,123,125,46,123,125,105,182,
-- 1,0,0,90,2,119,98,78,41,13,218,6,102,111,114,109,
-- 97,116,218,2,105,100,114,3,0,0,0,90,4,111,112,101,
-- 110,90,6,79,95,69,88,67,76,90,7,79,95,67,82,69,
-- 65,84,90,8,79,95,87,82,79,78,76,89,218,3,95,105,
-- 111,218,6,70,105,108,101,73,79,218,5,119,114,105,116,101,
-- 218,7,114,101,112,108,97,99,101,114,42,0,0,0,90,6,
-- 117,110,108,105,110,107,41,6,114,37,0,0,0,218,4,100,
-- 97,116,97,114,44,0,0,0,90,8,112,97,116,104,95,116,
-- 109,112,90,2,102,100,218,4,102,105,108,101,114,4,0,0,
-- 0,114,4,0,0,0,114,6,0,0,0,218,13,95,119,114,
-- 105,116,101,95,97,116,111,109,105,99,106,0,0,0,115,26,
-- 0,0,0,0,5,24,1,9,1,33,1,3,3,21,1,20,
-- 1,20,1,13,1,3,1,17,1,13,1,5,1,114,57,0,
-- 0,0,105,23,13,0,0,233,2,0,0,0,114,15,0,0,
-- 0,115,2,0,0,0,13,10,90,11,95,95,112,121,99,97,
-- 99,104,101,95,95,122,4,111,112,116,45,122,3,46,112,121,
-- 122,4,46,112,121,99,78,218,12,111,112,116,105,109,105,122,
-- 97,116,105,111,110,99,2,0,0,0,1,0,0,0,11,0,
-- 0,0,6,0,0,0,67,0,0,0,115,87,1,0,0,124,
-- 1,0,100,1,0,107,9,0,114,76,0,116,0,0,106,1,
-- 0,100,2,0,116,2,0,131,2,0,1,124,2,0,100,1,
-- 0,107,9,0,114,58,0,100,3,0,125,3,0,116,3,0,
-- 124,3,0,131,1,0,130,1,0,124,1,0,114,70,0,100,
-- 4,0,110,3,0,100,5,0,125,2,0,116,4,0,124,0,
-- 0,131,1,0,92,2,0,125,4,0,125,5,0,124,5,0,
-- 106,5,0,100,6,0,131,1,0,92,3,0,125,6,0,125,
-- 7,0,125,8,0,116,6,0,106,7,0,106,8,0,125,9,
-- 0,124,9,0,100,1,0,107,8,0,114,154,0,116,9,0,
-- 100,7,0,131,1,0,130,1,0,100,4,0,106,10,0,124,
-- 6,0,114,172,0,124,6,0,110,3,0,124,8,0,124,7,
-- 0,124,9,0,103,3,0,131,1,0,125,10,0,124,2,0,
-- 100,1,0,107,8,0,114,241,0,116,6,0,106,11,0,106,
-- 12,0,100,8,0,107,2,0,114,229,0,100,4,0,125,2,
-- 0,110,12,0,116,6,0,106,11,0,106,12,0,125,2,0,
-- 116,13,0,124,2,0,131,1,0,125,2,0,124,2,0,100,
-- 4,0,107,3,0,114,63,1,124,2,0,106,14,0,131,0,
-- 0,115,42,1,116,15,0,100,9,0,106,16,0,124,2,0,
-- 131,1,0,131,1,0,130,1,0,100,10,0,106,16,0,124,
-- 10,0,116,17,0,124,2,0,131,3,0,125,10,0,116,18,
-- 0,124,4,0,116,19,0,124,10,0,116,20,0,100,8,0,
-- 25,23,131,3,0,83,41,11,97,254,2,0,0,71,105,118,
-- 101,110,32,116,104,101,32,112,97,116,104,32,116,111,32,97,
-- 32,46,112,121,32,102,105,108,101,44,32,114,101,116,117,114,
-- 110,32,116,104,101,32,112,97,116,104,32,116,111,32,105,116,
-- 115,32,46,112,121,99,32,102,105,108,101,46,10,10,32,32,
-- 32,32,84,104,101,32,46,112,121,32,102,105,108,101,32,100,
-- 111,101,115,32,110,111,116,32,110,101,101,100,32,116,111,32,
-- 101,120,105,115,116,59,32,116,104,105,115,32,115,105,109,112,
-- 108,121,32,114,101,116,117,114,110,115,32,116,104,101,32,112,
-- 97,116,104,32,116,111,32,116,104,101,10,32,32,32,32,46,
-- 112,121,99,32,102,105,108,101,32,99,97,108,99,117,108,97,
-- 116,101,100,32,97,115,32,105,102,32,116,104,101,32,46,112,
-- 121,32,102,105,108,101,32,119,101,114,101,32,105,109,112,111,
-- 114,116,101,100,46,10,10,32,32,32,32,84,104,101,32,39,
-- 111,112,116,105,109,105,122,97,116,105,111,110,39,32,112,97,
-- 114,97,109,101,116,101,114,32,99,111,110,116,114,111,108,115,
-- 32,116,104,101,32,112,114,101,115,117,109,101,100,32,111,112,
-- 116,105,109,105,122,97,116,105,111,110,32,108,101,118,101,108,
-- 32,111,102,10,32,32,32,32,116,104,101,32,98,121,116,101,
-- 99,111,100,101,32,102,105,108,101,46,32,73,102,32,39,111,
-- 112,116,105,109,105,122,97,116,105,111,110,39,32,105,115,32,
-- 110,111,116,32,78,111,110,101,44,32,116,104,101,32,115,116,
-- 114,105,110,103,32,114,101,112,114,101,115,101,110,116,97,116,
-- 105,111,110,10,32,32,32,32,111,102,32,116,104,101,32,97,
-- 114,103,117,109,101,110,116,32,105,115,32,116,97,107,101,110,
-- 32,97,110,100,32,118,101,114,105,102,105,101,100,32,116,111,
-- 32,98,101,32,97,108,112,104,97,110,117,109,101,114,105,99,
-- 32,40,101,108,115,101,32,86,97,108,117,101,69,114,114,111,
-- 114,10,32,32,32,32,105,115,32,114,97,105,115,101,100,41,
-- 46,10,10,32,32,32,32,84,104,101,32,100,101,98,117,103,
-- 95,111,118,101,114,114,105,100,101,32,112,97,114,97,109,101,
-- 116,101,114,32,105,115,32,100,101,112,114,101,99,97,116,101,
-- 100,46,32,73,102,32,100,101,98,117,103,95,111,118,101,114,
-- 114,105,100,101,32,105,115,32,110,111,116,32,78,111,110,101,
-- 44,10,32,32,32,32,97,32,84,114,117,101,32,118,97,108,
-- 117,101,32,105,115,32,116,104,101,32,115,97,109,101,32,97,
-- 115,32,115,101,116,116,105,110,103,32,39,111,112,116,105,109,
-- 105,122,97,116,105,111,110,39,32,116,111,32,116,104,101,32,
-- 101,109,112,116,121,32,115,116,114,105,110,103,10,32,32,32,
-- 32,119,104,105,108,101,32,97,32,70,97,108,115,101,32,118,
-- 97,108,117,101,32,105,115,32,101,113,117,105,118,97,108,101,
-- 110,116,32,116,111,32,115,101,116,116,105,110,103,32,39,111,
-- 112,116,105,109,105,122,97,116,105,111,110,39,32,116,111,32,
-- 39,49,39,46,10,10,32,32,32,32,73,102,32,115,121,115,
-- 46,105,109,112,108,101,109,101,110,116,97,116,105,111,110,46,
-- 99,97,99,104,101,95,116,97,103,32,105,115,32,78,111,110,
-- 101,32,116,104,101,110,32,78,111,116,73,109,112,108,101,109,
-- 101,110,116,101,100,69,114,114,111,114,32,105,115,32,114,97,
-- 105,115,101,100,46,10,10,32,32,32,32,78,122,70,116,104,
-- 101,32,100,101,98,117,103,95,111,118,101,114,114,105,100,101,
-- 32,112,97,114,97,109,101,116,101,114,32,105,115,32,100,101,
-- 112,114,101,99,97,116,101,100,59,32,117,115,101,32,39,111,
-- 112,116,105,109,105,122,97,116,105,111,110,39,32,105,110,115,
-- 116,101,97,100,122,50,100,101,98,117,103,95,111,118,101,114,
-- 114,105,100,101,32,111,114,32,111,112,116,105,109,105,122,97,
-- 116,105,111,110,32,109,117,115,116,32,98,101,32,115,101,116,
-- 32,116,111,32,78,111,110,101,114,32,0,0,0,114,31,0,
-- 0,0,218,1,46,122,36,115,121,115,46,105,109,112,108,101,
-- 109,101,110,116,97,116,105,111,110,46,99,97,99,104,101,95,
-- 116,97,103,32,105,115,32,78,111,110,101,233,0,0,0,0,
-- 122,24,123,33,114,125,32,105,115,32,110,111,116,32,97,108,
-- 112,104,97,110,117,109,101,114,105,99,122,7,123,125,46,123,
-- 125,123,125,41,21,218,9,95,119,97,114,110,105,110,103,115,
-- 218,4,119,97,114,110,218,18,68,101,112,114,101,99,97,116,
-- 105,111,110,87,97,114,110,105,110,103,218,9,84,121,112,101,
-- 69,114,114,111,114,114,40,0,0,0,114,34,0,0,0,114,
-- 8,0,0,0,218,14,105,109,112,108,101,109,101,110,116,97,
-- 116,105,111,110,218,9,99,97,99,104,101,95,116,97,103,218,
-- 19,78,111,116,73,109,112,108,101,109,101,110,116,101,100,69,
-- 114,114,111,114,114,28,0,0,0,218,5,102,108,97,103,115,
-- 218,8,111,112,116,105,109,105,122,101,218,3,115,116,114,218,
-- 7,105,115,97,108,110,117,109,218,10,86,97,108,117,101,69,
-- 114,114,111,114,114,49,0,0,0,218,4,95,79,80,84,114,
-- 30,0,0,0,218,8,95,80,89,67,65,67,72,69,218,17,
-- 66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,69,
-- 83,41,11,114,37,0,0,0,90,14,100,101,98,117,103,95,
-- 111,118,101,114,114,105,100,101,114,59,0,0,0,218,7,109,
-- 101,115,115,97,103,101,218,4,104,101,97,100,114,39,0,0,
-- 0,90,4,98,97,115,101,218,3,115,101,112,218,4,114,101,
-- 115,116,90,3,116,97,103,90,15,97,108,109,111,115,116,95,
-- 102,105,108,101,110,97,109,101,114,4,0,0,0,114,4,0,
-- 0,0,114,6,0,0,0,218,17,99,97,99,104,101,95,102,
-- 114,111,109,95,115,111,117,114,99,101,254,0,0,0,115,46,
-- 0,0,0,0,18,12,1,9,1,7,1,12,1,6,1,12,
-- 1,18,1,18,1,24,1,12,1,12,1,12,1,36,1,12,
-- 1,18,1,9,2,12,1,12,1,12,1,12,1,21,1,21,
-- 1,114,81,0,0,0,99,1,0,0,0,0,0,0,0,8,
-- 0,0,0,5,0,0,0,67,0,0,0,115,62,1,0,0,
-- 116,0,0,106,1,0,106,2,0,100,1,0,107,8,0,114,
-- 30,0,116,3,0,100,2,0,131,1,0,130,1,0,116,4,
-- 0,124,0,0,131,1,0,92,2,0,125,1,0,125,2,0,
-- 116,4,0,124,1,0,131,1,0,92,2,0,125,1,0,125,
-- 3,0,124,3,0,116,5,0,107,3,0,114,102,0,116,6,
-- 0,100,3,0,106,7,0,116,5,0,124,0,0,131,2,0,
-- 131,1,0,130,1,0,124,2,0,106,8,0,100,4,0,131,
-- 1,0,125,4,0,124,4,0,100,11,0,107,7,0,114,153,
-- 0,116,6,0,100,7,0,106,7,0,124,2,0,131,1,0,
-- 131,1,0,130,1,0,110,125,0,124,4,0,100,6,0,107,
-- 2,0,114,22,1,124,2,0,106,9,0,100,4,0,100,5,
-- 0,131,2,0,100,12,0,25,125,5,0,124,5,0,106,10,
-- 0,116,11,0,131,1,0,115,223,0,116,6,0,100,8,0,
-- 106,7,0,116,11,0,131,1,0,131,1,0,130,1,0,124,
-- 5,0,116,12,0,116,11,0,131,1,0,100,1,0,133,2,
-- 0,25,125,6,0,124,6,0,106,13,0,131,0,0,115,22,
-- 1,116,6,0,100,9,0,106,7,0,124,5,0,131,1,0,
-- 131,1,0,130,1,0,124,2,0,106,14,0,100,4,0,131,
-- 1,0,100,10,0,25,125,7,0,116,15,0,124,1,0,124,
-- 7,0,116,16,0,100,10,0,25,23,131,2,0,83,41,13,
-- 97,110,1,0,0,71,105,118,101,110,32,116,104,101,32,112,
-- 97,116,104,32,116,111,32,97,32,46,112,121,99,46,32,102,
-- 105,108,101,44,32,114,101,116,117,114,110,32,116,104,101,32,
-- 112,97,116,104,32,116,111,32,105,116,115,32,46,112,121,32,
-- 102,105,108,101,46,10,10,32,32,32,32,84,104,101,32,46,
-- 112,121,99,32,102,105,108,101,32,100,111,101,115,32,110,111,
-- 116,32,110,101,101,100,32,116,111,32,101,120,105,115,116,59,
-- 32,116,104,105,115,32,115,105,109,112,108,121,32,114,101,116,
-- 117,114,110,115,32,116,104,101,32,112,97,116,104,32,116,111,
-- 10,32,32,32,32,116,104,101,32,46,112,121,32,102,105,108,
-- 101,32,99,97,108,99,117,108,97,116,101,100,32,116,111,32,
-- 99,111,114,114,101,115,112,111,110,100,32,116,111,32,116,104,
-- 101,32,46,112,121,99,32,102,105,108,101,46,32,32,73,102,
-- 32,112,97,116,104,32,100,111,101,115,10,32,32,32,32,110,
-- 111,116,32,99,111,110,102,111,114,109,32,116,111,32,80,69,
-- 80,32,51,49,52,55,47,52,56,56,32,102,111,114,109,97,
-- 116,44,32,86,97,108,117,101,69,114,114,111,114,32,119,105,
-- 108,108,32,98,101,32,114,97,105,115,101,100,46,32,73,102,
-- 10,32,32,32,32,115,121,115,46,105,109,112,108,101,109,101,
-- 110,116,97,116,105,111,110,46,99,97,99,104,101,95,116,97,
-- 103,32,105,115,32,78,111,110,101,32,116,104,101,110,32,78,
-- 111,116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,
-- 111,114,32,105,115,32,114,97,105,115,101,100,46,10,10,32,
-- 32,32,32,78,122,36,115,121,115,46,105,109,112,108,101,109,
-- 101,110,116,97,116,105,111,110,46,99,97,99,104,101,95,116,
-- 97,103,32,105,115,32,78,111,110,101,122,37,123,125,32,110,
-- 111,116,32,98,111,116,116,111,109,45,108,101,118,101,108,32,
-- 100,105,114,101,99,116,111,114,121,32,105,110,32,123,33,114,
-- 125,114,60,0,0,0,114,58,0,0,0,233,3,0,0,0,
-- 122,33,101,120,112,101,99,116,101,100,32,111,110,108,121,32,
-- 50,32,111,114,32,51,32,100,111,116,115,32,105,110,32,123,
-- 33,114,125,122,57,111,112,116,105,109,105,122,97,116,105,111,
-- 110,32,112,111,114,116,105,111,110,32,111,102,32,102,105,108,
-- 101,110,97,109,101,32,100,111,101,115,32,110,111,116,32,115,
-- 116,97,114,116,32,119,105,116,104,32,123,33,114,125,122,52,
-- 111,112,116,105,109,105,122,97,116,105,111,110,32,108,101,118,
-- 101,108,32,123,33,114,125,32,105,115,32,110,111,116,32,97,
-- 110,32,97,108,112,104,97,110,117,109,101,114,105,99,32,118,
-- 97,108,117,101,114,61,0,0,0,62,2,0,0,0,114,58,
-- 0,0,0,114,82,0,0,0,233,254,255,255,255,41,17,114,
-- 8,0,0,0,114,66,0,0,0,114,67,0,0,0,114,68,
-- 0,0,0,114,40,0,0,0,114,75,0,0,0,114,73,0,
-- 0,0,114,49,0,0,0,218,5,99,111,117,110,116,114,36,
-- 0,0,0,114,10,0,0,0,114,74,0,0,0,114,33,0,
-- 0,0,114,72,0,0,0,218,9,112,97,114,116,105,116,105,
-- 111,110,114,30,0,0,0,218,15,83,79,85,82,67,69,95,
-- 83,85,70,70,73,88,69,83,41,8,114,37,0,0,0,114,
-- 78,0,0,0,90,16,112,121,99,97,99,104,101,95,102,105,
-- 108,101,110,97,109,101,90,7,112,121,99,97,99,104,101,90,
-- 9,100,111,116,95,99,111,117,110,116,114,59,0,0,0,90,
-- 9,111,112,116,95,108,101,118,101,108,90,13,98,97,115,101,
-+ 115,100,105,114,46,105,0,64,0,0,41,3,114,3,0,0,
-+ 0,218,6,103,101,116,99,119,100,114,45,0,0,0,41,1,
-+ 114,37,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
-+ 6,0,0,0,218,11,95,112,97,116,104,95,105,115,100,105,
-+ 114,99,0,0,0,115,6,0,0,0,0,2,6,1,12,1,
-+ 114,48,0,0,0,105,182,1,0,0,99,3,0,0,0,0,
-+ 0,0,0,6,0,0,0,17,0,0,0,67,0,0,0,115,
-+ 193,0,0,0,100,1,0,106,0,0,124,0,0,116,1,0,
-+ 124,0,0,131,1,0,131,2,0,125,3,0,116,2,0,106,
-+ 3,0,124,3,0,116,2,0,106,4,0,116,2,0,106,5,
-+ 0,66,116,2,0,106,6,0,66,124,2,0,100,2,0,64,
-+ 131,3,0,125,4,0,121,61,0,116,7,0,106,8,0,124,
-+ 4,0,100,3,0,131,2,0,143,20,0,125,5,0,124,5,
-+ 0,106,9,0,124,1,0,131,1,0,1,87,100,4,0,81,
-+ 82,88,116,2,0,106,10,0,124,3,0,124,0,0,131,2,
-+ 0,1,87,110,59,0,4,116,11,0,107,10,0,114,188,0,
-+ 1,1,1,121,17,0,116,2,0,106,12,0,124,3,0,131,
-+ 1,0,1,87,110,18,0,4,116,11,0,107,10,0,114,180,
-+ 0,1,1,1,89,110,1,0,88,130,0,0,89,110,1,0,
-+ 88,100,4,0,83,41,5,122,162,66,101,115,116,45,101,102,
-+ 102,111,114,116,32,102,117,110,99,116,105,111,110,32,116,111,
-+ 32,119,114,105,116,101,32,100,97,116,97,32,116,111,32,97,
-+ 32,112,97,116,104,32,97,116,111,109,105,99,97,108,108,121,
-+ 46,10,32,32,32,32,66,101,32,112,114,101,112,97,114,101,
-+ 100,32,116,111,32,104,97,110,100,108,101,32,97,32,70,105,
-+ 108,101,69,120,105,115,116,115,69,114,114,111,114,32,105,102,
-+ 32,99,111,110,99,117,114,114,101,110,116,32,119,114,105,116,
-+ 105,110,103,32,111,102,32,116,104,101,10,32,32,32,32,116,
-+ 101,109,112,111,114,97,114,121,32,102,105,108,101,32,105,115,
-+ 32,97,116,116,101,109,112,116,101,100,46,122,5,123,125,46,
-+ 123,125,105,182,1,0,0,90,2,119,98,78,41,13,218,6,
-+ 102,111,114,109,97,116,218,2,105,100,114,3,0,0,0,90,
-+ 4,111,112,101,110,90,6,79,95,69,88,67,76,90,7,79,
-+ 95,67,82,69,65,84,90,8,79,95,87,82,79,78,76,89,
-+ 218,3,95,105,111,218,6,70,105,108,101,73,79,218,5,119,
-+ 114,105,116,101,218,7,114,101,112,108,97,99,101,114,42,0,
-+ 0,0,90,6,117,110,108,105,110,107,41,6,114,37,0,0,
-+ 0,218,4,100,97,116,97,114,44,0,0,0,90,8,112,97,
-+ 116,104,95,116,109,112,90,2,102,100,218,4,102,105,108,101,
-+ 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,
-+ 13,95,119,114,105,116,101,95,97,116,111,109,105,99,106,0,
-+ 0,0,115,26,0,0,0,0,5,24,1,9,1,33,1,3,
-+ 3,21,1,20,1,20,1,13,1,3,1,17,1,13,1,5,
-+ 1,114,57,0,0,0,105,23,13,0,0,233,2,0,0,0,
-+ 114,15,0,0,0,115,2,0,0,0,13,10,105,23,13,13,
-+ 10,122,65,77,97,103,105,99,32,110,117,109,98,101,114,32,
-+ 109,105,115,109,97,116,99,104,32,40,116,104,101,32,105,115,
-+ 115,117,101,50,55,50,56,54,32,119,111,114,107,97,114,111,
-+ 117,110,100,32,105,115,32,102,111,114,32,51,46,53,32,111,
-+ 110,108,121,41,105,22,13,0,0,90,11,95,95,112,121,99,
-+ 97,99,104,101,95,95,122,4,111,112,116,45,122,3,46,112,
-+ 121,122,4,46,112,121,99,78,218,12,111,112,116,105,109,105,
-+ 122,97,116,105,111,110,99,2,0,0,0,1,0,0,0,11,
-+ 0,0,0,6,0,0,0,67,0,0,0,115,87,1,0,0,
-+ 124,1,0,100,1,0,107,9,0,114,76,0,116,0,0,106,
-+ 1,0,100,2,0,116,2,0,131,2,0,1,124,2,0,100,
-+ 1,0,107,9,0,114,58,0,100,3,0,125,3,0,116,3,
-+ 0,124,3,0,131,1,0,130,1,0,124,1,0,114,70,0,
-+ 100,4,0,110,3,0,100,5,0,125,2,0,116,4,0,124,
-+ 0,0,131,1,0,92,2,0,125,4,0,125,5,0,124,5,
-+ 0,106,5,0,100,6,0,131,1,0,92,3,0,125,6,0,
-+ 125,7,0,125,8,0,116,6,0,106,7,0,106,8,0,125,
-+ 9,0,124,9,0,100,1,0,107,8,0,114,154,0,116,9,
-+ 0,100,7,0,131,1,0,130,1,0,100,4,0,106,10,0,
-+ 124,6,0,114,172,0,124,6,0,110,3,0,124,8,0,124,
-+ 7,0,124,9,0,103,3,0,131,1,0,125,10,0,124,2,
-+ 0,100,1,0,107,8,0,114,241,0,116,6,0,106,11,0,
-+ 106,12,0,100,8,0,107,2,0,114,229,0,100,4,0,125,
-+ 2,0,110,12,0,116,6,0,106,11,0,106,12,0,125,2,
-+ 0,116,13,0,124,2,0,131,1,0,125,2,0,124,2,0,
-+ 100,4,0,107,3,0,114,63,1,124,2,0,106,14,0,131,
-+ 0,0,115,42,1,116,15,0,100,9,0,106,16,0,124,2,
-+ 0,131,1,0,131,1,0,130,1,0,100,10,0,106,16,0,
-+ 124,10,0,116,17,0,124,2,0,131,3,0,125,10,0,116,
-+ 18,0,124,4,0,116,19,0,124,10,0,116,20,0,100,8,
-+ 0,25,23,131,3,0,83,41,11,97,254,2,0,0,71,105,
-+ 118,101,110,32,116,104,101,32,112,97,116,104,32,116,111,32,
-+ 97,32,46,112,121,32,102,105,108,101,44,32,114,101,116,117,
-+ 114,110,32,116,104,101,32,112,97,116,104,32,116,111,32,105,
-+ 116,115,32,46,112,121,99,32,102,105,108,101,46,10,10,32,
-+ 32,32,32,84,104,101,32,46,112,121,32,102,105,108,101,32,
-+ 100,111,101,115,32,110,111,116,32,110,101,101,100,32,116,111,
-+ 32,101,120,105,115,116,59,32,116,104,105,115,32,115,105,109,
-+ 112,108,121,32,114,101,116,117,114,110,115,32,116,104,101,32,
-+ 112,97,116,104,32,116,111,32,116,104,101,10,32,32,32,32,
-+ 46,112,121,99,32,102,105,108,101,32,99,97,108,99,117,108,
-+ 97,116,101,100,32,97,115,32,105,102,32,116,104,101,32,46,
-+ 112,121,32,102,105,108,101,32,119,101,114,101,32,105,109,112,
-+ 111,114,116,101,100,46,10,10,32,32,32,32,84,104,101,32,
-+ 39,111,112,116,105,109,105,122,97,116,105,111,110,39,32,112,
-+ 97,114,97,109,101,116,101,114,32,99,111,110,116,114,111,108,
-+ 115,32,116,104,101,32,112,114,101,115,117,109,101,100,32,111,
-+ 112,116,105,109,105,122,97,116,105,111,110,32,108,101,118,101,
-+ 108,32,111,102,10,32,32,32,32,116,104,101,32,98,121,116,
-+ 101,99,111,100,101,32,102,105,108,101,46,32,73,102,32,39,
-+ 111,112,116,105,109,105,122,97,116,105,111,110,39,32,105,115,
-+ 32,110,111,116,32,78,111,110,101,44,32,116,104,101,32,115,
-+ 116,114,105,110,103,32,114,101,112,114,101,115,101,110,116,97,
-+ 116,105,111,110,10,32,32,32,32,111,102,32,116,104,101,32,
-+ 97,114,103,117,109,101,110,116,32,105,115,32,116,97,107,101,
-+ 110,32,97,110,100,32,118,101,114,105,102,105,101,100,32,116,
-+ 111,32,98,101,32,97,108,112,104,97,110,117,109,101,114,105,
-+ 99,32,40,101,108,115,101,32,86,97,108,117,101,69,114,114,
-+ 111,114,10,32,32,32,32,105,115,32,114,97,105,115,101,100,
-+ 41,46,10,10,32,32,32,32,84,104,101,32,100,101,98,117,
-+ 103,95,111,118,101,114,114,105,100,101,32,112,97,114,97,109,
-+ 101,116,101,114,32,105,115,32,100,101,112,114,101,99,97,116,
-+ 101,100,46,32,73,102,32,100,101,98,117,103,95,111,118,101,
-+ 114,114,105,100,101,32,105,115,32,110,111,116,32,78,111,110,
-+ 101,44,10,32,32,32,32,97,32,84,114,117,101,32,118,97,
-+ 108,117,101,32,105,115,32,116,104,101,32,115,97,109,101,32,
-+ 97,115,32,115,101,116,116,105,110,103,32,39,111,112,116,105,
-+ 109,105,122,97,116,105,111,110,39,32,116,111,32,116,104,101,
-+ 32,101,109,112,116,121,32,115,116,114,105,110,103,10,32,32,
-+ 32,32,119,104,105,108,101,32,97,32,70,97,108,115,101,32,
-+ 118,97,108,117,101,32,105,115,32,101,113,117,105,118,97,108,
-+ 101,110,116,32,116,111,32,115,101,116,116,105,110,103,32,39,
-+ 111,112,116,105,109,105,122,97,116,105,111,110,39,32,116,111,
-+ 32,39,49,39,46,10,10,32,32,32,32,73,102,32,115,121,
-+ 115,46,105,109,112,108,101,109,101,110,116,97,116,105,111,110,
-+ 46,99,97,99,104,101,95,116,97,103,32,105,115,32,78,111,
-+ 110,101,32,116,104,101,110,32,78,111,116,73,109,112,108,101,
-+ 109,101,110,116,101,100,69,114,114,111,114,32,105,115,32,114,
-+ 97,105,115,101,100,46,10,10,32,32,32,32,78,122,70,116,
-+ 104,101,32,100,101,98,117,103,95,111,118,101,114,114,105,100,
-+ 101,32,112,97,114,97,109,101,116,101,114,32,105,115,32,100,
-+ 101,112,114,101,99,97,116,101,100,59,32,117,115,101,32,39,
-+ 111,112,116,105,109,105,122,97,116,105,111,110,39,32,105,110,
-+ 115,116,101,97,100,122,50,100,101,98,117,103,95,111,118,101,
-+ 114,114,105,100,101,32,111,114,32,111,112,116,105,109,105,122,
-+ 97,116,105,111,110,32,109,117,115,116,32,98,101,32,115,101,
-+ 116,32,116,111,32,78,111,110,101,114,32,0,0,0,114,31,
-+ 0,0,0,218,1,46,122,36,115,121,115,46,105,109,112,108,
-+ 101,109,101,110,116,97,116,105,111,110,46,99,97,99,104,101,
-+ 95,116,97,103,32,105,115,32,78,111,110,101,233,0,0,0,
-+ 0,122,24,123,33,114,125,32,105,115,32,110,111,116,32,97,
-+ 108,112,104,97,110,117,109,101,114,105,99,122,7,123,125,46,
-+ 123,125,123,125,41,21,218,9,95,119,97,114,110,105,110,103,
-+ 115,218,4,119,97,114,110,218,18,68,101,112,114,101,99,97,
-+ 116,105,111,110,87,97,114,110,105,110,103,218,9,84,121,112,
-+ 101,69,114,114,111,114,114,40,0,0,0,114,34,0,0,0,
-+ 114,8,0,0,0,218,14,105,109,112,108,101,109,101,110,116,
-+ 97,116,105,111,110,218,9,99,97,99,104,101,95,116,97,103,
-+ 218,19,78,111,116,73,109,112,108,101,109,101,110,116,101,100,
-+ 69,114,114,111,114,114,28,0,0,0,218,5,102,108,97,103,
-+ 115,218,8,111,112,116,105,109,105,122,101,218,3,115,116,114,
-+ 218,7,105,115,97,108,110,117,109,218,10,86,97,108,117,101,
-+ 69,114,114,111,114,114,49,0,0,0,218,4,95,79,80,84,
-+ 114,30,0,0,0,218,8,95,80,89,67,65,67,72,69,218,
-+ 17,66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,
-+ 69,83,41,11,114,37,0,0,0,90,14,100,101,98,117,103,
-+ 95,111,118,101,114,114,105,100,101,114,59,0,0,0,218,7,
-+ 109,101,115,115,97,103,101,218,4,104,101,97,100,114,39,0,
-+ 0,0,90,4,98,97,115,101,218,3,115,101,112,218,4,114,
-+ 101,115,116,90,3,116,97,103,90,15,97,108,109,111,115,116,
- 95,102,105,108,101,110,97,109,101,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,218,17,115,111,117,114,99,101,
-- 95,102,114,111,109,95,99,97,99,104,101,42,1,0,0,115,
-- 44,0,0,0,0,9,18,1,12,1,18,1,18,1,12,1,
-- 9,1,15,1,15,1,12,1,9,1,15,1,12,1,22,1,
-- 15,1,9,1,12,1,22,1,12,1,9,1,12,1,19,1,
-- 114,87,0,0,0,99,1,0,0,0,0,0,0,0,5,0,
-- 0,0,12,0,0,0,67,0,0,0,115,164,0,0,0,116,
-- 0,0,124,0,0,131,1,0,100,1,0,107,2,0,114,22,
-- 0,100,2,0,83,124,0,0,106,1,0,100,3,0,131,1,
-- 0,92,3,0,125,1,0,125,2,0,125,3,0,124,1,0,
-- 12,115,81,0,124,3,0,106,2,0,131,0,0,100,7,0,
-- 100,8,0,133,2,0,25,100,6,0,107,3,0,114,85,0,
-- 124,0,0,83,121,16,0,116,3,0,124,0,0,131,1,0,
-- 125,4,0,87,110,40,0,4,116,4,0,116,5,0,102,2,
-- 0,107,10,0,114,143,0,1,1,1,124,0,0,100,2,0,
-- 100,9,0,133,2,0,25,125,4,0,89,110,1,0,88,116,
-- 6,0,124,4,0,131,1,0,114,160,0,124,4,0,83,124,
-- 0,0,83,41,10,122,188,67,111,110,118,101,114,116,32,97,
-- 32,98,121,116,101,99,111,100,101,32,102,105,108,101,32,112,
-- 97,116,104,32,116,111,32,97,32,115,111,117,114,99,101,32,
-- 112,97,116,104,32,40,105,102,32,112,111,115,115,105,98,108,
-- 101,41,46,10,10,32,32,32,32,84,104,105,115,32,102,117,
-- 110,99,116,105,111,110,32,101,120,105,115,116,115,32,112,117,
-- 114,101,108,121,32,102,111,114,32,98,97,99,107,119,97,114,
-- 100,115,45,99,111,109,112,97,116,105,98,105,108,105,116,121,
-- 32,102,111,114,10,32,32,32,32,80,121,73,109,112,111,114,
-- 116,95,69,120,101,99,67,111,100,101,77,111,100,117,108,101,
-- 87,105,116,104,70,105,108,101,110,97,109,101,115,40,41,32,
-- 105,110,32,116,104,101,32,67,32,65,80,73,46,10,10,32,
-- 32,32,32,114,61,0,0,0,78,114,60,0,0,0,114,82,
-- 0,0,0,114,31,0,0,0,90,2,112,121,233,253,255,255,
-- 255,233,255,255,255,255,114,89,0,0,0,41,7,114,33,0,
-- 0,0,114,34,0,0,0,218,5,108,111,119,101,114,114,87,
-- 0,0,0,114,68,0,0,0,114,73,0,0,0,114,46,0,
-- 0,0,41,5,218,13,98,121,116,101,99,111,100,101,95,112,
-- 97,116,104,114,80,0,0,0,114,38,0,0,0,90,9,101,
-- 120,116,101,110,115,105,111,110,218,11,115,111,117,114,99,101,
-- 95,112,97,116,104,114,4,0,0,0,114,4,0,0,0,114,
-- 6,0,0,0,218,15,95,103,101,116,95,115,111,117,114,99,
-- 101,102,105,108,101,75,1,0,0,115,20,0,0,0,0,7,
-- 18,1,4,1,24,1,35,1,4,1,3,1,16,1,19,1,
-- 21,1,114,93,0,0,0,99,1,0,0,0,0,0,0,0,
-- 1,0,0,0,11,0,0,0,67,0,0,0,115,92,0,0,
-- 0,124,0,0,106,0,0,116,1,0,116,2,0,131,1,0,
-- 131,1,0,114,59,0,121,14,0,116,3,0,124,0,0,131,
-- 1,0,83,87,113,88,0,4,116,4,0,107,10,0,114,55,
-- 0,1,1,1,89,113,88,0,88,110,29,0,124,0,0,106,
-- 0,0,116,1,0,116,5,0,131,1,0,131,1,0,114,84,
-- 0,124,0,0,83,100,0,0,83,100,0,0,83,41,1,78,
-- 41,6,218,8,101,110,100,115,119,105,116,104,218,5,116,117,
-- 112,108,101,114,86,0,0,0,114,81,0,0,0,114,68,0,
-- 0,0,114,76,0,0,0,41,1,218,8,102,105,108,101,110,
-- 97,109,101,114,4,0,0,0,114,4,0,0,0,114,6,0,
-- 0,0,218,11,95,103,101,116,95,99,97,99,104,101,100,94,
-- 1,0,0,115,16,0,0,0,0,1,21,1,3,1,14,1,
-- 13,1,8,1,21,1,4,2,114,97,0,0,0,99,1,0,
-- 0,0,0,0,0,0,2,0,0,0,11,0,0,0,67,0,
-- 0,0,115,60,0,0,0,121,19,0,116,0,0,124,0,0,
-- 131,1,0,106,1,0,125,1,0,87,110,24,0,4,116,2,
-- 0,107,10,0,114,45,0,1,1,1,100,1,0,125,1,0,
-- 89,110,1,0,88,124,1,0,100,2,0,79,125,1,0,124,
-- 1,0,83,41,3,122,51,67,97,108,99,117,108,97,116,101,
-- 32,116,104,101,32,109,111,100,101,32,112,101,114,109,105,115,
-- 115,105,111,110,115,32,102,111,114,32,97,32,98,121,116,101,
-- 99,111,100,101,32,102,105,108,101,46,105,182,1,0,0,233,
-- 128,0,0,0,41,3,114,41,0,0,0,114,43,0,0,0,
-- 114,42,0,0,0,41,2,114,37,0,0,0,114,44,0,0,
-+ 0,0,0,114,6,0,0,0,218,17,99,97,99,104,101,95,
-+ 102,114,111,109,95,115,111,117,114,99,101,20,1,0,0,115,
-+ 46,0,0,0,0,18,12,1,9,1,7,1,12,1,6,1,
-+ 12,1,18,1,18,1,24,1,12,1,12,1,12,1,36,1,
-+ 12,1,18,1,9,2,12,1,12,1,12,1,12,1,21,1,
-+ 21,1,114,81,0,0,0,99,1,0,0,0,0,0,0,0,
-+ 8,0,0,0,5,0,0,0,67,0,0,0,115,62,1,0,
-+ 0,116,0,0,106,1,0,106,2,0,100,1,0,107,8,0,
-+ 114,30,0,116,3,0,100,2,0,131,1,0,130,1,0,116,
-+ 4,0,124,0,0,131,1,0,92,2,0,125,1,0,125,2,
-+ 0,116,4,0,124,1,0,131,1,0,92,2,0,125,1,0,
-+ 125,3,0,124,3,0,116,5,0,107,3,0,114,102,0,116,
-+ 6,0,100,3,0,106,7,0,116,5,0,124,0,0,131,2,
-+ 0,131,1,0,130,1,0,124,2,0,106,8,0,100,4,0,
-+ 131,1,0,125,4,0,124,4,0,100,11,0,107,7,0,114,
-+ 153,0,116,6,0,100,7,0,106,7,0,124,2,0,131,1,
-+ 0,131,1,0,130,1,0,110,125,0,124,4,0,100,6,0,
-+ 107,2,0,114,22,1,124,2,0,106,9,0,100,4,0,100,
-+ 5,0,131,2,0,100,12,0,25,125,5,0,124,5,0,106,
-+ 10,0,116,11,0,131,1,0,115,223,0,116,6,0,100,8,
-+ 0,106,7,0,116,11,0,131,1,0,131,1,0,130,1,0,
-+ 124,5,0,116,12,0,116,11,0,131,1,0,100,1,0,133,
-+ 2,0,25,125,6,0,124,6,0,106,13,0,131,0,0,115,
-+ 22,1,116,6,0,100,9,0,106,7,0,124,5,0,131,1,
-+ 0,131,1,0,130,1,0,124,2,0,106,14,0,100,4,0,
-+ 131,1,0,100,10,0,25,125,7,0,116,15,0,124,1,0,
-+ 124,7,0,116,16,0,100,10,0,25,23,131,2,0,83,41,
-+ 13,97,110,1,0,0,71,105,118,101,110,32,116,104,101,32,
-+ 112,97,116,104,32,116,111,32,97,32,46,112,121,99,46,32,
-+ 102,105,108,101,44,32,114,101,116,117,114,110,32,116,104,101,
-+ 32,112,97,116,104,32,116,111,32,105,116,115,32,46,112,121,
-+ 32,102,105,108,101,46,10,10,32,32,32,32,84,104,101,32,
-+ 46,112,121,99,32,102,105,108,101,32,100,111,101,115,32,110,
-+ 111,116,32,110,101,101,100,32,116,111,32,101,120,105,115,116,
-+ 59,32,116,104,105,115,32,115,105,109,112,108,121,32,114,101,
-+ 116,117,114,110,115,32,116,104,101,32,112,97,116,104,32,116,
-+ 111,10,32,32,32,32,116,104,101,32,46,112,121,32,102,105,
-+ 108,101,32,99,97,108,99,117,108,97,116,101,100,32,116,111,
-+ 32,99,111,114,114,101,115,112,111,110,100,32,116,111,32,116,
-+ 104,101,32,46,112,121,99,32,102,105,108,101,46,32,32,73,
-+ 102,32,112,97,116,104,32,100,111,101,115,10,32,32,32,32,
-+ 110,111,116,32,99,111,110,102,111,114,109,32,116,111,32,80,
-+ 69,80,32,51,49,52,55,47,52,56,56,32,102,111,114,109,
-+ 97,116,44,32,86,97,108,117,101,69,114,114,111,114,32,119,
-+ 105,108,108,32,98,101,32,114,97,105,115,101,100,46,32,73,
-+ 102,10,32,32,32,32,115,121,115,46,105,109,112,108,101,109,
-+ 101,110,116,97,116,105,111,110,46,99,97,99,104,101,95,116,
-+ 97,103,32,105,115,32,78,111,110,101,32,116,104,101,110,32,
-+ 78,111,116,73,109,112,108,101,109,101,110,116,101,100,69,114,
-+ 114,111,114,32,105,115,32,114,97,105,115,101,100,46,10,10,
-+ 32,32,32,32,78,122,36,115,121,115,46,105,109,112,108,101,
-+ 109,101,110,116,97,116,105,111,110,46,99,97,99,104,101,95,
-+ 116,97,103,32,105,115,32,78,111,110,101,122,37,123,125,32,
-+ 110,111,116,32,98,111,116,116,111,109,45,108,101,118,101,108,
-+ 32,100,105,114,101,99,116,111,114,121,32,105,110,32,123,33,
-+ 114,125,114,60,0,0,0,114,58,0,0,0,233,3,0,0,
-+ 0,122,33,101,120,112,101,99,116,101,100,32,111,110,108,121,
-+ 32,50,32,111,114,32,51,32,100,111,116,115,32,105,110,32,
-+ 123,33,114,125,122,57,111,112,116,105,109,105,122,97,116,105,
-+ 111,110,32,112,111,114,116,105,111,110,32,111,102,32,102,105,
-+ 108,101,110,97,109,101,32,100,111,101,115,32,110,111,116,32,
-+ 115,116,97,114,116,32,119,105,116,104,32,123,33,114,125,122,
-+ 52,111,112,116,105,109,105,122,97,116,105,111,110,32,108,101,
-+ 118,101,108,32,123,33,114,125,32,105,115,32,110,111,116,32,
-+ 97,110,32,97,108,112,104,97,110,117,109,101,114,105,99,32,
-+ 118,97,108,117,101,114,61,0,0,0,62,2,0,0,0,114,
-+ 58,0,0,0,114,82,0,0,0,233,254,255,255,255,41,17,
-+ 114,8,0,0,0,114,66,0,0,0,114,67,0,0,0,114,
-+ 68,0,0,0,114,40,0,0,0,114,75,0,0,0,114,73,
-+ 0,0,0,114,49,0,0,0,218,5,99,111,117,110,116,114,
-+ 36,0,0,0,114,10,0,0,0,114,74,0,0,0,114,33,
-+ 0,0,0,114,72,0,0,0,218,9,112,97,114,116,105,116,
-+ 105,111,110,114,30,0,0,0,218,15,83,79,85,82,67,69,
-+ 95,83,85,70,70,73,88,69,83,41,8,114,37,0,0,0,
-+ 114,78,0,0,0,90,16,112,121,99,97,99,104,101,95,102,
-+ 105,108,101,110,97,109,101,90,7,112,121,99,97,99,104,101,
-+ 90,9,100,111,116,95,99,111,117,110,116,114,59,0,0,0,
-+ 90,9,111,112,116,95,108,101,118,101,108,90,13,98,97,115,
-+ 101,95,102,105,108,101,110,97,109,101,114,4,0,0,0,114,
-+ 4,0,0,0,114,6,0,0,0,218,17,115,111,117,114,99,
-+ 101,95,102,114,111,109,95,99,97,99,104,101,64,1,0,0,
-+ 115,44,0,0,0,0,9,18,1,12,1,18,1,18,1,12,
-+ 1,9,1,15,1,15,1,12,1,9,1,15,1,12,1,22,
-+ 1,15,1,9,1,12,1,22,1,12,1,9,1,12,1,19,
-+ 1,114,87,0,0,0,99,1,0,0,0,0,0,0,0,5,
-+ 0,0,0,12,0,0,0,67,0,0,0,115,164,0,0,0,
-+ 116,0,0,124,0,0,131,1,0,100,1,0,107,2,0,114,
-+ 22,0,100,2,0,83,124,0,0,106,1,0,100,3,0,131,
-+ 1,0,92,3,0,125,1,0,125,2,0,125,3,0,124,1,
-+ 0,12,115,81,0,124,3,0,106,2,0,131,0,0,100,7,
-+ 0,100,8,0,133,2,0,25,100,6,0,107,3,0,114,85,
-+ 0,124,0,0,83,121,16,0,116,3,0,124,0,0,131,1,
-+ 0,125,4,0,87,110,40,0,4,116,4,0,116,5,0,102,
-+ 2,0,107,10,0,114,143,0,1,1,1,124,0,0,100,2,
-+ 0,100,9,0,133,2,0,25,125,4,0,89,110,1,0,88,
-+ 116,6,0,124,4,0,131,1,0,114,160,0,124,4,0,83,
-+ 124,0,0,83,41,10,122,188,67,111,110,118,101,114,116,32,
-+ 97,32,98,121,116,101,99,111,100,101,32,102,105,108,101,32,
-+ 112,97,116,104,32,116,111,32,97,32,115,111,117,114,99,101,
-+ 32,112,97,116,104,32,40,105,102,32,112,111,115,115,105,98,
-+ 108,101,41,46,10,10,32,32,32,32,84,104,105,115,32,102,
-+ 117,110,99,116,105,111,110,32,101,120,105,115,116,115,32,112,
-+ 117,114,101,108,121,32,102,111,114,32,98,97,99,107,119,97,
-+ 114,100,115,45,99,111,109,112,97,116,105,98,105,108,105,116,
-+ 121,32,102,111,114,10,32,32,32,32,80,121,73,109,112,111,
-+ 114,116,95,69,120,101,99,67,111,100,101,77,111,100,117,108,
-+ 101,87,105,116,104,70,105,108,101,110,97,109,101,115,40,41,
-+ 32,105,110,32,116,104,101,32,67,32,65,80,73,46,10,10,
-+ 32,32,32,32,114,61,0,0,0,78,114,60,0,0,0,114,
-+ 82,0,0,0,114,31,0,0,0,90,2,112,121,233,253,255,
-+ 255,255,233,255,255,255,255,114,89,0,0,0,41,7,114,33,
-+ 0,0,0,114,34,0,0,0,218,5,108,111,119,101,114,114,
-+ 87,0,0,0,114,68,0,0,0,114,73,0,0,0,114,46,
-+ 0,0,0,41,5,218,13,98,121,116,101,99,111,100,101,95,
-+ 112,97,116,104,114,80,0,0,0,114,38,0,0,0,90,9,
-+ 101,120,116,101,110,115,105,111,110,218,11,115,111,117,114,99,
-+ 101,95,112,97,116,104,114,4,0,0,0,114,4,0,0,0,
-+ 114,6,0,0,0,218,15,95,103,101,116,95,115,111,117,114,
-+ 99,101,102,105,108,101,97,1,0,0,115,20,0,0,0,0,
-+ 7,18,1,4,1,24,1,35,1,4,1,3,1,16,1,19,
-+ 1,21,1,114,93,0,0,0,99,1,0,0,0,0,0,0,
-+ 0,1,0,0,0,11,0,0,0,67,0,0,0,115,92,0,
-+ 0,0,124,0,0,106,0,0,116,1,0,116,2,0,131,1,
-+ 0,131,1,0,114,59,0,121,14,0,116,3,0,124,0,0,
-+ 131,1,0,83,87,113,88,0,4,116,4,0,107,10,0,114,
-+ 55,0,1,1,1,89,113,88,0,88,110,29,0,124,0,0,
-+ 106,0,0,116,1,0,116,5,0,131,1,0,131,1,0,114,
-+ 84,0,124,0,0,83,100,0,0,83,100,0,0,83,41,1,
-+ 78,41,6,218,8,101,110,100,115,119,105,116,104,218,5,116,
-+ 117,112,108,101,114,86,0,0,0,114,81,0,0,0,114,68,
-+ 0,0,0,114,76,0,0,0,41,1,218,8,102,105,108,101,
-+ 110,97,109,101,114,4,0,0,0,114,4,0,0,0,114,6,
-+ 0,0,0,218,11,95,103,101,116,95,99,97,99,104,101,100,
-+ 116,1,0,0,115,16,0,0,0,0,1,21,1,3,1,14,
-+ 1,13,1,8,1,21,1,4,2,114,97,0,0,0,99,1,
-+ 0,0,0,0,0,0,0,2,0,0,0,11,0,0,0,67,
-+ 0,0,0,115,60,0,0,0,121,19,0,116,0,0,124,0,
-+ 0,131,1,0,106,1,0,125,1,0,87,110,24,0,4,116,
-+ 2,0,107,10,0,114,45,0,1,1,1,100,1,0,125,1,
-+ 0,89,110,1,0,88,124,1,0,100,2,0,79,125,1,0,
-+ 124,1,0,83,41,3,122,51,67,97,108,99,117,108,97,116,
-+ 101,32,116,104,101,32,109,111,100,101,32,112,101,114,109,105,
-+ 115,115,105,111,110,115,32,102,111,114,32,97,32,98,121,116,
-+ 101,99,111,100,101,32,102,105,108,101,46,105,182,1,0,0,
-+ 233,128,0,0,0,41,3,114,41,0,0,0,114,43,0,0,
-+ 0,114,42,0,0,0,41,2,114,37,0,0,0,114,44,0,
-+ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-+ 0,218,10,95,99,97,108,99,95,109,111,100,101,128,1,0,
-+ 0,115,12,0,0,0,0,2,3,1,19,1,13,1,11,3,
-+ 10,1,114,99,0,0,0,218,9,118,101,114,98,111,115,105,
-+ 116,121,114,31,0,0,0,99,1,0,0,0,1,0,0,0,
-+ 3,0,0,0,4,0,0,0,71,0,0,0,115,75,0,0,
-+ 0,116,0,0,106,1,0,106,2,0,124,1,0,107,5,0,
-+ 114,71,0,124,0,0,106,3,0,100,6,0,131,1,0,115,
-+ 43,0,100,3,0,124,0,0,23,125,0,0,116,4,0,124,
-+ 0,0,106,5,0,124,2,0,140,0,0,100,4,0,116,0,
-+ 0,106,6,0,131,1,1,1,100,5,0,83,41,7,122,61,
-+ 80,114,105,110,116,32,116,104,101,32,109,101,115,115,97,103,
-+ 101,32,116,111,32,115,116,100,101,114,114,32,105,102,32,45,
-+ 118,47,80,89,84,72,79,78,86,69,82,66,79,83,69,32,
-+ 105,115,32,116,117,114,110,101,100,32,111,110,46,250,1,35,
-+ 250,7,105,109,112,111,114,116,32,122,2,35,32,114,56,0,
-+ 0,0,78,41,2,114,101,0,0,0,114,102,0,0,0,41,
-+ 7,114,8,0,0,0,114,69,0,0,0,218,7,118,101,114,
-+ 98,111,115,101,114,10,0,0,0,218,5,112,114,105,110,116,
-+ 114,49,0,0,0,218,6,115,116,100,101,114,114,41,3,114,
-+ 77,0,0,0,114,100,0,0,0,218,4,97,114,103,115,114,
-+ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,16,
-+ 95,118,101,114,98,111,115,101,95,109,101,115,115,97,103,101,
-+ 140,1,0,0,115,8,0,0,0,0,2,18,1,15,1,10,
-+ 1,114,107,0,0,0,99,1,0,0,0,0,0,0,0,3,
-+ 0,0,0,11,0,0,0,3,0,0,0,115,84,0,0,0,
-+ 100,1,0,135,0,0,102,1,0,100,2,0,100,3,0,134,
-+ 1,0,125,1,0,121,13,0,116,0,0,106,1,0,125,2,
-+ 0,87,110,30,0,4,116,2,0,107,10,0,114,66,0,1,
-+ 1,1,100,4,0,100,5,0,132,0,0,125,2,0,89,110,
-+ 1,0,88,124,2,0,124,1,0,136,0,0,131,2,0,1,
-+ 124,1,0,83,41,6,122,252,68,101,99,111,114,97,116,111,
-+ 114,32,116,111,32,118,101,114,105,102,121,32,116,104,97,116,
-+ 32,116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,
-+ 103,32,114,101,113,117,101,115,116,101,100,32,109,97,116,99,
-+ 104,101,115,32,116,104,101,32,111,110,101,32,116,104,101,10,
-+ 32,32,32,32,108,111,97,100,101,114,32,99,97,110,32,104,
-+ 97,110,100,108,101,46,10,10,32,32,32,32,84,104,101,32,
-+ 102,105,114,115,116,32,97,114,103,117,109,101,110,116,32,40,
-+ 115,101,108,102,41,32,109,117,115,116,32,100,101,102,105,110,
-+ 101,32,95,110,97,109,101,32,119,104,105,99,104,32,116,104,
-+ 101,32,115,101,99,111,110,100,32,97,114,103,117,109,101,110,
-+ 116,32,105,115,10,32,32,32,32,99,111,109,112,97,114,101,
-+ 100,32,97,103,97,105,110,115,116,46,32,73,102,32,116,104,
-+ 101,32,99,111,109,112,97,114,105,115,111,110,32,102,97,105,
-+ 108,115,32,116,104,101,110,32,73,109,112,111,114,116,69,114,
-+ 114,111,114,32,105,115,32,114,97,105,115,101,100,46,10,10,
-+ 32,32,32,32,78,99,2,0,0,0,0,0,0,0,4,0,
-+ 0,0,5,0,0,0,31,0,0,0,115,89,0,0,0,124,
-+ 1,0,100,0,0,107,8,0,114,24,0,124,0,0,106,0,
-+ 0,125,1,0,110,46,0,124,0,0,106,0,0,124,1,0,
-+ 107,3,0,114,70,0,116,1,0,100,1,0,124,0,0,106,
-+ 0,0,124,1,0,102,2,0,22,100,2,0,124,1,0,131,
-+ 1,1,130,1,0,136,0,0,124,0,0,124,1,0,124,2,
-+ 0,124,3,0,142,2,0,83,41,3,78,122,30,108,111,97,
-+ 100,101,114,32,102,111,114,32,37,115,32,99,97,110,110,111,
-+ 116,32,104,97,110,100,108,101,32,37,115,218,4,110,97,109,
-+ 101,41,2,114,108,0,0,0,218,11,73,109,112,111,114,116,
-+ 69,114,114,111,114,41,4,218,4,115,101,108,102,114,108,0,
-+ 0,0,114,106,0,0,0,90,6,107,119,97,114,103,115,41,
-+ 1,218,6,109,101,116,104,111,100,114,4,0,0,0,114,6,
-+ 0,0,0,218,19,95,99,104,101,99,107,95,110,97,109,101,
-+ 95,119,114,97,112,112,101,114,156,1,0,0,115,12,0,0,
-+ 0,0,1,12,1,12,1,15,1,6,1,25,1,122,40,95,
-+ 99,104,101,99,107,95,110,97,109,101,46,60,108,111,99,97,
-+ 108,115,62,46,95,99,104,101,99,107,95,110,97,109,101,95,
-+ 119,114,97,112,112,101,114,99,2,0,0,0,0,0,0,0,
-+ 3,0,0,0,7,0,0,0,83,0,0,0,115,92,0,0,
-+ 0,120,66,0,100,1,0,100,2,0,100,3,0,100,4,0,
-+ 103,4,0,68,93,46,0,125,2,0,116,0,0,124,1,0,
-+ 124,2,0,131,2,0,114,19,0,116,1,0,124,0,0,124,
-+ 2,0,116,2,0,124,1,0,124,2,0,131,2,0,131,3,
-+ 0,1,113,19,0,87,124,0,0,106,3,0,106,4,0,124,
-+ 1,0,106,3,0,131,1,0,1,100,0,0,83,41,5,78,
-+ 218,10,95,95,109,111,100,117,108,101,95,95,218,8,95,95,
-+ 110,97,109,101,95,95,218,12,95,95,113,117,97,108,110,97,
-+ 109,101,95,95,218,7,95,95,100,111,99,95,95,41,5,218,
-+ 7,104,97,115,97,116,116,114,218,7,115,101,116,97,116,116,
-+ 114,218,7,103,101,116,97,116,116,114,218,8,95,95,100,105,
-+ 99,116,95,95,218,6,117,112,100,97,116,101,41,3,90,3,
-+ 110,101,119,90,3,111,108,100,114,54,0,0,0,114,4,0,
-+ 0,0,114,4,0,0,0,114,6,0,0,0,218,5,95,119,
-+ 114,97,112,167,1,0,0,115,8,0,0,0,0,1,25,1,
-+ 15,1,29,1,122,26,95,99,104,101,99,107,95,110,97,109,
-+ 101,46,60,108,111,99,97,108,115,62,46,95,119,114,97,112,
-+ 41,3,218,10,95,98,111,111,116,115,116,114,97,112,114,122,
-+ 0,0,0,218,9,78,97,109,101,69,114,114,111,114,41,3,
-+ 114,111,0,0,0,114,112,0,0,0,114,122,0,0,0,114,
-+ 4,0,0,0,41,1,114,111,0,0,0,114,6,0,0,0,
-+ 218,11,95,99,104,101,99,107,95,110,97,109,101,148,1,0,
-+ 0,115,14,0,0,0,0,8,21,7,3,1,13,1,13,2,
-+ 17,5,13,1,114,125,0,0,0,99,2,0,0,0,0,0,
-+ 0,0,5,0,0,0,4,0,0,0,67,0,0,0,115,84,
-+ 0,0,0,124,0,0,106,0,0,124,1,0,131,1,0,92,
-+ 2,0,125,2,0,125,3,0,124,2,0,100,1,0,107,8,
-+ 0,114,80,0,116,1,0,124,3,0,131,1,0,114,80,0,
-+ 100,2,0,125,4,0,116,2,0,106,3,0,124,4,0,106,
-+ 4,0,124,3,0,100,3,0,25,131,1,0,116,5,0,131,
-+ 2,0,1,124,2,0,83,41,4,122,155,84,114,121,32,116,
-+ 111,32,102,105,110,100,32,97,32,108,111,97,100,101,114,32,
-+ 102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,
-+ 100,32,109,111,100,117,108,101,32,98,121,32,100,101,108,101,
-+ 103,97,116,105,110,103,32,116,111,10,32,32,32,32,115,101,
-+ 108,102,46,102,105,110,100,95,108,111,97,100,101,114,40,41,
-+ 46,10,10,32,32,32,32,84,104,105,115,32,109,101,116,104,
-+ 111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
-+ 32,105,110,32,102,97,118,111,114,32,111,102,32,102,105,110,
-+ 100,101,114,46,102,105,110,100,95,115,112,101,99,40,41,46,
-+ 10,10,32,32,32,32,78,122,44,78,111,116,32,105,109,112,
-+ 111,114,116,105,110,103,32,100,105,114,101,99,116,111,114,121,
-+ 32,123,125,58,32,109,105,115,115,105,110,103,32,95,95,105,
-+ 110,105,116,95,95,114,61,0,0,0,41,6,218,11,102,105,
-+ 110,100,95,108,111,97,100,101,114,114,33,0,0,0,114,62,
-+ 0,0,0,114,63,0,0,0,114,49,0,0,0,218,13,73,
-+ 109,112,111,114,116,87,97,114,110,105,110,103,41,5,114,110,
-+ 0,0,0,218,8,102,117,108,108,110,97,109,101,218,6,108,
-+ 111,97,100,101,114,218,8,112,111,114,116,105,111,110,115,218,
-+ 3,109,115,103,114,4,0,0,0,114,4,0,0,0,114,6,
-+ 0,0,0,218,17,95,102,105,110,100,95,109,111,100,117,108,
-+ 101,95,115,104,105,109,176,1,0,0,115,10,0,0,0,0,
-+ 10,21,1,24,1,6,1,29,1,114,132,0,0,0,99,4,
-+ 0,0,0,0,0,0,0,11,0,0,0,19,0,0,0,67,
-+ 0,0,0,115,252,1,0,0,105,0,0,125,4,0,124,2,
-+ 0,100,1,0,107,9,0,114,31,0,124,2,0,124,4,0,
-+ 100,2,0,60,110,6,0,100,3,0,125,2,0,124,3,0,
-+ 100,1,0,107,9,0,114,59,0,124,3,0,124,4,0,100,
-+ 4,0,60,124,0,0,100,1,0,100,5,0,133,2,0,25,
-+ 125,5,0,124,0,0,100,5,0,100,6,0,133,2,0,25,
-+ 125,6,0,124,0,0,100,6,0,100,7,0,133,2,0,25,
-+ 125,7,0,124,5,0,116,0,0,107,3,0,114,180,0,124,
-+ 5,0,116,1,0,107,3,0,114,180,0,100,8,0,106,2,
-+ 0,124,2,0,124,5,0,131,2,0,125,8,0,116,3,0,
-+ 100,9,0,124,8,0,131,2,0,1,116,4,0,124,8,0,
-+ 124,4,0,141,1,0,130,1,0,110,119,0,116,5,0,124,
-+ 6,0,131,1,0,100,5,0,107,3,0,114,241,0,100,10,
-+ 0,106,2,0,124,2,0,131,1,0,125,8,0,116,3,0,
-+ 100,9,0,124,8,0,131,2,0,1,116,6,0,124,8,0,
-+ 131,1,0,130,1,0,110,58,0,116,5,0,124,7,0,131,
-+ 1,0,100,5,0,107,3,0,114,43,1,100,11,0,106,2,
-+ 0,124,2,0,131,1,0,125,8,0,116,3,0,100,9,0,
-+ 124,8,0,131,2,0,1,116,6,0,124,8,0,131,1,0,
-+ 130,1,0,124,1,0,100,1,0,107,9,0,114,238,1,121,
-+ 20,0,116,7,0,124,1,0,100,12,0,25,131,1,0,125,
-+ 9,0,87,110,18,0,4,116,8,0,107,10,0,114,95,1,
-+ 1,1,1,89,110,62,0,88,116,9,0,124,6,0,131,1,
-+ 0,124,9,0,107,3,0,114,157,1,100,13,0,106,2,0,
-+ 124,2,0,131,1,0,125,8,0,116,3,0,100,9,0,124,
-+ 8,0,131,2,0,1,116,4,0,124,8,0,124,4,0,141,
-+ 1,0,130,1,0,121,18,0,124,1,0,100,14,0,25,100,
-+ 15,0,64,125,10,0,87,110,18,0,4,116,8,0,107,10,
-+ 0,114,195,1,1,1,1,89,110,43,0,88,116,9,0,124,
-+ 7,0,131,1,0,124,10,0,107,3,0,114,238,1,116,4,
-+ 0,100,13,0,106,2,0,124,2,0,131,1,0,124,4,0,
-+ 141,1,0,130,1,0,124,0,0,100,7,0,100,1,0,133,
-+ 2,0,25,83,41,16,97,122,1,0,0,86,97,108,105,100,
-+ 97,116,101,32,116,104,101,32,104,101,97,100,101,114,32,111,
-+ 102,32,116,104,101,32,112,97,115,115,101,100,45,105,110,32,
-+ 98,121,116,101,99,111,100,101,32,97,103,97,105,110,115,116,
-+ 32,115,111,117,114,99,101,95,115,116,97,116,115,32,40,105,
-+ 102,10,32,32,32,32,103,105,118,101,110,41,32,97,110,100,
-+ 32,114,101,116,117,114,110,105,110,103,32,116,104,101,32,98,
-+ 121,116,101,99,111,100,101,32,116,104,97,116,32,99,97,110,
-+ 32,98,101,32,99,111,109,112,105,108,101,100,32,98,121,32,
-+ 99,111,109,112,105,108,101,40,41,46,10,10,32,32,32,32,
-+ 65,108,108,32,111,116,104,101,114,32,97,114,103,117,109,101,
-+ 110,116,115,32,97,114,101,32,117,115,101,100,32,116,111,32,
-+ 101,110,104,97,110,99,101,32,101,114,114,111,114,32,114,101,
-+ 112,111,114,116,105,110,103,46,10,10,32,32,32,32,73,109,
-+ 112,111,114,116,69,114,114,111,114,32,105,115,32,114,97,105,
-+ 115,101,100,32,119,104,101,110,32,116,104,101,32,109,97,103,
-+ 105,99,32,110,117,109,98,101,114,32,105,115,32,105,110,99,
-+ 111,114,114,101,99,116,32,111,114,32,116,104,101,32,98,121,
-+ 116,101,99,111,100,101,32,105,115,10,32,32,32,32,102,111,
-+ 117,110,100,32,116,111,32,98,101,32,115,116,97,108,101,46,
-+ 32,69,79,70,69,114,114,111,114,32,105,115,32,114,97,105,
-+ 115,101,100,32,119,104,101,110,32,116,104,101,32,100,97,116,
-+ 97,32,105,115,32,102,111,117,110,100,32,116,111,32,98,101,
-+ 10,32,32,32,32,116,114,117,110,99,97,116,101,100,46,10,
-+ 10,32,32,32,32,78,114,108,0,0,0,122,10,60,98,121,
-+ 116,101,99,111,100,101,62,114,37,0,0,0,114,14,0,0,
-+ 0,233,8,0,0,0,233,12,0,0,0,122,30,98,97,100,
-+ 32,109,97,103,105,99,32,110,117,109,98,101,114,32,105,110,
-+ 32,123,33,114,125,58,32,123,33,114,125,122,2,123,125,122,
-+ 43,114,101,97,99,104,101,100,32,69,79,70,32,119,104,105,
-+ 108,101,32,114,101,97,100,105,110,103,32,116,105,109,101,115,
-+ 116,97,109,112,32,105,110,32,123,33,114,125,122,48,114,101,
-+ 97,99,104,101,100,32,69,79,70,32,119,104,105,108,101,32,
-+ 114,101,97,100,105,110,103,32,115,105,122,101,32,111,102,32,
-+ 115,111,117,114,99,101,32,105,110,32,123,33,114,125,218,5,
-+ 109,116,105,109,101,122,26,98,121,116,101,99,111,100,101,32,
-+ 105,115,32,115,116,97,108,101,32,102,111,114,32,123,33,114,
-+ 125,218,4,115,105,122,101,108,3,0,0,0,255,127,255,127,
-+ 3,0,41,10,218,12,77,65,71,73,67,95,78,85,77,66,
-+ 69,82,218,24,95,66,65,67,75,67,79,77,80,65,84,95,
-+ 77,65,71,73,67,95,78,85,77,66,69,82,114,49,0,0,
-+ 0,114,107,0,0,0,114,109,0,0,0,114,33,0,0,0,
-+ 218,8,69,79,70,69,114,114,111,114,114,16,0,0,0,218,
-+ 8,75,101,121,69,114,114,111,114,114,21,0,0,0,41,11,
-+ 114,55,0,0,0,218,12,115,111,117,114,99,101,95,115,116,
-+ 97,116,115,114,108,0,0,0,114,37,0,0,0,90,11,101,
-+ 120,99,95,100,101,116,97,105,108,115,90,5,109,97,103,105,
-+ 99,90,13,114,97,119,95,116,105,109,101,115,116,97,109,112,
-+ 90,8,114,97,119,95,115,105,122,101,114,77,0,0,0,218,
-+ 12,115,111,117,114,99,101,95,109,116,105,109,101,218,11,115,
-+ 111,117,114,99,101,95,115,105,122,101,114,4,0,0,0,114,
-+ 4,0,0,0,114,6,0,0,0,218,25,95,118,97,108,105,
-+ 100,97,116,101,95,98,121,116,101,99,111,100,101,95,104,101,
-+ 97,100,101,114,193,1,0,0,115,78,0,0,0,0,11,6,
-+ 1,12,1,13,3,6,1,12,1,10,1,16,1,16,1,16,
-+ 1,12,2,12,1,18,1,13,1,18,1,18,1,15,1,13,
-+ 1,15,1,18,1,15,1,13,1,12,1,12,1,3,1,20,
-+ 1,13,1,5,2,18,1,15,1,13,1,15,1,3,1,18,
-+ 1,13,1,5,2,18,1,15,1,9,1,114,144,0,0,0,
-+ 99,4,0,0,0,0,0,0,0,5,0,0,0,6,0,0,
-+ 0,67,0,0,0,115,112,0,0,0,116,0,0,106,1,0,
-+ 124,0,0,131,1,0,125,4,0,116,2,0,124,4,0,116,
-+ 3,0,131,2,0,114,75,0,116,4,0,100,1,0,124,2,
-+ 0,131,2,0,1,124,3,0,100,2,0,107,9,0,114,71,
-+ 0,116,5,0,106,6,0,124,4,0,124,3,0,131,2,0,
-+ 1,124,4,0,83,116,7,0,100,3,0,106,8,0,124,2,
-+ 0,131,1,0,100,4,0,124,1,0,100,5,0,124,2,0,
-+ 131,1,2,130,1,0,100,2,0,83,41,6,122,60,67,111,
-+ 109,112,105,108,101,32,98,121,116,101,99,111,100,101,32,97,
-+ 115,32,114,101,116,117,114,110,101,100,32,98,121,32,95,118,
-+ 97,108,105,100,97,116,101,95,98,121,116,101,99,111,100,101,
-+ 95,104,101,97,100,101,114,40,41,46,122,21,99,111,100,101,
-+ 32,111,98,106,101,99,116,32,102,114,111,109,32,123,33,114,
-+ 125,78,122,23,78,111,110,45,99,111,100,101,32,111,98,106,
-+ 101,99,116,32,105,110,32,123,33,114,125,114,108,0,0,0,
-+ 114,37,0,0,0,41,9,218,7,109,97,114,115,104,97,108,
-+ 90,5,108,111,97,100,115,218,10,105,115,105,110,115,116,97,
-+ 110,99,101,218,10,95,99,111,100,101,95,116,121,112,101,114,
-+ 107,0,0,0,218,4,95,105,109,112,90,16,95,102,105,120,
-+ 95,99,111,95,102,105,108,101,110,97,109,101,114,109,0,0,
-+ 0,114,49,0,0,0,41,5,114,55,0,0,0,114,108,0,
-+ 0,0,114,91,0,0,0,114,92,0,0,0,218,4,99,111,
-+ 100,101,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-+ 0,218,17,95,99,111,109,112,105,108,101,95,98,121,116,101,
-+ 99,111,100,101,250,1,0,0,115,16,0,0,0,0,2,15,
-+ 1,15,1,13,1,12,1,16,1,4,2,18,1,114,150,0,
-+ 0,0,114,61,0,0,0,99,3,0,0,0,0,0,0,0,
-+ 4,0,0,0,3,0,0,0,67,0,0,0,115,76,0,0,
-+ 0,116,0,0,116,1,0,131,1,0,125,3,0,124,3,0,
-+ 106,2,0,116,3,0,124,1,0,131,1,0,131,1,0,1,
-+ 124,3,0,106,2,0,116,3,0,124,2,0,131,1,0,131,
-+ 1,0,1,124,3,0,106,2,0,116,4,0,106,5,0,124,
-+ 0,0,131,1,0,131,1,0,1,124,3,0,83,41,1,122,
-+ 80,67,111,109,112,105,108,101,32,97,32,99,111,100,101,32,
-+ 111,98,106,101,99,116,32,105,110,116,111,32,98,121,116,101,
-+ 99,111,100,101,32,102,111,114,32,119,114,105,116,105,110,103,
-+ 32,111,117,116,32,116,111,32,97,32,98,121,116,101,45,99,
-+ 111,109,112,105,108,101,100,10,32,32,32,32,102,105,108,101,
-+ 46,41,6,218,9,98,121,116,101,97,114,114,97,121,114,137,
-+ 0,0,0,218,6,101,120,116,101,110,100,114,19,0,0,0,
-+ 114,145,0,0,0,90,5,100,117,109,112,115,41,4,114,149,
-+ 0,0,0,114,135,0,0,0,114,143,0,0,0,114,55,0,
-+ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-+ 0,218,17,95,99,111,100,101,95,116,111,95,98,121,116,101,
-+ 99,111,100,101,6,2,0,0,115,10,0,0,0,0,3,12,
-+ 1,19,1,19,1,22,1,114,153,0,0,0,99,1,0,0,
-+ 0,0,0,0,0,5,0,0,0,4,0,0,0,67,0,0,
-+ 0,115,89,0,0,0,100,1,0,100,2,0,108,0,0,125,
-+ 1,0,116,1,0,106,2,0,124,0,0,131,1,0,106,3,
-+ 0,125,2,0,124,1,0,106,4,0,124,2,0,131,1,0,
-+ 125,3,0,116,1,0,106,5,0,100,2,0,100,3,0,131,
-+ 2,0,125,4,0,124,4,0,106,6,0,124,0,0,106,6,
-+ 0,124,3,0,100,1,0,25,131,1,0,131,1,0,83,41,
-+ 4,122,121,68,101,99,111,100,101,32,98,121,116,101,115,32,
-+ 114,101,112,114,101,115,101,110,116,105,110,103,32,115,111,117,
-+ 114,99,101,32,99,111,100,101,32,97,110,100,32,114,101,116,
-+ 117,114,110,32,116,104,101,32,115,116,114,105,110,103,46,10,
-+ 10,32,32,32,32,85,110,105,118,101,114,115,97,108,32,110,
-+ 101,119,108,105,110,101,32,115,117,112,112,111,114,116,32,105,
-+ 115,32,117,115,101,100,32,105,110,32,116,104,101,32,100,101,
-+ 99,111,100,105,110,103,46,10,32,32,32,32,114,61,0,0,
-+ 0,78,84,41,7,218,8,116,111,107,101,110,105,122,101,114,
-+ 51,0,0,0,90,7,66,121,116,101,115,73,79,90,8,114,
-+ 101,97,100,108,105,110,101,90,15,100,101,116,101,99,116,95,
-+ 101,110,99,111,100,105,110,103,90,25,73,110,99,114,101,109,
-+ 101,110,116,97,108,78,101,119,108,105,110,101,68,101,99,111,
-+ 100,101,114,218,6,100,101,99,111,100,101,41,5,218,12,115,
-+ 111,117,114,99,101,95,98,121,116,101,115,114,154,0,0,0,
-+ 90,21,115,111,117,114,99,101,95,98,121,116,101,115,95,114,
-+ 101,97,100,108,105,110,101,218,8,101,110,99,111,100,105,110,
-+ 103,90,15,110,101,119,108,105,110,101,95,100,101,99,111,100,
-+ 101,114,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-+ 0,218,13,100,101,99,111,100,101,95,115,111,117,114,99,101,
-+ 16,2,0,0,115,10,0,0,0,0,5,12,1,18,1,15,
-+ 1,18,1,114,158,0,0,0,114,129,0,0,0,218,26,115,
-+ 117,98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,
-+ 108,111,99,97,116,105,111,110,115,99,2,0,0,0,2,0,
-+ 0,0,9,0,0,0,19,0,0,0,67,0,0,0,115,89,
-+ 1,0,0,124,1,0,100,1,0,107,8,0,114,73,0,100,
-+ 2,0,125,1,0,116,0,0,124,2,0,100,3,0,131,2,
-+ 0,114,73,0,121,19,0,124,2,0,106,1,0,124,0,0,
-+ 131,1,0,125,1,0,87,110,18,0,4,116,2,0,107,10,
-+ 0,114,72,0,1,1,1,89,110,1,0,88,116,3,0,106,
-+ 4,0,124,0,0,124,2,0,100,4,0,124,1,0,131,2,
-+ 1,125,4,0,100,5,0,124,4,0,95,5,0,124,2,0,
-+ 100,1,0,107,8,0,114,194,0,120,73,0,116,6,0,131,
-+ 0,0,68,93,58,0,92,2,0,125,5,0,125,6,0,124,
-+ 1,0,106,7,0,116,8,0,124,6,0,131,1,0,131,1,
-+ 0,114,128,0,124,5,0,124,0,0,124,1,0,131,2,0,
-+ 125,2,0,124,2,0,124,4,0,95,9,0,80,113,128,0,
-+ 87,100,1,0,83,124,3,0,116,10,0,107,8,0,114,23,
-+ 1,116,0,0,124,2,0,100,6,0,131,2,0,114,32,1,
-+ 121,19,0,124,2,0,106,11,0,124,0,0,131,1,0,125,
-+ 7,0,87,110,18,0,4,116,2,0,107,10,0,114,4,1,
-+ 1,1,1,89,113,32,1,88,124,7,0,114,32,1,103,0,
-+ 0,124,4,0,95,12,0,110,9,0,124,3,0,124,4,0,
-+ 95,12,0,124,4,0,106,12,0,103,0,0,107,2,0,114,
-+ 85,1,124,1,0,114,85,1,116,13,0,124,1,0,131,1,
-+ 0,100,7,0,25,125,8,0,124,4,0,106,12,0,106,14,
-+ 0,124,8,0,131,1,0,1,124,4,0,83,41,8,97,61,
-+ 1,0,0,82,101,116,117,114,110,32,97,32,109,111,100,117,
-+ 108,101,32,115,112,101,99,32,98,97,115,101,100,32,111,110,
-+ 32,97,32,102,105,108,101,32,108,111,99,97,116,105,111,110,
-+ 46,10,10,32,32,32,32,84,111,32,105,110,100,105,99,97,
-+ 116,101,32,116,104,97,116,32,116,104,101,32,109,111,100,117,
-+ 108,101,32,105,115,32,97,32,112,97,99,107,97,103,101,44,
-+ 32,115,101,116,10,32,32,32,32,115,117,98,109,111,100,117,
-+ 108,101,95,115,101,97,114,99,104,95,108,111,99,97,116,105,
-+ 111,110,115,32,116,111,32,97,32,108,105,115,116,32,111,102,
-+ 32,100,105,114,101,99,116,111,114,121,32,112,97,116,104,115,
-+ 46,32,32,65,110,10,32,32,32,32,101,109,112,116,121,32,
-+ 108,105,115,116,32,105,115,32,115,117,102,102,105,99,105,101,
-+ 110,116,44,32,116,104,111,117,103,104,32,105,116,115,32,110,
-+ 111,116,32,111,116,104,101,114,119,105,115,101,32,117,115,101,
-+ 102,117,108,32,116,111,32,116,104,101,10,32,32,32,32,105,
-+ 109,112,111,114,116,32,115,121,115,116,101,109,46,10,10,32,
-+ 32,32,32,84,104,101,32,108,111,97,100,101,114,32,109,117,
-+ 115,116,32,116,97,107,101,32,97,32,115,112,101,99,32,97,
-+ 115,32,105,116,115,32,111,110,108,121,32,95,95,105,110,105,
-+ 116,95,95,40,41,32,97,114,103,46,10,10,32,32,32,32,
-+ 78,122,9,60,117,110,107,110,111,119,110,62,218,12,103,101,
-+ 116,95,102,105,108,101,110,97,109,101,218,6,111,114,105,103,
-+ 105,110,84,218,10,105,115,95,112,97,99,107,97,103,101,114,
-+ 61,0,0,0,41,15,114,117,0,0,0,114,160,0,0,0,
-+ 114,109,0,0,0,114,123,0,0,0,218,10,77,111,100,117,
-+ 108,101,83,112,101,99,90,13,95,115,101,116,95,102,105,108,
-+ 101,97,116,116,114,218,27,95,103,101,116,95,115,117,112,112,
-+ 111,114,116,101,100,95,102,105,108,101,95,108,111,97,100,101,
-+ 114,115,114,94,0,0,0,114,95,0,0,0,114,129,0,0,
-+ 0,218,9,95,80,79,80,85,76,65,84,69,114,162,0,0,
-+ 0,114,159,0,0,0,114,40,0,0,0,218,6,97,112,112,
-+ 101,110,100,41,9,114,108,0,0,0,90,8,108,111,99,97,
-+ 116,105,111,110,114,129,0,0,0,114,159,0,0,0,218,4,
-+ 115,112,101,99,218,12,108,111,97,100,101,114,95,99,108,97,
-+ 115,115,218,8,115,117,102,102,105,120,101,115,114,162,0,0,
-+ 0,90,7,100,105,114,110,97,109,101,114,4,0,0,0,114,
-+ 4,0,0,0,114,6,0,0,0,218,23,115,112,101,99,95,
-+ 102,114,111,109,95,102,105,108,101,95,108,111,99,97,116,105,
-+ 111,110,33,2,0,0,115,60,0,0,0,0,12,12,4,6,
-+ 1,15,2,3,1,19,1,13,1,5,8,24,1,9,3,12,
-+ 1,22,1,21,1,15,1,9,1,5,2,4,3,12,2,15,
-+ 1,3,1,19,1,13,1,5,2,6,1,12,2,9,1,15,
-+ 1,6,1,16,1,16,2,114,170,0,0,0,99,0,0,0,
-+ 0,0,0,0,0,0,0,0,0,5,0,0,0,64,0,0,
-+ 0,115,121,0,0,0,101,0,0,90,1,0,100,0,0,90,
-+ 2,0,100,1,0,90,3,0,100,2,0,90,4,0,100,3,
-+ 0,90,5,0,100,4,0,90,6,0,101,7,0,100,5,0,
-+ 100,6,0,132,0,0,131,1,0,90,8,0,101,7,0,100,
-+ 7,0,100,8,0,132,0,0,131,1,0,90,9,0,101,7,
-+ 0,100,9,0,100,9,0,100,10,0,100,11,0,132,2,0,
-+ 131,1,0,90,10,0,101,7,0,100,9,0,100,12,0,100,
-+ 13,0,132,1,0,131,1,0,90,11,0,100,9,0,83,41,
-+ 14,218,21,87,105,110,100,111,119,115,82,101,103,105,115,116,
-+ 114,121,70,105,110,100,101,114,122,62,77,101,116,97,32,112,
-+ 97,116,104,32,102,105,110,100,101,114,32,102,111,114,32,109,
-+ 111,100,117,108,101,115,32,100,101,99,108,97,114,101,100,32,
-+ 105,110,32,116,104,101,32,87,105,110,100,111,119,115,32,114,
-+ 101,103,105,115,116,114,121,46,122,59,83,111,102,116,119,97,
-+ 114,101,92,80,121,116,104,111,110,92,80,121,116,104,111,110,
-+ 67,111,114,101,92,123,115,121,115,95,118,101,114,115,105,111,
-+ 110,125,92,77,111,100,117,108,101,115,92,123,102,117,108,108,
-+ 110,97,109,101,125,122,65,83,111,102,116,119,97,114,101,92,
-+ 80,121,116,104,111,110,92,80,121,116,104,111,110,67,111,114,
-+ 101,92,123,115,121,115,95,118,101,114,115,105,111,110,125,92,
-+ 77,111,100,117,108,101,115,92,123,102,117,108,108,110,97,109,
-+ 101,125,92,68,101,98,117,103,70,99,2,0,0,0,0,0,
-+ 0,0,2,0,0,0,11,0,0,0,67,0,0,0,115,67,
-+ 0,0,0,121,23,0,116,0,0,106,1,0,116,0,0,106,
-+ 2,0,124,1,0,131,2,0,83,87,110,37,0,4,116,3,
-+ 0,107,10,0,114,62,0,1,1,1,116,0,0,106,1,0,
-+ 116,0,0,106,4,0,124,1,0,131,2,0,83,89,110,1,
-+ 0,88,100,0,0,83,41,1,78,41,5,218,7,95,119,105,
-+ 110,114,101,103,90,7,79,112,101,110,75,101,121,90,17,72,
-+ 75,69,89,95,67,85,82,82,69,78,84,95,85,83,69,82,
-+ 114,42,0,0,0,90,18,72,75,69,89,95,76,79,67,65,
-+ 76,95,77,65,67,72,73,78,69,41,2,218,3,99,108,115,
-+ 114,5,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
-+ 6,0,0,0,218,14,95,111,112,101,110,95,114,101,103,105,
-+ 115,116,114,121,111,2,0,0,115,8,0,0,0,0,2,3,
-+ 1,23,1,13,1,122,36,87,105,110,100,111,119,115,82,101,
-+ 103,105,115,116,114,121,70,105,110,100,101,114,46,95,111,112,
-+ 101,110,95,114,101,103,105,115,116,114,121,99,2,0,0,0,
-+ 0,0,0,0,6,0,0,0,16,0,0,0,67,0,0,0,
-+ 115,143,0,0,0,124,0,0,106,0,0,114,21,0,124,0,
-+ 0,106,1,0,125,2,0,110,9,0,124,0,0,106,2,0,
-+ 125,2,0,124,2,0,106,3,0,100,1,0,124,1,0,100,
-+ 2,0,116,4,0,106,5,0,100,0,0,100,3,0,133,2,
-+ 0,25,131,0,2,125,3,0,121,47,0,124,0,0,106,6,
-+ 0,124,3,0,131,1,0,143,25,0,125,4,0,116,7,0,
-+ 106,8,0,124,4,0,100,4,0,131,2,0,125,5,0,87,
-+ 100,0,0,81,82,88,87,110,22,0,4,116,9,0,107,10,
-+ 0,114,138,0,1,1,1,100,0,0,83,89,110,1,0,88,
-+ 124,5,0,83,41,5,78,114,128,0,0,0,90,11,115,121,
-+ 115,95,118,101,114,115,105,111,110,114,82,0,0,0,114,32,
-+ 0,0,0,41,10,218,11,68,69,66,85,71,95,66,85,73,
-+ 76,68,218,18,82,69,71,73,83,84,82,89,95,75,69,89,
-+ 95,68,69,66,85,71,218,12,82,69,71,73,83,84,82,89,
-+ 95,75,69,89,114,49,0,0,0,114,8,0,0,0,218,7,
-+ 118,101,114,115,105,111,110,114,174,0,0,0,114,172,0,0,
-+ 0,90,10,81,117,101,114,121,86,97,108,117,101,114,42,0,
-+ 0,0,41,6,114,173,0,0,0,114,128,0,0,0,90,12,
-+ 114,101,103,105,115,116,114,121,95,107,101,121,114,5,0,0,
-+ 0,90,4,104,107,101,121,218,8,102,105,108,101,112,97,116,
-+ 104,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-+ 218,16,95,115,101,97,114,99,104,95,114,101,103,105,115,116,
-+ 114,121,118,2,0,0,115,22,0,0,0,0,2,9,1,12,
-+ 2,9,1,15,1,22,1,3,1,18,1,29,1,13,1,9,
-+ 1,122,38,87,105,110,100,111,119,115,82,101,103,105,115,116,
-+ 114,121,70,105,110,100,101,114,46,95,115,101,97,114,99,104,
-+ 95,114,101,103,105,115,116,114,121,78,99,4,0,0,0,0,
-+ 0,0,0,8,0,0,0,14,0,0,0,67,0,0,0,115,
-+ 158,0,0,0,124,0,0,106,0,0,124,1,0,131,1,0,
-+ 125,4,0,124,4,0,100,0,0,107,8,0,114,31,0,100,
-+ 0,0,83,121,14,0,116,1,0,124,4,0,131,1,0,1,
-+ 87,110,22,0,4,116,2,0,107,10,0,114,69,0,1,1,
-+ 1,100,0,0,83,89,110,1,0,88,120,81,0,116,3,0,
-+ 131,0,0,68,93,70,0,92,2,0,125,5,0,125,6,0,
-+ 124,4,0,106,4,0,116,5,0,124,6,0,131,1,0,131,
-+ 1,0,114,80,0,116,6,0,106,7,0,124,1,0,124,5,
-+ 0,124,1,0,124,4,0,131,2,0,100,1,0,124,4,0,
-+ 131,2,1,125,7,0,124,7,0,83,113,80,0,87,100,0,
-+ 0,83,41,2,78,114,161,0,0,0,41,8,114,180,0,0,
-+ 0,114,41,0,0,0,114,42,0,0,0,114,164,0,0,0,
-+ 114,94,0,0,0,114,95,0,0,0,114,123,0,0,0,218,
-+ 16,115,112,101,99,95,102,114,111,109,95,108,111,97,100,101,
-+ 114,41,8,114,173,0,0,0,114,128,0,0,0,114,37,0,
-+ 0,0,218,6,116,97,114,103,101,116,114,179,0,0,0,114,
-+ 129,0,0,0,114,169,0,0,0,114,167,0,0,0,114,4,
-+ 0,0,0,114,4,0,0,0,114,6,0,0,0,218,9,102,
-+ 105,110,100,95,115,112,101,99,133,2,0,0,115,26,0,0,
-+ 0,0,2,15,1,12,1,4,1,3,1,14,1,13,1,9,
-+ 1,22,1,21,1,9,1,15,1,9,1,122,31,87,105,110,
-+ 100,111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,
-+ 101,114,46,102,105,110,100,95,115,112,101,99,99,3,0,0,
-+ 0,0,0,0,0,4,0,0,0,3,0,0,0,67,0,0,
-+ 0,115,45,0,0,0,124,0,0,106,0,0,124,1,0,124,
-+ 2,0,131,2,0,125,3,0,124,3,0,100,1,0,107,9,
-+ 0,114,37,0,124,3,0,106,1,0,83,100,1,0,83,100,
-+ 1,0,83,41,2,122,108,70,105,110,100,32,109,111,100,117,
-+ 108,101,32,110,97,109,101,100,32,105,110,32,116,104,101,32,
-+ 114,101,103,105,115,116,114,121,46,10,10,32,32,32,32,32,
-+ 32,32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,
-+ 115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,85,
-+ 115,101,32,101,120,101,99,95,109,111,100,117,108,101,40,41,
-+ 32,105,110,115,116,101,97,100,46,10,10,32,32,32,32,32,
-+ 32,32,32,78,41,2,114,183,0,0,0,114,129,0,0,0,
-+ 41,4,114,173,0,0,0,114,128,0,0,0,114,37,0,0,
-+ 0,114,167,0,0,0,114,4,0,0,0,114,4,0,0,0,
-+ 114,6,0,0,0,218,11,102,105,110,100,95,109,111,100,117,
-+ 108,101,149,2,0,0,115,8,0,0,0,0,7,18,1,12,
-+ 1,7,2,122,33,87,105,110,100,111,119,115,82,101,103,105,
-+ 115,116,114,121,70,105,110,100,101,114,46,102,105,110,100,95,
-+ 109,111,100,117,108,101,41,12,114,114,0,0,0,114,113,0,
-+ 0,0,114,115,0,0,0,114,116,0,0,0,114,177,0,0,
-+ 0,114,176,0,0,0,114,175,0,0,0,218,11,99,108,97,
-+ 115,115,109,101,116,104,111,100,114,174,0,0,0,114,180,0,
-+ 0,0,114,183,0,0,0,114,184,0,0,0,114,4,0,0,
- 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-- 218,10,95,99,97,108,99,95,109,111,100,101,106,1,0,0,
-- 115,12,0,0,0,0,2,3,1,19,1,13,1,11,3,10,
-- 1,114,99,0,0,0,218,9,118,101,114,98,111,115,105,116,
-- 121,114,31,0,0,0,99,1,0,0,0,1,0,0,0,3,
-- 0,0,0,4,0,0,0,71,0,0,0,115,75,0,0,0,
-- 116,0,0,106,1,0,106,2,0,124,1,0,107,5,0,114,
-- 71,0,124,0,0,106,3,0,100,6,0,131,1,0,115,43,
-- 0,100,3,0,124,0,0,23,125,0,0,116,4,0,124,0,
-- 0,106,5,0,124,2,0,140,0,0,100,4,0,116,0,0,
-- 106,6,0,131,1,1,1,100,5,0,83,41,7,122,61,80,
-- 114,105,110,116,32,116,104,101,32,109,101,115,115,97,103,101,
-- 32,116,111,32,115,116,100,101,114,114,32,105,102,32,45,118,
-- 47,80,89,84,72,79,78,86,69,82,66,79,83,69,32,105,
-- 115,32,116,117,114,110,101,100,32,111,110,46,250,1,35,250,
-- 7,105,109,112,111,114,116,32,122,2,35,32,114,56,0,0,
-- 0,78,41,2,114,101,0,0,0,114,102,0,0,0,41,7,
-- 114,8,0,0,0,114,69,0,0,0,218,7,118,101,114,98,
-- 111,115,101,114,10,0,0,0,218,5,112,114,105,110,116,114,
-- 49,0,0,0,218,6,115,116,100,101,114,114,41,3,114,77,
-- 0,0,0,114,100,0,0,0,218,4,97,114,103,115,114,4,
-- 0,0,0,114,4,0,0,0,114,6,0,0,0,218,16,95,
-- 118,101,114,98,111,115,101,95,109,101,115,115,97,103,101,118,
-- 1,0,0,115,8,0,0,0,0,2,18,1,15,1,10,1,
-- 114,107,0,0,0,99,1,0,0,0,0,0,0,0,3,0,
-- 0,0,11,0,0,0,3,0,0,0,115,84,0,0,0,100,
-- 1,0,135,0,0,102,1,0,100,2,0,100,3,0,134,1,
-- 0,125,1,0,121,13,0,116,0,0,106,1,0,125,2,0,
-- 87,110,30,0,4,116,2,0,107,10,0,114,66,0,1,1,
-- 1,100,4,0,100,5,0,132,0,0,125,2,0,89,110,1,
-- 0,88,124,2,0,124,1,0,136,0,0,131,2,0,1,124,
-- 1,0,83,41,6,122,252,68,101,99,111,114,97,116,111,114,
-- 32,116,111,32,118,101,114,105,102,121,32,116,104,97,116,32,
-- 116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,103,
-- 32,114,101,113,117,101,115,116,101,100,32,109,97,116,99,104,
-- 101,115,32,116,104,101,32,111,110,101,32,116,104,101,10,32,
-- 32,32,32,108,111,97,100,101,114,32,99,97,110,32,104,97,
-- 110,100,108,101,46,10,10,32,32,32,32,84,104,101,32,102,
-- 105,114,115,116,32,97,114,103,117,109,101,110,116,32,40,115,
-- 101,108,102,41,32,109,117,115,116,32,100,101,102,105,110,101,
-- 32,95,110,97,109,101,32,119,104,105,99,104,32,116,104,101,
-- 32,115,101,99,111,110,100,32,97,114,103,117,109,101,110,116,
-- 32,105,115,10,32,32,32,32,99,111,109,112,97,114,101,100,
-- 32,97,103,97,105,110,115,116,46,32,73,102,32,116,104,101,
-- 32,99,111,109,112,97,114,105,115,111,110,32,102,97,105,108,
-- 115,32,116,104,101,110,32,73,109,112,111,114,116,69,114,114,
-- 111,114,32,105,115,32,114,97,105,115,101,100,46,10,10,32,
-- 32,32,32,78,99,2,0,0,0,0,0,0,0,4,0,0,
-- 0,5,0,0,0,31,0,0,0,115,89,0,0,0,124,1,
-- 0,100,0,0,107,8,0,114,24,0,124,0,0,106,0,0,
-- 125,1,0,110,46,0,124,0,0,106,0,0,124,1,0,107,
-- 3,0,114,70,0,116,1,0,100,1,0,124,0,0,106,0,
-- 0,124,1,0,102,2,0,22,100,2,0,124,1,0,131,1,
-- 1,130,1,0,136,0,0,124,0,0,124,1,0,124,2,0,
-- 124,3,0,142,2,0,83,41,3,78,122,30,108,111,97,100,
-- 101,114,32,102,111,114,32,37,115,32,99,97,110,110,111,116,
-- 32,104,97,110,100,108,101,32,37,115,218,4,110,97,109,101,
-- 41,2,114,108,0,0,0,218,11,73,109,112,111,114,116,69,
-- 114,114,111,114,41,4,218,4,115,101,108,102,114,108,0,0,
-- 0,114,106,0,0,0,90,6,107,119,97,114,103,115,41,1,
-- 218,6,109,101,116,104,111,100,114,4,0,0,0,114,6,0,
-- 0,0,218,19,95,99,104,101,99,107,95,110,97,109,101,95,
-- 119,114,97,112,112,101,114,134,1,0,0,115,12,0,0,0,
-- 0,1,12,1,12,1,15,1,6,1,25,1,122,40,95,99,
-- 104,101,99,107,95,110,97,109,101,46,60,108,111,99,97,108,
-- 115,62,46,95,99,104,101,99,107,95,110,97,109,101,95,119,
-- 114,97,112,112,101,114,99,2,0,0,0,0,0,0,0,3,
-- 0,0,0,7,0,0,0,83,0,0,0,115,92,0,0,0,
-- 120,66,0,100,1,0,100,2,0,100,3,0,100,4,0,103,
-- 4,0,68,93,46,0,125,2,0,116,0,0,124,1,0,124,
-- 2,0,131,2,0,114,19,0,116,1,0,124,0,0,124,2,
-- 0,116,2,0,124,1,0,124,2,0,131,2,0,131,3,0,
-- 1,113,19,0,87,124,0,0,106,3,0,106,4,0,124,1,
-- 0,106,3,0,131,1,0,1,100,0,0,83,41,5,78,218,
-- 10,95,95,109,111,100,117,108,101,95,95,218,8,95,95,110,
-- 97,109,101,95,95,218,12,95,95,113,117,97,108,110,97,109,
-- 101,95,95,218,7,95,95,100,111,99,95,95,41,5,218,7,
-- 104,97,115,97,116,116,114,218,7,115,101,116,97,116,116,114,
-- 218,7,103,101,116,97,116,116,114,218,8,95,95,100,105,99,
-- 116,95,95,218,6,117,112,100,97,116,101,41,3,90,3,110,
-- 101,119,90,3,111,108,100,114,54,0,0,0,114,4,0,0,
-- 0,114,4,0,0,0,114,6,0,0,0,218,5,95,119,114,
-- 97,112,145,1,0,0,115,8,0,0,0,0,1,25,1,15,
-- 1,29,1,122,26,95,99,104,101,99,107,95,110,97,109,101,
-- 46,60,108,111,99,97,108,115,62,46,95,119,114,97,112,41,
-- 3,218,10,95,98,111,111,116,115,116,114,97,112,114,122,0,
-- 0,0,218,9,78,97,109,101,69,114,114,111,114,41,3,114,
-- 111,0,0,0,114,112,0,0,0,114,122,0,0,0,114,4,
-- 0,0,0,41,1,114,111,0,0,0,114,6,0,0,0,218,
-- 11,95,99,104,101,99,107,95,110,97,109,101,126,1,0,0,
-- 115,14,0,0,0,0,8,21,7,3,1,13,1,13,2,17,
-- 5,13,1,114,125,0,0,0,99,2,0,0,0,0,0,0,
-- 0,5,0,0,0,4,0,0,0,67,0,0,0,115,84,0,
-- 0,0,124,0,0,106,0,0,124,1,0,131,1,0,92,2,
-- 0,125,2,0,125,3,0,124,2,0,100,1,0,107,8,0,
-- 114,80,0,116,1,0,124,3,0,131,1,0,114,80,0,100,
-- 2,0,125,4,0,116,2,0,106,3,0,124,4,0,106,4,
-- 0,124,3,0,100,3,0,25,131,1,0,116,5,0,131,2,
-- 0,1,124,2,0,83,41,4,122,155,84,114,121,32,116,111,
-- 32,102,105,110,100,32,97,32,108,111,97,100,101,114,32,102,
-- 111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,100,
-- 32,109,111,100,117,108,101,32,98,121,32,100,101,108,101,103,
-- 97,116,105,110,103,32,116,111,10,32,32,32,32,115,101,108,
-- 102,46,102,105,110,100,95,108,111,97,100,101,114,40,41,46,
-- 10,10,32,32,32,32,84,104,105,115,32,109,101,116,104,111,
-- 100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,
-- 105,110,32,102,97,118,111,114,32,111,102,32,102,105,110,100,
-- 101,114,46,102,105,110,100,95,115,112,101,99,40,41,46,10,
-- 10,32,32,32,32,78,122,44,78,111,116,32,105,109,112,111,
-- 114,116,105,110,103,32,100,105,114,101,99,116,111,114,121,32,
-- 123,125,58,32,109,105,115,115,105,110,103,32,95,95,105,110,
-- 105,116,95,95,114,61,0,0,0,41,6,218,11,102,105,110,
-- 100,95,108,111,97,100,101,114,114,33,0,0,0,114,62,0,
-- 0,0,114,63,0,0,0,114,49,0,0,0,218,13,73,109,
-- 112,111,114,116,87,97,114,110,105,110,103,41,5,114,110,0,
-- 0,0,218,8,102,117,108,108,110,97,109,101,218,6,108,111,
-- 97,100,101,114,218,8,112,111,114,116,105,111,110,115,218,3,
-- 109,115,103,114,4,0,0,0,114,4,0,0,0,114,6,0,
-- 0,0,218,17,95,102,105,110,100,95,109,111,100,117,108,101,
-- 95,115,104,105,109,154,1,0,0,115,10,0,0,0,0,10,
-- 21,1,24,1,6,1,29,1,114,132,0,0,0,99,4,0,
-- 0,0,0,0,0,0,11,0,0,0,19,0,0,0,67,0,
-- 0,0,115,240,1,0,0,105,0,0,125,4,0,124,2,0,
-- 100,1,0,107,9,0,114,31,0,124,2,0,124,4,0,100,
-- 2,0,60,110,6,0,100,3,0,125,2,0,124,3,0,100,
-- 1,0,107,9,0,114,59,0,124,3,0,124,4,0,100,4,
-- 0,60,124,0,0,100,1,0,100,5,0,133,2,0,25,125,
-- 5,0,124,0,0,100,5,0,100,6,0,133,2,0,25,125,
-- 6,0,124,0,0,100,6,0,100,7,0,133,2,0,25,125,
-- 7,0,124,5,0,116,0,0,107,3,0,114,168,0,100,8,
-- 0,106,1,0,124,2,0,124,5,0,131,2,0,125,8,0,
-- 116,2,0,100,9,0,124,8,0,131,2,0,1,116,3,0,
-- 124,8,0,124,4,0,141,1,0,130,1,0,110,119,0,116,
-- 4,0,124,6,0,131,1,0,100,5,0,107,3,0,114,229,
-- 0,100,10,0,106,1,0,124,2,0,131,1,0,125,8,0,
-- 116,2,0,100,9,0,124,8,0,131,2,0,1,116,5,0,
-- 124,8,0,131,1,0,130,1,0,110,58,0,116,4,0,124,
-- 7,0,131,1,0,100,5,0,107,3,0,114,31,1,100,11,
-- 0,106,1,0,124,2,0,131,1,0,125,8,0,116,2,0,
-- 100,9,0,124,8,0,131,2,0,1,116,5,0,124,8,0,
-- 131,1,0,130,1,0,124,1,0,100,1,0,107,9,0,114,
-- 226,1,121,20,0,116,6,0,124,1,0,100,12,0,25,131,
-- 1,0,125,9,0,87,110,18,0,4,116,7,0,107,10,0,
-- 114,83,1,1,1,1,89,110,62,0,88,116,8,0,124,6,
-- 0,131,1,0,124,9,0,107,3,0,114,145,1,100,13,0,
-- 106,1,0,124,2,0,131,1,0,125,8,0,116,2,0,100,
-- 9,0,124,8,0,131,2,0,1,116,3,0,124,8,0,124,
-- 4,0,141,1,0,130,1,0,121,18,0,124,1,0,100,14,
-- 0,25,100,15,0,64,125,10,0,87,110,18,0,4,116,7,
-- 0,107,10,0,114,183,1,1,1,1,89,110,43,0,88,116,
-- 8,0,124,7,0,131,1,0,124,10,0,107,3,0,114,226,
-- 1,116,3,0,100,13,0,106,1,0,124,2,0,131,1,0,
-- 124,4,0,141,1,0,130,1,0,124,0,0,100,7,0,100,
-- 1,0,133,2,0,25,83,41,16,97,122,1,0,0,86,97,
-- 108,105,100,97,116,101,32,116,104,101,32,104,101,97,100,101,
-- 114,32,111,102,32,116,104,101,32,112,97,115,115,101,100,45,
-- 105,110,32,98,121,116,101,99,111,100,101,32,97,103,97,105,
-- 110,115,116,32,115,111,117,114,99,101,95,115,116,97,116,115,
-- 32,40,105,102,10,32,32,32,32,103,105,118,101,110,41,32,
-- 97,110,100,32,114,101,116,117,114,110,105,110,103,32,116,104,
-- 101,32,98,121,116,101,99,111,100,101,32,116,104,97,116,32,
-- 99,97,110,32,98,101,32,99,111,109,112,105,108,101,100,32,
-- 98,121,32,99,111,109,112,105,108,101,40,41,46,10,10,32,
-- 32,32,32,65,108,108,32,111,116,104,101,114,32,97,114,103,
-- 117,109,101,110,116,115,32,97,114,101,32,117,115,101,100,32,
-- 116,111,32,101,110,104,97,110,99,101,32,101,114,114,111,114,
-- 32,114,101,112,111,114,116,105,110,103,46,10,10,32,32,32,
-- 32,73,109,112,111,114,116,69,114,114,111,114,32,105,115,32,
-- 114,97,105,115,101,100,32,119,104,101,110,32,116,104,101,32,
-- 109,97,103,105,99,32,110,117,109,98,101,114,32,105,115,32,
-- 105,110,99,111,114,114,101,99,116,32,111,114,32,116,104,101,
-- 32,98,121,116,101,99,111,100,101,32,105,115,10,32,32,32,
-- 32,102,111,117,110,100,32,116,111,32,98,101,32,115,116,97,
-- 108,101,46,32,69,79,70,69,114,114,111,114,32,105,115,32,
-- 114,97,105,115,101,100,32,119,104,101,110,32,116,104,101,32,
-- 100,97,116,97,32,105,115,32,102,111,117,110,100,32,116,111,
-- 32,98,101,10,32,32,32,32,116,114,117,110,99,97,116,101,
-- 100,46,10,10,32,32,32,32,78,114,108,0,0,0,122,10,
-- 60,98,121,116,101,99,111,100,101,62,114,37,0,0,0,114,
-- 14,0,0,0,233,8,0,0,0,233,12,0,0,0,122,30,
-- 98,97,100,32,109,97,103,105,99,32,110,117,109,98,101,114,
-- 32,105,110,32,123,33,114,125,58,32,123,33,114,125,122,2,
-- 123,125,122,43,114,101,97,99,104,101,100,32,69,79,70,32,
-- 119,104,105,108,101,32,114,101,97,100,105,110,103,32,116,105,
-- 109,101,115,116,97,109,112,32,105,110,32,123,33,114,125,122,
-- 48,114,101,97,99,104,101,100,32,69,79,70,32,119,104,105,
-- 108,101,32,114,101,97,100,105,110,103,32,115,105,122,101,32,
-- 111,102,32,115,111,117,114,99,101,32,105,110,32,123,33,114,
-- 125,218,5,109,116,105,109,101,122,26,98,121,116,101,99,111,
-- 100,101,32,105,115,32,115,116,97,108,101,32,102,111,114,32,
-- 123,33,114,125,218,4,115,105,122,101,108,3,0,0,0,255,
-- 127,255,127,3,0,41,9,218,12,77,65,71,73,67,95,78,
-- 85,77,66,69,82,114,49,0,0,0,114,107,0,0,0,114,
-- 109,0,0,0,114,33,0,0,0,218,8,69,79,70,69,114,
-- 114,111,114,114,16,0,0,0,218,8,75,101,121,69,114,114,
-- 111,114,114,21,0,0,0,41,11,114,55,0,0,0,218,12,
-- 115,111,117,114,99,101,95,115,116,97,116,115,114,108,0,0,
-- 0,114,37,0,0,0,90,11,101,120,99,95,100,101,116,97,
-- 105,108,115,90,5,109,97,103,105,99,90,13,114,97,119,95,
-- 116,105,109,101,115,116,97,109,112,90,8,114,97,119,95,115,
-- 105,122,101,114,77,0,0,0,218,12,115,111,117,114,99,101,
-- 95,109,116,105,109,101,218,11,115,111,117,114,99,101,95,115,
-- 105,122,101,114,4,0,0,0,114,4,0,0,0,114,6,0,
-- 0,0,218,25,95,118,97,108,105,100,97,116,101,95,98,121,
-- 116,101,99,111,100,101,95,104,101,97,100,101,114,171,1,0,
-- 0,115,76,0,0,0,0,11,6,1,12,1,13,3,6,1,
-- 12,1,10,1,16,1,16,1,16,1,12,1,18,1,13,1,
-- 18,1,18,1,15,1,13,1,15,1,18,1,15,1,13,1,
-- 12,1,12,1,3,1,20,1,13,1,5,2,18,1,15,1,
-- 13,1,15,1,3,1,18,1,13,1,5,2,18,1,15,1,
-- 9,1,114,143,0,0,0,99,4,0,0,0,0,0,0,0,
-- 5,0,0,0,6,0,0,0,67,0,0,0,115,112,0,0,
-- 0,116,0,0,106,1,0,124,0,0,131,1,0,125,4,0,
-- 116,2,0,124,4,0,116,3,0,131,2,0,114,75,0,116,
-- 4,0,100,1,0,124,2,0,131,2,0,1,124,3,0,100,
-- 2,0,107,9,0,114,71,0,116,5,0,106,6,0,124,4,
-- 0,124,3,0,131,2,0,1,124,4,0,83,116,7,0,100,
-- 3,0,106,8,0,124,2,0,131,1,0,100,4,0,124,1,
-- 0,100,5,0,124,2,0,131,1,2,130,1,0,100,2,0,
-- 83,41,6,122,60,67,111,109,112,105,108,101,32,98,121,116,
-- 101,99,111,100,101,32,97,115,32,114,101,116,117,114,110,101,
-- 100,32,98,121,32,95,118,97,108,105,100,97,116,101,95,98,
-- 121,116,101,99,111,100,101,95,104,101,97,100,101,114,40,41,
-- 46,122,21,99,111,100,101,32,111,98,106,101,99,116,32,102,
-- 114,111,109,32,123,33,114,125,78,122,23,78,111,110,45,99,
-- 111,100,101,32,111,98,106,101,99,116,32,105,110,32,123,33,
-- 114,125,114,108,0,0,0,114,37,0,0,0,41,9,218,7,
-- 109,97,114,115,104,97,108,90,5,108,111,97,100,115,218,10,
-- 105,115,105,110,115,116,97,110,99,101,218,10,95,99,111,100,
-- 101,95,116,121,112,101,114,107,0,0,0,218,4,95,105,109,
-- 112,90,16,95,102,105,120,95,99,111,95,102,105,108,101,110,
-- 97,109,101,114,109,0,0,0,114,49,0,0,0,41,5,114,
-- 55,0,0,0,114,108,0,0,0,114,91,0,0,0,114,92,
-- 0,0,0,218,4,99,111,100,101,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,218,17,95,99,111,109,112,105,
-- 108,101,95,98,121,116,101,99,111,100,101,226,1,0,0,115,
-- 16,0,0,0,0,2,15,1,15,1,13,1,12,1,16,1,
-- 4,2,18,1,114,149,0,0,0,114,61,0,0,0,99,3,
-- 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,
-- 0,0,0,115,76,0,0,0,116,0,0,116,1,0,131,1,
-- 0,125,3,0,124,3,0,106,2,0,116,3,0,124,1,0,
-- 131,1,0,131,1,0,1,124,3,0,106,2,0,116,3,0,
-- 124,2,0,131,1,0,131,1,0,1,124,3,0,106,2,0,
-- 116,4,0,106,5,0,124,0,0,131,1,0,131,1,0,1,
-- 124,3,0,83,41,1,122,80,67,111,109,112,105,108,101,32,
-- 97,32,99,111,100,101,32,111,98,106,101,99,116,32,105,110,
-- 116,111,32,98,121,116,101,99,111,100,101,32,102,111,114,32,
-- 119,114,105,116,105,110,103,32,111,117,116,32,116,111,32,97,
-- 32,98,121,116,101,45,99,111,109,112,105,108,101,100,10,32,
-- 32,32,32,102,105,108,101,46,41,6,218,9,98,121,116,101,
-- 97,114,114,97,121,114,137,0,0,0,218,6,101,120,116,101,
-- 110,100,114,19,0,0,0,114,144,0,0,0,90,5,100,117,
-- 109,112,115,41,4,114,148,0,0,0,114,135,0,0,0,114,
-- 142,0,0,0,114,55,0,0,0,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,218,17,95,99,111,100,101,95,
-- 116,111,95,98,121,116,101,99,111,100,101,238,1,0,0,115,
-- 10,0,0,0,0,3,12,1,19,1,19,1,22,1,114,152,
-- 0,0,0,99,1,0,0,0,0,0,0,0,5,0,0,0,
-- 4,0,0,0,67,0,0,0,115,89,0,0,0,100,1,0,
-- 100,2,0,108,0,0,125,1,0,116,1,0,106,2,0,124,
-- 0,0,131,1,0,106,3,0,125,2,0,124,1,0,106,4,
-- 0,124,2,0,131,1,0,125,3,0,116,1,0,106,5,0,
-- 100,2,0,100,3,0,131,2,0,125,4,0,124,4,0,106,
-- 6,0,124,0,0,106,6,0,124,3,0,100,1,0,25,131,
-- 1,0,131,1,0,83,41,4,122,121,68,101,99,111,100,101,
-- 32,98,121,116,101,115,32,114,101,112,114,101,115,101,110,116,
-- 105,110,103,32,115,111,117,114,99,101,32,99,111,100,101,32,
-- 97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,115,
-- 116,114,105,110,103,46,10,10,32,32,32,32,85,110,105,118,
-- 101,114,115,97,108,32,110,101,119,108,105,110,101,32,115,117,
-- 112,112,111,114,116,32,105,115,32,117,115,101,100,32,105,110,
-- 32,116,104,101,32,100,101,99,111,100,105,110,103,46,10,32,
-- 32,32,32,114,61,0,0,0,78,84,41,7,218,8,116,111,
-- 107,101,110,105,122,101,114,51,0,0,0,90,7,66,121,116,
-- 101,115,73,79,90,8,114,101,97,100,108,105,110,101,90,15,
-- 100,101,116,101,99,116,95,101,110,99,111,100,105,110,103,90,
-- 25,73,110,99,114,101,109,101,110,116,97,108,78,101,119,108,
-- 105,110,101,68,101,99,111,100,101,114,218,6,100,101,99,111,
-- 100,101,41,5,218,12,115,111,117,114,99,101,95,98,121,116,
-- 101,115,114,153,0,0,0,90,21,115,111,117,114,99,101,95,
-- 98,121,116,101,115,95,114,101,97,100,108,105,110,101,218,8,
-- 101,110,99,111,100,105,110,103,90,15,110,101,119,108,105,110,
-- 101,95,100,101,99,111,100,101,114,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,218,13,100,101,99,111,100,101,
-- 95,115,111,117,114,99,101,248,1,0,0,115,10,0,0,0,
-- 0,5,12,1,18,1,15,1,18,1,114,157,0,0,0,114,
-- 129,0,0,0,218,26,115,117,98,109,111,100,117,108,101,95,
-- 115,101,97,114,99,104,95,108,111,99,97,116,105,111,110,115,
-- 99,2,0,0,0,2,0,0,0,9,0,0,0,19,0,0,
-- 0,67,0,0,0,115,89,1,0,0,124,1,0,100,1,0,
-- 107,8,0,114,73,0,100,2,0,125,1,0,116,0,0,124,
-- 2,0,100,3,0,131,2,0,114,73,0,121,19,0,124,2,
-- 0,106,1,0,124,0,0,131,1,0,125,1,0,87,110,18,
-- 0,4,116,2,0,107,10,0,114,72,0,1,1,1,89,110,
-- 1,0,88,116,3,0,106,4,0,124,0,0,124,2,0,100,
-- 4,0,124,1,0,131,2,1,125,4,0,100,5,0,124,4,
-- 0,95,5,0,124,2,0,100,1,0,107,8,0,114,194,0,
-- 120,73,0,116,6,0,131,0,0,68,93,58,0,92,2,0,
-- 125,5,0,125,6,0,124,1,0,106,7,0,116,8,0,124,
-- 6,0,131,1,0,131,1,0,114,128,0,124,5,0,124,0,
-- 0,124,1,0,131,2,0,125,2,0,124,2,0,124,4,0,
-- 95,9,0,80,113,128,0,87,100,1,0,83,124,3,0,116,
-- 10,0,107,8,0,114,23,1,116,0,0,124,2,0,100,6,
-- 0,131,2,0,114,32,1,121,19,0,124,2,0,106,11,0,
-- 124,0,0,131,1,0,125,7,0,87,110,18,0,4,116,2,
-- 0,107,10,0,114,4,1,1,1,1,89,113,32,1,88,124,
-- 7,0,114,32,1,103,0,0,124,4,0,95,12,0,110,9,
-- 0,124,3,0,124,4,0,95,12,0,124,4,0,106,12,0,
-- 103,0,0,107,2,0,114,85,1,124,1,0,114,85,1,116,
-- 13,0,124,1,0,131,1,0,100,7,0,25,125,8,0,124,
-- 4,0,106,12,0,106,14,0,124,8,0,131,1,0,1,124,
-- 4,0,83,41,8,97,61,1,0,0,82,101,116,117,114,110,
-- 32,97,32,109,111,100,117,108,101,32,115,112,101,99,32,98,
-- 97,115,101,100,32,111,110,32,97,32,102,105,108,101,32,108,
-- 111,99,97,116,105,111,110,46,10,10,32,32,32,32,84,111,
-- 32,105,110,100,105,99,97,116,101,32,116,104,97,116,32,116,
-- 104,101,32,109,111,100,117,108,101,32,105,115,32,97,32,112,
-- 97,99,107,97,103,101,44,32,115,101,116,10,32,32,32,32,
-- 115,117,98,109,111,100,117,108,101,95,115,101,97,114,99,104,
-- 95,108,111,99,97,116,105,111,110,115,32,116,111,32,97,32,
-- 108,105,115,116,32,111,102,32,100,105,114,101,99,116,111,114,
-- 121,32,112,97,116,104,115,46,32,32,65,110,10,32,32,32,
-- 32,101,109,112,116,121,32,108,105,115,116,32,105,115,32,115,
-- 117,102,102,105,99,105,101,110,116,44,32,116,104,111,117,103,
-- 104,32,105,116,115,32,110,111,116,32,111,116,104,101,114,119,
-- 105,115,101,32,117,115,101,102,117,108,32,116,111,32,116,104,
-- 101,10,32,32,32,32,105,109,112,111,114,116,32,115,121,115,
-- 116,101,109,46,10,10,32,32,32,32,84,104,101,32,108,111,
-- 97,100,101,114,32,109,117,115,116,32,116,97,107,101,32,97,
-- 32,115,112,101,99,32,97,115,32,105,116,115,32,111,110,108,
-- 121,32,95,95,105,110,105,116,95,95,40,41,32,97,114,103,
-- 46,10,10,32,32,32,32,78,122,9,60,117,110,107,110,111,
-- 119,110,62,218,12,103,101,116,95,102,105,108,101,110,97,109,
-- 101,218,6,111,114,105,103,105,110,84,218,10,105,115,95,112,
-- 97,99,107,97,103,101,114,61,0,0,0,41,15,114,117,0,
-- 0,0,114,159,0,0,0,114,109,0,0,0,114,123,0,0,
-- 0,218,10,77,111,100,117,108,101,83,112,101,99,90,13,95,
-- 115,101,116,95,102,105,108,101,97,116,116,114,218,27,95,103,
-- 101,116,95,115,117,112,112,111,114,116,101,100,95,102,105,108,
-- 101,95,108,111,97,100,101,114,115,114,94,0,0,0,114,95,
-- 0,0,0,114,129,0,0,0,218,9,95,80,79,80,85,76,
-- 65,84,69,114,161,0,0,0,114,158,0,0,0,114,40,0,
-- 0,0,218,6,97,112,112,101,110,100,41,9,114,108,0,0,
-- 0,90,8,108,111,99,97,116,105,111,110,114,129,0,0,0,
-- 114,158,0,0,0,218,4,115,112,101,99,218,12,108,111,97,
-- 100,101,114,95,99,108,97,115,115,218,8,115,117,102,102,105,
-- 120,101,115,114,161,0,0,0,90,7,100,105,114,110,97,109,
-- 101,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-- 218,23,115,112,101,99,95,102,114,111,109,95,102,105,108,101,
-- 95,108,111,99,97,116,105,111,110,9,2,0,0,115,60,0,
-- 0,0,0,12,12,4,6,1,15,2,3,1,19,1,13,1,
-- 5,8,24,1,9,3,12,1,22,1,21,1,15,1,9,1,
-- 5,2,4,3,12,2,15,1,3,1,19,1,13,1,5,2,
-- 6,1,12,2,9,1,15,1,6,1,16,1,16,2,114,169,
-+ 114,171,0,0,0,99,2,0,0,115,20,0,0,0,12,2,
-+ 6,3,6,3,6,2,6,2,18,7,18,15,3,1,21,15,
-+ 3,1,114,171,0,0,0,99,0,0,0,0,0,0,0,0,
-+ 0,0,0,0,2,0,0,0,64,0,0,0,115,70,0,0,
-+ 0,101,0,0,90,1,0,100,0,0,90,2,0,100,1,0,
-+ 90,3,0,100,2,0,100,3,0,132,0,0,90,4,0,100,
-+ 4,0,100,5,0,132,0,0,90,5,0,100,6,0,100,7,
-+ 0,132,0,0,90,6,0,100,8,0,100,9,0,132,0,0,
-+ 90,7,0,100,10,0,83,41,11,218,13,95,76,111,97,100,
-+ 101,114,66,97,115,105,99,115,122,83,66,97,115,101,32,99,
-+ 108,97,115,115,32,111,102,32,99,111,109,109,111,110,32,99,
-+ 111,100,101,32,110,101,101,100,101,100,32,98,121,32,98,111,
-+ 116,104,32,83,111,117,114,99,101,76,111,97,100,101,114,32,
-+ 97,110,100,10,32,32,32,32,83,111,117,114,99,101,108,101,
-+ 115,115,70,105,108,101,76,111,97,100,101,114,46,99,2,0,
-+ 0,0,0,0,0,0,5,0,0,0,3,0,0,0,67,0,
-+ 0,0,115,88,0,0,0,116,0,0,124,0,0,106,1,0,
-+ 124,1,0,131,1,0,131,1,0,100,1,0,25,125,2,0,
-+ 124,2,0,106,2,0,100,2,0,100,1,0,131,2,0,100,
-+ 3,0,25,125,3,0,124,1,0,106,3,0,100,2,0,131,
-+ 1,0,100,4,0,25,125,4,0,124,3,0,100,5,0,107,
-+ 2,0,111,87,0,124,4,0,100,5,0,107,3,0,83,41,
-+ 6,122,141,67,111,110,99,114,101,116,101,32,105,109,112,108,
-+ 101,109,101,110,116,97,116,105,111,110,32,111,102,32,73,110,
-+ 115,112,101,99,116,76,111,97,100,101,114,46,105,115,95,112,
-+ 97,99,107,97,103,101,32,98,121,32,99,104,101,99,107,105,
-+ 110,103,32,105,102,10,32,32,32,32,32,32,32,32,116,104,
-+ 101,32,112,97,116,104,32,114,101,116,117,114,110,101,100,32,
-+ 98,121,32,103,101,116,95,102,105,108,101,110,97,109,101,32,
-+ 104,97,115,32,97,32,102,105,108,101,110,97,109,101,32,111,
-+ 102,32,39,95,95,105,110,105,116,95,95,46,112,121,39,46,
-+ 114,31,0,0,0,114,60,0,0,0,114,61,0,0,0,114,
-+ 58,0,0,0,218,8,95,95,105,110,105,116,95,95,41,4,
-+ 114,40,0,0,0,114,160,0,0,0,114,36,0,0,0,114,
-+ 34,0,0,0,41,5,114,110,0,0,0,114,128,0,0,0,
-+ 114,96,0,0,0,90,13,102,105,108,101,110,97,109,101,95,
-+ 98,97,115,101,90,9,116,97,105,108,95,110,97,109,101,114,
-+ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,162,
-+ 0,0,0,168,2,0,0,115,8,0,0,0,0,3,25,1,
-+ 22,1,19,1,122,24,95,76,111,97,100,101,114,66,97,115,
-+ 105,99,115,46,105,115,95,112,97,99,107,97,103,101,99,2,
-+ 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
-+ 0,0,0,115,4,0,0,0,100,1,0,83,41,2,122,42,
-+ 85,115,101,32,100,101,102,97,117,108,116,32,115,101,109,97,
-+ 110,116,105,99,115,32,102,111,114,32,109,111,100,117,108,101,
-+ 32,99,114,101,97,116,105,111,110,46,78,114,4,0,0,0,
-+ 41,2,114,110,0,0,0,114,167,0,0,0,114,4,0,0,
-+ 0,114,4,0,0,0,114,6,0,0,0,218,13,99,114,101,
-+ 97,116,101,95,109,111,100,117,108,101,176,2,0,0,115,0,
-+ 0,0,0,122,27,95,76,111,97,100,101,114,66,97,115,105,
-+ 99,115,46,99,114,101,97,116,101,95,109,111,100,117,108,101,
-+ 99,2,0,0,0,0,0,0,0,3,0,0,0,4,0,0,
-+ 0,67,0,0,0,115,80,0,0,0,124,0,0,106,0,0,
-+ 124,1,0,106,1,0,131,1,0,125,2,0,124,2,0,100,
-+ 1,0,107,8,0,114,54,0,116,2,0,100,2,0,106,3,
-+ 0,124,1,0,106,1,0,131,1,0,131,1,0,130,1,0,
-+ 116,4,0,106,5,0,116,6,0,124,2,0,124,1,0,106,
-+ 7,0,131,3,0,1,100,1,0,83,41,3,122,19,69,120,
-+ 101,99,117,116,101,32,116,104,101,32,109,111,100,117,108,101,
-+ 46,78,122,52,99,97,110,110,111,116,32,108,111,97,100,32,
-+ 109,111,100,117,108,101,32,123,33,114,125,32,119,104,101,110,
-+ 32,103,101,116,95,99,111,100,101,40,41,32,114,101,116,117,
-+ 114,110,115,32,78,111,110,101,41,8,218,8,103,101,116,95,
-+ 99,111,100,101,114,114,0,0,0,114,109,0,0,0,114,49,
-+ 0,0,0,114,123,0,0,0,218,25,95,99,97,108,108,95,
-+ 119,105,116,104,95,102,114,97,109,101,115,95,114,101,109,111,
-+ 118,101,100,218,4,101,120,101,99,114,120,0,0,0,41,3,
-+ 114,110,0,0,0,218,6,109,111,100,117,108,101,114,149,0,
-+ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-+ 0,218,11,101,120,101,99,95,109,111,100,117,108,101,179,2,
-+ 0,0,115,10,0,0,0,0,2,18,1,12,1,9,1,15,
-+ 1,122,25,95,76,111,97,100,101,114,66,97,115,105,99,115,
-+ 46,101,120,101,99,95,109,111,100,117,108,101,99,2,0,0,
-+ 0,0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,
-+ 0,115,16,0,0,0,116,0,0,106,1,0,124,0,0,124,
-+ 1,0,131,2,0,83,41,1,78,41,2,114,123,0,0,0,
-+ 218,17,95,108,111,97,100,95,109,111,100,117,108,101,95,115,
-+ 104,105,109,41,2,114,110,0,0,0,114,128,0,0,0,114,
-+ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,11,
-+ 108,111,97,100,95,109,111,100,117,108,101,187,2,0,0,115,
-+ 2,0,0,0,0,1,122,25,95,76,111,97,100,101,114,66,
-+ 97,115,105,99,115,46,108,111,97,100,95,109,111,100,117,108,
-+ 101,78,41,8,114,114,0,0,0,114,113,0,0,0,114,115,
-+ 0,0,0,114,116,0,0,0,114,162,0,0,0,114,188,0,
-+ 0,0,114,193,0,0,0,114,195,0,0,0,114,4,0,0,
-+ 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-+ 114,186,0,0,0,163,2,0,0,115,10,0,0,0,12,3,
-+ 6,2,12,8,12,3,12,8,114,186,0,0,0,99,0,0,
-+ 0,0,0,0,0,0,0,0,0,0,4,0,0,0,64,0,
-+ 0,0,115,106,0,0,0,101,0,0,90,1,0,100,0,0,
-+ 90,2,0,100,1,0,100,2,0,132,0,0,90,3,0,100,
-+ 3,0,100,4,0,132,0,0,90,4,0,100,5,0,100,6,
-+ 0,132,0,0,90,5,0,100,7,0,100,8,0,132,0,0,
-+ 90,6,0,100,9,0,100,10,0,132,0,0,90,7,0,100,
-+ 11,0,100,18,0,100,13,0,100,14,0,132,0,1,90,8,
-+ 0,100,15,0,100,16,0,132,0,0,90,9,0,100,17,0,
-+ 83,41,19,218,12,83,111,117,114,99,101,76,111,97,100,101,
-+ 114,99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,
-+ 0,0,67,0,0,0,115,10,0,0,0,116,0,0,130,1,
-+ 0,100,1,0,83,41,2,122,178,79,112,116,105,111,110,97,
-+ 108,32,109,101,116,104,111,100,32,116,104,97,116,32,114,101,
-+ 116,117,114,110,115,32,116,104,101,32,109,111,100,105,102,105,
-+ 99,97,116,105,111,110,32,116,105,109,101,32,40,97,110,32,
-+ 105,110,116,41,32,102,111,114,32,116,104,101,10,32,32,32,
-+ 32,32,32,32,32,115,112,101,99,105,102,105,101,100,32,112,
-+ 97,116,104,44,32,119,104,101,114,101,32,112,97,116,104,32,
-+ 105,115,32,97,32,115,116,114,46,10,10,32,32,32,32,32,
-+ 32,32,32,82,97,105,115,101,115,32,73,79,69,114,114,111,
-+ 114,32,119,104,101,110,32,116,104,101,32,112,97,116,104,32,
-+ 99,97,110,110,111,116,32,98,101,32,104,97,110,100,108,101,
-+ 100,46,10,32,32,32,32,32,32,32,32,78,41,1,218,7,
-+ 73,79,69,114,114,111,114,41,2,114,110,0,0,0,114,37,
-+ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
-+ 0,0,218,10,112,97,116,104,95,109,116,105,109,101,193,2,
-+ 0,0,115,2,0,0,0,0,6,122,23,83,111,117,114,99,
-+ 101,76,111,97,100,101,114,46,112,97,116,104,95,109,116,105,
-+ 109,101,99,2,0,0,0,0,0,0,0,2,0,0,0,3,
-+ 0,0,0,67,0,0,0,115,19,0,0,0,100,1,0,124,
-+ 0,0,106,0,0,124,1,0,131,1,0,105,1,0,83,41,
-+ 2,97,170,1,0,0,79,112,116,105,111,110,97,108,32,109,
-+ 101,116,104,111,100,32,114,101,116,117,114,110,105,110,103,32,
-+ 97,32,109,101,116,97,100,97,116,97,32,100,105,99,116,32,
-+ 102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,
-+ 100,32,112,97,116,104,10,32,32,32,32,32,32,32,32,116,
-+ 111,32,98,121,32,116,104,101,32,112,97,116,104,32,40,115,
-+ 116,114,41,46,10,32,32,32,32,32,32,32,32,80,111,115,
-+ 115,105,98,108,101,32,107,101,121,115,58,10,32,32,32,32,
-+ 32,32,32,32,45,32,39,109,116,105,109,101,39,32,40,109,
-+ 97,110,100,97,116,111,114,121,41,32,105,115,32,116,104,101,
-+ 32,110,117,109,101,114,105,99,32,116,105,109,101,115,116,97,
-+ 109,112,32,111,102,32,108,97,115,116,32,115,111,117,114,99,
-+ 101,10,32,32,32,32,32,32,32,32,32,32,99,111,100,101,
-+ 32,109,111,100,105,102,105,99,97,116,105,111,110,59,10,32,
-+ 32,32,32,32,32,32,32,45,32,39,115,105,122,101,39,32,
-+ 40,111,112,116,105,111,110,97,108,41,32,105,115,32,116,104,
-+ 101,32,115,105,122,101,32,105,110,32,98,121,116,101,115,32,
-+ 111,102,32,116,104,101,32,115,111,117,114,99,101,32,99,111,
-+ 100,101,46,10,10,32,32,32,32,32,32,32,32,73,109,112,
-+ 108,101,109,101,110,116,105,110,103,32,116,104,105,115,32,109,
-+ 101,116,104,111,100,32,97,108,108,111,119,115,32,116,104,101,
-+ 32,108,111,97,100,101,114,32,116,111,32,114,101,97,100,32,
-+ 98,121,116,101,99,111,100,101,32,102,105,108,101,115,46,10,
-+ 32,32,32,32,32,32,32,32,82,97,105,115,101,115,32,73,
-+ 79,69,114,114,111,114,32,119,104,101,110,32,116,104,101,32,
-+ 112,97,116,104,32,99,97,110,110,111,116,32,98,101,32,104,
-+ 97,110,100,108,101,100,46,10,32,32,32,32,32,32,32,32,
-+ 114,135,0,0,0,41,1,114,198,0,0,0,41,2,114,110,
-+ 0,0,0,114,37,0,0,0,114,4,0,0,0,114,4,0,
-+ 0,0,114,6,0,0,0,218,10,112,97,116,104,95,115,116,
-+ 97,116,115,201,2,0,0,115,2,0,0,0,0,11,122,23,
-+ 83,111,117,114,99,101,76,111,97,100,101,114,46,112,97,116,
-+ 104,95,115,116,97,116,115,99,4,0,0,0,0,0,0,0,
-+ 4,0,0,0,3,0,0,0,67,0,0,0,115,16,0,0,
-+ 0,124,0,0,106,0,0,124,2,0,124,3,0,131,2,0,
-+ 83,41,1,122,228,79,112,116,105,111,110,97,108,32,109,101,
-+ 116,104,111,100,32,119,104,105,99,104,32,119,114,105,116,101,
-+ 115,32,100,97,116,97,32,40,98,121,116,101,115,41,32,116,
-+ 111,32,97,32,102,105,108,101,32,112,97,116,104,32,40,97,
-+ 32,115,116,114,41,46,10,10,32,32,32,32,32,32,32,32,
-+ 73,109,112,108,101,109,101,110,116,105,110,103,32,116,104,105,
-+ 115,32,109,101,116,104,111,100,32,97,108,108,111,119,115,32,
-+ 102,111,114,32,116,104,101,32,119,114,105,116,105,110,103,32,
-+ 111,102,32,98,121,116,101,99,111,100,101,32,102,105,108,101,
-+ 115,46,10,10,32,32,32,32,32,32,32,32,84,104,101,32,
-+ 115,111,117,114,99,101,32,112,97,116,104,32,105,115,32,110,
-+ 101,101,100,101,100,32,105,110,32,111,114,100,101,114,32,116,
-+ 111,32,99,111,114,114,101,99,116,108,121,32,116,114,97,110,
-+ 115,102,101,114,32,112,101,114,109,105,115,115,105,111,110,115,
-+ 10,32,32,32,32,32,32,32,32,41,1,218,8,115,101,116,
-+ 95,100,97,116,97,41,4,114,110,0,0,0,114,92,0,0,
-+ 0,90,10,99,97,99,104,101,95,112,97,116,104,114,55,0,
-+ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-+ 0,218,15,95,99,97,99,104,101,95,98,121,116,101,99,111,
-+ 100,101,214,2,0,0,115,2,0,0,0,0,8,122,28,83,
-+ 111,117,114,99,101,76,111,97,100,101,114,46,95,99,97,99,
-+ 104,101,95,98,121,116,101,99,111,100,101,99,3,0,0,0,
-+ 0,0,0,0,3,0,0,0,1,0,0,0,67,0,0,0,
-+ 115,4,0,0,0,100,1,0,83,41,2,122,150,79,112,116,
-+ 105,111,110,97,108,32,109,101,116,104,111,100,32,119,104,105,
-+ 99,104,32,119,114,105,116,101,115,32,100,97,116,97,32,40,
-+ 98,121,116,101,115,41,32,116,111,32,97,32,102,105,108,101,
-+ 32,112,97,116,104,32,40,97,32,115,116,114,41,46,10,10,
-+ 32,32,32,32,32,32,32,32,73,109,112,108,101,109,101,110,
-+ 116,105,110,103,32,116,104,105,115,32,109,101,116,104,111,100,
-+ 32,97,108,108,111,119,115,32,102,111,114,32,116,104,101,32,
-+ 119,114,105,116,105,110,103,32,111,102,32,98,121,116,101,99,
-+ 111,100,101,32,102,105,108,101,115,46,10,32,32,32,32,32,
-+ 32,32,32,78,114,4,0,0,0,41,3,114,110,0,0,0,
-+ 114,37,0,0,0,114,55,0,0,0,114,4,0,0,0,114,
-+ 4,0,0,0,114,6,0,0,0,114,200,0,0,0,224,2,
-+ 0,0,115,0,0,0,0,122,21,83,111,117,114,99,101,76,
-+ 111,97,100,101,114,46,115,101,116,95,100,97,116,97,99,2,
-+ 0,0,0,0,0,0,0,5,0,0,0,16,0,0,0,67,
-+ 0,0,0,115,105,0,0,0,124,0,0,106,0,0,124,1,
-+ 0,131,1,0,125,2,0,121,19,0,124,0,0,106,1,0,
-+ 124,2,0,131,1,0,125,3,0,87,110,58,0,4,116,2,
-+ 0,107,10,0,114,94,0,1,125,4,0,1,122,26,0,116,
-+ 3,0,100,1,0,100,2,0,124,1,0,131,1,1,124,4,
-+ 0,130,2,0,87,89,100,3,0,100,3,0,125,4,0,126,
-+ 4,0,88,110,1,0,88,116,4,0,124,3,0,131,1,0,
-+ 83,41,4,122,52,67,111,110,99,114,101,116,101,32,105,109,
-+ 112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,
-+ 73,110,115,112,101,99,116,76,111,97,100,101,114,46,103,101,
-+ 116,95,115,111,117,114,99,101,46,122,39,115,111,117,114,99,
-+ 101,32,110,111,116,32,97,118,97,105,108,97,98,108,101,32,
-+ 116,104,114,111,117,103,104,32,103,101,116,95,100,97,116,97,
-+ 40,41,114,108,0,0,0,78,41,5,114,160,0,0,0,218,
-+ 8,103,101,116,95,100,97,116,97,114,42,0,0,0,114,109,
-+ 0,0,0,114,158,0,0,0,41,5,114,110,0,0,0,114,
-+ 128,0,0,0,114,37,0,0,0,114,156,0,0,0,218,3,
-+ 101,120,99,114,4,0,0,0,114,4,0,0,0,114,6,0,
-+ 0,0,218,10,103,101,116,95,115,111,117,114,99,101,231,2,
-+ 0,0,115,14,0,0,0,0,2,15,1,3,1,19,1,18,
-+ 1,9,1,31,1,122,23,83,111,117,114,99,101,76,111,97,
-+ 100,101,114,46,103,101,116,95,115,111,117,114,99,101,218,9,
-+ 95,111,112,116,105,109,105,122,101,114,31,0,0,0,99,3,
-+ 0,0,0,1,0,0,0,4,0,0,0,9,0,0,0,67,
-+ 0,0,0,115,34,0,0,0,116,0,0,106,1,0,116,2,
-+ 0,124,1,0,124,2,0,100,1,0,100,2,0,100,3,0,
-+ 100,4,0,124,3,0,131,4,2,83,41,5,122,130,82,101,
-+ 116,117,114,110,32,116,104,101,32,99,111,100,101,32,111,98,
-+ 106,101,99,116,32,99,111,109,112,105,108,101,100,32,102,114,
-+ 111,109,32,115,111,117,114,99,101,46,10,10,32,32,32,32,
-+ 32,32,32,32,84,104,101,32,39,100,97,116,97,39,32,97,
-+ 114,103,117,109,101,110,116,32,99,97,110,32,98,101,32,97,
-+ 110,121,32,111,98,106,101,99,116,32,116,121,112,101,32,116,
-+ 104,97,116,32,99,111,109,112,105,108,101,40,41,32,115,117,
-+ 112,112,111,114,116,115,46,10,32,32,32,32,32,32,32,32,
-+ 114,191,0,0,0,218,12,100,111,110,116,95,105,110,104,101,
-+ 114,105,116,84,114,70,0,0,0,41,3,114,123,0,0,0,
-+ 114,190,0,0,0,218,7,99,111,109,112,105,108,101,41,4,
-+ 114,110,0,0,0,114,55,0,0,0,114,37,0,0,0,114,
-+ 205,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
-+ 0,0,0,218,14,115,111,117,114,99,101,95,116,111,95,99,
-+ 111,100,101,241,2,0,0,115,4,0,0,0,0,5,21,1,
-+ 122,27,83,111,117,114,99,101,76,111,97,100,101,114,46,115,
-+ 111,117,114,99,101,95,116,111,95,99,111,100,101,99,2,0,
-+ 0,0,0,0,0,0,10,0,0,0,43,0,0,0,67,0,
-+ 0,0,115,174,1,0,0,124,0,0,106,0,0,124,1,0,
-+ 131,1,0,125,2,0,100,1,0,125,3,0,121,16,0,116,
-+ 1,0,124,2,0,131,1,0,125,4,0,87,110,24,0,4,
-+ 116,2,0,107,10,0,114,63,0,1,1,1,100,1,0,125,
-+ 4,0,89,110,202,0,88,121,19,0,124,0,0,106,3,0,
-+ 124,2,0,131,1,0,125,5,0,87,110,18,0,4,116,4,
-+ 0,107,10,0,114,103,0,1,1,1,89,110,162,0,88,116,
-+ 5,0,124,5,0,100,2,0,25,131,1,0,125,3,0,121,
-+ 19,0,124,0,0,106,6,0,124,4,0,131,1,0,125,6,
-+ 0,87,110,18,0,4,116,7,0,107,10,0,114,159,0,1,
-+ 1,1,89,110,106,0,88,121,34,0,116,8,0,124,6,0,
-+ 100,3,0,124,5,0,100,4,0,124,1,0,100,5,0,124,
-+ 4,0,131,1,3,125,7,0,87,110,24,0,4,116,9,0,
-+ 116,10,0,102,2,0,107,10,0,114,220,0,1,1,1,89,
-+ 110,45,0,88,116,11,0,100,6,0,124,4,0,124,2,0,
-+ 131,3,0,1,116,12,0,124,7,0,100,4,0,124,1,0,
-+ 100,7,0,124,4,0,100,8,0,124,2,0,131,1,3,83,
-+ 124,0,0,106,6,0,124,2,0,131,1,0,125,8,0,124,
-+ 0,0,106,13,0,124,8,0,124,2,0,131,2,0,125,9,
-+ 0,116,11,0,100,9,0,124,2,0,131,2,0,1,116,14,
-+ 0,106,15,0,12,114,170,1,124,4,0,100,1,0,107,9,
-+ 0,114,170,1,124,3,0,100,1,0,107,9,0,114,170,1,
-+ 116,16,0,124,9,0,124,3,0,116,17,0,124,8,0,131,
-+ 1,0,131,3,0,125,6,0,121,36,0,124,0,0,106,18,
-+ 0,124,2,0,124,4,0,124,6,0,131,3,0,1,116,11,
-+ 0,100,10,0,124,4,0,131,2,0,1,87,110,18,0,4,
-+ 116,2,0,107,10,0,114,169,1,1,1,1,89,110,1,0,
-+ 88,124,9,0,83,41,11,122,190,67,111,110,99,114,101,116,
-+ 101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,
-+ 32,111,102,32,73,110,115,112,101,99,116,76,111,97,100,101,
-+ 114,46,103,101,116,95,99,111,100,101,46,10,10,32,32,32,
-+ 32,32,32,32,32,82,101,97,100,105,110,103,32,111,102,32,
-+ 98,121,116,101,99,111,100,101,32,114,101,113,117,105,114,101,
-+ 115,32,112,97,116,104,95,115,116,97,116,115,32,116,111,32,
-+ 98,101,32,105,109,112,108,101,109,101,110,116,101,100,46,32,
-+ 84,111,32,119,114,105,116,101,10,32,32,32,32,32,32,32,
-+ 32,98,121,116,101,99,111,100,101,44,32,115,101,116,95,100,
-+ 97,116,97,32,109,117,115,116,32,97,108,115,111,32,98,101,
-+ 32,105,109,112,108,101,109,101,110,116,101,100,46,10,10,32,
-+ 32,32,32,32,32,32,32,78,114,135,0,0,0,114,141,0,
-+ 0,0,114,108,0,0,0,114,37,0,0,0,122,13,123,125,
-+ 32,109,97,116,99,104,101,115,32,123,125,114,91,0,0,0,
-+ 114,92,0,0,0,122,19,99,111,100,101,32,111,98,106,101,
-+ 99,116,32,102,114,111,109,32,123,125,122,10,119,114,111,116,
-+ 101,32,123,33,114,125,41,19,114,160,0,0,0,114,81,0,
-+ 0,0,114,68,0,0,0,114,199,0,0,0,114,197,0,0,
-+ 0,114,16,0,0,0,114,202,0,0,0,114,42,0,0,0,
-+ 114,144,0,0,0,114,109,0,0,0,114,139,0,0,0,114,
-+ 107,0,0,0,114,150,0,0,0,114,208,0,0,0,114,8,
-+ 0,0,0,218,19,100,111,110,116,95,119,114,105,116,101,95,
-+ 98,121,116,101,99,111,100,101,114,153,0,0,0,114,33,0,
-+ 0,0,114,201,0,0,0,41,10,114,110,0,0,0,114,128,
-+ 0,0,0,114,92,0,0,0,114,142,0,0,0,114,91,0,
-+ 0,0,218,2,115,116,114,55,0,0,0,218,10,98,121,116,
-+ 101,115,95,100,97,116,97,114,156,0,0,0,90,11,99,111,
-+ 100,101,95,111,98,106,101,99,116,114,4,0,0,0,114,4,
-+ 0,0,0,114,6,0,0,0,114,189,0,0,0,249,2,0,
-+ 0,115,78,0,0,0,0,7,15,1,6,1,3,1,16,1,
-+ 13,1,11,2,3,1,19,1,13,1,5,2,16,1,3,1,
-+ 19,1,13,1,5,2,3,1,9,1,12,1,13,1,19,1,
-+ 5,2,9,1,7,1,15,1,6,1,7,1,15,1,18,1,
-+ 13,1,22,1,12,1,9,1,15,1,3,1,19,1,17,1,
-+ 13,1,5,1,122,21,83,111,117,114,99,101,76,111,97,100,
-+ 101,114,46,103,101,116,95,99,111,100,101,78,114,89,0,0,
-+ 0,41,10,114,114,0,0,0,114,113,0,0,0,114,115,0,
-+ 0,0,114,198,0,0,0,114,199,0,0,0,114,201,0,0,
-+ 0,114,200,0,0,0,114,204,0,0,0,114,208,0,0,0,
-+ 114,189,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
-+ 4,0,0,0,114,6,0,0,0,114,196,0,0,0,191,2,
-+ 0,0,115,14,0,0,0,12,2,12,8,12,13,12,10,12,
-+ 7,12,10,18,8,114,196,0,0,0,99,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,115,
-+ 112,0,0,0,101,0,0,90,1,0,100,0,0,90,2,0,
-+ 100,1,0,90,3,0,100,2,0,100,3,0,132,0,0,90,
-+ 4,0,100,4,0,100,5,0,132,0,0,90,5,0,100,6,
-+ 0,100,7,0,132,0,0,90,6,0,101,7,0,135,0,0,
-+ 102,1,0,100,8,0,100,9,0,134,0,0,131,1,0,90,
-+ 8,0,101,7,0,100,10,0,100,11,0,132,0,0,131,1,
-+ 0,90,9,0,100,12,0,100,13,0,132,0,0,90,10,0,
-+ 135,0,0,83,41,14,218,10,70,105,108,101,76,111,97,100,
-+ 101,114,122,103,66,97,115,101,32,102,105,108,101,32,108,111,
-+ 97,100,101,114,32,99,108,97,115,115,32,119,104,105,99,104,
-+ 32,105,109,112,108,101,109,101,110,116,115,32,116,104,101,32,
-+ 108,111,97,100,101,114,32,112,114,111,116,111,99,111,108,32,
-+ 109,101,116,104,111,100,115,32,116,104,97,116,10,32,32,32,
-+ 32,114,101,113,117,105,114,101,32,102,105,108,101,32,115,121,
-+ 115,116,101,109,32,117,115,97,103,101,46,99,3,0,0,0,
-+ 0,0,0,0,3,0,0,0,2,0,0,0,67,0,0,0,
-+ 115,22,0,0,0,124,1,0,124,0,0,95,0,0,124,2,
-+ 0,124,0,0,95,1,0,100,1,0,83,41,2,122,75,67,
-+ 97,99,104,101,32,116,104,101,32,109,111,100,117,108,101,32,
-+ 110,97,109,101,32,97,110,100,32,116,104,101,32,112,97,116,
-+ 104,32,116,111,32,116,104,101,32,102,105,108,101,32,102,111,
-+ 117,110,100,32,98,121,32,116,104,101,10,32,32,32,32,32,
-+ 32,32,32,102,105,110,100,101,114,46,78,41,2,114,108,0,
-+ 0,0,114,37,0,0,0,41,3,114,110,0,0,0,114,128,
-+ 0,0,0,114,37,0,0,0,114,4,0,0,0,114,4,0,
-+ 0,0,114,6,0,0,0,114,187,0,0,0,50,3,0,0,
-+ 115,4,0,0,0,0,3,9,1,122,19,70,105,108,101,76,
-+ 111,97,100,101,114,46,95,95,105,110,105,116,95,95,99,2,
-+ 0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,
-+ 0,0,0,115,34,0,0,0,124,0,0,106,0,0,124,1,
-+ 0,106,0,0,107,2,0,111,33,0,124,0,0,106,1,0,
-+ 124,1,0,106,1,0,107,2,0,83,41,1,78,41,2,218,
-+ 9,95,95,99,108,97,115,115,95,95,114,120,0,0,0,41,
-+ 2,114,110,0,0,0,218,5,111,116,104,101,114,114,4,0,
-+ 0,0,114,4,0,0,0,114,6,0,0,0,218,6,95,95,
-+ 101,113,95,95,56,3,0,0,115,4,0,0,0,0,1,18,
-+ 1,122,17,70,105,108,101,76,111,97,100,101,114,46,95,95,
-+ 101,113,95,95,99,1,0,0,0,0,0,0,0,1,0,0,
-+ 0,3,0,0,0,67,0,0,0,115,26,0,0,0,116,0,
-+ 0,124,0,0,106,1,0,131,1,0,116,0,0,124,0,0,
-+ 106,2,0,131,1,0,65,83,41,1,78,41,3,218,4,104,
-+ 97,115,104,114,108,0,0,0,114,37,0,0,0,41,1,114,
-+ 110,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
-+ 0,0,0,218,8,95,95,104,97,115,104,95,95,60,3,0,
-+ 0,115,2,0,0,0,0,1,122,19,70,105,108,101,76,111,
-+ 97,100,101,114,46,95,95,104,97,115,104,95,95,99,2,0,
-+ 0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,
-+ 0,0,115,22,0,0,0,116,0,0,116,1,0,124,0,0,
-+ 131,2,0,106,2,0,124,1,0,131,1,0,83,41,1,122,
-+ 100,76,111,97,100,32,97,32,109,111,100,117,108,101,32,102,
-+ 114,111,109,32,97,32,102,105,108,101,46,10,10,32,32,32,
-+ 32,32,32,32,32,84,104,105,115,32,109,101,116,104,111,100,
-+ 32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,
-+ 32,85,115,101,32,101,120,101,99,95,109,111,100,117,108,101,
-+ 40,41,32,105,110,115,116,101,97,100,46,10,10,32,32,32,
-+ 32,32,32,32,32,41,3,218,5,115,117,112,101,114,114,212,
-+ 0,0,0,114,195,0,0,0,41,2,114,110,0,0,0,114,
-+ 128,0,0,0,41,1,114,213,0,0,0,114,4,0,0,0,
-+ 114,6,0,0,0,114,195,0,0,0,63,3,0,0,115,2,
-+ 0,0,0,0,10,122,22,70,105,108,101,76,111,97,100,101,
-+ 114,46,108,111,97,100,95,109,111,100,117,108,101,99,2,0,
-+ 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,
-+ 0,0,115,7,0,0,0,124,0,0,106,0,0,83,41,1,
-+ 122,58,82,101,116,117,114,110,32,116,104,101,32,112,97,116,
-+ 104,32,116,111,32,116,104,101,32,115,111,117,114,99,101,32,
-+ 102,105,108,101,32,97,115,32,102,111,117,110,100,32,98,121,
-+ 32,116,104,101,32,102,105,110,100,101,114,46,41,1,114,37,
-+ 0,0,0,41,2,114,110,0,0,0,114,128,0,0,0,114,
-+ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,160,
-+ 0,0,0,75,3,0,0,115,2,0,0,0,0,3,122,23,
-+ 70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,102,
-+ 105,108,101,110,97,109,101,99,2,0,0,0,0,0,0,0,
-+ 3,0,0,0,9,0,0,0,67,0,0,0,115,42,0,0,
-+ 0,116,0,0,106,1,0,124,1,0,100,1,0,131,2,0,
-+ 143,17,0,125,2,0,124,2,0,106,2,0,131,0,0,83,
-+ 87,100,2,0,81,82,88,100,2,0,83,41,3,122,39,82,
-+ 101,116,117,114,110,32,116,104,101,32,100,97,116,97,32,102,
-+ 114,111,109,32,112,97,116,104,32,97,115,32,114,97,119,32,
-+ 98,121,116,101,115,46,218,1,114,78,41,3,114,51,0,0,
-+ 0,114,52,0,0,0,90,4,114,101,97,100,41,3,114,110,
-+ 0,0,0,114,37,0,0,0,114,56,0,0,0,114,4,0,
-+ 0,0,114,4,0,0,0,114,6,0,0,0,114,202,0,0,
-+ 0,80,3,0,0,115,4,0,0,0,0,2,21,1,122,19,
-+ 70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,100,
-+ 97,116,97,41,11,114,114,0,0,0,114,113,0,0,0,114,
-+ 115,0,0,0,114,116,0,0,0,114,187,0,0,0,114,215,
-+ 0,0,0,114,217,0,0,0,114,125,0,0,0,114,195,0,
-+ 0,0,114,160,0,0,0,114,202,0,0,0,114,4,0,0,
-+ 0,114,4,0,0,0,41,1,114,213,0,0,0,114,6,0,
-+ 0,0,114,212,0,0,0,45,3,0,0,115,14,0,0,0,
-+ 12,3,6,2,12,6,12,4,12,3,24,12,18,5,114,212,
- 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,
-- 5,0,0,0,64,0,0,0,115,121,0,0,0,101,0,0,
-+ 4,0,0,0,64,0,0,0,115,64,0,0,0,101,0,0,
- 90,1,0,100,0,0,90,2,0,100,1,0,90,3,0,100,
-- 2,0,90,4,0,100,3,0,90,5,0,100,4,0,90,6,
-- 0,101,7,0,100,5,0,100,6,0,132,0,0,131,1,0,
-- 90,8,0,101,7,0,100,7,0,100,8,0,132,0,0,131,
-- 1,0,90,9,0,101,7,0,100,9,0,100,9,0,100,10,
-- 0,100,11,0,132,2,0,131,1,0,90,10,0,101,7,0,
-- 100,9,0,100,12,0,100,13,0,132,1,0,131,1,0,90,
-- 11,0,100,9,0,83,41,14,218,21,87,105,110,100,111,119,
-- 115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,122,
-- 62,77,101,116,97,32,112,97,116,104,32,102,105,110,100,101,
-- 114,32,102,111,114,32,109,111,100,117,108,101,115,32,100,101,
-- 99,108,97,114,101,100,32,105,110,32,116,104,101,32,87,105,
-- 110,100,111,119,115,32,114,101,103,105,115,116,114,121,46,122,
-- 59,83,111,102,116,119,97,114,101,92,80,121,116,104,111,110,
-- 92,80,121,116,104,111,110,67,111,114,101,92,123,115,121,115,
-- 95,118,101,114,115,105,111,110,125,92,77,111,100,117,108,101,
-- 115,92,123,102,117,108,108,110,97,109,101,125,122,65,83,111,
-- 102,116,119,97,114,101,92,80,121,116,104,111,110,92,80,121,
-- 116,104,111,110,67,111,114,101,92,123,115,121,115,95,118,101,
-- 114,115,105,111,110,125,92,77,111,100,117,108,101,115,92,123,
-- 102,117,108,108,110,97,109,101,125,92,68,101,98,117,103,70,
-- 99,2,0,0,0,0,0,0,0,2,0,0,0,11,0,0,
-- 0,67,0,0,0,115,67,0,0,0,121,23,0,116,0,0,
-- 106,1,0,116,0,0,106,2,0,124,1,0,131,2,0,83,
-- 87,110,37,0,4,116,3,0,107,10,0,114,62,0,1,1,
-- 1,116,0,0,106,1,0,116,0,0,106,4,0,124,1,0,
-- 131,2,0,83,89,110,1,0,88,100,0,0,83,41,1,78,
-- 41,5,218,7,95,119,105,110,114,101,103,90,7,79,112,101,
-- 110,75,101,121,90,17,72,75,69,89,95,67,85,82,82,69,
-- 78,84,95,85,83,69,82,114,42,0,0,0,90,18,72,75,
-- 69,89,95,76,79,67,65,76,95,77,65,67,72,73,78,69,
-- 41,2,218,3,99,108,115,114,5,0,0,0,114,4,0,0,
-- 0,114,4,0,0,0,114,6,0,0,0,218,14,95,111,112,
-- 101,110,95,114,101,103,105,115,116,114,121,87,2,0,0,115,
-- 8,0,0,0,0,2,3,1,23,1,13,1,122,36,87,105,
-- 110,100,111,119,115,82,101,103,105,115,116,114,121,70,105,110,
-- 100,101,114,46,95,111,112,101,110,95,114,101,103,105,115,116,
-- 114,121,99,2,0,0,0,0,0,0,0,6,0,0,0,16,
-- 0,0,0,67,0,0,0,115,143,0,0,0,124,0,0,106,
-- 0,0,114,21,0,124,0,0,106,1,0,125,2,0,110,9,
-- 0,124,0,0,106,2,0,125,2,0,124,2,0,106,3,0,
-- 100,1,0,124,1,0,100,2,0,116,4,0,106,5,0,100,
-- 0,0,100,3,0,133,2,0,25,131,0,2,125,3,0,121,
-- 47,0,124,0,0,106,6,0,124,3,0,131,1,0,143,25,
-- 0,125,4,0,116,7,0,106,8,0,124,4,0,100,4,0,
-- 131,2,0,125,5,0,87,100,0,0,81,82,88,87,110,22,
-- 0,4,116,9,0,107,10,0,114,138,0,1,1,1,100,0,
-- 0,83,89,110,1,0,88,124,5,0,83,41,5,78,114,128,
-- 0,0,0,90,11,115,121,115,95,118,101,114,115,105,111,110,
-- 114,82,0,0,0,114,32,0,0,0,41,10,218,11,68,69,
-- 66,85,71,95,66,85,73,76,68,218,18,82,69,71,73,83,
-- 84,82,89,95,75,69,89,95,68,69,66,85,71,218,12,82,
-- 69,71,73,83,84,82,89,95,75,69,89,114,49,0,0,0,
-- 114,8,0,0,0,218,7,118,101,114,115,105,111,110,114,173,
-- 0,0,0,114,171,0,0,0,90,10,81,117,101,114,121,86,
-- 97,108,117,101,114,42,0,0,0,41,6,114,172,0,0,0,
-- 114,128,0,0,0,90,12,114,101,103,105,115,116,114,121,95,
-- 107,101,121,114,5,0,0,0,90,4,104,107,101,121,218,8,
-- 102,105,108,101,112,97,116,104,114,4,0,0,0,114,4,0,
-- 0,0,114,6,0,0,0,218,16,95,115,101,97,114,99,104,
-- 95,114,101,103,105,115,116,114,121,94,2,0,0,115,22,0,
-- 0,0,0,2,9,1,12,2,9,1,15,1,22,1,3,1,
-- 18,1,29,1,13,1,9,1,122,38,87,105,110,100,111,119,
-- 115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,
-- 95,115,101,97,114,99,104,95,114,101,103,105,115,116,114,121,
-- 78,99,4,0,0,0,0,0,0,0,8,0,0,0,14,0,
-- 0,0,67,0,0,0,115,158,0,0,0,124,0,0,106,0,
-- 0,124,1,0,131,1,0,125,4,0,124,4,0,100,0,0,
-- 107,8,0,114,31,0,100,0,0,83,121,14,0,116,1,0,
-- 124,4,0,131,1,0,1,87,110,22,0,4,116,2,0,107,
-- 10,0,114,69,0,1,1,1,100,0,0,83,89,110,1,0,
-- 88,120,81,0,116,3,0,131,0,0,68,93,70,0,92,2,
-- 0,125,5,0,125,6,0,124,4,0,106,4,0,116,5,0,
-- 124,6,0,131,1,0,131,1,0,114,80,0,116,6,0,106,
-- 7,0,124,1,0,124,5,0,124,1,0,124,4,0,131,2,
-- 0,100,1,0,124,4,0,131,2,1,125,7,0,124,7,0,
-- 83,113,80,0,87,100,0,0,83,41,2,78,114,160,0,0,
-- 0,41,8,114,179,0,0,0,114,41,0,0,0,114,42,0,
-- 0,0,114,163,0,0,0,114,94,0,0,0,114,95,0,0,
-- 0,114,123,0,0,0,218,16,115,112,101,99,95,102,114,111,
-- 109,95,108,111,97,100,101,114,41,8,114,172,0,0,0,114,
-- 128,0,0,0,114,37,0,0,0,218,6,116,97,114,103,101,
-- 116,114,178,0,0,0,114,129,0,0,0,114,168,0,0,0,
-- 114,166,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
-- 6,0,0,0,218,9,102,105,110,100,95,115,112,101,99,109,
-- 2,0,0,115,26,0,0,0,0,2,15,1,12,1,4,1,
-- 3,1,14,1,13,1,9,1,22,1,21,1,9,1,15,1,
-- 9,1,122,31,87,105,110,100,111,119,115,82,101,103,105,115,
-- 116,114,121,70,105,110,100,101,114,46,102,105,110,100,95,115,
-- 112,101,99,99,3,0,0,0,0,0,0,0,4,0,0,0,
-- 3,0,0,0,67,0,0,0,115,45,0,0,0,124,0,0,
-- 106,0,0,124,1,0,124,2,0,131,2,0,125,3,0,124,
-- 3,0,100,1,0,107,9,0,114,37,0,124,3,0,106,1,
-- 0,83,100,1,0,83,100,1,0,83,41,2,122,108,70,105,
-- 110,100,32,109,111,100,117,108,101,32,110,97,109,101,100,32,
-- 105,110,32,116,104,101,32,114,101,103,105,115,116,114,121,46,
-- 10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,
-- 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,
-- 116,101,100,46,32,32,85,115,101,32,101,120,101,99,95,109,
-- 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,46,
-- 10,10,32,32,32,32,32,32,32,32,78,41,2,114,182,0,
-- 0,0,114,129,0,0,0,41,4,114,172,0,0,0,114,128,
-- 0,0,0,114,37,0,0,0,114,166,0,0,0,114,4,0,
-- 0,0,114,4,0,0,0,114,6,0,0,0,218,11,102,105,
-- 110,100,95,109,111,100,117,108,101,125,2,0,0,115,8,0,
-- 0,0,0,7,18,1,12,1,7,2,122,33,87,105,110,100,
-- 111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,
-- 114,46,102,105,110,100,95,109,111,100,117,108,101,41,12,114,
-+ 2,0,100,3,0,132,0,0,90,4,0,100,4,0,100,5,
-+ 0,132,0,0,90,5,0,100,6,0,100,7,0,100,8,0,
-+ 100,9,0,132,0,1,90,6,0,100,10,0,83,41,11,218,
-+ 16,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101,
-+ 114,122,62,67,111,110,99,114,101,116,101,32,105,109,112,108,
-+ 101,109,101,110,116,97,116,105,111,110,32,111,102,32,83,111,
-+ 117,114,99,101,76,111,97,100,101,114,32,117,115,105,110,103,
-+ 32,116,104,101,32,102,105,108,101,32,115,121,115,116,101,109,
-+ 46,99,2,0,0,0,0,0,0,0,3,0,0,0,4,0,
-+ 0,0,67,0,0,0,115,34,0,0,0,116,0,0,124,1,
-+ 0,131,1,0,125,2,0,100,1,0,124,2,0,106,1,0,
-+ 100,2,0,124,2,0,106,2,0,105,2,0,83,41,3,122,
-+ 33,82,101,116,117,114,110,32,116,104,101,32,109,101,116,97,
-+ 100,97,116,97,32,102,111,114,32,116,104,101,32,112,97,116,
-+ 104,46,114,135,0,0,0,114,136,0,0,0,41,3,114,41,
-+ 0,0,0,218,8,115,116,95,109,116,105,109,101,90,7,115,
-+ 116,95,115,105,122,101,41,3,114,110,0,0,0,114,37,0,
-+ 0,0,114,210,0,0,0,114,4,0,0,0,114,4,0,0,
-+ 0,114,6,0,0,0,114,199,0,0,0,90,3,0,0,115,
-+ 4,0,0,0,0,2,12,1,122,27,83,111,117,114,99,101,
-+ 70,105,108,101,76,111,97,100,101,114,46,112,97,116,104,95,
-+ 115,116,97,116,115,99,4,0,0,0,0,0,0,0,5,0,
-+ 0,0,5,0,0,0,67,0,0,0,115,34,0,0,0,116,
-+ 0,0,124,1,0,131,1,0,125,4,0,124,0,0,106,1,
-+ 0,124,2,0,124,3,0,100,1,0,124,4,0,131,2,1,
-+ 83,41,2,78,218,5,95,109,111,100,101,41,2,114,99,0,
-+ 0,0,114,200,0,0,0,41,5,114,110,0,0,0,114,92,
-+ 0,0,0,114,91,0,0,0,114,55,0,0,0,114,44,0,
-+ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-+ 0,114,201,0,0,0,95,3,0,0,115,4,0,0,0,0,
-+ 2,12,1,122,32,83,111,117,114,99,101,70,105,108,101,76,
-+ 111,97,100,101,114,46,95,99,97,99,104,101,95,98,121,116,
-+ 101,99,111,100,101,114,222,0,0,0,105,182,1,0,0,99,
-+ 3,0,0,0,1,0,0,0,9,0,0,0,17,0,0,0,
-+ 67,0,0,0,115,53,1,0,0,116,0,0,124,1,0,131,
-+ 1,0,92,2,0,125,4,0,125,5,0,103,0,0,125,6,
-+ 0,120,54,0,124,4,0,114,80,0,116,1,0,124,4,0,
-+ 131,1,0,12,114,80,0,116,0,0,124,4,0,131,1,0,
-+ 92,2,0,125,4,0,125,7,0,124,6,0,106,2,0,124,
-+ 7,0,131,1,0,1,113,27,0,87,120,132,0,116,3,0,
-+ 124,6,0,131,1,0,68,93,118,0,125,7,0,116,4,0,
-+ 124,4,0,124,7,0,131,2,0,125,4,0,121,17,0,116,
-+ 5,0,106,6,0,124,4,0,131,1,0,1,87,113,94,0,
-+ 4,116,7,0,107,10,0,114,155,0,1,1,1,119,94,0,
-+ 89,113,94,0,4,116,8,0,107,10,0,114,211,0,1,125,
-+ 8,0,1,122,25,0,116,9,0,100,1,0,124,4,0,124,
-+ 8,0,131,3,0,1,100,2,0,83,87,89,100,2,0,100,
-+ 2,0,125,8,0,126,8,0,88,113,94,0,88,113,94,0,
-+ 87,121,33,0,116,10,0,124,1,0,124,2,0,124,3,0,
-+ 131,3,0,1,116,9,0,100,3,0,124,1,0,131,2,0,
-+ 1,87,110,53,0,4,116,8,0,107,10,0,114,48,1,1,
-+ 125,8,0,1,122,21,0,116,9,0,100,1,0,124,1,0,
-+ 124,8,0,131,3,0,1,87,89,100,2,0,100,2,0,125,
-+ 8,0,126,8,0,88,110,1,0,88,100,2,0,83,41,4,
-+ 122,27,87,114,105,116,101,32,98,121,116,101,115,32,100,97,
-+ 116,97,32,116,111,32,97,32,102,105,108,101,46,122,27,99,
-+ 111,117,108,100,32,110,111,116,32,99,114,101,97,116,101,32,
-+ 123,33,114,125,58,32,123,33,114,125,78,122,12,99,114,101,
-+ 97,116,101,100,32,123,33,114,125,41,11,114,40,0,0,0,
-+ 114,48,0,0,0,114,166,0,0,0,114,35,0,0,0,114,
-+ 30,0,0,0,114,3,0,0,0,90,5,109,107,100,105,114,
-+ 218,15,70,105,108,101,69,120,105,115,116,115,69,114,114,111,
-+ 114,114,42,0,0,0,114,107,0,0,0,114,57,0,0,0,
-+ 41,9,114,110,0,0,0,114,37,0,0,0,114,55,0,0,
-+ 0,114,222,0,0,0,218,6,112,97,114,101,110,116,114,96,
-+ 0,0,0,114,29,0,0,0,114,25,0,0,0,114,203,0,
-+ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-+ 0,114,200,0,0,0,100,3,0,0,115,38,0,0,0,0,
-+ 2,18,1,6,2,22,1,18,1,17,2,19,1,15,1,3,
-+ 1,17,1,13,2,7,1,18,3,16,1,27,1,3,1,16,
-+ 1,17,1,18,2,122,25,83,111,117,114,99,101,70,105,108,
-+ 101,76,111,97,100,101,114,46,115,101,116,95,100,97,116,97,
-+ 78,41,7,114,114,0,0,0,114,113,0,0,0,114,115,0,
-+ 0,0,114,116,0,0,0,114,199,0,0,0,114,201,0,0,
-+ 0,114,200,0,0,0,114,4,0,0,0,114,4,0,0,0,
-+ 114,4,0,0,0,114,6,0,0,0,114,220,0,0,0,86,
-+ 3,0,0,115,8,0,0,0,12,2,6,2,12,5,12,5,
-+ 114,220,0,0,0,99,0,0,0,0,0,0,0,0,0,0,
-+ 0,0,2,0,0,0,64,0,0,0,115,46,0,0,0,101,
-+ 0,0,90,1,0,100,0,0,90,2,0,100,1,0,90,3,
-+ 0,100,2,0,100,3,0,132,0,0,90,4,0,100,4,0,
-+ 100,5,0,132,0,0,90,5,0,100,6,0,83,41,7,218,
-+ 20,83,111,117,114,99,101,108,101,115,115,70,105,108,101,76,
-+ 111,97,100,101,114,122,45,76,111,97,100,101,114,32,119,104,
-+ 105,99,104,32,104,97,110,100,108,101,115,32,115,111,117,114,
-+ 99,101,108,101,115,115,32,102,105,108,101,32,105,109,112,111,
-+ 114,116,115,46,99,2,0,0,0,0,0,0,0,5,0,0,
-+ 0,6,0,0,0,67,0,0,0,115,76,0,0,0,124,0,
-+ 0,106,0,0,124,1,0,131,1,0,125,2,0,124,0,0,
-+ 106,1,0,124,2,0,131,1,0,125,3,0,116,2,0,124,
-+ 3,0,100,1,0,124,1,0,100,2,0,124,2,0,131,1,
-+ 2,125,4,0,116,3,0,124,4,0,100,1,0,124,1,0,
-+ 100,3,0,124,2,0,131,1,2,83,41,4,78,114,108,0,
-+ 0,0,114,37,0,0,0,114,91,0,0,0,41,4,114,160,
-+ 0,0,0,114,202,0,0,0,114,144,0,0,0,114,150,0,
-+ 0,0,41,5,114,110,0,0,0,114,128,0,0,0,114,37,
-+ 0,0,0,114,55,0,0,0,114,211,0,0,0,114,4,0,
-+ 0,0,114,4,0,0,0,114,6,0,0,0,114,189,0,0,
-+ 0,133,3,0,0,115,8,0,0,0,0,1,15,1,15,1,
-+ 24,1,122,29,83,111,117,114,99,101,108,101,115,115,70,105,
-+ 108,101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,
-+ 101,99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,
-+ 0,0,67,0,0,0,115,4,0,0,0,100,1,0,83,41,
-+ 2,122,39,82,101,116,117,114,110,32,78,111,110,101,32,97,
-+ 115,32,116,104,101,114,101,32,105,115,32,110,111,32,115,111,
-+ 117,114,99,101,32,99,111,100,101,46,78,114,4,0,0,0,
-+ 41,2,114,110,0,0,0,114,128,0,0,0,114,4,0,0,
-+ 0,114,4,0,0,0,114,6,0,0,0,114,204,0,0,0,
-+ 139,3,0,0,115,2,0,0,0,0,2,122,31,83,111,117,
-+ 114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,
-+ 114,46,103,101,116,95,115,111,117,114,99,101,78,41,6,114,
- 114,0,0,0,114,113,0,0,0,114,115,0,0,0,114,116,
-- 0,0,0,114,176,0,0,0,114,175,0,0,0,114,174,0,
-- 0,0,218,11,99,108,97,115,115,109,101,116,104,111,100,114,
-- 173,0,0,0,114,179,0,0,0,114,182,0,0,0,114,183,
-- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,
-- 0,0,114,6,0,0,0,114,170,0,0,0,75,2,0,0,
-- 115,20,0,0,0,12,2,6,3,6,3,6,2,6,2,18,
-- 7,18,15,3,1,21,15,3,1,114,170,0,0,0,99,0,
-- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,
-- 0,0,0,115,70,0,0,0,101,0,0,90,1,0,100,0,
-- 0,90,2,0,100,1,0,90,3,0,100,2,0,100,3,0,
-- 132,0,0,90,4,0,100,4,0,100,5,0,132,0,0,90,
-- 5,0,100,6,0,100,7,0,132,0,0,90,6,0,100,8,
-- 0,100,9,0,132,0,0,90,7,0,100,10,0,83,41,11,
-- 218,13,95,76,111,97,100,101,114,66,97,115,105,99,115,122,
-- 83,66,97,115,101,32,99,108,97,115,115,32,111,102,32,99,
-- 111,109,109,111,110,32,99,111,100,101,32,110,101,101,100,101,
-- 100,32,98,121,32,98,111,116,104,32,83,111,117,114,99,101,
-- 76,111,97,100,101,114,32,97,110,100,10,32,32,32,32,83,
-- 111,117,114,99,101,108,101,115,115,70,105,108,101,76,111,97,
-- 100,101,114,46,99,2,0,0,0,0,0,0,0,5,0,0,
-- 0,3,0,0,0,67,0,0,0,115,88,0,0,0,116,0,
-- 0,124,0,0,106,1,0,124,1,0,131,1,0,131,1,0,
-- 100,1,0,25,125,2,0,124,2,0,106,2,0,100,2,0,
-- 100,1,0,131,2,0,100,3,0,25,125,3,0,124,1,0,
-- 106,3,0,100,2,0,131,1,0,100,4,0,25,125,4,0,
-- 124,3,0,100,5,0,107,2,0,111,87,0,124,4,0,100,
-- 5,0,107,3,0,83,41,6,122,141,67,111,110,99,114,101,
-- 116,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,
-- 110,32,111,102,32,73,110,115,112,101,99,116,76,111,97,100,
-- 101,114,46,105,115,95,112,97,99,107,97,103,101,32,98,121,
-- 32,99,104,101,99,107,105,110,103,32,105,102,10,32,32,32,
-- 32,32,32,32,32,116,104,101,32,112,97,116,104,32,114,101,
-- 116,117,114,110,101,100,32,98,121,32,103,101,116,95,102,105,
-- 108,101,110,97,109,101,32,104,97,115,32,97,32,102,105,108,
-- 101,110,97,109,101,32,111,102,32,39,95,95,105,110,105,116,
-- 95,95,46,112,121,39,46,114,31,0,0,0,114,60,0,0,
-- 0,114,61,0,0,0,114,58,0,0,0,218,8,95,95,105,
-- 110,105,116,95,95,41,4,114,40,0,0,0,114,159,0,0,
-- 0,114,36,0,0,0,114,34,0,0,0,41,5,114,110,0,
-- 0,0,114,128,0,0,0,114,96,0,0,0,90,13,102,105,
-- 108,101,110,97,109,101,95,98,97,115,101,90,9,116,97,105,
-- 108,95,110,97,109,101,114,4,0,0,0,114,4,0,0,0,
-- 114,6,0,0,0,114,161,0,0,0,144,2,0,0,115,8,
-- 0,0,0,0,3,25,1,22,1,19,1,122,24,95,76,111,
-- 97,100,101,114,66,97,115,105,99,115,46,105,115,95,112,97,
-- 99,107,97,103,101,99,2,0,0,0,0,0,0,0,2,0,
-- 0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,
-- 1,0,83,41,2,122,42,85,115,101,32,100,101,102,97,117,
-- 108,116,32,115,101,109,97,110,116,105,99,115,32,102,111,114,
-- 32,109,111,100,117,108,101,32,99,114,101,97,116,105,111,110,
-- 46,78,114,4,0,0,0,41,2,114,110,0,0,0,114,166,
-- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
-- 0,0,218,13,99,114,101,97,116,101,95,109,111,100,117,108,
-- 101,152,2,0,0,115,0,0,0,0,122,27,95,76,111,97,
-- 100,101,114,66,97,115,105,99,115,46,99,114,101,97,116,101,
-- 95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,
-- 3,0,0,0,4,0,0,0,67,0,0,0,115,80,0,0,
-- 0,124,0,0,106,0,0,124,1,0,106,1,0,131,1,0,
-- 125,2,0,124,2,0,100,1,0,107,8,0,114,54,0,116,
-- 2,0,100,2,0,106,3,0,124,1,0,106,1,0,131,1,
-- 0,131,1,0,130,1,0,116,4,0,106,5,0,116,6,0,
-- 124,2,0,124,1,0,106,7,0,131,3,0,1,100,1,0,
-- 83,41,3,122,19,69,120,101,99,117,116,101,32,116,104,101,
-- 32,109,111,100,117,108,101,46,78,122,52,99,97,110,110,111,
-- 116,32,108,111,97,100,32,109,111,100,117,108,101,32,123,33,
-- 114,125,32,119,104,101,110,32,103,101,116,95,99,111,100,101,
-- 40,41,32,114,101,116,117,114,110,115,32,78,111,110,101,41,
-- 8,218,8,103,101,116,95,99,111,100,101,114,114,0,0,0,
-- 114,109,0,0,0,114,49,0,0,0,114,123,0,0,0,218,
-- 25,95,99,97,108,108,95,119,105,116,104,95,102,114,97,109,
-- 101,115,95,114,101,109,111,118,101,100,218,4,101,120,101,99,
-- 114,120,0,0,0,41,3,114,110,0,0,0,218,6,109,111,
-- 100,117,108,101,114,148,0,0,0,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,218,11,101,120,101,99,95,109,
-- 111,100,117,108,101,155,2,0,0,115,10,0,0,0,0,2,
-- 18,1,12,1,9,1,15,1,122,25,95,76,111,97,100,101,
-- 114,66,97,115,105,99,115,46,101,120,101,99,95,109,111,100,
-- 117,108,101,99,2,0,0,0,0,0,0,0,2,0,0,0,
-- 3,0,0,0,67,0,0,0,115,16,0,0,0,116,0,0,
-- 106,1,0,124,0,0,124,1,0,131,2,0,83,41,1,78,
-- 41,2,114,123,0,0,0,218,17,95,108,111,97,100,95,109,
-- 111,100,117,108,101,95,115,104,105,109,41,2,114,110,0,0,
-- 0,114,128,0,0,0,114,4,0,0,0,114,4,0,0,0,
-- 114,6,0,0,0,218,11,108,111,97,100,95,109,111,100,117,
-- 108,101,163,2,0,0,115,2,0,0,0,0,1,122,25,95,
-- 76,111,97,100,101,114,66,97,115,105,99,115,46,108,111,97,
-- 100,95,109,111,100,117,108,101,78,41,8,114,114,0,0,0,
-- 114,113,0,0,0,114,115,0,0,0,114,116,0,0,0,114,
-- 161,0,0,0,114,187,0,0,0,114,192,0,0,0,114,194,
-- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,
-- 0,0,114,6,0,0,0,114,185,0,0,0,139,2,0,0,
-- 115,10,0,0,0,12,3,6,2,12,8,12,3,12,8,114,
-- 185,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
-- 0,4,0,0,0,64,0,0,0,115,106,0,0,0,101,0,
-- 0,90,1,0,100,0,0,90,2,0,100,1,0,100,2,0,
-- 132,0,0,90,3,0,100,3,0,100,4,0,132,0,0,90,
-- 4,0,100,5,0,100,6,0,132,0,0,90,5,0,100,7,
-- 0,100,8,0,132,0,0,90,6,0,100,9,0,100,10,0,
-- 132,0,0,90,7,0,100,11,0,100,18,0,100,13,0,100,
-- 14,0,132,0,1,90,8,0,100,15,0,100,16,0,132,0,
-- 0,90,9,0,100,17,0,83,41,19,218,12,83,111,117,114,
-- 99,101,76,111,97,100,101,114,99,2,0,0,0,0,0,0,
-- 0,2,0,0,0,1,0,0,0,67,0,0,0,115,10,0,
-- 0,0,116,0,0,130,1,0,100,1,0,83,41,2,122,178,
-- 79,112,116,105,111,110,97,108,32,109,101,116,104,111,100,32,
-- 116,104,97,116,32,114,101,116,117,114,110,115,32,116,104,101,
-- 32,109,111,100,105,102,105,99,97,116,105,111,110,32,116,105,
-- 109,101,32,40,97,110,32,105,110,116,41,32,102,111,114,32,
-- 116,104,101,10,32,32,32,32,32,32,32,32,115,112,101,99,
-- 105,102,105,101,100,32,112,97,116,104,44,32,119,104,101,114,
-- 101,32,112,97,116,104,32,105,115,32,97,32,115,116,114,46,
-- 10,10,32,32,32,32,32,32,32,32,82,97,105,115,101,115,
-- 32,73,79,69,114,114,111,114,32,119,104,101,110,32,116,104,
-- 101,32,112,97,116,104,32,99,97,110,110,111,116,32,98,101,
-- 32,104,97,110,100,108,101,100,46,10,32,32,32,32,32,32,
-- 32,32,78,41,1,218,7,73,79,69,114,114,111,114,41,2,
-- 114,110,0,0,0,114,37,0,0,0,114,4,0,0,0,114,
-- 4,0,0,0,114,6,0,0,0,218,10,112,97,116,104,95,
-- 109,116,105,109,101,169,2,0,0,115,2,0,0,0,0,6,
-- 122,23,83,111,117,114,99,101,76,111,97,100,101,114,46,112,
-- 97,116,104,95,109,116,105,109,101,99,2,0,0,0,0,0,
-- 0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,19,
-- 0,0,0,100,1,0,124,0,0,106,0,0,124,1,0,131,
-- 1,0,105,1,0,83,41,2,97,170,1,0,0,79,112,116,
-- 105,111,110,97,108,32,109,101,116,104,111,100,32,114,101,116,
-- 117,114,110,105,110,103,32,97,32,109,101,116,97,100,97,116,
-- 97,32,100,105,99,116,32,102,111,114,32,116,104,101,32,115,
-- 112,101,99,105,102,105,101,100,32,112,97,116,104,10,32,32,
-- 32,32,32,32,32,32,116,111,32,98,121,32,116,104,101,32,
-- 112,97,116,104,32,40,115,116,114,41,46,10,32,32,32,32,
-- 32,32,32,32,80,111,115,115,105,98,108,101,32,107,101,121,
-- 115,58,10,32,32,32,32,32,32,32,32,45,32,39,109,116,
-- 105,109,101,39,32,40,109,97,110,100,97,116,111,114,121,41,
-- 32,105,115,32,116,104,101,32,110,117,109,101,114,105,99,32,
-- 116,105,109,101,115,116,97,109,112,32,111,102,32,108,97,115,
-- 116,32,115,111,117,114,99,101,10,32,32,32,32,32,32,32,
-- 32,32,32,99,111,100,101,32,109,111,100,105,102,105,99,97,
-- 116,105,111,110,59,10,32,32,32,32,32,32,32,32,45,32,
-- 39,115,105,122,101,39,32,40,111,112,116,105,111,110,97,108,
-- 41,32,105,115,32,116,104,101,32,115,105,122,101,32,105,110,
-- 32,98,121,116,101,115,32,111,102,32,116,104,101,32,115,111,
-- 117,114,99,101,32,99,111,100,101,46,10,10,32,32,32,32,
-- 32,32,32,32,73,109,112,108,101,109,101,110,116,105,110,103,
-- 32,116,104,105,115,32,109,101,116,104,111,100,32,97,108,108,
-- 111,119,115,32,116,104,101,32,108,111,97,100,101,114,32,116,
-- 111,32,114,101,97,100,32,98,121,116,101,99,111,100,101,32,
-- 102,105,108,101,115,46,10,32,32,32,32,32,32,32,32,82,
-- 97,105,115,101,115,32,73,79,69,114,114,111,114,32,119,104,
-- 101,110,32,116,104,101,32,112,97,116,104,32,99,97,110,110,
-- 111,116,32,98,101,32,104,97,110,100,108,101,100,46,10,32,
-- 32,32,32,32,32,32,32,114,135,0,0,0,41,1,114,197,
-- 0,0,0,41,2,114,110,0,0,0,114,37,0,0,0,114,
-- 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,10,
-- 112,97,116,104,95,115,116,97,116,115,177,2,0,0,115,2,
-- 0,0,0,0,11,122,23,83,111,117,114,99,101,76,111,97,
-- 100,101,114,46,112,97,116,104,95,115,116,97,116,115,99,4,
-- 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,
-- 0,0,0,115,16,0,0,0,124,0,0,106,0,0,124,2,
-- 0,124,3,0,131,2,0,83,41,1,122,228,79,112,116,105,
-- 111,110,97,108,32,109,101,116,104,111,100,32,119,104,105,99,
-- 104,32,119,114,105,116,101,115,32,100,97,116,97,32,40,98,
-- 121,116,101,115,41,32,116,111,32,97,32,102,105,108,101,32,
-- 112,97,116,104,32,40,97,32,115,116,114,41,46,10,10,32,
-- 32,32,32,32,32,32,32,73,109,112,108,101,109,101,110,116,
-- 105,110,103,32,116,104,105,115,32,109,101,116,104,111,100,32,
-- 97,108,108,111,119,115,32,102,111,114,32,116,104,101,32,119,
-- 114,105,116,105,110,103,32,111,102,32,98,121,116,101,99,111,
-- 100,101,32,102,105,108,101,115,46,10,10,32,32,32,32,32,
-- 32,32,32,84,104,101,32,115,111,117,114,99,101,32,112,97,
-- 116,104,32,105,115,32,110,101,101,100,101,100,32,105,110,32,
-- 111,114,100,101,114,32,116,111,32,99,111,114,114,101,99,116,
-- 108,121,32,116,114,97,110,115,102,101,114,32,112,101,114,109,
-- 105,115,115,105,111,110,115,10,32,32,32,32,32,32,32,32,
-- 41,1,218,8,115,101,116,95,100,97,116,97,41,4,114,110,
-- 0,0,0,114,92,0,0,0,90,10,99,97,99,104,101,95,
-- 112,97,116,104,114,55,0,0,0,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,218,15,95,99,97,99,104,101,
-- 95,98,121,116,101,99,111,100,101,190,2,0,0,115,2,0,
-- 0,0,0,8,122,28,83,111,117,114,99,101,76,111,97,100,
-- 101,114,46,95,99,97,99,104,101,95,98,121,116,101,99,111,
-- 100,101,99,3,0,0,0,0,0,0,0,3,0,0,0,1,
-- 0,0,0,67,0,0,0,115,4,0,0,0,100,1,0,83,
-- 41,2,122,150,79,112,116,105,111,110,97,108,32,109,101,116,
-- 104,111,100,32,119,104,105,99,104,32,119,114,105,116,101,115,
-- 32,100,97,116,97,32,40,98,121,116,101,115,41,32,116,111,
-- 32,97,32,102,105,108,101,32,112,97,116,104,32,40,97,32,
-- 115,116,114,41,46,10,10,32,32,32,32,32,32,32,32,73,
-- 109,112,108,101,109,101,110,116,105,110,103,32,116,104,105,115,
-- 32,109,101,116,104,111,100,32,97,108,108,111,119,115,32,102,
-- 111,114,32,116,104,101,32,119,114,105,116,105,110,103,32,111,
-- 102,32,98,121,116,101,99,111,100,101,32,102,105,108,101,115,
-- 46,10,32,32,32,32,32,32,32,32,78,114,4,0,0,0,
-- 41,3,114,110,0,0,0,114,37,0,0,0,114,55,0,0,
-- 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-- 114,199,0,0,0,200,2,0,0,115,0,0,0,0,122,21,
-- 83,111,117,114,99,101,76,111,97,100,101,114,46,115,101,116,
-- 95,100,97,116,97,99,2,0,0,0,0,0,0,0,5,0,
-- 0,0,16,0,0,0,67,0,0,0,115,105,0,0,0,124,
-- 0,0,106,0,0,124,1,0,131,1,0,125,2,0,121,19,
-- 0,124,0,0,106,1,0,124,2,0,131,1,0,125,3,0,
-- 87,110,58,0,4,116,2,0,107,10,0,114,94,0,1,125,
-- 4,0,1,122,26,0,116,3,0,100,1,0,100,2,0,124,
-- 1,0,131,1,1,124,4,0,130,2,0,87,89,100,3,0,
-- 100,3,0,125,4,0,126,4,0,88,110,1,0,88,116,4,
-- 0,124,3,0,131,1,0,83,41,4,122,52,67,111,110,99,
-- 114,101,116,101,32,105,109,112,108,101,109,101,110,116,97,116,
-- 105,111,110,32,111,102,32,73,110,115,112,101,99,116,76,111,
-- 97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,46,
-- 122,39,115,111,117,114,99,101,32,110,111,116,32,97,118,97,
-- 105,108,97,98,108,101,32,116,104,114,111,117,103,104,32,103,
-- 101,116,95,100,97,116,97,40,41,114,108,0,0,0,78,41,
-- 5,114,159,0,0,0,218,8,103,101,116,95,100,97,116,97,
-- 114,42,0,0,0,114,109,0,0,0,114,157,0,0,0,41,
-- 5,114,110,0,0,0,114,128,0,0,0,114,37,0,0,0,
-- 114,155,0,0,0,218,3,101,120,99,114,4,0,0,0,114,
-- 4,0,0,0,114,6,0,0,0,218,10,103,101,116,95,115,
-- 111,117,114,99,101,207,2,0,0,115,14,0,0,0,0,2,
-- 15,1,3,1,19,1,18,1,9,1,31,1,122,23,83,111,
-- 117,114,99,101,76,111,97,100,101,114,46,103,101,116,95,115,
-- 111,117,114,99,101,218,9,95,111,112,116,105,109,105,122,101,
-- 114,31,0,0,0,99,3,0,0,0,1,0,0,0,4,0,
-- 0,0,9,0,0,0,67,0,0,0,115,34,0,0,0,116,
-- 0,0,106,1,0,116,2,0,124,1,0,124,2,0,100,1,
-- 0,100,2,0,100,3,0,100,4,0,124,3,0,131,4,2,
-- 83,41,5,122,130,82,101,116,117,114,110,32,116,104,101,32,
-- 99,111,100,101,32,111,98,106,101,99,116,32,99,111,109,112,
-- 105,108,101,100,32,102,114,111,109,32,115,111,117,114,99,101,
-- 46,10,10,32,32,32,32,32,32,32,32,84,104,101,32,39,
-- 100,97,116,97,39,32,97,114,103,117,109,101,110,116,32,99,
-- 97,110,32,98,101,32,97,110,121,32,111,98,106,101,99,116,
-- 32,116,121,112,101,32,116,104,97,116,32,99,111,109,112,105,
-- 108,101,40,41,32,115,117,112,112,111,114,116,115,46,10,32,
-- 32,32,32,32,32,32,32,114,190,0,0,0,218,12,100,111,
-- 110,116,95,105,110,104,101,114,105,116,84,114,70,0,0,0,
-- 41,3,114,123,0,0,0,114,189,0,0,0,218,7,99,111,
-- 109,112,105,108,101,41,4,114,110,0,0,0,114,55,0,0,
-- 0,114,37,0,0,0,114,204,0,0,0,114,4,0,0,0,
-- 114,4,0,0,0,114,6,0,0,0,218,14,115,111,117,114,
-- 99,101,95,116,111,95,99,111,100,101,217,2,0,0,115,4,
-- 0,0,0,0,5,21,1,122,27,83,111,117,114,99,101,76,
-- 111,97,100,101,114,46,115,111,117,114,99,101,95,116,111,95,
-- 99,111,100,101,99,2,0,0,0,0,0,0,0,10,0,0,
-- 0,43,0,0,0,67,0,0,0,115,174,1,0,0,124,0,
-- 0,106,0,0,124,1,0,131,1,0,125,2,0,100,1,0,
-- 125,3,0,121,16,0,116,1,0,124,2,0,131,1,0,125,
-- 4,0,87,110,24,0,4,116,2,0,107,10,0,114,63,0,
-- 1,1,1,100,1,0,125,4,0,89,110,202,0,88,121,19,
-- 0,124,0,0,106,3,0,124,2,0,131,1,0,125,5,0,
-- 87,110,18,0,4,116,4,0,107,10,0,114,103,0,1,1,
-- 1,89,110,162,0,88,116,5,0,124,5,0,100,2,0,25,
-- 131,1,0,125,3,0,121,19,0,124,0,0,106,6,0,124,
-- 4,0,131,1,0,125,6,0,87,110,18,0,4,116,7,0,
-- 107,10,0,114,159,0,1,1,1,89,110,106,0,88,121,34,
-- 0,116,8,0,124,6,0,100,3,0,124,5,0,100,4,0,
-- 124,1,0,100,5,0,124,4,0,131,1,3,125,7,0,87,
-- 110,24,0,4,116,9,0,116,10,0,102,2,0,107,10,0,
-- 114,220,0,1,1,1,89,110,45,0,88,116,11,0,100,6,
-- 0,124,4,0,124,2,0,131,3,0,1,116,12,0,124,7,
-- 0,100,4,0,124,1,0,100,7,0,124,4,0,100,8,0,
-- 124,2,0,131,1,3,83,124,0,0,106,6,0,124,2,0,
-- 131,1,0,125,8,0,124,0,0,106,13,0,124,8,0,124,
-- 2,0,131,2,0,125,9,0,116,11,0,100,9,0,124,2,
-- 0,131,2,0,1,116,14,0,106,15,0,12,114,170,1,124,
-- 4,0,100,1,0,107,9,0,114,170,1,124,3,0,100,1,
-- 0,107,9,0,114,170,1,116,16,0,124,9,0,124,3,0,
-- 116,17,0,124,8,0,131,1,0,131,3,0,125,6,0,121,
-- 36,0,124,0,0,106,18,0,124,2,0,124,4,0,124,6,
-- 0,131,3,0,1,116,11,0,100,10,0,124,4,0,131,2,
-- 0,1,87,110,18,0,4,116,2,0,107,10,0,114,169,1,
-- 1,1,1,89,110,1,0,88,124,9,0,83,41,11,122,190,
-- 67,111,110,99,114,101,116,101,32,105,109,112,108,101,109,101,
-- 110,116,97,116,105,111,110,32,111,102,32,73,110,115,112,101,
-- 99,116,76,111,97,100,101,114,46,103,101,116,95,99,111,100,
-- 101,46,10,10,32,32,32,32,32,32,32,32,82,101,97,100,
-- 105,110,103,32,111,102,32,98,121,116,101,99,111,100,101,32,
-- 114,101,113,117,105,114,101,115,32,112,97,116,104,95,115,116,
-- 97,116,115,32,116,111,32,98,101,32,105,109,112,108,101,109,
-- 101,110,116,101,100,46,32,84,111,32,119,114,105,116,101,10,
-- 32,32,32,32,32,32,32,32,98,121,116,101,99,111,100,101,
-- 44,32,115,101,116,95,100,97,116,97,32,109,117,115,116,32,
-- 97,108,115,111,32,98,101,32,105,109,112,108,101,109,101,110,
-- 116,101,100,46,10,10,32,32,32,32,32,32,32,32,78,114,
-- 135,0,0,0,114,140,0,0,0,114,108,0,0,0,114,37,
-- 0,0,0,122,13,123,125,32,109,97,116,99,104,101,115,32,
-- 123,125,114,91,0,0,0,114,92,0,0,0,122,19,99,111,
-- 100,101,32,111,98,106,101,99,116,32,102,114,111,109,32,123,
-- 125,122,10,119,114,111,116,101,32,123,33,114,125,41,19,114,
-- 159,0,0,0,114,81,0,0,0,114,68,0,0,0,114,198,
-- 0,0,0,114,196,0,0,0,114,16,0,0,0,114,201,0,
-- 0,0,114,42,0,0,0,114,143,0,0,0,114,109,0,0,
-- 0,114,138,0,0,0,114,107,0,0,0,114,149,0,0,0,
-- 114,207,0,0,0,114,8,0,0,0,218,19,100,111,110,116,
-- 95,119,114,105,116,101,95,98,121,116,101,99,111,100,101,114,
-- 152,0,0,0,114,33,0,0,0,114,200,0,0,0,41,10,
-- 114,110,0,0,0,114,128,0,0,0,114,92,0,0,0,114,
-- 141,0,0,0,114,91,0,0,0,218,2,115,116,114,55,0,
-- 0,0,218,10,98,121,116,101,115,95,100,97,116,97,114,155,
-- 0,0,0,90,11,99,111,100,101,95,111,98,106,101,99,116,
-- 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,
-- 188,0,0,0,225,2,0,0,115,78,0,0,0,0,7,15,
-- 1,6,1,3,1,16,1,13,1,11,2,3,1,19,1,13,
-- 1,5,2,16,1,3,1,19,1,13,1,5,2,3,1,9,
-- 1,12,1,13,1,19,1,5,2,9,1,7,1,15,1,6,
-- 1,7,1,15,1,18,1,13,1,22,1,12,1,9,1,15,
-- 1,3,1,19,1,17,1,13,1,5,1,122,21,83,111,117,
-- 114,99,101,76,111,97,100,101,114,46,103,101,116,95,99,111,
-- 100,101,78,114,89,0,0,0,41,10,114,114,0,0,0,114,
-- 113,0,0,0,114,115,0,0,0,114,197,0,0,0,114,198,
-- 0,0,0,114,200,0,0,0,114,199,0,0,0,114,203,0,
-- 0,0,114,207,0,0,0,114,188,0,0,0,114,4,0,0,
-- 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-- 114,195,0,0,0,167,2,0,0,115,14,0,0,0,12,2,
-- 12,8,12,13,12,10,12,7,12,10,18,8,114,195,0,0,
-- 0,99,0,0,0,0,0,0,0,0,0,0,0,0,4,0,
-- 0,0,0,0,0,0,115,112,0,0,0,101,0,0,90,1,
-- 0,100,0,0,90,2,0,100,1,0,90,3,0,100,2,0,
-- 100,3,0,132,0,0,90,4,0,100,4,0,100,5,0,132,
-- 0,0,90,5,0,100,6,0,100,7,0,132,0,0,90,6,
-- 0,101,7,0,135,0,0,102,1,0,100,8,0,100,9,0,
-- 134,0,0,131,1,0,90,8,0,101,7,0,100,10,0,100,
-- 11,0,132,0,0,131,1,0,90,9,0,100,12,0,100,13,
-- 0,132,0,0,90,10,0,135,0,0,83,41,14,218,10,70,
-- 105,108,101,76,111,97,100,101,114,122,103,66,97,115,101,32,
-- 102,105,108,101,32,108,111,97,100,101,114,32,99,108,97,115,
-- 115,32,119,104,105,99,104,32,105,109,112,108,101,109,101,110,
-- 116,115,32,116,104,101,32,108,111,97,100,101,114,32,112,114,
-- 111,116,111,99,111,108,32,109,101,116,104,111,100,115,32,116,
-- 104,97,116,10,32,32,32,32,114,101,113,117,105,114,101,32,
-- 102,105,108,101,32,115,121,115,116,101,109,32,117,115,97,103,
-- 101,46,99,3,0,0,0,0,0,0,0,3,0,0,0,2,
-- 0,0,0,67,0,0,0,115,22,0,0,0,124,1,0,124,
-- 0,0,95,0,0,124,2,0,124,0,0,95,1,0,100,1,
-- 0,83,41,2,122,75,67,97,99,104,101,32,116,104,101,32,
-- 109,111,100,117,108,101,32,110,97,109,101,32,97,110,100,32,
-- 116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,
-- 102,105,108,101,32,102,111,117,110,100,32,98,121,32,116,104,
-- 101,10,32,32,32,32,32,32,32,32,102,105,110,100,101,114,
-- 46,78,41,2,114,108,0,0,0,114,37,0,0,0,41,3,
-- 114,110,0,0,0,114,128,0,0,0,114,37,0,0,0,114,
-- 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,186,
-- 0,0,0,26,3,0,0,115,4,0,0,0,0,3,9,1,
-- 122,19,70,105,108,101,76,111,97,100,101,114,46,95,95,105,
-- 110,105,116,95,95,99,2,0,0,0,0,0,0,0,2,0,
-- 0,0,2,0,0,0,67,0,0,0,115,34,0,0,0,124,
-- 0,0,106,0,0,124,1,0,106,0,0,107,2,0,111,33,
-- 0,124,0,0,106,1,0,124,1,0,106,1,0,107,2,0,
-- 83,41,1,78,41,2,218,9,95,95,99,108,97,115,115,95,
-- 95,114,120,0,0,0,41,2,114,110,0,0,0,218,5,111,
-- 116,104,101,114,114,4,0,0,0,114,4,0,0,0,114,6,
-- 0,0,0,218,6,95,95,101,113,95,95,32,3,0,0,115,
-- 4,0,0,0,0,1,18,1,122,17,70,105,108,101,76,111,
-- 97,100,101,114,46,95,95,101,113,95,95,99,1,0,0,0,
-- 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
-- 115,26,0,0,0,116,0,0,124,0,0,106,1,0,131,1,
-- 0,116,0,0,124,0,0,106,2,0,131,1,0,65,83,41,
-- 1,78,41,3,218,4,104,97,115,104,114,108,0,0,0,114,
-- 37,0,0,0,41,1,114,110,0,0,0,114,4,0,0,0,
-- 114,4,0,0,0,114,6,0,0,0,218,8,95,95,104,97,
-- 115,104,95,95,36,3,0,0,115,2,0,0,0,0,1,122,
-- 19,70,105,108,101,76,111,97,100,101,114,46,95,95,104,97,
-- 115,104,95,95,99,2,0,0,0,0,0,0,0,2,0,0,
-- 0,3,0,0,0,3,0,0,0,115,22,0,0,0,116,0,
-- 0,116,1,0,124,0,0,131,2,0,106,2,0,124,1,0,
-- 131,1,0,83,41,1,122,100,76,111,97,100,32,97,32,109,
-- 111,100,117,108,101,32,102,114,111,109,32,97,32,102,105,108,
-- 101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,115,
-- 32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,
-- 99,97,116,101,100,46,32,32,85,115,101,32,101,120,101,99,
-- 95,109,111,100,117,108,101,40,41,32,105,110,115,116,101,97,
-- 100,46,10,10,32,32,32,32,32,32,32,32,41,3,218,5,
-- 115,117,112,101,114,114,211,0,0,0,114,194,0,0,0,41,
-- 2,114,110,0,0,0,114,128,0,0,0,41,1,114,212,0,
-- 0,0,114,4,0,0,0,114,6,0,0,0,114,194,0,0,
-- 0,39,3,0,0,115,2,0,0,0,0,10,122,22,70,105,
-- 108,101,76,111,97,100,101,114,46,108,111,97,100,95,109,111,
-- 100,117,108,101,99,2,0,0,0,0,0,0,0,2,0,0,
-- 0,1,0,0,0,67,0,0,0,115,7,0,0,0,124,0,
-- 0,106,0,0,83,41,1,122,58,82,101,116,117,114,110,32,
-- 116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,
-- 115,111,117,114,99,101,32,102,105,108,101,32,97,115,32,102,
-- 111,117,110,100,32,98,121,32,116,104,101,32,102,105,110,100,
-- 101,114,46,41,1,114,37,0,0,0,41,2,114,110,0,0,
-- 0,114,128,0,0,0,114,4,0,0,0,114,4,0,0,0,
-- 114,6,0,0,0,114,159,0,0,0,51,3,0,0,115,2,
-- 0,0,0,0,3,122,23,70,105,108,101,76,111,97,100,101,
-- 114,46,103,101,116,95,102,105,108,101,110,97,109,101,99,2,
-- 0,0,0,0,0,0,0,3,0,0,0,9,0,0,0,67,
-- 0,0,0,115,42,0,0,0,116,0,0,106,1,0,124,1,
-- 0,100,1,0,131,2,0,143,17,0,125,2,0,124,2,0,
-- 106,2,0,131,0,0,83,87,100,2,0,81,82,88,100,2,
-- 0,83,41,3,122,39,82,101,116,117,114,110,32,116,104,101,
-- 32,100,97,116,97,32,102,114,111,109,32,112,97,116,104,32,
-- 97,115,32,114,97,119,32,98,121,116,101,115,46,218,1,114,
-- 78,41,3,114,51,0,0,0,114,52,0,0,0,90,4,114,
-- 101,97,100,41,3,114,110,0,0,0,114,37,0,0,0,114,
-- 56,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
-- 0,0,0,114,201,0,0,0,56,3,0,0,115,4,0,0,
-- 0,0,2,21,1,122,19,70,105,108,101,76,111,97,100,101,
-- 114,46,103,101,116,95,100,97,116,97,41,11,114,114,0,0,
-- 0,114,113,0,0,0,114,115,0,0,0,114,116,0,0,0,
-- 114,186,0,0,0,114,214,0,0,0,114,216,0,0,0,114,
-- 125,0,0,0,114,194,0,0,0,114,159,0,0,0,114,201,
-- 0,0,0,114,4,0,0,0,114,4,0,0,0,41,1,114,
-- 212,0,0,0,114,6,0,0,0,114,211,0,0,0,21,3,
-- 0,0,115,14,0,0,0,12,3,6,2,12,6,12,4,12,
-- 3,24,12,18,5,114,211,0,0,0,99,0,0,0,0,0,
-- 0,0,0,0,0,0,0,4,0,0,0,64,0,0,0,115,
-- 64,0,0,0,101,0,0,90,1,0,100,0,0,90,2,0,
-+ 0,0,0,114,189,0,0,0,114,204,0,0,0,114,4,0,
-+ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-+ 0,114,225,0,0,0,129,3,0,0,115,6,0,0,0,12,
-+ 2,6,2,12,6,114,225,0,0,0,99,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,
-+ 136,0,0,0,101,0,0,90,1,0,100,0,0,90,2,0,
- 100,1,0,90,3,0,100,2,0,100,3,0,132,0,0,90,
- 4,0,100,4,0,100,5,0,132,0,0,90,5,0,100,6,
-- 0,100,7,0,100,8,0,100,9,0,132,0,1,90,6,0,
-- 100,10,0,83,41,11,218,16,83,111,117,114,99,101,70,105,
-- 108,101,76,111,97,100,101,114,122,62,67,111,110,99,114,101,
-- 116,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,
-- 110,32,111,102,32,83,111,117,114,99,101,76,111,97,100,101,
-- 114,32,117,115,105,110,103,32,116,104,101,32,102,105,108,101,
-- 32,115,121,115,116,101,109,46,99,2,0,0,0,0,0,0,
-- 0,3,0,0,0,4,0,0,0,67,0,0,0,115,34,0,
-- 0,0,116,0,0,124,1,0,131,1,0,125,2,0,100,1,
-- 0,124,2,0,106,1,0,100,2,0,124,2,0,106,2,0,
-- 105,2,0,83,41,3,122,33,82,101,116,117,114,110,32,116,
-- 104,101,32,109,101,116,97,100,97,116,97,32,102,111,114,32,
-- 116,104,101,32,112,97,116,104,46,114,135,0,0,0,114,136,
-- 0,0,0,41,3,114,41,0,0,0,218,8,115,116,95,109,
-- 116,105,109,101,90,7,115,116,95,115,105,122,101,41,3,114,
-- 110,0,0,0,114,37,0,0,0,114,209,0,0,0,114,4,
-- 0,0,0,114,4,0,0,0,114,6,0,0,0,114,198,0,
-- 0,0,66,3,0,0,115,4,0,0,0,0,2,12,1,122,
-- 27,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101,
-- 114,46,112,97,116,104,95,115,116,97,116,115,99,4,0,0,
-- 0,0,0,0,0,5,0,0,0,5,0,0,0,67,0,0,
-- 0,115,34,0,0,0,116,0,0,124,1,0,131,1,0,125,
-- 4,0,124,0,0,106,1,0,124,2,0,124,3,0,100,1,
-- 0,124,4,0,131,2,1,83,41,2,78,218,5,95,109,111,
-- 100,101,41,2,114,99,0,0,0,114,199,0,0,0,41,5,
-- 114,110,0,0,0,114,92,0,0,0,114,91,0,0,0,114,
-- 55,0,0,0,114,44,0,0,0,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,114,200,0,0,0,71,3,0,
-- 0,115,4,0,0,0,0,2,12,1,122,32,83,111,117,114,
-- 99,101,70,105,108,101,76,111,97,100,101,114,46,95,99,97,
-- 99,104,101,95,98,121,116,101,99,111,100,101,114,221,0,0,
-- 0,105,182,1,0,0,99,3,0,0,0,1,0,0,0,9,
-- 0,0,0,17,0,0,0,67,0,0,0,115,53,1,0,0,
-- 116,0,0,124,1,0,131,1,0,92,2,0,125,4,0,125,
-- 5,0,103,0,0,125,6,0,120,54,0,124,4,0,114,80,
-- 0,116,1,0,124,4,0,131,1,0,12,114,80,0,116,0,
-- 0,124,4,0,131,1,0,92,2,0,125,4,0,125,7,0,
-- 124,6,0,106,2,0,124,7,0,131,1,0,1,113,27,0,
-- 87,120,132,0,116,3,0,124,6,0,131,1,0,68,93,118,
-- 0,125,7,0,116,4,0,124,4,0,124,7,0,131,2,0,
-- 125,4,0,121,17,0,116,5,0,106,6,0,124,4,0,131,
-- 1,0,1,87,113,94,0,4,116,7,0,107,10,0,114,155,
-- 0,1,1,1,119,94,0,89,113,94,0,4,116,8,0,107,
-- 10,0,114,211,0,1,125,8,0,1,122,25,0,116,9,0,
-- 100,1,0,124,4,0,124,8,0,131,3,0,1,100,2,0,
-- 83,87,89,100,2,0,100,2,0,125,8,0,126,8,0,88,
-- 113,94,0,88,113,94,0,87,121,33,0,116,10,0,124,1,
-- 0,124,2,0,124,3,0,131,3,0,1,116,9,0,100,3,
-- 0,124,1,0,131,2,0,1,87,110,53,0,4,116,8,0,
-- 107,10,0,114,48,1,1,125,8,0,1,122,21,0,116,9,
-- 0,100,1,0,124,1,0,124,8,0,131,3,0,1,87,89,
-- 100,2,0,100,2,0,125,8,0,126,8,0,88,110,1,0,
-- 88,100,2,0,83,41,4,122,27,87,114,105,116,101,32,98,
-- 121,116,101,115,32,100,97,116,97,32,116,111,32,97,32,102,
-- 105,108,101,46,122,27,99,111,117,108,100,32,110,111,116,32,
-- 99,114,101,97,116,101,32,123,33,114,125,58,32,123,33,114,
-- 125,78,122,12,99,114,101,97,116,101,100,32,123,33,114,125,
-- 41,11,114,40,0,0,0,114,48,0,0,0,114,165,0,0,
-- 0,114,35,0,0,0,114,30,0,0,0,114,3,0,0,0,
-- 90,5,109,107,100,105,114,218,15,70,105,108,101,69,120,105,
-- 115,116,115,69,114,114,111,114,114,42,0,0,0,114,107,0,
-- 0,0,114,57,0,0,0,41,9,114,110,0,0,0,114,37,
-- 0,0,0,114,55,0,0,0,114,221,0,0,0,218,6,112,
-- 97,114,101,110,116,114,96,0,0,0,114,29,0,0,0,114,
-- 25,0,0,0,114,202,0,0,0,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,114,199,0,0,0,76,3,0,
-- 0,115,38,0,0,0,0,2,18,1,6,2,22,1,18,1,
-- 17,2,19,1,15,1,3,1,17,1,13,2,7,1,18,3,
-- 16,1,27,1,3,1,16,1,17,1,18,2,122,25,83,111,
-- 117,114,99,101,70,105,108,101,76,111,97,100,101,114,46,115,
-- 101,116,95,100,97,116,97,78,41,7,114,114,0,0,0,114,
-- 113,0,0,0,114,115,0,0,0,114,116,0,0,0,114,198,
-- 0,0,0,114,200,0,0,0,114,199,0,0,0,114,4,0,
-+ 0,100,7,0,132,0,0,90,6,0,100,8,0,100,9,0,
-+ 132,0,0,90,7,0,100,10,0,100,11,0,132,0,0,90,
-+ 8,0,100,12,0,100,13,0,132,0,0,90,9,0,100,14,
-+ 0,100,15,0,132,0,0,90,10,0,100,16,0,100,17,0,
-+ 132,0,0,90,11,0,101,12,0,100,18,0,100,19,0,132,
-+ 0,0,131,1,0,90,13,0,100,20,0,83,41,21,218,19,
-+ 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,
-+ 100,101,114,122,93,76,111,97,100,101,114,32,102,111,114,32,
-+ 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,
-+ 115,46,10,10,32,32,32,32,84,104,101,32,99,111,110,115,
-+ 116,114,117,99,116,111,114,32,105,115,32,100,101,115,105,103,
-+ 110,101,100,32,116,111,32,119,111,114,107,32,119,105,116,104,
-+ 32,70,105,108,101,70,105,110,100,101,114,46,10,10,32,32,
-+ 32,32,99,3,0,0,0,0,0,0,0,3,0,0,0,2,
-+ 0,0,0,67,0,0,0,115,22,0,0,0,124,1,0,124,
-+ 0,0,95,0,0,124,2,0,124,0,0,95,1,0,100,0,
-+ 0,83,41,1,78,41,2,114,108,0,0,0,114,37,0,0,
-+ 0,41,3,114,110,0,0,0,114,108,0,0,0,114,37,0,
- 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-- 0,114,219,0,0,0,62,3,0,0,115,8,0,0,0,12,
-- 2,6,2,12,5,12,5,114,219,0,0,0,99,0,0,0,
-- 0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,
-- 0,115,46,0,0,0,101,0,0,90,1,0,100,0,0,90,
-- 2,0,100,1,0,90,3,0,100,2,0,100,3,0,132,0,
-- 0,90,4,0,100,4,0,100,5,0,132,0,0,90,5,0,
-- 100,6,0,83,41,7,218,20,83,111,117,114,99,101,108,101,
-- 115,115,70,105,108,101,76,111,97,100,101,114,122,45,76,111,
-- 97,100,101,114,32,119,104,105,99,104,32,104,97,110,100,108,
-- 101,115,32,115,111,117,114,99,101,108,101,115,115,32,102,105,
-- 108,101,32,105,109,112,111,114,116,115,46,99,2,0,0,0,
-- 0,0,0,0,5,0,0,0,6,0,0,0,67,0,0,0,
-- 115,76,0,0,0,124,0,0,106,0,0,124,1,0,131,1,
-- 0,125,2,0,124,0,0,106,1,0,124,2,0,131,1,0,
-- 125,3,0,116,2,0,124,3,0,100,1,0,124,1,0,100,
-- 2,0,124,2,0,131,1,2,125,4,0,116,3,0,124,4,
-- 0,100,1,0,124,1,0,100,3,0,124,2,0,131,1,2,
-- 83,41,4,78,114,108,0,0,0,114,37,0,0,0,114,91,
-- 0,0,0,41,4,114,159,0,0,0,114,201,0,0,0,114,
-- 143,0,0,0,114,149,0,0,0,41,5,114,110,0,0,0,
-- 114,128,0,0,0,114,37,0,0,0,114,55,0,0,0,114,
-- 210,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
-- 0,0,0,114,188,0,0,0,109,3,0,0,115,8,0,0,
-- 0,0,1,15,1,15,1,24,1,122,29,83,111,117,114,99,
-- 101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,46,
-- 103,101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,
-+ 0,114,187,0,0,0,156,3,0,0,115,4,0,0,0,0,
-+ 1,9,1,122,28,69,120,116,101,110,115,105,111,110,70,105,
-+ 108,101,76,111,97,100,101,114,46,95,95,105,110,105,116,95,
-+ 95,99,2,0,0,0,0,0,0,0,2,0,0,0,2,0,
-+ 0,0,67,0,0,0,115,34,0,0,0,124,0,0,106,0,
-+ 0,124,1,0,106,0,0,107,2,0,111,33,0,124,0,0,
-+ 106,1,0,124,1,0,106,1,0,107,2,0,83,41,1,78,
-+ 41,2,114,213,0,0,0,114,120,0,0,0,41,2,114,110,
-+ 0,0,0,114,214,0,0,0,114,4,0,0,0,114,4,0,
-+ 0,0,114,6,0,0,0,114,215,0,0,0,160,3,0,0,
-+ 115,4,0,0,0,0,1,18,1,122,26,69,120,116,101,110,
-+ 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,95,
-+ 95,101,113,95,95,99,1,0,0,0,0,0,0,0,1,0,
-+ 0,0,3,0,0,0,67,0,0,0,115,26,0,0,0,116,
-+ 0,0,124,0,0,106,1,0,131,1,0,116,0,0,124,0,
-+ 0,106,2,0,131,1,0,65,83,41,1,78,41,3,114,216,
-+ 0,0,0,114,108,0,0,0,114,37,0,0,0,41,1,114,
-+ 110,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
-+ 0,0,0,114,217,0,0,0,164,3,0,0,115,2,0,0,
-+ 0,0,1,122,28,69,120,116,101,110,115,105,111,110,70,105,
-+ 108,101,76,111,97,100,101,114,46,95,95,104,97,115,104,95,
-+ 95,99,2,0,0,0,0,0,0,0,3,0,0,0,4,0,
-+ 0,0,67,0,0,0,115,47,0,0,0,116,0,0,106,1,
-+ 0,116,2,0,106,3,0,124,1,0,131,2,0,125,2,0,
-+ 116,4,0,100,1,0,124,1,0,106,5,0,124,0,0,106,
-+ 6,0,131,3,0,1,124,2,0,83,41,2,122,38,67,114,
-+ 101,97,116,101,32,97,110,32,117,110,105,116,105,97,108,105,
-+ 122,101,100,32,101,120,116,101,110,115,105,111,110,32,109,111,
-+ 100,117,108,101,122,38,101,120,116,101,110,115,105,111,110,32,
-+ 109,111,100,117,108,101,32,123,33,114,125,32,108,111,97,100,
-+ 101,100,32,102,114,111,109,32,123,33,114,125,41,7,114,123,
-+ 0,0,0,114,190,0,0,0,114,148,0,0,0,90,14,99,
-+ 114,101,97,116,101,95,100,121,110,97,109,105,99,114,107,0,
-+ 0,0,114,108,0,0,0,114,37,0,0,0,41,3,114,110,
-+ 0,0,0,114,167,0,0,0,114,192,0,0,0,114,4,0,
-+ 0,0,114,4,0,0,0,114,6,0,0,0,114,188,0,0,
-+ 0,167,3,0,0,115,10,0,0,0,0,2,6,1,15,1,
-+ 6,1,16,1,122,33,69,120,116,101,110,115,105,111,110,70,
-+ 105,108,101,76,111,97,100,101,114,46,99,114,101,97,116,101,
-+ 95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,
-+ 2,0,0,0,4,0,0,0,67,0,0,0,115,45,0,0,
-+ 0,116,0,0,106,1,0,116,2,0,106,3,0,124,1,0,
-+ 131,2,0,1,116,4,0,100,1,0,124,0,0,106,5,0,
-+ 124,0,0,106,6,0,131,3,0,1,100,2,0,83,41,3,
-+ 122,30,73,110,105,116,105,97,108,105,122,101,32,97,110,32,
-+ 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,
-+ 122,40,101,120,116,101,110,115,105,111,110,32,109,111,100,117,
-+ 108,101,32,123,33,114,125,32,101,120,101,99,117,116,101,100,
-+ 32,102,114,111,109,32,123,33,114,125,78,41,7,114,123,0,
-+ 0,0,114,190,0,0,0,114,148,0,0,0,90,12,101,120,
-+ 101,99,95,100,121,110,97,109,105,99,114,107,0,0,0,114,
-+ 108,0,0,0,114,37,0,0,0,41,2,114,110,0,0,0,
-+ 114,192,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
-+ 6,0,0,0,114,193,0,0,0,175,3,0,0,115,6,0,
-+ 0,0,0,2,19,1,6,1,122,31,69,120,116,101,110,115,
-+ 105,111,110,70,105,108,101,76,111,97,100,101,114,46,101,120,
-+ 101,99,95,109,111,100,117,108,101,99,2,0,0,0,0,0,
-+ 0,0,2,0,0,0,4,0,0,0,3,0,0,0,115,48,
-+ 0,0,0,116,0,0,124,0,0,106,1,0,131,1,0,100,
-+ 1,0,25,137,0,0,116,2,0,135,0,0,102,1,0,100,
-+ 2,0,100,3,0,134,0,0,116,3,0,68,131,1,0,131,
-+ 1,0,83,41,4,122,49,82,101,116,117,114,110,32,84,114,
-+ 117,101,32,105,102,32,116,104,101,32,101,120,116,101,110,115,
-+ 105,111,110,32,109,111,100,117,108,101,32,105,115,32,97,32,
-+ 112,97,99,107,97,103,101,46,114,31,0,0,0,99,1,0,
-+ 0,0,0,0,0,0,2,0,0,0,4,0,0,0,51,0,
-+ 0,0,115,31,0,0,0,124,0,0,93,21,0,125,1,0,
-+ 136,0,0,100,0,0,124,1,0,23,107,2,0,86,1,113,
-+ 3,0,100,1,0,83,41,2,114,187,0,0,0,78,114,4,
-+ 0,0,0,41,2,114,24,0,0,0,218,6,115,117,102,102,
-+ 105,120,41,1,218,9,102,105,108,101,95,110,97,109,101,114,
-+ 4,0,0,0,114,6,0,0,0,250,9,60,103,101,110,101,
-+ 120,112,114,62,184,3,0,0,115,2,0,0,0,6,1,122,
-+ 49,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
-+ 97,100,101,114,46,105,115,95,112,97,99,107,97,103,101,46,
-+ 60,108,111,99,97,108,115,62,46,60,103,101,110,101,120,112,
-+ 114,62,41,4,114,40,0,0,0,114,37,0,0,0,218,3,
-+ 97,110,121,218,18,69,88,84,69,78,83,73,79,78,95,83,
-+ 85,70,70,73,88,69,83,41,2,114,110,0,0,0,114,128,
-+ 0,0,0,114,4,0,0,0,41,1,114,228,0,0,0,114,
-+ 6,0,0,0,114,162,0,0,0,181,3,0,0,115,6,0,
-+ 0,0,0,2,19,1,18,1,122,30,69,120,116,101,110,115,
-+ 105,111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,
-+ 95,112,97,99,107,97,103,101,99,2,0,0,0,0,0,0,
- 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,
-- 0,0,100,1,0,83,41,2,122,39,82,101,116,117,114,110,
-- 32,78,111,110,101,32,97,115,32,116,104,101,114,101,32,105,
-- 115,32,110,111,32,115,111,117,114,99,101,32,99,111,100,101,
-- 46,78,114,4,0,0,0,41,2,114,110,0,0,0,114,128,
-- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
-- 0,0,114,203,0,0,0,115,3,0,0,115,2,0,0,0,
-- 0,2,122,31,83,111,117,114,99,101,108,101,115,115,70,105,
-- 108,101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,
-- 114,99,101,78,41,6,114,114,0,0,0,114,113,0,0,0,
-- 114,115,0,0,0,114,116,0,0,0,114,188,0,0,0,114,
-- 203,0,0,0,114,4,0,0,0,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,114,224,0,0,0,105,3,0,
-- 0,115,6,0,0,0,12,2,6,2,12,6,114,224,0,0,
-- 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,
-- 0,0,64,0,0,0,115,136,0,0,0,101,0,0,90,1,
-- 0,100,0,0,90,2,0,100,1,0,90,3,0,100,2,0,
-- 100,3,0,132,0,0,90,4,0,100,4,0,100,5,0,132,
-- 0,0,90,5,0,100,6,0,100,7,0,132,0,0,90,6,
-- 0,100,8,0,100,9,0,132,0,0,90,7,0,100,10,0,
-- 100,11,0,132,0,0,90,8,0,100,12,0,100,13,0,132,
-- 0,0,90,9,0,100,14,0,100,15,0,132,0,0,90,10,
-- 0,100,16,0,100,17,0,132,0,0,90,11,0,101,12,0,
-- 100,18,0,100,19,0,132,0,0,131,1,0,90,13,0,100,
-- 20,0,83,41,21,218,19,69,120,116,101,110,115,105,111,110,
-- 70,105,108,101,76,111,97,100,101,114,122,93,76,111,97,100,
-- 101,114,32,102,111,114,32,101,120,116,101,110,115,105,111,110,
-- 32,109,111,100,117,108,101,115,46,10,10,32,32,32,32,84,
-- 104,101,32,99,111,110,115,116,114,117,99,116,111,114,32,105,
-- 115,32,100,101,115,105,103,110,101,100,32,116,111,32,119,111,
-- 114,107,32,119,105,116,104,32,70,105,108,101,70,105,110,100,
-- 101,114,46,10,10,32,32,32,32,99,3,0,0,0,0,0,
-- 0,0,3,0,0,0,2,0,0,0,67,0,0,0,115,22,
-- 0,0,0,124,1,0,124,0,0,95,0,0,124,2,0,124,
-- 0,0,95,1,0,100,0,0,83,41,1,78,41,2,114,108,
-- 0,0,0,114,37,0,0,0,41,3,114,110,0,0,0,114,
-- 108,0,0,0,114,37,0,0,0,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,114,186,0,0,0,132,3,0,
-- 0,115,4,0,0,0,0,1,9,1,122,28,69,120,116,101,
-- 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
-- 95,95,105,110,105,116,95,95,99,2,0,0,0,0,0,0,
-- 0,2,0,0,0,2,0,0,0,67,0,0,0,115,34,0,
-- 0,0,124,0,0,106,0,0,124,1,0,106,0,0,107,2,
-- 0,111,33,0,124,0,0,106,1,0,124,1,0,106,1,0,
-- 107,2,0,83,41,1,78,41,2,114,212,0,0,0,114,120,
-- 0,0,0,41,2,114,110,0,0,0,114,213,0,0,0,114,
-- 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,214,
-- 0,0,0,136,3,0,0,115,4,0,0,0,0,1,18,1,
-- 122,26,69,120,116,101,110,115,105,111,110,70,105,108,101,76,
-- 111,97,100,101,114,46,95,95,101,113,95,95,99,1,0,0,
-- 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
-- 0,115,26,0,0,0,116,0,0,124,0,0,106,1,0,131,
-- 1,0,116,0,0,124,0,0,106,2,0,131,1,0,65,83,
-- 41,1,78,41,3,114,215,0,0,0,114,108,0,0,0,114,
-- 37,0,0,0,41,1,114,110,0,0,0,114,4,0,0,0,
-- 114,4,0,0,0,114,6,0,0,0,114,216,0,0,0,140,
-- 3,0,0,115,2,0,0,0,0,1,122,28,69,120,116,101,
-+ 0,0,100,1,0,83,41,2,122,63,82,101,116,117,114,110,
-+ 32,78,111,110,101,32,97,115,32,97,110,32,101,120,116,101,
-+ 110,115,105,111,110,32,109,111,100,117,108,101,32,99,97,110,
-+ 110,111,116,32,99,114,101,97,116,101,32,97,32,99,111,100,
-+ 101,32,111,98,106,101,99,116,46,78,114,4,0,0,0,41,
-+ 2,114,110,0,0,0,114,128,0,0,0,114,4,0,0,0,
-+ 114,4,0,0,0,114,6,0,0,0,114,189,0,0,0,187,
-+ 3,0,0,115,2,0,0,0,0,2,122,28,69,120,116,101,
- 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
-- 95,95,104,97,115,104,95,95,99,2,0,0,0,0,0,0,
-- 0,3,0,0,0,4,0,0,0,67,0,0,0,115,47,0,
-- 0,0,116,0,0,106,1,0,116,2,0,106,3,0,124,1,
-- 0,131,2,0,125,2,0,116,4,0,100,1,0,124,1,0,
-- 106,5,0,124,0,0,106,6,0,131,3,0,1,124,2,0,
-- 83,41,2,122,38,67,114,101,97,116,101,32,97,110,32,117,
-- 110,105,116,105,97,108,105,122,101,100,32,101,120,116,101,110,
-- 115,105,111,110,32,109,111,100,117,108,101,122,38,101,120,116,
-- 101,110,115,105,111,110,32,109,111,100,117,108,101,32,123,33,
-- 114,125,32,108,111,97,100,101,100,32,102,114,111,109,32,123,
-- 33,114,125,41,7,114,123,0,0,0,114,189,0,0,0,114,
-- 147,0,0,0,90,14,99,114,101,97,116,101,95,100,121,110,
-- 97,109,105,99,114,107,0,0,0,114,108,0,0,0,114,37,
-- 0,0,0,41,3,114,110,0,0,0,114,166,0,0,0,114,
-- 191,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
-- 0,0,0,114,187,0,0,0,143,3,0,0,115,10,0,0,
-- 0,0,2,6,1,15,1,6,1,16,1,122,33,69,120,116,
-- 101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,
-- 46,99,114,101,97,116,101,95,109,111,100,117,108,101,99,2,
-- 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,67,
-- 0,0,0,115,45,0,0,0,116,0,0,106,1,0,116,2,
-- 0,106,3,0,124,1,0,131,2,0,1,116,4,0,100,1,
-- 0,124,0,0,106,5,0,124,0,0,106,6,0,131,3,0,
-- 1,100,2,0,83,41,3,122,30,73,110,105,116,105,97,108,
-- 105,122,101,32,97,110,32,101,120,116,101,110,115,105,111,110,
-- 32,109,111,100,117,108,101,122,40,101,120,116,101,110,115,105,
-- 111,110,32,109,111,100,117,108,101,32,123,33,114,125,32,101,
-- 120,101,99,117,116,101,100,32,102,114,111,109,32,123,33,114,
-- 125,78,41,7,114,123,0,0,0,114,189,0,0,0,114,147,
-- 0,0,0,90,12,101,120,101,99,95,100,121,110,97,109,105,
-- 99,114,107,0,0,0,114,108,0,0,0,114,37,0,0,0,
-- 41,2,114,110,0,0,0,114,191,0,0,0,114,4,0,0,
-- 0,114,4,0,0,0,114,6,0,0,0,114,192,0,0,0,
-- 151,3,0,0,115,6,0,0,0,0,2,19,1,6,1,122,
-- 31,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
-- 97,100,101,114,46,101,120,101,99,95,109,111,100,117,108,101,
-- 99,2,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
-- 0,3,0,0,0,115,48,0,0,0,116,0,0,124,0,0,
-- 106,1,0,131,1,0,100,1,0,25,137,0,0,116,2,0,
-- 135,0,0,102,1,0,100,2,0,100,3,0,134,0,0,116,
-- 3,0,68,131,1,0,131,1,0,83,41,4,122,49,82,101,
-- 116,117,114,110,32,84,114,117,101,32,105,102,32,116,104,101,
-- 32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,
-- 101,32,105,115,32,97,32,112,97,99,107,97,103,101,46,114,
-- 31,0,0,0,99,1,0,0,0,0,0,0,0,2,0,0,
-- 0,4,0,0,0,51,0,0,0,115,31,0,0,0,124,0,
-- 0,93,21,0,125,1,0,136,0,0,100,0,0,124,1,0,
-- 23,107,2,0,86,1,113,3,0,100,1,0,83,41,2,114,
-- 186,0,0,0,78,114,4,0,0,0,41,2,114,24,0,0,
-- 0,218,6,115,117,102,102,105,120,41,1,218,9,102,105,108,
-- 101,95,110,97,109,101,114,4,0,0,0,114,6,0,0,0,
-- 250,9,60,103,101,110,101,120,112,114,62,160,3,0,0,115,
-- 2,0,0,0,6,1,122,49,69,120,116,101,110,115,105,111,
-- 110,70,105,108,101,76,111,97,100,101,114,46,105,115,95,112,
-- 97,99,107,97,103,101,46,60,108,111,99,97,108,115,62,46,
-- 60,103,101,110,101,120,112,114,62,41,4,114,40,0,0,0,
-- 114,37,0,0,0,218,3,97,110,121,218,18,69,88,84,69,
-- 78,83,73,79,78,95,83,85,70,70,73,88,69,83,41,2,
-- 114,110,0,0,0,114,128,0,0,0,114,4,0,0,0,41,
-- 1,114,227,0,0,0,114,6,0,0,0,114,161,0,0,0,
-- 157,3,0,0,115,6,0,0,0,0,2,19,1,18,1,122,
-- 30,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
-- 97,100,101,114,46,105,115,95,112,97,99,107,97,103,101,99,
-- 2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
-- 67,0,0,0,115,4,0,0,0,100,1,0,83,41,2,122,
-- 63,82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,
-- 97,110,32,101,120,116,101,110,115,105,111,110,32,109,111,100,
-- 117,108,101,32,99,97,110,110,111,116,32,99,114,101,97,116,
-- 101,32,97,32,99,111,100,101,32,111,98,106,101,99,116,46,
-- 78,114,4,0,0,0,41,2,114,110,0,0,0,114,128,0,
-+ 103,101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,
-+ 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,
-+ 0,0,100,1,0,83,41,2,122,53,82,101,116,117,114,110,
-+ 32,78,111,110,101,32,97,115,32,101,120,116,101,110,115,105,
-+ 111,110,32,109,111,100,117,108,101,115,32,104,97,118,101,32,
-+ 110,111,32,115,111,117,114,99,101,32,99,111,100,101,46,78,
-+ 114,4,0,0,0,41,2,114,110,0,0,0,114,128,0,0,
-+ 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-+ 114,204,0,0,0,191,3,0,0,115,2,0,0,0,0,2,
-+ 122,30,69,120,116,101,110,115,105,111,110,70,105,108,101,76,
-+ 111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,
-+ 99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
-+ 0,67,0,0,0,115,7,0,0,0,124,0,0,106,0,0,
-+ 83,41,1,122,58,82,101,116,117,114,110,32,116,104,101,32,
-+ 112,97,116,104,32,116,111,32,116,104,101,32,115,111,117,114,
-+ 99,101,32,102,105,108,101,32,97,115,32,102,111,117,110,100,
-+ 32,98,121,32,116,104,101,32,102,105,110,100,101,114,46,41,
-+ 1,114,37,0,0,0,41,2,114,110,0,0,0,114,128,0,
- 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-- 0,114,188,0,0,0,163,3,0,0,115,2,0,0,0,0,
-- 2,122,28,69,120,116,101,110,115,105,111,110,70,105,108,101,
-- 76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,99,
-- 2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
-- 67,0,0,0,115,4,0,0,0,100,1,0,83,41,2,122,
-- 53,82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,
-- 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,
-- 115,32,104,97,118,101,32,110,111,32,115,111,117,114,99,101,
-- 32,99,111,100,101,46,78,114,4,0,0,0,41,2,114,110,
-- 0,0,0,114,128,0,0,0,114,4,0,0,0,114,4,0,
-- 0,0,114,6,0,0,0,114,203,0,0,0,167,3,0,0,
-- 115,2,0,0,0,0,2,122,30,69,120,116,101,110,115,105,
-- 111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,116,
-- 95,115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,
-- 2,0,0,0,1,0,0,0,67,0,0,0,115,7,0,0,
-- 0,124,0,0,106,0,0,83,41,1,122,58,82,101,116,117,
-- 114,110,32,116,104,101,32,112,97,116,104,32,116,111,32,116,
-- 104,101,32,115,111,117,114,99,101,32,102,105,108,101,32,97,
-- 115,32,102,111,117,110,100,32,98,121,32,116,104,101,32,102,
-- 105,110,100,101,114,46,41,1,114,37,0,0,0,41,2,114,
-- 110,0,0,0,114,128,0,0,0,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,114,159,0,0,0,171,3,0,
-- 0,115,2,0,0,0,0,3,122,32,69,120,116,101,110,115,
-- 105,111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,
-- 116,95,102,105,108,101,110,97,109,101,78,41,14,114,114,0,
-- 0,0,114,113,0,0,0,114,115,0,0,0,114,116,0,0,
-- 0,114,186,0,0,0,114,214,0,0,0,114,216,0,0,0,
-- 114,187,0,0,0,114,192,0,0,0,114,161,0,0,0,114,
-- 188,0,0,0,114,203,0,0,0,114,125,0,0,0,114,159,
-- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,
-- 0,0,114,6,0,0,0,114,225,0,0,0,124,3,0,0,
-- 115,20,0,0,0,12,6,6,2,12,4,12,4,12,3,12,
-- 8,12,6,12,6,12,4,12,4,114,225,0,0,0,99,0,
-- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,
-- 0,0,0,115,130,0,0,0,101,0,0,90,1,0,100,0,
-- 0,90,2,0,100,1,0,90,3,0,100,2,0,100,3,0,
-- 132,0,0,90,4,0,100,4,0,100,5,0,132,0,0,90,
-- 5,0,100,6,0,100,7,0,132,0,0,90,6,0,100,8,
-- 0,100,9,0,132,0,0,90,7,0,100,10,0,100,11,0,
-- 132,0,0,90,8,0,100,12,0,100,13,0,132,0,0,90,
-- 9,0,100,14,0,100,15,0,132,0,0,90,10,0,100,16,
-- 0,100,17,0,132,0,0,90,11,0,100,18,0,100,19,0,
-- 132,0,0,90,12,0,100,20,0,83,41,21,218,14,95,78,
-- 97,109,101,115,112,97,99,101,80,97,116,104,97,38,1,0,
-- 0,82,101,112,114,101,115,101,110,116,115,32,97,32,110,97,
-- 109,101,115,112,97,99,101,32,112,97,99,107,97,103,101,39,
-- 115,32,112,97,116,104,46,32,32,73,116,32,117,115,101,115,
-- 32,116,104,101,32,109,111,100,117,108,101,32,110,97,109,101,
-- 10,32,32,32,32,116,111,32,102,105,110,100,32,105,116,115,
-- 32,112,97,114,101,110,116,32,109,111,100,117,108,101,44,32,
-- 97,110,100,32,102,114,111,109,32,116,104,101,114,101,32,105,
-- 116,32,108,111,111,107,115,32,117,112,32,116,104,101,32,112,
-- 97,114,101,110,116,39,115,10,32,32,32,32,95,95,112,97,
-- 116,104,95,95,46,32,32,87,104,101,110,32,116,104,105,115,
-- 32,99,104,97,110,103,101,115,44,32,116,104,101,32,109,111,
-- 100,117,108,101,39,115,32,111,119,110,32,112,97,116,104,32,
-- 105,115,32,114,101,99,111,109,112,117,116,101,100,44,10,32,
-- 32,32,32,117,115,105,110,103,32,112,97,116,104,95,102,105,
-- 110,100,101,114,46,32,32,70,111,114,32,116,111,112,45,108,
-- 101,118,101,108,32,109,111,100,117,108,101,115,44,32,116,104,
-- 101,32,112,97,114,101,110,116,32,109,111,100,117,108,101,39,
-- 115,32,112,97,116,104,10,32,32,32,32,105,115,32,115,121,
-- 115,46,112,97,116,104,46,99,4,0,0,0,0,0,0,0,
-- 4,0,0,0,2,0,0,0,67,0,0,0,115,52,0,0,
-- 0,124,1,0,124,0,0,95,0,0,124,2,0,124,0,0,
-- 95,1,0,116,2,0,124,0,0,106,3,0,131,0,0,131,
-- 1,0,124,0,0,95,4,0,124,3,0,124,0,0,95,5,
-- 0,100,0,0,83,41,1,78,41,6,218,5,95,110,97,109,
-- 101,218,5,95,112,97,116,104,114,95,0,0,0,218,16,95,
-- 103,101,116,95,112,97,114,101,110,116,95,112,97,116,104,218,
-- 17,95,108,97,115,116,95,112,97,114,101,110,116,95,112,97,
-- 116,104,218,12,95,112,97,116,104,95,102,105,110,100,101,114,
-- 41,4,114,110,0,0,0,114,108,0,0,0,114,37,0,0,
-- 0,218,11,112,97,116,104,95,102,105,110,100,101,114,114,4,
-- 0,0,0,114,4,0,0,0,114,6,0,0,0,114,186,0,
-- 0,0,184,3,0,0,115,8,0,0,0,0,1,9,1,9,
-- 1,21,1,122,23,95,78,97,109,101,115,112,97,99,101,80,
-- 97,116,104,46,95,95,105,110,105,116,95,95,99,1,0,0,
-- 0,0,0,0,0,4,0,0,0,3,0,0,0,67,0,0,
-- 0,115,53,0,0,0,124,0,0,106,0,0,106,1,0,100,
-- 1,0,131,1,0,92,3,0,125,1,0,125,2,0,125,3,
-- 0,124,2,0,100,2,0,107,2,0,114,43,0,100,6,0,
-- 83,124,1,0,100,5,0,102,2,0,83,41,7,122,62,82,
-- 101,116,117,114,110,115,32,97,32,116,117,112,108,101,32,111,
-- 102,32,40,112,97,114,101,110,116,45,109,111,100,117,108,101,
-- 45,110,97,109,101,44,32,112,97,114,101,110,116,45,112,97,
-- 116,104,45,97,116,116,114,45,110,97,109,101,41,114,60,0,
-- 0,0,114,32,0,0,0,114,8,0,0,0,114,37,0,0,
-- 0,90,8,95,95,112,97,116,104,95,95,41,2,114,8,0,
-- 0,0,114,37,0,0,0,41,2,114,232,0,0,0,114,34,
-- 0,0,0,41,4,114,110,0,0,0,114,223,0,0,0,218,
-- 3,100,111,116,90,2,109,101,114,4,0,0,0,114,4,0,
-- 0,0,114,6,0,0,0,218,23,95,102,105,110,100,95,112,
-- 97,114,101,110,116,95,112,97,116,104,95,110,97,109,101,115,
-- 190,3,0,0,115,8,0,0,0,0,2,27,1,12,2,4,
-- 3,122,38,95,78,97,109,101,115,112,97,99,101,80,97,116,
-- 104,46,95,102,105,110,100,95,112,97,114,101,110,116,95,112,
-- 97,116,104,95,110,97,109,101,115,99,1,0,0,0,0,0,
-- 0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,38,
-- 0,0,0,124,0,0,106,0,0,131,0,0,92,2,0,125,
-- 1,0,125,2,0,116,1,0,116,2,0,106,3,0,124,1,
-- 0,25,124,2,0,131,2,0,83,41,1,78,41,4,114,239,
-- 0,0,0,114,119,0,0,0,114,8,0,0,0,218,7,109,
-- 111,100,117,108,101,115,41,3,114,110,0,0,0,90,18,112,
-- 97,114,101,110,116,95,109,111,100,117,108,101,95,110,97,109,
-- 101,90,14,112,97,116,104,95,97,116,116,114,95,110,97,109,
-+ 0,114,160,0,0,0,195,3,0,0,115,2,0,0,0,0,
-+ 3,122,32,69,120,116,101,110,115,105,111,110,70,105,108,101,
-+ 76,111,97,100,101,114,46,103,101,116,95,102,105,108,101,110,
-+ 97,109,101,78,41,14,114,114,0,0,0,114,113,0,0,0,
-+ 114,115,0,0,0,114,116,0,0,0,114,187,0,0,0,114,
-+ 215,0,0,0,114,217,0,0,0,114,188,0,0,0,114,193,
-+ 0,0,0,114,162,0,0,0,114,189,0,0,0,114,204,0,
-+ 0,0,114,125,0,0,0,114,160,0,0,0,114,4,0,0,
-+ 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-+ 114,226,0,0,0,148,3,0,0,115,20,0,0,0,12,6,
-+ 6,2,12,4,12,4,12,3,12,8,12,6,12,6,12,4,
-+ 12,4,114,226,0,0,0,99,0,0,0,0,0,0,0,0,
-+ 0,0,0,0,2,0,0,0,64,0,0,0,115,130,0,0,
-+ 0,101,0,0,90,1,0,100,0,0,90,2,0,100,1,0,
-+ 90,3,0,100,2,0,100,3,0,132,0,0,90,4,0,100,
-+ 4,0,100,5,0,132,0,0,90,5,0,100,6,0,100,7,
-+ 0,132,0,0,90,6,0,100,8,0,100,9,0,132,0,0,
-+ 90,7,0,100,10,0,100,11,0,132,0,0,90,8,0,100,
-+ 12,0,100,13,0,132,0,0,90,9,0,100,14,0,100,15,
-+ 0,132,0,0,90,10,0,100,16,0,100,17,0,132,0,0,
-+ 90,11,0,100,18,0,100,19,0,132,0,0,90,12,0,100,
-+ 20,0,83,41,21,218,14,95,78,97,109,101,115,112,97,99,
-+ 101,80,97,116,104,97,38,1,0,0,82,101,112,114,101,115,
-+ 101,110,116,115,32,97,32,110,97,109,101,115,112,97,99,101,
-+ 32,112,97,99,107,97,103,101,39,115,32,112,97,116,104,46,
-+ 32,32,73,116,32,117,115,101,115,32,116,104,101,32,109,111,
-+ 100,117,108,101,32,110,97,109,101,10,32,32,32,32,116,111,
-+ 32,102,105,110,100,32,105,116,115,32,112,97,114,101,110,116,
-+ 32,109,111,100,117,108,101,44,32,97,110,100,32,102,114,111,
-+ 109,32,116,104,101,114,101,32,105,116,32,108,111,111,107,115,
-+ 32,117,112,32,116,104,101,32,112,97,114,101,110,116,39,115,
-+ 10,32,32,32,32,95,95,112,97,116,104,95,95,46,32,32,
-+ 87,104,101,110,32,116,104,105,115,32,99,104,97,110,103,101,
-+ 115,44,32,116,104,101,32,109,111,100,117,108,101,39,115,32,
-+ 111,119,110,32,112,97,116,104,32,105,115,32,114,101,99,111,
-+ 109,112,117,116,101,100,44,10,32,32,32,32,117,115,105,110,
-+ 103,32,112,97,116,104,95,102,105,110,100,101,114,46,32,32,
-+ 70,111,114,32,116,111,112,45,108,101,118,101,108,32,109,111,
-+ 100,117,108,101,115,44,32,116,104,101,32,112,97,114,101,110,
-+ 116,32,109,111,100,117,108,101,39,115,32,112,97,116,104,10,
-+ 32,32,32,32,105,115,32,115,121,115,46,112,97,116,104,46,
-+ 99,4,0,0,0,0,0,0,0,4,0,0,0,2,0,0,
-+ 0,67,0,0,0,115,52,0,0,0,124,1,0,124,0,0,
-+ 95,0,0,124,2,0,124,0,0,95,1,0,116,2,0,124,
-+ 0,0,106,3,0,131,0,0,131,1,0,124,0,0,95,4,
-+ 0,124,3,0,124,0,0,95,5,0,100,0,0,83,41,1,
-+ 78,41,6,218,5,95,110,97,109,101,218,5,95,112,97,116,
-+ 104,114,95,0,0,0,218,16,95,103,101,116,95,112,97,114,
-+ 101,110,116,95,112,97,116,104,218,17,95,108,97,115,116,95,
-+ 112,97,114,101,110,116,95,112,97,116,104,218,12,95,112,97,
-+ 116,104,95,102,105,110,100,101,114,41,4,114,110,0,0,0,
-+ 114,108,0,0,0,114,37,0,0,0,218,11,112,97,116,104,
-+ 95,102,105,110,100,101,114,114,4,0,0,0,114,4,0,0,
-+ 0,114,6,0,0,0,114,187,0,0,0,208,3,0,0,115,
-+ 8,0,0,0,0,1,9,1,9,1,21,1,122,23,95,78,
-+ 97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,105,
-+ 110,105,116,95,95,99,1,0,0,0,0,0,0,0,4,0,
-+ 0,0,3,0,0,0,67,0,0,0,115,53,0,0,0,124,
-+ 0,0,106,0,0,106,1,0,100,1,0,131,1,0,92,3,
-+ 0,125,1,0,125,2,0,125,3,0,124,2,0,100,2,0,
-+ 107,2,0,114,43,0,100,6,0,83,124,1,0,100,5,0,
-+ 102,2,0,83,41,7,122,62,82,101,116,117,114,110,115,32,
-+ 97,32,116,117,112,108,101,32,111,102,32,40,112,97,114,101,
-+ 110,116,45,109,111,100,117,108,101,45,110,97,109,101,44,32,
-+ 112,97,114,101,110,116,45,112,97,116,104,45,97,116,116,114,
-+ 45,110,97,109,101,41,114,60,0,0,0,114,32,0,0,0,
-+ 114,8,0,0,0,114,37,0,0,0,90,8,95,95,112,97,
-+ 116,104,95,95,41,2,114,8,0,0,0,114,37,0,0,0,
-+ 41,2,114,233,0,0,0,114,34,0,0,0,41,4,114,110,
-+ 0,0,0,114,224,0,0,0,218,3,100,111,116,90,2,109,
- 101,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-- 114,234,0,0,0,200,3,0,0,115,4,0,0,0,0,1,
-- 18,1,122,31,95,78,97,109,101,115,112,97,99,101,80,97,
-- 116,104,46,95,103,101,116,95,112,97,114,101,110,116,95,112,
-- 97,116,104,99,1,0,0,0,0,0,0,0,3,0,0,0,
-- 3,0,0,0,67,0,0,0,115,118,0,0,0,116,0,0,
-- 124,0,0,106,1,0,131,0,0,131,1,0,125,1,0,124,
-- 1,0,124,0,0,106,2,0,107,3,0,114,111,0,124,0,
-- 0,106,3,0,124,0,0,106,4,0,124,1,0,131,2,0,
-- 125,2,0,124,2,0,100,0,0,107,9,0,114,102,0,124,
-- 2,0,106,5,0,100,0,0,107,8,0,114,102,0,124,2,
-- 0,106,6,0,114,102,0,124,2,0,106,6,0,124,0,0,
-- 95,7,0,124,1,0,124,0,0,95,2,0,124,0,0,106,
-- 7,0,83,41,1,78,41,8,114,95,0,0,0,114,234,0,
-- 0,0,114,235,0,0,0,114,236,0,0,0,114,232,0,0,
-- 0,114,129,0,0,0,114,158,0,0,0,114,233,0,0,0,
-- 41,3,114,110,0,0,0,90,11,112,97,114,101,110,116,95,
-- 112,97,116,104,114,166,0,0,0,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,218,12,95,114,101,99,97,108,
-- 99,117,108,97,116,101,204,3,0,0,115,16,0,0,0,0,
-- 2,18,1,15,1,21,3,27,1,9,1,12,1,9,1,122,
-- 27,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
-- 95,114,101,99,97,108,99,117,108,97,116,101,99,1,0,0,
-- 0,0,0,0,0,1,0,0,0,2,0,0,0,67,0,0,
-- 0,115,16,0,0,0,116,0,0,124,0,0,106,1,0,131,
-- 0,0,131,1,0,83,41,1,78,41,2,218,4,105,116,101,
-- 114,114,241,0,0,0,41,1,114,110,0,0,0,114,4,0,
-- 0,0,114,4,0,0,0,114,6,0,0,0,218,8,95,95,
-- 105,116,101,114,95,95,217,3,0,0,115,2,0,0,0,0,
-- 1,122,23,95,78,97,109,101,115,112,97,99,101,80,97,116,
-- 104,46,95,95,105,116,101,114,95,95,99,1,0,0,0,0,
-- 0,0,0,1,0,0,0,2,0,0,0,67,0,0,0,115,
-- 16,0,0,0,116,0,0,124,0,0,106,1,0,131,0,0,
-- 131,1,0,83,41,1,78,41,2,114,33,0,0,0,114,241,
-- 0,0,0,41,1,114,110,0,0,0,114,4,0,0,0,114,
-- 4,0,0,0,114,6,0,0,0,218,7,95,95,108,101,110,
-- 95,95,220,3,0,0,115,2,0,0,0,0,1,122,22,95,
-- 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,
-- 108,101,110,95,95,99,1,0,0,0,0,0,0,0,1,0,
-- 0,0,2,0,0,0,67,0,0,0,115,16,0,0,0,100,
-- 1,0,106,0,0,124,0,0,106,1,0,131,1,0,83,41,
-- 2,78,122,20,95,78,97,109,101,115,112,97,99,101,80,97,
-- 116,104,40,123,33,114,125,41,41,2,114,49,0,0,0,114,
-- 233,0,0,0,41,1,114,110,0,0,0,114,4,0,0,0,
-- 114,4,0,0,0,114,6,0,0,0,218,8,95,95,114,101,
-- 112,114,95,95,223,3,0,0,115,2,0,0,0,0,1,122,
-- 23,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
-- 95,95,114,101,112,114,95,95,99,2,0,0,0,0,0,0,
-- 0,2,0,0,0,2,0,0,0,67,0,0,0,115,16,0,
-- 0,0,124,1,0,124,0,0,106,0,0,131,0,0,107,6,
-- 0,83,41,1,78,41,1,114,241,0,0,0,41,2,114,110,
-- 0,0,0,218,4,105,116,101,109,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,218,12,95,95,99,111,110,116,
-- 97,105,110,115,95,95,226,3,0,0,115,2,0,0,0,0,
-- 1,122,27,95,78,97,109,101,115,112,97,99,101,80,97,116,
-- 104,46,95,95,99,111,110,116,97,105,110,115,95,95,99,2,
-- 0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,
-- 0,0,0,115,20,0,0,0,124,0,0,106,0,0,106,1,
-- 0,124,1,0,131,1,0,1,100,0,0,83,41,1,78,41,
-- 2,114,233,0,0,0,114,165,0,0,0,41,2,114,110,0,
-- 0,0,114,246,0,0,0,114,4,0,0,0,114,4,0,0,
-- 0,114,6,0,0,0,114,165,0,0,0,229,3,0,0,115,
-- 2,0,0,0,0,1,122,21,95,78,97,109,101,115,112,97,
-- 99,101,80,97,116,104,46,97,112,112,101,110,100,78,41,13,
-- 114,114,0,0,0,114,113,0,0,0,114,115,0,0,0,114,
-- 116,0,0,0,114,186,0,0,0,114,239,0,0,0,114,234,
-- 0,0,0,114,241,0,0,0,114,243,0,0,0,114,244,0,
-- 0,0,114,245,0,0,0,114,247,0,0,0,114,165,0,0,
-- 0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,
-- 114,6,0,0,0,114,231,0,0,0,177,3,0,0,115,20,
-- 0,0,0,12,5,6,2,12,6,12,10,12,4,12,13,12,
-- 3,12,3,12,3,12,3,114,231,0,0,0,99,0,0,0,
-- 0,0,0,0,0,0,0,0,0,3,0,0,0,64,0,0,
-- 0,115,118,0,0,0,101,0,0,90,1,0,100,0,0,90,
-- 2,0,100,1,0,100,2,0,132,0,0,90,3,0,101,4,
-- 0,100,3,0,100,4,0,132,0,0,131,1,0,90,5,0,
-- 100,5,0,100,6,0,132,0,0,90,6,0,100,7,0,100,
-- 8,0,132,0,0,90,7,0,100,9,0,100,10,0,132,0,
-- 0,90,8,0,100,11,0,100,12,0,132,0,0,90,9,0,
-- 100,13,0,100,14,0,132,0,0,90,10,0,100,15,0,100,
-- 16,0,132,0,0,90,11,0,100,17,0,83,41,18,218,16,
-- 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
-- 99,4,0,0,0,0,0,0,0,4,0,0,0,4,0,0,
-- 0,67,0,0,0,115,25,0,0,0,116,0,0,124,1,0,
-- 124,2,0,124,3,0,131,3,0,124,0,0,95,1,0,100,
-- 0,0,83,41,1,78,41,2,114,231,0,0,0,114,233,0,
-- 0,0,41,4,114,110,0,0,0,114,108,0,0,0,114,37,
-- 0,0,0,114,237,0,0,0,114,4,0,0,0,114,4,0,
-- 0,0,114,6,0,0,0,114,186,0,0,0,235,3,0,0,
-- 115,2,0,0,0,0,1,122,25,95,78,97,109,101,115,112,
-- 97,99,101,76,111,97,100,101,114,46,95,95,105,110,105,116,
-- 95,95,99,2,0,0,0,0,0,0,0,2,0,0,0,2,
-- 0,0,0,67,0,0,0,115,16,0,0,0,100,1,0,106,
-- 0,0,124,1,0,106,1,0,131,1,0,83,41,2,122,115,
-- 82,101,116,117,114,110,32,114,101,112,114,32,102,111,114,32,
-- 116,104,101,32,109,111,100,117,108,101,46,10,10,32,32,32,
-- 32,32,32,32,32,84,104,101,32,109,101,116,104,111,100,32,
-- 105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,
-- 84,104,101,32,105,109,112,111,114,116,32,109,97,99,104,105,
-- 110,101,114,121,32,100,111,101,115,32,116,104,101,32,106,111,
-- 98,32,105,116,115,101,108,102,46,10,10,32,32,32,32,32,
-- 32,32,32,122,25,60,109,111,100,117,108,101,32,123,33,114,
-- 125,32,40,110,97,109,101,115,112,97,99,101,41,62,41,2,
-- 114,49,0,0,0,114,114,0,0,0,41,2,114,172,0,0,
-- 0,114,191,0,0,0,114,4,0,0,0,114,4,0,0,0,
-- 114,6,0,0,0,218,11,109,111,100,117,108,101,95,114,101,
-- 112,114,238,3,0,0,115,2,0,0,0,0,7,122,28,95,
-- 78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,
-- 109,111,100,117,108,101,95,114,101,112,114,99,2,0,0,0,
-- 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,
-- 115,4,0,0,0,100,1,0,83,41,2,78,84,114,4,0,
-- 0,0,41,2,114,110,0,0,0,114,128,0,0,0,114,4,
-- 0,0,0,114,4,0,0,0,114,6,0,0,0,114,161,0,
-- 0,0,247,3,0,0,115,2,0,0,0,0,1,122,27,95,
-- 78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,
-- 105,115,95,112,97,99,107,97,103,101,99,2,0,0,0,0,
-- 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,
-- 4,0,0,0,100,1,0,83,41,2,78,114,32,0,0,0,
-- 114,4,0,0,0,41,2,114,110,0,0,0,114,128,0,0,
-+ 218,23,95,102,105,110,100,95,112,97,114,101,110,116,95,112,
-+ 97,116,104,95,110,97,109,101,115,214,3,0,0,115,8,0,
-+ 0,0,0,2,27,1,12,2,4,3,122,38,95,78,97,109,
-+ 101,115,112,97,99,101,80,97,116,104,46,95,102,105,110,100,
-+ 95,112,97,114,101,110,116,95,112,97,116,104,95,110,97,109,
-+ 101,115,99,1,0,0,0,0,0,0,0,3,0,0,0,3,
-+ 0,0,0,67,0,0,0,115,38,0,0,0,124,0,0,106,
-+ 0,0,131,0,0,92,2,0,125,1,0,125,2,0,116,1,
-+ 0,116,2,0,106,3,0,124,1,0,25,124,2,0,131,2,
-+ 0,83,41,1,78,41,4,114,240,0,0,0,114,119,0,0,
-+ 0,114,8,0,0,0,218,7,109,111,100,117,108,101,115,41,
-+ 3,114,110,0,0,0,90,18,112,97,114,101,110,116,95,109,
-+ 111,100,117,108,101,95,110,97,109,101,90,14,112,97,116,104,
-+ 95,97,116,116,114,95,110,97,109,101,114,4,0,0,0,114,
-+ 4,0,0,0,114,6,0,0,0,114,235,0,0,0,224,3,
-+ 0,0,115,4,0,0,0,0,1,18,1,122,31,95,78,97,
-+ 109,101,115,112,97,99,101,80,97,116,104,46,95,103,101,116,
-+ 95,112,97,114,101,110,116,95,112,97,116,104,99,1,0,0,
-+ 0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,
-+ 0,115,118,0,0,0,116,0,0,124,0,0,106,1,0,131,
-+ 0,0,131,1,0,125,1,0,124,1,0,124,0,0,106,2,
-+ 0,107,3,0,114,111,0,124,0,0,106,3,0,124,0,0,
-+ 106,4,0,124,1,0,131,2,0,125,2,0,124,2,0,100,
-+ 0,0,107,9,0,114,102,0,124,2,0,106,5,0,100,0,
-+ 0,107,8,0,114,102,0,124,2,0,106,6,0,114,102,0,
-+ 124,2,0,106,6,0,124,0,0,95,7,0,124,1,0,124,
-+ 0,0,95,2,0,124,0,0,106,7,0,83,41,1,78,41,
-+ 8,114,95,0,0,0,114,235,0,0,0,114,236,0,0,0,
-+ 114,237,0,0,0,114,233,0,0,0,114,129,0,0,0,114,
-+ 159,0,0,0,114,234,0,0,0,41,3,114,110,0,0,0,
-+ 90,11,112,97,114,101,110,116,95,112,97,116,104,114,167,0,
-+ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-+ 0,218,12,95,114,101,99,97,108,99,117,108,97,116,101,228,
-+ 3,0,0,115,16,0,0,0,0,2,18,1,15,1,21,3,
-+ 27,1,9,1,12,1,9,1,122,27,95,78,97,109,101,115,
-+ 112,97,99,101,80,97,116,104,46,95,114,101,99,97,108,99,
-+ 117,108,97,116,101,99,1,0,0,0,0,0,0,0,1,0,
-+ 0,0,2,0,0,0,67,0,0,0,115,16,0,0,0,116,
-+ 0,0,124,0,0,106,1,0,131,0,0,131,1,0,83,41,
-+ 1,78,41,2,218,4,105,116,101,114,114,242,0,0,0,41,
-+ 1,114,110,0,0,0,114,4,0,0,0,114,4,0,0,0,
-+ 114,6,0,0,0,218,8,95,95,105,116,101,114,95,95,241,
-+ 3,0,0,115,2,0,0,0,0,1,122,23,95,78,97,109,
-+ 101,115,112,97,99,101,80,97,116,104,46,95,95,105,116,101,
-+ 114,95,95,99,1,0,0,0,0,0,0,0,1,0,0,0,
-+ 2,0,0,0,67,0,0,0,115,16,0,0,0,116,0,0,
-+ 124,0,0,106,1,0,131,0,0,131,1,0,83,41,1,78,
-+ 41,2,114,33,0,0,0,114,242,0,0,0,41,1,114,110,
-+ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
-+ 0,0,218,7,95,95,108,101,110,95,95,244,3,0,0,115,
-+ 2,0,0,0,0,1,122,22,95,78,97,109,101,115,112,97,
-+ 99,101,80,97,116,104,46,95,95,108,101,110,95,95,99,1,
-+ 0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,67,
-+ 0,0,0,115,16,0,0,0,100,1,0,106,0,0,124,0,
-+ 0,106,1,0,131,1,0,83,41,2,78,122,20,95,78,97,
-+ 109,101,115,112,97,99,101,80,97,116,104,40,123,33,114,125,
-+ 41,41,2,114,49,0,0,0,114,234,0,0,0,41,1,114,
-+ 110,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
-+ 0,0,0,218,8,95,95,114,101,112,114,95,95,247,3,0,
-+ 0,115,2,0,0,0,0,1,122,23,95,78,97,109,101,115,
-+ 112,97,99,101,80,97,116,104,46,95,95,114,101,112,114,95,
-+ 95,99,2,0,0,0,0,0,0,0,2,0,0,0,2,0,
-+ 0,0,67,0,0,0,115,16,0,0,0,124,1,0,124,0,
-+ 0,106,0,0,131,0,0,107,6,0,83,41,1,78,41,1,
-+ 114,242,0,0,0,41,2,114,110,0,0,0,218,4,105,116,
-+ 101,109,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-+ 0,218,12,95,95,99,111,110,116,97,105,110,115,95,95,250,
-+ 3,0,0,115,2,0,0,0,0,1,122,27,95,78,97,109,
-+ 101,115,112,97,99,101,80,97,116,104,46,95,95,99,111,110,
-+ 116,97,105,110,115,95,95,99,2,0,0,0,0,0,0,0,
-+ 2,0,0,0,2,0,0,0,67,0,0,0,115,20,0,0,
-+ 0,124,0,0,106,0,0,106,1,0,124,1,0,131,1,0,
-+ 1,100,0,0,83,41,1,78,41,2,114,234,0,0,0,114,
-+ 166,0,0,0,41,2,114,110,0,0,0,114,247,0,0,0,
-+ 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,
-+ 166,0,0,0,253,3,0,0,115,2,0,0,0,0,1,122,
-+ 21,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
-+ 97,112,112,101,110,100,78,41,13,114,114,0,0,0,114,113,
-+ 0,0,0,114,115,0,0,0,114,116,0,0,0,114,187,0,
-+ 0,0,114,240,0,0,0,114,235,0,0,0,114,242,0,0,
-+ 0,114,244,0,0,0,114,245,0,0,0,114,246,0,0,0,
-+ 114,248,0,0,0,114,166,0,0,0,114,4,0,0,0,114,
-+ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,232,
-+ 0,0,0,201,3,0,0,115,20,0,0,0,12,5,6,2,
-+ 12,6,12,10,12,4,12,13,12,3,12,3,12,3,12,3,
-+ 114,232,0,0,0,99,0,0,0,0,0,0,0,0,0,0,
-+ 0,0,3,0,0,0,64,0,0,0,115,118,0,0,0,101,
-+ 0,0,90,1,0,100,0,0,90,2,0,100,1,0,100,2,
-+ 0,132,0,0,90,3,0,101,4,0,100,3,0,100,4,0,
-+ 132,0,0,131,1,0,90,5,0,100,5,0,100,6,0,132,
-+ 0,0,90,6,0,100,7,0,100,8,0,132,0,0,90,7,
-+ 0,100,9,0,100,10,0,132,0,0,90,8,0,100,11,0,
-+ 100,12,0,132,0,0,90,9,0,100,13,0,100,14,0,132,
-+ 0,0,90,10,0,100,15,0,100,16,0,132,0,0,90,11,
-+ 0,100,17,0,83,41,18,218,16,95,78,97,109,101,115,112,
-+ 97,99,101,76,111,97,100,101,114,99,4,0,0,0,0,0,
-+ 0,0,4,0,0,0,4,0,0,0,67,0,0,0,115,25,
-+ 0,0,0,116,0,0,124,1,0,124,2,0,124,3,0,131,
-+ 3,0,124,0,0,95,1,0,100,0,0,83,41,1,78,41,
-+ 2,114,232,0,0,0,114,234,0,0,0,41,4,114,110,0,
-+ 0,0,114,108,0,0,0,114,37,0,0,0,114,238,0,0,
- 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-- 114,203,0,0,0,250,3,0,0,115,2,0,0,0,0,1,
-- 122,27,95,78,97,109,101,115,112,97,99,101,76,111,97,100,
-- 101,114,46,103,101,116,95,115,111,117,114,99,101,99,2,0,
-- 0,0,0,0,0,0,2,0,0,0,6,0,0,0,67,0,
-- 0,0,115,22,0,0,0,116,0,0,100,1,0,100,2,0,
-- 100,3,0,100,4,0,100,5,0,131,3,1,83,41,6,78,
-- 114,32,0,0,0,122,8,60,115,116,114,105,110,103,62,114,
-- 190,0,0,0,114,205,0,0,0,84,41,1,114,206,0,0,
-- 0,41,2,114,110,0,0,0,114,128,0,0,0,114,4,0,
-- 0,0,114,4,0,0,0,114,6,0,0,0,114,188,0,0,
-- 0,253,3,0,0,115,2,0,0,0,0,1,122,25,95,78,
-- 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,103,
-- 101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,
-- 2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
-- 0,100,1,0,83,41,2,122,42,85,115,101,32,100,101,102,
-- 97,117,108,116,32,115,101,109,97,110,116,105,99,115,32,102,
-- 111,114,32,109,111,100,117,108,101,32,99,114,101,97,116,105,
-- 111,110,46,78,114,4,0,0,0,41,2,114,110,0,0,0,
-- 114,166,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
-- 6,0,0,0,114,187,0,0,0,0,4,0,0,115,0,0,
-- 0,0,122,30,95,78,97,109,101,115,112,97,99,101,76,111,
-- 97,100,101,114,46,99,114,101,97,116,101,95,109,111,100,117,
-- 108,101,99,2,0,0,0,0,0,0,0,2,0,0,0,1,
-- 0,0,0,67,0,0,0,115,4,0,0,0,100,0,0,83,
-- 41,1,78,114,4,0,0,0,41,2,114,110,0,0,0,114,
-- 191,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
-- 0,0,0,114,192,0,0,0,3,4,0,0,115,2,0,0,
-- 0,0,1,122,28,95,78,97,109,101,115,112,97,99,101,76,
-- 111,97,100,101,114,46,101,120,101,99,95,109,111,100,117,108,
-- 101,99,2,0,0,0,0,0,0,0,2,0,0,0,3,0,
-- 0,0,67,0,0,0,115,32,0,0,0,116,0,0,100,1,
-- 0,124,0,0,106,1,0,131,2,0,1,116,2,0,106,3,
-- 0,124,0,0,124,1,0,131,2,0,83,41,2,122,98,76,
-- 111,97,100,32,97,32,110,97,109,101,115,112,97,99,101,32,
-- 109,111,100,117,108,101,46,10,10,32,32,32,32,32,32,32,
-- 32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,
-- 100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,
-- 32,101,120,101,99,95,109,111,100,117,108,101,40,41,32,105,
-- 110,115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,
-- 32,122,38,110,97,109,101,115,112,97,99,101,32,109,111,100,
-- 117,108,101,32,108,111,97,100,101,100,32,119,105,116,104,32,
-- 112,97,116,104,32,123,33,114,125,41,4,114,107,0,0,0,
-- 114,233,0,0,0,114,123,0,0,0,114,193,0,0,0,41,
-- 2,114,110,0,0,0,114,128,0,0,0,114,4,0,0,0,
-- 114,4,0,0,0,114,6,0,0,0,114,194,0,0,0,6,
-- 4,0,0,115,4,0,0,0,0,7,16,1,122,28,95,78,
-- 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,108,
-- 111,97,100,95,109,111,100,117,108,101,78,41,12,114,114,0,
-- 0,0,114,113,0,0,0,114,115,0,0,0,114,186,0,0,
-- 0,114,184,0,0,0,114,249,0,0,0,114,161,0,0,0,
-- 114,203,0,0,0,114,188,0,0,0,114,187,0,0,0,114,
-- 192,0,0,0,114,194,0,0,0,114,4,0,0,0,114,4,
-- 0,0,0,114,4,0,0,0,114,6,0,0,0,114,248,0,
-- 0,0,234,3,0,0,115,16,0,0,0,12,1,12,3,18,
-- 9,12,3,12,3,12,3,12,3,12,3,114,248,0,0,0,
-- 99,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,
-- 0,64,0,0,0,115,160,0,0,0,101,0,0,90,1,0,
-- 100,0,0,90,2,0,100,1,0,90,3,0,101,4,0,100,
-- 2,0,100,3,0,132,0,0,131,1,0,90,5,0,101,4,
-- 0,100,4,0,100,5,0,132,0,0,131,1,0,90,6,0,
-- 101,4,0,100,6,0,100,7,0,132,0,0,131,1,0,90,
-- 7,0,101,4,0,100,8,0,100,9,0,132,0,0,131,1,
-- 0,90,8,0,101,4,0,100,10,0,100,11,0,100,12,0,
-- 132,1,0,131,1,0,90,9,0,101,4,0,100,10,0,100,
-- 10,0,100,13,0,100,14,0,132,2,0,131,1,0,90,10,
-- 0,101,4,0,100,10,0,100,15,0,100,16,0,132,1,0,
-- 131,1,0,90,11,0,100,10,0,83,41,17,218,10,80,97,
-- 116,104,70,105,110,100,101,114,122,62,77,101,116,97,32,112,
-- 97,116,104,32,102,105,110,100,101,114,32,102,111,114,32,115,
-- 121,115,46,112,97,116,104,32,97,110,100,32,112,97,99,107,
-- 97,103,101,32,95,95,112,97,116,104,95,95,32,97,116,116,
-- 114,105,98,117,116,101,115,46,99,1,0,0,0,0,0,0,
-- 0,2,0,0,0,4,0,0,0,67,0,0,0,115,55,0,
-- 0,0,120,48,0,116,0,0,106,1,0,106,2,0,131,0,
-- 0,68,93,31,0,125,1,0,116,3,0,124,1,0,100,1,
-- 0,131,2,0,114,16,0,124,1,0,106,4,0,131,0,0,
-- 1,113,16,0,87,100,2,0,83,41,3,122,125,67,97,108,
-- 108,32,116,104,101,32,105,110,118,97,108,105,100,97,116,101,
-- 95,99,97,99,104,101,115,40,41,32,109,101,116,104,111,100,
-- 32,111,110,32,97,108,108,32,112,97,116,104,32,101,110,116,
-- 114,121,32,102,105,110,100,101,114,115,10,32,32,32,32,32,
-- 32,32,32,115,116,111,114,101,100,32,105,110,32,115,121,115,
-- 46,112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,
-- 97,99,104,101,115,32,40,119,104,101,114,101,32,105,109,112,
-- 108,101,109,101,110,116,101,100,41,46,218,17,105,110,118,97,
-- 108,105,100,97,116,101,95,99,97,99,104,101,115,78,41,5,
-- 114,8,0,0,0,218,19,112,97,116,104,95,105,109,112,111,
-- 114,116,101,114,95,99,97,99,104,101,218,6,118,97,108,117,
-- 101,115,114,117,0,0,0,114,251,0,0,0,41,2,114,172,
-- 0,0,0,218,6,102,105,110,100,101,114,114,4,0,0,0,
-- 114,4,0,0,0,114,6,0,0,0,114,251,0,0,0,23,
-- 4,0,0,115,6,0,0,0,0,4,22,1,15,1,122,28,
-- 80,97,116,104,70,105,110,100,101,114,46,105,110,118,97,108,
-- 105,100,97,116,101,95,99,97,99,104,101,115,99,2,0,0,
-- 0,0,0,0,0,3,0,0,0,12,0,0,0,67,0,0,
-- 0,115,107,0,0,0,116,0,0,106,1,0,100,1,0,107,
-- 9,0,114,41,0,116,0,0,106,1,0,12,114,41,0,116,
-- 2,0,106,3,0,100,2,0,116,4,0,131,2,0,1,120,
-- 59,0,116,0,0,106,1,0,68,93,44,0,125,2,0,121,
-- 14,0,124,2,0,124,1,0,131,1,0,83,87,113,51,0,
-- 4,116,5,0,107,10,0,114,94,0,1,1,1,119,51,0,
-- 89,113,51,0,88,113,51,0,87,100,1,0,83,100,1,0,
-- 83,41,3,122,113,83,101,97,114,99,104,32,115,101,113,117,
-- 101,110,99,101,32,111,102,32,104,111,111,107,115,32,102,111,
-- 114,32,97,32,102,105,110,100,101,114,32,102,111,114,32,39,
-- 112,97,116,104,39,46,10,10,32,32,32,32,32,32,32,32,
-- 73,102,32,39,104,111,111,107,115,39,32,105,115,32,102,97,
-- 108,115,101,32,116,104,101,110,32,117,115,101,32,115,121,115,
-- 46,112,97,116,104,95,104,111,111,107,115,46,10,10,32,32,
-- 32,32,32,32,32,32,78,122,23,115,121,115,46,112,97,116,
-- 104,95,104,111,111,107,115,32,105,115,32,101,109,112,116,121,
-- 41,6,114,8,0,0,0,218,10,112,97,116,104,95,104,111,
-- 111,107,115,114,62,0,0,0,114,63,0,0,0,114,127,0,
-- 0,0,114,109,0,0,0,41,3,114,172,0,0,0,114,37,
-- 0,0,0,90,4,104,111,111,107,114,4,0,0,0,114,4,
-- 0,0,0,114,6,0,0,0,218,11,95,112,97,116,104,95,
-- 104,111,111,107,115,31,4,0,0,115,16,0,0,0,0,7,
-- 25,1,16,1,16,1,3,1,14,1,13,1,12,2,122,22,
-- 80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,
-- 95,104,111,111,107,115,99,2,0,0,0,0,0,0,0,3,
-- 0,0,0,19,0,0,0,67,0,0,0,115,123,0,0,0,
-- 124,1,0,100,1,0,107,2,0,114,53,0,121,16,0,116,
-- 0,0,106,1,0,131,0,0,125,1,0,87,110,22,0,4,
-- 116,2,0,107,10,0,114,52,0,1,1,1,100,2,0,83,
-- 89,110,1,0,88,121,17,0,116,3,0,106,4,0,124,1,
-- 0,25,125,2,0,87,110,46,0,4,116,5,0,107,10,0,
-- 114,118,0,1,1,1,124,0,0,106,6,0,124,1,0,131,
-- 1,0,125,2,0,124,2,0,116,3,0,106,4,0,124,1,
-- 0,60,89,110,1,0,88,124,2,0,83,41,3,122,210,71,
-- 101,116,32,116,104,101,32,102,105,110,100,101,114,32,102,111,
-- 114,32,116,104,101,32,112,97,116,104,32,101,110,116,114,121,
-- 32,102,114,111,109,32,115,121,115,46,112,97,116,104,95,105,
-- 109,112,111,114,116,101,114,95,99,97,99,104,101,46,10,10,
-- 32,32,32,32,32,32,32,32,73,102,32,116,104,101,32,112,
-- 97,116,104,32,101,110,116,114,121,32,105,115,32,110,111,116,
-- 32,105,110,32,116,104,101,32,99,97,99,104,101,44,32,102,
-- 105,110,100,32,116,104,101,32,97,112,112,114,111,112,114,105,
-- 97,116,101,32,102,105,110,100,101,114,10,32,32,32,32,32,
-- 32,32,32,97,110,100,32,99,97,99,104,101,32,105,116,46,
-- 32,73,102,32,110,111,32,102,105,110,100,101,114,32,105,115,
-- 32,97,118,97,105,108,97,98,108,101,44,32,115,116,111,114,
-- 101,32,78,111,110,101,46,10,10,32,32,32,32,32,32,32,
-- 32,114,32,0,0,0,78,41,7,114,3,0,0,0,114,47,
-- 0,0,0,218,17,70,105,108,101,78,111,116,70,111,117,110,
-- 100,69,114,114,111,114,114,8,0,0,0,114,252,0,0,0,
-- 114,139,0,0,0,114,0,1,0,0,41,3,114,172,0,0,
-- 0,114,37,0,0,0,114,254,0,0,0,114,4,0,0,0,
-- 114,4,0,0,0,114,6,0,0,0,218,20,95,112,97,116,
-- 104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,
-- 48,4,0,0,115,22,0,0,0,0,8,12,1,3,1,16,
-- 1,13,3,9,1,3,1,17,1,13,1,15,1,18,1,122,
-- 31,80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,
-- 104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,
-- 99,3,0,0,0,0,0,0,0,6,0,0,0,3,0,0,
-- 0,67,0,0,0,115,119,0,0,0,116,0,0,124,2,0,
-- 100,1,0,131,2,0,114,39,0,124,2,0,106,1,0,124,
-- 1,0,131,1,0,92,2,0,125,3,0,125,4,0,110,21,
-- 0,124,2,0,106,2,0,124,1,0,131,1,0,125,3,0,
-- 103,0,0,125,4,0,124,3,0,100,0,0,107,9,0,114,
-- 88,0,116,3,0,106,4,0,124,1,0,124,3,0,131,2,
-- 0,83,116,3,0,106,5,0,124,1,0,100,0,0,131,2,
-- 0,125,5,0,124,4,0,124,5,0,95,6,0,124,5,0,
-- 83,41,2,78,114,126,0,0,0,41,7,114,117,0,0,0,
-- 114,126,0,0,0,114,183,0,0,0,114,123,0,0,0,114,
-- 180,0,0,0,114,162,0,0,0,114,158,0,0,0,41,6,
-- 114,172,0,0,0,114,128,0,0,0,114,254,0,0,0,114,
-- 129,0,0,0,114,130,0,0,0,114,166,0,0,0,114,4,
-- 0,0,0,114,4,0,0,0,114,6,0,0,0,218,16,95,
-- 108,101,103,97,99,121,95,103,101,116,95,115,112,101,99,70,
-- 4,0,0,115,18,0,0,0,0,4,15,1,24,2,15,1,
-- 6,1,12,1,16,1,18,1,9,1,122,27,80,97,116,104,
-- 70,105,110,100,101,114,46,95,108,101,103,97,99,121,95,103,
-- 101,116,95,115,112,101,99,78,99,4,0,0,0,0,0,0,
-- 0,9,0,0,0,5,0,0,0,67,0,0,0,115,243,0,
-- 0,0,103,0,0,125,4,0,120,230,0,124,2,0,68,93,
-- 191,0,125,5,0,116,0,0,124,5,0,116,1,0,116,2,
-- 0,102,2,0,131,2,0,115,43,0,113,13,0,124,0,0,
-- 106,3,0,124,5,0,131,1,0,125,6,0,124,6,0,100,
-- 1,0,107,9,0,114,13,0,116,4,0,124,6,0,100,2,
-- 0,131,2,0,114,106,0,124,6,0,106,5,0,124,1,0,
-- 124,3,0,131,2,0,125,7,0,110,18,0,124,0,0,106,
-- 6,0,124,1,0,124,6,0,131,2,0,125,7,0,124,7,
-- 0,100,1,0,107,8,0,114,139,0,113,13,0,124,7,0,
-- 106,7,0,100,1,0,107,9,0,114,158,0,124,7,0,83,
-- 124,7,0,106,8,0,125,8,0,124,8,0,100,1,0,107,
-- 8,0,114,191,0,116,9,0,100,3,0,131,1,0,130,1,
-- 0,124,4,0,106,10,0,124,8,0,131,1,0,1,113,13,
-- 0,87,116,11,0,106,12,0,124,1,0,100,1,0,131,2,
-- 0,125,7,0,124,4,0,124,7,0,95,8,0,124,7,0,
-- 83,100,1,0,83,41,4,122,63,70,105,110,100,32,116,104,
-- 101,32,108,111,97,100,101,114,32,111,114,32,110,97,109,101,
-- 115,112,97,99,101,95,112,97,116,104,32,102,111,114,32,116,
-- 104,105,115,32,109,111,100,117,108,101,47,112,97,99,107,97,
-- 103,101,32,110,97,109,101,46,78,114,182,0,0,0,122,19,
-- 115,112,101,99,32,109,105,115,115,105,110,103,32,108,111,97,
-- 100,101,114,41,13,114,145,0,0,0,114,71,0,0,0,218,
-- 5,98,121,116,101,115,114,2,1,0,0,114,117,0,0,0,
-- 114,182,0,0,0,114,3,1,0,0,114,129,0,0,0,114,
-- 158,0,0,0,114,109,0,0,0,114,151,0,0,0,114,123,
-- 0,0,0,114,162,0,0,0,41,9,114,172,0,0,0,114,
-- 128,0,0,0,114,37,0,0,0,114,181,0,0,0,218,14,
-- 110,97,109,101,115,112,97,99,101,95,112,97,116,104,90,5,
-- 101,110,116,114,121,114,254,0,0,0,114,166,0,0,0,114,
-- 130,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
-- 0,0,0,218,9,95,103,101,116,95,115,112,101,99,85,4,
-- 0,0,115,40,0,0,0,0,5,6,1,13,1,21,1,3,
-- 1,15,1,12,1,15,1,21,2,18,1,12,1,3,1,15,
-- 1,4,1,9,1,12,1,12,5,17,2,18,1,9,1,122,
-- 20,80,97,116,104,70,105,110,100,101,114,46,95,103,101,116,
-- 95,115,112,101,99,99,4,0,0,0,0,0,0,0,6,0,
-- 0,0,4,0,0,0,67,0,0,0,115,140,0,0,0,124,
-- 2,0,100,1,0,107,8,0,114,21,0,116,0,0,106,1,
-- 0,125,2,0,124,0,0,106,2,0,124,1,0,124,2,0,
-- 124,3,0,131,3,0,125,4,0,124,4,0,100,1,0,107,
-- 8,0,114,58,0,100,1,0,83,124,4,0,106,3,0,100,
-- 1,0,107,8,0,114,132,0,124,4,0,106,4,0,125,5,
-- 0,124,5,0,114,125,0,100,2,0,124,4,0,95,5,0,
-- 116,6,0,124,1,0,124,5,0,124,0,0,106,2,0,131,
-- 3,0,124,4,0,95,4,0,124,4,0,83,100,1,0,83,
-- 110,4,0,124,4,0,83,100,1,0,83,41,3,122,98,102,
-+ 114,187,0,0,0,3,4,0,0,115,2,0,0,0,0,1,
-+ 122,25,95,78,97,109,101,115,112,97,99,101,76,111,97,100,
-+ 101,114,46,95,95,105,110,105,116,95,95,99,2,0,0,0,
-+ 0,0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,
-+ 115,16,0,0,0,100,1,0,106,0,0,124,1,0,106,1,
-+ 0,131,1,0,83,41,2,122,115,82,101,116,117,114,110,32,
-+ 114,101,112,114,32,102,111,114,32,116,104,101,32,109,111,100,
-+ 117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,
-+ 101,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,
-+ 101,99,97,116,101,100,46,32,32,84,104,101,32,105,109,112,
-+ 111,114,116,32,109,97,99,104,105,110,101,114,121,32,100,111,
-+ 101,115,32,116,104,101,32,106,111,98,32,105,116,115,101,108,
-+ 102,46,10,10,32,32,32,32,32,32,32,32,122,25,60,109,
-+ 111,100,117,108,101,32,123,33,114,125,32,40,110,97,109,101,
-+ 115,112,97,99,101,41,62,41,2,114,49,0,0,0,114,114,
-+ 0,0,0,41,2,114,173,0,0,0,114,192,0,0,0,114,
-+ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,11,
-+ 109,111,100,117,108,101,95,114,101,112,114,6,4,0,0,115,
-+ 2,0,0,0,0,7,122,28,95,78,97,109,101,115,112,97,
-+ 99,101,76,111,97,100,101,114,46,109,111,100,117,108,101,95,
-+ 114,101,112,114,99,2,0,0,0,0,0,0,0,2,0,0,
-+ 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,
-+ 0,83,41,2,78,84,114,4,0,0,0,41,2,114,110,0,
-+ 0,0,114,128,0,0,0,114,4,0,0,0,114,4,0,0,
-+ 0,114,6,0,0,0,114,162,0,0,0,15,4,0,0,115,
-+ 2,0,0,0,0,1,122,27,95,78,97,109,101,115,112,97,
-+ 99,101,76,111,97,100,101,114,46,105,115,95,112,97,99,107,
-+ 97,103,101,99,2,0,0,0,0,0,0,0,2,0,0,0,
-+ 1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,0,
-+ 83,41,2,78,114,32,0,0,0,114,4,0,0,0,41,2,
-+ 114,110,0,0,0,114,128,0,0,0,114,4,0,0,0,114,
-+ 4,0,0,0,114,6,0,0,0,114,204,0,0,0,18,4,
-+ 0,0,115,2,0,0,0,0,1,122,27,95,78,97,109,101,
-+ 115,112,97,99,101,76,111,97,100,101,114,46,103,101,116,95,
-+ 115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,2,
-+ 0,0,0,6,0,0,0,67,0,0,0,115,22,0,0,0,
-+ 116,0,0,100,1,0,100,2,0,100,3,0,100,4,0,100,
-+ 5,0,131,3,1,83,41,6,78,114,32,0,0,0,122,8,
-+ 60,115,116,114,105,110,103,62,114,191,0,0,0,114,206,0,
-+ 0,0,84,41,1,114,207,0,0,0,41,2,114,110,0,0,
-+ 0,114,128,0,0,0,114,4,0,0,0,114,4,0,0,0,
-+ 114,6,0,0,0,114,189,0,0,0,21,4,0,0,115,2,
-+ 0,0,0,0,1,122,25,95,78,97,109,101,115,112,97,99,
-+ 101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,
-+ 99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
-+ 0,67,0,0,0,115,4,0,0,0,100,1,0,83,41,2,
-+ 122,42,85,115,101,32,100,101,102,97,117,108,116,32,115,101,
-+ 109,97,110,116,105,99,115,32,102,111,114,32,109,111,100,117,
-+ 108,101,32,99,114,101,97,116,105,111,110,46,78,114,4,0,
-+ 0,0,41,2,114,110,0,0,0,114,167,0,0,0,114,4,
-+ 0,0,0,114,4,0,0,0,114,6,0,0,0,114,188,0,
-+ 0,0,24,4,0,0,115,0,0,0,0,122,30,95,78,97,
-+ 109,101,115,112,97,99,101,76,111,97,100,101,114,46,99,114,
-+ 101,97,116,101,95,109,111,100,117,108,101,99,2,0,0,0,
-+ 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,
-+ 115,4,0,0,0,100,0,0,83,41,1,78,114,4,0,0,
-+ 0,41,2,114,110,0,0,0,114,192,0,0,0,114,4,0,
-+ 0,0,114,4,0,0,0,114,6,0,0,0,114,193,0,0,
-+ 0,27,4,0,0,115,2,0,0,0,0,1,122,28,95,78,
-+ 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,101,
-+ 120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,0,
-+ 0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,
-+ 32,0,0,0,116,0,0,100,1,0,124,0,0,106,1,0,
-+ 131,2,0,1,116,2,0,106,3,0,124,0,0,124,1,0,
-+ 131,2,0,83,41,2,122,98,76,111,97,100,32,97,32,110,
-+ 97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,46,
-+ 10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,
-+ 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,
-+ 116,101,100,46,32,32,85,115,101,32,101,120,101,99,95,109,
-+ 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,46,
-+ 10,10,32,32,32,32,32,32,32,32,122,38,110,97,109,101,
-+ 115,112,97,99,101,32,109,111,100,117,108,101,32,108,111,97,
-+ 100,101,100,32,119,105,116,104,32,112,97,116,104,32,123,33,
-+ 114,125,41,4,114,107,0,0,0,114,234,0,0,0,114,123,
-+ 0,0,0,114,194,0,0,0,41,2,114,110,0,0,0,114,
-+ 128,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
-+ 0,0,0,114,195,0,0,0,30,4,0,0,115,4,0,0,
-+ 0,0,7,16,1,122,28,95,78,97,109,101,115,112,97,99,
-+ 101,76,111,97,100,101,114,46,108,111,97,100,95,109,111,100,
-+ 117,108,101,78,41,12,114,114,0,0,0,114,113,0,0,0,
-+ 114,115,0,0,0,114,187,0,0,0,114,185,0,0,0,114,
-+ 250,0,0,0,114,162,0,0,0,114,204,0,0,0,114,189,
-+ 0,0,0,114,188,0,0,0,114,193,0,0,0,114,195,0,
-+ 0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,
-+ 0,114,6,0,0,0,114,249,0,0,0,2,4,0,0,115,
-+ 16,0,0,0,12,1,12,3,18,9,12,3,12,3,12,3,
-+ 12,3,12,3,114,249,0,0,0,99,0,0,0,0,0,0,
-+ 0,0,0,0,0,0,5,0,0,0,64,0,0,0,115,160,
-+ 0,0,0,101,0,0,90,1,0,100,0,0,90,2,0,100,
-+ 1,0,90,3,0,101,4,0,100,2,0,100,3,0,132,0,
-+ 0,131,1,0,90,5,0,101,4,0,100,4,0,100,5,0,
-+ 132,0,0,131,1,0,90,6,0,101,4,0,100,6,0,100,
-+ 7,0,132,0,0,131,1,0,90,7,0,101,4,0,100,8,
-+ 0,100,9,0,132,0,0,131,1,0,90,8,0,101,4,0,
-+ 100,10,0,100,11,0,100,12,0,132,1,0,131,1,0,90,
-+ 9,0,101,4,0,100,10,0,100,10,0,100,13,0,100,14,
-+ 0,132,2,0,131,1,0,90,10,0,101,4,0,100,10,0,
-+ 100,15,0,100,16,0,132,1,0,131,1,0,90,11,0,100,
-+ 10,0,83,41,17,218,10,80,97,116,104,70,105,110,100,101,
-+ 114,122,62,77,101,116,97,32,112,97,116,104,32,102,105,110,
-+ 100,101,114,32,102,111,114,32,115,121,115,46,112,97,116,104,
-+ 32,97,110,100,32,112,97,99,107,97,103,101,32,95,95,112,
-+ 97,116,104,95,95,32,97,116,116,114,105,98,117,116,101,115,
-+ 46,99,1,0,0,0,0,0,0,0,2,0,0,0,4,0,
-+ 0,0,67,0,0,0,115,55,0,0,0,120,48,0,116,0,
-+ 0,106,1,0,106,2,0,131,0,0,68,93,31,0,125,1,
-+ 0,116,3,0,124,1,0,100,1,0,131,2,0,114,16,0,
-+ 124,1,0,106,4,0,131,0,0,1,113,16,0,87,100,2,
-+ 0,83,41,3,122,125,67,97,108,108,32,116,104,101,32,105,
-+ 110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,
-+ 40,41,32,109,101,116,104,111,100,32,111,110,32,97,108,108,
-+ 32,112,97,116,104,32,101,110,116,114,121,32,102,105,110,100,
-+ 101,114,115,10,32,32,32,32,32,32,32,32,115,116,111,114,
-+ 101,100,32,105,110,32,115,121,115,46,112,97,116,104,95,105,
-+ 109,112,111,114,116,101,114,95,99,97,99,104,101,115,32,40,
-+ 119,104,101,114,101,32,105,109,112,108,101,109,101,110,116,101,
-+ 100,41,46,218,17,105,110,118,97,108,105,100,97,116,101,95,
-+ 99,97,99,104,101,115,78,41,5,114,8,0,0,0,218,19,
-+ 112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,
-+ 99,104,101,218,6,118,97,108,117,101,115,114,117,0,0,0,
-+ 114,252,0,0,0,41,2,114,173,0,0,0,218,6,102,105,
-+ 110,100,101,114,114,4,0,0,0,114,4,0,0,0,114,6,
-+ 0,0,0,114,252,0,0,0,47,4,0,0,115,6,0,0,
-+ 0,0,4,22,1,15,1,122,28,80,97,116,104,70,105,110,
-+ 100,101,114,46,105,110,118,97,108,105,100,97,116,101,95,99,
-+ 97,99,104,101,115,99,2,0,0,0,0,0,0,0,3,0,
-+ 0,0,12,0,0,0,67,0,0,0,115,107,0,0,0,116,
-+ 0,0,106,1,0,100,1,0,107,9,0,114,41,0,116,0,
-+ 0,106,1,0,12,114,41,0,116,2,0,106,3,0,100,2,
-+ 0,116,4,0,131,2,0,1,120,59,0,116,0,0,106,1,
-+ 0,68,93,44,0,125,2,0,121,14,0,124,2,0,124,1,
-+ 0,131,1,0,83,87,113,51,0,4,116,5,0,107,10,0,
-+ 114,94,0,1,1,1,119,51,0,89,113,51,0,88,113,51,
-+ 0,87,100,1,0,83,100,1,0,83,41,3,122,113,83,101,
-+ 97,114,99,104,32,115,101,113,117,101,110,99,101,32,111,102,
-+ 32,104,111,111,107,115,32,102,111,114,32,97,32,102,105,110,
-+ 100,101,114,32,102,111,114,32,39,112,97,116,104,39,46,10,
-+ 10,32,32,32,32,32,32,32,32,73,102,32,39,104,111,111,
-+ 107,115,39,32,105,115,32,102,97,108,115,101,32,116,104,101,
-+ 110,32,117,115,101,32,115,121,115,46,112,97,116,104,95,104,
-+ 111,111,107,115,46,10,10,32,32,32,32,32,32,32,32,78,
-+ 122,23,115,121,115,46,112,97,116,104,95,104,111,111,107,115,
-+ 32,105,115,32,101,109,112,116,121,41,6,114,8,0,0,0,
-+ 218,10,112,97,116,104,95,104,111,111,107,115,114,62,0,0,
-+ 0,114,63,0,0,0,114,127,0,0,0,114,109,0,0,0,
-+ 41,3,114,173,0,0,0,114,37,0,0,0,90,4,104,111,
-+ 111,107,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-+ 0,218,11,95,112,97,116,104,95,104,111,111,107,115,55,4,
-+ 0,0,115,16,0,0,0,0,7,25,1,16,1,16,1,3,
-+ 1,14,1,13,1,12,2,122,22,80,97,116,104,70,105,110,
-+ 100,101,114,46,95,112,97,116,104,95,104,111,111,107,115,99,
-+ 2,0,0,0,0,0,0,0,3,0,0,0,19,0,0,0,
-+ 67,0,0,0,115,123,0,0,0,124,1,0,100,1,0,107,
-+ 2,0,114,53,0,121,16,0,116,0,0,106,1,0,131,0,
-+ 0,125,1,0,87,110,22,0,4,116,2,0,107,10,0,114,
-+ 52,0,1,1,1,100,2,0,83,89,110,1,0,88,121,17,
-+ 0,116,3,0,106,4,0,124,1,0,25,125,2,0,87,110,
-+ 46,0,4,116,5,0,107,10,0,114,118,0,1,1,1,124,
-+ 0,0,106,6,0,124,1,0,131,1,0,125,2,0,124,2,
-+ 0,116,3,0,106,4,0,124,1,0,60,89,110,1,0,88,
-+ 124,2,0,83,41,3,122,210,71,101,116,32,116,104,101,32,
-+ 102,105,110,100,101,114,32,102,111,114,32,116,104,101,32,112,
-+ 97,116,104,32,101,110,116,114,121,32,102,114,111,109,32,115,
-+ 121,115,46,112,97,116,104,95,105,109,112,111,114,116,101,114,
-+ 95,99,97,99,104,101,46,10,10,32,32,32,32,32,32,32,
-+ 32,73,102,32,116,104,101,32,112,97,116,104,32,101,110,116,
-+ 114,121,32,105,115,32,110,111,116,32,105,110,32,116,104,101,
-+ 32,99,97,99,104,101,44,32,102,105,110,100,32,116,104,101,
-+ 32,97,112,112,114,111,112,114,105,97,116,101,32,102,105,110,
-+ 100,101,114,10,32,32,32,32,32,32,32,32,97,110,100,32,
-+ 99,97,99,104,101,32,105,116,46,32,73,102,32,110,111,32,
-+ 102,105,110,100,101,114,32,105,115,32,97,118,97,105,108,97,
-+ 98,108,101,44,32,115,116,111,114,101,32,78,111,110,101,46,
-+ 10,10,32,32,32,32,32,32,32,32,114,32,0,0,0,78,
-+ 41,7,114,3,0,0,0,114,47,0,0,0,218,17,70,105,
-+ 108,101,78,111,116,70,111,117,110,100,69,114,114,111,114,114,
-+ 8,0,0,0,114,253,0,0,0,114,140,0,0,0,114,1,
-+ 1,0,0,41,3,114,173,0,0,0,114,37,0,0,0,114,
-+ 255,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
-+ 0,0,0,218,20,95,112,97,116,104,95,105,109,112,111,114,
-+ 116,101,114,95,99,97,99,104,101,72,4,0,0,115,22,0,
-+ 0,0,0,8,12,1,3,1,16,1,13,3,9,1,3,1,
-+ 17,1,13,1,15,1,18,1,122,31,80,97,116,104,70,105,
-+ 110,100,101,114,46,95,112,97,116,104,95,105,109,112,111,114,
-+ 116,101,114,95,99,97,99,104,101,99,3,0,0,0,0,0,
-+ 0,0,6,0,0,0,3,0,0,0,67,0,0,0,115,119,
-+ 0,0,0,116,0,0,124,2,0,100,1,0,131,2,0,114,
-+ 39,0,124,2,0,106,1,0,124,1,0,131,1,0,92,2,
-+ 0,125,3,0,125,4,0,110,21,0,124,2,0,106,2,0,
-+ 124,1,0,131,1,0,125,3,0,103,0,0,125,4,0,124,
-+ 3,0,100,0,0,107,9,0,114,88,0,116,3,0,106,4,
-+ 0,124,1,0,124,3,0,131,2,0,83,116,3,0,106,5,
-+ 0,124,1,0,100,0,0,131,2,0,125,5,0,124,4,0,
-+ 124,5,0,95,6,0,124,5,0,83,41,2,78,114,126,0,
-+ 0,0,41,7,114,117,0,0,0,114,126,0,0,0,114,184,
-+ 0,0,0,114,123,0,0,0,114,181,0,0,0,114,163,0,
-+ 0,0,114,159,0,0,0,41,6,114,173,0,0,0,114,128,
-+ 0,0,0,114,255,0,0,0,114,129,0,0,0,114,130,0,
-+ 0,0,114,167,0,0,0,114,4,0,0,0,114,4,0,0,
-+ 0,114,6,0,0,0,218,16,95,108,101,103,97,99,121,95,
-+ 103,101,116,95,115,112,101,99,94,4,0,0,115,18,0,0,
-+ 0,0,4,15,1,24,2,15,1,6,1,12,1,16,1,18,
-+ 1,9,1,122,27,80,97,116,104,70,105,110,100,101,114,46,
-+ 95,108,101,103,97,99,121,95,103,101,116,95,115,112,101,99,
-+ 78,99,4,0,0,0,0,0,0,0,9,0,0,0,5,0,
-+ 0,0,67,0,0,0,115,243,0,0,0,103,0,0,125,4,
-+ 0,120,230,0,124,2,0,68,93,191,0,125,5,0,116,0,
-+ 0,124,5,0,116,1,0,116,2,0,102,2,0,131,2,0,
-+ 115,43,0,113,13,0,124,0,0,106,3,0,124,5,0,131,
-+ 1,0,125,6,0,124,6,0,100,1,0,107,9,0,114,13,
-+ 0,116,4,0,124,6,0,100,2,0,131,2,0,114,106,0,
-+ 124,6,0,106,5,0,124,1,0,124,3,0,131,2,0,125,
-+ 7,0,110,18,0,124,0,0,106,6,0,124,1,0,124,6,
-+ 0,131,2,0,125,7,0,124,7,0,100,1,0,107,8,0,
-+ 114,139,0,113,13,0,124,7,0,106,7,0,100,1,0,107,
-+ 9,0,114,158,0,124,7,0,83,124,7,0,106,8,0,125,
-+ 8,0,124,8,0,100,1,0,107,8,0,114,191,0,116,9,
-+ 0,100,3,0,131,1,0,130,1,0,124,4,0,106,10,0,
-+ 124,8,0,131,1,0,1,113,13,0,87,116,11,0,106,12,
-+ 0,124,1,0,100,1,0,131,2,0,125,7,0,124,4,0,
-+ 124,7,0,95,8,0,124,7,0,83,100,1,0,83,41,4,
-+ 122,63,70,105,110,100,32,116,104,101,32,108,111,97,100,101,
-+ 114,32,111,114,32,110,97,109,101,115,112,97,99,101,95,112,
-+ 97,116,104,32,102,111,114,32,116,104,105,115,32,109,111,100,
-+ 117,108,101,47,112,97,99,107,97,103,101,32,110,97,109,101,
-+ 46,78,114,183,0,0,0,122,19,115,112,101,99,32,109,105,
-+ 115,115,105,110,103,32,108,111,97,100,101,114,41,13,114,146,
-+ 0,0,0,114,71,0,0,0,218,5,98,121,116,101,115,114,
-+ 3,1,0,0,114,117,0,0,0,114,183,0,0,0,114,4,
-+ 1,0,0,114,129,0,0,0,114,159,0,0,0,114,109,0,
-+ 0,0,114,152,0,0,0,114,123,0,0,0,114,163,0,0,
-+ 0,41,9,114,173,0,0,0,114,128,0,0,0,114,37,0,
-+ 0,0,114,182,0,0,0,218,14,110,97,109,101,115,112,97,
-+ 99,101,95,112,97,116,104,90,5,101,110,116,114,121,114,255,
-+ 0,0,0,114,167,0,0,0,114,130,0,0,0,114,4,0,
-+ 0,0,114,4,0,0,0,114,6,0,0,0,218,9,95,103,
-+ 101,116,95,115,112,101,99,109,4,0,0,115,40,0,0,0,
-+ 0,5,6,1,13,1,21,1,3,1,15,1,12,1,15,1,
-+ 21,2,18,1,12,1,3,1,15,1,4,1,9,1,12,1,
-+ 12,5,17,2,18,1,9,1,122,20,80,97,116,104,70,105,
-+ 110,100,101,114,46,95,103,101,116,95,115,112,101,99,99,4,
-+ 0,0,0,0,0,0,0,6,0,0,0,4,0,0,0,67,
-+ 0,0,0,115,140,0,0,0,124,2,0,100,1,0,107,8,
-+ 0,114,21,0,116,0,0,106,1,0,125,2,0,124,0,0,
-+ 106,2,0,124,1,0,124,2,0,124,3,0,131,3,0,125,
-+ 4,0,124,4,0,100,1,0,107,8,0,114,58,0,100,1,
-+ 0,83,124,4,0,106,3,0,100,1,0,107,8,0,114,132,
-+ 0,124,4,0,106,4,0,125,5,0,124,5,0,114,125,0,
-+ 100,2,0,124,4,0,95,5,0,116,6,0,124,1,0,124,
-+ 5,0,124,0,0,106,2,0,131,3,0,124,4,0,95,4,
-+ 0,124,4,0,83,100,1,0,83,110,4,0,124,4,0,83,
-+ 100,1,0,83,41,3,122,98,102,105,110,100,32,116,104,101,
-+ 32,109,111,100,117,108,101,32,111,110,32,115,121,115,46,112,
-+ 97,116,104,32,111,114,32,39,112,97,116,104,39,32,98,97,
-+ 115,101,100,32,111,110,32,115,121,115,46,112,97,116,104,95,
-+ 104,111,111,107,115,32,97,110,100,10,32,32,32,32,32,32,
-+ 32,32,115,121,115,46,112,97,116,104,95,105,109,112,111,114,
-+ 116,101,114,95,99,97,99,104,101,46,78,90,9,110,97,109,
-+ 101,115,112,97,99,101,41,7,114,8,0,0,0,114,37,0,
-+ 0,0,114,7,1,0,0,114,129,0,0,0,114,159,0,0,
-+ 0,114,161,0,0,0,114,232,0,0,0,41,6,114,173,0,
-+ 0,0,114,128,0,0,0,114,37,0,0,0,114,182,0,0,
-+ 0,114,167,0,0,0,114,6,1,0,0,114,4,0,0,0,
-+ 114,4,0,0,0,114,6,0,0,0,114,183,0,0,0,141,
-+ 4,0,0,115,26,0,0,0,0,4,12,1,9,1,21,1,
-+ 12,1,4,1,15,1,9,1,6,3,9,1,24,1,4,2,
-+ 7,2,122,20,80,97,116,104,70,105,110,100,101,114,46,102,
-+ 105,110,100,95,115,112,101,99,99,3,0,0,0,0,0,0,
-+ 0,4,0,0,0,3,0,0,0,67,0,0,0,115,41,0,
-+ 0,0,124,0,0,106,0,0,124,1,0,124,2,0,131,2,
-+ 0,125,3,0,124,3,0,100,1,0,107,8,0,114,34,0,
-+ 100,1,0,83,124,3,0,106,1,0,83,41,2,122,170,102,
- 105,110,100,32,116,104,101,32,109,111,100,117,108,101,32,111,
- 110,32,115,121,115,46,112,97,116,104,32,111,114,32,39,112,
- 97,116,104,39,32,98,97,115,101,100,32,111,110,32,115,121,
- 115,46,112,97,116,104,95,104,111,111,107,115,32,97,110,100,
- 10,32,32,32,32,32,32,32,32,115,121,115,46,112,97,116,
- 104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,
-- 46,78,90,9,110,97,109,101,115,112,97,99,101,41,7,114,
-- 8,0,0,0,114,37,0,0,0,114,6,1,0,0,114,129,
-- 0,0,0,114,158,0,0,0,114,160,0,0,0,114,231,0,
-- 0,0,41,6,114,172,0,0,0,114,128,0,0,0,114,37,
-- 0,0,0,114,181,0,0,0,114,166,0,0,0,114,5,1,
-- 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
-- 0,114,182,0,0,0,117,4,0,0,115,26,0,0,0,0,
-- 4,12,1,9,1,21,1,12,1,4,1,15,1,9,1,6,
-- 3,9,1,24,1,4,2,7,2,122,20,80,97,116,104,70,
-- 105,110,100,101,114,46,102,105,110,100,95,115,112,101,99,99,
-- 3,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,
-- 67,0,0,0,115,41,0,0,0,124,0,0,106,0,0,124,
-- 1,0,124,2,0,131,2,0,125,3,0,124,3,0,100,1,
-- 0,107,8,0,114,34,0,100,1,0,83,124,3,0,106,1,
-- 0,83,41,2,122,170,102,105,110,100,32,116,104,101,32,109,
-- 111,100,117,108,101,32,111,110,32,115,121,115,46,112,97,116,
-- 104,32,111,114,32,39,112,97,116,104,39,32,98,97,115,101,
-- 100,32,111,110,32,115,121,115,46,112,97,116,104,95,104,111,
-- 111,107,115,32,97,110,100,10,32,32,32,32,32,32,32,32,
-- 115,121,115,46,112,97,116,104,95,105,109,112,111,114,116,101,
-- 114,95,99,97,99,104,101,46,10,10,32,32,32,32,32,32,
-- 32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,
-- 32,100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,
-- 101,32,102,105,110,100,95,115,112,101,99,40,41,32,105,110,
-- 115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,
-- 78,41,2,114,182,0,0,0,114,129,0,0,0,41,4,114,
-- 172,0,0,0,114,128,0,0,0,114,37,0,0,0,114,166,
-- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
-- 0,0,114,183,0,0,0,139,4,0,0,115,8,0,0,0,
-- 0,8,18,1,12,1,4,1,122,22,80,97,116,104,70,105,
-- 110,100,101,114,46,102,105,110,100,95,109,111,100,117,108,101,
-- 41,12,114,114,0,0,0,114,113,0,0,0,114,115,0,0,
-- 0,114,116,0,0,0,114,184,0,0,0,114,251,0,0,0,
-- 114,0,1,0,0,114,2,1,0,0,114,3,1,0,0,114,
-- 6,1,0,0,114,182,0,0,0,114,183,0,0,0,114,4,
-- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
-- 0,0,114,250,0,0,0,19,4,0,0,115,22,0,0,0,
-- 12,2,6,2,18,8,18,17,18,22,18,15,3,1,18,31,
-- 3,1,21,21,3,1,114,250,0,0,0,99,0,0,0,0,
-- 0,0,0,0,0,0,0,0,3,0,0,0,64,0,0,0,
-- 115,133,0,0,0,101,0,0,90,1,0,100,0,0,90,2,
-- 0,100,1,0,90,3,0,100,2,0,100,3,0,132,0,0,
-- 90,4,0,100,4,0,100,5,0,132,0,0,90,5,0,101,
-- 6,0,90,7,0,100,6,0,100,7,0,132,0,0,90,8,
-- 0,100,8,0,100,9,0,132,0,0,90,9,0,100,10,0,
-- 100,11,0,100,12,0,132,1,0,90,10,0,100,13,0,100,
-- 14,0,132,0,0,90,11,0,101,12,0,100,15,0,100,16,
-- 0,132,0,0,131,1,0,90,13,0,100,17,0,100,18,0,
-- 132,0,0,90,14,0,100,10,0,83,41,19,218,10,70,105,
-- 108,101,70,105,110,100,101,114,122,172,70,105,108,101,45,98,
-- 97,115,101,100,32,102,105,110,100,101,114,46,10,10,32,32,
-- 32,32,73,110,116,101,114,97,99,116,105,111,110,115,32,119,
-- 105,116,104,32,116,104,101,32,102,105,108,101,32,115,121,115,
-- 116,101,109,32,97,114,101,32,99,97,99,104,101,100,32,102,
-- 111,114,32,112,101,114,102,111,114,109,97,110,99,101,44,32,
-- 98,101,105,110,103,10,32,32,32,32,114,101,102,114,101,115,
-- 104,101,100,32,119,104,101,110,32,116,104,101,32,100,105,114,
-- 101,99,116,111,114,121,32,116,104,101,32,102,105,110,100,101,
-- 114,32,105,115,32,104,97,110,100,108,105,110,103,32,104,97,
-- 115,32,98,101,101,110,32,109,111,100,105,102,105,101,100,46,
-- 10,10,32,32,32,32,99,2,0,0,0,0,0,0,0,5,
-- 0,0,0,5,0,0,0,7,0,0,0,115,122,0,0,0,
-- 103,0,0,125,3,0,120,52,0,124,2,0,68,93,44,0,
-- 92,2,0,137,0,0,125,4,0,124,3,0,106,0,0,135,
-- 0,0,102,1,0,100,1,0,100,2,0,134,0,0,124,4,
-- 0,68,131,1,0,131,1,0,1,113,13,0,87,124,3,0,
-- 124,0,0,95,1,0,124,1,0,112,79,0,100,3,0,124,
-- 0,0,95,2,0,100,6,0,124,0,0,95,3,0,116,4,
-- 0,131,0,0,124,0,0,95,5,0,116,4,0,131,0,0,
-- 124,0,0,95,6,0,100,5,0,83,41,7,122,154,73,110,
-- 105,116,105,97,108,105,122,101,32,119,105,116,104,32,116,104,
-- 101,32,112,97,116,104,32,116,111,32,115,101,97,114,99,104,
-- 32,111,110,32,97,110,100,32,97,32,118,97,114,105,97,98,
-- 108,101,32,110,117,109,98,101,114,32,111,102,10,32,32,32,
-- 32,32,32,32,32,50,45,116,117,112,108,101,115,32,99,111,
-- 110,116,97,105,110,105,110,103,32,116,104,101,32,108,111,97,
-- 100,101,114,32,97,110,100,32,116,104,101,32,102,105,108,101,
-- 32,115,117,102,102,105,120,101,115,32,116,104,101,32,108,111,
-- 97,100,101,114,10,32,32,32,32,32,32,32,32,114,101,99,
-- 111,103,110,105,122,101,115,46,99,1,0,0,0,0,0,0,
-- 0,2,0,0,0,3,0,0,0,51,0,0,0,115,27,0,
-- 0,0,124,0,0,93,17,0,125,1,0,124,1,0,136,0,
-- 0,102,2,0,86,1,113,3,0,100,0,0,83,41,1,78,
-- 114,4,0,0,0,41,2,114,24,0,0,0,114,226,0,0,
-- 0,41,1,114,129,0,0,0,114,4,0,0,0,114,6,0,
-- 0,0,114,228,0,0,0,168,4,0,0,115,2,0,0,0,
-- 6,0,122,38,70,105,108,101,70,105,110,100,101,114,46,95,
-- 95,105,110,105,116,95,95,46,60,108,111,99,97,108,115,62,
-- 46,60,103,101,110,101,120,112,114,62,114,60,0,0,0,114,
-- 31,0,0,0,78,114,89,0,0,0,41,7,114,151,0,0,
-- 0,218,8,95,108,111,97,100,101,114,115,114,37,0,0,0,
-- 218,11,95,112,97,116,104,95,109,116,105,109,101,218,3,115,
-- 101,116,218,11,95,112,97,116,104,95,99,97,99,104,101,218,
-- 19,95,114,101,108,97,120,101,100,95,112,97,116,104,95,99,
-- 97,99,104,101,41,5,114,110,0,0,0,114,37,0,0,0,
-- 218,14,108,111,97,100,101,114,95,100,101,116,97,105,108,115,
-- 90,7,108,111,97,100,101,114,115,114,168,0,0,0,114,4,
-- 0,0,0,41,1,114,129,0,0,0,114,6,0,0,0,114,
-- 186,0,0,0,162,4,0,0,115,16,0,0,0,0,4,6,
-- 1,19,1,36,1,9,2,15,1,9,1,12,1,122,19,70,
-- 105,108,101,70,105,110,100,101,114,46,95,95,105,110,105,116,
-- 95,95,99,1,0,0,0,0,0,0,0,1,0,0,0,2,
-- 0,0,0,67,0,0,0,115,13,0,0,0,100,3,0,124,
-- 0,0,95,0,0,100,2,0,83,41,4,122,31,73,110,118,
-- 97,108,105,100,97,116,101,32,116,104,101,32,100,105,114,101,
-- 99,116,111,114,121,32,109,116,105,109,101,46,114,31,0,0,
-- 0,78,114,89,0,0,0,41,1,114,9,1,0,0,41,1,
-- 114,110,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
-- 6,0,0,0,114,251,0,0,0,176,4,0,0,115,2,0,
-- 0,0,0,2,122,28,70,105,108,101,70,105,110,100,101,114,
-- 46,105,110,118,97,108,105,100,97,116,101,95,99,97,99,104,
-- 101,115,99,2,0,0,0,0,0,0,0,3,0,0,0,2,
-- 0,0,0,67,0,0,0,115,59,0,0,0,124,0,0,106,
-- 0,0,124,1,0,131,1,0,125,2,0,124,2,0,100,1,
-- 0,107,8,0,114,37,0,100,1,0,103,0,0,102,2,0,
-- 83,124,2,0,106,1,0,124,2,0,106,2,0,112,55,0,
-- 103,0,0,102,2,0,83,41,2,122,197,84,114,121,32,116,
-- 111,32,102,105,110,100,32,97,32,108,111,97,100,101,114,32,
-- 102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,
-- 100,32,109,111,100,117,108,101,44,32,111,114,32,116,104,101,
-- 32,110,97,109,101,115,112,97,99,101,10,32,32,32,32,32,
-- 32,32,32,112,97,99,107,97,103,101,32,112,111,114,116,105,
-- 111,110,115,46,32,82,101,116,117,114,110,115,32,40,108,111,
-- 97,100,101,114,44,32,108,105,115,116,45,111,102,45,112,111,
-- 114,116,105,111,110,115,41,46,10,10,32,32,32,32,32,32,
-- 32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,
-- 32,100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,
-- 101,32,102,105,110,100,95,115,112,101,99,40,41,32,105,110,
-- 115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,
-- 78,41,3,114,182,0,0,0,114,129,0,0,0,114,158,0,
-- 0,0,41,3,114,110,0,0,0,114,128,0,0,0,114,166,
-- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
-- 0,0,114,126,0,0,0,182,4,0,0,115,8,0,0,0,
-- 0,7,15,1,12,1,10,1,122,22,70,105,108,101,70,105,
-- 110,100,101,114,46,102,105,110,100,95,108,111,97,100,101,114,
-- 99,6,0,0,0,0,0,0,0,7,0,0,0,7,0,0,
-- 0,67,0,0,0,115,40,0,0,0,124,1,0,124,2,0,
-- 124,3,0,131,2,0,125,6,0,116,0,0,124,2,0,124,
-- 3,0,100,1,0,124,6,0,100,2,0,124,4,0,131,2,
-- 2,83,41,3,78,114,129,0,0,0,114,158,0,0,0,41,
-- 1,114,169,0,0,0,41,7,114,110,0,0,0,114,167,0,
-- 0,0,114,128,0,0,0,114,37,0,0,0,90,4,115,109,
-- 115,108,114,181,0,0,0,114,129,0,0,0,114,4,0,0,
-- 0,114,4,0,0,0,114,6,0,0,0,114,6,1,0,0,
-- 194,4,0,0,115,6,0,0,0,0,1,15,1,18,1,122,
-- 20,70,105,108,101,70,105,110,100,101,114,46,95,103,101,116,
-- 95,115,112,101,99,78,99,3,0,0,0,0,0,0,0,14,
-- 0,0,0,15,0,0,0,67,0,0,0,115,234,1,0,0,
-- 100,1,0,125,3,0,124,1,0,106,0,0,100,2,0,131,
-- 1,0,100,3,0,25,125,4,0,121,34,0,116,1,0,124,
-- 0,0,106,2,0,112,49,0,116,3,0,106,4,0,131,0,
-- 0,131,1,0,106,5,0,125,5,0,87,110,24,0,4,116,
-- 6,0,107,10,0,114,85,0,1,1,1,100,10,0,125,5,
-- 0,89,110,1,0,88,124,5,0,124,0,0,106,7,0,107,
-- 3,0,114,120,0,124,0,0,106,8,0,131,0,0,1,124,
-- 5,0,124,0,0,95,7,0,116,9,0,131,0,0,114,153,
-- 0,124,0,0,106,10,0,125,6,0,124,4,0,106,11,0,
-- 131,0,0,125,7,0,110,15,0,124,0,0,106,12,0,125,
-- 6,0,124,4,0,125,7,0,124,7,0,124,6,0,107,6,
-- 0,114,45,1,116,13,0,124,0,0,106,2,0,124,4,0,
-- 131,2,0,125,8,0,120,100,0,124,0,0,106,14,0,68,
-- 93,77,0,92,2,0,125,9,0,125,10,0,100,5,0,124,
-- 9,0,23,125,11,0,116,13,0,124,8,0,124,11,0,131,
-- 2,0,125,12,0,116,15,0,124,12,0,131,1,0,114,208,
-- 0,124,0,0,106,16,0,124,10,0,124,1,0,124,12,0,
-- 124,8,0,103,1,0,124,2,0,131,5,0,83,113,208,0,
-- 87,116,17,0,124,8,0,131,1,0,125,3,0,120,123,0,
-- 124,0,0,106,14,0,68,93,112,0,92,2,0,125,9,0,
-- 125,10,0,116,13,0,124,0,0,106,2,0,124,4,0,124,
-- 9,0,23,131,2,0,125,12,0,116,18,0,100,6,0,106,
-- 19,0,124,12,0,131,1,0,100,7,0,100,3,0,131,1,
-- 1,1,124,7,0,124,9,0,23,124,6,0,107,6,0,114,
-- 55,1,116,15,0,124,12,0,131,1,0,114,55,1,124,0,
-- 0,106,16,0,124,10,0,124,1,0,124,12,0,100,8,0,
-- 124,2,0,131,5,0,83,113,55,1,87,124,3,0,114,230,
-- 1,116,18,0,100,9,0,106,19,0,124,8,0,131,1,0,
-- 131,1,0,1,116,20,0,106,21,0,124,1,0,100,8,0,
-- 131,2,0,125,13,0,124,8,0,103,1,0,124,13,0,95,
-- 22,0,124,13,0,83,100,8,0,83,41,11,122,102,84,114,
-- 121,32,116,111,32,102,105,110,100,32,97,32,115,112,101,99,
-- 32,102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,
-- 101,100,32,109,111,100,117,108,101,46,32,32,82,101,116,117,
-- 114,110,115,32,116,104,101,10,32,32,32,32,32,32,32,32,
-- 109,97,116,99,104,105,110,103,32,115,112,101,99,44,32,111,
-- 114,32,78,111,110,101,32,105,102,32,110,111,116,32,102,111,
-- 117,110,100,46,70,114,60,0,0,0,114,58,0,0,0,114,
-- 31,0,0,0,114,186,0,0,0,122,9,116,114,121,105,110,
-- 103,32,123,125,114,100,0,0,0,78,122,25,112,111,115,115,
-- 105,98,108,101,32,110,97,109,101,115,112,97,99,101,32,102,
-- 111,114,32,123,125,114,89,0,0,0,41,23,114,34,0,0,
-- 0,114,41,0,0,0,114,37,0,0,0,114,3,0,0,0,
-- 114,47,0,0,0,114,220,0,0,0,114,42,0,0,0,114,
-- 9,1,0,0,218,11,95,102,105,108,108,95,99,97,99,104,
-- 101,114,7,0,0,0,114,12,1,0,0,114,90,0,0,0,
-- 114,11,1,0,0,114,30,0,0,0,114,8,1,0,0,114,
-- 46,0,0,0,114,6,1,0,0,114,48,0,0,0,114,107,
-- 0,0,0,114,49,0,0,0,114,123,0,0,0,114,162,0,
-- 0,0,114,158,0,0,0,41,14,114,110,0,0,0,114,128,
-- 0,0,0,114,181,0,0,0,90,12,105,115,95,110,97,109,
-- 101,115,112,97,99,101,90,11,116,97,105,108,95,109,111,100,
-- 117,108,101,114,135,0,0,0,90,5,99,97,99,104,101,90,
-- 12,99,97,99,104,101,95,109,111,100,117,108,101,90,9,98,
-- 97,115,101,95,112,97,116,104,114,226,0,0,0,114,167,0,
-- 0,0,90,13,105,110,105,116,95,102,105,108,101,110,97,109,
-- 101,90,9,102,117,108,108,95,112,97,116,104,114,166,0,0,
-+ 46,10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,
-+ 109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,
-+ 97,116,101,100,46,32,32,85,115,101,32,102,105,110,100,95,
-+ 115,112,101,99,40,41,32,105,110,115,116,101,97,100,46,10,
-+ 10,32,32,32,32,32,32,32,32,78,41,2,114,183,0,0,
-+ 0,114,129,0,0,0,41,4,114,173,0,0,0,114,128,0,
-+ 0,0,114,37,0,0,0,114,167,0,0,0,114,4,0,0,
-+ 0,114,4,0,0,0,114,6,0,0,0,114,184,0,0,0,
-+ 163,4,0,0,115,8,0,0,0,0,8,18,1,12,1,4,
-+ 1,122,22,80,97,116,104,70,105,110,100,101,114,46,102,105,
-+ 110,100,95,109,111,100,117,108,101,41,12,114,114,0,0,0,
-+ 114,113,0,0,0,114,115,0,0,0,114,116,0,0,0,114,
-+ 185,0,0,0,114,252,0,0,0,114,1,1,0,0,114,3,
-+ 1,0,0,114,4,1,0,0,114,7,1,0,0,114,183,0,
-+ 0,0,114,184,0,0,0,114,4,0,0,0,114,4,0,0,
-+ 0,114,4,0,0,0,114,6,0,0,0,114,251,0,0,0,
-+ 43,4,0,0,115,22,0,0,0,12,2,6,2,18,8,18,
-+ 17,18,22,18,15,3,1,18,31,3,1,21,21,3,1,114,
-+ 251,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
-+ 0,3,0,0,0,64,0,0,0,115,133,0,0,0,101,0,
-+ 0,90,1,0,100,0,0,90,2,0,100,1,0,90,3,0,
-+ 100,2,0,100,3,0,132,0,0,90,4,0,100,4,0,100,
-+ 5,0,132,0,0,90,5,0,101,6,0,90,7,0,100,6,
-+ 0,100,7,0,132,0,0,90,8,0,100,8,0,100,9,0,
-+ 132,0,0,90,9,0,100,10,0,100,11,0,100,12,0,132,
-+ 1,0,90,10,0,100,13,0,100,14,0,132,0,0,90,11,
-+ 0,101,12,0,100,15,0,100,16,0,132,0,0,131,1,0,
-+ 90,13,0,100,17,0,100,18,0,132,0,0,90,14,0,100,
-+ 10,0,83,41,19,218,10,70,105,108,101,70,105,110,100,101,
-+ 114,122,172,70,105,108,101,45,98,97,115,101,100,32,102,105,
-+ 110,100,101,114,46,10,10,32,32,32,32,73,110,116,101,114,
-+ 97,99,116,105,111,110,115,32,119,105,116,104,32,116,104,101,
-+ 32,102,105,108,101,32,115,121,115,116,101,109,32,97,114,101,
-+ 32,99,97,99,104,101,100,32,102,111,114,32,112,101,114,102,
-+ 111,114,109,97,110,99,101,44,32,98,101,105,110,103,10,32,
-+ 32,32,32,114,101,102,114,101,115,104,101,100,32,119,104,101,
-+ 110,32,116,104,101,32,100,105,114,101,99,116,111,114,121,32,
-+ 116,104,101,32,102,105,110,100,101,114,32,105,115,32,104,97,
-+ 110,100,108,105,110,103,32,104,97,115,32,98,101,101,110,32,
-+ 109,111,100,105,102,105,101,100,46,10,10,32,32,32,32,99,
-+ 2,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,
-+ 7,0,0,0,115,122,0,0,0,103,0,0,125,3,0,120,
-+ 52,0,124,2,0,68,93,44,0,92,2,0,137,0,0,125,
-+ 4,0,124,3,0,106,0,0,135,0,0,102,1,0,100,1,
-+ 0,100,2,0,134,0,0,124,4,0,68,131,1,0,131,1,
-+ 0,1,113,13,0,87,124,3,0,124,0,0,95,1,0,124,
-+ 1,0,112,79,0,100,3,0,124,0,0,95,2,0,100,6,
-+ 0,124,0,0,95,3,0,116,4,0,131,0,0,124,0,0,
-+ 95,5,0,116,4,0,131,0,0,124,0,0,95,6,0,100,
-+ 5,0,83,41,7,122,154,73,110,105,116,105,97,108,105,122,
-+ 101,32,119,105,116,104,32,116,104,101,32,112,97,116,104,32,
-+ 116,111,32,115,101,97,114,99,104,32,111,110,32,97,110,100,
-+ 32,97,32,118,97,114,105,97,98,108,101,32,110,117,109,98,
-+ 101,114,32,111,102,10,32,32,32,32,32,32,32,32,50,45,
-+ 116,117,112,108,101,115,32,99,111,110,116,97,105,110,105,110,
-+ 103,32,116,104,101,32,108,111,97,100,101,114,32,97,110,100,
-+ 32,116,104,101,32,102,105,108,101,32,115,117,102,102,105,120,
-+ 101,115,32,116,104,101,32,108,111,97,100,101,114,10,32,32,
-+ 32,32,32,32,32,32,114,101,99,111,103,110,105,122,101,115,
-+ 46,99,1,0,0,0,0,0,0,0,2,0,0,0,3,0,
-+ 0,0,51,0,0,0,115,27,0,0,0,124,0,0,93,17,
-+ 0,125,1,0,124,1,0,136,0,0,102,2,0,86,1,113,
-+ 3,0,100,0,0,83,41,1,78,114,4,0,0,0,41,2,
-+ 114,24,0,0,0,114,227,0,0,0,41,1,114,129,0,0,
-+ 0,114,4,0,0,0,114,6,0,0,0,114,229,0,0,0,
-+ 192,4,0,0,115,2,0,0,0,6,0,122,38,70,105,108,
-+ 101,70,105,110,100,101,114,46,95,95,105,110,105,116,95,95,
-+ 46,60,108,111,99,97,108,115,62,46,60,103,101,110,101,120,
-+ 112,114,62,114,60,0,0,0,114,31,0,0,0,78,114,89,
-+ 0,0,0,41,7,114,152,0,0,0,218,8,95,108,111,97,
-+ 100,101,114,115,114,37,0,0,0,218,11,95,112,97,116,104,
-+ 95,109,116,105,109,101,218,3,115,101,116,218,11,95,112,97,
-+ 116,104,95,99,97,99,104,101,218,19,95,114,101,108,97,120,
-+ 101,100,95,112,97,116,104,95,99,97,99,104,101,41,5,114,
-+ 110,0,0,0,114,37,0,0,0,218,14,108,111,97,100,101,
-+ 114,95,100,101,116,97,105,108,115,90,7,108,111,97,100,101,
-+ 114,115,114,169,0,0,0,114,4,0,0,0,41,1,114,129,
-+ 0,0,0,114,6,0,0,0,114,187,0,0,0,186,4,0,
-+ 0,115,16,0,0,0,0,4,6,1,19,1,36,1,9,2,
-+ 15,1,9,1,12,1,122,19,70,105,108,101,70,105,110,100,
-+ 101,114,46,95,95,105,110,105,116,95,95,99,1,0,0,0,
-+ 0,0,0,0,1,0,0,0,2,0,0,0,67,0,0,0,
-+ 115,13,0,0,0,100,3,0,124,0,0,95,0,0,100,2,
-+ 0,83,41,4,122,31,73,110,118,97,108,105,100,97,116,101,
-+ 32,116,104,101,32,100,105,114,101,99,116,111,114,121,32,109,
-+ 116,105,109,101,46,114,31,0,0,0,78,114,89,0,0,0,
-+ 41,1,114,10,1,0,0,41,1,114,110,0,0,0,114,4,
-+ 0,0,0,114,4,0,0,0,114,6,0,0,0,114,252,0,
-+ 0,0,200,4,0,0,115,2,0,0,0,0,2,122,28,70,
-+ 105,108,101,70,105,110,100,101,114,46,105,110,118,97,108,105,
-+ 100,97,116,101,95,99,97,99,104,101,115,99,2,0,0,0,
-+ 0,0,0,0,3,0,0,0,2,0,0,0,67,0,0,0,
-+ 115,59,0,0,0,124,0,0,106,0,0,124,1,0,131,1,
-+ 0,125,2,0,124,2,0,100,1,0,107,8,0,114,37,0,
-+ 100,1,0,103,0,0,102,2,0,83,124,2,0,106,1,0,
-+ 124,2,0,106,2,0,112,55,0,103,0,0,102,2,0,83,
-+ 41,2,122,197,84,114,121,32,116,111,32,102,105,110,100,32,
-+ 97,32,108,111,97,100,101,114,32,102,111,114,32,116,104,101,
-+ 32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,108,
-+ 101,44,32,111,114,32,116,104,101,32,110,97,109,101,115,112,
-+ 97,99,101,10,32,32,32,32,32,32,32,32,112,97,99,107,
-+ 97,103,101,32,112,111,114,116,105,111,110,115,46,32,82,101,
-+ 116,117,114,110,115,32,40,108,111,97,100,101,114,44,32,108,
-+ 105,115,116,45,111,102,45,112,111,114,116,105,111,110,115,41,
-+ 46,10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,
-+ 109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,
-+ 97,116,101,100,46,32,32,85,115,101,32,102,105,110,100,95,
-+ 115,112,101,99,40,41,32,105,110,115,116,101,97,100,46,10,
-+ 10,32,32,32,32,32,32,32,32,78,41,3,114,183,0,0,
-+ 0,114,129,0,0,0,114,159,0,0,0,41,3,114,110,0,
-+ 0,0,114,128,0,0,0,114,167,0,0,0,114,4,0,0,
-+ 0,114,4,0,0,0,114,6,0,0,0,114,126,0,0,0,
-+ 206,4,0,0,115,8,0,0,0,0,7,15,1,12,1,10,
-+ 1,122,22,70,105,108,101,70,105,110,100,101,114,46,102,105,
-+ 110,100,95,108,111,97,100,101,114,99,6,0,0,0,0,0,
-+ 0,0,7,0,0,0,7,0,0,0,67,0,0,0,115,40,
-+ 0,0,0,124,1,0,124,2,0,124,3,0,131,2,0,125,
-+ 6,0,116,0,0,124,2,0,124,3,0,100,1,0,124,6,
-+ 0,100,2,0,124,4,0,131,2,2,83,41,3,78,114,129,
-+ 0,0,0,114,159,0,0,0,41,1,114,170,0,0,0,41,
-+ 7,114,110,0,0,0,114,168,0,0,0,114,128,0,0,0,
-+ 114,37,0,0,0,90,4,115,109,115,108,114,182,0,0,0,
-+ 114,129,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
-+ 6,0,0,0,114,7,1,0,0,218,4,0,0,115,6,0,
-+ 0,0,0,1,15,1,18,1,122,20,70,105,108,101,70,105,
-+ 110,100,101,114,46,95,103,101,116,95,115,112,101,99,78,99,
-+ 3,0,0,0,0,0,0,0,14,0,0,0,15,0,0,0,
-+ 67,0,0,0,115,234,1,0,0,100,1,0,125,3,0,124,
-+ 1,0,106,0,0,100,2,0,131,1,0,100,3,0,25,125,
-+ 4,0,121,34,0,116,1,0,124,0,0,106,2,0,112,49,
-+ 0,116,3,0,106,4,0,131,0,0,131,1,0,106,5,0,
-+ 125,5,0,87,110,24,0,4,116,6,0,107,10,0,114,85,
-+ 0,1,1,1,100,10,0,125,5,0,89,110,1,0,88,124,
-+ 5,0,124,0,0,106,7,0,107,3,0,114,120,0,124,0,
-+ 0,106,8,0,131,0,0,1,124,5,0,124,0,0,95,7,
-+ 0,116,9,0,131,0,0,114,153,0,124,0,0,106,10,0,
-+ 125,6,0,124,4,0,106,11,0,131,0,0,125,7,0,110,
-+ 15,0,124,0,0,106,12,0,125,6,0,124,4,0,125,7,
-+ 0,124,7,0,124,6,0,107,6,0,114,45,1,116,13,0,
-+ 124,0,0,106,2,0,124,4,0,131,2,0,125,8,0,120,
-+ 100,0,124,0,0,106,14,0,68,93,77,0,92,2,0,125,
-+ 9,0,125,10,0,100,5,0,124,9,0,23,125,11,0,116,
-+ 13,0,124,8,0,124,11,0,131,2,0,125,12,0,116,15,
-+ 0,124,12,0,131,1,0,114,208,0,124,0,0,106,16,0,
-+ 124,10,0,124,1,0,124,12,0,124,8,0,103,1,0,124,
-+ 2,0,131,5,0,83,113,208,0,87,116,17,0,124,8,0,
-+ 131,1,0,125,3,0,120,123,0,124,0,0,106,14,0,68,
-+ 93,112,0,92,2,0,125,9,0,125,10,0,116,13,0,124,
-+ 0,0,106,2,0,124,4,0,124,9,0,23,131,2,0,125,
-+ 12,0,116,18,0,100,6,0,106,19,0,124,12,0,131,1,
-+ 0,100,7,0,100,3,0,131,1,1,1,124,7,0,124,9,
-+ 0,23,124,6,0,107,6,0,114,55,1,116,15,0,124,12,
-+ 0,131,1,0,114,55,1,124,0,0,106,16,0,124,10,0,
-+ 124,1,0,124,12,0,100,8,0,124,2,0,131,5,0,83,
-+ 113,55,1,87,124,3,0,114,230,1,116,18,0,100,9,0,
-+ 106,19,0,124,8,0,131,1,0,131,1,0,1,116,20,0,
-+ 106,21,0,124,1,0,100,8,0,131,2,0,125,13,0,124,
-+ 8,0,103,1,0,124,13,0,95,22,0,124,13,0,83,100,
-+ 8,0,83,41,11,122,102,84,114,121,32,116,111,32,102,105,
-+ 110,100,32,97,32,115,112,101,99,32,102,111,114,32,116,104,
-+ 101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,
-+ 108,101,46,32,32,82,101,116,117,114,110,115,32,116,104,101,
-+ 10,32,32,32,32,32,32,32,32,109,97,116,99,104,105,110,
-+ 103,32,115,112,101,99,44,32,111,114,32,78,111,110,101,32,
-+ 105,102,32,110,111,116,32,102,111,117,110,100,46,70,114,60,
-+ 0,0,0,114,58,0,0,0,114,31,0,0,0,114,187,0,
-+ 0,0,122,9,116,114,121,105,110,103,32,123,125,114,100,0,
-+ 0,0,78,122,25,112,111,115,115,105,98,108,101,32,110,97,
-+ 109,101,115,112,97,99,101,32,102,111,114,32,123,125,114,89,
-+ 0,0,0,41,23,114,34,0,0,0,114,41,0,0,0,114,
-+ 37,0,0,0,114,3,0,0,0,114,47,0,0,0,114,221,
-+ 0,0,0,114,42,0,0,0,114,10,1,0,0,218,11,95,
-+ 102,105,108,108,95,99,97,99,104,101,114,7,0,0,0,114,
-+ 13,1,0,0,114,90,0,0,0,114,12,1,0,0,114,30,
-+ 0,0,0,114,9,1,0,0,114,46,0,0,0,114,7,1,
-+ 0,0,114,48,0,0,0,114,107,0,0,0,114,49,0,0,
-+ 0,114,123,0,0,0,114,163,0,0,0,114,159,0,0,0,
-+ 41,14,114,110,0,0,0,114,128,0,0,0,114,182,0,0,
-+ 0,90,12,105,115,95,110,97,109,101,115,112,97,99,101,90,
-+ 11,116,97,105,108,95,109,111,100,117,108,101,114,135,0,0,
-+ 0,90,5,99,97,99,104,101,90,12,99,97,99,104,101,95,
-+ 109,111,100,117,108,101,90,9,98,97,115,101,95,112,97,116,
-+ 104,114,227,0,0,0,114,168,0,0,0,90,13,105,110,105,
-+ 116,95,102,105,108,101,110,97,109,101,90,9,102,117,108,108,
-+ 95,112,97,116,104,114,167,0,0,0,114,4,0,0,0,114,
-+ 4,0,0,0,114,6,0,0,0,114,183,0,0,0,223,4,
-+ 0,0,115,68,0,0,0,0,3,6,1,19,1,3,1,34,
-+ 1,13,1,11,1,15,1,10,1,9,2,9,1,9,1,15,
-+ 2,9,1,6,2,12,1,18,1,22,1,10,1,15,1,12,
-+ 1,32,4,12,2,22,1,22,1,25,1,16,1,12,1,29,
-+ 1,6,1,19,1,18,1,12,1,4,1,122,20,70,105,108,
-+ 101,70,105,110,100,101,114,46,102,105,110,100,95,115,112,101,
-+ 99,99,1,0,0,0,0,0,0,0,9,0,0,0,13,0,
-+ 0,0,67,0,0,0,115,11,1,0,0,124,0,0,106,0,
-+ 0,125,1,0,121,31,0,116,1,0,106,2,0,124,1,0,
-+ 112,33,0,116,1,0,106,3,0,131,0,0,131,1,0,125,
-+ 2,0,87,110,33,0,4,116,4,0,116,5,0,116,6,0,
-+ 102,3,0,107,10,0,114,75,0,1,1,1,103,0,0,125,
-+ 2,0,89,110,1,0,88,116,7,0,106,8,0,106,9,0,
-+ 100,1,0,131,1,0,115,112,0,116,10,0,124,2,0,131,
-+ 1,0,124,0,0,95,11,0,110,111,0,116,10,0,131,0,
-+ 0,125,3,0,120,90,0,124,2,0,68,93,82,0,125,4,
-+ 0,124,4,0,106,12,0,100,2,0,131,1,0,92,3,0,
-+ 125,5,0,125,6,0,125,7,0,124,6,0,114,191,0,100,
-+ 3,0,106,13,0,124,5,0,124,7,0,106,14,0,131,0,
-+ 0,131,2,0,125,8,0,110,6,0,124,5,0,125,8,0,
-+ 124,3,0,106,15,0,124,8,0,131,1,0,1,113,128,0,
-+ 87,124,3,0,124,0,0,95,11,0,116,7,0,106,8,0,
-+ 106,9,0,116,16,0,131,1,0,114,7,1,100,4,0,100,
-+ 5,0,132,0,0,124,2,0,68,131,1,0,124,0,0,95,
-+ 17,0,100,6,0,83,41,7,122,68,70,105,108,108,32,116,
-+ 104,101,32,99,97,99,104,101,32,111,102,32,112,111,116,101,
-+ 110,116,105,97,108,32,109,111,100,117,108,101,115,32,97,110,
-+ 100,32,112,97,99,107,97,103,101,115,32,102,111,114,32,116,
-+ 104,105,115,32,100,105,114,101,99,116,111,114,121,46,114,0,
-+ 0,0,0,114,60,0,0,0,122,5,123,125,46,123,125,99,
-+ 1,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
-+ 83,0,0,0,115,28,0,0,0,104,0,0,124,0,0,93,
-+ 18,0,125,1,0,124,1,0,106,0,0,131,0,0,146,2,
-+ 0,113,6,0,83,114,4,0,0,0,41,1,114,90,0,0,
-+ 0,41,2,114,24,0,0,0,90,2,102,110,114,4,0,0,
-+ 0,114,4,0,0,0,114,6,0,0,0,250,9,60,115,101,
-+ 116,99,111,109,112,62,41,5,0,0,115,2,0,0,0,9,
-+ 0,122,41,70,105,108,101,70,105,110,100,101,114,46,95,102,
-+ 105,108,108,95,99,97,99,104,101,46,60,108,111,99,97,108,
-+ 115,62,46,60,115,101,116,99,111,109,112,62,78,41,18,114,
-+ 37,0,0,0,114,3,0,0,0,90,7,108,105,115,116,100,
-+ 105,114,114,47,0,0,0,114,2,1,0,0,218,15,80,101,
-+ 114,109,105,115,115,105,111,110,69,114,114,111,114,218,18,78,
-+ 111,116,65,68,105,114,101,99,116,111,114,121,69,114,114,111,
-+ 114,114,8,0,0,0,114,9,0,0,0,114,10,0,0,0,
-+ 114,11,1,0,0,114,12,1,0,0,114,85,0,0,0,114,
-+ 49,0,0,0,114,90,0,0,0,218,3,97,100,100,114,11,
-+ 0,0,0,114,13,1,0,0,41,9,114,110,0,0,0,114,
-+ 37,0,0,0,90,8,99,111,110,116,101,110,116,115,90,21,
-+ 108,111,119,101,114,95,115,117,102,102,105,120,95,99,111,110,
-+ 116,101,110,116,115,114,247,0,0,0,114,108,0,0,0,114,
-+ 239,0,0,0,114,227,0,0,0,90,8,110,101,119,95,110,
-+ 97,109,101,114,4,0,0,0,114,4,0,0,0,114,6,0,
-+ 0,0,114,15,1,0,0,12,5,0,0,115,34,0,0,0,
-+ 0,2,9,1,3,1,31,1,22,3,11,3,18,1,18,7,
-+ 9,1,13,1,24,1,6,1,27,2,6,1,17,1,9,1,
-+ 18,1,122,22,70,105,108,101,70,105,110,100,101,114,46,95,
-+ 102,105,108,108,95,99,97,99,104,101,99,1,0,0,0,0,
-+ 0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,115,
-+ 25,0,0,0,135,0,0,135,1,0,102,2,0,100,1,0,
-+ 100,2,0,134,0,0,125,2,0,124,2,0,83,41,3,97,
-+ 20,1,0,0,65,32,99,108,97,115,115,32,109,101,116,104,
-+ 111,100,32,119,104,105,99,104,32,114,101,116,117,114,110,115,
-+ 32,97,32,99,108,111,115,117,114,101,32,116,111,32,117,115,
-+ 101,32,111,110,32,115,121,115,46,112,97,116,104,95,104,111,
-+ 111,107,10,32,32,32,32,32,32,32,32,119,104,105,99,104,
-+ 32,119,105,108,108,32,114,101,116,117,114,110,32,97,110,32,
-+ 105,110,115,116,97,110,99,101,32,117,115,105,110,103,32,116,
-+ 104,101,32,115,112,101,99,105,102,105,101,100,32,108,111,97,
-+ 100,101,114,115,32,97,110,100,32,116,104,101,32,112,97,116,
-+ 104,10,32,32,32,32,32,32,32,32,99,97,108,108,101,100,
-+ 32,111,110,32,116,104,101,32,99,108,111,115,117,114,101,46,
-+ 10,10,32,32,32,32,32,32,32,32,73,102,32,116,104,101,
-+ 32,112,97,116,104,32,99,97,108,108,101,100,32,111,110,32,
-+ 116,104,101,32,99,108,111,115,117,114,101,32,105,115,32,110,
-+ 111,116,32,97,32,100,105,114,101,99,116,111,114,121,44,32,
-+ 73,109,112,111,114,116,69,114,114,111,114,32,105,115,10,32,
-+ 32,32,32,32,32,32,32,114,97,105,115,101,100,46,10,10,
-+ 32,32,32,32,32,32,32,32,99,1,0,0,0,0,0,0,
-+ 0,1,0,0,0,4,0,0,0,19,0,0,0,115,43,0,
-+ 0,0,116,0,0,124,0,0,131,1,0,115,30,0,116,1,
-+ 0,100,1,0,100,2,0,124,0,0,131,1,1,130,1,0,
-+ 136,0,0,124,0,0,136,1,0,140,1,0,83,41,3,122,
-+ 45,80,97,116,104,32,104,111,111,107,32,102,111,114,32,105,
-+ 109,112,111,114,116,108,105,98,46,109,97,99,104,105,110,101,
-+ 114,121,46,70,105,108,101,70,105,110,100,101,114,46,122,30,
-+ 111,110,108,121,32,100,105,114,101,99,116,111,114,105,101,115,
-+ 32,97,114,101,32,115,117,112,112,111,114,116,101,100,114,37,
-+ 0,0,0,41,2,114,48,0,0,0,114,109,0,0,0,41,
-+ 1,114,37,0,0,0,41,2,114,173,0,0,0,114,14,1,
-+ 0,0,114,4,0,0,0,114,6,0,0,0,218,24,112,97,
-+ 116,104,95,104,111,111,107,95,102,111,114,95,70,105,108,101,
-+ 70,105,110,100,101,114,53,5,0,0,115,6,0,0,0,0,
-+ 2,12,1,18,1,122,54,70,105,108,101,70,105,110,100,101,
-+ 114,46,112,97,116,104,95,104,111,111,107,46,60,108,111,99,
-+ 97,108,115,62,46,112,97,116,104,95,104,111,111,107,95,102,
-+ 111,114,95,70,105,108,101,70,105,110,100,101,114,114,4,0,
-+ 0,0,41,3,114,173,0,0,0,114,14,1,0,0,114,20,
-+ 1,0,0,114,4,0,0,0,41,2,114,173,0,0,0,114,
-+ 14,1,0,0,114,6,0,0,0,218,9,112,97,116,104,95,
-+ 104,111,111,107,43,5,0,0,115,4,0,0,0,0,10,21,
-+ 6,122,20,70,105,108,101,70,105,110,100,101,114,46,112,97,
-+ 116,104,95,104,111,111,107,99,1,0,0,0,0,0,0,0,
-+ 1,0,0,0,2,0,0,0,67,0,0,0,115,16,0,0,
-+ 0,100,1,0,106,0,0,124,0,0,106,1,0,131,1,0,
-+ 83,41,2,78,122,16,70,105,108,101,70,105,110,100,101,114,
-+ 40,123,33,114,125,41,41,2,114,49,0,0,0,114,37,0,
-+ 0,0,41,1,114,110,0,0,0,114,4,0,0,0,114,4,
-+ 0,0,0,114,6,0,0,0,114,246,0,0,0,61,5,0,
-+ 0,115,2,0,0,0,0,1,122,19,70,105,108,101,70,105,
-+ 110,100,101,114,46,95,95,114,101,112,114,95,95,41,15,114,
-+ 114,0,0,0,114,113,0,0,0,114,115,0,0,0,114,116,
-+ 0,0,0,114,187,0,0,0,114,252,0,0,0,114,132,0,
-+ 0,0,114,184,0,0,0,114,126,0,0,0,114,7,1,0,
-+ 0,114,183,0,0,0,114,15,1,0,0,114,185,0,0,0,
-+ 114,21,1,0,0,114,246,0,0,0,114,4,0,0,0,114,
-+ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,8,
-+ 1,0,0,177,4,0,0,115,20,0,0,0,12,7,6,2,
-+ 12,14,12,4,6,2,12,12,12,5,15,45,12,31,18,18,
-+ 114,8,1,0,0,99,4,0,0,0,0,0,0,0,6,0,
-+ 0,0,11,0,0,0,67,0,0,0,115,195,0,0,0,124,
-+ 0,0,106,0,0,100,1,0,131,1,0,125,4,0,124,0,
-+ 0,106,0,0,100,2,0,131,1,0,125,5,0,124,4,0,
-+ 115,99,0,124,5,0,114,54,0,124,5,0,106,1,0,125,
-+ 4,0,110,45,0,124,2,0,124,3,0,107,2,0,114,84,
-+ 0,116,2,0,124,1,0,124,2,0,131,2,0,125,4,0,
-+ 110,15,0,116,3,0,124,1,0,124,2,0,131,2,0,125,
-+ 4,0,124,5,0,115,126,0,116,4,0,124,1,0,124,2,
-+ 0,100,3,0,124,4,0,131,2,1,125,5,0,121,44,0,
-+ 124,5,0,124,0,0,100,2,0,60,124,4,0,124,0,0,
-+ 100,1,0,60,124,2,0,124,0,0,100,4,0,60,124,3,
-+ 0,124,0,0,100,5,0,60,87,110,18,0,4,116,5,0,
-+ 107,10,0,114,190,0,1,1,1,89,110,1,0,88,100,0,
-+ 0,83,41,6,78,218,10,95,95,108,111,97,100,101,114,95,
-+ 95,218,8,95,95,115,112,101,99,95,95,114,129,0,0,0,
-+ 90,8,95,95,102,105,108,101,95,95,90,10,95,95,99,97,
-+ 99,104,101,100,95,95,41,6,218,3,103,101,116,114,129,0,
-+ 0,0,114,225,0,0,0,114,220,0,0,0,114,170,0,0,
-+ 0,218,9,69,120,99,101,112,116,105,111,110,41,6,90,2,
-+ 110,115,114,108,0,0,0,90,8,112,97,116,104,110,97,109,
-+ 101,90,9,99,112,97,116,104,110,97,109,101,114,129,0,0,
-+ 0,114,167,0,0,0,114,4,0,0,0,114,4,0,0,0,
-+ 114,6,0,0,0,218,14,95,102,105,120,95,117,112,95,109,
-+ 111,100,117,108,101,67,5,0,0,115,34,0,0,0,0,2,
-+ 15,1,15,1,6,1,6,1,12,1,12,1,18,2,15,1,
-+ 6,1,21,1,3,1,10,1,10,1,10,1,14,1,13,2,
-+ 114,26,1,0,0,99,0,0,0,0,0,0,0,0,3,0,
-+ 0,0,3,0,0,0,67,0,0,0,115,55,0,0,0,116,
-+ 0,0,116,1,0,106,2,0,131,0,0,102,2,0,125,0,
-+ 0,116,3,0,116,4,0,102,2,0,125,1,0,116,5,0,
-+ 116,6,0,102,2,0,125,2,0,124,0,0,124,1,0,124,
-+ 2,0,103,3,0,83,41,1,122,95,82,101,116,117,114,110,
-+ 115,32,97,32,108,105,115,116,32,111,102,32,102,105,108,101,
-+ 45,98,97,115,101,100,32,109,111,100,117,108,101,32,108,111,
-+ 97,100,101,114,115,46,10,10,32,32,32,32,69,97,99,104,
-+ 32,105,116,101,109,32,105,115,32,97,32,116,117,112,108,101,
-+ 32,40,108,111,97,100,101,114,44,32,115,117,102,102,105,120,
-+ 101,115,41,46,10,32,32,32,32,41,7,114,226,0,0,0,
-+ 114,148,0,0,0,218,18,101,120,116,101,110,115,105,111,110,
-+ 95,115,117,102,102,105,120,101,115,114,220,0,0,0,114,86,
-+ 0,0,0,114,225,0,0,0,114,76,0,0,0,41,3,90,
-+ 10,101,120,116,101,110,115,105,111,110,115,90,6,115,111,117,
-+ 114,99,101,90,8,98,121,116,101,99,111,100,101,114,4,0,
-+ 0,0,114,4,0,0,0,114,6,0,0,0,114,164,0,0,
-+ 0,90,5,0,0,115,8,0,0,0,0,5,18,1,12,1,
-+ 12,1,114,164,0,0,0,99,1,0,0,0,0,0,0,0,
-+ 12,0,0,0,12,0,0,0,67,0,0,0,115,70,2,0,
-+ 0,124,0,0,97,0,0,116,0,0,106,1,0,97,1,0,
-+ 116,0,0,106,2,0,97,2,0,116,1,0,106,3,0,116,
-+ 4,0,25,125,1,0,120,76,0,100,26,0,68,93,68,0,
-+ 125,2,0,124,2,0,116,1,0,106,3,0,107,7,0,114,
-+ 83,0,116,0,0,106,5,0,124,2,0,131,1,0,125,3,
-+ 0,110,13,0,116,1,0,106,3,0,124,2,0,25,125,3,
-+ 0,116,6,0,124,1,0,124,2,0,124,3,0,131,3,0,
-+ 1,113,44,0,87,100,5,0,100,6,0,103,1,0,102,2,
-+ 0,100,7,0,100,8,0,100,6,0,103,2,0,102,2,0,
-+ 102,2,0,125,4,0,120,149,0,124,4,0,68,93,129,0,
-+ 92,2,0,125,5,0,125,6,0,116,7,0,100,9,0,100,
-+ 10,0,132,0,0,124,6,0,68,131,1,0,131,1,0,115,
-+ 199,0,116,8,0,130,1,0,124,6,0,100,11,0,25,125,
-+ 7,0,124,5,0,116,1,0,106,3,0,107,6,0,114,241,
-+ 0,116,1,0,106,3,0,124,5,0,25,125,8,0,80,113,
-+ 156,0,121,20,0,116,0,0,106,5,0,124,5,0,131,1,
-+ 0,125,8,0,80,87,113,156,0,4,116,9,0,107,10,0,
-+ 114,28,1,1,1,1,119,156,0,89,113,156,0,88,113,156,
-+ 0,87,116,9,0,100,12,0,131,1,0,130,1,0,116,6,
-+ 0,124,1,0,100,13,0,124,8,0,131,3,0,1,116,6,
-+ 0,124,1,0,100,14,0,124,7,0,131,3,0,1,116,6,
-+ 0,124,1,0,100,15,0,100,16,0,106,10,0,124,6,0,
-+ 131,1,0,131,3,0,1,121,19,0,116,0,0,106,5,0,
-+ 100,17,0,131,1,0,125,9,0,87,110,24,0,4,116,9,
-+ 0,107,10,0,114,147,1,1,1,1,100,18,0,125,9,0,
-+ 89,110,1,0,88,116,6,0,124,1,0,100,17,0,124,9,
-+ 0,131,3,0,1,116,0,0,106,5,0,100,19,0,131,1,
-+ 0,125,10,0,116,6,0,124,1,0,100,19,0,124,10,0,
-+ 131,3,0,1,124,5,0,100,7,0,107,2,0,114,238,1,
-+ 116,0,0,106,5,0,100,20,0,131,1,0,125,11,0,116,
-+ 6,0,124,1,0,100,21,0,124,11,0,131,3,0,1,116,
-+ 6,0,124,1,0,100,22,0,116,11,0,131,0,0,131,3,
-+ 0,1,116,12,0,106,13,0,116,2,0,106,14,0,131,0,
-+ 0,131,1,0,1,124,5,0,100,7,0,107,2,0,114,66,
-+ 2,116,15,0,106,16,0,100,23,0,131,1,0,1,100,24,
-+ 0,116,12,0,107,6,0,114,66,2,100,25,0,116,17,0,
-+ 95,18,0,100,18,0,83,41,27,122,205,83,101,116,117,112,
-+ 32,116,104,101,32,112,97,116,104,45,98,97,115,101,100,32,
-+ 105,109,112,111,114,116,101,114,115,32,102,111,114,32,105,109,
-+ 112,111,114,116,108,105,98,32,98,121,32,105,109,112,111,114,
-+ 116,105,110,103,32,110,101,101,100,101,100,10,32,32,32,32,
-+ 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,115,
-+ 32,97,110,100,32,105,110,106,101,99,116,105,110,103,32,116,
-+ 104,101,109,32,105,110,116,111,32,116,104,101,32,103,108,111,
-+ 98,97,108,32,110,97,109,101,115,112,97,99,101,46,10,10,
-+ 32,32,32,32,79,116,104,101,114,32,99,111,109,112,111,110,
-+ 101,110,116,115,32,97,114,101,32,101,120,116,114,97,99,116,
-+ 101,100,32,102,114,111,109,32,116,104,101,32,99,111,114,101,
-+ 32,98,111,111,116,115,116,114,97,112,32,109,111,100,117,108,
-+ 101,46,10,10,32,32,32,32,114,51,0,0,0,114,62,0,
-+ 0,0,218,8,98,117,105,108,116,105,110,115,114,145,0,0,
-+ 0,90,5,112,111,115,105,120,250,1,47,218,2,110,116,250,
-+ 1,92,99,1,0,0,0,0,0,0,0,2,0,0,0,3,
-+ 0,0,0,115,0,0,0,115,33,0,0,0,124,0,0,93,
-+ 23,0,125,1,0,116,0,0,124,1,0,131,1,0,100,0,
-+ 0,107,2,0,86,1,113,3,0,100,1,0,83,41,2,114,
-+ 31,0,0,0,78,41,1,114,33,0,0,0,41,2,114,24,
-+ 0,0,0,114,79,0,0,0,114,4,0,0,0,114,4,0,
-+ 0,0,114,6,0,0,0,114,229,0,0,0,126,5,0,0,
-+ 115,2,0,0,0,6,0,122,25,95,115,101,116,117,112,46,
-+ 60,108,111,99,97,108,115,62,46,60,103,101,110,101,120,112,
-+ 114,62,114,61,0,0,0,122,30,105,109,112,111,114,116,108,
-+ 105,98,32,114,101,113,117,105,114,101,115,32,112,111,115,105,
-+ 120,32,111,114,32,110,116,114,3,0,0,0,114,27,0,0,
-+ 0,114,23,0,0,0,114,32,0,0,0,90,7,95,116,104,
-+ 114,101,97,100,78,90,8,95,119,101,97,107,114,101,102,90,
-+ 6,119,105,110,114,101,103,114,172,0,0,0,114,7,0,0,
-+ 0,122,4,46,112,121,119,122,6,95,100,46,112,121,100,84,
-+ 41,4,114,51,0,0,0,114,62,0,0,0,114,28,1,0,
-+ 0,114,145,0,0,0,41,19,114,123,0,0,0,114,8,0,
-+ 0,0,114,148,0,0,0,114,241,0,0,0,114,114,0,0,
-+ 0,90,18,95,98,117,105,108,116,105,110,95,102,114,111,109,
-+ 95,110,97,109,101,114,118,0,0,0,218,3,97,108,108,218,
-+ 14,65,115,115,101,114,116,105,111,110,69,114,114,111,114,114,
-+ 109,0,0,0,114,28,0,0,0,114,13,0,0,0,114,231,
-+ 0,0,0,114,152,0,0,0,114,27,1,0,0,114,86,0,
-+ 0,0,114,166,0,0,0,114,171,0,0,0,114,175,0,0,
-+ 0,41,12,218,17,95,98,111,111,116,115,116,114,97,112,95,
-+ 109,111,100,117,108,101,90,11,115,101,108,102,95,109,111,100,
-+ 117,108,101,90,12,98,117,105,108,116,105,110,95,110,97,109,
-+ 101,90,14,98,117,105,108,116,105,110,95,109,111,100,117,108,
-+ 101,90,10,111,115,95,100,101,116,97,105,108,115,90,10,98,
-+ 117,105,108,116,105,110,95,111,115,114,23,0,0,0,114,27,
-+ 0,0,0,90,9,111,115,95,109,111,100,117,108,101,90,13,
-+ 116,104,114,101,97,100,95,109,111,100,117,108,101,90,14,119,
-+ 101,97,107,114,101,102,95,109,111,100,117,108,101,90,13,119,
-+ 105,110,114,101,103,95,109,111,100,117,108,101,114,4,0,0,
-+ 0,114,4,0,0,0,114,6,0,0,0,218,6,95,115,101,
-+ 116,117,112,101,5,0,0,115,82,0,0,0,0,8,6,1,
-+ 9,1,9,3,13,1,13,1,15,1,18,2,13,1,20,3,
-+ 33,1,19,2,31,1,10,1,15,1,13,1,4,2,3,1,
-+ 15,1,5,1,13,1,12,2,12,1,16,1,16,1,25,3,
-+ 3,1,19,1,13,2,11,1,16,3,15,1,16,3,12,1,
-+ 15,1,16,3,19,1,19,1,12,1,13,1,12,1,114,35,
-+ 1,0,0,99,1,0,0,0,0,0,0,0,2,0,0,0,
-+ 3,0,0,0,67,0,0,0,115,116,0,0,0,116,0,0,
-+ 124,0,0,131,1,0,1,116,1,0,131,0,0,125,1,0,
-+ 116,2,0,106,3,0,106,4,0,116,5,0,106,6,0,124,
-+ 1,0,140,0,0,103,1,0,131,1,0,1,116,7,0,106,
-+ 8,0,100,1,0,107,2,0,114,78,0,116,2,0,106,9,
-+ 0,106,10,0,116,11,0,131,1,0,1,116,2,0,106,9,
-+ 0,106,10,0,116,12,0,131,1,0,1,116,5,0,124,0,
-+ 0,95,5,0,116,13,0,124,0,0,95,13,0,100,2,0,
-+ 83,41,3,122,41,73,110,115,116,97,108,108,32,116,104,101,
-+ 32,112,97,116,104,45,98,97,115,101,100,32,105,109,112,111,
-+ 114,116,32,99,111,109,112,111,110,101,110,116,115,46,114,30,
-+ 1,0,0,78,41,14,114,35,1,0,0,114,164,0,0,0,
-+ 114,8,0,0,0,114,0,1,0,0,114,152,0,0,0,114,
-+ 8,1,0,0,114,21,1,0,0,114,3,0,0,0,114,114,
-+ 0,0,0,218,9,109,101,116,97,95,112,97,116,104,114,166,
-+ 0,0,0,114,171,0,0,0,114,251,0,0,0,114,220,0,
-+ 0,0,41,2,114,34,1,0,0,90,17,115,117,112,112,111,
-+ 114,116,101,100,95,108,111,97,100,101,114,115,114,4,0,0,
-+ 0,114,4,0,0,0,114,6,0,0,0,218,8,95,105,110,
-+ 115,116,97,108,108,169,5,0,0,115,16,0,0,0,0,2,
-+ 10,1,9,1,28,1,15,1,16,1,16,4,9,1,114,37,
-+ 1,0,0,41,1,114,0,0,0,0,41,2,114,1,0,0,
-+ 0,114,2,0,0,0,41,62,114,116,0,0,0,114,12,0,
-+ 0,0,90,37,95,67,65,83,69,95,73,78,83,69,78,83,
-+ 73,84,73,86,69,95,80,76,65,84,70,79,82,77,83,95,
-+ 66,89,84,69,83,95,75,69,89,114,11,0,0,0,114,13,
-+ 0,0,0,114,19,0,0,0,114,21,0,0,0,114,30,0,
-+ 0,0,114,40,0,0,0,114,41,0,0,0,114,45,0,0,
-+ 0,114,46,0,0,0,114,48,0,0,0,114,57,0,0,0,
-+ 218,4,116,121,112,101,218,8,95,95,99,111,100,101,95,95,
-+ 114,147,0,0,0,114,17,0,0,0,114,137,0,0,0,114,
-+ 16,0,0,0,114,20,0,0,0,90,17,95,82,65,87,95,
-+ 77,65,71,73,67,95,78,85,77,66,69,82,90,4,95,109,
-+ 115,103,218,11,83,121,115,116,101,109,69,114,114,111,114,114,
-+ 138,0,0,0,114,75,0,0,0,114,74,0,0,0,114,86,
-+ 0,0,0,114,76,0,0,0,90,23,68,69,66,85,71,95,
-+ 66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,69,
-+ 83,90,27,79,80,84,73,77,73,90,69,68,95,66,89,84,
-+ 69,67,79,68,69,95,83,85,70,70,73,88,69,83,114,81,
-+ 0,0,0,114,87,0,0,0,114,93,0,0,0,114,97,0,
-+ 0,0,114,99,0,0,0,114,107,0,0,0,114,125,0,0,
-+ 0,114,132,0,0,0,114,144,0,0,0,114,150,0,0,0,
-+ 114,153,0,0,0,114,158,0,0,0,218,6,111,98,106,101,
-+ 99,116,114,165,0,0,0,114,170,0,0,0,114,171,0,0,
-+ 0,114,186,0,0,0,114,196,0,0,0,114,212,0,0,0,
-+ 114,220,0,0,0,114,225,0,0,0,114,231,0,0,0,114,
-+ 226,0,0,0,114,232,0,0,0,114,249,0,0,0,114,251,
-+ 0,0,0,114,8,1,0,0,114,26,1,0,0,114,164,0,
-+ 0,0,114,35,1,0,0,114,37,1,0,0,114,4,0,0,
- 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
-- 114,182,0,0,0,199,4,0,0,115,68,0,0,0,0,3,
-- 6,1,19,1,3,1,34,1,13,1,11,1,15,1,10,1,
-- 9,2,9,1,9,1,15,2,9,1,6,2,12,1,18,1,
-- 22,1,10,1,15,1,12,1,32,4,12,2,22,1,22,1,
-- 25,1,16,1,12,1,29,1,6,1,19,1,18,1,12,1,
-- 4,1,122,20,70,105,108,101,70,105,110,100,101,114,46,102,
-- 105,110,100,95,115,112,101,99,99,1,0,0,0,0,0,0,
-- 0,9,0,0,0,13,0,0,0,67,0,0,0,115,11,1,
-- 0,0,124,0,0,106,0,0,125,1,0,121,31,0,116,1,
-- 0,106,2,0,124,1,0,112,33,0,116,1,0,106,3,0,
-- 131,0,0,131,1,0,125,2,0,87,110,33,0,4,116,4,
-- 0,116,5,0,116,6,0,102,3,0,107,10,0,114,75,0,
-- 1,1,1,103,0,0,125,2,0,89,110,1,0,88,116,7,
-- 0,106,8,0,106,9,0,100,1,0,131,1,0,115,112,0,
-- 116,10,0,124,2,0,131,1,0,124,0,0,95,11,0,110,
-- 111,0,116,10,0,131,0,0,125,3,0,120,90,0,124,2,
-- 0,68,93,82,0,125,4,0,124,4,0,106,12,0,100,2,
-- 0,131,1,0,92,3,0,125,5,0,125,6,0,125,7,0,
-- 124,6,0,114,191,0,100,3,0,106,13,0,124,5,0,124,
-- 7,0,106,14,0,131,0,0,131,2,0,125,8,0,110,6,
-- 0,124,5,0,125,8,0,124,3,0,106,15,0,124,8,0,
-- 131,1,0,1,113,128,0,87,124,3,0,124,0,0,95,11,
-- 0,116,7,0,106,8,0,106,9,0,116,16,0,131,1,0,
-- 114,7,1,100,4,0,100,5,0,132,0,0,124,2,0,68,
-- 131,1,0,124,0,0,95,17,0,100,6,0,83,41,7,122,
-- 68,70,105,108,108,32,116,104,101,32,99,97,99,104,101,32,
-- 111,102,32,112,111,116,101,110,116,105,97,108,32,109,111,100,
-- 117,108,101,115,32,97,110,100,32,112,97,99,107,97,103,101,
-- 115,32,102,111,114,32,116,104,105,115,32,100,105,114,101,99,
-- 116,111,114,121,46,114,0,0,0,0,114,60,0,0,0,122,
-- 5,123,125,46,123,125,99,1,0,0,0,0,0,0,0,2,
-- 0,0,0,3,0,0,0,83,0,0,0,115,28,0,0,0,
-- 104,0,0,124,0,0,93,18,0,125,1,0,124,1,0,106,
-- 0,0,131,0,0,146,2,0,113,6,0,83,114,4,0,0,
-- 0,41,1,114,90,0,0,0,41,2,114,24,0,0,0,90,
-- 2,102,110,114,4,0,0,0,114,4,0,0,0,114,6,0,
-- 0,0,250,9,60,115,101,116,99,111,109,112,62,17,5,0,
-- 0,115,2,0,0,0,9,0,122,41,70,105,108,101,70,105,
-- 110,100,101,114,46,95,102,105,108,108,95,99,97,99,104,101,
-- 46,60,108,111,99,97,108,115,62,46,60,115,101,116,99,111,
-- 109,112,62,78,41,18,114,37,0,0,0,114,3,0,0,0,
-- 90,7,108,105,115,116,100,105,114,114,47,0,0,0,114,1,
-- 1,0,0,218,15,80,101,114,109,105,115,115,105,111,110,69,
-- 114,114,111,114,218,18,78,111,116,65,68,105,114,101,99,116,
-- 111,114,121,69,114,114,111,114,114,8,0,0,0,114,9,0,
-- 0,0,114,10,0,0,0,114,10,1,0,0,114,11,1,0,
-- 0,114,85,0,0,0,114,49,0,0,0,114,90,0,0,0,
-- 218,3,97,100,100,114,11,0,0,0,114,12,1,0,0,41,
-- 9,114,110,0,0,0,114,37,0,0,0,90,8,99,111,110,
-- 116,101,110,116,115,90,21,108,111,119,101,114,95,115,117,102,
-- 102,105,120,95,99,111,110,116,101,110,116,115,114,246,0,0,
-- 0,114,108,0,0,0,114,238,0,0,0,114,226,0,0,0,
-- 90,8,110,101,119,95,110,97,109,101,114,4,0,0,0,114,
-- 4,0,0,0,114,6,0,0,0,114,14,1,0,0,244,4,
-- 0,0,115,34,0,0,0,0,2,9,1,3,1,31,1,22,
-- 3,11,3,18,1,18,7,9,1,13,1,24,1,6,1,27,
-- 2,6,1,17,1,9,1,18,1,122,22,70,105,108,101,70,
-- 105,110,100,101,114,46,95,102,105,108,108,95,99,97,99,104,
-- 101,99,1,0,0,0,0,0,0,0,3,0,0,0,3,0,
-- 0,0,7,0,0,0,115,25,0,0,0,135,0,0,135,1,
-- 0,102,2,0,100,1,0,100,2,0,134,0,0,125,2,0,
-- 124,2,0,83,41,3,97,20,1,0,0,65,32,99,108,97,
-- 115,115,32,109,101,116,104,111,100,32,119,104,105,99,104,32,
-- 114,101,116,117,114,110,115,32,97,32,99,108,111,115,117,114,
-- 101,32,116,111,32,117,115,101,32,111,110,32,115,121,115,46,
-- 112,97,116,104,95,104,111,111,107,10,32,32,32,32,32,32,
-- 32,32,119,104,105,99,104,32,119,105,108,108,32,114,101,116,
-- 117,114,110,32,97,110,32,105,110,115,116,97,110,99,101,32,
-- 117,115,105,110,103,32,116,104,101,32,115,112,101,99,105,102,
-- 105,101,100,32,108,111,97,100,101,114,115,32,97,110,100,32,
-- 116,104,101,32,112,97,116,104,10,32,32,32,32,32,32,32,
-- 32,99,97,108,108,101,100,32,111,110,32,116,104,101,32,99,
-- 108,111,115,117,114,101,46,10,10,32,32,32,32,32,32,32,
-- 32,73,102,32,116,104,101,32,112,97,116,104,32,99,97,108,
-- 108,101,100,32,111,110,32,116,104,101,32,99,108,111,115,117,
-- 114,101,32,105,115,32,110,111,116,32,97,32,100,105,114,101,
-- 99,116,111,114,121,44,32,73,109,112,111,114,116,69,114,114,
-- 111,114,32,105,115,10,32,32,32,32,32,32,32,32,114,97,
-- 105,115,101,100,46,10,10,32,32,32,32,32,32,32,32,99,
-- 1,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,
-- 19,0,0,0,115,43,0,0,0,116,0,0,124,0,0,131,
-- 1,0,115,30,0,116,1,0,100,1,0,100,2,0,124,0,
-- 0,131,1,1,130,1,0,136,0,0,124,0,0,136,1,0,
-- 140,1,0,83,41,3,122,45,80,97,116,104,32,104,111,111,
-- 107,32,102,111,114,32,105,109,112,111,114,116,108,105,98,46,
-- 109,97,99,104,105,110,101,114,121,46,70,105,108,101,70,105,
-- 110,100,101,114,46,122,30,111,110,108,121,32,100,105,114,101,
-- 99,116,111,114,105,101,115,32,97,114,101,32,115,117,112,112,
-- 111,114,116,101,100,114,37,0,0,0,41,2,114,48,0,0,
-- 0,114,109,0,0,0,41,1,114,37,0,0,0,41,2,114,
-- 172,0,0,0,114,13,1,0,0,114,4,0,0,0,114,6,
-- 0,0,0,218,24,112,97,116,104,95,104,111,111,107,95,102,
-- 111,114,95,70,105,108,101,70,105,110,100,101,114,29,5,0,
-- 0,115,6,0,0,0,0,2,12,1,18,1,122,54,70,105,
-- 108,101,70,105,110,100,101,114,46,112,97,116,104,95,104,111,
-- 111,107,46,60,108,111,99,97,108,115,62,46,112,97,116,104,
-- 95,104,111,111,107,95,102,111,114,95,70,105,108,101,70,105,
-- 110,100,101,114,114,4,0,0,0,41,3,114,172,0,0,0,
-- 114,13,1,0,0,114,19,1,0,0,114,4,0,0,0,41,
-- 2,114,172,0,0,0,114,13,1,0,0,114,6,0,0,0,
-- 218,9,112,97,116,104,95,104,111,111,107,19,5,0,0,115,
-- 4,0,0,0,0,10,21,6,122,20,70,105,108,101,70,105,
-- 110,100,101,114,46,112,97,116,104,95,104,111,111,107,99,1,
-- 0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,67,
-- 0,0,0,115,16,0,0,0,100,1,0,106,0,0,124,0,
-- 0,106,1,0,131,1,0,83,41,2,78,122,16,70,105,108,
-- 101,70,105,110,100,101,114,40,123,33,114,125,41,41,2,114,
-- 49,0,0,0,114,37,0,0,0,41,1,114,110,0,0,0,
-- 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,
-- 245,0,0,0,37,5,0,0,115,2,0,0,0,0,1,122,
-- 19,70,105,108,101,70,105,110,100,101,114,46,95,95,114,101,
-- 112,114,95,95,41,15,114,114,0,0,0,114,113,0,0,0,
-- 114,115,0,0,0,114,116,0,0,0,114,186,0,0,0,114,
-- 251,0,0,0,114,132,0,0,0,114,183,0,0,0,114,126,
-- 0,0,0,114,6,1,0,0,114,182,0,0,0,114,14,1,
-- 0,0,114,184,0,0,0,114,20,1,0,0,114,245,0,0,
-- 0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,
-- 114,6,0,0,0,114,7,1,0,0,153,4,0,0,115,20,
-- 0,0,0,12,7,6,2,12,14,12,4,6,2,12,12,12,
-- 5,15,45,12,31,18,18,114,7,1,0,0,99,4,0,0,
-- 0,0,0,0,0,6,0,0,0,11,0,0,0,67,0,0,
-- 0,115,195,0,0,0,124,0,0,106,0,0,100,1,0,131,
-- 1,0,125,4,0,124,0,0,106,0,0,100,2,0,131,1,
-- 0,125,5,0,124,4,0,115,99,0,124,5,0,114,54,0,
-- 124,5,0,106,1,0,125,4,0,110,45,0,124,2,0,124,
-- 3,0,107,2,0,114,84,0,116,2,0,124,1,0,124,2,
-- 0,131,2,0,125,4,0,110,15,0,116,3,0,124,1,0,
-- 124,2,0,131,2,0,125,4,0,124,5,0,115,126,0,116,
-- 4,0,124,1,0,124,2,0,100,3,0,124,4,0,131,2,
-- 1,125,5,0,121,44,0,124,5,0,124,0,0,100,2,0,
-- 60,124,4,0,124,0,0,100,1,0,60,124,2,0,124,0,
-- 0,100,4,0,60,124,3,0,124,0,0,100,5,0,60,87,
-- 110,18,0,4,116,5,0,107,10,0,114,190,0,1,1,1,
-- 89,110,1,0,88,100,0,0,83,41,6,78,218,10,95,95,
-- 108,111,97,100,101,114,95,95,218,8,95,95,115,112,101,99,
-- 95,95,114,129,0,0,0,90,8,95,95,102,105,108,101,95,
-- 95,90,10,95,95,99,97,99,104,101,100,95,95,41,6,218,
-- 3,103,101,116,114,129,0,0,0,114,224,0,0,0,114,219,
-- 0,0,0,114,169,0,0,0,218,9,69,120,99,101,112,116,
-- 105,111,110,41,6,90,2,110,115,114,108,0,0,0,90,8,
-- 112,97,116,104,110,97,109,101,90,9,99,112,97,116,104,110,
-- 97,109,101,114,129,0,0,0,114,166,0,0,0,114,4,0,
-- 0,0,114,4,0,0,0,114,6,0,0,0,218,14,95,102,
-- 105,120,95,117,112,95,109,111,100,117,108,101,43,5,0,0,
-- 115,34,0,0,0,0,2,15,1,15,1,6,1,6,1,12,
-- 1,12,1,18,2,15,1,6,1,21,1,3,1,10,1,10,
-- 1,10,1,14,1,13,2,114,25,1,0,0,99,0,0,0,
-- 0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,
-- 0,115,55,0,0,0,116,0,0,116,1,0,106,2,0,131,
-- 0,0,102,2,0,125,0,0,116,3,0,116,4,0,102,2,
-- 0,125,1,0,116,5,0,116,6,0,102,2,0,125,2,0,
-- 124,0,0,124,1,0,124,2,0,103,3,0,83,41,1,122,
-- 95,82,101,116,117,114,110,115,32,97,32,108,105,115,116,32,
-- 111,102,32,102,105,108,101,45,98,97,115,101,100,32,109,111,
-- 100,117,108,101,32,108,111,97,100,101,114,115,46,10,10,32,
-- 32,32,32,69,97,99,104,32,105,116,101,109,32,105,115,32,
-- 97,32,116,117,112,108,101,32,40,108,111,97,100,101,114,44,
-- 32,115,117,102,102,105,120,101,115,41,46,10,32,32,32,32,
-- 41,7,114,225,0,0,0,114,147,0,0,0,218,18,101,120,
-- 116,101,110,115,105,111,110,95,115,117,102,102,105,120,101,115,
-- 114,219,0,0,0,114,86,0,0,0,114,224,0,0,0,114,
-- 76,0,0,0,41,3,90,10,101,120,116,101,110,115,105,111,
-- 110,115,90,6,115,111,117,114,99,101,90,8,98,121,116,101,
-- 99,111,100,101,114,4,0,0,0,114,4,0,0,0,114,6,
-- 0,0,0,114,163,0,0,0,66,5,0,0,115,8,0,0,
-- 0,0,5,18,1,12,1,12,1,114,163,0,0,0,99,1,
-- 0,0,0,0,0,0,0,12,0,0,0,12,0,0,0,67,
-- 0,0,0,115,70,2,0,0,124,0,0,97,0,0,116,0,
-- 0,106,1,0,97,1,0,116,0,0,106,2,0,97,2,0,
-- 116,1,0,106,3,0,116,4,0,25,125,1,0,120,76,0,
-- 100,26,0,68,93,68,0,125,2,0,124,2,0,116,1,0,
-- 106,3,0,107,7,0,114,83,0,116,0,0,106,5,0,124,
-- 2,0,131,1,0,125,3,0,110,13,0,116,1,0,106,3,
-- 0,124,2,0,25,125,3,0,116,6,0,124,1,0,124,2,
-- 0,124,3,0,131,3,0,1,113,44,0,87,100,5,0,100,
-- 6,0,103,1,0,102,2,0,100,7,0,100,8,0,100,6,
-- 0,103,2,0,102,2,0,102,2,0,125,4,0,120,149,0,
-- 124,4,0,68,93,129,0,92,2,0,125,5,0,125,6,0,
-- 116,7,0,100,9,0,100,10,0,132,0,0,124,6,0,68,
-- 131,1,0,131,1,0,115,199,0,116,8,0,130,1,0,124,
-- 6,0,100,11,0,25,125,7,0,124,5,0,116,1,0,106,
-- 3,0,107,6,0,114,241,0,116,1,0,106,3,0,124,5,
-- 0,25,125,8,0,80,113,156,0,121,20,0,116,0,0,106,
-- 5,0,124,5,0,131,1,0,125,8,0,80,87,113,156,0,
-- 4,116,9,0,107,10,0,114,28,1,1,1,1,119,156,0,
-- 89,113,156,0,88,113,156,0,87,116,9,0,100,12,0,131,
-- 1,0,130,1,0,116,6,0,124,1,0,100,13,0,124,8,
-- 0,131,3,0,1,116,6,0,124,1,0,100,14,0,124,7,
-- 0,131,3,0,1,116,6,0,124,1,0,100,15,0,100,16,
-- 0,106,10,0,124,6,0,131,1,0,131,3,0,1,121,19,
-- 0,116,0,0,106,5,0,100,17,0,131,1,0,125,9,0,
-- 87,110,24,0,4,116,9,0,107,10,0,114,147,1,1,1,
-- 1,100,18,0,125,9,0,89,110,1,0,88,116,6,0,124,
-- 1,0,100,17,0,124,9,0,131,3,0,1,116,0,0,106,
-- 5,0,100,19,0,131,1,0,125,10,0,116,6,0,124,1,
-- 0,100,19,0,124,10,0,131,3,0,1,124,5,0,100,7,
-- 0,107,2,0,114,238,1,116,0,0,106,5,0,100,20,0,
-- 131,1,0,125,11,0,116,6,0,124,1,0,100,21,0,124,
-- 11,0,131,3,0,1,116,6,0,124,1,0,100,22,0,116,
-- 11,0,131,0,0,131,3,0,1,116,12,0,106,13,0,116,
-- 2,0,106,14,0,131,0,0,131,1,0,1,124,5,0,100,
-- 7,0,107,2,0,114,66,2,116,15,0,106,16,0,100,23,
-- 0,131,1,0,1,100,24,0,116,12,0,107,6,0,114,66,
-- 2,100,25,0,116,17,0,95,18,0,100,18,0,83,41,27,
-- 122,205,83,101,116,117,112,32,116,104,101,32,112,97,116,104,
-- 45,98,97,115,101,100,32,105,109,112,111,114,116,101,114,115,
-- 32,102,111,114,32,105,109,112,111,114,116,108,105,98,32,98,
-- 121,32,105,109,112,111,114,116,105,110,103,32,110,101,101,100,
-- 101,100,10,32,32,32,32,98,117,105,108,116,45,105,110,32,
-- 109,111,100,117,108,101,115,32,97,110,100,32,105,110,106,101,
-- 99,116,105,110,103,32,116,104,101,109,32,105,110,116,111,32,
-- 116,104,101,32,103,108,111,98,97,108,32,110,97,109,101,115,
-- 112,97,99,101,46,10,10,32,32,32,32,79,116,104,101,114,
-- 32,99,111,109,112,111,110,101,110,116,115,32,97,114,101,32,
-- 101,120,116,114,97,99,116,101,100,32,102,114,111,109,32,116,
-- 104,101,32,99,111,114,101,32,98,111,111,116,115,116,114,97,
-- 112,32,109,111,100,117,108,101,46,10,10,32,32,32,32,114,
-- 51,0,0,0,114,62,0,0,0,218,8,98,117,105,108,116,
-- 105,110,115,114,144,0,0,0,90,5,112,111,115,105,120,250,
-- 1,47,218,2,110,116,250,1,92,99,1,0,0,0,0,0,
-- 0,0,2,0,0,0,3,0,0,0,115,0,0,0,115,33,
-- 0,0,0,124,0,0,93,23,0,125,1,0,116,0,0,124,
-- 1,0,131,1,0,100,0,0,107,2,0,86,1,113,3,0,
-- 100,1,0,83,41,2,114,31,0,0,0,78,41,1,114,33,
-- 0,0,0,41,2,114,24,0,0,0,114,79,0,0,0,114,
-- 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,228,
-- 0,0,0,102,5,0,0,115,2,0,0,0,6,0,122,25,
-- 95,115,101,116,117,112,46,60,108,111,99,97,108,115,62,46,
-- 60,103,101,110,101,120,112,114,62,114,61,0,0,0,122,30,
-- 105,109,112,111,114,116,108,105,98,32,114,101,113,117,105,114,
-- 101,115,32,112,111,115,105,120,32,111,114,32,110,116,114,3,
-- 0,0,0,114,27,0,0,0,114,23,0,0,0,114,32,0,
-- 0,0,90,7,95,116,104,114,101,97,100,78,90,8,95,119,
-- 101,97,107,114,101,102,90,6,119,105,110,114,101,103,114,171,
-- 0,0,0,114,7,0,0,0,122,4,46,112,121,119,122,6,
-- 95,100,46,112,121,100,84,41,4,114,51,0,0,0,114,62,
-- 0,0,0,114,27,1,0,0,114,144,0,0,0,41,19,114,
-- 123,0,0,0,114,8,0,0,0,114,147,0,0,0,114,240,
-- 0,0,0,114,114,0,0,0,90,18,95,98,117,105,108,116,
-- 105,110,95,102,114,111,109,95,110,97,109,101,114,118,0,0,
-- 0,218,3,97,108,108,218,14,65,115,115,101,114,116,105,111,
-- 110,69,114,114,111,114,114,109,0,0,0,114,28,0,0,0,
-- 114,13,0,0,0,114,230,0,0,0,114,151,0,0,0,114,
-- 26,1,0,0,114,86,0,0,0,114,165,0,0,0,114,170,
-- 0,0,0,114,174,0,0,0,41,12,218,17,95,98,111,111,
-- 116,115,116,114,97,112,95,109,111,100,117,108,101,90,11,115,
-- 101,108,102,95,109,111,100,117,108,101,90,12,98,117,105,108,
-- 116,105,110,95,110,97,109,101,90,14,98,117,105,108,116,105,
-- 110,95,109,111,100,117,108,101,90,10,111,115,95,100,101,116,
-- 97,105,108,115,90,10,98,117,105,108,116,105,110,95,111,115,
-- 114,23,0,0,0,114,27,0,0,0,90,9,111,115,95,109,
-- 111,100,117,108,101,90,13,116,104,114,101,97,100,95,109,111,
-- 100,117,108,101,90,14,119,101,97,107,114,101,102,95,109,111,
-- 100,117,108,101,90,13,119,105,110,114,101,103,95,109,111,100,
-- 117,108,101,114,4,0,0,0,114,4,0,0,0,114,6,0,
-- 0,0,218,6,95,115,101,116,117,112,77,5,0,0,115,82,
-- 0,0,0,0,8,6,1,9,1,9,3,13,1,13,1,15,
-- 1,18,2,13,1,20,3,33,1,19,2,31,1,10,1,15,
-- 1,13,1,4,2,3,1,15,1,5,1,13,1,12,2,12,
-- 1,16,1,16,1,25,3,3,1,19,1,13,2,11,1,16,
-- 3,15,1,16,3,12,1,15,1,16,3,19,1,19,1,12,
-- 1,13,1,12,1,114,34,1,0,0,99,1,0,0,0,0,
-- 0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,
-- 116,0,0,0,116,0,0,124,0,0,131,1,0,1,116,1,
-- 0,131,0,0,125,1,0,116,2,0,106,3,0,106,4,0,
-- 116,5,0,106,6,0,124,1,0,140,0,0,103,1,0,131,
-- 1,0,1,116,7,0,106,8,0,100,1,0,107,2,0,114,
-- 78,0,116,2,0,106,9,0,106,10,0,116,11,0,131,1,
-- 0,1,116,2,0,106,9,0,106,10,0,116,12,0,131,1,
-- 0,1,116,5,0,124,0,0,95,5,0,116,13,0,124,0,
-- 0,95,13,0,100,2,0,83,41,3,122,41,73,110,115,116,
-- 97,108,108,32,116,104,101,32,112,97,116,104,45,98,97,115,
-- 101,100,32,105,109,112,111,114,116,32,99,111,109,112,111,110,
-- 101,110,116,115,46,114,29,1,0,0,78,41,14,114,34,1,
-- 0,0,114,163,0,0,0,114,8,0,0,0,114,255,0,0,
-- 0,114,151,0,0,0,114,7,1,0,0,114,20,1,0,0,
-- 114,3,0,0,0,114,114,0,0,0,218,9,109,101,116,97,
-- 95,112,97,116,104,114,165,0,0,0,114,170,0,0,0,114,
-- 250,0,0,0,114,219,0,0,0,41,2,114,33,1,0,0,
-- 90,17,115,117,112,112,111,114,116,101,100,95,108,111,97,100,
-- 101,114,115,114,4,0,0,0,114,4,0,0,0,114,6,0,
-- 0,0,218,8,95,105,110,115,116,97,108,108,145,5,0,0,
-- 115,16,0,0,0,0,2,10,1,9,1,28,1,15,1,16,
-- 1,16,4,9,1,114,36,1,0,0,41,1,114,0,0,0,
-- 0,41,2,114,1,0,0,0,114,2,0,0,0,41,59,114,
-- 116,0,0,0,114,12,0,0,0,90,37,95,67,65,83,69,
-- 95,73,78,83,69,78,83,73,84,73,86,69,95,80,76,65,
-- 84,70,79,82,77,83,95,66,89,84,69,83,95,75,69,89,
-- 114,11,0,0,0,114,13,0,0,0,114,19,0,0,0,114,
-- 21,0,0,0,114,30,0,0,0,114,40,0,0,0,114,41,
-- 0,0,0,114,45,0,0,0,114,46,0,0,0,114,48,0,
-- 0,0,114,57,0,0,0,218,4,116,121,112,101,218,8,95,
-- 95,99,111,100,101,95,95,114,146,0,0,0,114,17,0,0,
-- 0,114,137,0,0,0,114,16,0,0,0,114,20,0,0,0,
-- 90,17,95,82,65,87,95,77,65,71,73,67,95,78,85,77,
-- 66,69,82,114,75,0,0,0,114,74,0,0,0,114,86,0,
-- 0,0,114,76,0,0,0,90,23,68,69,66,85,71,95,66,
-- 89,84,69,67,79,68,69,95,83,85,70,70,73,88,69,83,
-- 90,27,79,80,84,73,77,73,90,69,68,95,66,89,84,69,
-- 67,79,68,69,95,83,85,70,70,73,88,69,83,114,81,0,
-- 0,0,114,87,0,0,0,114,93,0,0,0,114,97,0,0,
-- 0,114,99,0,0,0,114,107,0,0,0,114,125,0,0,0,
-- 114,132,0,0,0,114,143,0,0,0,114,149,0,0,0,114,
-- 152,0,0,0,114,157,0,0,0,218,6,111,98,106,101,99,
-- 116,114,164,0,0,0,114,169,0,0,0,114,170,0,0,0,
-- 114,185,0,0,0,114,195,0,0,0,114,211,0,0,0,114,
-- 219,0,0,0,114,224,0,0,0,114,230,0,0,0,114,225,
-- 0,0,0,114,231,0,0,0,114,248,0,0,0,114,250,0,
-- 0,0,114,7,1,0,0,114,25,1,0,0,114,163,0,0,
-- 0,114,34,1,0,0,114,36,1,0,0,114,4,0,0,0,
-- 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,
-- 8,60,109,111,100,117,108,101,62,8,0,0,0,115,106,0,
-- 0,0,6,16,6,1,6,1,3,1,7,3,12,17,12,5,
-- 12,5,12,6,12,12,12,10,12,9,12,5,12,7,15,22,
-- 15,114,22,1,18,2,6,1,6,2,9,2,9,2,10,2,
-- 21,44,12,33,12,19,12,12,12,12,18,8,12,28,12,17,
-- 21,55,21,12,18,10,12,14,9,3,12,1,15,65,19,64,
-- 19,28,22,110,19,41,25,43,25,16,6,3,25,53,19,57,
-- 19,41,19,134,19,146,15,23,12,11,12,68,
-+ 218,8,60,109,111,100,117,108,101,62,8,0,0,0,115,114,
-+ 0,0,0,6,16,6,1,6,1,3,1,7,3,12,17,12,
-+ 5,12,5,12,6,12,12,12,10,12,9,12,5,12,7,15,
-+ 22,15,114,22,1,18,19,12,1,6,1,12,1,22,2,6,
-+ 1,6,2,9,2,9,2,10,2,21,44,12,33,12,19,12,
-+ 12,12,12,18,8,12,28,12,17,21,57,21,12,18,10,12,
-+ 14,9,3,12,1,15,65,19,64,19,28,22,110,19,41,25,
-+ 43,25,16,6,3,25,53,19,57,19,41,19,134,19,146,15,
-+ 23,12,11,12,68,
- };
-diff --git a/Python/pythonrun.c b/Python/pythonrun.c
-index 90cb2de..dd41a3a 100644
---- a/Python/pythonrun.c
-+++ b/Python/pythonrun.c
-@@ -259,6 +259,21 @@ PyRun_InteractiveOneFlags(FILE *fp, const char *filename_str, PyCompilerFlags *f
- }
-
-
-+/* Issue #29537: handle issue27286 bytecode incompatibility
-+ * See Lib/importlib/_bootstrap_external.py for general discussion
-+ */
-+extern PY_UINT32_T _Py_BACKCOMPAT_HALF_MAGIC;
-+static int
-+_check_half_magic(unsigned int read_value, unsigned int halfmagic) {
-+ return (read_value == halfmagic || read_value == _Py_BACKCOMPAT_HALF_MAGIC);
-+}
-+
-+extern PY_UINT32_T _Py_BACKCOMPAT_MAGIC_NUMBER;
-+static int
-+_check_magic(long read_value, long magic) {
-+ return (read_value == magic || read_value == _Py_BACKCOMPAT_MAGIC_NUMBER);
-+}
-+
- /* Check whether a file maybe a pyc file: Look at the extension,
- the file type, and, if we may close it, at the first few bytes. */
-
-@@ -290,7 +305,7 @@ maybe_pyc_file(FILE *fp, const char* filename, const char* ext, int closeit)
- int ispyc = 0;
- if (ftell(fp) == 0) {
- if (fread(buf, 1, 2, fp) == 2 &&
-- ((unsigned int)buf[1]<<8 | buf[0]) == halfmagic)
-+ _check_half_magic(((unsigned int)buf[1]<<8 | buf[0]), halfmagic))
- ispyc = 1;
- rewind(fp);
- }
-@@ -988,7 +1003,7 @@ run_pyc_file(FILE *fp, const char *filename, PyObject *globals,
- long PyImport_GetMagicNumber(void);
-
- magic = PyMarshal_ReadLongFromFile(fp);
-- if (magic != PyImport_GetMagicNumber()) {
-+ if (!_check_magic(magic, PyImport_GetMagicNumber())) {
- if (!PyErr_Occurred())
- PyErr_SetString(PyExc_RuntimeError,
- "Bad magic number in .pyc file");
---
-2.9.3
-
diff --git a/00264-fix-test-failing-on-aarch64.patch b/00264-fix-test-failing-on-aarch64.patch
new file mode 100644
index 0000000..a881a1c
--- /dev/null
+++ b/00264-fix-test-failing-on-aarch64.patch
@@ -0,0 +1,118 @@
+diff --git a/Lib/ctypes/test/test_as_parameter.py b/Lib/ctypes/test/test_as_parameter.py
+index 2a3484bec01..a2640575a07 100644
+--- a/Lib/ctypes/test/test_as_parameter.py
++++ b/Lib/ctypes/test/test_as_parameter.py
+@@ -169,6 +169,10 @@ class S2H(Structure):
+ s2h = dll.ret_2h_func(self.wrap(inp))
+ self.assertEqual((s2h.x, s2h.y), (99*2, 88*3))
+
++ # Test also that the original struct was unmodified (i.e. was passed by
++ # value)
++ self.assertEqual((inp.x, inp.y), (99, 88))
++
+ def test_struct_return_8H(self):
+ class S8I(Structure):
+ _fields_ = [("a", c_int),
+diff --git a/Lib/ctypes/test/test_structures.py b/Lib/ctypes/test/test_structures.py
+index 2e778fb1b43..d90c71144c9 100644
+--- a/Lib/ctypes/test/test_structures.py
++++ b/Lib/ctypes/test/test_structures.py
+@@ -417,6 +417,28 @@ class X(Structure):
+ self.assertEqual(s.second, 0xcafebabe)
+ self.assertEqual(s.third, 0x0bad1dea)
+
++ def test_pass_by_value_in_register(self):
++ class X(Structure):
++ _fields_ = [
++ ('first', c_uint),
++ ('second', c_uint)
++ ]
++
++ s = X()
++ s.first = 0xdeadbeef
++ s.second = 0xcafebabe
++ dll = CDLL(_ctypes_test.__file__)
++ func = dll._testfunc_reg_struct_update_value
++ func.argtypes = (X,)
++ func.restype = None
++ func(s)
++ self.assertEqual(s.first, 0xdeadbeef)
++ self.assertEqual(s.second, 0xcafebabe)
++ got = X.in_dll(dll, "last_tfrsuv_arg")
++ self.assertEqual(s.first, got.first)
++ self.assertEqual(s.second, got.second)
++
++
+ class PointerMemberTestCase(unittest.TestCase):
+
+ def test(self):
+diff --git a/Modules/_ctypes/_ctypes_test.c b/Modules/_ctypes/_ctypes_test.c
+index fe0015c8013..2255e573393 100644
+--- a/Modules/_ctypes/_ctypes_test.c
++++ b/Modules/_ctypes/_ctypes_test.c
+@@ -57,6 +57,24 @@ _testfunc_large_struct_update_value(Test in)
+ ((volatile Test *)&in)->third = 0x0badf00d;
+ }
+
++typedef struct {
++ unsigned int first;
++ unsigned int second;
++} TestReg;
++
++
++EXPORT(TestReg) last_tfrsuv_arg;
++
++
++EXPORT(void)
++_testfunc_reg_struct_update_value(TestReg in)
++{
++ last_tfrsuv_arg = in;
++ ((volatile TestReg *)&in)->first = 0x0badf00d;
++ ((volatile TestReg *)&in)->second = 0x0badf00d;
++}
++
++
+ EXPORT(void)testfunc_array(int values[4])
+ {
+ printf("testfunc_array %d %d %d %d\n",
+diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
+index 0b6faf96c68..5439b939dc4 100644
+--- a/Modules/_ctypes/callproc.c
++++ b/Modules/_ctypes/callproc.c
+@@ -1039,6 +1039,13 @@ GetComError(HRESULT errcode, GUID *riid, IUnknown *pIunk)
+ }
+ #endif
+
++#if (defined(__x86_64__) && (defined(__MINGW64__) || defined(__CYGWIN__))) || \
++ defined(__aarch64__)
++#define CTYPES_PASS_BY_REF_HACK
++#define POW2(x) (((x & ~(x - 1)) == x) ? x : 0)
++#define IS_PASS_BY_REF(x) (x > 8 || !POW2(x))
++#endif
++
+ /*
+ * Requirements, must be ensured by the caller:
+ * - argtuple is tuple of arguments
+@@ -1136,8 +1143,20 @@ PyObject *_ctypes_callproc(PPROC pProc,
+ }
+ for (i = 0; i < argcount; ++i) {
+ atypes[i] = args[i].ffi_type;
+- if (atypes[i]->type == FFI_TYPE_STRUCT
+- )
++#ifdef CTYPES_PASS_BY_REF_HACK
++ size_t size = atypes[i]->size;
++ if (IS_PASS_BY_REF(size)) {
++ void *tmp = alloca(size);
++ if (atypes[i]->type == FFI_TYPE_STRUCT)
++ memcpy(tmp, args[i].value.p, size);
++ else
++ memcpy(tmp, (void*)&args[i].value, size);
++
++ avalues[i] = tmp;
++ }
++ else
++#endif
++ if (atypes[i]->type == FFI_TYPE_STRUCT)
+ avalues[i] = (void *)args[i].value.p;
+ else
+ avalues[i] = (void *)&args[i].value;
diff --git a/00267-install-pip-in-a-venv-with-system-site-packages.patch b/00267-install-pip-in-a-venv-with-system-site-packages.patch
deleted file mode 100644
index 60039f8..0000000
--- a/00267-install-pip-in-a-venv-with-system-site-packages.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py
-index 3999d1f..c1e6566 100644
---- a/Lib/test/test_venv.py
-+++ b/Lib/test/test_venv.py
-@@ -328,13 +328,7 @@ def test_devnull_exists_and_is_empty(self):
- with open(os.devnull, "rb") as f:
- self.assertEqual(f.read(), b"")
-
-- # Requesting pip fails without SSL (http://bugs.python.org/issue19744)
-- @unittest.skipIf(ssl is None, ensurepip._MISSING_SSL_MESSAGE)
-- @unittest.skipUnless(threading, 'some dependencies of pip import threading'
-- ' module unconditionally')
-- # Issue #26610: pip/pep425tags.py requires ctypes
-- @unittest.skipUnless(ctypes, 'pip requires ctypes')
-- def test_with_pip(self):
-+ def do_test_with_pip(self, system_site_packages):
- rmtree(self.env_dir)
- with EnvironmentVarGuard() as envvars:
- # pip's cross-version compatibility may trigger deprecation
-@@ -368,6 +362,7 @@ def test_with_pip(self):
- # config in place to ensure we ignore it
- try:
- self.run_with_capture(venv.create, self.env_dir,
-+ system_site_packages=system_site_packages,
- with_pip=True)
- except subprocess.CalledProcessError as exc:
- # The output this produces can be a little hard to read,
-@@ -417,9 +412,21 @@ def test_with_pip(self):
- out = out.decode("latin-1") # Force to text, prevent decoding errors
- self.assertIn("Successfully uninstalled pip", out)
- self.assertIn("Successfully uninstalled setuptools", out)
-- # Check pip is now gone from the virtual environment
-- self.assert_pip_not_installed()
-+ # Check pip is now gone from the virtual environment. This only
-+ # applies in the system_site_packages=False case, because in the
-+ # other case, pip may still be available in the system site-packages
-+ if not system_site_packages:
-+ self.assert_pip_not_installed()
-
-+ # Requesting pip fails without SSL (http://bugs.python.org/issue19744)
-+ @unittest.skipIf(ssl is None, ensurepip._MISSING_SSL_MESSAGE)
-+ @unittest.skipUnless(threading, 'some dependencies of pip import threading'
-+ ' module unconditionally')
-+ # Issue #26610: pip/pep425tags.py requires ctypes
-+ @unittest.skipUnless(ctypes, 'pip requires ctypes')
-+ def test_with_pip(self):
-+ self.do_test_with_pip(False)
-+ self.do_test_with_pip(True)
-
- if __name__ == "__main__":
- unittest.main()
-diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py
-index 74245ab..fa03262 100644
---- a/Lib/venv/__init__.py
-+++ b/Lib/venv/__init__.py
-@@ -77,6 +77,10 @@ def create(self, env_dir):
- """
- env_dir = os.path.abspath(env_dir)
- context = self.ensure_directories(env_dir)
-+ # See issue 24875. We need system_site_packages to be False
-+ # until after pip is installed.
-+ true_system_site_packages = self.system_site_packages
-+ self.system_site_packages = False
- self.create_configuration(context)
- self.setup_python(context)
- if self.with_pip:
-@@ -84,6 +88,11 @@ def create(self, env_dir):
- if not self.upgrade:
- self.setup_scripts(context)
- self.post_setup(context)
-+ if true_system_site_packages:
-+ # We had set it to False before, now
-+ # restore it and rewrite the configuration
-+ self.system_site_packages = True
-+ self.create_configuration(context)
-
- def clear_directory(self, path):
- for fn in os.listdir(path):
diff --git a/00269-fix-multiple-compilations-issue-with-pgo-builds.patch b/00269-fix-multiple-compilations-issue-with-pgo-builds.patch
deleted file mode 100644
index a911feb..0000000
--- a/00269-fix-multiple-compilations-issue-with-pgo-builds.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-diff --git a/Makefile.pre.in b/Makefile.pre.in
-index 0e1d0af..42ab191 100644
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -989,7 +989,7 @@ TESTTIMEOUT= 1200
-
- # Run a basic set of regression tests.
- # This excludes some tests that are particularly resource-intensive.
--test: all platform
-+test: @DEF_MAKE_RULE@ platform
- $(TESTRUNNER) $(TESTOPTS)
-
- # Run the full test suite twice - once without .pyc files, and once with.
-@@ -999,7 +999,7 @@ test: all platform
- # the bytecode read from a .pyc file had the bug, sometimes the directly
- # generated bytecode. This is sometimes a very shy bug needing a lot of
- # sample data.
--testall: all platform
-+testall: @DEF_MAKE_RULE@ platform
- -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
- $(TESTPYTHON) -E $(srcdir)/Lib/compileall.py
- -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
-@@ -1008,7 +1008,7 @@ testall: all platform
-
- # Run the test suite for both architectures in a Universal build on OSX.
- # Must be run on an Intel box.
--testuniversal: all platform
-+testuniversal: @DEF_MAKE_RULE@ platform
- if [ `arch` != 'i386' ];then \
- echo "This can only be used on OSX/i386" ;\
- exit 1 ;\
-@@ -1031,7 +1031,7 @@ QUICKTESTOPTS= $(TESTOPTS) -x test_subprocess test_io test_lib2to3 \
- test_multiprocessing_forkserver \
- test_mailbox test_socket test_poll \
- test_select test_zipfile test_concurrent_futures
--quicktest: all platform
-+quicktest: @DEF_MAKE_RULE@ platform
- $(TESTRUNNER) $(QUICKTESTOPTS)
-
-
-@@ -1368,7 +1368,7 @@ LIBPL= $(LIBDEST)/config-$(LDVERSION)-$(MULTIARCH)
- # pkgconfig directory
- LIBPC= $(LIBDIR)/pkgconfig
-
--libainstall: all python-config
-+libainstall: @DEF_MAKE_RULE@ python-config
- @for i in $(LIBDIR) $(LIBPL) $(LIBPC); \
- do \
- if test ! -d $(DESTDIR)$$i; then \
-@@ -1616,7 +1616,7 @@ distclean: clobber
- -exec rm -f {} ';'
-
- # Check for smelly exported symbols (not starting with Py/_Py)
--smelly: all
-+smelly: @DEF_MAKE_RULE@
- nm -p $(LIBRARY) | \
- sed -n "/ [TDB] /s/.* //p" | grep -v "^_*Py" | sort -u; \
-
-@@ -1653,7 +1653,7 @@ funny:
- -o -print
-
- # Perform some verification checks on any modified files.
--patchcheck: all
-+patchcheck: @DEF_MAKE_RULE@
- $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/patchcheck.py
-
- # Dependencies
diff --git a/python35.spec b/python35.spec
index d51bd0c..ea43a97 100644
--- a/python35.spec
+++ b/python35.spec
@@ -97,8 +97,8 @@
# ==================
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
-Version: %{pybasever}.3
-Release: 5%{?dist}
+Version: %{pybasever}.4
+Release: 1%{?dist}
License: Python
Group: Development/Languages
@@ -366,32 +366,13 @@ Patch206: 00206-remove-hf-from-arm-triplet.patch
# Fedora needs the default mips64-linux-gnu
Patch243: 00243-fix-mips64-triplet.patch
-# 00250 #
-# After glibc-2.24.90, Python 3 failed to start on EL7 kernel
-# rhbz#1410175: https://bugzilla.redhat.com/show_bug.cgi?id=1410175
-# http://bugs.python.org/issue29157
-Patch250: 00250-getentropy.patch
-
-# 00259 #
-# Tolerate legacy invalid bytecode
-# This patch restores the ability to import legacy bytecode generated
-# by 3.5.0, 3.5.1 or 3.5.2, and modifies the eval loop to
-# avoid any harmful consequences from the potentially malformed legacy
-# bytecode.
-# Original import patch by Petr Viktorin, eval loop patch by Serhiy Storchaka,
-# and tests and integration by Nick Coghlan.
-Patch259: 00259-tolerate-legacy-invalid-bytecode.patch
-
-# 00267 #
-# Make pip installable inside a new venv when using the --system-site-packages flag
-# FIXED UPSTREAM: https://bugs.python.org/issue24875
-Patch267: 00267-install-pip-in-a-venv-with-system-site-packages.patch
-
-# 00269 #
-# Fix python's recompilation with common build commands when using
-# profile guided optimizations.
-# Fixed upstream: http://bugs.python.org/issue29243
-Patch269: 00269-fix-multiple-compilations-issue-with-pgo-builds.patch
+# 00264 #
+# test_pass_by_value was added in Python 3.5.4 and on aarch64
+# it is catching an error that was there, but wasn't tested before.
+# Since the Python 3.5 branch is on security bug fix mode only
+# we backport the fix from the master branch.
+# Fixed upstream: http://bugs.python.org/issue29804
+Patch264: 00264-fix-test-failing-on-aarch64.patch
# 00270 #
# Fix test_alpn_protocols from test_ssl as openssl > 1.1.0f
@@ -399,6 +380,12 @@ Patch269: 00269-fix-multiple-compilations-issue-with-pgo-builds.patch
# Fixed upstream: http://bugs.python.org/issue30714
Patch270: 00270-fix-ssl-alpn-hook-test.patch
+# 00273 #
+# Skip test_float_with_comma, which fails in Koji with UnicodeDecodeError
+# See https://bugzilla.redhat.com/show_bug.cgi?id=1484497
+# Reported upstream: https://bugs.python.org/issue31900
+Patch273: 00273-skip-float-test.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -510,11 +497,9 @@ rm -r Modules/zlib || exit 1
%patch205 -p1
%patch206 -p1
%patch243 -p1
-%patch250 -p1
-%patch259 -p1
-%patch267 -p1
-%patch269 -p1
+%patch264 -p1
%patch270 -p1
+%patch273 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@@ -1049,6 +1034,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Mon Oct 30 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.4-1
+- Rebased to version 3.5.4
+
* Mon Aug 14 2017 David "Sanqui" Labsk <dlabsky(a)redhat.com> - 3.5.3-5
- Drop unused db4-devel dependency
diff --git a/sources b/sources
index 0847be0..c5215a6 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (Python-3.5.3.tar.xz) = bbcc20e315c63dbc8901d7e7bfa29d4dbdad9335720757d8d679730319fd1d9fcfdb55cf62d620c9b052134170f162c28d653a8af60923185b8932524d827864
+SHA512 (Python-3.5.4.tar.xz) = dbbe2740ee1cce5404b7b6436a9b3887e15f415a1006efa22014ec7e5b1e48c43eed0ff98f6f5b365c527b8d2525be4ce72bbe404ce71c0835529fcd6f0267ff
commit f2a8e821f626bf6f3aff51bb43484b57d82fb6a8
Author: Sanqui <dlabsky(a)redhat.com>
Date: Tue Aug 15 13:18:55 2017 +0200
Drop unused db4-devel dependency
diff --git a/python35.spec b/python35.spec
index b116bd7..d51bd0c 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.3
-Release: 4%{?dist}
+Release: 5%{?dist}
License: Python
Group: Development/Languages
@@ -113,7 +113,6 @@ BuildRequires: autoconf
BuildRequires: bluez-libs-devel
BuildRequires: bzip2
BuildRequires: bzip2-devel
-BuildRequires: db4-devel >= 4.7
# expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME. We use
# it (in pyexpat) in order to enable the fix in Python-3.2.3 for CVE-2012-0876:
@@ -1050,6 +1049,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Mon Aug 14 2017 David "Sanqui" Labsk <dlabsky(a)redhat.com> - 3.5.3-5
+- Drop unused db4-devel dependency
+
* Thu Aug 03 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
commit 9d5d4426cb32556e0f31348f7a6523ac05a11720
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Mon Aug 7 19:31:54 2017 +0200
Exclude files from /usr/lib/debug (#1476593)
diff --git a/python35.spec b/python35.spec
index 807db93..b116bd7 100644
--- a/python35.spec
+++ b/python35.spec
@@ -1024,6 +1024,10 @@ CheckPython optimized
%{_bindir}/2to3-%{pybasever}
%{_bindir}/idle%{pybasever}
+# https://bugzilla.redhat.com/show_bug.cgi?id=1476593
+%exclude /usr/lib/debug%{_libdir}/__pycache__/libpython%{pybasever}m.so.1.0.debug-gdb.cpython-%{pyshortver}.*py*
+%exclude /usr/lib/debug%{_libdir}/libpython%{pybasever}m.so.1.0.debug-gdb.py
+
%if 0%{?with_debug_build}
%{_bindir}/python%{LDVERSION_debug}
commit c88a93bc3fd0f8e6848c2adc152ad9ae07e2d396
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Aug 3 07:06:55 2017 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
diff --git a/python35.spec b/python35.spec
index be1a1eb..807db93 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.3
-Release: 3%{?dist}
+Release: 4%{?dist}
License: Python
Group: Development/Languages
@@ -1046,6 +1046,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Aug 03 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.3-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
* Thu Jul 27 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
commit 41c1c2ddd85018967bce67713debdd721cdfa9f1
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jul 27 12:29:21 2017 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
diff --git a/python35.spec b/python35.spec
index 8e7a589..be1a1eb 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.3
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
Group: Development/Languages
@@ -1046,6 +1046,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Jul 27 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
* Mon Jun 26 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.3-2
- Fix test_alpn_protocols from test_ssl
commit f83409d8b69e5cdb101c2b63f7acdfaf150dd156
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Mon Jun 26 11:55:09 2017 +0200
Fix test_alpn_protocols from test_ssl
diff --git a/00270-fix-ssl-alpn-hook-test.patch b/00270-fix-ssl-alpn-hook-test.patch
new file mode 100644
index 0000000..97b433e
--- /dev/null
+++ b/00270-fix-ssl-alpn-hook-test.patch
@@ -0,0 +1,16 @@
+diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
+index d203cdd..c128dae 100644
+--- a/Lib/test/test_ssl.py
++++ b/Lib/test/test_ssl.py
+@@ -3256,8 +3256,9 @@ if _have_threads:
+ except ssl.SSLError as e:
+ stats = e
+
+- if expected is None and IS_OPENSSL_1_1:
+- # OpenSSL 1.1.0 raises handshake error
++ if (expected is None and IS_OPENSSL_1_1
++ and ssl.OPENSSL_VERSION_INFO < (1, 1, 0, 6)):
++ # OpenSSL 1.1.0 to 1.1.0e raises handshake error
+ self.assertIsInstance(stats, ssl.SSLError)
+ else:
+ msg = "failed trying %s (s) and %s (c).\n" \
diff --git a/python35.spec b/python35.spec
index 246cf1d..8e7a589 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.3
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
Group: Development/Languages
@@ -394,6 +394,12 @@ Patch267: 00267-install-pip-in-a-venv-with-system-site-packages.patch
# Fixed upstream: http://bugs.python.org/issue29243
Patch269: 00269-fix-multiple-compilations-issue-with-pgo-builds.patch
+# 00270 #
+# Fix test_alpn_protocols from test_ssl as openssl > 1.1.0f
+# changed the behaviour of the ALPN hook.
+# Fixed upstream: http://bugs.python.org/issue30714
+Patch270: 00270-fix-ssl-alpn-hook-test.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -509,6 +515,7 @@ rm -r Modules/zlib || exit 1
%patch259 -p1
%patch267 -p1
%patch269 -p1
+%patch270 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@@ -1039,6 +1046,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Mon Jun 26 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.3-2
+- Fix test_alpn_protocols from test_ssl
+
* Thu May 11 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.3-1
- Rebased to version 3.5.3 from F25
- Enable profile guided optimizations for x86_64 and i686 architectures
commit 9dab8a4c1f71bcafe70f9c5d0965a8c2fd5cf7ae
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Thu May 11 14:57:29 2017 +0200
Rebased to 3.5.3 from F25
Enable profile guided optimizations for x86_64 and i686 architectures
Sync with python3 package from F25:
- Rebased patch250
- Make pip installable in a new venv when using the --system-site-packages flag
- Fix syntax error in %%py_byte_compile macro
- Add patch 259 to work around magic number bump in Python 3.5.3
diff --git a/.gitignore b/.gitignore
index cee6423..feece4d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
Python-3.5.1.tar.xz
/Python-3.5.2.tar.xz
+/Python-3.5.3.tar.xz
diff --git a/00055-systemtap.patch b/00055-systemtap.patch
index 0ab0387..a4f3869 100644
--- a/00055-systemtap.patch
+++ b/00055-systemtap.patch
@@ -1,7 +1,8 @@
-diff -up Python-3.3.0rc2/configure.ac.systemtap Python-3.3.0rc2/configure.ac
---- Python-3.3.0rc2/configure.ac.systemtap 2012-09-09 05:11:14.000000000 -0400
-+++ Python-3.3.0rc2/configure.ac 2012-09-10 09:17:21.114511781 -0400
-@@ -2678,6 +2678,23 @@ if test "$with_valgrind" != no; then
+diff --git a/configure.ac b/configure.ac
+index f50a6c8..b0650a5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -3277,6 +3277,23 @@ if test "$with_valgrind" != no; then
OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT"
fi
@@ -25,10 +26,11 @@ diff -up Python-3.3.0rc2/configure.ac.systemtap Python-3.3.0rc2/configure.ac
# -I${DLINCLDIR} is added to the compile rule for importdl.o
AC_SUBST(DLINCLDIR)
DLINCLDIR=.
-diff -up Python-3.3.0rc2/configure.systemtap Python-3.3.0rc2/configure
---- Python-3.3.0rc2/configure.systemtap 2012-09-09 05:11:14.000000000 -0400
-+++ Python-3.3.0rc2/configure 2012-09-10 09:17:21.116511780 -0400
-@@ -618,6 +618,8 @@ TRUE
+diff --git a/configure b/configure
+index 0906ae0..4acd1cd 100755
+--- a/configure
++++ b/configure
+@@ -642,6 +642,8 @@ TRUE
MACHDEP_OBJS
DYNLOADFILE
DLINCLDIR
@@ -37,7 +39,7 @@ diff -up Python-3.3.0rc2/configure.systemtap Python-3.3.0rc2/configure
THREADOBJ
LDLAST
USE_THREAD_MODULE
-@@ -779,6 +781,7 @@ with_doc_strings
+@@ -835,6 +837,7 @@ with_doc_strings
with_tsc
with_pymalloc
with_valgrind
@@ -45,7 +47,7 @@ diff -up Python-3.3.0rc2/configure.systemtap Python-3.3.0rc2/configure
with_fpectl
with_libm
with_libc
-@@ -1456,6 +1459,7 @@ Optional Packages:
+@@ -1540,6 +1543,7 @@ Optional Packages:
--with(out)-tsc enable/disable timestamp counter profile
--with(out)-pymalloc disable/enable specialized mallocs
--with-valgrind Enable Valgrind support
@@ -53,7 +55,7 @@ diff -up Python-3.3.0rc2/configure.systemtap Python-3.3.0rc2/configure
--with-fpectl enable SIGFPE catching
--with-libm=STRING math library
--with-libc=STRING C library
-@@ -10065,6 +10069,31 @@ fi
+@@ -11181,6 +11185,31 @@ fi
OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT"
fi
@@ -85,18 +87,21 @@ diff -up Python-3.3.0rc2/configure.systemtap Python-3.3.0rc2/configure
# -I${DLINCLDIR} is added to the compile rule for importdl.o
DLINCLDIR=.
-diff -up Python-3.3.0rc2/Doc/howto/index.rst.systemtap Python-3.3.0rc2/Doc/howto/index.rst
---- Python-3.3.0rc2/Doc/howto/index.rst.systemtap 2012-09-09 05:10:51.000000000 -0400
-+++ Python-3.3.0rc2/Doc/howto/index.rst 2012-09-10 09:17:21.117511779 -0400
-@@ -29,4 +29,5 @@ Currently, the HOWTOs are:
+diff --git a/Doc/howto/index.rst b/Doc/howto/index.rst
+index de65950..593341c 100644
+--- a/Doc/howto/index.rst
++++ b/Doc/howto/index.rst
+@@ -28,4 +28,5 @@ Currently, the HOWTOs are:
argparse.rst
ipaddress.rst
clinic.rst
+ instrumentation.rst
-diff -up Python-3.3.0rc2/Doc/howto/instrumentation.rst.systemtap Python-3.3.0rc2/Doc/howto/instrumentation.rst
---- Python-3.3.0rc2/Doc/howto/instrumentation.rst.systemtap 2012-09-10 09:17:21.117511779 -0400
-+++ Python-3.3.0rc2/Doc/howto/instrumentation.rst 2012-09-10 09:17:21.117511779 -0400
+diff --git a/Doc/howto/instrumentation.rst b/Doc/howto/instrumentation.rst
+new file mode 100644
+index 0000000..b6924e1
+--- /dev/null
++++ b/Doc/howto/instrumentation.rst
@@ -0,0 +1,295 @@
+.. _instrumentation:
+
@@ -393,9 +398,11 @@ diff -up Python-3.3.0rc2/Doc/howto/instrumentation.rst.systemtap Python-3.3.0rc2
+ delete fn_calls;
+ }
+
-diff -up Python-3.3.0rc2/Lib/test/test_systemtap.py.systemtap Python-3.3.0rc2/Lib/test/test_systemtap.py
---- Python-3.3.0rc2/Lib/test/test_systemtap.py.systemtap 2012-09-10 09:17:21.117511779 -0400
-+++ Python-3.3.0rc2/Lib/test/test_systemtap.py 2012-09-10 09:17:21.117511779 -0400
+diff --git a/Lib/test/test_systemtap.py b/Lib/test/test_systemtap.py
+new file mode 100644
+index 0000000..a669064
+--- /dev/null
++++ b/Lib/test/test_systemtap.py
@@ -0,0 +1,234 @@
+# Verify that systemtap static probes work
+#
@@ -631,10 +638,11 @@ diff -up Python-3.3.0rc2/Lib/test/test_systemtap.py.systemtap Python-3.3.0rc2/Li
+
+if __name__ == "__main__":
+ test_main()
-diff -up Python-3.3.0rc2/Makefile.pre.in.systemtap Python-3.3.0rc2/Makefile.pre.in
---- Python-3.3.0rc2/Makefile.pre.in.systemtap 2012-09-09 05:11:05.000000000 -0400
-+++ Python-3.3.0rc2/Makefile.pre.in 2012-09-10 09:19:51.195501518 -0400
-@@ -363,6 +363,7 @@ PYTHON_OBJS= \
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index a88b7d5..3585b88 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -415,6 +415,7 @@ PYTHON_OBJS= \
Python/formatter_unicode.o \
Python/fileutils.o \
Python/$(DYNLOADFILE) \
@@ -642,9 +650,9 @@ diff -up Python-3.3.0rc2/Makefile.pre.in.systemtap Python-3.3.0rc2/Makefile.pre.
$(LIBOBJS) \
$(MACHDEP_OBJS) \
$(THREADOBJ)
-@@ -713,7 +714,8 @@ Objects/setobject.o: $(srcdir)/Objects/s
+@@ -868,7 +869,8 @@ Objects/setobject.o: $(srcdir)/Objects/stringlib/eq.h
$(OPCODETARGETS_H): $(OPCODETARGETGEN_FILES)
- $(OPCODETARGETGEN) $(OPCODETARGETS_H)
+ $(PYTHON_FOR_GEN) $(OPCODETARGETGEN) $(OPCODETARGETS_H)
-Python/ceval.o: $(OPCODETARGETS_H) $(srcdir)/Python/ceval_gil.h
+Python/ceval.o: $(OPCODETARGETS_H) $(srcdir)/Python/ceval_gil.h \
@@ -652,9 +660,9 @@ diff -up Python-3.3.0rc2/Makefile.pre.in.systemtap Python-3.3.0rc2/Makefile.pre.
Python/frozen.o: Python/importlib.h Python/importlib_external.h
-@@ -724,6 +726,13 @@ Objects/typeobject.o: $(srcdir)/Objects/
+@@ -876,6 +878,13 @@ Objects/typeobject.o: Objects/typeslots.inc
Objects/typeslots.inc: $(srcdir)/Include/typeslots.h $(srcdir)/Objects/typeslots.py
- $(PYTHON) $(srcdir)/Objects/typeslots.py < $(srcdir)/Include/typeslots.h > Objects/typeslots.inc
+ $(PYTHON_FOR_GEN) $(srcdir)/Objects/typeslots.py < $(srcdir)/Include/typeslots.h Objects/typeslots.inc
+# Only needed with --with-systemtap; not a public header:
+$(srcdir)/Python/pysystemtap.h: $(srcdir)/Python/pysystemtap.d
@@ -666,18 +674,19 @@ diff -up Python-3.3.0rc2/Makefile.pre.in.systemtap Python-3.3.0rc2/Makefile.pre.
############################################################################
# Header files
-@@ -1345,6 +1354,7 @@ clean: pycremoval
+@@ -1597,6 +1606,7 @@ clean: pycremoval
-rm -f Lib/lib2to3/*Grammar*.pickle
-rm -f Programs/_testembed Programs/_freeze_importlib
- -rm -rf build
+ -find build -type f -a ! -name '*.gc??' -exec rm -f {} ';'
+ -rm -f $(srcdir)/Python/pysystemtap.h
profile-removal:
find . -name '*.gc??' -exec rm -f {} ';'
-diff -up Python-3.3.0rc2/pyconfig.h.in.systemtap Python-3.3.0rc2/pyconfig.h.in
---- Python-3.3.0rc2/pyconfig.h.in.systemtap 2012-09-09 05:11:14.000000000 -0400
-+++ Python-3.3.0rc2/pyconfig.h.in 2012-09-10 09:17:21.120511781 -0400
-@@ -1306,6 +1306,9 @@
+diff --git a/pyconfig.h.in b/pyconfig.h.in
+index 39ccf53..9052dbc 100644
+--- a/pyconfig.h.in
++++ b/pyconfig.h.in
+@@ -1375,6 +1375,9 @@
/* Define if you want to compile in Python-specific mallocs */
#undef WITH_PYMALLOC
@@ -687,10 +696,11 @@ diff -up Python-3.3.0rc2/pyconfig.h.in.systemtap Python-3.3.0rc2/pyconfig.h.in
/* Define if you want to compile in rudimentary thread support */
#undef WITH_THREAD
-diff -up Python-3.3.0rc2/Python/ceval.c.systemtap Python-3.3.0rc2/Python/ceval.c
---- Python-3.3.0rc2/Python/ceval.c.systemtap 2012-09-09 05:11:12.000000000 -0400
-+++ Python-3.3.0rc2/Python/ceval.c 2012-09-10 09:17:21.122511781 -0400
-@@ -18,6 +18,8 @@
+diff --git a/Python/ceval.c b/Python/ceval.c
+index 7b40518..0e49de5 100644
+--- a/Python/ceval.c
++++ b/Python/ceval.c
+@@ -20,6 +20,8 @@
#include <ctype.h>
@@ -699,7 +709,7 @@ diff -up Python-3.3.0rc2/Python/ceval.c.systemtap Python-3.3.0rc2/Python/ceval.c
#ifndef WITH_TSC
#define READ_TIMESTAMP(var)
-@@ -1160,6 +1162,10 @@ PyEval_EvalFrameEx(PyFrameObject *f, int
+@@ -1160,6 +1162,10 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
}
}
@@ -710,7 +720,7 @@ diff -up Python-3.3.0rc2/Python/ceval.c.systemtap Python-3.3.0rc2/Python/ceval.c
co = f->f_code;
names = co->co_names;
consts = co->co_consts;
-@@ -3077,6 +3083,11 @@ fast_yield:
+@@ -3640,6 +3646,11 @@ fast_yield:
/* pop frame */
exit_eval_frame:
@@ -722,9 +732,11 @@ diff -up Python-3.3.0rc2/Python/ceval.c.systemtap Python-3.3.0rc2/Python/ceval.c
Py_LeaveRecursiveCall();
f->f_executing = 0;
tstate->frame = f->f_back;
-diff -up Python-3.3.0rc2/Python/ceval_systemtap.h.systemtap Python-3.3.0rc2/Python/ceval_systemtap.h
---- Python-3.3.0rc2/Python/ceval_systemtap.h.systemtap 2012-09-10 09:17:21.122511781 -0400
-+++ Python-3.3.0rc2/Python/ceval_systemtap.h 2012-09-10 09:17:21.122511781 -0400
+diff --git a/Python/ceval_systemtap.h b/Python/ceval_systemtap.h
+new file mode 100644
+index 0000000..38697ad
+--- /dev/null
++++ b/Python/ceval_systemtap.h
@@ -0,0 +1,86 @@
+/*
+ Support for SystemTap static markers
@@ -812,9 +824,11 @@ diff -up Python-3.3.0rc2/Python/ceval_systemtap.h.systemtap Python-3.3.0rc2/Pyth
+#define systemtap_function_return(f)
+
+#endif
-diff -up Python-3.3.0rc2/Python/pysystemtap.d.systemtap Python-3.3.0rc2/Python/pysystemtap.d
---- Python-3.3.0rc2/Python/pysystemtap.d.systemtap 2012-09-10 09:17:21.122511781 -0400
-+++ Python-3.3.0rc2/Python/pysystemtap.d 2012-09-10 09:17:21.122511781 -0400
+diff --git a/Python/pysystemtap.d b/Python/pysystemtap.d
+new file mode 100644
+index 0000000..c2cdef0
+--- /dev/null
++++ b/Python/pysystemtap.d
@@ -0,0 +1,4 @@
+provider python {
+ probe function__entry(const char *, const char *, int, PyFrameObject *);
diff --git a/00146-hashlib-fips.patch b/00146-hashlib-fips.patch
index e0cdce0..9f3280b 100644
--- a/00146-hashlib-fips.patch
+++ b/00146-hashlib-fips.patch
@@ -282,7 +282,7 @@ index c9b113e..60e2392 100644
self._test_pbkdf2_hmac(py_hashlib.pbkdf2_hmac)
diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c
-index 44765ac..b8cf490 100644
+index ff57614..8cd1b77 100644
--- a/Modules/_hashopenssl.c
+++ b/Modules/_hashopenssl.c
@@ -20,6 +20,8 @@
@@ -292,9 +292,9 @@ index 44765ac..b8cf490 100644
+#include <openssl/ssl.h>
+#include <openssl/err.h>
#include <openssl/evp.h>
- #include <openssl/hmac.h>
/* We use the object interface to discover what hashes OpenSSL supports. */
-@@ -45,11 +47,19 @@ typedef struct {
+ #include <openssl/objects.h>
+@@ -55,10 +57,19 @@ typedef struct {
static PyTypeObject EVPtype;
@@ -311,14 +311,13 @@ index 44765ac..b8cf490 100644
-#define DEFINE_CONSTS_FOR_NEW(Name) \
- static PyObject *CONST_ ## Name ## _name_obj = NULL; \
-- static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
- static EVP_MD_CTX *CONST_new_ ## Name ## _ctx_p = NULL;
+#define DEFINE_CONSTS_FOR_NEW(Name) \
+ static EVPCachedInfo cached_info_ ##Name;
DEFINE_CONSTS_FOR_NEW(md5)
DEFINE_CONSTS_FOR_NEW(sha1)
-@@ -92,6 +102,48 @@ EVP_hash(EVPobject *self, const void *vp, Py_ssize_t len)
+@@ -139,6 +150,48 @@ EVP_hash(EVPobject *self, const void *vp, Py_ssize_t len)
}
}
@@ -367,7 +366,7 @@ index 44765ac..b8cf490 100644
/* Internal methods for a hash object */
static void
-@@ -259,15 +311,16 @@ EVP_repr(EVPobject *self)
+@@ -327,15 +380,16 @@ EVP_repr(EVPobject *self)
static int
EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
{
@@ -387,21 +386,21 @@ index 44765ac..b8cf490 100644
return -1;
}
-@@ -288,7 +341,12 @@ EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
+@@ -356,7 +410,12 @@ EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
PyBuffer_Release(&view);
return -1;
}
-- EVP_DigestInit(&self->ctx, digest);
-+ mc_ctx_init(&self->ctx, usedforsecurity);
-+ if (!EVP_DigestInit_ex(&self->ctx, digest, NULL)) {
+- EVP_DigestInit(self->ctx, digest);
++ mc_ctx_init(self->ctx, usedforsecurity);
++ if (!EVP_DigestInit_ex(self->ctx, digest, NULL)) {
+ set_evp_exception();
+ PyBuffer_Release(&view);
-+ return -1;
++ Py_RETURN_NONE;
+ }
self->name = name_obj;
Py_INCREF(self->name);
-@@ -372,7 +430,8 @@ static PyTypeObject EVPtype = {
+@@ -440,7 +499,8 @@ static PyTypeObject EVPtype = {
static PyObject *
EVPnew(PyObject *name_obj,
const EVP_MD *digest, const EVP_MD_CTX *initial_ctx,
@@ -411,13 +410,13 @@ index 44765ac..b8cf490 100644
{
EVPobject *self;
-@@ -387,7 +446,12 @@ EVPnew(PyObject *name_obj,
+@@ -455,7 +515,12 @@ EVPnew(PyObject *name_obj,
if (initial_ctx) {
- EVP_MD_CTX_copy(&self->ctx, initial_ctx);
+ EVP_MD_CTX_copy(self->ctx, initial_ctx);
} else {
-- EVP_DigestInit(&self->ctx, digest);
-+ mc_ctx_init(&self->ctx, usedforsecurity);
-+ if (!EVP_DigestInit_ex(&self->ctx, digest, NULL)) {
+- EVP_DigestInit(self->ctx, digest);
++ mc_ctx_init(self->ctx, usedforsecurity);
++ if (!EVP_DigestInit_ex(self->ctx, digest, NULL)) {
+ set_evp_exception();
+ Py_DECREF(self);
+ return NULL;
@@ -425,7 +424,7 @@ index 44765ac..b8cf490 100644
}
if (cp && len) {
-@@ -411,21 +475,29 @@ PyDoc_STRVAR(EVP_new__doc__,
+@@ -479,21 +544,29 @@ PyDoc_STRVAR(EVP_new__doc__,
An optional string argument may be provided and will be\n\
automatically hashed.\n\
\n\
@@ -459,7 +458,7 @@ index 44765ac..b8cf490 100644
return NULL;
}
-@@ -439,7 +511,8 @@ EVP_new(PyObject *self, PyObject *args, PyObject *kwdict)
+@@ -507,7 +580,8 @@ EVP_new(PyObject *self, PyObject *args, PyObject *kwdict)
digest = EVP_get_digestbyname(name);
@@ -469,13 +468,13 @@ index 44765ac..b8cf490 100644
if (data_obj)
PyBuffer_Release(&view);
-@@ -722,57 +795,114 @@ generate_hash_name_list(void)
+@@ -769,57 +843,114 @@ generate_hash_name_list(void)
/*
- * This macro generates constructor function definitions for specific
- * hash algorithms. These constructors are much faster than calling
-- * the generic one passing it a python string and are noticably
+- * the generic one passing it a python string and are noticeably
- * faster than calling a python new() wrapper. Thats important for
+ * This macro and function generates a family of constructor function
+ * definitions for specific hash algorithms. These constructors are much
@@ -512,8 +511,8 @@ index 44765ac..b8cf490 100644
+ return implement_specific_EVP_new(self, args, kwdict, \
+ "|Oi:" #NAME, \
+ &cached_info_ ## NAME ); \
- }
-
++ }
++
+static PyObject *
+implement_specific_EVP_new(PyObject *self, PyObject *args, PyObject *kwdict,
+ const char *format,
@@ -531,8 +530,8 @@ index 44765ac..b8cf490 100644
+ if (!PyArg_ParseTupleAndKeywords(args, kwdict, format, kwlist,
+ &data_obj, &usedforsecurity)) {
+ return NULL;
-+ }
-+
+ }
+
+ if (data_obj)
+ GET_BUFFER_VIEW_OR_ERROUT(data_obj, &view);
+
@@ -581,7 +580,7 @@ index 44765ac..b8cf490 100644
- if (CONST_ ## NAME ## _name_obj == NULL) { \
- CONST_ ## NAME ## _name_obj = PyUnicode_FromString(#NAME); \
- if (EVP_get_digestbyname(#NAME)) { \
-- CONST_new_ ## NAME ## _ctx_p = &CONST_new_ ## NAME ## _ctx; \
+- CONST_new_ ## NAME ## _ctx_p = EVP_MD_CTX_new(); \
- EVP_DigestInit(CONST_new_ ## NAME ## _ctx_p, EVP_get_digestbyname(#NAME)); \
- } \
- } \
@@ -621,7 +620,7 @@ index 44765ac..b8cf490 100644
GEN_CONSTRUCTOR(md5)
GEN_CONSTRUCTOR(sha1)
-@@ -819,13 +949,10 @@ PyInit__hashlib(void)
+@@ -866,13 +997,10 @@ PyInit__hashlib(void)
{
PyObject *m, *openssl_md_meth_names;
diff --git a/00170-gc-assertions.patch b/00170-gc-assertions.patch
index 9e34c21..4ca43b4 100644
--- a/00170-gc-assertions.patch
+++ b/00170-gc-assertions.patch
@@ -1,8 +1,8 @@
-Index: Include/object.h
-===================================================================
---- Include/object.h (revision 87911)
-+++ Include/object.h (working copy)
-@@ -914,6 +914,49 @@
+diff --git Include/object.h Include/object.h
+index 50d9747..9b7e89e 100644
+--- Include/object.h
++++ Include/object.h
+@@ -1059,6 +1059,49 @@ PyAPI_FUNC(void)
_PyObject_DebugTypeStats(FILE *out);
#endif /* ifndef Py_LIMITED_API */
@@ -52,17 +52,17 @@ Index: Include/object.h
#ifdef __cplusplus
}
#endif
-Index: Objects/object.c
-===================================================================
---- Objects/object.c (revision 87911)
-+++ Objects/object.c (working copy)
-@@ -1899,6 +1899,35 @@
+diff --git Objects/object.c Objects/object.c
+index d21fd90..d07b49c 100644
+--- Objects/object.c
++++ Objects/object.c
+@@ -2034,6 +2034,35 @@ _PyTrash_thread_destroy_chain(void)
}
}
+PyAPI_FUNC(void)
+_PyObject_AssertFailed(PyObject *obj, const char *msg, const char *expr,
-+ const char *file, int line, const char *function)
++ const char *file, int line, const char *function)
+{
+ fprintf(stderr,
+ "%s:%d: %s: Assertion \"%s\" failed.\n",
@@ -92,23 +92,38 @@ Index: Objects/object.c
#ifndef Py_TRACE_REFS
/* For Py_LIMITED_API, we need an out-of-line version of _Py_Dealloc.
Define this here, so we can undefine the macro. */
-Index: Lib/test/test_gc.py
-===================================================================
---- Lib/test/test_gc.py (revision 87911)
-+++ Lib/test/test_gc.py (working copy)
-@@ -1,7 +1,7 @@
+diff --git Lib/test/test_gc.py Lib/test/test_gc.py
+index a4d684b..e77029e 100644
+--- Lib/test/test_gc.py
++++ Lib/test/test_gc.py
+@@ -1,10 +1,11 @@
import unittest
from test.support import (verbose, refcount_test, run_unittest,
- strip_python_stderr, cpython_only, start_threads,
-- temp_dir)
-+ temp_dir, import_module)
+ strip_python_stderr, cpython_only, start_threads,
+- temp_dir, requires_type_collecting)
++ temp_dir, requires_type_collecting, import_module)
from test.support.script_helper import assert_python_ok, make_script
import sys
-@@ -512,6 +512,48 @@
++import sysconfig
+ import time
+ import gc
+ import weakref
+@@ -50,6 +51,8 @@ class GC_Detector(object):
+ # gc collects it.
+ self.wr = weakref.ref(C1055820(666), it_happened)
+
++BUILD_WITH_NDEBUG = ('-DNDEBUG' in sysconfig.get_config_vars()['PY_CFLAGS'])
++
+ @with_tp_del
+ class Uncollectable(object):
+ """Create a reference cycle with multiple __del__ methods.
+@@ -864,6 +867,50 @@ class GCCallbackTests(unittest.TestCase):
self.assertEqual(len(gc.garbage), 0)
++ @unittest.skipIf(BUILD_WITH_NDEBUG,
++ 'built with -NDEBUG')
+ def test_refcount_errors(self):
+ self.preclean()
+ # Verify the "handling" of objects with broken refcounts
@@ -154,9 +169,10 @@ Index: Lib/test/test_gc.py
class GCTogglingTests(unittest.TestCase):
def setUp(self):
gc.enable()
-diff -up Modules/gcmodule.c.orig2 Modules/gcmodule.c
---- Modules/gcmodule.c.orig2 2014-12-08 10:54:14.251742911 +0100
-+++ Modules/gcmodule.c 2014-12-08 10:52:45.674771917 +0100
+diff --git Modules/gcmodule.c Modules/gcmodule.c
+index cb7222d..6a9be80 100644
+--- Modules/gcmodule.c
++++ Modules/gcmodule.c
@@ -341,7 +341,8 @@ update_refs(PyGC_Head *containers)
{
PyGC_Head *gc = containers->gc.gc_next;
@@ -188,7 +204,7 @@ diff -up Modules/gcmodule.c.orig2 Modules/gcmodule.c
if (_PyGCHead_REFS(gc) > 0)
_PyGCHead_DECREF(gc);
}
-@@ -436,9 +440,10 @@ visit_reachable(PyObject *op, PyGC_Head
+@@ -436,9 +440,10 @@ visit_reachable(PyObject *op, PyGC_Head *reachable)
* If gc_refs == GC_UNTRACKED, it must be ignored.
*/
else {
@@ -202,7 +218,7 @@ diff -up Modules/gcmodule.c.orig2 Modules/gcmodule.c
}
}
return 0;
-@@ -480,7 +485,7 @@ move_unreachable(PyGC_Head *young, PyGC_
+@@ -480,7 +485,7 @@ move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
*/
PyObject *op = FROM_GC(gc);
traverseproc traverse = Py_TYPE(op)->tp_traverse;
@@ -211,7 +227,7 @@ diff -up Modules/gcmodule.c.orig2 Modules/gcmodule.c
_PyGCHead_SET_REFS(gc, GC_REACHABLE);
(void) traverse(op,
(visitproc)visit_reachable,
-@@ -543,7 +548,7 @@ move_legacy_finalizers(PyGC_Head *unreac
+@@ -543,7 +548,7 @@ move_legacy_finalizers(PyGC_Head *unreachable, PyGC_Head *finalizers)
for (gc = unreachable->gc.gc_next; gc != unreachable; gc = next) {
PyObject *op = FROM_GC(gc);
@@ -220,7 +236,7 @@ diff -up Modules/gcmodule.c.orig2 Modules/gcmodule.c
next = gc->gc.gc_next;
if (has_legacy_finalizer(op)) {
-@@ -619,7 +624,7 @@ handle_weakrefs(PyGC_Head *unreachable,
+@@ -619,7 +624,7 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
PyWeakReference **wrlist;
op = FROM_GC(gc);
@@ -229,7 +245,7 @@ diff -up Modules/gcmodule.c.orig2 Modules/gcmodule.c
next = gc->gc.gc_next;
if (! PyType_SUPPORTS_WEAKREFS(Py_TYPE(op)))
-@@ -640,9 +645,9 @@ handle_weakrefs(PyGC_Head *unreachable,
+@@ -640,9 +645,9 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
* the callback pointer intact. Obscure: it also
* changes *wrlist.
*/
@@ -241,7 +257,7 @@ diff -up Modules/gcmodule.c.orig2 Modules/gcmodule.c
if (wr->wr_callback == NULL)
continue; /* no callback */
-@@ -676,7 +681,7 @@ handle_weakrefs(PyGC_Head *unreachable,
+@@ -676,7 +681,7 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
*/
if (IS_TENTATIVELY_UNREACHABLE(wr))
continue;
@@ -250,7 +266,7 @@ diff -up Modules/gcmodule.c.orig2 Modules/gcmodule.c
/* Create a new reference so that wr can't go away
* before we can process it again.
-@@ -685,7 +690,8 @@ handle_weakrefs(PyGC_Head *unreachable,
+@@ -685,7 +690,8 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
/* Move wr to wrcb_to_call, for the next pass. */
wrasgc = AS_GC(wr);
@@ -260,7 +276,7 @@ diff -up Modules/gcmodule.c.orig2 Modules/gcmodule.c
next isn't, so they can't
be the same */
gc_list_move(wrasgc, &wrcb_to_call);
-@@ -701,11 +707,11 @@ handle_weakrefs(PyGC_Head *unreachable,
+@@ -701,11 +707,11 @@ handle_weakrefs(PyGC_Head *unreachable, PyGC_Head *old)
gc = wrcb_to_call.gc.gc_next;
op = FROM_GC(gc);
@@ -292,35 +308,3 @@ diff -up Modules/gcmodule.c.orig2 Modules/gcmodule.c
if (_PyGCHead_REFS(gc) != 0)
return -1;
}
-diff -up Lib/test/test_gc.py.old Lib/test/test_gc.py
---- Lib/test/test_gc.py.old 2014-12-10 11:19:33.503982288 +0100
-+++ Lib/test/test_gc.py 2014-12-10 11:21:13.220021364 +0100
-@@ -49,6 +49,8 @@ class GC_Detector(object):
- # gc collects it.
- self.wr = weakref.ref(C1055820(666), it_happened)
-
-+BUILD_WITH_NDEBUG = ('-DNDEBUG' in sysconfig.get_config_vars()['PY_CFLAGS'])
-+
- @with_tp_del
- class Uncollectable(object):
- """Create a reference cycle with multiple __del__ methods.
-@@ -854,6 +856,8 @@ class GCCallbackTests(unittest.TestCase)
- self.assertEqual(len(gc.garbage), 0)
-
-
-+ @unittest.skipIf(BUILD_WITH_NDEBUG,
-+ 'built with -NDEBUG')
- def test_refcount_errors(self):
- self.preclean()
- # Verify the "handling" of objects with broken refcounts
-diff -up Lib/test/test_gc.py.old Lib/test/test_gc.py
---- Lib/test/test_gc.py.old 2014-12-10 12:50:58.252121318 +0100
-+++ Lib/test/test_gc.py 2014-12-10 12:51:08.594266653 +0100
-@@ -4,6 +4,7 @@ from test.support import (verbose, refco
- from test.support.script_helper import assert_python_ok, make_script
-
- import sys
-+import sysconfig
- import time
- import gc
- import weakref
diff --git a/00180-python-add-support-for-ppc64p7.patch b/00180-python-add-support-for-ppc64p7.patch
index 022944a..ef94c86 100644
--- a/00180-python-add-support-for-ppc64p7.patch
+++ b/00180-python-add-support-for-ppc64p7.patch
@@ -1,12 +1,13 @@
-diff -r de35eae9048a config.sub
---- a/config.sub Wed Apr 24 23:33:20 2013 +0200
-+++ b/config.sub Thu Apr 25 08:51:00 2013 +0200
-@@ -1008,7 +1008,7 @@
+diff --git a/config.sub b/config.sub
+index 3478c1f..e422173 100755
+--- a/config.sub
++++ b/config.sub
+@@ -1040,7 +1040,7 @@ case $basic_machine in
;;
ppc64) basic_machine=powerpc64-unknown
;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ ppc64le | powerpc64little)
basic_machine=powerpc64le-unknown
diff --git a/00250-getentropy.patch b/00250-getentropy.patch
index 4ec2bec..8a7c41d 100644
--- a/00250-getentropy.patch
+++ b/00250-getentropy.patch
@@ -1,8 +1,8 @@
diff --git a/Python/random.c b/Python/random.c
-index 07dacfe..a4f7f40 100644
+index d203939..4c27585 100644
--- a/Python/random.c
+++ b/Python/random.c
-@@ -75,46 +75,7 @@ win32_urandom(unsigned char *buffer, Py_ssize_t size, int raise)
+@@ -76,46 +76,7 @@ win32_urandom(unsigned char *buffer, Py_ssize_t size, int raise)
return 0;
}
@@ -50,7 +50,7 @@ index 07dacfe..a4f7f40 100644
#if defined(HAVE_GETRANDOM) || defined(HAVE_GETRANDOM_SYSCALL)
#define PY_GETRANDOM 1
-@@ -209,6 +170,59 @@ py_getrandom(void *buffer, Py_ssize_t size, int raise)
+@@ -227,6 +188,59 @@ py_getrandom(void *buffer, Py_ssize_t size, int raise)
}
return 1;
}
@@ -110,7 +110,7 @@ index 07dacfe..a4f7f40 100644
#endif
static struct {
-@@ -264,7 +278,7 @@ dev_urandom_python(char *buffer, Py_ssize_t size)
+@@ -288,7 +302,7 @@ dev_urandom_python(char *buffer, Py_ssize_t size)
int fd;
Py_ssize_t n;
struct _Py_stat_struct st;
@@ -119,7 +119,7 @@ index 07dacfe..a4f7f40 100644
int res;
#endif
-@@ -273,12 +287,16 @@ dev_urandom_python(char *buffer, Py_ssize_t size)
+@@ -297,6 +311,10 @@ dev_urandom_python(char *buffer, Py_ssize_t size)
#ifdef PY_GETRANDOM
res = py_getrandom(buffer, size, 1);
@@ -127,18 +127,10 @@ index 07dacfe..a4f7f40 100644
+ res = py_getentropy(buffer, size, 1);
+#endif
+#if defined(PY_GETRANDOM) || defined(PY_GETENTROPY)
- if (res < 0)
+ if (res < 0) {
return -1;
- if (res == 1)
- return 0;
-- /* getrandom() is not supported by the running kernel, fall back
-- * on reading /dev/urandom */
-+ /* function failed with ENOSYS or EPERM, fall back on reading
-+ from /dev/urandom */
- #endif
-
- if (urandom_cache.fd >= 0) {
-@@ -349,8 +367,8 @@ dev_urandom_close(void)
+ }
+@@ -376,8 +394,8 @@ dev_urandom_close(void)
urandom_cache.fd = -1;
}
}
@@ -148,7 +140,7 @@ index 07dacfe..a4f7f40 100644
/* Fill buffer with pseudo-random bytes generated by a linear congruent
generator (LCG):
-@@ -391,8 +409,6 @@ _PyOS_URandom(void *buffer, Py_ssize_t size)
+@@ -418,8 +436,6 @@ _PyOS_URandom(void *buffer, Py_ssize_t size)
#ifdef MS_WINDOWS
return win32_urandom((unsigned char *)buffer, size, 1);
@@ -157,7 +149,7 @@ index 07dacfe..a4f7f40 100644
#else
return dev_urandom_python((char*)buffer, size);
#endif
-@@ -454,8 +470,6 @@ _PyRandom_Fini(void)
+@@ -481,8 +497,6 @@ _PyRandom_Fini(void)
CryptReleaseContext(hCryptProv, 0);
hCryptProv = 0;
}
diff --git a/00259-tolerate-legacy-invalid-bytecode.patch b/00259-tolerate-legacy-invalid-bytecode.patch
new file mode 100644
index 0000000..8ac62f7
--- /dev/null
+++ b/00259-tolerate-legacy-invalid-bytecode.patch
@@ -0,0 +1,5689 @@
+From 93602e3af70d3b9f98ae2da654b16b3382b68d50 Mon Sep 17 00:00:00 2001
+From: Nick Coghlan <ncoghlan(a)gmail.com>
+Date: Wed, 8 Mar 2017 16:41:01 +1000
+Subject: [PATCH] [3.5] bpo-29537: Tolerate legacy invalid bytecode (#169)
+
+bpo-27286 fixed a problem where BUILD_MAP_UNPACK_WITH_CALL could
+be emitted with an incorrect oparg value, causing the eval loop
+to access the wrong stack entry when attempting to read the
+function name.
+
+The associated magic number change caused significant problems when
+attempting to upgrade to 3.5.3 for anyone that relies on pre-cached
+bytecode remaining valid across maintenance releases.
+
+This patch restores the ability to import legacy bytecode generated
+by 3.5.0, 3.5.1 or 3.5.2, and modifies the eval loop to
+avoid any harmful consequences from the potentially malformed legacy
+bytecode.
+
+Original import patch by Petr Viktorin, eval loop patch by Serhiy Storchaka,
+and tests and integration by Nick Coghlan.
+---
+ Lib/importlib/_bootstrap_external.py | 28 +-
+ Lib/importlib/util.py | 2 +-
+ Lib/pkgutil.py | 5 +-
+ Lib/pydoc.py | 7 +-
+ Lib/test/test_extcall.py | 6 +-
+ Lib/test/test_importlib/source/test_file_loader.py | 104 +
+ Lib/test/test_unpack_ex.py | 2 +-
+ Modules/zipimport.c | 11 +-
+ Python/ceval.c | 85 +-
+ Python/import.c | 10 +-
+ Python/importlib_external.h | 5145 ++++++++++----------
+ Python/pythonrun.c | 19 +-
+ 12 files changed, 2817 insertions(+), 2607 deletions(-)
+
+diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
+index e54d691..506bb33 100644
+--- a/Lib/importlib/_bootstrap_external.py
++++ b/Lib/importlib/_bootstrap_external.py
+@@ -230,7 +230,7 @@ _code_type = type(_write_atomic.__code__)
+ # Python 3.5b1 3330 (PEP 448: Additional Unpacking Generalizations)
+ # Python 3.5b2 3340 (fix dictionary display evaluation order #11205)
+ # Python 3.5b2 3350 (add GET_YIELD_FROM_ITER opcode #24400)
+-# Python 3.5.2 3351 (fix BUILD_MAP_UNPACK_WITH_CALL opcode #27286)
++# Python 3.5.3 3351 (fix BUILD_MAP_UNPACK_WITH_CALL opcode #27286)
+ #
+ # MAGIC must change whenever the bytecode emitted by the compiler may no
+ # longer be understood by older implementations of the eval loop (usually
+@@ -242,6 +242,28 @@ _code_type = type(_write_atomic.__code__)
+ MAGIC_NUMBER = (3351).to_bytes(2, 'little') + b'\r\n'
+ _RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c
+
++# Issue #29537: handle issue27286 bytecode incompatibility
++#
++# The magic number bump in Python 3.5.3 for issue27286 turned out to create
++# significant backwards compatibility problems for redistributors and
++# other folks that rely on the bytecode format remaining stable within a
++# given maintenance release series. See http://bugs.python.org/issue29514
++# for more discussion of the problems that the original change caused.
++#
++# The _BACKCOMPAT_MAGIC_NUMBER below and any other changes marked with
++# "Issue #29537" comments allow Python 3.5.4+ to load bytecode files with both
++# the original 3.5.0 magic number and those with the updated magic number used
++# since 3.5.3.
++#
++# This is expected to be a one-off change used solely to restore legacy
++# bytecode compatibility within the 3.5.x series, so it avoids any changes
++# that would prompt a rebuild of C extension modules.
++#
++if _RAW_MAGIC_NUMBER != 168627479:
++ _msg = 'Magic number mismatch (the issue27286 workaround is for 3.5 only)'
++ raise SystemError(_msg)
++_BACKCOMPAT_MAGIC_NUMBER = (3350).to_bytes(2, 'little') + b'\r\n'
++
+ _PYCACHE = '__pycache__'
+ _OPT = 'opt-'
+
+@@ -446,7 +468,9 @@ def _validate_bytecode_header(data, source_stats=None, name=None, path=None):
+ magic = data[:4]
+ raw_timestamp = data[4:8]
+ raw_size = data[8:12]
+- if magic != MAGIC_NUMBER:
++ if (magic != MAGIC_NUMBER
++ # Issue #29537: handle issue27286 bytecode incompatibility
++ and magic != _BACKCOMPAT_MAGIC_NUMBER):
+ message = 'bad magic number in {!r}: {!r}'.format(name, magic)
+ _verbose_message('{}', message)
+ raise ImportError(message, **exc_details)
+diff --git a/Lib/importlib/util.py b/Lib/importlib/util.py
+index e1fa07a..a15cf00 100644
+--- a/Lib/importlib/util.py
++++ b/Lib/importlib/util.py
+@@ -4,7 +4,7 @@ from ._bootstrap import module_from_spec
+ from ._bootstrap import _resolve_name
+ from ._bootstrap import spec_from_loader
+ from ._bootstrap import _find_spec
+-from ._bootstrap_external import MAGIC_NUMBER
++from ._bootstrap_external import MAGIC_NUMBER, _BACKCOMPAT_MAGIC_NUMBER
+ from ._bootstrap_external import cache_from_source
+ from ._bootstrap_external import decode_source
+ from ._bootstrap_external import source_from_cache
+diff --git a/Lib/pkgutil.py b/Lib/pkgutil.py
+index 81d418d..9d1879a 100644
+--- a/Lib/pkgutil.py
++++ b/Lib/pkgutil.py
+@@ -37,7 +37,10 @@ def read_code(stream):
+ import marshal
+
+ magic = stream.read(4)
+- if magic != importlib.util.MAGIC_NUMBER:
++ if (magic != importlib.util.MAGIC_NUMBER
++ # Issue #29537: handle issue27286 bytecode incompatibility
++ # See Lib/importlib/_bootstrap_external.py
++ and magic != importlib.util._BACKCOMPAT_MAGIC_NUMBER):
+ return None
+
+ stream.read(8) # Skip timestamp and size
+diff --git a/Lib/pydoc.py b/Lib/pydoc.py
+index 0d0d0ab..729efba 100755
+--- a/Lib/pydoc.py
++++ b/Lib/pydoc.py
+@@ -289,7 +289,12 @@ def importfile(path):
+ """Import a Python source file or compiled file given its path."""
+ magic = importlib.util.MAGIC_NUMBER
+ with open(path, 'rb') as file:
+- is_bytecode = magic == file.read(len(magic))
++ first_bytes = file.read(len(magic))
++ is_bytecode = first_bytes in (magic,
++ # Issue #29537: handle issue27286
++ # bytecode incompatibility
++ # See Lib/importlib/_bootstrap_external.py
++ importlib.util._BACKCOMPAT_MAGIC_NUMBER)
+ filename = os.path.basename(path)
+ name, ext = os.path.splitext(filename)
+ if is_bytecode:
+diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py
+index 9cb0d38..94501de 100644
+--- a/Lib/test/test_extcall.py
++++ b/Lib/test/test_extcall.py
+@@ -52,15 +52,15 @@ Here we add keyword arguments
+ >>> f(1, 2, **{'a': -1, 'b': 5}, **{'a': 4, 'c': 6})
+ Traceback (most recent call last):
+ ...
+- TypeError: f() got multiple values for keyword argument 'a'
++ TypeError: function got multiple values for keyword argument 'a'
+ >>> f(1, 2, **{'a': -1, 'b': 5}, a=4, c=6)
+ Traceback (most recent call last):
+ ...
+- TypeError: f() got multiple values for keyword argument 'a'
++ TypeError: function got multiple values for keyword argument 'a'
+ >>> f(1, 2, a=3, **{'a': 4}, **{'a': 5})
+ Traceback (most recent call last):
+ ...
+- TypeError: f() got multiple values for keyword argument 'a'
++ TypeError: function got multiple values for keyword argument 'a'
+ >>> f(1, 2, 3, *[4, 5], **{'a':6, 'b':7})
+ (1, 2, 3, 4, 5) {'a': 6, 'b': 7}
+ >>> f(1, 2, 3, x=4, y=5, *(6, 7), **{'a':8, 'b': 9})
+diff --git a/Lib/test/test_importlib/source/test_file_loader.py b/Lib/test/test_importlib/source/test_file_loader.py
+index 73f4c62..6d5a886 100644
+--- a/Lib/test/test_importlib/source/test_file_loader.py
++++ b/Lib/test/test_importlib/source/test_file_loader.py
+@@ -603,5 +603,109 @@ class SourcelessLoaderBadBytecodeTestPEP302(SourcelessLoaderBadBytecodeTest,
+ util=importlib_util)
+
+
++###########################################################################
++# Issue #29537: Test backwards compatibility with legacy 3.5.0/1/2 bytecode
++###########################################################################
++
++class LegacyBytecodeTest:
++
++ def _test_legacy_magic(self, test, *, del_source=False):
++ # Replace the default magic number with one copied from a pyc file
++ # generated by Python 3.5.2
++ with util.create_modules('_temp') as mapping:
++ bc_path = self.manipulate_bytecode('_temp', mapping,
++ lambda bc: b'\x16\r\r\n' + bc[4:])
++ test('_temp', mapping, bc_path)
++
++LegacyBytecodeTestPEP451 = BadBytecodeTestPEP451
++LegacyBytecodeTestPEP302 = BadBytecodeTestPEP302
++
++# SourceLoader via both PEP 451 and 302 hooks
++
++class SourceLoaderLegacyBytecodeTest(LegacyBytecodeTest):
++
++ @classmethod
++ def setUpClass(cls):
++ cls.loader = cls.machinery.SourceFileLoader
++
++ @util.writes_bytecode_files
++ def test_legacy_magic(self):
++ # The magic number from 3.5.0/1/2 should be accepted as is
++ def test(name, mapping, bytecode_path):
++ self.import_(mapping[name], name)
++ with open(bytecode_path, 'rb') as bytecode_file:
++ self.assertEqual(bytecode_file.read(4),
++ self.util._BACKCOMPAT_MAGIC_NUMBER)
++
++ self._test_legacy_magic(test)
++
++
++class SourceLoaderLegacyBytecodeTestPEP451(
++ SourceLoaderLegacyBytecodeTest, LegacyBytecodeTestPEP451):
++ pass
++
++
++(Frozen_SourceLegacyBytecodePEP451,
++ Source_SourceLegacyBytecodePEP451
++ ) = util.test_both(SourceLoaderLegacyBytecodeTestPEP451, importlib=importlib,
++ machinery=machinery, abc=importlib_abc,
++ util=importlib_util)
++
++
++class SourceLoaderLegacyBytecodeTestPEP302(
++ SourceLoaderLegacyBytecodeTest, LegacyBytecodeTestPEP302):
++ pass
++
++
++(Frozen_SourceLegacyBytecodePEP302,
++ Source_SourceLegacyBytecodePEP302
++ ) = util.test_both(SourceLoaderLegacyBytecodeTestPEP302, importlib=importlib,
++ machinery=machinery, abc=importlib_abc,
++ util=importlib_util)
++
++# SourcelessLoader via both PEP 451 and 302 hooks
++
++class SourcelessLoaderLegacyBytecodeTest(LegacyBytecodeTest):
++
++ @classmethod
++ def setUpClass(cls):
++ cls.loader = cls.machinery.SourcelessFileLoader
++
++
++ @util.writes_bytecode_files
++ def test_legacy_magic(self):
++ # The magic number from 3.5.0/1/2 should be accepted as is
++ def test(name, mapping, bytecode_path):
++ self.import_(bytecode_path, name)
++ with open(bytecode_path, 'rb') as bytecode_file:
++ self.assertEqual(bytecode_file.read(4),
++ self.util._BACKCOMPAT_MAGIC_NUMBER)
++
++ self._test_legacy_magic(test)
++
++class SourcelessLoaderLegacyBytecodeTestPEP451(
++ SourcelessLoaderLegacyBytecodeTest, LegacyBytecodeTestPEP451):
++ pass
++
++(Frozen_SourcelessLegacyBytecodePEP451,
++ Source_SourcelessLegacyBytecodePEP451
++ ) = util.test_both(SourcelessLoaderLegacyBytecodeTestPEP451, importlib=importlib,
++ machinery=machinery, abc=importlib_abc,
++ util=importlib_util)
++
++
++class SourcelessLoaderLegacyBytecodeTestPEP302(SourcelessLoaderLegacyBytecodeTest,
++ LegacyBytecodeTestPEP302):
++ pass
++
++
++(Frozen_SourcelessLegacyBytecodePEP302,
++ Source_SourcelessLegacyBytecodePEP302
++ ) = util.test_both(SourcelessLoaderLegacyBytecodeTestPEP302, importlib=importlib,
++ machinery=machinery, abc=importlib_abc,
++ util=importlib_util)
++
++# End of Issue #29537 legacy bytecode compatibility tests
++
+ if __name__ == '__main__':
+ unittest.main()
+diff --git a/Lib/test/test_unpack_ex.py b/Lib/test/test_unpack_ex.py
+index 74346b4..43cf638 100644
+--- a/Lib/test/test_unpack_ex.py
++++ b/Lib/test/test_unpack_ex.py
+@@ -251,7 +251,7 @@ Overridden parameters
+ >>> f(x=5, **{'x': 3}, **{'x': 2})
+ Traceback (most recent call last):
+ ...
+- TypeError: f() got multiple values for keyword argument 'x'
++ TypeError: function got multiple values for keyword argument 'x'
+
+ >>> f(**{1: 3}, **{1: 5})
+ Traceback (most recent call last):
+diff --git a/Modules/zipimport.c b/Modules/zipimport.c
+index 7473a8f..a693fbb 100644
+--- a/Modules/zipimport.c
++++ b/Modules/zipimport.c
+@@ -1263,6 +1263,11 @@ eq_mtime(time_t t1, time_t t2)
+ return d <= 1;
+ }
+
++/* Issue #29537: handle issue27286 bytecode incompatibility
++ * See Lib/importlib/_bootstrap_external.py for general discussion
++ */
++extern PY_UINT32_T _Py_BACKCOMPAT_MAGIC_NUMBER;
++
+ /* Given the contents of a .py[co] file in a buffer, unmarshal the data
+ and return the code object. Return None if it the magic word doesn't
+ match (we do this instead of raising an exception as we fall back
+@@ -1274,6 +1279,7 @@ unmarshal_code(PyObject *pathname, PyObject *data, time_t mtime)
+ PyObject *code;
+ unsigned char *buf = (unsigned char *)PyBytes_AsString(data);
+ Py_ssize_t size = PyBytes_Size(data);
++ PY_UINT32_T magic;
+
+ if (size < 12) {
+ PyErr_SetString(ZipImportError,
+@@ -1281,7 +1287,10 @@ unmarshal_code(PyObject *pathname, PyObject *data, time_t mtime)
+ return NULL;
+ }
+
+- if (get_uint32(buf) != (unsigned int)PyImport_GetMagicNumber()) {
++ magic = get_uint32(buf);
++ if (magic != (unsigned int)PyImport_GetMagicNumber()
++ /* Issue #29537: handle issue27286 bytecode incompatibility */
++ && magic != _Py_BACKCOMPAT_MAGIC_NUMBER) {
+ if (Py_VerboseFlag) {
+ PySys_FormatStderr("# %R has bad magic\n",
+ pathname);
+diff --git a/Python/ceval.c b/Python/ceval.c
+index 62badeb..9ae8653 100644
+--- a/Python/ceval.c
++++ b/Python/ceval.c
+@@ -2672,14 +2672,22 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
+ if (PyErr_ExceptionMatches(PyExc_AttributeError) ||
+ !PyMapping_Check(arg)) {
+ int function_location = (oparg>>8) & 0xff;
+- PyObject *func = (
+- PEEK(function_location + num_maps));
+- PyErr_Format(PyExc_TypeError,
+- "%.200s%.200s argument after ** "
+- "must be a mapping, not %.200s",
+- PyEval_GetFuncName(func),
+- PyEval_GetFuncDesc(func),
+- arg->ob_type->tp_name);
++ if (function_location == 1) {
++ PyObject *func = (
++ PEEK(function_location + num_maps));
++ PyErr_Format(PyExc_TypeError,
++ "%.200s%.200s argument after ** "
++ "must be a mapping, not %.200s",
++ PyEval_GetFuncName(func),
++ PyEval_GetFuncDesc(func),
++ arg->ob_type->tp_name);
++ }
++ else {
++ PyErr_Format(PyExc_TypeError,
++ "argument after ** "
++ "must be a mapping, not %.200s",
++ arg->ob_type->tp_name);
++ }
+ }
+ Py_DECREF(sum);
+ goto error;
+@@ -2689,21 +2697,34 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
+ Py_ssize_t idx = 0;
+ PyObject *key;
+ int function_location = (oparg>>8) & 0xff;
+- PyObject *func = PEEK(function_location + num_maps);
+ Py_hash_t hash;
+ _PySet_NextEntry(intersection, &idx, &key, &hash);
+- if (!PyUnicode_Check(key)) {
+- PyErr_Format(PyExc_TypeError,
+- "%.200s%.200s keywords must be strings",
+- PyEval_GetFuncName(func),
+- PyEval_GetFuncDesc(func));
+- } else {
+- PyErr_Format(PyExc_TypeError,
+- "%.200s%.200s got multiple "
+- "values for keyword argument '%U'",
+- PyEval_GetFuncName(func),
+- PyEval_GetFuncDesc(func),
+- key);
++ if (function_location == 1) {
++ PyObject *func = PEEK(function_location + num_maps);
++ if (!PyUnicode_Check(key)) {
++ PyErr_Format(PyExc_TypeError,
++ "%.200s%.200s keywords must be strings",
++ PyEval_GetFuncName(func),
++ PyEval_GetFuncDesc(func));
++ } else {
++ PyErr_Format(PyExc_TypeError,
++ "%.200s%.200s got multiple "
++ "values for keyword argument '%U'",
++ PyEval_GetFuncName(func),
++ PyEval_GetFuncDesc(func),
++ key);
++ }
++ }
++ else {
++ if (!PyUnicode_Check(key)) {
++ PyErr_SetString(PyExc_TypeError,
++ "keywords must be strings");
++ } else {
++ PyErr_Format(PyExc_TypeError,
++ "function got multiple "
++ "values for keyword argument '%U'",
++ key);
++ }
+ }
+ Py_DECREF(intersection);
+ Py_DECREF(sum);
+@@ -2716,13 +2737,21 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
+ if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
+ if (with_call) {
+ int function_location = (oparg>>8) & 0xff;
+- PyObject *func = PEEK(function_location + num_maps);
+- PyErr_Format(PyExc_TypeError,
+- "%.200s%.200s argument after ** "
+- "must be a mapping, not %.200s",
+- PyEval_GetFuncName(func),
+- PyEval_GetFuncDesc(func),
+- arg->ob_type->tp_name);
++ if (function_location == 1) {
++ PyObject *func = PEEK(function_location + num_maps);
++ PyErr_Format(PyExc_TypeError,
++ "%.200s%.200s argument after ** "
++ "must be a mapping, not %.200s",
++ PyEval_GetFuncName(func),
++ PyEval_GetFuncDesc(func),
++ arg->ob_type->tp_name);
++ }
++ else {
++ PyErr_Format(PyExc_TypeError,
++ "argument after ** "
++ "must be a mapping, not %.200s",
++ arg->ob_type->tp_name);
++ }
+ }
+ else {
+ PyErr_Format(PyExc_TypeError,
+diff --git a/Python/import.c b/Python/import.c
+index 3579273..ea8bc00 100644
+--- a/Python/import.c
++++ b/Python/import.c
+@@ -483,9 +483,17 @@ PyImport_Cleanup(void)
+ #undef STORE_MODULE_WEAKREF
+ }
+
++/* Issue #29537: handle issue27286 bytecode incompatibility
++ *
++ * In order to avoid forcing recompilation of all extension modules, we export
++ * the legacy 3.5.0 magic number here rather than putting it in a header file.
++ *
++ * See Lib/importlib/_bootstrap_external.py for general discussion
++ */
++PY_UINT32_T _Py_BACKCOMPAT_MAGIC_NUMBER = 168627478;
++PY_UINT32_T _Py_BACKCOMPAT_HALF_MAGIC = 3350;
+
+ /* Helper for pythonrun.c -- return magic number and tag. */
+-
+ long
+ PyImport_GetMagicNumber(void)
+ {
+diff --git a/Python/importlib_external.h b/Python/importlib_external.h
+index 5ee843a..f337c8b 100644
+--- a/Python/importlib_external.h
++++ b/Python/importlib_external.h
+@@ -1,8 +1,8 @@
+ /* Auto-generated by Programs/_freeze_importlib.c */
+ const unsigned char _Py_M__importlib_external[] = {
+ 99,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,
+- 0,64,0,0,0,115,244,2,0,0,100,0,0,90,0,0,
+- 100,96,0,90,1,0,100,97,0,90,2,0,101,2,0,101,
++ 0,64,0,0,0,115,40,3,0,0,100,0,0,90,0,0,
++ 100,99,0,90,1,0,100,100,0,90,2,0,101,2,0,101,
+ 1,0,23,90,3,0,100,4,0,100,5,0,132,0,0,90,
+ 4,0,100,6,0,100,7,0,132,0,0,90,5,0,100,8,
+ 0,100,9,0,132,0,0,90,6,0,100,10,0,100,11,0,
+@@ -14,2592 +14,2605 @@ const unsigned char _Py_M__importlib_external[] = {
+ 0,101,14,0,101,13,0,106,15,0,131,1,0,90,16,0,
+ 100,25,0,106,17,0,100,26,0,100,27,0,131,2,0,100,
+ 28,0,23,90,18,0,101,19,0,106,20,0,101,18,0,100,
+- 27,0,131,2,0,90,21,0,100,29,0,90,22,0,100,30,
+- 0,90,23,0,100,31,0,103,1,0,90,24,0,100,32,0,
+- 103,1,0,90,25,0,101,25,0,4,90,26,0,90,27,0,
+- 100,33,0,100,34,0,100,33,0,100,35,0,100,36,0,132,
+- 1,1,90,28,0,100,37,0,100,38,0,132,0,0,90,29,
+- 0,100,39,0,100,40,0,132,0,0,90,30,0,100,41,0,
+- 100,42,0,132,0,0,90,31,0,100,43,0,100,44,0,132,
+- 0,0,90,32,0,100,45,0,100,46,0,100,47,0,100,48,
+- 0,132,0,1,90,33,0,100,49,0,100,50,0,132,0,0,
+- 90,34,0,100,51,0,100,52,0,132,0,0,90,35,0,100,
+- 33,0,100,33,0,100,33,0,100,53,0,100,54,0,132,3,
+- 0,90,36,0,100,33,0,100,33,0,100,33,0,100,55,0,
+- 100,56,0,132,3,0,90,37,0,100,57,0,100,57,0,100,
+- 58,0,100,59,0,132,2,0,90,38,0,100,60,0,100,61,
+- 0,132,0,0,90,39,0,101,40,0,131,0,0,90,41,0,
+- 100,33,0,100,62,0,100,33,0,100,63,0,101,41,0,100,
+- 64,0,100,65,0,132,1,2,90,42,0,71,100,66,0,100,
+- 67,0,132,0,0,100,67,0,131,2,0,90,43,0,71,100,
+- 68,0,100,69,0,132,0,0,100,69,0,131,2,0,90,44,
+- 0,71,100,70,0,100,71,0,132,0,0,100,71,0,101,44,
+- 0,131,3,0,90,45,0,71,100,72,0,100,73,0,132,0,
+- 0,100,73,0,131,2,0,90,46,0,71,100,74,0,100,75,
+- 0,132,0,0,100,75,0,101,46,0,101,45,0,131,4,0,
+- 90,47,0,71,100,76,0,100,77,0,132,0,0,100,77,0,
+- 101,46,0,101,44,0,131,4,0,90,48,0,103,0,0,90,
+- 49,0,71,100,78,0,100,79,0,132,0,0,100,79,0,101,
+- 46,0,101,44,0,131,4,0,90,50,0,71,100,80,0,100,
+- 81,0,132,0,0,100,81,0,131,2,0,90,51,0,71,100,
+- 82,0,100,83,0,132,0,0,100,83,0,131,2,0,90,52,
+- 0,71,100,84,0,100,85,0,132,0,0,100,85,0,131,2,
+- 0,90,53,0,71,100,86,0,100,87,0,132,0,0,100,87,
+- 0,131,2,0,90,54,0,100,33,0,100,88,0,100,89,0,
+- 132,1,0,90,55,0,100,90,0,100,91,0,132,0,0,90,
+- 56,0,100,92,0,100,93,0,132,0,0,90,57,0,100,94,
+- 0,100,95,0,132,0,0,90,58,0,100,33,0,83,41,98,
+- 97,94,1,0,0,67,111,114,101,32,105,109,112,108,101,109,
+- 101,110,116,97,116,105,111,110,32,111,102,32,112,97,116,104,
+- 45,98,97,115,101,100,32,105,109,112,111,114,116,46,10,10,
+- 84,104,105,115,32,109,111,100,117,108,101,32,105,115,32,78,
+- 79,84,32,109,101,97,110,116,32,116,111,32,98,101,32,100,
+- 105,114,101,99,116,108,121,32,105,109,112,111,114,116,101,100,
+- 33,32,73,116,32,104,97,115,32,98,101,101,110,32,100,101,
+- 115,105,103,110,101,100,32,115,117,99,104,10,116,104,97,116,
+- 32,105,116,32,99,97,110,32,98,101,32,98,111,111,116,115,
+- 116,114,97,112,112,101,100,32,105,110,116,111,32,80,121,116,
+- 104,111,110,32,97,115,32,116,104,101,32,105,109,112,108,101,
+- 109,101,110,116,97,116,105,111,110,32,111,102,32,105,109,112,
+- 111,114,116,46,32,65,115,10,115,117,99,104,32,105,116,32,
+- 114,101,113,117,105,114,101,115,32,116,104,101,32,105,110,106,
+- 101,99,116,105,111,110,32,111,102,32,115,112,101,99,105,102,
+- 105,99,32,109,111,100,117,108,101,115,32,97,110,100,32,97,
+- 116,116,114,105,98,117,116,101,115,32,105,110,32,111,114,100,
+- 101,114,32,116,111,10,119,111,114,107,46,32,79,110,101,32,
+- 115,104,111,117,108,100,32,117,115,101,32,105,109,112,111,114,
+- 116,108,105,98,32,97,115,32,116,104,101,32,112,117,98,108,
+- 105,99,45,102,97,99,105,110,103,32,118,101,114,115,105,111,
+- 110,32,111,102,32,116,104,105,115,32,109,111,100,117,108,101,
+- 46,10,10,218,3,119,105,110,218,6,99,121,103,119,105,110,
+- 218,6,100,97,114,119,105,110,99,0,0,0,0,0,0,0,
+- 0,1,0,0,0,3,0,0,0,3,0,0,0,115,88,0,
+- 0,0,116,0,0,106,1,0,106,2,0,116,3,0,131,1,
+- 0,114,72,0,116,0,0,106,1,0,106,2,0,116,4,0,
+- 131,1,0,114,45,0,100,1,0,137,0,0,110,6,0,100,
+- 2,0,137,0,0,135,0,0,102,1,0,100,3,0,100,4,
+- 0,134,0,0,125,0,0,110,12,0,100,5,0,100,4,0,
+- 132,0,0,125,0,0,124,0,0,83,41,6,78,90,12,80,
+- 89,84,72,79,78,67,65,83,69,79,75,115,12,0,0,0,
+- 80,89,84,72,79,78,67,65,83,69,79,75,99,0,0,0,
+- 0,0,0,0,0,0,0,0,0,2,0,0,0,19,0,0,
+- 0,115,13,0,0,0,136,0,0,116,0,0,106,1,0,107,
+- 6,0,83,41,1,122,53,84,114,117,101,32,105,102,32,102,
++ 27,0,131,2,0,90,21,0,101,21,0,100,29,0,107,3,
++ 0,114,236,0,100,30,0,90,22,0,101,23,0,101,22,0,
++ 131,1,0,130,1,0,100,31,0,106,17,0,100,26,0,100,
++ 27,0,131,2,0,100,28,0,23,90,24,0,100,32,0,90,
++ 25,0,100,33,0,90,26,0,100,34,0,103,1,0,90,27,
++ 0,100,35,0,103,1,0,90,28,0,101,28,0,4,90,29,
++ 0,90,30,0,100,36,0,100,37,0,100,36,0,100,38,0,
++ 100,39,0,132,1,1,90,31,0,100,40,0,100,41,0,132,
++ 0,0,90,32,0,100,42,0,100,43,0,132,0,0,90,33,
++ 0,100,44,0,100,45,0,132,0,0,90,34,0,100,46,0,
++ 100,47,0,132,0,0,90,35,0,100,48,0,100,49,0,100,
++ 50,0,100,51,0,132,0,1,90,36,0,100,52,0,100,53,
++ 0,132,0,0,90,37,0,100,54,0,100,55,0,132,0,0,
++ 90,38,0,100,36,0,100,36,0,100,36,0,100,56,0,100,
++ 57,0,132,3,0,90,39,0,100,36,0,100,36,0,100,36,
++ 0,100,58,0,100,59,0,132,3,0,90,40,0,100,60,0,
++ 100,60,0,100,61,0,100,62,0,132,2,0,90,41,0,100,
++ 63,0,100,64,0,132,0,0,90,42,0,101,43,0,131,0,
++ 0,90,44,0,100,36,0,100,65,0,100,36,0,100,66,0,
++ 101,44,0,100,67,0,100,68,0,132,1,2,90,45,0,71,
++ 100,69,0,100,70,0,132,0,0,100,70,0,131,2,0,90,
++ 46,0,71,100,71,0,100,72,0,132,0,0,100,72,0,131,
++ 2,0,90,47,0,71,100,73,0,100,74,0,132,0,0,100,
++ 74,0,101,47,0,131,3,0,90,48,0,71,100,75,0,100,
++ 76,0,132,0,0,100,76,0,131,2,0,90,49,0,71,100,
++ 77,0,100,78,0,132,0,0,100,78,0,101,49,0,101,48,
++ 0,131,4,0,90,50,0,71,100,79,0,100,80,0,132,0,
++ 0,100,80,0,101,49,0,101,47,0,131,4,0,90,51,0,
++ 103,0,0,90,52,0,71,100,81,0,100,82,0,132,0,0,
++ 100,82,0,101,49,0,101,47,0,131,4,0,90,53,0,71,
++ 100,83,0,100,84,0,132,0,0,100,84,0,131,2,0,90,
++ 54,0,71,100,85,0,100,86,0,132,0,0,100,86,0,131,
++ 2,0,90,55,0,71,100,87,0,100,88,0,132,0,0,100,
++ 88,0,131,2,0,90,56,0,71,100,89,0,100,90,0,132,
++ 0,0,100,90,0,131,2,0,90,57,0,100,36,0,100,91,
++ 0,100,92,0,132,1,0,90,58,0,100,93,0,100,94,0,
++ 132,0,0,90,59,0,100,95,0,100,96,0,132,0,0,90,
++ 60,0,100,97,0,100,98,0,132,0,0,90,61,0,100,36,
++ 0,83,41,101,97,94,1,0,0,67,111,114,101,32,105,109,
++ 112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,
++ 112,97,116,104,45,98,97,115,101,100,32,105,109,112,111,114,
++ 116,46,10,10,84,104,105,115,32,109,111,100,117,108,101,32,
++ 105,115,32,78,79,84,32,109,101,97,110,116,32,116,111,32,
++ 98,101,32,100,105,114,101,99,116,108,121,32,105,109,112,111,
++ 114,116,101,100,33,32,73,116,32,104,97,115,32,98,101,101,
++ 110,32,100,101,115,105,103,110,101,100,32,115,117,99,104,10,
++ 116,104,97,116,32,105,116,32,99,97,110,32,98,101,32,98,
++ 111,111,116,115,116,114,97,112,112,101,100,32,105,110,116,111,
++ 32,80,121,116,104,111,110,32,97,115,32,116,104,101,32,105,
++ 109,112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,
++ 32,105,109,112,111,114,116,46,32,65,115,10,115,117,99,104,
++ 32,105,116,32,114,101,113,117,105,114,101,115,32,116,104,101,
++ 32,105,110,106,101,99,116,105,111,110,32,111,102,32,115,112,
++ 101,99,105,102,105,99,32,109,111,100,117,108,101,115,32,97,
++ 110,100,32,97,116,116,114,105,98,117,116,101,115,32,105,110,
++ 32,111,114,100,101,114,32,116,111,10,119,111,114,107,46,32,
++ 79,110,101,32,115,104,111,117,108,100,32,117,115,101,32,105,
++ 109,112,111,114,116,108,105,98,32,97,115,32,116,104,101,32,
++ 112,117,98,108,105,99,45,102,97,99,105,110,103,32,118,101,
++ 114,115,105,111,110,32,111,102,32,116,104,105,115,32,109,111,
++ 100,117,108,101,46,10,10,218,3,119,105,110,218,6,99,121,
++ 103,119,105,110,218,6,100,97,114,119,105,110,99,0,0,0,
++ 0,0,0,0,0,1,0,0,0,3,0,0,0,3,0,0,
++ 0,115,88,0,0,0,116,0,0,106,1,0,106,2,0,116,
++ 3,0,131,1,0,114,72,0,116,0,0,106,1,0,106,2,
++ 0,116,4,0,131,1,0,114,45,0,100,1,0,137,0,0,
++ 110,6,0,100,2,0,137,0,0,135,0,0,102,1,0,100,
++ 3,0,100,4,0,134,0,0,125,0,0,110,12,0,100,5,
++ 0,100,4,0,132,0,0,125,0,0,124,0,0,83,41,6,
++ 78,90,12,80,89,84,72,79,78,67,65,83,69,79,75,115,
++ 12,0,0,0,80,89,84,72,79,78,67,65,83,69,79,75,
++ 99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
++ 0,19,0,0,0,115,13,0,0,0,136,0,0,116,0,0,
++ 106,1,0,107,6,0,83,41,1,122,53,84,114,117,101,32,
++ 105,102,32,102,105,108,101,110,97,109,101,115,32,109,117,115,
++ 116,32,98,101,32,99,104,101,99,107,101,100,32,99,97,115,
++ 101,45,105,110,115,101,110,115,105,116,105,118,101,108,121,46,
++ 41,2,218,3,95,111,115,90,7,101,110,118,105,114,111,110,
++ 169,0,41,1,218,3,107,101,121,114,4,0,0,0,250,38,
++ 60,102,114,111,122,101,110,32,105,109,112,111,114,116,108,105,
++ 98,46,95,98,111,111,116,115,116,114,97,112,95,101,120,116,
++ 101,114,110,97,108,62,218,11,95,114,101,108,97,120,95,99,
++ 97,115,101,37,0,0,0,115,2,0,0,0,0,2,122,37,
++ 95,109,97,107,101,95,114,101,108,97,120,95,99,97,115,101,
++ 46,60,108,111,99,97,108,115,62,46,95,114,101,108,97,120,
++ 95,99,97,115,101,99,0,0,0,0,0,0,0,0,0,0,
++ 0,0,1,0,0,0,83,0,0,0,115,4,0,0,0,100,
++ 1,0,83,41,2,122,53,84,114,117,101,32,105,102,32,102,
+ 105,108,101,110,97,109,101,115,32,109,117,115,116,32,98,101,
+ 32,99,104,101,99,107,101,100,32,99,97,115,101,45,105,110,
+- 115,101,110,115,105,116,105,118,101,108,121,46,41,2,218,3,
+- 95,111,115,90,7,101,110,118,105,114,111,110,169,0,41,1,
+- 218,3,107,101,121,114,4,0,0,0,250,38,60,102,114,111,
+- 122,101,110,32,105,109,112,111,114,116,108,105,98,46,95,98,
+- 111,111,116,115,116,114,97,112,95,101,120,116,101,114,110,97,
+- 108,62,218,11,95,114,101,108,97,120,95,99,97,115,101,37,
+- 0,0,0,115,2,0,0,0,0,2,122,37,95,109,97,107,
+- 101,95,114,101,108,97,120,95,99,97,115,101,46,60,108,111,
+- 99,97,108,115,62,46,95,114,101,108,97,120,95,99,97,115,
+- 101,99,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
+- 0,0,83,0,0,0,115,4,0,0,0,100,1,0,83,41,
+- 2,122,53,84,114,117,101,32,105,102,32,102,105,108,101,110,
+- 97,109,101,115,32,109,117,115,116,32,98,101,32,99,104,101,
+- 99,107,101,100,32,99,97,115,101,45,105,110,115,101,110,115,
+- 105,116,105,118,101,108,121,46,70,114,4,0,0,0,114,4,
++ 115,101,110,115,105,116,105,118,101,108,121,46,70,114,4,0,
++ 0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,
++ 0,114,6,0,0,0,114,7,0,0,0,41,0,0,0,115,
++ 2,0,0,0,0,2,41,5,218,3,115,121,115,218,8,112,
++ 108,97,116,102,111,114,109,218,10,115,116,97,114,116,115,119,
++ 105,116,104,218,27,95,67,65,83,69,95,73,78,83,69,78,
++ 83,73,84,73,86,69,95,80,76,65,84,70,79,82,77,83,
++ 218,35,95,67,65,83,69,95,73,78,83,69,78,83,73,84,
++ 73,86,69,95,80,76,65,84,70,79,82,77,83,95,83,84,
++ 82,95,75,69,89,41,1,114,7,0,0,0,114,4,0,0,
++ 0,41,1,114,5,0,0,0,114,6,0,0,0,218,16,95,
++ 109,97,107,101,95,114,101,108,97,120,95,99,97,115,101,30,
++ 0,0,0,115,14,0,0,0,0,1,18,1,18,1,9,2,
++ 6,2,21,4,12,3,114,13,0,0,0,99,1,0,0,0,
++ 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
++ 115,26,0,0,0,116,0,0,124,0,0,131,1,0,100,1,
++ 0,64,106,1,0,100,2,0,100,3,0,131,2,0,83,41,
++ 4,122,42,67,111,110,118,101,114,116,32,97,32,51,50,45,
++ 98,105,116,32,105,110,116,101,103,101,114,32,116,111,32,108,
++ 105,116,116,108,101,45,101,110,100,105,97,110,46,108,3,0,
++ 0,0,255,127,255,127,3,0,233,4,0,0,0,218,6,108,
++ 105,116,116,108,101,41,2,218,3,105,110,116,218,8,116,111,
++ 95,98,121,116,101,115,41,1,218,1,120,114,4,0,0,0,
++ 114,4,0,0,0,114,6,0,0,0,218,7,95,119,95,108,
++ 111,110,103,47,0,0,0,115,2,0,0,0,0,2,114,19,
++ 0,0,0,99,1,0,0,0,0,0,0,0,1,0,0,0,
++ 3,0,0,0,67,0,0,0,115,16,0,0,0,116,0,0,
++ 106,1,0,124,0,0,100,1,0,131,2,0,83,41,2,122,
++ 47,67,111,110,118,101,114,116,32,52,32,98,121,116,101,115,
++ 32,105,110,32,108,105,116,116,108,101,45,101,110,100,105,97,
++ 110,32,116,111,32,97,110,32,105,110,116,101,103,101,114,46,
++ 114,15,0,0,0,41,2,114,16,0,0,0,218,10,102,114,
++ 111,109,95,98,121,116,101,115,41,1,90,9,105,110,116,95,
++ 98,121,116,101,115,114,4,0,0,0,114,4,0,0,0,114,
++ 6,0,0,0,218,7,95,114,95,108,111,110,103,52,0,0,
++ 0,115,2,0,0,0,0,2,114,21,0,0,0,99,0,0,
++ 0,0,0,0,0,0,1,0,0,0,3,0,0,0,71,0,
++ 0,0,115,26,0,0,0,116,0,0,106,1,0,100,1,0,
++ 100,2,0,132,0,0,124,0,0,68,131,1,0,131,1,0,
++ 83,41,3,122,31,82,101,112,108,97,99,101,109,101,110,116,
++ 32,102,111,114,32,111,115,46,112,97,116,104,46,106,111,105,
++ 110,40,41,46,99,1,0,0,0,0,0,0,0,2,0,0,
++ 0,4,0,0,0,83,0,0,0,115,37,0,0,0,103,0,
++ 0,124,0,0,93,27,0,125,1,0,124,1,0,114,6,0,
++ 124,1,0,106,0,0,116,1,0,131,1,0,145,2,0,113,
++ 6,0,83,114,4,0,0,0,41,2,218,6,114,115,116,114,
++ 105,112,218,15,112,97,116,104,95,115,101,112,97,114,97,116,
++ 111,114,115,41,2,218,2,46,48,218,4,112,97,114,116,114,
++ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,250,10,
++ 60,108,105,115,116,99,111,109,112,62,59,0,0,0,115,2,
++ 0,0,0,9,1,122,30,95,112,97,116,104,95,106,111,105,
++ 110,46,60,108,111,99,97,108,115,62,46,60,108,105,115,116,
++ 99,111,109,112,62,41,2,218,8,112,97,116,104,95,115,101,
++ 112,218,4,106,111,105,110,41,1,218,10,112,97,116,104,95,
++ 112,97,114,116,115,114,4,0,0,0,114,4,0,0,0,114,
++ 6,0,0,0,218,10,95,112,97,116,104,95,106,111,105,110,
++ 57,0,0,0,115,4,0,0,0,0,2,15,1,114,30,0,
++ 0,0,99,1,0,0,0,0,0,0,0,5,0,0,0,5,
++ 0,0,0,67,0,0,0,115,134,0,0,0,116,0,0,116,
++ 1,0,131,1,0,100,1,0,107,2,0,114,52,0,124,0,
++ 0,106,2,0,116,3,0,131,1,0,92,3,0,125,1,0,
++ 125,2,0,125,3,0,124,1,0,124,3,0,102,2,0,83,
++ 120,69,0,116,4,0,124,0,0,131,1,0,68,93,55,0,
++ 125,4,0,124,4,0,116,1,0,107,6,0,114,65,0,124,
++ 0,0,106,5,0,124,4,0,100,2,0,100,1,0,131,1,
++ 1,92,2,0,125,1,0,125,3,0,124,1,0,124,3,0,
++ 102,2,0,83,113,65,0,87,100,3,0,124,0,0,102,2,
++ 0,83,41,4,122,32,82,101,112,108,97,99,101,109,101,110,
++ 116,32,102,111,114,32,111,115,46,112,97,116,104,46,115,112,
++ 108,105,116,40,41,46,233,1,0,0,0,90,8,109,97,120,
++ 115,112,108,105,116,218,0,41,6,218,3,108,101,110,114,23,
++ 0,0,0,218,10,114,112,97,114,116,105,116,105,111,110,114,
++ 27,0,0,0,218,8,114,101,118,101,114,115,101,100,218,6,
++ 114,115,112,108,105,116,41,5,218,4,112,97,116,104,90,5,
++ 102,114,111,110,116,218,1,95,218,4,116,97,105,108,114,18,
+ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
+- 0,0,114,7,0,0,0,41,0,0,0,115,2,0,0,0,
+- 0,2,41,5,218,3,115,121,115,218,8,112,108,97,116,102,
+- 111,114,109,218,10,115,116,97,114,116,115,119,105,116,104,218,
+- 27,95,67,65,83,69,95,73,78,83,69,78,83,73,84,73,
+- 86,69,95,80,76,65,84,70,79,82,77,83,218,35,95,67,
+- 65,83,69,95,73,78,83,69,78,83,73,84,73,86,69,95,
+- 80,76,65,84,70,79,82,77,83,95,83,84,82,95,75,69,
+- 89,41,1,114,7,0,0,0,114,4,0,0,0,41,1,114,
+- 5,0,0,0,114,6,0,0,0,218,16,95,109,97,107,101,
+- 95,114,101,108,97,120,95,99,97,115,101,30,0,0,0,115,
+- 14,0,0,0,0,1,18,1,18,1,9,2,6,2,21,4,
+- 12,3,114,13,0,0,0,99,1,0,0,0,0,0,0,0,
+- 1,0,0,0,3,0,0,0,67,0,0,0,115,26,0,0,
+- 0,116,0,0,124,0,0,131,1,0,100,1,0,64,106,1,
+- 0,100,2,0,100,3,0,131,2,0,83,41,4,122,42,67,
+- 111,110,118,101,114,116,32,97,32,51,50,45,98,105,116,32,
+- 105,110,116,101,103,101,114,32,116,111,32,108,105,116,116,108,
+- 101,45,101,110,100,105,97,110,46,108,3,0,0,0,255,127,
+- 255,127,3,0,233,4,0,0,0,218,6,108,105,116,116,108,
+- 101,41,2,218,3,105,110,116,218,8,116,111,95,98,121,116,
+- 101,115,41,1,218,1,120,114,4,0,0,0,114,4,0,0,
+- 0,114,6,0,0,0,218,7,95,119,95,108,111,110,103,47,
+- 0,0,0,115,2,0,0,0,0,2,114,19,0,0,0,99,
+- 1,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,
+- 67,0,0,0,115,16,0,0,0,116,0,0,106,1,0,124,
+- 0,0,100,1,0,131,2,0,83,41,2,122,47,67,111,110,
+- 118,101,114,116,32,52,32,98,121,116,101,115,32,105,110,32,
+- 108,105,116,116,108,101,45,101,110,100,105,97,110,32,116,111,
+- 32,97,110,32,105,110,116,101,103,101,114,46,114,15,0,0,
+- 0,41,2,114,16,0,0,0,218,10,102,114,111,109,95,98,
+- 121,116,101,115,41,1,90,9,105,110,116,95,98,121,116,101,
+- 115,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
+- 218,7,95,114,95,108,111,110,103,52,0,0,0,115,2,0,
+- 0,0,0,2,114,21,0,0,0,99,0,0,0,0,0,0,
+- 0,0,1,0,0,0,3,0,0,0,71,0,0,0,115,26,
+- 0,0,0,116,0,0,106,1,0,100,1,0,100,2,0,132,
+- 0,0,124,0,0,68,131,1,0,131,1,0,83,41,3,122,
+- 31,82,101,112,108,97,99,101,109,101,110,116,32,102,111,114,
+- 32,111,115,46,112,97,116,104,46,106,111,105,110,40,41,46,
+- 99,1,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
+- 0,83,0,0,0,115,37,0,0,0,103,0,0,124,0,0,
+- 93,27,0,125,1,0,124,1,0,114,6,0,124,1,0,106,
+- 0,0,116,1,0,131,1,0,145,2,0,113,6,0,83,114,
+- 4,0,0,0,41,2,218,6,114,115,116,114,105,112,218,15,
+- 112,97,116,104,95,115,101,112,97,114,97,116,111,114,115,41,
+- 2,218,2,46,48,218,4,112,97,114,116,114,4,0,0,0,
+- 114,4,0,0,0,114,6,0,0,0,250,10,60,108,105,115,
+- 116,99,111,109,112,62,59,0,0,0,115,2,0,0,0,9,
+- 1,122,30,95,112,97,116,104,95,106,111,105,110,46,60,108,
+- 111,99,97,108,115,62,46,60,108,105,115,116,99,111,109,112,
+- 62,41,2,218,8,112,97,116,104,95,115,101,112,218,4,106,
+- 111,105,110,41,1,218,10,112,97,116,104,95,112,97,114,116,
+- 115,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
+- 218,10,95,112,97,116,104,95,106,111,105,110,57,0,0,0,
+- 115,4,0,0,0,0,2,15,1,114,30,0,0,0,99,1,
+- 0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,67,
+- 0,0,0,115,134,0,0,0,116,0,0,116,1,0,131,1,
+- 0,100,1,0,107,2,0,114,52,0,124,0,0,106,2,0,
+- 116,3,0,131,1,0,92,3,0,125,1,0,125,2,0,125,
+- 3,0,124,1,0,124,3,0,102,2,0,83,120,69,0,116,
+- 4,0,124,0,0,131,1,0,68,93,55,0,125,4,0,124,
+- 4,0,116,1,0,107,6,0,114,65,0,124,0,0,106,5,
+- 0,124,4,0,100,2,0,100,1,0,131,1,1,92,2,0,
+- 125,1,0,125,3,0,124,1,0,124,3,0,102,2,0,83,
+- 113,65,0,87,100,3,0,124,0,0,102,2,0,83,41,4,
+- 122,32,82,101,112,108,97,99,101,109,101,110,116,32,102,111,
+- 114,32,111,115,46,112,97,116,104,46,115,112,108,105,116,40,
+- 41,46,233,1,0,0,0,90,8,109,97,120,115,112,108,105,
+- 116,218,0,41,6,218,3,108,101,110,114,23,0,0,0,218,
+- 10,114,112,97,114,116,105,116,105,111,110,114,27,0,0,0,
+- 218,8,114,101,118,101,114,115,101,100,218,6,114,115,112,108,
+- 105,116,41,5,218,4,112,97,116,104,90,5,102,114,111,110,
+- 116,218,1,95,218,4,116,97,105,108,114,18,0,0,0,114,
+- 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,11,
+- 95,112,97,116,104,95,115,112,108,105,116,63,0,0,0,115,
+- 16,0,0,0,0,2,18,1,24,1,10,1,19,1,12,1,
+- 27,1,14,1,114,40,0,0,0,99,1,0,0,0,0,0,
+- 0,0,1,0,0,0,2,0,0,0,67,0,0,0,115,13,
+- 0,0,0,116,0,0,106,1,0,124,0,0,131,1,0,83,
+- 41,1,122,126,83,116,97,116,32,116,104,101,32,112,97,116,
+- 104,46,10,10,32,32,32,32,77,97,100,101,32,97,32,115,
+- 101,112,97,114,97,116,101,32,102,117,110,99,116,105,111,110,
+- 32,116,111,32,109,97,107,101,32,105,116,32,101,97,115,105,
+- 101,114,32,116,111,32,111,118,101,114,114,105,100,101,32,105,
+- 110,32,101,120,112,101,114,105,109,101,110,116,115,10,32,32,
+- 32,32,40,101,46,103,46,32,99,97,99,104,101,32,115,116,
+- 97,116,32,114,101,115,117,108,116,115,41,46,10,10,32,32,
+- 32,32,41,2,114,3,0,0,0,90,4,115,116,97,116,41,
+- 1,114,37,0,0,0,114,4,0,0,0,114,4,0,0,0,
+- 114,6,0,0,0,218,10,95,112,97,116,104,95,115,116,97,
+- 116,75,0,0,0,115,2,0,0,0,0,7,114,41,0,0,
+- 0,99,2,0,0,0,0,0,0,0,3,0,0,0,11,0,
+- 0,0,67,0,0,0,115,58,0,0,0,121,16,0,116,0,
+- 0,124,0,0,131,1,0,125,2,0,87,110,22,0,4,116,
+- 1,0,107,10,0,114,40,0,1,1,1,100,1,0,83,89,
+- 110,1,0,88,124,2,0,106,2,0,100,2,0,64,124,1,
+- 0,107,2,0,83,41,3,122,49,84,101,115,116,32,119,104,
+- 101,116,104,101,114,32,116,104,101,32,112,97,116,104,32,105,
+- 115,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,
+- 109,111,100,101,32,116,121,112,101,46,70,105,0,240,0,0,
+- 41,3,114,41,0,0,0,218,7,79,83,69,114,114,111,114,
+- 218,7,115,116,95,109,111,100,101,41,3,114,37,0,0,0,
+- 218,4,109,111,100,101,90,9,115,116,97,116,95,105,110,102,
+- 111,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
+- 218,18,95,112,97,116,104,95,105,115,95,109,111,100,101,95,
+- 116,121,112,101,85,0,0,0,115,10,0,0,0,0,2,3,
+- 1,16,1,13,1,9,1,114,45,0,0,0,99,1,0,0,
+- 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
+- 0,115,13,0,0,0,116,0,0,124,0,0,100,1,0,131,
+- 2,0,83,41,2,122,31,82,101,112,108,97,99,101,109,101,
++ 0,0,218,11,95,112,97,116,104,95,115,112,108,105,116,63,
++ 0,0,0,115,16,0,0,0,0,2,18,1,24,1,10,1,
++ 19,1,12,1,27,1,14,1,114,40,0,0,0,99,1,0,
++ 0,0,0,0,0,0,1,0,0,0,2,0,0,0,67,0,
++ 0,0,115,13,0,0,0,116,0,0,106,1,0,124,0,0,
++ 131,1,0,83,41,1,122,126,83,116,97,116,32,116,104,101,
++ 32,112,97,116,104,46,10,10,32,32,32,32,77,97,100,101,
++ 32,97,32,115,101,112,97,114,97,116,101,32,102,117,110,99,
++ 116,105,111,110,32,116,111,32,109,97,107,101,32,105,116,32,
++ 101,97,115,105,101,114,32,116,111,32,111,118,101,114,114,105,
++ 100,101,32,105,110,32,101,120,112,101,114,105,109,101,110,116,
++ 115,10,32,32,32,32,40,101,46,103,46,32,99,97,99,104,
++ 101,32,115,116,97,116,32,114,101,115,117,108,116,115,41,46,
++ 10,10,32,32,32,32,41,2,114,3,0,0,0,90,4,115,
++ 116,97,116,41,1,114,37,0,0,0,114,4,0,0,0,114,
++ 4,0,0,0,114,6,0,0,0,218,10,95,112,97,116,104,
++ 95,115,116,97,116,75,0,0,0,115,2,0,0,0,0,7,
++ 114,41,0,0,0,99,2,0,0,0,0,0,0,0,3,0,
++ 0,0,11,0,0,0,67,0,0,0,115,58,0,0,0,121,
++ 16,0,116,0,0,124,0,0,131,1,0,125,2,0,87,110,
++ 22,0,4,116,1,0,107,10,0,114,40,0,1,1,1,100,
++ 1,0,83,89,110,1,0,88,124,2,0,106,2,0,100,2,
++ 0,64,124,1,0,107,2,0,83,41,3,122,49,84,101,115,
++ 116,32,119,104,101,116,104,101,114,32,116,104,101,32,112,97,
++ 116,104,32,105,115,32,116,104,101,32,115,112,101,99,105,102,
++ 105,101,100,32,109,111,100,101,32,116,121,112,101,46,70,105,
++ 0,240,0,0,41,3,114,41,0,0,0,218,7,79,83,69,
++ 114,114,111,114,218,7,115,116,95,109,111,100,101,41,3,114,
++ 37,0,0,0,218,4,109,111,100,101,90,9,115,116,97,116,
++ 95,105,110,102,111,114,4,0,0,0,114,4,0,0,0,114,
++ 6,0,0,0,218,18,95,112,97,116,104,95,105,115,95,109,
++ 111,100,101,95,116,121,112,101,85,0,0,0,115,10,0,0,
++ 0,0,2,3,1,16,1,13,1,9,1,114,45,0,0,0,
++ 99,1,0,0,0,0,0,0,0,1,0,0,0,3,0,0,
++ 0,67,0,0,0,115,13,0,0,0,116,0,0,124,0,0,
++ 100,1,0,131,2,0,83,41,2,122,31,82,101,112,108,97,
++ 99,101,109,101,110,116,32,102,111,114,32,111,115,46,112,97,
++ 116,104,46,105,115,102,105,108,101,46,105,0,128,0,0,41,
++ 1,114,45,0,0,0,41,1,114,37,0,0,0,114,4,0,
++ 0,0,114,4,0,0,0,114,6,0,0,0,218,12,95,112,
++ 97,116,104,95,105,115,102,105,108,101,94,0,0,0,115,2,
++ 0,0,0,0,2,114,46,0,0,0,99,1,0,0,0,0,
++ 0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,
++ 31,0,0,0,124,0,0,115,18,0,116,0,0,106,1,0,
++ 131,0,0,125,0,0,116,2,0,124,0,0,100,1,0,131,
++ 2,0,83,41,2,122,30,82,101,112,108,97,99,101,109,101,
+ 110,116,32,102,111,114,32,111,115,46,112,97,116,104,46,105,
+- 115,102,105,108,101,46,105,0,128,0,0,41,1,114,45,0,
+- 0,0,41,1,114,37,0,0,0,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,218,12,95,112,97,116,104,95,
+- 105,115,102,105,108,101,94,0,0,0,115,2,0,0,0,0,
+- 2,114,46,0,0,0,99,1,0,0,0,0,0,0,0,1,
+- 0,0,0,3,0,0,0,67,0,0,0,115,31,0,0,0,
+- 124,0,0,115,18,0,116,0,0,106,1,0,131,0,0,125,
+- 0,0,116,2,0,124,0,0,100,1,0,131,2,0,83,41,
+- 2,122,30,82,101,112,108,97,99,101,109,101,110,116,32,102,
+- 111,114,32,111,115,46,112,97,116,104,46,105,115,100,105,114,
+- 46,105,0,64,0,0,41,3,114,3,0,0,0,218,6,103,
+- 101,116,99,119,100,114,45,0,0,0,41,1,114,37,0,0,
+- 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
+- 218,11,95,112,97,116,104,95,105,115,100,105,114,99,0,0,
+- 0,115,6,0,0,0,0,2,6,1,12,1,114,48,0,0,
+- 0,105,182,1,0,0,99,3,0,0,0,0,0,0,0,6,
+- 0,0,0,17,0,0,0,67,0,0,0,115,193,0,0,0,
+- 100,1,0,106,0,0,124,0,0,116,1,0,124,0,0,131,
+- 1,0,131,2,0,125,3,0,116,2,0,106,3,0,124,3,
+- 0,116,2,0,106,4,0,116,2,0,106,5,0,66,116,2,
+- 0,106,6,0,66,124,2,0,100,2,0,64,131,3,0,125,
+- 4,0,121,61,0,116,7,0,106,8,0,124,4,0,100,3,
+- 0,131,2,0,143,20,0,125,5,0,124,5,0,106,9,0,
+- 124,1,0,131,1,0,1,87,100,4,0,81,82,88,116,2,
+- 0,106,10,0,124,3,0,124,0,0,131,2,0,1,87,110,
+- 59,0,4,116,11,0,107,10,0,114,188,0,1,1,1,121,
+- 17,0,116,2,0,106,12,0,124,3,0,131,1,0,1,87,
+- 110,18,0,4,116,11,0,107,10,0,114,180,0,1,1,1,
+- 89,110,1,0,88,130,0,0,89,110,1,0,88,100,4,0,
+- 83,41,5,122,162,66,101,115,116,45,101,102,102,111,114,116,
+- 32,102,117,110,99,116,105,111,110,32,116,111,32,119,114,105,
+- 116,101,32,100,97,116,97,32,116,111,32,97,32,112,97,116,
+- 104,32,97,116,111,109,105,99,97,108,108,121,46,10,32,32,
+- 32,32,66,101,32,112,114,101,112,97,114,101,100,32,116,111,
+- 32,104,97,110,100,108,101,32,97,32,70,105,108,101,69,120,
+- 105,115,116,115,69,114,114,111,114,32,105,102,32,99,111,110,
+- 99,117,114,114,101,110,116,32,119,114,105,116,105,110,103,32,
+- 111,102,32,116,104,101,10,32,32,32,32,116,101,109,112,111,
+- 114,97,114,121,32,102,105,108,101,32,105,115,32,97,116,116,
+- 101,109,112,116,101,100,46,122,5,123,125,46,123,125,105,182,
+- 1,0,0,90,2,119,98,78,41,13,218,6,102,111,114,109,
+- 97,116,218,2,105,100,114,3,0,0,0,90,4,111,112,101,
+- 110,90,6,79,95,69,88,67,76,90,7,79,95,67,82,69,
+- 65,84,90,8,79,95,87,82,79,78,76,89,218,3,95,105,
+- 111,218,6,70,105,108,101,73,79,218,5,119,114,105,116,101,
+- 218,7,114,101,112,108,97,99,101,114,42,0,0,0,90,6,
+- 117,110,108,105,110,107,41,6,114,37,0,0,0,218,4,100,
+- 97,116,97,114,44,0,0,0,90,8,112,97,116,104,95,116,
+- 109,112,90,2,102,100,218,4,102,105,108,101,114,4,0,0,
+- 0,114,4,0,0,0,114,6,0,0,0,218,13,95,119,114,
+- 105,116,101,95,97,116,111,109,105,99,106,0,0,0,115,26,
+- 0,0,0,0,5,24,1,9,1,33,1,3,3,21,1,20,
+- 1,20,1,13,1,3,1,17,1,13,1,5,1,114,57,0,
+- 0,0,105,23,13,0,0,233,2,0,0,0,114,15,0,0,
+- 0,115,2,0,0,0,13,10,90,11,95,95,112,121,99,97,
+- 99,104,101,95,95,122,4,111,112,116,45,122,3,46,112,121,
+- 122,4,46,112,121,99,78,218,12,111,112,116,105,109,105,122,
+- 97,116,105,111,110,99,2,0,0,0,1,0,0,0,11,0,
+- 0,0,6,0,0,0,67,0,0,0,115,87,1,0,0,124,
+- 1,0,100,1,0,107,9,0,114,76,0,116,0,0,106,1,
+- 0,100,2,0,116,2,0,131,2,0,1,124,2,0,100,1,
+- 0,107,9,0,114,58,0,100,3,0,125,3,0,116,3,0,
+- 124,3,0,131,1,0,130,1,0,124,1,0,114,70,0,100,
+- 4,0,110,3,0,100,5,0,125,2,0,116,4,0,124,0,
+- 0,131,1,0,92,2,0,125,4,0,125,5,0,124,5,0,
+- 106,5,0,100,6,0,131,1,0,92,3,0,125,6,0,125,
+- 7,0,125,8,0,116,6,0,106,7,0,106,8,0,125,9,
+- 0,124,9,0,100,1,0,107,8,0,114,154,0,116,9,0,
+- 100,7,0,131,1,0,130,1,0,100,4,0,106,10,0,124,
+- 6,0,114,172,0,124,6,0,110,3,0,124,8,0,124,7,
+- 0,124,9,0,103,3,0,131,1,0,125,10,0,124,2,0,
+- 100,1,0,107,8,0,114,241,0,116,6,0,106,11,0,106,
+- 12,0,100,8,0,107,2,0,114,229,0,100,4,0,125,2,
+- 0,110,12,0,116,6,0,106,11,0,106,12,0,125,2,0,
+- 116,13,0,124,2,0,131,1,0,125,2,0,124,2,0,100,
+- 4,0,107,3,0,114,63,1,124,2,0,106,14,0,131,0,
+- 0,115,42,1,116,15,0,100,9,0,106,16,0,124,2,0,
+- 131,1,0,131,1,0,130,1,0,100,10,0,106,16,0,124,
+- 10,0,116,17,0,124,2,0,131,3,0,125,10,0,116,18,
+- 0,124,4,0,116,19,0,124,10,0,116,20,0,100,8,0,
+- 25,23,131,3,0,83,41,11,97,254,2,0,0,71,105,118,
+- 101,110,32,116,104,101,32,112,97,116,104,32,116,111,32,97,
+- 32,46,112,121,32,102,105,108,101,44,32,114,101,116,117,114,
+- 110,32,116,104,101,32,112,97,116,104,32,116,111,32,105,116,
+- 115,32,46,112,121,99,32,102,105,108,101,46,10,10,32,32,
+- 32,32,84,104,101,32,46,112,121,32,102,105,108,101,32,100,
+- 111,101,115,32,110,111,116,32,110,101,101,100,32,116,111,32,
+- 101,120,105,115,116,59,32,116,104,105,115,32,115,105,109,112,
+- 108,121,32,114,101,116,117,114,110,115,32,116,104,101,32,112,
+- 97,116,104,32,116,111,32,116,104,101,10,32,32,32,32,46,
+- 112,121,99,32,102,105,108,101,32,99,97,108,99,117,108,97,
+- 116,101,100,32,97,115,32,105,102,32,116,104,101,32,46,112,
+- 121,32,102,105,108,101,32,119,101,114,101,32,105,109,112,111,
+- 114,116,101,100,46,10,10,32,32,32,32,84,104,101,32,39,
+- 111,112,116,105,109,105,122,97,116,105,111,110,39,32,112,97,
+- 114,97,109,101,116,101,114,32,99,111,110,116,114,111,108,115,
+- 32,116,104,101,32,112,114,101,115,117,109,101,100,32,111,112,
+- 116,105,109,105,122,97,116,105,111,110,32,108,101,118,101,108,
+- 32,111,102,10,32,32,32,32,116,104,101,32,98,121,116,101,
+- 99,111,100,101,32,102,105,108,101,46,32,73,102,32,39,111,
+- 112,116,105,109,105,122,97,116,105,111,110,39,32,105,115,32,
+- 110,111,116,32,78,111,110,101,44,32,116,104,101,32,115,116,
+- 114,105,110,103,32,114,101,112,114,101,115,101,110,116,97,116,
+- 105,111,110,10,32,32,32,32,111,102,32,116,104,101,32,97,
+- 114,103,117,109,101,110,116,32,105,115,32,116,97,107,101,110,
+- 32,97,110,100,32,118,101,114,105,102,105,101,100,32,116,111,
+- 32,98,101,32,97,108,112,104,97,110,117,109,101,114,105,99,
+- 32,40,101,108,115,101,32,86,97,108,117,101,69,114,114,111,
+- 114,10,32,32,32,32,105,115,32,114,97,105,115,101,100,41,
+- 46,10,10,32,32,32,32,84,104,101,32,100,101,98,117,103,
+- 95,111,118,101,114,114,105,100,101,32,112,97,114,97,109,101,
+- 116,101,114,32,105,115,32,100,101,112,114,101,99,97,116,101,
+- 100,46,32,73,102,32,100,101,98,117,103,95,111,118,101,114,
+- 114,105,100,101,32,105,115,32,110,111,116,32,78,111,110,101,
+- 44,10,32,32,32,32,97,32,84,114,117,101,32,118,97,108,
+- 117,101,32,105,115,32,116,104,101,32,115,97,109,101,32,97,
+- 115,32,115,101,116,116,105,110,103,32,39,111,112,116,105,109,
+- 105,122,97,116,105,111,110,39,32,116,111,32,116,104,101,32,
+- 101,109,112,116,121,32,115,116,114,105,110,103,10,32,32,32,
+- 32,119,104,105,108,101,32,97,32,70,97,108,115,101,32,118,
+- 97,108,117,101,32,105,115,32,101,113,117,105,118,97,108,101,
+- 110,116,32,116,111,32,115,101,116,116,105,110,103,32,39,111,
+- 112,116,105,109,105,122,97,116,105,111,110,39,32,116,111,32,
+- 39,49,39,46,10,10,32,32,32,32,73,102,32,115,121,115,
+- 46,105,109,112,108,101,109,101,110,116,97,116,105,111,110,46,
+- 99,97,99,104,101,95,116,97,103,32,105,115,32,78,111,110,
+- 101,32,116,104,101,110,32,78,111,116,73,109,112,108,101,109,
+- 101,110,116,101,100,69,114,114,111,114,32,105,115,32,114,97,
+- 105,115,101,100,46,10,10,32,32,32,32,78,122,70,116,104,
+- 101,32,100,101,98,117,103,95,111,118,101,114,114,105,100,101,
+- 32,112,97,114,97,109,101,116,101,114,32,105,115,32,100,101,
+- 112,114,101,99,97,116,101,100,59,32,117,115,101,32,39,111,
+- 112,116,105,109,105,122,97,116,105,111,110,39,32,105,110,115,
+- 116,101,97,100,122,50,100,101,98,117,103,95,111,118,101,114,
+- 114,105,100,101,32,111,114,32,111,112,116,105,109,105,122,97,
+- 116,105,111,110,32,109,117,115,116,32,98,101,32,115,101,116,
+- 32,116,111,32,78,111,110,101,114,32,0,0,0,114,31,0,
+- 0,0,218,1,46,122,36,115,121,115,46,105,109,112,108,101,
+- 109,101,110,116,97,116,105,111,110,46,99,97,99,104,101,95,
+- 116,97,103,32,105,115,32,78,111,110,101,233,0,0,0,0,
+- 122,24,123,33,114,125,32,105,115,32,110,111,116,32,97,108,
+- 112,104,97,110,117,109,101,114,105,99,122,7,123,125,46,123,
+- 125,123,125,41,21,218,9,95,119,97,114,110,105,110,103,115,
+- 218,4,119,97,114,110,218,18,68,101,112,114,101,99,97,116,
+- 105,111,110,87,97,114,110,105,110,103,218,9,84,121,112,101,
+- 69,114,114,111,114,114,40,0,0,0,114,34,0,0,0,114,
+- 8,0,0,0,218,14,105,109,112,108,101,109,101,110,116,97,
+- 116,105,111,110,218,9,99,97,99,104,101,95,116,97,103,218,
+- 19,78,111,116,73,109,112,108,101,109,101,110,116,101,100,69,
+- 114,114,111,114,114,28,0,0,0,218,5,102,108,97,103,115,
+- 218,8,111,112,116,105,109,105,122,101,218,3,115,116,114,218,
+- 7,105,115,97,108,110,117,109,218,10,86,97,108,117,101,69,
+- 114,114,111,114,114,49,0,0,0,218,4,95,79,80,84,114,
+- 30,0,0,0,218,8,95,80,89,67,65,67,72,69,218,17,
+- 66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,69,
+- 83,41,11,114,37,0,0,0,90,14,100,101,98,117,103,95,
+- 111,118,101,114,114,105,100,101,114,59,0,0,0,218,7,109,
+- 101,115,115,97,103,101,218,4,104,101,97,100,114,39,0,0,
+- 0,90,4,98,97,115,101,218,3,115,101,112,218,4,114,101,
+- 115,116,90,3,116,97,103,90,15,97,108,109,111,115,116,95,
+- 102,105,108,101,110,97,109,101,114,4,0,0,0,114,4,0,
+- 0,0,114,6,0,0,0,218,17,99,97,99,104,101,95,102,
+- 114,111,109,95,115,111,117,114,99,101,254,0,0,0,115,46,
+- 0,0,0,0,18,12,1,9,1,7,1,12,1,6,1,12,
+- 1,18,1,18,1,24,1,12,1,12,1,12,1,36,1,12,
+- 1,18,1,9,2,12,1,12,1,12,1,12,1,21,1,21,
+- 1,114,81,0,0,0,99,1,0,0,0,0,0,0,0,8,
+- 0,0,0,5,0,0,0,67,0,0,0,115,62,1,0,0,
+- 116,0,0,106,1,0,106,2,0,100,1,0,107,8,0,114,
+- 30,0,116,3,0,100,2,0,131,1,0,130,1,0,116,4,
+- 0,124,0,0,131,1,0,92,2,0,125,1,0,125,2,0,
+- 116,4,0,124,1,0,131,1,0,92,2,0,125,1,0,125,
+- 3,0,124,3,0,116,5,0,107,3,0,114,102,0,116,6,
+- 0,100,3,0,106,7,0,116,5,0,124,0,0,131,2,0,
+- 131,1,0,130,1,0,124,2,0,106,8,0,100,4,0,131,
+- 1,0,125,4,0,124,4,0,100,11,0,107,7,0,114,153,
+- 0,116,6,0,100,7,0,106,7,0,124,2,0,131,1,0,
+- 131,1,0,130,1,0,110,125,0,124,4,0,100,6,0,107,
+- 2,0,114,22,1,124,2,0,106,9,0,100,4,0,100,5,
+- 0,131,2,0,100,12,0,25,125,5,0,124,5,0,106,10,
+- 0,116,11,0,131,1,0,115,223,0,116,6,0,100,8,0,
+- 106,7,0,116,11,0,131,1,0,131,1,0,130,1,0,124,
+- 5,0,116,12,0,116,11,0,131,1,0,100,1,0,133,2,
+- 0,25,125,6,0,124,6,0,106,13,0,131,0,0,115,22,
+- 1,116,6,0,100,9,0,106,7,0,124,5,0,131,1,0,
+- 131,1,0,130,1,0,124,2,0,106,14,0,100,4,0,131,
+- 1,0,100,10,0,25,125,7,0,116,15,0,124,1,0,124,
+- 7,0,116,16,0,100,10,0,25,23,131,2,0,83,41,13,
+- 97,110,1,0,0,71,105,118,101,110,32,116,104,101,32,112,
+- 97,116,104,32,116,111,32,97,32,46,112,121,99,46,32,102,
+- 105,108,101,44,32,114,101,116,117,114,110,32,116,104,101,32,
+- 112,97,116,104,32,116,111,32,105,116,115,32,46,112,121,32,
+- 102,105,108,101,46,10,10,32,32,32,32,84,104,101,32,46,
+- 112,121,99,32,102,105,108,101,32,100,111,101,115,32,110,111,
+- 116,32,110,101,101,100,32,116,111,32,101,120,105,115,116,59,
+- 32,116,104,105,115,32,115,105,109,112,108,121,32,114,101,116,
+- 117,114,110,115,32,116,104,101,32,112,97,116,104,32,116,111,
+- 10,32,32,32,32,116,104,101,32,46,112,121,32,102,105,108,
+- 101,32,99,97,108,99,117,108,97,116,101,100,32,116,111,32,
+- 99,111,114,114,101,115,112,111,110,100,32,116,111,32,116,104,
+- 101,32,46,112,121,99,32,102,105,108,101,46,32,32,73,102,
+- 32,112,97,116,104,32,100,111,101,115,10,32,32,32,32,110,
+- 111,116,32,99,111,110,102,111,114,109,32,116,111,32,80,69,
+- 80,32,51,49,52,55,47,52,56,56,32,102,111,114,109,97,
+- 116,44,32,86,97,108,117,101,69,114,114,111,114,32,119,105,
+- 108,108,32,98,101,32,114,97,105,115,101,100,46,32,73,102,
+- 10,32,32,32,32,115,121,115,46,105,109,112,108,101,109,101,
+- 110,116,97,116,105,111,110,46,99,97,99,104,101,95,116,97,
+- 103,32,105,115,32,78,111,110,101,32,116,104,101,110,32,78,
+- 111,116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,
+- 111,114,32,105,115,32,114,97,105,115,101,100,46,10,10,32,
+- 32,32,32,78,122,36,115,121,115,46,105,109,112,108,101,109,
+- 101,110,116,97,116,105,111,110,46,99,97,99,104,101,95,116,
+- 97,103,32,105,115,32,78,111,110,101,122,37,123,125,32,110,
+- 111,116,32,98,111,116,116,111,109,45,108,101,118,101,108,32,
+- 100,105,114,101,99,116,111,114,121,32,105,110,32,123,33,114,
+- 125,114,60,0,0,0,114,58,0,0,0,233,3,0,0,0,
+- 122,33,101,120,112,101,99,116,101,100,32,111,110,108,121,32,
+- 50,32,111,114,32,51,32,100,111,116,115,32,105,110,32,123,
+- 33,114,125,122,57,111,112,116,105,109,105,122,97,116,105,111,
+- 110,32,112,111,114,116,105,111,110,32,111,102,32,102,105,108,
+- 101,110,97,109,101,32,100,111,101,115,32,110,111,116,32,115,
+- 116,97,114,116,32,119,105,116,104,32,123,33,114,125,122,52,
+- 111,112,116,105,109,105,122,97,116,105,111,110,32,108,101,118,
+- 101,108,32,123,33,114,125,32,105,115,32,110,111,116,32,97,
+- 110,32,97,108,112,104,97,110,117,109,101,114,105,99,32,118,
+- 97,108,117,101,114,61,0,0,0,62,2,0,0,0,114,58,
+- 0,0,0,114,82,0,0,0,233,254,255,255,255,41,17,114,
+- 8,0,0,0,114,66,0,0,0,114,67,0,0,0,114,68,
+- 0,0,0,114,40,0,0,0,114,75,0,0,0,114,73,0,
+- 0,0,114,49,0,0,0,218,5,99,111,117,110,116,114,36,
+- 0,0,0,114,10,0,0,0,114,74,0,0,0,114,33,0,
+- 0,0,114,72,0,0,0,218,9,112,97,114,116,105,116,105,
+- 111,110,114,30,0,0,0,218,15,83,79,85,82,67,69,95,
+- 83,85,70,70,73,88,69,83,41,8,114,37,0,0,0,114,
+- 78,0,0,0,90,16,112,121,99,97,99,104,101,95,102,105,
+- 108,101,110,97,109,101,90,7,112,121,99,97,99,104,101,90,
+- 9,100,111,116,95,99,111,117,110,116,114,59,0,0,0,90,
+- 9,111,112,116,95,108,101,118,101,108,90,13,98,97,115,101,
++ 115,100,105,114,46,105,0,64,0,0,41,3,114,3,0,0,
++ 0,218,6,103,101,116,99,119,100,114,45,0,0,0,41,1,
++ 114,37,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
++ 6,0,0,0,218,11,95,112,97,116,104,95,105,115,100,105,
++ 114,99,0,0,0,115,6,0,0,0,0,2,6,1,12,1,
++ 114,48,0,0,0,105,182,1,0,0,99,3,0,0,0,0,
++ 0,0,0,6,0,0,0,17,0,0,0,67,0,0,0,115,
++ 193,0,0,0,100,1,0,106,0,0,124,0,0,116,1,0,
++ 124,0,0,131,1,0,131,2,0,125,3,0,116,2,0,106,
++ 3,0,124,3,0,116,2,0,106,4,0,116,2,0,106,5,
++ 0,66,116,2,0,106,6,0,66,124,2,0,100,2,0,64,
++ 131,3,0,125,4,0,121,61,0,116,7,0,106,8,0,124,
++ 4,0,100,3,0,131,2,0,143,20,0,125,5,0,124,5,
++ 0,106,9,0,124,1,0,131,1,0,1,87,100,4,0,81,
++ 82,88,116,2,0,106,10,0,124,3,0,124,0,0,131,2,
++ 0,1,87,110,59,0,4,116,11,0,107,10,0,114,188,0,
++ 1,1,1,121,17,0,116,2,0,106,12,0,124,3,0,131,
++ 1,0,1,87,110,18,0,4,116,11,0,107,10,0,114,180,
++ 0,1,1,1,89,110,1,0,88,130,0,0,89,110,1,0,
++ 88,100,4,0,83,41,5,122,162,66,101,115,116,45,101,102,
++ 102,111,114,116,32,102,117,110,99,116,105,111,110,32,116,111,
++ 32,119,114,105,116,101,32,100,97,116,97,32,116,111,32,97,
++ 32,112,97,116,104,32,97,116,111,109,105,99,97,108,108,121,
++ 46,10,32,32,32,32,66,101,32,112,114,101,112,97,114,101,
++ 100,32,116,111,32,104,97,110,100,108,101,32,97,32,70,105,
++ 108,101,69,120,105,115,116,115,69,114,114,111,114,32,105,102,
++ 32,99,111,110,99,117,114,114,101,110,116,32,119,114,105,116,
++ 105,110,103,32,111,102,32,116,104,101,10,32,32,32,32,116,
++ 101,109,112,111,114,97,114,121,32,102,105,108,101,32,105,115,
++ 32,97,116,116,101,109,112,116,101,100,46,122,5,123,125,46,
++ 123,125,105,182,1,0,0,90,2,119,98,78,41,13,218,6,
++ 102,111,114,109,97,116,218,2,105,100,114,3,0,0,0,90,
++ 4,111,112,101,110,90,6,79,95,69,88,67,76,90,7,79,
++ 95,67,82,69,65,84,90,8,79,95,87,82,79,78,76,89,
++ 218,3,95,105,111,218,6,70,105,108,101,73,79,218,5,119,
++ 114,105,116,101,218,7,114,101,112,108,97,99,101,114,42,0,
++ 0,0,90,6,117,110,108,105,110,107,41,6,114,37,0,0,
++ 0,218,4,100,97,116,97,114,44,0,0,0,90,8,112,97,
++ 116,104,95,116,109,112,90,2,102,100,218,4,102,105,108,101,
++ 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,
++ 13,95,119,114,105,116,101,95,97,116,111,109,105,99,106,0,
++ 0,0,115,26,0,0,0,0,5,24,1,9,1,33,1,3,
++ 3,21,1,20,1,20,1,13,1,3,1,17,1,13,1,5,
++ 1,114,57,0,0,0,105,23,13,0,0,233,2,0,0,0,
++ 114,15,0,0,0,115,2,0,0,0,13,10,105,23,13,13,
++ 10,122,65,77,97,103,105,99,32,110,117,109,98,101,114,32,
++ 109,105,115,109,97,116,99,104,32,40,116,104,101,32,105,115,
++ 115,117,101,50,55,50,56,54,32,119,111,114,107,97,114,111,
++ 117,110,100,32,105,115,32,102,111,114,32,51,46,53,32,111,
++ 110,108,121,41,105,22,13,0,0,90,11,95,95,112,121,99,
++ 97,99,104,101,95,95,122,4,111,112,116,45,122,3,46,112,
++ 121,122,4,46,112,121,99,78,218,12,111,112,116,105,109,105,
++ 122,97,116,105,111,110,99,2,0,0,0,1,0,0,0,11,
++ 0,0,0,6,0,0,0,67,0,0,0,115,87,1,0,0,
++ 124,1,0,100,1,0,107,9,0,114,76,0,116,0,0,106,
++ 1,0,100,2,0,116,2,0,131,2,0,1,124,2,0,100,
++ 1,0,107,9,0,114,58,0,100,3,0,125,3,0,116,3,
++ 0,124,3,0,131,1,0,130,1,0,124,1,0,114,70,0,
++ 100,4,0,110,3,0,100,5,0,125,2,0,116,4,0,124,
++ 0,0,131,1,0,92,2,0,125,4,0,125,5,0,124,5,
++ 0,106,5,0,100,6,0,131,1,0,92,3,0,125,6,0,
++ 125,7,0,125,8,0,116,6,0,106,7,0,106,8,0,125,
++ 9,0,124,9,0,100,1,0,107,8,0,114,154,0,116,9,
++ 0,100,7,0,131,1,0,130,1,0,100,4,0,106,10,0,
++ 124,6,0,114,172,0,124,6,0,110,3,0,124,8,0,124,
++ 7,0,124,9,0,103,3,0,131,1,0,125,10,0,124,2,
++ 0,100,1,0,107,8,0,114,241,0,116,6,0,106,11,0,
++ 106,12,0,100,8,0,107,2,0,114,229,0,100,4,0,125,
++ 2,0,110,12,0,116,6,0,106,11,0,106,12,0,125,2,
++ 0,116,13,0,124,2,0,131,1,0,125,2,0,124,2,0,
++ 100,4,0,107,3,0,114,63,1,124,2,0,106,14,0,131,
++ 0,0,115,42,1,116,15,0,100,9,0,106,16,0,124,2,
++ 0,131,1,0,131,1,0,130,1,0,100,10,0,106,16,0,
++ 124,10,0,116,17,0,124,2,0,131,3,0,125,10,0,116,
++ 18,0,124,4,0,116,19,0,124,10,0,116,20,0,100,8,
++ 0,25,23,131,3,0,83,41,11,97,254,2,0,0,71,105,
++ 118,101,110,32,116,104,101,32,112,97,116,104,32,116,111,32,
++ 97,32,46,112,121,32,102,105,108,101,44,32,114,101,116,117,
++ 114,110,32,116,104,101,32,112,97,116,104,32,116,111,32,105,
++ 116,115,32,46,112,121,99,32,102,105,108,101,46,10,10,32,
++ 32,32,32,84,104,101,32,46,112,121,32,102,105,108,101,32,
++ 100,111,101,115,32,110,111,116,32,110,101,101,100,32,116,111,
++ 32,101,120,105,115,116,59,32,116,104,105,115,32,115,105,109,
++ 112,108,121,32,114,101,116,117,114,110,115,32,116,104,101,32,
++ 112,97,116,104,32,116,111,32,116,104,101,10,32,32,32,32,
++ 46,112,121,99,32,102,105,108,101,32,99,97,108,99,117,108,
++ 97,116,101,100,32,97,115,32,105,102,32,116,104,101,32,46,
++ 112,121,32,102,105,108,101,32,119,101,114,101,32,105,109,112,
++ 111,114,116,101,100,46,10,10,32,32,32,32,84,104,101,32,
++ 39,111,112,116,105,109,105,122,97,116,105,111,110,39,32,112,
++ 97,114,97,109,101,116,101,114,32,99,111,110,116,114,111,108,
++ 115,32,116,104,101,32,112,114,101,115,117,109,101,100,32,111,
++ 112,116,105,109,105,122,97,116,105,111,110,32,108,101,118,101,
++ 108,32,111,102,10,32,32,32,32,116,104,101,32,98,121,116,
++ 101,99,111,100,101,32,102,105,108,101,46,32,73,102,32,39,
++ 111,112,116,105,109,105,122,97,116,105,111,110,39,32,105,115,
++ 32,110,111,116,32,78,111,110,101,44,32,116,104,101,32,115,
++ 116,114,105,110,103,32,114,101,112,114,101,115,101,110,116,97,
++ 116,105,111,110,10,32,32,32,32,111,102,32,116,104,101,32,
++ 97,114,103,117,109,101,110,116,32,105,115,32,116,97,107,101,
++ 110,32,97,110,100,32,118,101,114,105,102,105,101,100,32,116,
++ 111,32,98,101,32,97,108,112,104,97,110,117,109,101,114,105,
++ 99,32,40,101,108,115,101,32,86,97,108,117,101,69,114,114,
++ 111,114,10,32,32,32,32,105,115,32,114,97,105,115,101,100,
++ 41,46,10,10,32,32,32,32,84,104,101,32,100,101,98,117,
++ 103,95,111,118,101,114,114,105,100,101,32,112,97,114,97,109,
++ 101,116,101,114,32,105,115,32,100,101,112,114,101,99,97,116,
++ 101,100,46,32,73,102,32,100,101,98,117,103,95,111,118,101,
++ 114,114,105,100,101,32,105,115,32,110,111,116,32,78,111,110,
++ 101,44,10,32,32,32,32,97,32,84,114,117,101,32,118,97,
++ 108,117,101,32,105,115,32,116,104,101,32,115,97,109,101,32,
++ 97,115,32,115,101,116,116,105,110,103,32,39,111,112,116,105,
++ 109,105,122,97,116,105,111,110,39,32,116,111,32,116,104,101,
++ 32,101,109,112,116,121,32,115,116,114,105,110,103,10,32,32,
++ 32,32,119,104,105,108,101,32,97,32,70,97,108,115,101,32,
++ 118,97,108,117,101,32,105,115,32,101,113,117,105,118,97,108,
++ 101,110,116,32,116,111,32,115,101,116,116,105,110,103,32,39,
++ 111,112,116,105,109,105,122,97,116,105,111,110,39,32,116,111,
++ 32,39,49,39,46,10,10,32,32,32,32,73,102,32,115,121,
++ 115,46,105,109,112,108,101,109,101,110,116,97,116,105,111,110,
++ 46,99,97,99,104,101,95,116,97,103,32,105,115,32,78,111,
++ 110,101,32,116,104,101,110,32,78,111,116,73,109,112,108,101,
++ 109,101,110,116,101,100,69,114,114,111,114,32,105,115,32,114,
++ 97,105,115,101,100,46,10,10,32,32,32,32,78,122,70,116,
++ 104,101,32,100,101,98,117,103,95,111,118,101,114,114,105,100,
++ 101,32,112,97,114,97,109,101,116,101,114,32,105,115,32,100,
++ 101,112,114,101,99,97,116,101,100,59,32,117,115,101,32,39,
++ 111,112,116,105,109,105,122,97,116,105,111,110,39,32,105,110,
++ 115,116,101,97,100,122,50,100,101,98,117,103,95,111,118,101,
++ 114,114,105,100,101,32,111,114,32,111,112,116,105,109,105,122,
++ 97,116,105,111,110,32,109,117,115,116,32,98,101,32,115,101,
++ 116,32,116,111,32,78,111,110,101,114,32,0,0,0,114,31,
++ 0,0,0,218,1,46,122,36,115,121,115,46,105,109,112,108,
++ 101,109,101,110,116,97,116,105,111,110,46,99,97,99,104,101,
++ 95,116,97,103,32,105,115,32,78,111,110,101,233,0,0,0,
++ 0,122,24,123,33,114,125,32,105,115,32,110,111,116,32,97,
++ 108,112,104,97,110,117,109,101,114,105,99,122,7,123,125,46,
++ 123,125,123,125,41,21,218,9,95,119,97,114,110,105,110,103,
++ 115,218,4,119,97,114,110,218,18,68,101,112,114,101,99,97,
++ 116,105,111,110,87,97,114,110,105,110,103,218,9,84,121,112,
++ 101,69,114,114,111,114,114,40,0,0,0,114,34,0,0,0,
++ 114,8,0,0,0,218,14,105,109,112,108,101,109,101,110,116,
++ 97,116,105,111,110,218,9,99,97,99,104,101,95,116,97,103,
++ 218,19,78,111,116,73,109,112,108,101,109,101,110,116,101,100,
++ 69,114,114,111,114,114,28,0,0,0,218,5,102,108,97,103,
++ 115,218,8,111,112,116,105,109,105,122,101,218,3,115,116,114,
++ 218,7,105,115,97,108,110,117,109,218,10,86,97,108,117,101,
++ 69,114,114,111,114,114,49,0,0,0,218,4,95,79,80,84,
++ 114,30,0,0,0,218,8,95,80,89,67,65,67,72,69,218,
++ 17,66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,
++ 69,83,41,11,114,37,0,0,0,90,14,100,101,98,117,103,
++ 95,111,118,101,114,114,105,100,101,114,59,0,0,0,218,7,
++ 109,101,115,115,97,103,101,218,4,104,101,97,100,114,39,0,
++ 0,0,90,4,98,97,115,101,218,3,115,101,112,218,4,114,
++ 101,115,116,90,3,116,97,103,90,15,97,108,109,111,115,116,
+ 95,102,105,108,101,110,97,109,101,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,218,17,115,111,117,114,99,101,
+- 95,102,114,111,109,95,99,97,99,104,101,42,1,0,0,115,
+- 44,0,0,0,0,9,18,1,12,1,18,1,18,1,12,1,
+- 9,1,15,1,15,1,12,1,9,1,15,1,12,1,22,1,
+- 15,1,9,1,12,1,22,1,12,1,9,1,12,1,19,1,
+- 114,87,0,0,0,99,1,0,0,0,0,0,0,0,5,0,
+- 0,0,12,0,0,0,67,0,0,0,115,164,0,0,0,116,
+- 0,0,124,0,0,131,1,0,100,1,0,107,2,0,114,22,
+- 0,100,2,0,83,124,0,0,106,1,0,100,3,0,131,1,
+- 0,92,3,0,125,1,0,125,2,0,125,3,0,124,1,0,
+- 12,115,81,0,124,3,0,106,2,0,131,0,0,100,7,0,
+- 100,8,0,133,2,0,25,100,6,0,107,3,0,114,85,0,
+- 124,0,0,83,121,16,0,116,3,0,124,0,0,131,1,0,
+- 125,4,0,87,110,40,0,4,116,4,0,116,5,0,102,2,
+- 0,107,10,0,114,143,0,1,1,1,124,0,0,100,2,0,
+- 100,9,0,133,2,0,25,125,4,0,89,110,1,0,88,116,
+- 6,0,124,4,0,131,1,0,114,160,0,124,4,0,83,124,
+- 0,0,83,41,10,122,188,67,111,110,118,101,114,116,32,97,
+- 32,98,121,116,101,99,111,100,101,32,102,105,108,101,32,112,
+- 97,116,104,32,116,111,32,97,32,115,111,117,114,99,101,32,
+- 112,97,116,104,32,40,105,102,32,112,111,115,115,105,98,108,
+- 101,41,46,10,10,32,32,32,32,84,104,105,115,32,102,117,
+- 110,99,116,105,111,110,32,101,120,105,115,116,115,32,112,117,
+- 114,101,108,121,32,102,111,114,32,98,97,99,107,119,97,114,
+- 100,115,45,99,111,109,112,97,116,105,98,105,108,105,116,121,
+- 32,102,111,114,10,32,32,32,32,80,121,73,109,112,111,114,
+- 116,95,69,120,101,99,67,111,100,101,77,111,100,117,108,101,
+- 87,105,116,104,70,105,108,101,110,97,109,101,115,40,41,32,
+- 105,110,32,116,104,101,32,67,32,65,80,73,46,10,10,32,
+- 32,32,32,114,61,0,0,0,78,114,60,0,0,0,114,82,
+- 0,0,0,114,31,0,0,0,90,2,112,121,233,253,255,255,
+- 255,233,255,255,255,255,114,89,0,0,0,41,7,114,33,0,
+- 0,0,114,34,0,0,0,218,5,108,111,119,101,114,114,87,
+- 0,0,0,114,68,0,0,0,114,73,0,0,0,114,46,0,
+- 0,0,41,5,218,13,98,121,116,101,99,111,100,101,95,112,
+- 97,116,104,114,80,0,0,0,114,38,0,0,0,90,9,101,
+- 120,116,101,110,115,105,111,110,218,11,115,111,117,114,99,101,
+- 95,112,97,116,104,114,4,0,0,0,114,4,0,0,0,114,
+- 6,0,0,0,218,15,95,103,101,116,95,115,111,117,114,99,
+- 101,102,105,108,101,75,1,0,0,115,20,0,0,0,0,7,
+- 18,1,4,1,24,1,35,1,4,1,3,1,16,1,19,1,
+- 21,1,114,93,0,0,0,99,1,0,0,0,0,0,0,0,
+- 1,0,0,0,11,0,0,0,67,0,0,0,115,92,0,0,
+- 0,124,0,0,106,0,0,116,1,0,116,2,0,131,1,0,
+- 131,1,0,114,59,0,121,14,0,116,3,0,124,0,0,131,
+- 1,0,83,87,113,88,0,4,116,4,0,107,10,0,114,55,
+- 0,1,1,1,89,113,88,0,88,110,29,0,124,0,0,106,
+- 0,0,116,1,0,116,5,0,131,1,0,131,1,0,114,84,
+- 0,124,0,0,83,100,0,0,83,100,0,0,83,41,1,78,
+- 41,6,218,8,101,110,100,115,119,105,116,104,218,5,116,117,
+- 112,108,101,114,86,0,0,0,114,81,0,0,0,114,68,0,
+- 0,0,114,76,0,0,0,41,1,218,8,102,105,108,101,110,
+- 97,109,101,114,4,0,0,0,114,4,0,0,0,114,6,0,
+- 0,0,218,11,95,103,101,116,95,99,97,99,104,101,100,94,
+- 1,0,0,115,16,0,0,0,0,1,21,1,3,1,14,1,
+- 13,1,8,1,21,1,4,2,114,97,0,0,0,99,1,0,
+- 0,0,0,0,0,0,2,0,0,0,11,0,0,0,67,0,
+- 0,0,115,60,0,0,0,121,19,0,116,0,0,124,0,0,
+- 131,1,0,106,1,0,125,1,0,87,110,24,0,4,116,2,
+- 0,107,10,0,114,45,0,1,1,1,100,1,0,125,1,0,
+- 89,110,1,0,88,124,1,0,100,2,0,79,125,1,0,124,
+- 1,0,83,41,3,122,51,67,97,108,99,117,108,97,116,101,
+- 32,116,104,101,32,109,111,100,101,32,112,101,114,109,105,115,
+- 115,105,111,110,115,32,102,111,114,32,97,32,98,121,116,101,
+- 99,111,100,101,32,102,105,108,101,46,105,182,1,0,0,233,
+- 128,0,0,0,41,3,114,41,0,0,0,114,43,0,0,0,
+- 114,42,0,0,0,41,2,114,37,0,0,0,114,44,0,0,
++ 0,0,0,114,6,0,0,0,218,17,99,97,99,104,101,95,
++ 102,114,111,109,95,115,111,117,114,99,101,20,1,0,0,115,
++ 46,0,0,0,0,18,12,1,9,1,7,1,12,1,6,1,
++ 12,1,18,1,18,1,24,1,12,1,12,1,12,1,36,1,
++ 12,1,18,1,9,2,12,1,12,1,12,1,12,1,21,1,
++ 21,1,114,81,0,0,0,99,1,0,0,0,0,0,0,0,
++ 8,0,0,0,5,0,0,0,67,0,0,0,115,62,1,0,
++ 0,116,0,0,106,1,0,106,2,0,100,1,0,107,8,0,
++ 114,30,0,116,3,0,100,2,0,131,1,0,130,1,0,116,
++ 4,0,124,0,0,131,1,0,92,2,0,125,1,0,125,2,
++ 0,116,4,0,124,1,0,131,1,0,92,2,0,125,1,0,
++ 125,3,0,124,3,0,116,5,0,107,3,0,114,102,0,116,
++ 6,0,100,3,0,106,7,0,116,5,0,124,0,0,131,2,
++ 0,131,1,0,130,1,0,124,2,0,106,8,0,100,4,0,
++ 131,1,0,125,4,0,124,4,0,100,11,0,107,7,0,114,
++ 153,0,116,6,0,100,7,0,106,7,0,124,2,0,131,1,
++ 0,131,1,0,130,1,0,110,125,0,124,4,0,100,6,0,
++ 107,2,0,114,22,1,124,2,0,106,9,0,100,4,0,100,
++ 5,0,131,2,0,100,12,0,25,125,5,0,124,5,0,106,
++ 10,0,116,11,0,131,1,0,115,223,0,116,6,0,100,8,
++ 0,106,7,0,116,11,0,131,1,0,131,1,0,130,1,0,
++ 124,5,0,116,12,0,116,11,0,131,1,0,100,1,0,133,
++ 2,0,25,125,6,0,124,6,0,106,13,0,131,0,0,115,
++ 22,1,116,6,0,100,9,0,106,7,0,124,5,0,131,1,
++ 0,131,1,0,130,1,0,124,2,0,106,14,0,100,4,0,
++ 131,1,0,100,10,0,25,125,7,0,116,15,0,124,1,0,
++ 124,7,0,116,16,0,100,10,0,25,23,131,2,0,83,41,
++ 13,97,110,1,0,0,71,105,118,101,110,32,116,104,101,32,
++ 112,97,116,104,32,116,111,32,97,32,46,112,121,99,46,32,
++ 102,105,108,101,44,32,114,101,116,117,114,110,32,116,104,101,
++ 32,112,97,116,104,32,116,111,32,105,116,115,32,46,112,121,
++ 32,102,105,108,101,46,10,10,32,32,32,32,84,104,101,32,
++ 46,112,121,99,32,102,105,108,101,32,100,111,101,115,32,110,
++ 111,116,32,110,101,101,100,32,116,111,32,101,120,105,115,116,
++ 59,32,116,104,105,115,32,115,105,109,112,108,121,32,114,101,
++ 116,117,114,110,115,32,116,104,101,32,112,97,116,104,32,116,
++ 111,10,32,32,32,32,116,104,101,32,46,112,121,32,102,105,
++ 108,101,32,99,97,108,99,117,108,97,116,101,100,32,116,111,
++ 32,99,111,114,114,101,115,112,111,110,100,32,116,111,32,116,
++ 104,101,32,46,112,121,99,32,102,105,108,101,46,32,32,73,
++ 102,32,112,97,116,104,32,100,111,101,115,10,32,32,32,32,
++ 110,111,116,32,99,111,110,102,111,114,109,32,116,111,32,80,
++ 69,80,32,51,49,52,55,47,52,56,56,32,102,111,114,109,
++ 97,116,44,32,86,97,108,117,101,69,114,114,111,114,32,119,
++ 105,108,108,32,98,101,32,114,97,105,115,101,100,46,32,73,
++ 102,10,32,32,32,32,115,121,115,46,105,109,112,108,101,109,
++ 101,110,116,97,116,105,111,110,46,99,97,99,104,101,95,116,
++ 97,103,32,105,115,32,78,111,110,101,32,116,104,101,110,32,
++ 78,111,116,73,109,112,108,101,109,101,110,116,101,100,69,114,
++ 114,111,114,32,105,115,32,114,97,105,115,101,100,46,10,10,
++ 32,32,32,32,78,122,36,115,121,115,46,105,109,112,108,101,
++ 109,101,110,116,97,116,105,111,110,46,99,97,99,104,101,95,
++ 116,97,103,32,105,115,32,78,111,110,101,122,37,123,125,32,
++ 110,111,116,32,98,111,116,116,111,109,45,108,101,118,101,108,
++ 32,100,105,114,101,99,116,111,114,121,32,105,110,32,123,33,
++ 114,125,114,60,0,0,0,114,58,0,0,0,233,3,0,0,
++ 0,122,33,101,120,112,101,99,116,101,100,32,111,110,108,121,
++ 32,50,32,111,114,32,51,32,100,111,116,115,32,105,110,32,
++ 123,33,114,125,122,57,111,112,116,105,109,105,122,97,116,105,
++ 111,110,32,112,111,114,116,105,111,110,32,111,102,32,102,105,
++ 108,101,110,97,109,101,32,100,111,101,115,32,110,111,116,32,
++ 115,116,97,114,116,32,119,105,116,104,32,123,33,114,125,122,
++ 52,111,112,116,105,109,105,122,97,116,105,111,110,32,108,101,
++ 118,101,108,32,123,33,114,125,32,105,115,32,110,111,116,32,
++ 97,110,32,97,108,112,104,97,110,117,109,101,114,105,99,32,
++ 118,97,108,117,101,114,61,0,0,0,62,2,0,0,0,114,
++ 58,0,0,0,114,82,0,0,0,233,254,255,255,255,41,17,
++ 114,8,0,0,0,114,66,0,0,0,114,67,0,0,0,114,
++ 68,0,0,0,114,40,0,0,0,114,75,0,0,0,114,73,
++ 0,0,0,114,49,0,0,0,218,5,99,111,117,110,116,114,
++ 36,0,0,0,114,10,0,0,0,114,74,0,0,0,114,33,
++ 0,0,0,114,72,0,0,0,218,9,112,97,114,116,105,116,
++ 105,111,110,114,30,0,0,0,218,15,83,79,85,82,67,69,
++ 95,83,85,70,70,73,88,69,83,41,8,114,37,0,0,0,
++ 114,78,0,0,0,90,16,112,121,99,97,99,104,101,95,102,
++ 105,108,101,110,97,109,101,90,7,112,121,99,97,99,104,101,
++ 90,9,100,111,116,95,99,111,117,110,116,114,59,0,0,0,
++ 90,9,111,112,116,95,108,101,118,101,108,90,13,98,97,115,
++ 101,95,102,105,108,101,110,97,109,101,114,4,0,0,0,114,
++ 4,0,0,0,114,6,0,0,0,218,17,115,111,117,114,99,
++ 101,95,102,114,111,109,95,99,97,99,104,101,64,1,0,0,
++ 115,44,0,0,0,0,9,18,1,12,1,18,1,18,1,12,
++ 1,9,1,15,1,15,1,12,1,9,1,15,1,12,1,22,
++ 1,15,1,9,1,12,1,22,1,12,1,9,1,12,1,19,
++ 1,114,87,0,0,0,99,1,0,0,0,0,0,0,0,5,
++ 0,0,0,12,0,0,0,67,0,0,0,115,164,0,0,0,
++ 116,0,0,124,0,0,131,1,0,100,1,0,107,2,0,114,
++ 22,0,100,2,0,83,124,0,0,106,1,0,100,3,0,131,
++ 1,0,92,3,0,125,1,0,125,2,0,125,3,0,124,1,
++ 0,12,115,81,0,124,3,0,106,2,0,131,0,0,100,7,
++ 0,100,8,0,133,2,0,25,100,6,0,107,3,0,114,85,
++ 0,124,0,0,83,121,16,0,116,3,0,124,0,0,131,1,
++ 0,125,4,0,87,110,40,0,4,116,4,0,116,5,0,102,
++ 2,0,107,10,0,114,143,0,1,1,1,124,0,0,100,2,
++ 0,100,9,0,133,2,0,25,125,4,0,89,110,1,0,88,
++ 116,6,0,124,4,0,131,1,0,114,160,0,124,4,0,83,
++ 124,0,0,83,41,10,122,188,67,111,110,118,101,114,116,32,
++ 97,32,98,121,116,101,99,111,100,101,32,102,105,108,101,32,
++ 112,97,116,104,32,116,111,32,97,32,115,111,117,114,99,101,
++ 32,112,97,116,104,32,40,105,102,32,112,111,115,115,105,98,
++ 108,101,41,46,10,10,32,32,32,32,84,104,105,115,32,102,
++ 117,110,99,116,105,111,110,32,101,120,105,115,116,115,32,112,
++ 117,114,101,108,121,32,102,111,114,32,98,97,99,107,119,97,
++ 114,100,115,45,99,111,109,112,97,116,105,98,105,108,105,116,
++ 121,32,102,111,114,10,32,32,32,32,80,121,73,109,112,111,
++ 114,116,95,69,120,101,99,67,111,100,101,77,111,100,117,108,
++ 101,87,105,116,104,70,105,108,101,110,97,109,101,115,40,41,
++ 32,105,110,32,116,104,101,32,67,32,65,80,73,46,10,10,
++ 32,32,32,32,114,61,0,0,0,78,114,60,0,0,0,114,
++ 82,0,0,0,114,31,0,0,0,90,2,112,121,233,253,255,
++ 255,255,233,255,255,255,255,114,89,0,0,0,41,7,114,33,
++ 0,0,0,114,34,0,0,0,218,5,108,111,119,101,114,114,
++ 87,0,0,0,114,68,0,0,0,114,73,0,0,0,114,46,
++ 0,0,0,41,5,218,13,98,121,116,101,99,111,100,101,95,
++ 112,97,116,104,114,80,0,0,0,114,38,0,0,0,90,9,
++ 101,120,116,101,110,115,105,111,110,218,11,115,111,117,114,99,
++ 101,95,112,97,116,104,114,4,0,0,0,114,4,0,0,0,
++ 114,6,0,0,0,218,15,95,103,101,116,95,115,111,117,114,
++ 99,101,102,105,108,101,97,1,0,0,115,20,0,0,0,0,
++ 7,18,1,4,1,24,1,35,1,4,1,3,1,16,1,19,
++ 1,21,1,114,93,0,0,0,99,1,0,0,0,0,0,0,
++ 0,1,0,0,0,11,0,0,0,67,0,0,0,115,92,0,
++ 0,0,124,0,0,106,0,0,116,1,0,116,2,0,131,1,
++ 0,131,1,0,114,59,0,121,14,0,116,3,0,124,0,0,
++ 131,1,0,83,87,113,88,0,4,116,4,0,107,10,0,114,
++ 55,0,1,1,1,89,113,88,0,88,110,29,0,124,0,0,
++ 106,0,0,116,1,0,116,5,0,131,1,0,131,1,0,114,
++ 84,0,124,0,0,83,100,0,0,83,100,0,0,83,41,1,
++ 78,41,6,218,8,101,110,100,115,119,105,116,104,218,5,116,
++ 117,112,108,101,114,86,0,0,0,114,81,0,0,0,114,68,
++ 0,0,0,114,76,0,0,0,41,1,218,8,102,105,108,101,
++ 110,97,109,101,114,4,0,0,0,114,4,0,0,0,114,6,
++ 0,0,0,218,11,95,103,101,116,95,99,97,99,104,101,100,
++ 116,1,0,0,115,16,0,0,0,0,1,21,1,3,1,14,
++ 1,13,1,8,1,21,1,4,2,114,97,0,0,0,99,1,
++ 0,0,0,0,0,0,0,2,0,0,0,11,0,0,0,67,
++ 0,0,0,115,60,0,0,0,121,19,0,116,0,0,124,0,
++ 0,131,1,0,106,1,0,125,1,0,87,110,24,0,4,116,
++ 2,0,107,10,0,114,45,0,1,1,1,100,1,0,125,1,
++ 0,89,110,1,0,88,124,1,0,100,2,0,79,125,1,0,
++ 124,1,0,83,41,3,122,51,67,97,108,99,117,108,97,116,
++ 101,32,116,104,101,32,109,111,100,101,32,112,101,114,109,105,
++ 115,115,105,111,110,115,32,102,111,114,32,97,32,98,121,116,
++ 101,99,111,100,101,32,102,105,108,101,46,105,182,1,0,0,
++ 233,128,0,0,0,41,3,114,41,0,0,0,114,43,0,0,
++ 0,114,42,0,0,0,41,2,114,37,0,0,0,114,44,0,
++ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
++ 0,218,10,95,99,97,108,99,95,109,111,100,101,128,1,0,
++ 0,115,12,0,0,0,0,2,3,1,19,1,13,1,11,3,
++ 10,1,114,99,0,0,0,218,9,118,101,114,98,111,115,105,
++ 116,121,114,31,0,0,0,99,1,0,0,0,1,0,0,0,
++ 3,0,0,0,4,0,0,0,71,0,0,0,115,75,0,0,
++ 0,116,0,0,106,1,0,106,2,0,124,1,0,107,5,0,
++ 114,71,0,124,0,0,106,3,0,100,6,0,131,1,0,115,
++ 43,0,100,3,0,124,0,0,23,125,0,0,116,4,0,124,
++ 0,0,106,5,0,124,2,0,140,0,0,100,4,0,116,0,
++ 0,106,6,0,131,1,1,1,100,5,0,83,41,7,122,61,
++ 80,114,105,110,116,32,116,104,101,32,109,101,115,115,97,103,
++ 101,32,116,111,32,115,116,100,101,114,114,32,105,102,32,45,
++ 118,47,80,89,84,72,79,78,86,69,82,66,79,83,69,32,
++ 105,115,32,116,117,114,110,101,100,32,111,110,46,250,1,35,
++ 250,7,105,109,112,111,114,116,32,122,2,35,32,114,56,0,
++ 0,0,78,41,2,114,101,0,0,0,114,102,0,0,0,41,
++ 7,114,8,0,0,0,114,69,0,0,0,218,7,118,101,114,
++ 98,111,115,101,114,10,0,0,0,218,5,112,114,105,110,116,
++ 114,49,0,0,0,218,6,115,116,100,101,114,114,41,3,114,
++ 77,0,0,0,114,100,0,0,0,218,4,97,114,103,115,114,
++ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,16,
++ 95,118,101,114,98,111,115,101,95,109,101,115,115,97,103,101,
++ 140,1,0,0,115,8,0,0,0,0,2,18,1,15,1,10,
++ 1,114,107,0,0,0,99,1,0,0,0,0,0,0,0,3,
++ 0,0,0,11,0,0,0,3,0,0,0,115,84,0,0,0,
++ 100,1,0,135,0,0,102,1,0,100,2,0,100,3,0,134,
++ 1,0,125,1,0,121,13,0,116,0,0,106,1,0,125,2,
++ 0,87,110,30,0,4,116,2,0,107,10,0,114,66,0,1,
++ 1,1,100,4,0,100,5,0,132,0,0,125,2,0,89,110,
++ 1,0,88,124,2,0,124,1,0,136,0,0,131,2,0,1,
++ 124,1,0,83,41,6,122,252,68,101,99,111,114,97,116,111,
++ 114,32,116,111,32,118,101,114,105,102,121,32,116,104,97,116,
++ 32,116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,
++ 103,32,114,101,113,117,101,115,116,101,100,32,109,97,116,99,
++ 104,101,115,32,116,104,101,32,111,110,101,32,116,104,101,10,
++ 32,32,32,32,108,111,97,100,101,114,32,99,97,110,32,104,
++ 97,110,100,108,101,46,10,10,32,32,32,32,84,104,101,32,
++ 102,105,114,115,116,32,97,114,103,117,109,101,110,116,32,40,
++ 115,101,108,102,41,32,109,117,115,116,32,100,101,102,105,110,
++ 101,32,95,110,97,109,101,32,119,104,105,99,104,32,116,104,
++ 101,32,115,101,99,111,110,100,32,97,114,103,117,109,101,110,
++ 116,32,105,115,10,32,32,32,32,99,111,109,112,97,114,101,
++ 100,32,97,103,97,105,110,115,116,46,32,73,102,32,116,104,
++ 101,32,99,111,109,112,97,114,105,115,111,110,32,102,97,105,
++ 108,115,32,116,104,101,110,32,73,109,112,111,114,116,69,114,
++ 114,111,114,32,105,115,32,114,97,105,115,101,100,46,10,10,
++ 32,32,32,32,78,99,2,0,0,0,0,0,0,0,4,0,
++ 0,0,5,0,0,0,31,0,0,0,115,89,0,0,0,124,
++ 1,0,100,0,0,107,8,0,114,24,0,124,0,0,106,0,
++ 0,125,1,0,110,46,0,124,0,0,106,0,0,124,1,0,
++ 107,3,0,114,70,0,116,1,0,100,1,0,124,0,0,106,
++ 0,0,124,1,0,102,2,0,22,100,2,0,124,1,0,131,
++ 1,1,130,1,0,136,0,0,124,0,0,124,1,0,124,2,
++ 0,124,3,0,142,2,0,83,41,3,78,122,30,108,111,97,
++ 100,101,114,32,102,111,114,32,37,115,32,99,97,110,110,111,
++ 116,32,104,97,110,100,108,101,32,37,115,218,4,110,97,109,
++ 101,41,2,114,108,0,0,0,218,11,73,109,112,111,114,116,
++ 69,114,114,111,114,41,4,218,4,115,101,108,102,114,108,0,
++ 0,0,114,106,0,0,0,90,6,107,119,97,114,103,115,41,
++ 1,218,6,109,101,116,104,111,100,114,4,0,0,0,114,6,
++ 0,0,0,218,19,95,99,104,101,99,107,95,110,97,109,101,
++ 95,119,114,97,112,112,101,114,156,1,0,0,115,12,0,0,
++ 0,0,1,12,1,12,1,15,1,6,1,25,1,122,40,95,
++ 99,104,101,99,107,95,110,97,109,101,46,60,108,111,99,97,
++ 108,115,62,46,95,99,104,101,99,107,95,110,97,109,101,95,
++ 119,114,97,112,112,101,114,99,2,0,0,0,0,0,0,0,
++ 3,0,0,0,7,0,0,0,83,0,0,0,115,92,0,0,
++ 0,120,66,0,100,1,0,100,2,0,100,3,0,100,4,0,
++ 103,4,0,68,93,46,0,125,2,0,116,0,0,124,1,0,
++ 124,2,0,131,2,0,114,19,0,116,1,0,124,0,0,124,
++ 2,0,116,2,0,124,1,0,124,2,0,131,2,0,131,3,
++ 0,1,113,19,0,87,124,0,0,106,3,0,106,4,0,124,
++ 1,0,106,3,0,131,1,0,1,100,0,0,83,41,5,78,
++ 218,10,95,95,109,111,100,117,108,101,95,95,218,8,95,95,
++ 110,97,109,101,95,95,218,12,95,95,113,117,97,108,110,97,
++ 109,101,95,95,218,7,95,95,100,111,99,95,95,41,5,218,
++ 7,104,97,115,97,116,116,114,218,7,115,101,116,97,116,116,
++ 114,218,7,103,101,116,97,116,116,114,218,8,95,95,100,105,
++ 99,116,95,95,218,6,117,112,100,97,116,101,41,3,90,3,
++ 110,101,119,90,3,111,108,100,114,54,0,0,0,114,4,0,
++ 0,0,114,4,0,0,0,114,6,0,0,0,218,5,95,119,
++ 114,97,112,167,1,0,0,115,8,0,0,0,0,1,25,1,
++ 15,1,29,1,122,26,95,99,104,101,99,107,95,110,97,109,
++ 101,46,60,108,111,99,97,108,115,62,46,95,119,114,97,112,
++ 41,3,218,10,95,98,111,111,116,115,116,114,97,112,114,122,
++ 0,0,0,218,9,78,97,109,101,69,114,114,111,114,41,3,
++ 114,111,0,0,0,114,112,0,0,0,114,122,0,0,0,114,
++ 4,0,0,0,41,1,114,111,0,0,0,114,6,0,0,0,
++ 218,11,95,99,104,101,99,107,95,110,97,109,101,148,1,0,
++ 0,115,14,0,0,0,0,8,21,7,3,1,13,1,13,2,
++ 17,5,13,1,114,125,0,0,0,99,2,0,0,0,0,0,
++ 0,0,5,0,0,0,4,0,0,0,67,0,0,0,115,84,
++ 0,0,0,124,0,0,106,0,0,124,1,0,131,1,0,92,
++ 2,0,125,2,0,125,3,0,124,2,0,100,1,0,107,8,
++ 0,114,80,0,116,1,0,124,3,0,131,1,0,114,80,0,
++ 100,2,0,125,4,0,116,2,0,106,3,0,124,4,0,106,
++ 4,0,124,3,0,100,3,0,25,131,1,0,116,5,0,131,
++ 2,0,1,124,2,0,83,41,4,122,155,84,114,121,32,116,
++ 111,32,102,105,110,100,32,97,32,108,111,97,100,101,114,32,
++ 102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,
++ 100,32,109,111,100,117,108,101,32,98,121,32,100,101,108,101,
++ 103,97,116,105,110,103,32,116,111,10,32,32,32,32,115,101,
++ 108,102,46,102,105,110,100,95,108,111,97,100,101,114,40,41,
++ 46,10,10,32,32,32,32,84,104,105,115,32,109,101,116,104,
++ 111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,
++ 32,105,110,32,102,97,118,111,114,32,111,102,32,102,105,110,
++ 100,101,114,46,102,105,110,100,95,115,112,101,99,40,41,46,
++ 10,10,32,32,32,32,78,122,44,78,111,116,32,105,109,112,
++ 111,114,116,105,110,103,32,100,105,114,101,99,116,111,114,121,
++ 32,123,125,58,32,109,105,115,115,105,110,103,32,95,95,105,
++ 110,105,116,95,95,114,61,0,0,0,41,6,218,11,102,105,
++ 110,100,95,108,111,97,100,101,114,114,33,0,0,0,114,62,
++ 0,0,0,114,63,0,0,0,114,49,0,0,0,218,13,73,
++ 109,112,111,114,116,87,97,114,110,105,110,103,41,5,114,110,
++ 0,0,0,218,8,102,117,108,108,110,97,109,101,218,6,108,
++ 111,97,100,101,114,218,8,112,111,114,116,105,111,110,115,218,
++ 3,109,115,103,114,4,0,0,0,114,4,0,0,0,114,6,
++ 0,0,0,218,17,95,102,105,110,100,95,109,111,100,117,108,
++ 101,95,115,104,105,109,176,1,0,0,115,10,0,0,0,0,
++ 10,21,1,24,1,6,1,29,1,114,132,0,0,0,99,4,
++ 0,0,0,0,0,0,0,11,0,0,0,19,0,0,0,67,
++ 0,0,0,115,252,1,0,0,105,0,0,125,4,0,124,2,
++ 0,100,1,0,107,9,0,114,31,0,124,2,0,124,4,0,
++ 100,2,0,60,110,6,0,100,3,0,125,2,0,124,3,0,
++ 100,1,0,107,9,0,114,59,0,124,3,0,124,4,0,100,
++ 4,0,60,124,0,0,100,1,0,100,5,0,133,2,0,25,
++ 125,5,0,124,0,0,100,5,0,100,6,0,133,2,0,25,
++ 125,6,0,124,0,0,100,6,0,100,7,0,133,2,0,25,
++ 125,7,0,124,5,0,116,0,0,107,3,0,114,180,0,124,
++ 5,0,116,1,0,107,3,0,114,180,0,100,8,0,106,2,
++ 0,124,2,0,124,5,0,131,2,0,125,8,0,116,3,0,
++ 100,9,0,124,8,0,131,2,0,1,116,4,0,124,8,0,
++ 124,4,0,141,1,0,130,1,0,110,119,0,116,5,0,124,
++ 6,0,131,1,0,100,5,0,107,3,0,114,241,0,100,10,
++ 0,106,2,0,124,2,0,131,1,0,125,8,0,116,3,0,
++ 100,9,0,124,8,0,131,2,0,1,116,6,0,124,8,0,
++ 131,1,0,130,1,0,110,58,0,116,5,0,124,7,0,131,
++ 1,0,100,5,0,107,3,0,114,43,1,100,11,0,106,2,
++ 0,124,2,0,131,1,0,125,8,0,116,3,0,100,9,0,
++ 124,8,0,131,2,0,1,116,6,0,124,8,0,131,1,0,
++ 130,1,0,124,1,0,100,1,0,107,9,0,114,238,1,121,
++ 20,0,116,7,0,124,1,0,100,12,0,25,131,1,0,125,
++ 9,0,87,110,18,0,4,116,8,0,107,10,0,114,95,1,
++ 1,1,1,89,110,62,0,88,116,9,0,124,6,0,131,1,
++ 0,124,9,0,107,3,0,114,157,1,100,13,0,106,2,0,
++ 124,2,0,131,1,0,125,8,0,116,3,0,100,9,0,124,
++ 8,0,131,2,0,1,116,4,0,124,8,0,124,4,0,141,
++ 1,0,130,1,0,121,18,0,124,1,0,100,14,0,25,100,
++ 15,0,64,125,10,0,87,110,18,0,4,116,8,0,107,10,
++ 0,114,195,1,1,1,1,89,110,43,0,88,116,9,0,124,
++ 7,0,131,1,0,124,10,0,107,3,0,114,238,1,116,4,
++ 0,100,13,0,106,2,0,124,2,0,131,1,0,124,4,0,
++ 141,1,0,130,1,0,124,0,0,100,7,0,100,1,0,133,
++ 2,0,25,83,41,16,97,122,1,0,0,86,97,108,105,100,
++ 97,116,101,32,116,104,101,32,104,101,97,100,101,114,32,111,
++ 102,32,116,104,101,32,112,97,115,115,101,100,45,105,110,32,
++ 98,121,116,101,99,111,100,101,32,97,103,97,105,110,115,116,
++ 32,115,111,117,114,99,101,95,115,116,97,116,115,32,40,105,
++ 102,10,32,32,32,32,103,105,118,101,110,41,32,97,110,100,
++ 32,114,101,116,117,114,110,105,110,103,32,116,104,101,32,98,
++ 121,116,101,99,111,100,101,32,116,104,97,116,32,99,97,110,
++ 32,98,101,32,99,111,109,112,105,108,101,100,32,98,121,32,
++ 99,111,109,112,105,108,101,40,41,46,10,10,32,32,32,32,
++ 65,108,108,32,111,116,104,101,114,32,97,114,103,117,109,101,
++ 110,116,115,32,97,114,101,32,117,115,101,100,32,116,111,32,
++ 101,110,104,97,110,99,101,32,101,114,114,111,114,32,114,101,
++ 112,111,114,116,105,110,103,46,10,10,32,32,32,32,73,109,
++ 112,111,114,116,69,114,114,111,114,32,105,115,32,114,97,105,
++ 115,101,100,32,119,104,101,110,32,116,104,101,32,109,97,103,
++ 105,99,32,110,117,109,98,101,114,32,105,115,32,105,110,99,
++ 111,114,114,101,99,116,32,111,114,32,116,104,101,32,98,121,
++ 116,101,99,111,100,101,32,105,115,10,32,32,32,32,102,111,
++ 117,110,100,32,116,111,32,98,101,32,115,116,97,108,101,46,
++ 32,69,79,70,69,114,114,111,114,32,105,115,32,114,97,105,
++ 115,101,100,32,119,104,101,110,32,116,104,101,32,100,97,116,
++ 97,32,105,115,32,102,111,117,110,100,32,116,111,32,98,101,
++ 10,32,32,32,32,116,114,117,110,99,97,116,101,100,46,10,
++ 10,32,32,32,32,78,114,108,0,0,0,122,10,60,98,121,
++ 116,101,99,111,100,101,62,114,37,0,0,0,114,14,0,0,
++ 0,233,8,0,0,0,233,12,0,0,0,122,30,98,97,100,
++ 32,109,97,103,105,99,32,110,117,109,98,101,114,32,105,110,
++ 32,123,33,114,125,58,32,123,33,114,125,122,2,123,125,122,
++ 43,114,101,97,99,104,101,100,32,69,79,70,32,119,104,105,
++ 108,101,32,114,101,97,100,105,110,103,32,116,105,109,101,115,
++ 116,97,109,112,32,105,110,32,123,33,114,125,122,48,114,101,
++ 97,99,104,101,100,32,69,79,70,32,119,104,105,108,101,32,
++ 114,101,97,100,105,110,103,32,115,105,122,101,32,111,102,32,
++ 115,111,117,114,99,101,32,105,110,32,123,33,114,125,218,5,
++ 109,116,105,109,101,122,26,98,121,116,101,99,111,100,101,32,
++ 105,115,32,115,116,97,108,101,32,102,111,114,32,123,33,114,
++ 125,218,4,115,105,122,101,108,3,0,0,0,255,127,255,127,
++ 3,0,41,10,218,12,77,65,71,73,67,95,78,85,77,66,
++ 69,82,218,24,95,66,65,67,75,67,79,77,80,65,84,95,
++ 77,65,71,73,67,95,78,85,77,66,69,82,114,49,0,0,
++ 0,114,107,0,0,0,114,109,0,0,0,114,33,0,0,0,
++ 218,8,69,79,70,69,114,114,111,114,114,16,0,0,0,218,
++ 8,75,101,121,69,114,114,111,114,114,21,0,0,0,41,11,
++ 114,55,0,0,0,218,12,115,111,117,114,99,101,95,115,116,
++ 97,116,115,114,108,0,0,0,114,37,0,0,0,90,11,101,
++ 120,99,95,100,101,116,97,105,108,115,90,5,109,97,103,105,
++ 99,90,13,114,97,119,95,116,105,109,101,115,116,97,109,112,
++ 90,8,114,97,119,95,115,105,122,101,114,77,0,0,0,218,
++ 12,115,111,117,114,99,101,95,109,116,105,109,101,218,11,115,
++ 111,117,114,99,101,95,115,105,122,101,114,4,0,0,0,114,
++ 4,0,0,0,114,6,0,0,0,218,25,95,118,97,108,105,
++ 100,97,116,101,95,98,121,116,101,99,111,100,101,95,104,101,
++ 97,100,101,114,193,1,0,0,115,78,0,0,0,0,11,6,
++ 1,12,1,13,3,6,1,12,1,10,1,16,1,16,1,16,
++ 1,12,2,12,1,18,1,13,1,18,1,18,1,15,1,13,
++ 1,15,1,18,1,15,1,13,1,12,1,12,1,3,1,20,
++ 1,13,1,5,2,18,1,15,1,13,1,15,1,3,1,18,
++ 1,13,1,5,2,18,1,15,1,9,1,114,144,0,0,0,
++ 99,4,0,0,0,0,0,0,0,5,0,0,0,6,0,0,
++ 0,67,0,0,0,115,112,0,0,0,116,0,0,106,1,0,
++ 124,0,0,131,1,0,125,4,0,116,2,0,124,4,0,116,
++ 3,0,131,2,0,114,75,0,116,4,0,100,1,0,124,2,
++ 0,131,2,0,1,124,3,0,100,2,0,107,9,0,114,71,
++ 0,116,5,0,106,6,0,124,4,0,124,3,0,131,2,0,
++ 1,124,4,0,83,116,7,0,100,3,0,106,8,0,124,2,
++ 0,131,1,0,100,4,0,124,1,0,100,5,0,124,2,0,
++ 131,1,2,130,1,0,100,2,0,83,41,6,122,60,67,111,
++ 109,112,105,108,101,32,98,121,116,101,99,111,100,101,32,97,
++ 115,32,114,101,116,117,114,110,101,100,32,98,121,32,95,118,
++ 97,108,105,100,97,116,101,95,98,121,116,101,99,111,100,101,
++ 95,104,101,97,100,101,114,40,41,46,122,21,99,111,100,101,
++ 32,111,98,106,101,99,116,32,102,114,111,109,32,123,33,114,
++ 125,78,122,23,78,111,110,45,99,111,100,101,32,111,98,106,
++ 101,99,116,32,105,110,32,123,33,114,125,114,108,0,0,0,
++ 114,37,0,0,0,41,9,218,7,109,97,114,115,104,97,108,
++ 90,5,108,111,97,100,115,218,10,105,115,105,110,115,116,97,
++ 110,99,101,218,10,95,99,111,100,101,95,116,121,112,101,114,
++ 107,0,0,0,218,4,95,105,109,112,90,16,95,102,105,120,
++ 95,99,111,95,102,105,108,101,110,97,109,101,114,109,0,0,
++ 0,114,49,0,0,0,41,5,114,55,0,0,0,114,108,0,
++ 0,0,114,91,0,0,0,114,92,0,0,0,218,4,99,111,
++ 100,101,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
++ 0,218,17,95,99,111,109,112,105,108,101,95,98,121,116,101,
++ 99,111,100,101,250,1,0,0,115,16,0,0,0,0,2,15,
++ 1,15,1,13,1,12,1,16,1,4,2,18,1,114,150,0,
++ 0,0,114,61,0,0,0,99,3,0,0,0,0,0,0,0,
++ 4,0,0,0,3,0,0,0,67,0,0,0,115,76,0,0,
++ 0,116,0,0,116,1,0,131,1,0,125,3,0,124,3,0,
++ 106,2,0,116,3,0,124,1,0,131,1,0,131,1,0,1,
++ 124,3,0,106,2,0,116,3,0,124,2,0,131,1,0,131,
++ 1,0,1,124,3,0,106,2,0,116,4,0,106,5,0,124,
++ 0,0,131,1,0,131,1,0,1,124,3,0,83,41,1,122,
++ 80,67,111,109,112,105,108,101,32,97,32,99,111,100,101,32,
++ 111,98,106,101,99,116,32,105,110,116,111,32,98,121,116,101,
++ 99,111,100,101,32,102,111,114,32,119,114,105,116,105,110,103,
++ 32,111,117,116,32,116,111,32,97,32,98,121,116,101,45,99,
++ 111,109,112,105,108,101,100,10,32,32,32,32,102,105,108,101,
++ 46,41,6,218,9,98,121,116,101,97,114,114,97,121,114,137,
++ 0,0,0,218,6,101,120,116,101,110,100,114,19,0,0,0,
++ 114,145,0,0,0,90,5,100,117,109,112,115,41,4,114,149,
++ 0,0,0,114,135,0,0,0,114,143,0,0,0,114,55,0,
++ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
++ 0,218,17,95,99,111,100,101,95,116,111,95,98,121,116,101,
++ 99,111,100,101,6,2,0,0,115,10,0,0,0,0,3,12,
++ 1,19,1,19,1,22,1,114,153,0,0,0,99,1,0,0,
++ 0,0,0,0,0,5,0,0,0,4,0,0,0,67,0,0,
++ 0,115,89,0,0,0,100,1,0,100,2,0,108,0,0,125,
++ 1,0,116,1,0,106,2,0,124,0,0,131,1,0,106,3,
++ 0,125,2,0,124,1,0,106,4,0,124,2,0,131,1,0,
++ 125,3,0,116,1,0,106,5,0,100,2,0,100,3,0,131,
++ 2,0,125,4,0,124,4,0,106,6,0,124,0,0,106,6,
++ 0,124,3,0,100,1,0,25,131,1,0,131,1,0,83,41,
++ 4,122,121,68,101,99,111,100,101,32,98,121,116,101,115,32,
++ 114,101,112,114,101,115,101,110,116,105,110,103,32,115,111,117,
++ 114,99,101,32,99,111,100,101,32,97,110,100,32,114,101,116,
++ 117,114,110,32,116,104,101,32,115,116,114,105,110,103,46,10,
++ 10,32,32,32,32,85,110,105,118,101,114,115,97,108,32,110,
++ 101,119,108,105,110,101,32,115,117,112,112,111,114,116,32,105,
++ 115,32,117,115,101,100,32,105,110,32,116,104,101,32,100,101,
++ 99,111,100,105,110,103,46,10,32,32,32,32,114,61,0,0,
++ 0,78,84,41,7,218,8,116,111,107,101,110,105,122,101,114,
++ 51,0,0,0,90,7,66,121,116,101,115,73,79,90,8,114,
++ 101,97,100,108,105,110,101,90,15,100,101,116,101,99,116,95,
++ 101,110,99,111,100,105,110,103,90,25,73,110,99,114,101,109,
++ 101,110,116,97,108,78,101,119,108,105,110,101,68,101,99,111,
++ 100,101,114,218,6,100,101,99,111,100,101,41,5,218,12,115,
++ 111,117,114,99,101,95,98,121,116,101,115,114,154,0,0,0,
++ 90,21,115,111,117,114,99,101,95,98,121,116,101,115,95,114,
++ 101,97,100,108,105,110,101,218,8,101,110,99,111,100,105,110,
++ 103,90,15,110,101,119,108,105,110,101,95,100,101,99,111,100,
++ 101,114,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
++ 0,218,13,100,101,99,111,100,101,95,115,111,117,114,99,101,
++ 16,2,0,0,115,10,0,0,0,0,5,12,1,18,1,15,
++ 1,18,1,114,158,0,0,0,114,129,0,0,0,218,26,115,
++ 117,98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,
++ 108,111,99,97,116,105,111,110,115,99,2,0,0,0,2,0,
++ 0,0,9,0,0,0,19,0,0,0,67,0,0,0,115,89,
++ 1,0,0,124,1,0,100,1,0,107,8,0,114,73,0,100,
++ 2,0,125,1,0,116,0,0,124,2,0,100,3,0,131,2,
++ 0,114,73,0,121,19,0,124,2,0,106,1,0,124,0,0,
++ 131,1,0,125,1,0,87,110,18,0,4,116,2,0,107,10,
++ 0,114,72,0,1,1,1,89,110,1,0,88,116,3,0,106,
++ 4,0,124,0,0,124,2,0,100,4,0,124,1,0,131,2,
++ 1,125,4,0,100,5,0,124,4,0,95,5,0,124,2,0,
++ 100,1,0,107,8,0,114,194,0,120,73,0,116,6,0,131,
++ 0,0,68,93,58,0,92,2,0,125,5,0,125,6,0,124,
++ 1,0,106,7,0,116,8,0,124,6,0,131,1,0,131,1,
++ 0,114,128,0,124,5,0,124,0,0,124,1,0,131,2,0,
++ 125,2,0,124,2,0,124,4,0,95,9,0,80,113,128,0,
++ 87,100,1,0,83,124,3,0,116,10,0,107,8,0,114,23,
++ 1,116,0,0,124,2,0,100,6,0,131,2,0,114,32,1,
++ 121,19,0,124,2,0,106,11,0,124,0,0,131,1,0,125,
++ 7,0,87,110,18,0,4,116,2,0,107,10,0,114,4,1,
++ 1,1,1,89,113,32,1,88,124,7,0,114,32,1,103,0,
++ 0,124,4,0,95,12,0,110,9,0,124,3,0,124,4,0,
++ 95,12,0,124,4,0,106,12,0,103,0,0,107,2,0,114,
++ 85,1,124,1,0,114,85,1,116,13,0,124,1,0,131,1,
++ 0,100,7,0,25,125,8,0,124,4,0,106,12,0,106,14,
++ 0,124,8,0,131,1,0,1,124,4,0,83,41,8,97,61,
++ 1,0,0,82,101,116,117,114,110,32,97,32,109,111,100,117,
++ 108,101,32,115,112,101,99,32,98,97,115,101,100,32,111,110,
++ 32,97,32,102,105,108,101,32,108,111,99,97,116,105,111,110,
++ 46,10,10,32,32,32,32,84,111,32,105,110,100,105,99,97,
++ 116,101,32,116,104,97,116,32,116,104,101,32,109,111,100,117,
++ 108,101,32,105,115,32,97,32,112,97,99,107,97,103,101,44,
++ 32,115,101,116,10,32,32,32,32,115,117,98,109,111,100,117,
++ 108,101,95,115,101,97,114,99,104,95,108,111,99,97,116,105,
++ 111,110,115,32,116,111,32,97,32,108,105,115,116,32,111,102,
++ 32,100,105,114,101,99,116,111,114,121,32,112,97,116,104,115,
++ 46,32,32,65,110,10,32,32,32,32,101,109,112,116,121,32,
++ 108,105,115,116,32,105,115,32,115,117,102,102,105,99,105,101,
++ 110,116,44,32,116,104,111,117,103,104,32,105,116,115,32,110,
++ 111,116,32,111,116,104,101,114,119,105,115,101,32,117,115,101,
++ 102,117,108,32,116,111,32,116,104,101,10,32,32,32,32,105,
++ 109,112,111,114,116,32,115,121,115,116,101,109,46,10,10,32,
++ 32,32,32,84,104,101,32,108,111,97,100,101,114,32,109,117,
++ 115,116,32,116,97,107,101,32,97,32,115,112,101,99,32,97,
++ 115,32,105,116,115,32,111,110,108,121,32,95,95,105,110,105,
++ 116,95,95,40,41,32,97,114,103,46,10,10,32,32,32,32,
++ 78,122,9,60,117,110,107,110,111,119,110,62,218,12,103,101,
++ 116,95,102,105,108,101,110,97,109,101,218,6,111,114,105,103,
++ 105,110,84,218,10,105,115,95,112,97,99,107,97,103,101,114,
++ 61,0,0,0,41,15,114,117,0,0,0,114,160,0,0,0,
++ 114,109,0,0,0,114,123,0,0,0,218,10,77,111,100,117,
++ 108,101,83,112,101,99,90,13,95,115,101,116,95,102,105,108,
++ 101,97,116,116,114,218,27,95,103,101,116,95,115,117,112,112,
++ 111,114,116,101,100,95,102,105,108,101,95,108,111,97,100,101,
++ 114,115,114,94,0,0,0,114,95,0,0,0,114,129,0,0,
++ 0,218,9,95,80,79,80,85,76,65,84,69,114,162,0,0,
++ 0,114,159,0,0,0,114,40,0,0,0,218,6,97,112,112,
++ 101,110,100,41,9,114,108,0,0,0,90,8,108,111,99,97,
++ 116,105,111,110,114,129,0,0,0,114,159,0,0,0,218,4,
++ 115,112,101,99,218,12,108,111,97,100,101,114,95,99,108,97,
++ 115,115,218,8,115,117,102,102,105,120,101,115,114,162,0,0,
++ 0,90,7,100,105,114,110,97,109,101,114,4,0,0,0,114,
++ 4,0,0,0,114,6,0,0,0,218,23,115,112,101,99,95,
++ 102,114,111,109,95,102,105,108,101,95,108,111,99,97,116,105,
++ 111,110,33,2,0,0,115,60,0,0,0,0,12,12,4,6,
++ 1,15,2,3,1,19,1,13,1,5,8,24,1,9,3,12,
++ 1,22,1,21,1,15,1,9,1,5,2,4,3,12,2,15,
++ 1,3,1,19,1,13,1,5,2,6,1,12,2,9,1,15,
++ 1,6,1,16,1,16,2,114,170,0,0,0,99,0,0,0,
++ 0,0,0,0,0,0,0,0,0,5,0,0,0,64,0,0,
++ 0,115,121,0,0,0,101,0,0,90,1,0,100,0,0,90,
++ 2,0,100,1,0,90,3,0,100,2,0,90,4,0,100,3,
++ 0,90,5,0,100,4,0,90,6,0,101,7,0,100,5,0,
++ 100,6,0,132,0,0,131,1,0,90,8,0,101,7,0,100,
++ 7,0,100,8,0,132,0,0,131,1,0,90,9,0,101,7,
++ 0,100,9,0,100,9,0,100,10,0,100,11,0,132,2,0,
++ 131,1,0,90,10,0,101,7,0,100,9,0,100,12,0,100,
++ 13,0,132,1,0,131,1,0,90,11,0,100,9,0,83,41,
++ 14,218,21,87,105,110,100,111,119,115,82,101,103,105,115,116,
++ 114,121,70,105,110,100,101,114,122,62,77,101,116,97,32,112,
++ 97,116,104,32,102,105,110,100,101,114,32,102,111,114,32,109,
++ 111,100,117,108,101,115,32,100,101,99,108,97,114,101,100,32,
++ 105,110,32,116,104,101,32,87,105,110,100,111,119,115,32,114,
++ 101,103,105,115,116,114,121,46,122,59,83,111,102,116,119,97,
++ 114,101,92,80,121,116,104,111,110,92,80,121,116,104,111,110,
++ 67,111,114,101,92,123,115,121,115,95,118,101,114,115,105,111,
++ 110,125,92,77,111,100,117,108,101,115,92,123,102,117,108,108,
++ 110,97,109,101,125,122,65,83,111,102,116,119,97,114,101,92,
++ 80,121,116,104,111,110,92,80,121,116,104,111,110,67,111,114,
++ 101,92,123,115,121,115,95,118,101,114,115,105,111,110,125,92,
++ 77,111,100,117,108,101,115,92,123,102,117,108,108,110,97,109,
++ 101,125,92,68,101,98,117,103,70,99,2,0,0,0,0,0,
++ 0,0,2,0,0,0,11,0,0,0,67,0,0,0,115,67,
++ 0,0,0,121,23,0,116,0,0,106,1,0,116,0,0,106,
++ 2,0,124,1,0,131,2,0,83,87,110,37,0,4,116,3,
++ 0,107,10,0,114,62,0,1,1,1,116,0,0,106,1,0,
++ 116,0,0,106,4,0,124,1,0,131,2,0,83,89,110,1,
++ 0,88,100,0,0,83,41,1,78,41,5,218,7,95,119,105,
++ 110,114,101,103,90,7,79,112,101,110,75,101,121,90,17,72,
++ 75,69,89,95,67,85,82,82,69,78,84,95,85,83,69,82,
++ 114,42,0,0,0,90,18,72,75,69,89,95,76,79,67,65,
++ 76,95,77,65,67,72,73,78,69,41,2,218,3,99,108,115,
++ 114,5,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
++ 6,0,0,0,218,14,95,111,112,101,110,95,114,101,103,105,
++ 115,116,114,121,111,2,0,0,115,8,0,0,0,0,2,3,
++ 1,23,1,13,1,122,36,87,105,110,100,111,119,115,82,101,
++ 103,105,115,116,114,121,70,105,110,100,101,114,46,95,111,112,
++ 101,110,95,114,101,103,105,115,116,114,121,99,2,0,0,0,
++ 0,0,0,0,6,0,0,0,16,0,0,0,67,0,0,0,
++ 115,143,0,0,0,124,0,0,106,0,0,114,21,0,124,0,
++ 0,106,1,0,125,2,0,110,9,0,124,0,0,106,2,0,
++ 125,2,0,124,2,0,106,3,0,100,1,0,124,1,0,100,
++ 2,0,116,4,0,106,5,0,100,0,0,100,3,0,133,2,
++ 0,25,131,0,2,125,3,0,121,47,0,124,0,0,106,6,
++ 0,124,3,0,131,1,0,143,25,0,125,4,0,116,7,0,
++ 106,8,0,124,4,0,100,4,0,131,2,0,125,5,0,87,
++ 100,0,0,81,82,88,87,110,22,0,4,116,9,0,107,10,
++ 0,114,138,0,1,1,1,100,0,0,83,89,110,1,0,88,
++ 124,5,0,83,41,5,78,114,128,0,0,0,90,11,115,121,
++ 115,95,118,101,114,115,105,111,110,114,82,0,0,0,114,32,
++ 0,0,0,41,10,218,11,68,69,66,85,71,95,66,85,73,
++ 76,68,218,18,82,69,71,73,83,84,82,89,95,75,69,89,
++ 95,68,69,66,85,71,218,12,82,69,71,73,83,84,82,89,
++ 95,75,69,89,114,49,0,0,0,114,8,0,0,0,218,7,
++ 118,101,114,115,105,111,110,114,174,0,0,0,114,172,0,0,
++ 0,90,10,81,117,101,114,121,86,97,108,117,101,114,42,0,
++ 0,0,41,6,114,173,0,0,0,114,128,0,0,0,90,12,
++ 114,101,103,105,115,116,114,121,95,107,101,121,114,5,0,0,
++ 0,90,4,104,107,101,121,218,8,102,105,108,101,112,97,116,
++ 104,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
++ 218,16,95,115,101,97,114,99,104,95,114,101,103,105,115,116,
++ 114,121,118,2,0,0,115,22,0,0,0,0,2,9,1,12,
++ 2,9,1,15,1,22,1,3,1,18,1,29,1,13,1,9,
++ 1,122,38,87,105,110,100,111,119,115,82,101,103,105,115,116,
++ 114,121,70,105,110,100,101,114,46,95,115,101,97,114,99,104,
++ 95,114,101,103,105,115,116,114,121,78,99,4,0,0,0,0,
++ 0,0,0,8,0,0,0,14,0,0,0,67,0,0,0,115,
++ 158,0,0,0,124,0,0,106,0,0,124,1,0,131,1,0,
++ 125,4,0,124,4,0,100,0,0,107,8,0,114,31,0,100,
++ 0,0,83,121,14,0,116,1,0,124,4,0,131,1,0,1,
++ 87,110,22,0,4,116,2,0,107,10,0,114,69,0,1,1,
++ 1,100,0,0,83,89,110,1,0,88,120,81,0,116,3,0,
++ 131,0,0,68,93,70,0,92,2,0,125,5,0,125,6,0,
++ 124,4,0,106,4,0,116,5,0,124,6,0,131,1,0,131,
++ 1,0,114,80,0,116,6,0,106,7,0,124,1,0,124,5,
++ 0,124,1,0,124,4,0,131,2,0,100,1,0,124,4,0,
++ 131,2,1,125,7,0,124,7,0,83,113,80,0,87,100,0,
++ 0,83,41,2,78,114,161,0,0,0,41,8,114,180,0,0,
++ 0,114,41,0,0,0,114,42,0,0,0,114,164,0,0,0,
++ 114,94,0,0,0,114,95,0,0,0,114,123,0,0,0,218,
++ 16,115,112,101,99,95,102,114,111,109,95,108,111,97,100,101,
++ 114,41,8,114,173,0,0,0,114,128,0,0,0,114,37,0,
++ 0,0,218,6,116,97,114,103,101,116,114,179,0,0,0,114,
++ 129,0,0,0,114,169,0,0,0,114,167,0,0,0,114,4,
++ 0,0,0,114,4,0,0,0,114,6,0,0,0,218,9,102,
++ 105,110,100,95,115,112,101,99,133,2,0,0,115,26,0,0,
++ 0,0,2,15,1,12,1,4,1,3,1,14,1,13,1,9,
++ 1,22,1,21,1,9,1,15,1,9,1,122,31,87,105,110,
++ 100,111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,
++ 101,114,46,102,105,110,100,95,115,112,101,99,99,3,0,0,
++ 0,0,0,0,0,4,0,0,0,3,0,0,0,67,0,0,
++ 0,115,45,0,0,0,124,0,0,106,0,0,124,1,0,124,
++ 2,0,131,2,0,125,3,0,124,3,0,100,1,0,107,9,
++ 0,114,37,0,124,3,0,106,1,0,83,100,1,0,83,100,
++ 1,0,83,41,2,122,108,70,105,110,100,32,109,111,100,117,
++ 108,101,32,110,97,109,101,100,32,105,110,32,116,104,101,32,
++ 114,101,103,105,115,116,114,121,46,10,10,32,32,32,32,32,
++ 32,32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,
++ 115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,85,
++ 115,101,32,101,120,101,99,95,109,111,100,117,108,101,40,41,
++ 32,105,110,115,116,101,97,100,46,10,10,32,32,32,32,32,
++ 32,32,32,78,41,2,114,183,0,0,0,114,129,0,0,0,
++ 41,4,114,173,0,0,0,114,128,0,0,0,114,37,0,0,
++ 0,114,167,0,0,0,114,4,0,0,0,114,4,0,0,0,
++ 114,6,0,0,0,218,11,102,105,110,100,95,109,111,100,117,
++ 108,101,149,2,0,0,115,8,0,0,0,0,7,18,1,12,
++ 1,7,2,122,33,87,105,110,100,111,119,115,82,101,103,105,
++ 115,116,114,121,70,105,110,100,101,114,46,102,105,110,100,95,
++ 109,111,100,117,108,101,41,12,114,114,0,0,0,114,113,0,
++ 0,0,114,115,0,0,0,114,116,0,0,0,114,177,0,0,
++ 0,114,176,0,0,0,114,175,0,0,0,218,11,99,108,97,
++ 115,115,109,101,116,104,111,100,114,174,0,0,0,114,180,0,
++ 0,0,114,183,0,0,0,114,184,0,0,0,114,4,0,0,
+ 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
+- 218,10,95,99,97,108,99,95,109,111,100,101,106,1,0,0,
+- 115,12,0,0,0,0,2,3,1,19,1,13,1,11,3,10,
+- 1,114,99,0,0,0,218,9,118,101,114,98,111,115,105,116,
+- 121,114,31,0,0,0,99,1,0,0,0,1,0,0,0,3,
+- 0,0,0,4,0,0,0,71,0,0,0,115,75,0,0,0,
+- 116,0,0,106,1,0,106,2,0,124,1,0,107,5,0,114,
+- 71,0,124,0,0,106,3,0,100,6,0,131,1,0,115,43,
+- 0,100,3,0,124,0,0,23,125,0,0,116,4,0,124,0,
+- 0,106,5,0,124,2,0,140,0,0,100,4,0,116,0,0,
+- 106,6,0,131,1,1,1,100,5,0,83,41,7,122,61,80,
+- 114,105,110,116,32,116,104,101,32,109,101,115,115,97,103,101,
+- 32,116,111,32,115,116,100,101,114,114,32,105,102,32,45,118,
+- 47,80,89,84,72,79,78,86,69,82,66,79,83,69,32,105,
+- 115,32,116,117,114,110,101,100,32,111,110,46,250,1,35,250,
+- 7,105,109,112,111,114,116,32,122,2,35,32,114,56,0,0,
+- 0,78,41,2,114,101,0,0,0,114,102,0,0,0,41,7,
+- 114,8,0,0,0,114,69,0,0,0,218,7,118,101,114,98,
+- 111,115,101,114,10,0,0,0,218,5,112,114,105,110,116,114,
+- 49,0,0,0,218,6,115,116,100,101,114,114,41,3,114,77,
+- 0,0,0,114,100,0,0,0,218,4,97,114,103,115,114,4,
+- 0,0,0,114,4,0,0,0,114,6,0,0,0,218,16,95,
+- 118,101,114,98,111,115,101,95,109,101,115,115,97,103,101,118,
+- 1,0,0,115,8,0,0,0,0,2,18,1,15,1,10,1,
+- 114,107,0,0,0,99,1,0,0,0,0,0,0,0,3,0,
+- 0,0,11,0,0,0,3,0,0,0,115,84,0,0,0,100,
+- 1,0,135,0,0,102,1,0,100,2,0,100,3,0,134,1,
+- 0,125,1,0,121,13,0,116,0,0,106,1,0,125,2,0,
+- 87,110,30,0,4,116,2,0,107,10,0,114,66,0,1,1,
+- 1,100,4,0,100,5,0,132,0,0,125,2,0,89,110,1,
+- 0,88,124,2,0,124,1,0,136,0,0,131,2,0,1,124,
+- 1,0,83,41,6,122,252,68,101,99,111,114,97,116,111,114,
+- 32,116,111,32,118,101,114,105,102,121,32,116,104,97,116,32,
+- 116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,103,
+- 32,114,101,113,117,101,115,116,101,100,32,109,97,116,99,104,
+- 101,115,32,116,104,101,32,111,110,101,32,116,104,101,10,32,
+- 32,32,32,108,111,97,100,101,114,32,99,97,110,32,104,97,
+- 110,100,108,101,46,10,10,32,32,32,32,84,104,101,32,102,
+- 105,114,115,116,32,97,114,103,117,109,101,110,116,32,40,115,
+- 101,108,102,41,32,109,117,115,116,32,100,101,102,105,110,101,
+- 32,95,110,97,109,101,32,119,104,105,99,104,32,116,104,101,
+- 32,115,101,99,111,110,100,32,97,114,103,117,109,101,110,116,
+- 32,105,115,10,32,32,32,32,99,111,109,112,97,114,101,100,
+- 32,97,103,97,105,110,115,116,46,32,73,102,32,116,104,101,
+- 32,99,111,109,112,97,114,105,115,111,110,32,102,97,105,108,
+- 115,32,116,104,101,110,32,73,109,112,111,114,116,69,114,114,
+- 111,114,32,105,115,32,114,97,105,115,101,100,46,10,10,32,
+- 32,32,32,78,99,2,0,0,0,0,0,0,0,4,0,0,
+- 0,5,0,0,0,31,0,0,0,115,89,0,0,0,124,1,
+- 0,100,0,0,107,8,0,114,24,0,124,0,0,106,0,0,
+- 125,1,0,110,46,0,124,0,0,106,0,0,124,1,0,107,
+- 3,0,114,70,0,116,1,0,100,1,0,124,0,0,106,0,
+- 0,124,1,0,102,2,0,22,100,2,0,124,1,0,131,1,
+- 1,130,1,0,136,0,0,124,0,0,124,1,0,124,2,0,
+- 124,3,0,142,2,0,83,41,3,78,122,30,108,111,97,100,
+- 101,114,32,102,111,114,32,37,115,32,99,97,110,110,111,116,
+- 32,104,97,110,100,108,101,32,37,115,218,4,110,97,109,101,
+- 41,2,114,108,0,0,0,218,11,73,109,112,111,114,116,69,
+- 114,114,111,114,41,4,218,4,115,101,108,102,114,108,0,0,
+- 0,114,106,0,0,0,90,6,107,119,97,114,103,115,41,1,
+- 218,6,109,101,116,104,111,100,114,4,0,0,0,114,6,0,
+- 0,0,218,19,95,99,104,101,99,107,95,110,97,109,101,95,
+- 119,114,97,112,112,101,114,134,1,0,0,115,12,0,0,0,
+- 0,1,12,1,12,1,15,1,6,1,25,1,122,40,95,99,
+- 104,101,99,107,95,110,97,109,101,46,60,108,111,99,97,108,
+- 115,62,46,95,99,104,101,99,107,95,110,97,109,101,95,119,
+- 114,97,112,112,101,114,99,2,0,0,0,0,0,0,0,3,
+- 0,0,0,7,0,0,0,83,0,0,0,115,92,0,0,0,
+- 120,66,0,100,1,0,100,2,0,100,3,0,100,4,0,103,
+- 4,0,68,93,46,0,125,2,0,116,0,0,124,1,0,124,
+- 2,0,131,2,0,114,19,0,116,1,0,124,0,0,124,2,
+- 0,116,2,0,124,1,0,124,2,0,131,2,0,131,3,0,
+- 1,113,19,0,87,124,0,0,106,3,0,106,4,0,124,1,
+- 0,106,3,0,131,1,0,1,100,0,0,83,41,5,78,218,
+- 10,95,95,109,111,100,117,108,101,95,95,218,8,95,95,110,
+- 97,109,101,95,95,218,12,95,95,113,117,97,108,110,97,109,
+- 101,95,95,218,7,95,95,100,111,99,95,95,41,5,218,7,
+- 104,97,115,97,116,116,114,218,7,115,101,116,97,116,116,114,
+- 218,7,103,101,116,97,116,116,114,218,8,95,95,100,105,99,
+- 116,95,95,218,6,117,112,100,97,116,101,41,3,90,3,110,
+- 101,119,90,3,111,108,100,114,54,0,0,0,114,4,0,0,
+- 0,114,4,0,0,0,114,6,0,0,0,218,5,95,119,114,
+- 97,112,145,1,0,0,115,8,0,0,0,0,1,25,1,15,
+- 1,29,1,122,26,95,99,104,101,99,107,95,110,97,109,101,
+- 46,60,108,111,99,97,108,115,62,46,95,119,114,97,112,41,
+- 3,218,10,95,98,111,111,116,115,116,114,97,112,114,122,0,
+- 0,0,218,9,78,97,109,101,69,114,114,111,114,41,3,114,
+- 111,0,0,0,114,112,0,0,0,114,122,0,0,0,114,4,
+- 0,0,0,41,1,114,111,0,0,0,114,6,0,0,0,218,
+- 11,95,99,104,101,99,107,95,110,97,109,101,126,1,0,0,
+- 115,14,0,0,0,0,8,21,7,3,1,13,1,13,2,17,
+- 5,13,1,114,125,0,0,0,99,2,0,0,0,0,0,0,
+- 0,5,0,0,0,4,0,0,0,67,0,0,0,115,84,0,
+- 0,0,124,0,0,106,0,0,124,1,0,131,1,0,92,2,
+- 0,125,2,0,125,3,0,124,2,0,100,1,0,107,8,0,
+- 114,80,0,116,1,0,124,3,0,131,1,0,114,80,0,100,
+- 2,0,125,4,0,116,2,0,106,3,0,124,4,0,106,4,
+- 0,124,3,0,100,3,0,25,131,1,0,116,5,0,131,2,
+- 0,1,124,2,0,83,41,4,122,155,84,114,121,32,116,111,
+- 32,102,105,110,100,32,97,32,108,111,97,100,101,114,32,102,
+- 111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,100,
+- 32,109,111,100,117,108,101,32,98,121,32,100,101,108,101,103,
+- 97,116,105,110,103,32,116,111,10,32,32,32,32,115,101,108,
+- 102,46,102,105,110,100,95,108,111,97,100,101,114,40,41,46,
+- 10,10,32,32,32,32,84,104,105,115,32,109,101,116,104,111,
+- 100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,
+- 105,110,32,102,97,118,111,114,32,111,102,32,102,105,110,100,
+- 101,114,46,102,105,110,100,95,115,112,101,99,40,41,46,10,
+- 10,32,32,32,32,78,122,44,78,111,116,32,105,109,112,111,
+- 114,116,105,110,103,32,100,105,114,101,99,116,111,114,121,32,
+- 123,125,58,32,109,105,115,115,105,110,103,32,95,95,105,110,
+- 105,116,95,95,114,61,0,0,0,41,6,218,11,102,105,110,
+- 100,95,108,111,97,100,101,114,114,33,0,0,0,114,62,0,
+- 0,0,114,63,0,0,0,114,49,0,0,0,218,13,73,109,
+- 112,111,114,116,87,97,114,110,105,110,103,41,5,114,110,0,
+- 0,0,218,8,102,117,108,108,110,97,109,101,218,6,108,111,
+- 97,100,101,114,218,8,112,111,114,116,105,111,110,115,218,3,
+- 109,115,103,114,4,0,0,0,114,4,0,0,0,114,6,0,
+- 0,0,218,17,95,102,105,110,100,95,109,111,100,117,108,101,
+- 95,115,104,105,109,154,1,0,0,115,10,0,0,0,0,10,
+- 21,1,24,1,6,1,29,1,114,132,0,0,0,99,4,0,
+- 0,0,0,0,0,0,11,0,0,0,19,0,0,0,67,0,
+- 0,0,115,240,1,0,0,105,0,0,125,4,0,124,2,0,
+- 100,1,0,107,9,0,114,31,0,124,2,0,124,4,0,100,
+- 2,0,60,110,6,0,100,3,0,125,2,0,124,3,0,100,
+- 1,0,107,9,0,114,59,0,124,3,0,124,4,0,100,4,
+- 0,60,124,0,0,100,1,0,100,5,0,133,2,0,25,125,
+- 5,0,124,0,0,100,5,0,100,6,0,133,2,0,25,125,
+- 6,0,124,0,0,100,6,0,100,7,0,133,2,0,25,125,
+- 7,0,124,5,0,116,0,0,107,3,0,114,168,0,100,8,
+- 0,106,1,0,124,2,0,124,5,0,131,2,0,125,8,0,
+- 116,2,0,100,9,0,124,8,0,131,2,0,1,116,3,0,
+- 124,8,0,124,4,0,141,1,0,130,1,0,110,119,0,116,
+- 4,0,124,6,0,131,1,0,100,5,0,107,3,0,114,229,
+- 0,100,10,0,106,1,0,124,2,0,131,1,0,125,8,0,
+- 116,2,0,100,9,0,124,8,0,131,2,0,1,116,5,0,
+- 124,8,0,131,1,0,130,1,0,110,58,0,116,4,0,124,
+- 7,0,131,1,0,100,5,0,107,3,0,114,31,1,100,11,
+- 0,106,1,0,124,2,0,131,1,0,125,8,0,116,2,0,
+- 100,9,0,124,8,0,131,2,0,1,116,5,0,124,8,0,
+- 131,1,0,130,1,0,124,1,0,100,1,0,107,9,0,114,
+- 226,1,121,20,0,116,6,0,124,1,0,100,12,0,25,131,
+- 1,0,125,9,0,87,110,18,0,4,116,7,0,107,10,0,
+- 114,83,1,1,1,1,89,110,62,0,88,116,8,0,124,6,
+- 0,131,1,0,124,9,0,107,3,0,114,145,1,100,13,0,
+- 106,1,0,124,2,0,131,1,0,125,8,0,116,2,0,100,
+- 9,0,124,8,0,131,2,0,1,116,3,0,124,8,0,124,
+- 4,0,141,1,0,130,1,0,121,18,0,124,1,0,100,14,
+- 0,25,100,15,0,64,125,10,0,87,110,18,0,4,116,7,
+- 0,107,10,0,114,183,1,1,1,1,89,110,43,0,88,116,
+- 8,0,124,7,0,131,1,0,124,10,0,107,3,0,114,226,
+- 1,116,3,0,100,13,0,106,1,0,124,2,0,131,1,0,
+- 124,4,0,141,1,0,130,1,0,124,0,0,100,7,0,100,
+- 1,0,133,2,0,25,83,41,16,97,122,1,0,0,86,97,
+- 108,105,100,97,116,101,32,116,104,101,32,104,101,97,100,101,
+- 114,32,111,102,32,116,104,101,32,112,97,115,115,101,100,45,
+- 105,110,32,98,121,116,101,99,111,100,101,32,97,103,97,105,
+- 110,115,116,32,115,111,117,114,99,101,95,115,116,97,116,115,
+- 32,40,105,102,10,32,32,32,32,103,105,118,101,110,41,32,
+- 97,110,100,32,114,101,116,117,114,110,105,110,103,32,116,104,
+- 101,32,98,121,116,101,99,111,100,101,32,116,104,97,116,32,
+- 99,97,110,32,98,101,32,99,111,109,112,105,108,101,100,32,
+- 98,121,32,99,111,109,112,105,108,101,40,41,46,10,10,32,
+- 32,32,32,65,108,108,32,111,116,104,101,114,32,97,114,103,
+- 117,109,101,110,116,115,32,97,114,101,32,117,115,101,100,32,
+- 116,111,32,101,110,104,97,110,99,101,32,101,114,114,111,114,
+- 32,114,101,112,111,114,116,105,110,103,46,10,10,32,32,32,
+- 32,73,109,112,111,114,116,69,114,114,111,114,32,105,115,32,
+- 114,97,105,115,101,100,32,119,104,101,110,32,116,104,101,32,
+- 109,97,103,105,99,32,110,117,109,98,101,114,32,105,115,32,
+- 105,110,99,111,114,114,101,99,116,32,111,114,32,116,104,101,
+- 32,98,121,116,101,99,111,100,101,32,105,115,10,32,32,32,
+- 32,102,111,117,110,100,32,116,111,32,98,101,32,115,116,97,
+- 108,101,46,32,69,79,70,69,114,114,111,114,32,105,115,32,
+- 114,97,105,115,101,100,32,119,104,101,110,32,116,104,101,32,
+- 100,97,116,97,32,105,115,32,102,111,117,110,100,32,116,111,
+- 32,98,101,10,32,32,32,32,116,114,117,110,99,97,116,101,
+- 100,46,10,10,32,32,32,32,78,114,108,0,0,0,122,10,
+- 60,98,121,116,101,99,111,100,101,62,114,37,0,0,0,114,
+- 14,0,0,0,233,8,0,0,0,233,12,0,0,0,122,30,
+- 98,97,100,32,109,97,103,105,99,32,110,117,109,98,101,114,
+- 32,105,110,32,123,33,114,125,58,32,123,33,114,125,122,2,
+- 123,125,122,43,114,101,97,99,104,101,100,32,69,79,70,32,
+- 119,104,105,108,101,32,114,101,97,100,105,110,103,32,116,105,
+- 109,101,115,116,97,109,112,32,105,110,32,123,33,114,125,122,
+- 48,114,101,97,99,104,101,100,32,69,79,70,32,119,104,105,
+- 108,101,32,114,101,97,100,105,110,103,32,115,105,122,101,32,
+- 111,102,32,115,111,117,114,99,101,32,105,110,32,123,33,114,
+- 125,218,5,109,116,105,109,101,122,26,98,121,116,101,99,111,
+- 100,101,32,105,115,32,115,116,97,108,101,32,102,111,114,32,
+- 123,33,114,125,218,4,115,105,122,101,108,3,0,0,0,255,
+- 127,255,127,3,0,41,9,218,12,77,65,71,73,67,95,78,
+- 85,77,66,69,82,114,49,0,0,0,114,107,0,0,0,114,
+- 109,0,0,0,114,33,0,0,0,218,8,69,79,70,69,114,
+- 114,111,114,114,16,0,0,0,218,8,75,101,121,69,114,114,
+- 111,114,114,21,0,0,0,41,11,114,55,0,0,0,218,12,
+- 115,111,117,114,99,101,95,115,116,97,116,115,114,108,0,0,
+- 0,114,37,0,0,0,90,11,101,120,99,95,100,101,116,97,
+- 105,108,115,90,5,109,97,103,105,99,90,13,114,97,119,95,
+- 116,105,109,101,115,116,97,109,112,90,8,114,97,119,95,115,
+- 105,122,101,114,77,0,0,0,218,12,115,111,117,114,99,101,
+- 95,109,116,105,109,101,218,11,115,111,117,114,99,101,95,115,
+- 105,122,101,114,4,0,0,0,114,4,0,0,0,114,6,0,
+- 0,0,218,25,95,118,97,108,105,100,97,116,101,95,98,121,
+- 116,101,99,111,100,101,95,104,101,97,100,101,114,171,1,0,
+- 0,115,76,0,0,0,0,11,6,1,12,1,13,3,6,1,
+- 12,1,10,1,16,1,16,1,16,1,12,1,18,1,13,1,
+- 18,1,18,1,15,1,13,1,15,1,18,1,15,1,13,1,
+- 12,1,12,1,3,1,20,1,13,1,5,2,18,1,15,1,
+- 13,1,15,1,3,1,18,1,13,1,5,2,18,1,15,1,
+- 9,1,114,143,0,0,0,99,4,0,0,0,0,0,0,0,
+- 5,0,0,0,6,0,0,0,67,0,0,0,115,112,0,0,
+- 0,116,0,0,106,1,0,124,0,0,131,1,0,125,4,0,
+- 116,2,0,124,4,0,116,3,0,131,2,0,114,75,0,116,
+- 4,0,100,1,0,124,2,0,131,2,0,1,124,3,0,100,
+- 2,0,107,9,0,114,71,0,116,5,0,106,6,0,124,4,
+- 0,124,3,0,131,2,0,1,124,4,0,83,116,7,0,100,
+- 3,0,106,8,0,124,2,0,131,1,0,100,4,0,124,1,
+- 0,100,5,0,124,2,0,131,1,2,130,1,0,100,2,0,
+- 83,41,6,122,60,67,111,109,112,105,108,101,32,98,121,116,
+- 101,99,111,100,101,32,97,115,32,114,101,116,117,114,110,101,
+- 100,32,98,121,32,95,118,97,108,105,100,97,116,101,95,98,
+- 121,116,101,99,111,100,101,95,104,101,97,100,101,114,40,41,
+- 46,122,21,99,111,100,101,32,111,98,106,101,99,116,32,102,
+- 114,111,109,32,123,33,114,125,78,122,23,78,111,110,45,99,
+- 111,100,101,32,111,98,106,101,99,116,32,105,110,32,123,33,
+- 114,125,114,108,0,0,0,114,37,0,0,0,41,9,218,7,
+- 109,97,114,115,104,97,108,90,5,108,111,97,100,115,218,10,
+- 105,115,105,110,115,116,97,110,99,101,218,10,95,99,111,100,
+- 101,95,116,121,112,101,114,107,0,0,0,218,4,95,105,109,
+- 112,90,16,95,102,105,120,95,99,111,95,102,105,108,101,110,
+- 97,109,101,114,109,0,0,0,114,49,0,0,0,41,5,114,
+- 55,0,0,0,114,108,0,0,0,114,91,0,0,0,114,92,
+- 0,0,0,218,4,99,111,100,101,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,218,17,95,99,111,109,112,105,
+- 108,101,95,98,121,116,101,99,111,100,101,226,1,0,0,115,
+- 16,0,0,0,0,2,15,1,15,1,13,1,12,1,16,1,
+- 4,2,18,1,114,149,0,0,0,114,61,0,0,0,99,3,
+- 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,
+- 0,0,0,115,76,0,0,0,116,0,0,116,1,0,131,1,
+- 0,125,3,0,124,3,0,106,2,0,116,3,0,124,1,0,
+- 131,1,0,131,1,0,1,124,3,0,106,2,0,116,3,0,
+- 124,2,0,131,1,0,131,1,0,1,124,3,0,106,2,0,
+- 116,4,0,106,5,0,124,0,0,131,1,0,131,1,0,1,
+- 124,3,0,83,41,1,122,80,67,111,109,112,105,108,101,32,
+- 97,32,99,111,100,101,32,111,98,106,101,99,116,32,105,110,
+- 116,111,32,98,121,116,101,99,111,100,101,32,102,111,114,32,
+- 119,114,105,116,105,110,103,32,111,117,116,32,116,111,32,97,
+- 32,98,121,116,101,45,99,111,109,112,105,108,101,100,10,32,
+- 32,32,32,102,105,108,101,46,41,6,218,9,98,121,116,101,
+- 97,114,114,97,121,114,137,0,0,0,218,6,101,120,116,101,
+- 110,100,114,19,0,0,0,114,144,0,0,0,90,5,100,117,
+- 109,112,115,41,4,114,148,0,0,0,114,135,0,0,0,114,
+- 142,0,0,0,114,55,0,0,0,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,218,17,95,99,111,100,101,95,
+- 116,111,95,98,121,116,101,99,111,100,101,238,1,0,0,115,
+- 10,0,0,0,0,3,12,1,19,1,19,1,22,1,114,152,
+- 0,0,0,99,1,0,0,0,0,0,0,0,5,0,0,0,
+- 4,0,0,0,67,0,0,0,115,89,0,0,0,100,1,0,
+- 100,2,0,108,0,0,125,1,0,116,1,0,106,2,0,124,
+- 0,0,131,1,0,106,3,0,125,2,0,124,1,0,106,4,
+- 0,124,2,0,131,1,0,125,3,0,116,1,0,106,5,0,
+- 100,2,0,100,3,0,131,2,0,125,4,0,124,4,0,106,
+- 6,0,124,0,0,106,6,0,124,3,0,100,1,0,25,131,
+- 1,0,131,1,0,83,41,4,122,121,68,101,99,111,100,101,
+- 32,98,121,116,101,115,32,114,101,112,114,101,115,101,110,116,
+- 105,110,103,32,115,111,117,114,99,101,32,99,111,100,101,32,
+- 97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,115,
+- 116,114,105,110,103,46,10,10,32,32,32,32,85,110,105,118,
+- 101,114,115,97,108,32,110,101,119,108,105,110,101,32,115,117,
+- 112,112,111,114,116,32,105,115,32,117,115,101,100,32,105,110,
+- 32,116,104,101,32,100,101,99,111,100,105,110,103,46,10,32,
+- 32,32,32,114,61,0,0,0,78,84,41,7,218,8,116,111,
+- 107,101,110,105,122,101,114,51,0,0,0,90,7,66,121,116,
+- 101,115,73,79,90,8,114,101,97,100,108,105,110,101,90,15,
+- 100,101,116,101,99,116,95,101,110,99,111,100,105,110,103,90,
+- 25,73,110,99,114,101,109,101,110,116,97,108,78,101,119,108,
+- 105,110,101,68,101,99,111,100,101,114,218,6,100,101,99,111,
+- 100,101,41,5,218,12,115,111,117,114,99,101,95,98,121,116,
+- 101,115,114,153,0,0,0,90,21,115,111,117,114,99,101,95,
+- 98,121,116,101,115,95,114,101,97,100,108,105,110,101,218,8,
+- 101,110,99,111,100,105,110,103,90,15,110,101,119,108,105,110,
+- 101,95,100,101,99,111,100,101,114,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,218,13,100,101,99,111,100,101,
+- 95,115,111,117,114,99,101,248,1,0,0,115,10,0,0,0,
+- 0,5,12,1,18,1,15,1,18,1,114,157,0,0,0,114,
+- 129,0,0,0,218,26,115,117,98,109,111,100,117,108,101,95,
+- 115,101,97,114,99,104,95,108,111,99,97,116,105,111,110,115,
+- 99,2,0,0,0,2,0,0,0,9,0,0,0,19,0,0,
+- 0,67,0,0,0,115,89,1,0,0,124,1,0,100,1,0,
+- 107,8,0,114,73,0,100,2,0,125,1,0,116,0,0,124,
+- 2,0,100,3,0,131,2,0,114,73,0,121,19,0,124,2,
+- 0,106,1,0,124,0,0,131,1,0,125,1,0,87,110,18,
+- 0,4,116,2,0,107,10,0,114,72,0,1,1,1,89,110,
+- 1,0,88,116,3,0,106,4,0,124,0,0,124,2,0,100,
+- 4,0,124,1,0,131,2,1,125,4,0,100,5,0,124,4,
+- 0,95,5,0,124,2,0,100,1,0,107,8,0,114,194,0,
+- 120,73,0,116,6,0,131,0,0,68,93,58,0,92,2,0,
+- 125,5,0,125,6,0,124,1,0,106,7,0,116,8,0,124,
+- 6,0,131,1,0,131,1,0,114,128,0,124,5,0,124,0,
+- 0,124,1,0,131,2,0,125,2,0,124,2,0,124,4,0,
+- 95,9,0,80,113,128,0,87,100,1,0,83,124,3,0,116,
+- 10,0,107,8,0,114,23,1,116,0,0,124,2,0,100,6,
+- 0,131,2,0,114,32,1,121,19,0,124,2,0,106,11,0,
+- 124,0,0,131,1,0,125,7,0,87,110,18,0,4,116,2,
+- 0,107,10,0,114,4,1,1,1,1,89,113,32,1,88,124,
+- 7,0,114,32,1,103,0,0,124,4,0,95,12,0,110,9,
+- 0,124,3,0,124,4,0,95,12,0,124,4,0,106,12,0,
+- 103,0,0,107,2,0,114,85,1,124,1,0,114,85,1,116,
+- 13,0,124,1,0,131,1,0,100,7,0,25,125,8,0,124,
+- 4,0,106,12,0,106,14,0,124,8,0,131,1,0,1,124,
+- 4,0,83,41,8,97,61,1,0,0,82,101,116,117,114,110,
+- 32,97,32,109,111,100,117,108,101,32,115,112,101,99,32,98,
+- 97,115,101,100,32,111,110,32,97,32,102,105,108,101,32,108,
+- 111,99,97,116,105,111,110,46,10,10,32,32,32,32,84,111,
+- 32,105,110,100,105,99,97,116,101,32,116,104,97,116,32,116,
+- 104,101,32,109,111,100,117,108,101,32,105,115,32,97,32,112,
+- 97,99,107,97,103,101,44,32,115,101,116,10,32,32,32,32,
+- 115,117,98,109,111,100,117,108,101,95,115,101,97,114,99,104,
+- 95,108,111,99,97,116,105,111,110,115,32,116,111,32,97,32,
+- 108,105,115,116,32,111,102,32,100,105,114,101,99,116,111,114,
+- 121,32,112,97,116,104,115,46,32,32,65,110,10,32,32,32,
+- 32,101,109,112,116,121,32,108,105,115,116,32,105,115,32,115,
+- 117,102,102,105,99,105,101,110,116,44,32,116,104,111,117,103,
+- 104,32,105,116,115,32,110,111,116,32,111,116,104,101,114,119,
+- 105,115,101,32,117,115,101,102,117,108,32,116,111,32,116,104,
+- 101,10,32,32,32,32,105,109,112,111,114,116,32,115,121,115,
+- 116,101,109,46,10,10,32,32,32,32,84,104,101,32,108,111,
+- 97,100,101,114,32,109,117,115,116,32,116,97,107,101,32,97,
+- 32,115,112,101,99,32,97,115,32,105,116,115,32,111,110,108,
+- 121,32,95,95,105,110,105,116,95,95,40,41,32,97,114,103,
+- 46,10,10,32,32,32,32,78,122,9,60,117,110,107,110,111,
+- 119,110,62,218,12,103,101,116,95,102,105,108,101,110,97,109,
+- 101,218,6,111,114,105,103,105,110,84,218,10,105,115,95,112,
+- 97,99,107,97,103,101,114,61,0,0,0,41,15,114,117,0,
+- 0,0,114,159,0,0,0,114,109,0,0,0,114,123,0,0,
+- 0,218,10,77,111,100,117,108,101,83,112,101,99,90,13,95,
+- 115,101,116,95,102,105,108,101,97,116,116,114,218,27,95,103,
+- 101,116,95,115,117,112,112,111,114,116,101,100,95,102,105,108,
+- 101,95,108,111,97,100,101,114,115,114,94,0,0,0,114,95,
+- 0,0,0,114,129,0,0,0,218,9,95,80,79,80,85,76,
+- 65,84,69,114,161,0,0,0,114,158,0,0,0,114,40,0,
+- 0,0,218,6,97,112,112,101,110,100,41,9,114,108,0,0,
+- 0,90,8,108,111,99,97,116,105,111,110,114,129,0,0,0,
+- 114,158,0,0,0,218,4,115,112,101,99,218,12,108,111,97,
+- 100,101,114,95,99,108,97,115,115,218,8,115,117,102,102,105,
+- 120,101,115,114,161,0,0,0,90,7,100,105,114,110,97,109,
+- 101,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
+- 218,23,115,112,101,99,95,102,114,111,109,95,102,105,108,101,
+- 95,108,111,99,97,116,105,111,110,9,2,0,0,115,60,0,
+- 0,0,0,12,12,4,6,1,15,2,3,1,19,1,13,1,
+- 5,8,24,1,9,3,12,1,22,1,21,1,15,1,9,1,
+- 5,2,4,3,12,2,15,1,3,1,19,1,13,1,5,2,
+- 6,1,12,2,9,1,15,1,6,1,16,1,16,2,114,169,
++ 114,171,0,0,0,99,2,0,0,115,20,0,0,0,12,2,
++ 6,3,6,3,6,2,6,2,18,7,18,15,3,1,21,15,
++ 3,1,114,171,0,0,0,99,0,0,0,0,0,0,0,0,
++ 0,0,0,0,2,0,0,0,64,0,0,0,115,70,0,0,
++ 0,101,0,0,90,1,0,100,0,0,90,2,0,100,1,0,
++ 90,3,0,100,2,0,100,3,0,132,0,0,90,4,0,100,
++ 4,0,100,5,0,132,0,0,90,5,0,100,6,0,100,7,
++ 0,132,0,0,90,6,0,100,8,0,100,9,0,132,0,0,
++ 90,7,0,100,10,0,83,41,11,218,13,95,76,111,97,100,
++ 101,114,66,97,115,105,99,115,122,83,66,97,115,101,32,99,
++ 108,97,115,115,32,111,102,32,99,111,109,109,111,110,32,99,
++ 111,100,101,32,110,101,101,100,101,100,32,98,121,32,98,111,
++ 116,104,32,83,111,117,114,99,101,76,111,97,100,101,114,32,
++ 97,110,100,10,32,32,32,32,83,111,117,114,99,101,108,101,
++ 115,115,70,105,108,101,76,111,97,100,101,114,46,99,2,0,
++ 0,0,0,0,0,0,5,0,0,0,3,0,0,0,67,0,
++ 0,0,115,88,0,0,0,116,0,0,124,0,0,106,1,0,
++ 124,1,0,131,1,0,131,1,0,100,1,0,25,125,2,0,
++ 124,2,0,106,2,0,100,2,0,100,1,0,131,2,0,100,
++ 3,0,25,125,3,0,124,1,0,106,3,0,100,2,0,131,
++ 1,0,100,4,0,25,125,4,0,124,3,0,100,5,0,107,
++ 2,0,111,87,0,124,4,0,100,5,0,107,3,0,83,41,
++ 6,122,141,67,111,110,99,114,101,116,101,32,105,109,112,108,
++ 101,109,101,110,116,97,116,105,111,110,32,111,102,32,73,110,
++ 115,112,101,99,116,76,111,97,100,101,114,46,105,115,95,112,
++ 97,99,107,97,103,101,32,98,121,32,99,104,101,99,107,105,
++ 110,103,32,105,102,10,32,32,32,32,32,32,32,32,116,104,
++ 101,32,112,97,116,104,32,114,101,116,117,114,110,101,100,32,
++ 98,121,32,103,101,116,95,102,105,108,101,110,97,109,101,32,
++ 104,97,115,32,97,32,102,105,108,101,110,97,109,101,32,111,
++ 102,32,39,95,95,105,110,105,116,95,95,46,112,121,39,46,
++ 114,31,0,0,0,114,60,0,0,0,114,61,0,0,0,114,
++ 58,0,0,0,218,8,95,95,105,110,105,116,95,95,41,4,
++ 114,40,0,0,0,114,160,0,0,0,114,36,0,0,0,114,
++ 34,0,0,0,41,5,114,110,0,0,0,114,128,0,0,0,
++ 114,96,0,0,0,90,13,102,105,108,101,110,97,109,101,95,
++ 98,97,115,101,90,9,116,97,105,108,95,110,97,109,101,114,
++ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,162,
++ 0,0,0,168,2,0,0,115,8,0,0,0,0,3,25,1,
++ 22,1,19,1,122,24,95,76,111,97,100,101,114,66,97,115,
++ 105,99,115,46,105,115,95,112,97,99,107,97,103,101,99,2,
++ 0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,
++ 0,0,0,115,4,0,0,0,100,1,0,83,41,2,122,42,
++ 85,115,101,32,100,101,102,97,117,108,116,32,115,101,109,97,
++ 110,116,105,99,115,32,102,111,114,32,109,111,100,117,108,101,
++ 32,99,114,101,97,116,105,111,110,46,78,114,4,0,0,0,
++ 41,2,114,110,0,0,0,114,167,0,0,0,114,4,0,0,
++ 0,114,4,0,0,0,114,6,0,0,0,218,13,99,114,101,
++ 97,116,101,95,109,111,100,117,108,101,176,2,0,0,115,0,
++ 0,0,0,122,27,95,76,111,97,100,101,114,66,97,115,105,
++ 99,115,46,99,114,101,97,116,101,95,109,111,100,117,108,101,
++ 99,2,0,0,0,0,0,0,0,3,0,0,0,4,0,0,
++ 0,67,0,0,0,115,80,0,0,0,124,0,0,106,0,0,
++ 124,1,0,106,1,0,131,1,0,125,2,0,124,2,0,100,
++ 1,0,107,8,0,114,54,0,116,2,0,100,2,0,106,3,
++ 0,124,1,0,106,1,0,131,1,0,131,1,0,130,1,0,
++ 116,4,0,106,5,0,116,6,0,124,2,0,124,1,0,106,
++ 7,0,131,3,0,1,100,1,0,83,41,3,122,19,69,120,
++ 101,99,117,116,101,32,116,104,101,32,109,111,100,117,108,101,
++ 46,78,122,52,99,97,110,110,111,116,32,108,111,97,100,32,
++ 109,111,100,117,108,101,32,123,33,114,125,32,119,104,101,110,
++ 32,103,101,116,95,99,111,100,101,40,41,32,114,101,116,117,
++ 114,110,115,32,78,111,110,101,41,8,218,8,103,101,116,95,
++ 99,111,100,101,114,114,0,0,0,114,109,0,0,0,114,49,
++ 0,0,0,114,123,0,0,0,218,25,95,99,97,108,108,95,
++ 119,105,116,104,95,102,114,97,109,101,115,95,114,101,109,111,
++ 118,101,100,218,4,101,120,101,99,114,120,0,0,0,41,3,
++ 114,110,0,0,0,218,6,109,111,100,117,108,101,114,149,0,
++ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
++ 0,218,11,101,120,101,99,95,109,111,100,117,108,101,179,2,
++ 0,0,115,10,0,0,0,0,2,18,1,12,1,9,1,15,
++ 1,122,25,95,76,111,97,100,101,114,66,97,115,105,99,115,
++ 46,101,120,101,99,95,109,111,100,117,108,101,99,2,0,0,
++ 0,0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,
++ 0,115,16,0,0,0,116,0,0,106,1,0,124,0,0,124,
++ 1,0,131,2,0,83,41,1,78,41,2,114,123,0,0,0,
++ 218,17,95,108,111,97,100,95,109,111,100,117,108,101,95,115,
++ 104,105,109,41,2,114,110,0,0,0,114,128,0,0,0,114,
++ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,11,
++ 108,111,97,100,95,109,111,100,117,108,101,187,2,0,0,115,
++ 2,0,0,0,0,1,122,25,95,76,111,97,100,101,114,66,
++ 97,115,105,99,115,46,108,111,97,100,95,109,111,100,117,108,
++ 101,78,41,8,114,114,0,0,0,114,113,0,0,0,114,115,
++ 0,0,0,114,116,0,0,0,114,162,0,0,0,114,188,0,
++ 0,0,114,193,0,0,0,114,195,0,0,0,114,4,0,0,
++ 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
++ 114,186,0,0,0,163,2,0,0,115,10,0,0,0,12,3,
++ 6,2,12,8,12,3,12,8,114,186,0,0,0,99,0,0,
++ 0,0,0,0,0,0,0,0,0,0,4,0,0,0,64,0,
++ 0,0,115,106,0,0,0,101,0,0,90,1,0,100,0,0,
++ 90,2,0,100,1,0,100,2,0,132,0,0,90,3,0,100,
++ 3,0,100,4,0,132,0,0,90,4,0,100,5,0,100,6,
++ 0,132,0,0,90,5,0,100,7,0,100,8,0,132,0,0,
++ 90,6,0,100,9,0,100,10,0,132,0,0,90,7,0,100,
++ 11,0,100,18,0,100,13,0,100,14,0,132,0,1,90,8,
++ 0,100,15,0,100,16,0,132,0,0,90,9,0,100,17,0,
++ 83,41,19,218,12,83,111,117,114,99,101,76,111,97,100,101,
++ 114,99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,
++ 0,0,67,0,0,0,115,10,0,0,0,116,0,0,130,1,
++ 0,100,1,0,83,41,2,122,178,79,112,116,105,111,110,97,
++ 108,32,109,101,116,104,111,100,32,116,104,97,116,32,114,101,
++ 116,117,114,110,115,32,116,104,101,32,109,111,100,105,102,105,
++ 99,97,116,105,111,110,32,116,105,109,101,32,40,97,110,32,
++ 105,110,116,41,32,102,111,114,32,116,104,101,10,32,32,32,
++ 32,32,32,32,32,115,112,101,99,105,102,105,101,100,32,112,
++ 97,116,104,44,32,119,104,101,114,101,32,112,97,116,104,32,
++ 105,115,32,97,32,115,116,114,46,10,10,32,32,32,32,32,
++ 32,32,32,82,97,105,115,101,115,32,73,79,69,114,114,111,
++ 114,32,119,104,101,110,32,116,104,101,32,112,97,116,104,32,
++ 99,97,110,110,111,116,32,98,101,32,104,97,110,100,108,101,
++ 100,46,10,32,32,32,32,32,32,32,32,78,41,1,218,7,
++ 73,79,69,114,114,111,114,41,2,114,110,0,0,0,114,37,
++ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
++ 0,0,218,10,112,97,116,104,95,109,116,105,109,101,193,2,
++ 0,0,115,2,0,0,0,0,6,122,23,83,111,117,114,99,
++ 101,76,111,97,100,101,114,46,112,97,116,104,95,109,116,105,
++ 109,101,99,2,0,0,0,0,0,0,0,2,0,0,0,3,
++ 0,0,0,67,0,0,0,115,19,0,0,0,100,1,0,124,
++ 0,0,106,0,0,124,1,0,131,1,0,105,1,0,83,41,
++ 2,97,170,1,0,0,79,112,116,105,111,110,97,108,32,109,
++ 101,116,104,111,100,32,114,101,116,117,114,110,105,110,103,32,
++ 97,32,109,101,116,97,100,97,116,97,32,100,105,99,116,32,
++ 102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,
++ 100,32,112,97,116,104,10,32,32,32,32,32,32,32,32,116,
++ 111,32,98,121,32,116,104,101,32,112,97,116,104,32,40,115,
++ 116,114,41,46,10,32,32,32,32,32,32,32,32,80,111,115,
++ 115,105,98,108,101,32,107,101,121,115,58,10,32,32,32,32,
++ 32,32,32,32,45,32,39,109,116,105,109,101,39,32,40,109,
++ 97,110,100,97,116,111,114,121,41,32,105,115,32,116,104,101,
++ 32,110,117,109,101,114,105,99,32,116,105,109,101,115,116,97,
++ 109,112,32,111,102,32,108,97,115,116,32,115,111,117,114,99,
++ 101,10,32,32,32,32,32,32,32,32,32,32,99,111,100,101,
++ 32,109,111,100,105,102,105,99,97,116,105,111,110,59,10,32,
++ 32,32,32,32,32,32,32,45,32,39,115,105,122,101,39,32,
++ 40,111,112,116,105,111,110,97,108,41,32,105,115,32,116,104,
++ 101,32,115,105,122,101,32,105,110,32,98,121,116,101,115,32,
++ 111,102,32,116,104,101,32,115,111,117,114,99,101,32,99,111,
++ 100,101,46,10,10,32,32,32,32,32,32,32,32,73,109,112,
++ 108,101,109,101,110,116,105,110,103,32,116,104,105,115,32,109,
++ 101,116,104,111,100,32,97,108,108,111,119,115,32,116,104,101,
++ 32,108,111,97,100,101,114,32,116,111,32,114,101,97,100,32,
++ 98,121,116,101,99,111,100,101,32,102,105,108,101,115,46,10,
++ 32,32,32,32,32,32,32,32,82,97,105,115,101,115,32,73,
++ 79,69,114,114,111,114,32,119,104,101,110,32,116,104,101,32,
++ 112,97,116,104,32,99,97,110,110,111,116,32,98,101,32,104,
++ 97,110,100,108,101,100,46,10,32,32,32,32,32,32,32,32,
++ 114,135,0,0,0,41,1,114,198,0,0,0,41,2,114,110,
++ 0,0,0,114,37,0,0,0,114,4,0,0,0,114,4,0,
++ 0,0,114,6,0,0,0,218,10,112,97,116,104,95,115,116,
++ 97,116,115,201,2,0,0,115,2,0,0,0,0,11,122,23,
++ 83,111,117,114,99,101,76,111,97,100,101,114,46,112,97,116,
++ 104,95,115,116,97,116,115,99,4,0,0,0,0,0,0,0,
++ 4,0,0,0,3,0,0,0,67,0,0,0,115,16,0,0,
++ 0,124,0,0,106,0,0,124,2,0,124,3,0,131,2,0,
++ 83,41,1,122,228,79,112,116,105,111,110,97,108,32,109,101,
++ 116,104,111,100,32,119,104,105,99,104,32,119,114,105,116,101,
++ 115,32,100,97,116,97,32,40,98,121,116,101,115,41,32,116,
++ 111,32,97,32,102,105,108,101,32,112,97,116,104,32,40,97,
++ 32,115,116,114,41,46,10,10,32,32,32,32,32,32,32,32,
++ 73,109,112,108,101,109,101,110,116,105,110,103,32,116,104,105,
++ 115,32,109,101,116,104,111,100,32,97,108,108,111,119,115,32,
++ 102,111,114,32,116,104,101,32,119,114,105,116,105,110,103,32,
++ 111,102,32,98,121,116,101,99,111,100,101,32,102,105,108,101,
++ 115,46,10,10,32,32,32,32,32,32,32,32,84,104,101,32,
++ 115,111,117,114,99,101,32,112,97,116,104,32,105,115,32,110,
++ 101,101,100,101,100,32,105,110,32,111,114,100,101,114,32,116,
++ 111,32,99,111,114,114,101,99,116,108,121,32,116,114,97,110,
++ 115,102,101,114,32,112,101,114,109,105,115,115,105,111,110,115,
++ 10,32,32,32,32,32,32,32,32,41,1,218,8,115,101,116,
++ 95,100,97,116,97,41,4,114,110,0,0,0,114,92,0,0,
++ 0,90,10,99,97,99,104,101,95,112,97,116,104,114,55,0,
++ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
++ 0,218,15,95,99,97,99,104,101,95,98,121,116,101,99,111,
++ 100,101,214,2,0,0,115,2,0,0,0,0,8,122,28,83,
++ 111,117,114,99,101,76,111,97,100,101,114,46,95,99,97,99,
++ 104,101,95,98,121,116,101,99,111,100,101,99,3,0,0,0,
++ 0,0,0,0,3,0,0,0,1,0,0,0,67,0,0,0,
++ 115,4,0,0,0,100,1,0,83,41,2,122,150,79,112,116,
++ 105,111,110,97,108,32,109,101,116,104,111,100,32,119,104,105,
++ 99,104,32,119,114,105,116,101,115,32,100,97,116,97,32,40,
++ 98,121,116,101,115,41,32,116,111,32,97,32,102,105,108,101,
++ 32,112,97,116,104,32,40,97,32,115,116,114,41,46,10,10,
++ 32,32,32,32,32,32,32,32,73,109,112,108,101,109,101,110,
++ 116,105,110,103,32,116,104,105,115,32,109,101,116,104,111,100,
++ 32,97,108,108,111,119,115,32,102,111,114,32,116,104,101,32,
++ 119,114,105,116,105,110,103,32,111,102,32,98,121,116,101,99,
++ 111,100,101,32,102,105,108,101,115,46,10,32,32,32,32,32,
++ 32,32,32,78,114,4,0,0,0,41,3,114,110,0,0,0,
++ 114,37,0,0,0,114,55,0,0,0,114,4,0,0,0,114,
++ 4,0,0,0,114,6,0,0,0,114,200,0,0,0,224,2,
++ 0,0,115,0,0,0,0,122,21,83,111,117,114,99,101,76,
++ 111,97,100,101,114,46,115,101,116,95,100,97,116,97,99,2,
++ 0,0,0,0,0,0,0,5,0,0,0,16,0,0,0,67,
++ 0,0,0,115,105,0,0,0,124,0,0,106,0,0,124,1,
++ 0,131,1,0,125,2,0,121,19,0,124,0,0,106,1,0,
++ 124,2,0,131,1,0,125,3,0,87,110,58,0,4,116,2,
++ 0,107,10,0,114,94,0,1,125,4,0,1,122,26,0,116,
++ 3,0,100,1,0,100,2,0,124,1,0,131,1,1,124,4,
++ 0,130,2,0,87,89,100,3,0,100,3,0,125,4,0,126,
++ 4,0,88,110,1,0,88,116,4,0,124,3,0,131,1,0,
++ 83,41,4,122,52,67,111,110,99,114,101,116,101,32,105,109,
++ 112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,
++ 73,110,115,112,101,99,116,76,111,97,100,101,114,46,103,101,
++ 116,95,115,111,117,114,99,101,46,122,39,115,111,117,114,99,
++ 101,32,110,111,116,32,97,118,97,105,108,97,98,108,101,32,
++ 116,104,114,111,117,103,104,32,103,101,116,95,100,97,116,97,
++ 40,41,114,108,0,0,0,78,41,5,114,160,0,0,0,218,
++ 8,103,101,116,95,100,97,116,97,114,42,0,0,0,114,109,
++ 0,0,0,114,158,0,0,0,41,5,114,110,0,0,0,114,
++ 128,0,0,0,114,37,0,0,0,114,156,0,0,0,218,3,
++ 101,120,99,114,4,0,0,0,114,4,0,0,0,114,6,0,
++ 0,0,218,10,103,101,116,95,115,111,117,114,99,101,231,2,
++ 0,0,115,14,0,0,0,0,2,15,1,3,1,19,1,18,
++ 1,9,1,31,1,122,23,83,111,117,114,99,101,76,111,97,
++ 100,101,114,46,103,101,116,95,115,111,117,114,99,101,218,9,
++ 95,111,112,116,105,109,105,122,101,114,31,0,0,0,99,3,
++ 0,0,0,1,0,0,0,4,0,0,0,9,0,0,0,67,
++ 0,0,0,115,34,0,0,0,116,0,0,106,1,0,116,2,
++ 0,124,1,0,124,2,0,100,1,0,100,2,0,100,3,0,
++ 100,4,0,124,3,0,131,4,2,83,41,5,122,130,82,101,
++ 116,117,114,110,32,116,104,101,32,99,111,100,101,32,111,98,
++ 106,101,99,116,32,99,111,109,112,105,108,101,100,32,102,114,
++ 111,109,32,115,111,117,114,99,101,46,10,10,32,32,32,32,
++ 32,32,32,32,84,104,101,32,39,100,97,116,97,39,32,97,
++ 114,103,117,109,101,110,116,32,99,97,110,32,98,101,32,97,
++ 110,121,32,111,98,106,101,99,116,32,116,121,112,101,32,116,
++ 104,97,116,32,99,111,109,112,105,108,101,40,41,32,115,117,
++ 112,112,111,114,116,115,46,10,32,32,32,32,32,32,32,32,
++ 114,191,0,0,0,218,12,100,111,110,116,95,105,110,104,101,
++ 114,105,116,84,114,70,0,0,0,41,3,114,123,0,0,0,
++ 114,190,0,0,0,218,7,99,111,109,112,105,108,101,41,4,
++ 114,110,0,0,0,114,55,0,0,0,114,37,0,0,0,114,
++ 205,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
++ 0,0,0,218,14,115,111,117,114,99,101,95,116,111,95,99,
++ 111,100,101,241,2,0,0,115,4,0,0,0,0,5,21,1,
++ 122,27,83,111,117,114,99,101,76,111,97,100,101,114,46,115,
++ 111,117,114,99,101,95,116,111,95,99,111,100,101,99,2,0,
++ 0,0,0,0,0,0,10,0,0,0,43,0,0,0,67,0,
++ 0,0,115,174,1,0,0,124,0,0,106,0,0,124,1,0,
++ 131,1,0,125,2,0,100,1,0,125,3,0,121,16,0,116,
++ 1,0,124,2,0,131,1,0,125,4,0,87,110,24,0,4,
++ 116,2,0,107,10,0,114,63,0,1,1,1,100,1,0,125,
++ 4,0,89,110,202,0,88,121,19,0,124,0,0,106,3,0,
++ 124,2,0,131,1,0,125,5,0,87,110,18,0,4,116,4,
++ 0,107,10,0,114,103,0,1,1,1,89,110,162,0,88,116,
++ 5,0,124,5,0,100,2,0,25,131,1,0,125,3,0,121,
++ 19,0,124,0,0,106,6,0,124,4,0,131,1,0,125,6,
++ 0,87,110,18,0,4,116,7,0,107,10,0,114,159,0,1,
++ 1,1,89,110,106,0,88,121,34,0,116,8,0,124,6,0,
++ 100,3,0,124,5,0,100,4,0,124,1,0,100,5,0,124,
++ 4,0,131,1,3,125,7,0,87,110,24,0,4,116,9,0,
++ 116,10,0,102,2,0,107,10,0,114,220,0,1,1,1,89,
++ 110,45,0,88,116,11,0,100,6,0,124,4,0,124,2,0,
++ 131,3,0,1,116,12,0,124,7,0,100,4,0,124,1,0,
++ 100,7,0,124,4,0,100,8,0,124,2,0,131,1,3,83,
++ 124,0,0,106,6,0,124,2,0,131,1,0,125,8,0,124,
++ 0,0,106,13,0,124,8,0,124,2,0,131,2,0,125,9,
++ 0,116,11,0,100,9,0,124,2,0,131,2,0,1,116,14,
++ 0,106,15,0,12,114,170,1,124,4,0,100,1,0,107,9,
++ 0,114,170,1,124,3,0,100,1,0,107,9,0,114,170,1,
++ 116,16,0,124,9,0,124,3,0,116,17,0,124,8,0,131,
++ 1,0,131,3,0,125,6,0,121,36,0,124,0,0,106,18,
++ 0,124,2,0,124,4,0,124,6,0,131,3,0,1,116,11,
++ 0,100,10,0,124,4,0,131,2,0,1,87,110,18,0,4,
++ 116,2,0,107,10,0,114,169,1,1,1,1,89,110,1,0,
++ 88,124,9,0,83,41,11,122,190,67,111,110,99,114,101,116,
++ 101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,
++ 32,111,102,32,73,110,115,112,101,99,116,76,111,97,100,101,
++ 114,46,103,101,116,95,99,111,100,101,46,10,10,32,32,32,
++ 32,32,32,32,32,82,101,97,100,105,110,103,32,111,102,32,
++ 98,121,116,101,99,111,100,101,32,114,101,113,117,105,114,101,
++ 115,32,112,97,116,104,95,115,116,97,116,115,32,116,111,32,
++ 98,101,32,105,109,112,108,101,109,101,110,116,101,100,46,32,
++ 84,111,32,119,114,105,116,101,10,32,32,32,32,32,32,32,
++ 32,98,121,116,101,99,111,100,101,44,32,115,101,116,95,100,
++ 97,116,97,32,109,117,115,116,32,97,108,115,111,32,98,101,
++ 32,105,109,112,108,101,109,101,110,116,101,100,46,10,10,32,
++ 32,32,32,32,32,32,32,78,114,135,0,0,0,114,141,0,
++ 0,0,114,108,0,0,0,114,37,0,0,0,122,13,123,125,
++ 32,109,97,116,99,104,101,115,32,123,125,114,91,0,0,0,
++ 114,92,0,0,0,122,19,99,111,100,101,32,111,98,106,101,
++ 99,116,32,102,114,111,109,32,123,125,122,10,119,114,111,116,
++ 101,32,123,33,114,125,41,19,114,160,0,0,0,114,81,0,
++ 0,0,114,68,0,0,0,114,199,0,0,0,114,197,0,0,
++ 0,114,16,0,0,0,114,202,0,0,0,114,42,0,0,0,
++ 114,144,0,0,0,114,109,0,0,0,114,139,0,0,0,114,
++ 107,0,0,0,114,150,0,0,0,114,208,0,0,0,114,8,
++ 0,0,0,218,19,100,111,110,116,95,119,114,105,116,101,95,
++ 98,121,116,101,99,111,100,101,114,153,0,0,0,114,33,0,
++ 0,0,114,201,0,0,0,41,10,114,110,0,0,0,114,128,
++ 0,0,0,114,92,0,0,0,114,142,0,0,0,114,91,0,
++ 0,0,218,2,115,116,114,55,0,0,0,218,10,98,121,116,
++ 101,115,95,100,97,116,97,114,156,0,0,0,90,11,99,111,
++ 100,101,95,111,98,106,101,99,116,114,4,0,0,0,114,4,
++ 0,0,0,114,6,0,0,0,114,189,0,0,0,249,2,0,
++ 0,115,78,0,0,0,0,7,15,1,6,1,3,1,16,1,
++ 13,1,11,2,3,1,19,1,13,1,5,2,16,1,3,1,
++ 19,1,13,1,5,2,3,1,9,1,12,1,13,1,19,1,
++ 5,2,9,1,7,1,15,1,6,1,7,1,15,1,18,1,
++ 13,1,22,1,12,1,9,1,15,1,3,1,19,1,17,1,
++ 13,1,5,1,122,21,83,111,117,114,99,101,76,111,97,100,
++ 101,114,46,103,101,116,95,99,111,100,101,78,114,89,0,0,
++ 0,41,10,114,114,0,0,0,114,113,0,0,0,114,115,0,
++ 0,0,114,198,0,0,0,114,199,0,0,0,114,201,0,0,
++ 0,114,200,0,0,0,114,204,0,0,0,114,208,0,0,0,
++ 114,189,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
++ 4,0,0,0,114,6,0,0,0,114,196,0,0,0,191,2,
++ 0,0,115,14,0,0,0,12,2,12,8,12,13,12,10,12,
++ 7,12,10,18,8,114,196,0,0,0,99,0,0,0,0,0,
++ 0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,115,
++ 112,0,0,0,101,0,0,90,1,0,100,0,0,90,2,0,
++ 100,1,0,90,3,0,100,2,0,100,3,0,132,0,0,90,
++ 4,0,100,4,0,100,5,0,132,0,0,90,5,0,100,6,
++ 0,100,7,0,132,0,0,90,6,0,101,7,0,135,0,0,
++ 102,1,0,100,8,0,100,9,0,134,0,0,131,1,0,90,
++ 8,0,101,7,0,100,10,0,100,11,0,132,0,0,131,1,
++ 0,90,9,0,100,12,0,100,13,0,132,0,0,90,10,0,
++ 135,0,0,83,41,14,218,10,70,105,108,101,76,111,97,100,
++ 101,114,122,103,66,97,115,101,32,102,105,108,101,32,108,111,
++ 97,100,101,114,32,99,108,97,115,115,32,119,104,105,99,104,
++ 32,105,109,112,108,101,109,101,110,116,115,32,116,104,101,32,
++ 108,111,97,100,101,114,32,112,114,111,116,111,99,111,108,32,
++ 109,101,116,104,111,100,115,32,116,104,97,116,10,32,32,32,
++ 32,114,101,113,117,105,114,101,32,102,105,108,101,32,115,121,
++ 115,116,101,109,32,117,115,97,103,101,46,99,3,0,0,0,
++ 0,0,0,0,3,0,0,0,2,0,0,0,67,0,0,0,
++ 115,22,0,0,0,124,1,0,124,0,0,95,0,0,124,2,
++ 0,124,0,0,95,1,0,100,1,0,83,41,2,122,75,67,
++ 97,99,104,101,32,116,104,101,32,109,111,100,117,108,101,32,
++ 110,97,109,101,32,97,110,100,32,116,104,101,32,112,97,116,
++ 104,32,116,111,32,116,104,101,32,102,105,108,101,32,102,111,
++ 117,110,100,32,98,121,32,116,104,101,10,32,32,32,32,32,
++ 32,32,32,102,105,110,100,101,114,46,78,41,2,114,108,0,
++ 0,0,114,37,0,0,0,41,3,114,110,0,0,0,114,128,
++ 0,0,0,114,37,0,0,0,114,4,0,0,0,114,4,0,
++ 0,0,114,6,0,0,0,114,187,0,0,0,50,3,0,0,
++ 115,4,0,0,0,0,3,9,1,122,19,70,105,108,101,76,
++ 111,97,100,101,114,46,95,95,105,110,105,116,95,95,99,2,
++ 0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,
++ 0,0,0,115,34,0,0,0,124,0,0,106,0,0,124,1,
++ 0,106,0,0,107,2,0,111,33,0,124,0,0,106,1,0,
++ 124,1,0,106,1,0,107,2,0,83,41,1,78,41,2,218,
++ 9,95,95,99,108,97,115,115,95,95,114,120,0,0,0,41,
++ 2,114,110,0,0,0,218,5,111,116,104,101,114,114,4,0,
++ 0,0,114,4,0,0,0,114,6,0,0,0,218,6,95,95,
++ 101,113,95,95,56,3,0,0,115,4,0,0,0,0,1,18,
++ 1,122,17,70,105,108,101,76,111,97,100,101,114,46,95,95,
++ 101,113,95,95,99,1,0,0,0,0,0,0,0,1,0,0,
++ 0,3,0,0,0,67,0,0,0,115,26,0,0,0,116,0,
++ 0,124,0,0,106,1,0,131,1,0,116,0,0,124,0,0,
++ 106,2,0,131,1,0,65,83,41,1,78,41,3,218,4,104,
++ 97,115,104,114,108,0,0,0,114,37,0,0,0,41,1,114,
++ 110,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
++ 0,0,0,218,8,95,95,104,97,115,104,95,95,60,3,0,
++ 0,115,2,0,0,0,0,1,122,19,70,105,108,101,76,111,
++ 97,100,101,114,46,95,95,104,97,115,104,95,95,99,2,0,
++ 0,0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,
++ 0,0,115,22,0,0,0,116,0,0,116,1,0,124,0,0,
++ 131,2,0,106,2,0,124,1,0,131,1,0,83,41,1,122,
++ 100,76,111,97,100,32,97,32,109,111,100,117,108,101,32,102,
++ 114,111,109,32,97,32,102,105,108,101,46,10,10,32,32,32,
++ 32,32,32,32,32,84,104,105,115,32,109,101,116,104,111,100,
++ 32,105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,
++ 32,85,115,101,32,101,120,101,99,95,109,111,100,117,108,101,
++ 40,41,32,105,110,115,116,101,97,100,46,10,10,32,32,32,
++ 32,32,32,32,32,41,3,218,5,115,117,112,101,114,114,212,
++ 0,0,0,114,195,0,0,0,41,2,114,110,0,0,0,114,
++ 128,0,0,0,41,1,114,213,0,0,0,114,4,0,0,0,
++ 114,6,0,0,0,114,195,0,0,0,63,3,0,0,115,2,
++ 0,0,0,0,10,122,22,70,105,108,101,76,111,97,100,101,
++ 114,46,108,111,97,100,95,109,111,100,117,108,101,99,2,0,
++ 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,
++ 0,0,115,7,0,0,0,124,0,0,106,0,0,83,41,1,
++ 122,58,82,101,116,117,114,110,32,116,104,101,32,112,97,116,
++ 104,32,116,111,32,116,104,101,32,115,111,117,114,99,101,32,
++ 102,105,108,101,32,97,115,32,102,111,117,110,100,32,98,121,
++ 32,116,104,101,32,102,105,110,100,101,114,46,41,1,114,37,
++ 0,0,0,41,2,114,110,0,0,0,114,128,0,0,0,114,
++ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,160,
++ 0,0,0,75,3,0,0,115,2,0,0,0,0,3,122,23,
++ 70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,102,
++ 105,108,101,110,97,109,101,99,2,0,0,0,0,0,0,0,
++ 3,0,0,0,9,0,0,0,67,0,0,0,115,42,0,0,
++ 0,116,0,0,106,1,0,124,1,0,100,1,0,131,2,0,
++ 143,17,0,125,2,0,124,2,0,106,2,0,131,0,0,83,
++ 87,100,2,0,81,82,88,100,2,0,83,41,3,122,39,82,
++ 101,116,117,114,110,32,116,104,101,32,100,97,116,97,32,102,
++ 114,111,109,32,112,97,116,104,32,97,115,32,114,97,119,32,
++ 98,121,116,101,115,46,218,1,114,78,41,3,114,51,0,0,
++ 0,114,52,0,0,0,90,4,114,101,97,100,41,3,114,110,
++ 0,0,0,114,37,0,0,0,114,56,0,0,0,114,4,0,
++ 0,0,114,4,0,0,0,114,6,0,0,0,114,202,0,0,
++ 0,80,3,0,0,115,4,0,0,0,0,2,21,1,122,19,
++ 70,105,108,101,76,111,97,100,101,114,46,103,101,116,95,100,
++ 97,116,97,41,11,114,114,0,0,0,114,113,0,0,0,114,
++ 115,0,0,0,114,116,0,0,0,114,187,0,0,0,114,215,
++ 0,0,0,114,217,0,0,0,114,125,0,0,0,114,195,0,
++ 0,0,114,160,0,0,0,114,202,0,0,0,114,4,0,0,
++ 0,114,4,0,0,0,41,1,114,213,0,0,0,114,6,0,
++ 0,0,114,212,0,0,0,45,3,0,0,115,14,0,0,0,
++ 12,3,6,2,12,6,12,4,12,3,24,12,18,5,114,212,
+ 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,
+- 5,0,0,0,64,0,0,0,115,121,0,0,0,101,0,0,
++ 4,0,0,0,64,0,0,0,115,64,0,0,0,101,0,0,
+ 90,1,0,100,0,0,90,2,0,100,1,0,90,3,0,100,
+- 2,0,90,4,0,100,3,0,90,5,0,100,4,0,90,6,
+- 0,101,7,0,100,5,0,100,6,0,132,0,0,131,1,0,
+- 90,8,0,101,7,0,100,7,0,100,8,0,132,0,0,131,
+- 1,0,90,9,0,101,7,0,100,9,0,100,9,0,100,10,
+- 0,100,11,0,132,2,0,131,1,0,90,10,0,101,7,0,
+- 100,9,0,100,12,0,100,13,0,132,1,0,131,1,0,90,
+- 11,0,100,9,0,83,41,14,218,21,87,105,110,100,111,119,
+- 115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,122,
+- 62,77,101,116,97,32,112,97,116,104,32,102,105,110,100,101,
+- 114,32,102,111,114,32,109,111,100,117,108,101,115,32,100,101,
+- 99,108,97,114,101,100,32,105,110,32,116,104,101,32,87,105,
+- 110,100,111,119,115,32,114,101,103,105,115,116,114,121,46,122,
+- 59,83,111,102,116,119,97,114,101,92,80,121,116,104,111,110,
+- 92,80,121,116,104,111,110,67,111,114,101,92,123,115,121,115,
+- 95,118,101,114,115,105,111,110,125,92,77,111,100,117,108,101,
+- 115,92,123,102,117,108,108,110,97,109,101,125,122,65,83,111,
+- 102,116,119,97,114,101,92,80,121,116,104,111,110,92,80,121,
+- 116,104,111,110,67,111,114,101,92,123,115,121,115,95,118,101,
+- 114,115,105,111,110,125,92,77,111,100,117,108,101,115,92,123,
+- 102,117,108,108,110,97,109,101,125,92,68,101,98,117,103,70,
+- 99,2,0,0,0,0,0,0,0,2,0,0,0,11,0,0,
+- 0,67,0,0,0,115,67,0,0,0,121,23,0,116,0,0,
+- 106,1,0,116,0,0,106,2,0,124,1,0,131,2,0,83,
+- 87,110,37,0,4,116,3,0,107,10,0,114,62,0,1,1,
+- 1,116,0,0,106,1,0,116,0,0,106,4,0,124,1,0,
+- 131,2,0,83,89,110,1,0,88,100,0,0,83,41,1,78,
+- 41,5,218,7,95,119,105,110,114,101,103,90,7,79,112,101,
+- 110,75,101,121,90,17,72,75,69,89,95,67,85,82,82,69,
+- 78,84,95,85,83,69,82,114,42,0,0,0,90,18,72,75,
+- 69,89,95,76,79,67,65,76,95,77,65,67,72,73,78,69,
+- 41,2,218,3,99,108,115,114,5,0,0,0,114,4,0,0,
+- 0,114,4,0,0,0,114,6,0,0,0,218,14,95,111,112,
+- 101,110,95,114,101,103,105,115,116,114,121,87,2,0,0,115,
+- 8,0,0,0,0,2,3,1,23,1,13,1,122,36,87,105,
+- 110,100,111,119,115,82,101,103,105,115,116,114,121,70,105,110,
+- 100,101,114,46,95,111,112,101,110,95,114,101,103,105,115,116,
+- 114,121,99,2,0,0,0,0,0,0,0,6,0,0,0,16,
+- 0,0,0,67,0,0,0,115,143,0,0,0,124,0,0,106,
+- 0,0,114,21,0,124,0,0,106,1,0,125,2,0,110,9,
+- 0,124,0,0,106,2,0,125,2,0,124,2,0,106,3,0,
+- 100,1,0,124,1,0,100,2,0,116,4,0,106,5,0,100,
+- 0,0,100,3,0,133,2,0,25,131,0,2,125,3,0,121,
+- 47,0,124,0,0,106,6,0,124,3,0,131,1,0,143,25,
+- 0,125,4,0,116,7,0,106,8,0,124,4,0,100,4,0,
+- 131,2,0,125,5,0,87,100,0,0,81,82,88,87,110,22,
+- 0,4,116,9,0,107,10,0,114,138,0,1,1,1,100,0,
+- 0,83,89,110,1,0,88,124,5,0,83,41,5,78,114,128,
+- 0,0,0,90,11,115,121,115,95,118,101,114,115,105,111,110,
+- 114,82,0,0,0,114,32,0,0,0,41,10,218,11,68,69,
+- 66,85,71,95,66,85,73,76,68,218,18,82,69,71,73,83,
+- 84,82,89,95,75,69,89,95,68,69,66,85,71,218,12,82,
+- 69,71,73,83,84,82,89,95,75,69,89,114,49,0,0,0,
+- 114,8,0,0,0,218,7,118,101,114,115,105,111,110,114,173,
+- 0,0,0,114,171,0,0,0,90,10,81,117,101,114,121,86,
+- 97,108,117,101,114,42,0,0,0,41,6,114,172,0,0,0,
+- 114,128,0,0,0,90,12,114,101,103,105,115,116,114,121,95,
+- 107,101,121,114,5,0,0,0,90,4,104,107,101,121,218,8,
+- 102,105,108,101,112,97,116,104,114,4,0,0,0,114,4,0,
+- 0,0,114,6,0,0,0,218,16,95,115,101,97,114,99,104,
+- 95,114,101,103,105,115,116,114,121,94,2,0,0,115,22,0,
+- 0,0,0,2,9,1,12,2,9,1,15,1,22,1,3,1,
+- 18,1,29,1,13,1,9,1,122,38,87,105,110,100,111,119,
+- 115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,
+- 95,115,101,97,114,99,104,95,114,101,103,105,115,116,114,121,
+- 78,99,4,0,0,0,0,0,0,0,8,0,0,0,14,0,
+- 0,0,67,0,0,0,115,158,0,0,0,124,0,0,106,0,
+- 0,124,1,0,131,1,0,125,4,0,124,4,0,100,0,0,
+- 107,8,0,114,31,0,100,0,0,83,121,14,0,116,1,0,
+- 124,4,0,131,1,0,1,87,110,22,0,4,116,2,0,107,
+- 10,0,114,69,0,1,1,1,100,0,0,83,89,110,1,0,
+- 88,120,81,0,116,3,0,131,0,0,68,93,70,0,92,2,
+- 0,125,5,0,125,6,0,124,4,0,106,4,0,116,5,0,
+- 124,6,0,131,1,0,131,1,0,114,80,0,116,6,0,106,
+- 7,0,124,1,0,124,5,0,124,1,0,124,4,0,131,2,
+- 0,100,1,0,124,4,0,131,2,1,125,7,0,124,7,0,
+- 83,113,80,0,87,100,0,0,83,41,2,78,114,160,0,0,
+- 0,41,8,114,179,0,0,0,114,41,0,0,0,114,42,0,
+- 0,0,114,163,0,0,0,114,94,0,0,0,114,95,0,0,
+- 0,114,123,0,0,0,218,16,115,112,101,99,95,102,114,111,
+- 109,95,108,111,97,100,101,114,41,8,114,172,0,0,0,114,
+- 128,0,0,0,114,37,0,0,0,218,6,116,97,114,103,101,
+- 116,114,178,0,0,0,114,129,0,0,0,114,168,0,0,0,
+- 114,166,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
+- 6,0,0,0,218,9,102,105,110,100,95,115,112,101,99,109,
+- 2,0,0,115,26,0,0,0,0,2,15,1,12,1,4,1,
+- 3,1,14,1,13,1,9,1,22,1,21,1,9,1,15,1,
+- 9,1,122,31,87,105,110,100,111,119,115,82,101,103,105,115,
+- 116,114,121,70,105,110,100,101,114,46,102,105,110,100,95,115,
+- 112,101,99,99,3,0,0,0,0,0,0,0,4,0,0,0,
+- 3,0,0,0,67,0,0,0,115,45,0,0,0,124,0,0,
+- 106,0,0,124,1,0,124,2,0,131,2,0,125,3,0,124,
+- 3,0,100,1,0,107,9,0,114,37,0,124,3,0,106,1,
+- 0,83,100,1,0,83,100,1,0,83,41,2,122,108,70,105,
+- 110,100,32,109,111,100,117,108,101,32,110,97,109,101,100,32,
+- 105,110,32,116,104,101,32,114,101,103,105,115,116,114,121,46,
+- 10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,
+- 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,
+- 116,101,100,46,32,32,85,115,101,32,101,120,101,99,95,109,
+- 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,46,
+- 10,10,32,32,32,32,32,32,32,32,78,41,2,114,182,0,
+- 0,0,114,129,0,0,0,41,4,114,172,0,0,0,114,128,
+- 0,0,0,114,37,0,0,0,114,166,0,0,0,114,4,0,
+- 0,0,114,4,0,0,0,114,6,0,0,0,218,11,102,105,
+- 110,100,95,109,111,100,117,108,101,125,2,0,0,115,8,0,
+- 0,0,0,7,18,1,12,1,7,2,122,33,87,105,110,100,
+- 111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,
+- 114,46,102,105,110,100,95,109,111,100,117,108,101,41,12,114,
++ 2,0,100,3,0,132,0,0,90,4,0,100,4,0,100,5,
++ 0,132,0,0,90,5,0,100,6,0,100,7,0,100,8,0,
++ 100,9,0,132,0,1,90,6,0,100,10,0,83,41,11,218,
++ 16,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101,
++ 114,122,62,67,111,110,99,114,101,116,101,32,105,109,112,108,
++ 101,109,101,110,116,97,116,105,111,110,32,111,102,32,83,111,
++ 117,114,99,101,76,111,97,100,101,114,32,117,115,105,110,103,
++ 32,116,104,101,32,102,105,108,101,32,115,121,115,116,101,109,
++ 46,99,2,0,0,0,0,0,0,0,3,0,0,0,4,0,
++ 0,0,67,0,0,0,115,34,0,0,0,116,0,0,124,1,
++ 0,131,1,0,125,2,0,100,1,0,124,2,0,106,1,0,
++ 100,2,0,124,2,0,106,2,0,105,2,0,83,41,3,122,
++ 33,82,101,116,117,114,110,32,116,104,101,32,109,101,116,97,
++ 100,97,116,97,32,102,111,114,32,116,104,101,32,112,97,116,
++ 104,46,114,135,0,0,0,114,136,0,0,0,41,3,114,41,
++ 0,0,0,218,8,115,116,95,109,116,105,109,101,90,7,115,
++ 116,95,115,105,122,101,41,3,114,110,0,0,0,114,37,0,
++ 0,0,114,210,0,0,0,114,4,0,0,0,114,4,0,0,
++ 0,114,6,0,0,0,114,199,0,0,0,90,3,0,0,115,
++ 4,0,0,0,0,2,12,1,122,27,83,111,117,114,99,101,
++ 70,105,108,101,76,111,97,100,101,114,46,112,97,116,104,95,
++ 115,116,97,116,115,99,4,0,0,0,0,0,0,0,5,0,
++ 0,0,5,0,0,0,67,0,0,0,115,34,0,0,0,116,
++ 0,0,124,1,0,131,1,0,125,4,0,124,0,0,106,1,
++ 0,124,2,0,124,3,0,100,1,0,124,4,0,131,2,1,
++ 83,41,2,78,218,5,95,109,111,100,101,41,2,114,99,0,
++ 0,0,114,200,0,0,0,41,5,114,110,0,0,0,114,92,
++ 0,0,0,114,91,0,0,0,114,55,0,0,0,114,44,0,
++ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
++ 0,114,201,0,0,0,95,3,0,0,115,4,0,0,0,0,
++ 2,12,1,122,32,83,111,117,114,99,101,70,105,108,101,76,
++ 111,97,100,101,114,46,95,99,97,99,104,101,95,98,121,116,
++ 101,99,111,100,101,114,222,0,0,0,105,182,1,0,0,99,
++ 3,0,0,0,1,0,0,0,9,0,0,0,17,0,0,0,
++ 67,0,0,0,115,53,1,0,0,116,0,0,124,1,0,131,
++ 1,0,92,2,0,125,4,0,125,5,0,103,0,0,125,6,
++ 0,120,54,0,124,4,0,114,80,0,116,1,0,124,4,0,
++ 131,1,0,12,114,80,0,116,0,0,124,4,0,131,1,0,
++ 92,2,0,125,4,0,125,7,0,124,6,0,106,2,0,124,
++ 7,0,131,1,0,1,113,27,0,87,120,132,0,116,3,0,
++ 124,6,0,131,1,0,68,93,118,0,125,7,0,116,4,0,
++ 124,4,0,124,7,0,131,2,0,125,4,0,121,17,0,116,
++ 5,0,106,6,0,124,4,0,131,1,0,1,87,113,94,0,
++ 4,116,7,0,107,10,0,114,155,0,1,1,1,119,94,0,
++ 89,113,94,0,4,116,8,0,107,10,0,114,211,0,1,125,
++ 8,0,1,122,25,0,116,9,0,100,1,0,124,4,0,124,
++ 8,0,131,3,0,1,100,2,0,83,87,89,100,2,0,100,
++ 2,0,125,8,0,126,8,0,88,113,94,0,88,113,94,0,
++ 87,121,33,0,116,10,0,124,1,0,124,2,0,124,3,0,
++ 131,3,0,1,116,9,0,100,3,0,124,1,0,131,2,0,
++ 1,87,110,53,0,4,116,8,0,107,10,0,114,48,1,1,
++ 125,8,0,1,122,21,0,116,9,0,100,1,0,124,1,0,
++ 124,8,0,131,3,0,1,87,89,100,2,0,100,2,0,125,
++ 8,0,126,8,0,88,110,1,0,88,100,2,0,83,41,4,
++ 122,27,87,114,105,116,101,32,98,121,116,101,115,32,100,97,
++ 116,97,32,116,111,32,97,32,102,105,108,101,46,122,27,99,
++ 111,117,108,100,32,110,111,116,32,99,114,101,97,116,101,32,
++ 123,33,114,125,58,32,123,33,114,125,78,122,12,99,114,101,
++ 97,116,101,100,32,123,33,114,125,41,11,114,40,0,0,0,
++ 114,48,0,0,0,114,166,0,0,0,114,35,0,0,0,114,
++ 30,0,0,0,114,3,0,0,0,90,5,109,107,100,105,114,
++ 218,15,70,105,108,101,69,120,105,115,116,115,69,114,114,111,
++ 114,114,42,0,0,0,114,107,0,0,0,114,57,0,0,0,
++ 41,9,114,110,0,0,0,114,37,0,0,0,114,55,0,0,
++ 0,114,222,0,0,0,218,6,112,97,114,101,110,116,114,96,
++ 0,0,0,114,29,0,0,0,114,25,0,0,0,114,203,0,
++ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
++ 0,114,200,0,0,0,100,3,0,0,115,38,0,0,0,0,
++ 2,18,1,6,2,22,1,18,1,17,2,19,1,15,1,3,
++ 1,17,1,13,2,7,1,18,3,16,1,27,1,3,1,16,
++ 1,17,1,18,2,122,25,83,111,117,114,99,101,70,105,108,
++ 101,76,111,97,100,101,114,46,115,101,116,95,100,97,116,97,
++ 78,41,7,114,114,0,0,0,114,113,0,0,0,114,115,0,
++ 0,0,114,116,0,0,0,114,199,0,0,0,114,201,0,0,
++ 0,114,200,0,0,0,114,4,0,0,0,114,4,0,0,0,
++ 114,4,0,0,0,114,6,0,0,0,114,220,0,0,0,86,
++ 3,0,0,115,8,0,0,0,12,2,6,2,12,5,12,5,
++ 114,220,0,0,0,99,0,0,0,0,0,0,0,0,0,0,
++ 0,0,2,0,0,0,64,0,0,0,115,46,0,0,0,101,
++ 0,0,90,1,0,100,0,0,90,2,0,100,1,0,90,3,
++ 0,100,2,0,100,3,0,132,0,0,90,4,0,100,4,0,
++ 100,5,0,132,0,0,90,5,0,100,6,0,83,41,7,218,
++ 20,83,111,117,114,99,101,108,101,115,115,70,105,108,101,76,
++ 111,97,100,101,114,122,45,76,111,97,100,101,114,32,119,104,
++ 105,99,104,32,104,97,110,100,108,101,115,32,115,111,117,114,
++ 99,101,108,101,115,115,32,102,105,108,101,32,105,109,112,111,
++ 114,116,115,46,99,2,0,0,0,0,0,0,0,5,0,0,
++ 0,6,0,0,0,67,0,0,0,115,76,0,0,0,124,0,
++ 0,106,0,0,124,1,0,131,1,0,125,2,0,124,0,0,
++ 106,1,0,124,2,0,131,1,0,125,3,0,116,2,0,124,
++ 3,0,100,1,0,124,1,0,100,2,0,124,2,0,131,1,
++ 2,125,4,0,116,3,0,124,4,0,100,1,0,124,1,0,
++ 100,3,0,124,2,0,131,1,2,83,41,4,78,114,108,0,
++ 0,0,114,37,0,0,0,114,91,0,0,0,41,4,114,160,
++ 0,0,0,114,202,0,0,0,114,144,0,0,0,114,150,0,
++ 0,0,41,5,114,110,0,0,0,114,128,0,0,0,114,37,
++ 0,0,0,114,55,0,0,0,114,211,0,0,0,114,4,0,
++ 0,0,114,4,0,0,0,114,6,0,0,0,114,189,0,0,
++ 0,133,3,0,0,115,8,0,0,0,0,1,15,1,15,1,
++ 24,1,122,29,83,111,117,114,99,101,108,101,115,115,70,105,
++ 108,101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,
++ 101,99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,
++ 0,0,67,0,0,0,115,4,0,0,0,100,1,0,83,41,
++ 2,122,39,82,101,116,117,114,110,32,78,111,110,101,32,97,
++ 115,32,116,104,101,114,101,32,105,115,32,110,111,32,115,111,
++ 117,114,99,101,32,99,111,100,101,46,78,114,4,0,0,0,
++ 41,2,114,110,0,0,0,114,128,0,0,0,114,4,0,0,
++ 0,114,4,0,0,0,114,6,0,0,0,114,204,0,0,0,
++ 139,3,0,0,115,2,0,0,0,0,2,122,31,83,111,117,
++ 114,99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,
++ 114,46,103,101,116,95,115,111,117,114,99,101,78,41,6,114,
+ 114,0,0,0,114,113,0,0,0,114,115,0,0,0,114,116,
+- 0,0,0,114,176,0,0,0,114,175,0,0,0,114,174,0,
+- 0,0,218,11,99,108,97,115,115,109,101,116,104,111,100,114,
+- 173,0,0,0,114,179,0,0,0,114,182,0,0,0,114,183,
+- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,
+- 0,0,114,6,0,0,0,114,170,0,0,0,75,2,0,0,
+- 115,20,0,0,0,12,2,6,3,6,3,6,2,6,2,18,
+- 7,18,15,3,1,21,15,3,1,114,170,0,0,0,99,0,
+- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,
+- 0,0,0,115,70,0,0,0,101,0,0,90,1,0,100,0,
+- 0,90,2,0,100,1,0,90,3,0,100,2,0,100,3,0,
+- 132,0,0,90,4,0,100,4,0,100,5,0,132,0,0,90,
+- 5,0,100,6,0,100,7,0,132,0,0,90,6,0,100,8,
+- 0,100,9,0,132,0,0,90,7,0,100,10,0,83,41,11,
+- 218,13,95,76,111,97,100,101,114,66,97,115,105,99,115,122,
+- 83,66,97,115,101,32,99,108,97,115,115,32,111,102,32,99,
+- 111,109,109,111,110,32,99,111,100,101,32,110,101,101,100,101,
+- 100,32,98,121,32,98,111,116,104,32,83,111,117,114,99,101,
+- 76,111,97,100,101,114,32,97,110,100,10,32,32,32,32,83,
+- 111,117,114,99,101,108,101,115,115,70,105,108,101,76,111,97,
+- 100,101,114,46,99,2,0,0,0,0,0,0,0,5,0,0,
+- 0,3,0,0,0,67,0,0,0,115,88,0,0,0,116,0,
+- 0,124,0,0,106,1,0,124,1,0,131,1,0,131,1,0,
+- 100,1,0,25,125,2,0,124,2,0,106,2,0,100,2,0,
+- 100,1,0,131,2,0,100,3,0,25,125,3,0,124,1,0,
+- 106,3,0,100,2,0,131,1,0,100,4,0,25,125,4,0,
+- 124,3,0,100,5,0,107,2,0,111,87,0,124,4,0,100,
+- 5,0,107,3,0,83,41,6,122,141,67,111,110,99,114,101,
+- 116,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,
+- 110,32,111,102,32,73,110,115,112,101,99,116,76,111,97,100,
+- 101,114,46,105,115,95,112,97,99,107,97,103,101,32,98,121,
+- 32,99,104,101,99,107,105,110,103,32,105,102,10,32,32,32,
+- 32,32,32,32,32,116,104,101,32,112,97,116,104,32,114,101,
+- 116,117,114,110,101,100,32,98,121,32,103,101,116,95,102,105,
+- 108,101,110,97,109,101,32,104,97,115,32,97,32,102,105,108,
+- 101,110,97,109,101,32,111,102,32,39,95,95,105,110,105,116,
+- 95,95,46,112,121,39,46,114,31,0,0,0,114,60,0,0,
+- 0,114,61,0,0,0,114,58,0,0,0,218,8,95,95,105,
+- 110,105,116,95,95,41,4,114,40,0,0,0,114,159,0,0,
+- 0,114,36,0,0,0,114,34,0,0,0,41,5,114,110,0,
+- 0,0,114,128,0,0,0,114,96,0,0,0,90,13,102,105,
+- 108,101,110,97,109,101,95,98,97,115,101,90,9,116,97,105,
+- 108,95,110,97,109,101,114,4,0,0,0,114,4,0,0,0,
+- 114,6,0,0,0,114,161,0,0,0,144,2,0,0,115,8,
+- 0,0,0,0,3,25,1,22,1,19,1,122,24,95,76,111,
+- 97,100,101,114,66,97,115,105,99,115,46,105,115,95,112,97,
+- 99,107,97,103,101,99,2,0,0,0,0,0,0,0,2,0,
+- 0,0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,
+- 1,0,83,41,2,122,42,85,115,101,32,100,101,102,97,117,
+- 108,116,32,115,101,109,97,110,116,105,99,115,32,102,111,114,
+- 32,109,111,100,117,108,101,32,99,114,101,97,116,105,111,110,
+- 46,78,114,4,0,0,0,41,2,114,110,0,0,0,114,166,
+- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
+- 0,0,218,13,99,114,101,97,116,101,95,109,111,100,117,108,
+- 101,152,2,0,0,115,0,0,0,0,122,27,95,76,111,97,
+- 100,101,114,66,97,115,105,99,115,46,99,114,101,97,116,101,
+- 95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,
+- 3,0,0,0,4,0,0,0,67,0,0,0,115,80,0,0,
+- 0,124,0,0,106,0,0,124,1,0,106,1,0,131,1,0,
+- 125,2,0,124,2,0,100,1,0,107,8,0,114,54,0,116,
+- 2,0,100,2,0,106,3,0,124,1,0,106,1,0,131,1,
+- 0,131,1,0,130,1,0,116,4,0,106,5,0,116,6,0,
+- 124,2,0,124,1,0,106,7,0,131,3,0,1,100,1,0,
+- 83,41,3,122,19,69,120,101,99,117,116,101,32,116,104,101,
+- 32,109,111,100,117,108,101,46,78,122,52,99,97,110,110,111,
+- 116,32,108,111,97,100,32,109,111,100,117,108,101,32,123,33,
+- 114,125,32,119,104,101,110,32,103,101,116,95,99,111,100,101,
+- 40,41,32,114,101,116,117,114,110,115,32,78,111,110,101,41,
+- 8,218,8,103,101,116,95,99,111,100,101,114,114,0,0,0,
+- 114,109,0,0,0,114,49,0,0,0,114,123,0,0,0,218,
+- 25,95,99,97,108,108,95,119,105,116,104,95,102,114,97,109,
+- 101,115,95,114,101,109,111,118,101,100,218,4,101,120,101,99,
+- 114,120,0,0,0,41,3,114,110,0,0,0,218,6,109,111,
+- 100,117,108,101,114,148,0,0,0,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,218,11,101,120,101,99,95,109,
+- 111,100,117,108,101,155,2,0,0,115,10,0,0,0,0,2,
+- 18,1,12,1,9,1,15,1,122,25,95,76,111,97,100,101,
+- 114,66,97,115,105,99,115,46,101,120,101,99,95,109,111,100,
+- 117,108,101,99,2,0,0,0,0,0,0,0,2,0,0,0,
+- 3,0,0,0,67,0,0,0,115,16,0,0,0,116,0,0,
+- 106,1,0,124,0,0,124,1,0,131,2,0,83,41,1,78,
+- 41,2,114,123,0,0,0,218,17,95,108,111,97,100,95,109,
+- 111,100,117,108,101,95,115,104,105,109,41,2,114,110,0,0,
+- 0,114,128,0,0,0,114,4,0,0,0,114,4,0,0,0,
+- 114,6,0,0,0,218,11,108,111,97,100,95,109,111,100,117,
+- 108,101,163,2,0,0,115,2,0,0,0,0,1,122,25,95,
+- 76,111,97,100,101,114,66,97,115,105,99,115,46,108,111,97,
+- 100,95,109,111,100,117,108,101,78,41,8,114,114,0,0,0,
+- 114,113,0,0,0,114,115,0,0,0,114,116,0,0,0,114,
+- 161,0,0,0,114,187,0,0,0,114,192,0,0,0,114,194,
+- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,
+- 0,0,114,6,0,0,0,114,185,0,0,0,139,2,0,0,
+- 115,10,0,0,0,12,3,6,2,12,8,12,3,12,8,114,
+- 185,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
+- 0,4,0,0,0,64,0,0,0,115,106,0,0,0,101,0,
+- 0,90,1,0,100,0,0,90,2,0,100,1,0,100,2,0,
+- 132,0,0,90,3,0,100,3,0,100,4,0,132,0,0,90,
+- 4,0,100,5,0,100,6,0,132,0,0,90,5,0,100,7,
+- 0,100,8,0,132,0,0,90,6,0,100,9,0,100,10,0,
+- 132,0,0,90,7,0,100,11,0,100,18,0,100,13,0,100,
+- 14,0,132,0,1,90,8,0,100,15,0,100,16,0,132,0,
+- 0,90,9,0,100,17,0,83,41,19,218,12,83,111,117,114,
+- 99,101,76,111,97,100,101,114,99,2,0,0,0,0,0,0,
+- 0,2,0,0,0,1,0,0,0,67,0,0,0,115,10,0,
+- 0,0,116,0,0,130,1,0,100,1,0,83,41,2,122,178,
+- 79,112,116,105,111,110,97,108,32,109,101,116,104,111,100,32,
+- 116,104,97,116,32,114,101,116,117,114,110,115,32,116,104,101,
+- 32,109,111,100,105,102,105,99,97,116,105,111,110,32,116,105,
+- 109,101,32,40,97,110,32,105,110,116,41,32,102,111,114,32,
+- 116,104,101,10,32,32,32,32,32,32,32,32,115,112,101,99,
+- 105,102,105,101,100,32,112,97,116,104,44,32,119,104,101,114,
+- 101,32,112,97,116,104,32,105,115,32,97,32,115,116,114,46,
+- 10,10,32,32,32,32,32,32,32,32,82,97,105,115,101,115,
+- 32,73,79,69,114,114,111,114,32,119,104,101,110,32,116,104,
+- 101,32,112,97,116,104,32,99,97,110,110,111,116,32,98,101,
+- 32,104,97,110,100,108,101,100,46,10,32,32,32,32,32,32,
+- 32,32,78,41,1,218,7,73,79,69,114,114,111,114,41,2,
+- 114,110,0,0,0,114,37,0,0,0,114,4,0,0,0,114,
+- 4,0,0,0,114,6,0,0,0,218,10,112,97,116,104,95,
+- 109,116,105,109,101,169,2,0,0,115,2,0,0,0,0,6,
+- 122,23,83,111,117,114,99,101,76,111,97,100,101,114,46,112,
+- 97,116,104,95,109,116,105,109,101,99,2,0,0,0,0,0,
+- 0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,19,
+- 0,0,0,100,1,0,124,0,0,106,0,0,124,1,0,131,
+- 1,0,105,1,0,83,41,2,97,170,1,0,0,79,112,116,
+- 105,111,110,97,108,32,109,101,116,104,111,100,32,114,101,116,
+- 117,114,110,105,110,103,32,97,32,109,101,116,97,100,97,116,
+- 97,32,100,105,99,116,32,102,111,114,32,116,104,101,32,115,
+- 112,101,99,105,102,105,101,100,32,112,97,116,104,10,32,32,
+- 32,32,32,32,32,32,116,111,32,98,121,32,116,104,101,32,
+- 112,97,116,104,32,40,115,116,114,41,46,10,32,32,32,32,
+- 32,32,32,32,80,111,115,115,105,98,108,101,32,107,101,121,
+- 115,58,10,32,32,32,32,32,32,32,32,45,32,39,109,116,
+- 105,109,101,39,32,40,109,97,110,100,97,116,111,114,121,41,
+- 32,105,115,32,116,104,101,32,110,117,109,101,114,105,99,32,
+- 116,105,109,101,115,116,97,109,112,32,111,102,32,108,97,115,
+- 116,32,115,111,117,114,99,101,10,32,32,32,32,32,32,32,
+- 32,32,32,99,111,100,101,32,109,111,100,105,102,105,99,97,
+- 116,105,111,110,59,10,32,32,32,32,32,32,32,32,45,32,
+- 39,115,105,122,101,39,32,40,111,112,116,105,111,110,97,108,
+- 41,32,105,115,32,116,104,101,32,115,105,122,101,32,105,110,
+- 32,98,121,116,101,115,32,111,102,32,116,104,101,32,115,111,
+- 117,114,99,101,32,99,111,100,101,46,10,10,32,32,32,32,
+- 32,32,32,32,73,109,112,108,101,109,101,110,116,105,110,103,
+- 32,116,104,105,115,32,109,101,116,104,111,100,32,97,108,108,
+- 111,119,115,32,116,104,101,32,108,111,97,100,101,114,32,116,
+- 111,32,114,101,97,100,32,98,121,116,101,99,111,100,101,32,
+- 102,105,108,101,115,46,10,32,32,32,32,32,32,32,32,82,
+- 97,105,115,101,115,32,73,79,69,114,114,111,114,32,119,104,
+- 101,110,32,116,104,101,32,112,97,116,104,32,99,97,110,110,
+- 111,116,32,98,101,32,104,97,110,100,108,101,100,46,10,32,
+- 32,32,32,32,32,32,32,114,135,0,0,0,41,1,114,197,
+- 0,0,0,41,2,114,110,0,0,0,114,37,0,0,0,114,
+- 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,10,
+- 112,97,116,104,95,115,116,97,116,115,177,2,0,0,115,2,
+- 0,0,0,0,11,122,23,83,111,117,114,99,101,76,111,97,
+- 100,101,114,46,112,97,116,104,95,115,116,97,116,115,99,4,
+- 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,
+- 0,0,0,115,16,0,0,0,124,0,0,106,0,0,124,2,
+- 0,124,3,0,131,2,0,83,41,1,122,228,79,112,116,105,
+- 111,110,97,108,32,109,101,116,104,111,100,32,119,104,105,99,
+- 104,32,119,114,105,116,101,115,32,100,97,116,97,32,40,98,
+- 121,116,101,115,41,32,116,111,32,97,32,102,105,108,101,32,
+- 112,97,116,104,32,40,97,32,115,116,114,41,46,10,10,32,
+- 32,32,32,32,32,32,32,73,109,112,108,101,109,101,110,116,
+- 105,110,103,32,116,104,105,115,32,109,101,116,104,111,100,32,
+- 97,108,108,111,119,115,32,102,111,114,32,116,104,101,32,119,
+- 114,105,116,105,110,103,32,111,102,32,98,121,116,101,99,111,
+- 100,101,32,102,105,108,101,115,46,10,10,32,32,32,32,32,
+- 32,32,32,84,104,101,32,115,111,117,114,99,101,32,112,97,
+- 116,104,32,105,115,32,110,101,101,100,101,100,32,105,110,32,
+- 111,114,100,101,114,32,116,111,32,99,111,114,114,101,99,116,
+- 108,121,32,116,114,97,110,115,102,101,114,32,112,101,114,109,
+- 105,115,115,105,111,110,115,10,32,32,32,32,32,32,32,32,
+- 41,1,218,8,115,101,116,95,100,97,116,97,41,4,114,110,
+- 0,0,0,114,92,0,0,0,90,10,99,97,99,104,101,95,
+- 112,97,116,104,114,55,0,0,0,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,218,15,95,99,97,99,104,101,
+- 95,98,121,116,101,99,111,100,101,190,2,0,0,115,2,0,
+- 0,0,0,8,122,28,83,111,117,114,99,101,76,111,97,100,
+- 101,114,46,95,99,97,99,104,101,95,98,121,116,101,99,111,
+- 100,101,99,3,0,0,0,0,0,0,0,3,0,0,0,1,
+- 0,0,0,67,0,0,0,115,4,0,0,0,100,1,0,83,
+- 41,2,122,150,79,112,116,105,111,110,97,108,32,109,101,116,
+- 104,111,100,32,119,104,105,99,104,32,119,114,105,116,101,115,
+- 32,100,97,116,97,32,40,98,121,116,101,115,41,32,116,111,
+- 32,97,32,102,105,108,101,32,112,97,116,104,32,40,97,32,
+- 115,116,114,41,46,10,10,32,32,32,32,32,32,32,32,73,
+- 109,112,108,101,109,101,110,116,105,110,103,32,116,104,105,115,
+- 32,109,101,116,104,111,100,32,97,108,108,111,119,115,32,102,
+- 111,114,32,116,104,101,32,119,114,105,116,105,110,103,32,111,
+- 102,32,98,121,116,101,99,111,100,101,32,102,105,108,101,115,
+- 46,10,32,32,32,32,32,32,32,32,78,114,4,0,0,0,
+- 41,3,114,110,0,0,0,114,37,0,0,0,114,55,0,0,
+- 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
+- 114,199,0,0,0,200,2,0,0,115,0,0,0,0,122,21,
+- 83,111,117,114,99,101,76,111,97,100,101,114,46,115,101,116,
+- 95,100,97,116,97,99,2,0,0,0,0,0,0,0,5,0,
+- 0,0,16,0,0,0,67,0,0,0,115,105,0,0,0,124,
+- 0,0,106,0,0,124,1,0,131,1,0,125,2,0,121,19,
+- 0,124,0,0,106,1,0,124,2,0,131,1,0,125,3,0,
+- 87,110,58,0,4,116,2,0,107,10,0,114,94,0,1,125,
+- 4,0,1,122,26,0,116,3,0,100,1,0,100,2,0,124,
+- 1,0,131,1,1,124,4,0,130,2,0,87,89,100,3,0,
+- 100,3,0,125,4,0,126,4,0,88,110,1,0,88,116,4,
+- 0,124,3,0,131,1,0,83,41,4,122,52,67,111,110,99,
+- 114,101,116,101,32,105,109,112,108,101,109,101,110,116,97,116,
+- 105,111,110,32,111,102,32,73,110,115,112,101,99,116,76,111,
+- 97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,46,
+- 122,39,115,111,117,114,99,101,32,110,111,116,32,97,118,97,
+- 105,108,97,98,108,101,32,116,104,114,111,117,103,104,32,103,
+- 101,116,95,100,97,116,97,40,41,114,108,0,0,0,78,41,
+- 5,114,159,0,0,0,218,8,103,101,116,95,100,97,116,97,
+- 114,42,0,0,0,114,109,0,0,0,114,157,0,0,0,41,
+- 5,114,110,0,0,0,114,128,0,0,0,114,37,0,0,0,
+- 114,155,0,0,0,218,3,101,120,99,114,4,0,0,0,114,
+- 4,0,0,0,114,6,0,0,0,218,10,103,101,116,95,115,
+- 111,117,114,99,101,207,2,0,0,115,14,0,0,0,0,2,
+- 15,1,3,1,19,1,18,1,9,1,31,1,122,23,83,111,
+- 117,114,99,101,76,111,97,100,101,114,46,103,101,116,95,115,
+- 111,117,114,99,101,218,9,95,111,112,116,105,109,105,122,101,
+- 114,31,0,0,0,99,3,0,0,0,1,0,0,0,4,0,
+- 0,0,9,0,0,0,67,0,0,0,115,34,0,0,0,116,
+- 0,0,106,1,0,116,2,0,124,1,0,124,2,0,100,1,
+- 0,100,2,0,100,3,0,100,4,0,124,3,0,131,4,2,
+- 83,41,5,122,130,82,101,116,117,114,110,32,116,104,101,32,
+- 99,111,100,101,32,111,98,106,101,99,116,32,99,111,109,112,
+- 105,108,101,100,32,102,114,111,109,32,115,111,117,114,99,101,
+- 46,10,10,32,32,32,32,32,32,32,32,84,104,101,32,39,
+- 100,97,116,97,39,32,97,114,103,117,109,101,110,116,32,99,
+- 97,110,32,98,101,32,97,110,121,32,111,98,106,101,99,116,
+- 32,116,121,112,101,32,116,104,97,116,32,99,111,109,112,105,
+- 108,101,40,41,32,115,117,112,112,111,114,116,115,46,10,32,
+- 32,32,32,32,32,32,32,114,190,0,0,0,218,12,100,111,
+- 110,116,95,105,110,104,101,114,105,116,84,114,70,0,0,0,
+- 41,3,114,123,0,0,0,114,189,0,0,0,218,7,99,111,
+- 109,112,105,108,101,41,4,114,110,0,0,0,114,55,0,0,
+- 0,114,37,0,0,0,114,204,0,0,0,114,4,0,0,0,
+- 114,4,0,0,0,114,6,0,0,0,218,14,115,111,117,114,
+- 99,101,95,116,111,95,99,111,100,101,217,2,0,0,115,4,
+- 0,0,0,0,5,21,1,122,27,83,111,117,114,99,101,76,
+- 111,97,100,101,114,46,115,111,117,114,99,101,95,116,111,95,
+- 99,111,100,101,99,2,0,0,0,0,0,0,0,10,0,0,
+- 0,43,0,0,0,67,0,0,0,115,174,1,0,0,124,0,
+- 0,106,0,0,124,1,0,131,1,0,125,2,0,100,1,0,
+- 125,3,0,121,16,0,116,1,0,124,2,0,131,1,0,125,
+- 4,0,87,110,24,0,4,116,2,0,107,10,0,114,63,0,
+- 1,1,1,100,1,0,125,4,0,89,110,202,0,88,121,19,
+- 0,124,0,0,106,3,0,124,2,0,131,1,0,125,5,0,
+- 87,110,18,0,4,116,4,0,107,10,0,114,103,0,1,1,
+- 1,89,110,162,0,88,116,5,0,124,5,0,100,2,0,25,
+- 131,1,0,125,3,0,121,19,0,124,0,0,106,6,0,124,
+- 4,0,131,1,0,125,6,0,87,110,18,0,4,116,7,0,
+- 107,10,0,114,159,0,1,1,1,89,110,106,0,88,121,34,
+- 0,116,8,0,124,6,0,100,3,0,124,5,0,100,4,0,
+- 124,1,0,100,5,0,124,4,0,131,1,3,125,7,0,87,
+- 110,24,0,4,116,9,0,116,10,0,102,2,0,107,10,0,
+- 114,220,0,1,1,1,89,110,45,0,88,116,11,0,100,6,
+- 0,124,4,0,124,2,0,131,3,0,1,116,12,0,124,7,
+- 0,100,4,0,124,1,0,100,7,0,124,4,0,100,8,0,
+- 124,2,0,131,1,3,83,124,0,0,106,6,0,124,2,0,
+- 131,1,0,125,8,0,124,0,0,106,13,0,124,8,0,124,
+- 2,0,131,2,0,125,9,0,116,11,0,100,9,0,124,2,
+- 0,131,2,0,1,116,14,0,106,15,0,12,114,170,1,124,
+- 4,0,100,1,0,107,9,0,114,170,1,124,3,0,100,1,
+- 0,107,9,0,114,170,1,116,16,0,124,9,0,124,3,0,
+- 116,17,0,124,8,0,131,1,0,131,3,0,125,6,0,121,
+- 36,0,124,0,0,106,18,0,124,2,0,124,4,0,124,6,
+- 0,131,3,0,1,116,11,0,100,10,0,124,4,0,131,2,
+- 0,1,87,110,18,0,4,116,2,0,107,10,0,114,169,1,
+- 1,1,1,89,110,1,0,88,124,9,0,83,41,11,122,190,
+- 67,111,110,99,114,101,116,101,32,105,109,112,108,101,109,101,
+- 110,116,97,116,105,111,110,32,111,102,32,73,110,115,112,101,
+- 99,116,76,111,97,100,101,114,46,103,101,116,95,99,111,100,
+- 101,46,10,10,32,32,32,32,32,32,32,32,82,101,97,100,
+- 105,110,103,32,111,102,32,98,121,116,101,99,111,100,101,32,
+- 114,101,113,117,105,114,101,115,32,112,97,116,104,95,115,116,
+- 97,116,115,32,116,111,32,98,101,32,105,109,112,108,101,109,
+- 101,110,116,101,100,46,32,84,111,32,119,114,105,116,101,10,
+- 32,32,32,32,32,32,32,32,98,121,116,101,99,111,100,101,
+- 44,32,115,101,116,95,100,97,116,97,32,109,117,115,116,32,
+- 97,108,115,111,32,98,101,32,105,109,112,108,101,109,101,110,
+- 116,101,100,46,10,10,32,32,32,32,32,32,32,32,78,114,
+- 135,0,0,0,114,140,0,0,0,114,108,0,0,0,114,37,
+- 0,0,0,122,13,123,125,32,109,97,116,99,104,101,115,32,
+- 123,125,114,91,0,0,0,114,92,0,0,0,122,19,99,111,
+- 100,101,32,111,98,106,101,99,116,32,102,114,111,109,32,123,
+- 125,122,10,119,114,111,116,101,32,123,33,114,125,41,19,114,
+- 159,0,0,0,114,81,0,0,0,114,68,0,0,0,114,198,
+- 0,0,0,114,196,0,0,0,114,16,0,0,0,114,201,0,
+- 0,0,114,42,0,0,0,114,143,0,0,0,114,109,0,0,
+- 0,114,138,0,0,0,114,107,0,0,0,114,149,0,0,0,
+- 114,207,0,0,0,114,8,0,0,0,218,19,100,111,110,116,
+- 95,119,114,105,116,101,95,98,121,116,101,99,111,100,101,114,
+- 152,0,0,0,114,33,0,0,0,114,200,0,0,0,41,10,
+- 114,110,0,0,0,114,128,0,0,0,114,92,0,0,0,114,
+- 141,0,0,0,114,91,0,0,0,218,2,115,116,114,55,0,
+- 0,0,218,10,98,121,116,101,115,95,100,97,116,97,114,155,
+- 0,0,0,90,11,99,111,100,101,95,111,98,106,101,99,116,
+- 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,
+- 188,0,0,0,225,2,0,0,115,78,0,0,0,0,7,15,
+- 1,6,1,3,1,16,1,13,1,11,2,3,1,19,1,13,
+- 1,5,2,16,1,3,1,19,1,13,1,5,2,3,1,9,
+- 1,12,1,13,1,19,1,5,2,9,1,7,1,15,1,6,
+- 1,7,1,15,1,18,1,13,1,22,1,12,1,9,1,15,
+- 1,3,1,19,1,17,1,13,1,5,1,122,21,83,111,117,
+- 114,99,101,76,111,97,100,101,114,46,103,101,116,95,99,111,
+- 100,101,78,114,89,0,0,0,41,10,114,114,0,0,0,114,
+- 113,0,0,0,114,115,0,0,0,114,197,0,0,0,114,198,
+- 0,0,0,114,200,0,0,0,114,199,0,0,0,114,203,0,
+- 0,0,114,207,0,0,0,114,188,0,0,0,114,4,0,0,
+- 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
+- 114,195,0,0,0,167,2,0,0,115,14,0,0,0,12,2,
+- 12,8,12,13,12,10,12,7,12,10,18,8,114,195,0,0,
+- 0,99,0,0,0,0,0,0,0,0,0,0,0,0,4,0,
+- 0,0,0,0,0,0,115,112,0,0,0,101,0,0,90,1,
+- 0,100,0,0,90,2,0,100,1,0,90,3,0,100,2,0,
+- 100,3,0,132,0,0,90,4,0,100,4,0,100,5,0,132,
+- 0,0,90,5,0,100,6,0,100,7,0,132,0,0,90,6,
+- 0,101,7,0,135,0,0,102,1,0,100,8,0,100,9,0,
+- 134,0,0,131,1,0,90,8,0,101,7,0,100,10,0,100,
+- 11,0,132,0,0,131,1,0,90,9,0,100,12,0,100,13,
+- 0,132,0,0,90,10,0,135,0,0,83,41,14,218,10,70,
+- 105,108,101,76,111,97,100,101,114,122,103,66,97,115,101,32,
+- 102,105,108,101,32,108,111,97,100,101,114,32,99,108,97,115,
+- 115,32,119,104,105,99,104,32,105,109,112,108,101,109,101,110,
+- 116,115,32,116,104,101,32,108,111,97,100,101,114,32,112,114,
+- 111,116,111,99,111,108,32,109,101,116,104,111,100,115,32,116,
+- 104,97,116,10,32,32,32,32,114,101,113,117,105,114,101,32,
+- 102,105,108,101,32,115,121,115,116,101,109,32,117,115,97,103,
+- 101,46,99,3,0,0,0,0,0,0,0,3,0,0,0,2,
+- 0,0,0,67,0,0,0,115,22,0,0,0,124,1,0,124,
+- 0,0,95,0,0,124,2,0,124,0,0,95,1,0,100,1,
+- 0,83,41,2,122,75,67,97,99,104,101,32,116,104,101,32,
+- 109,111,100,117,108,101,32,110,97,109,101,32,97,110,100,32,
+- 116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,
+- 102,105,108,101,32,102,111,117,110,100,32,98,121,32,116,104,
+- 101,10,32,32,32,32,32,32,32,32,102,105,110,100,101,114,
+- 46,78,41,2,114,108,0,0,0,114,37,0,0,0,41,3,
+- 114,110,0,0,0,114,128,0,0,0,114,37,0,0,0,114,
+- 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,186,
+- 0,0,0,26,3,0,0,115,4,0,0,0,0,3,9,1,
+- 122,19,70,105,108,101,76,111,97,100,101,114,46,95,95,105,
+- 110,105,116,95,95,99,2,0,0,0,0,0,0,0,2,0,
+- 0,0,2,0,0,0,67,0,0,0,115,34,0,0,0,124,
+- 0,0,106,0,0,124,1,0,106,0,0,107,2,0,111,33,
+- 0,124,0,0,106,1,0,124,1,0,106,1,0,107,2,0,
+- 83,41,1,78,41,2,218,9,95,95,99,108,97,115,115,95,
+- 95,114,120,0,0,0,41,2,114,110,0,0,0,218,5,111,
+- 116,104,101,114,114,4,0,0,0,114,4,0,0,0,114,6,
+- 0,0,0,218,6,95,95,101,113,95,95,32,3,0,0,115,
+- 4,0,0,0,0,1,18,1,122,17,70,105,108,101,76,111,
+- 97,100,101,114,46,95,95,101,113,95,95,99,1,0,0,0,
+- 0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,
+- 115,26,0,0,0,116,0,0,124,0,0,106,1,0,131,1,
+- 0,116,0,0,124,0,0,106,2,0,131,1,0,65,83,41,
+- 1,78,41,3,218,4,104,97,115,104,114,108,0,0,0,114,
+- 37,0,0,0,41,1,114,110,0,0,0,114,4,0,0,0,
+- 114,4,0,0,0,114,6,0,0,0,218,8,95,95,104,97,
+- 115,104,95,95,36,3,0,0,115,2,0,0,0,0,1,122,
+- 19,70,105,108,101,76,111,97,100,101,114,46,95,95,104,97,
+- 115,104,95,95,99,2,0,0,0,0,0,0,0,2,0,0,
+- 0,3,0,0,0,3,0,0,0,115,22,0,0,0,116,0,
+- 0,116,1,0,124,0,0,131,2,0,106,2,0,124,1,0,
+- 131,1,0,83,41,1,122,100,76,111,97,100,32,97,32,109,
+- 111,100,117,108,101,32,102,114,111,109,32,97,32,102,105,108,
+- 101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,115,
+- 32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,
+- 99,97,116,101,100,46,32,32,85,115,101,32,101,120,101,99,
+- 95,109,111,100,117,108,101,40,41,32,105,110,115,116,101,97,
+- 100,46,10,10,32,32,32,32,32,32,32,32,41,3,218,5,
+- 115,117,112,101,114,114,211,0,0,0,114,194,0,0,0,41,
+- 2,114,110,0,0,0,114,128,0,0,0,41,1,114,212,0,
+- 0,0,114,4,0,0,0,114,6,0,0,0,114,194,0,0,
+- 0,39,3,0,0,115,2,0,0,0,0,10,122,22,70,105,
+- 108,101,76,111,97,100,101,114,46,108,111,97,100,95,109,111,
+- 100,117,108,101,99,2,0,0,0,0,0,0,0,2,0,0,
+- 0,1,0,0,0,67,0,0,0,115,7,0,0,0,124,0,
+- 0,106,0,0,83,41,1,122,58,82,101,116,117,114,110,32,
+- 116,104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,
+- 115,111,117,114,99,101,32,102,105,108,101,32,97,115,32,102,
+- 111,117,110,100,32,98,121,32,116,104,101,32,102,105,110,100,
+- 101,114,46,41,1,114,37,0,0,0,41,2,114,110,0,0,
+- 0,114,128,0,0,0,114,4,0,0,0,114,4,0,0,0,
+- 114,6,0,0,0,114,159,0,0,0,51,3,0,0,115,2,
+- 0,0,0,0,3,122,23,70,105,108,101,76,111,97,100,101,
+- 114,46,103,101,116,95,102,105,108,101,110,97,109,101,99,2,
+- 0,0,0,0,0,0,0,3,0,0,0,9,0,0,0,67,
+- 0,0,0,115,42,0,0,0,116,0,0,106,1,0,124,1,
+- 0,100,1,0,131,2,0,143,17,0,125,2,0,124,2,0,
+- 106,2,0,131,0,0,83,87,100,2,0,81,82,88,100,2,
+- 0,83,41,3,122,39,82,101,116,117,114,110,32,116,104,101,
+- 32,100,97,116,97,32,102,114,111,109,32,112,97,116,104,32,
+- 97,115,32,114,97,119,32,98,121,116,101,115,46,218,1,114,
+- 78,41,3,114,51,0,0,0,114,52,0,0,0,90,4,114,
+- 101,97,100,41,3,114,110,0,0,0,114,37,0,0,0,114,
+- 56,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
+- 0,0,0,114,201,0,0,0,56,3,0,0,115,4,0,0,
+- 0,0,2,21,1,122,19,70,105,108,101,76,111,97,100,101,
+- 114,46,103,101,116,95,100,97,116,97,41,11,114,114,0,0,
+- 0,114,113,0,0,0,114,115,0,0,0,114,116,0,0,0,
+- 114,186,0,0,0,114,214,0,0,0,114,216,0,0,0,114,
+- 125,0,0,0,114,194,0,0,0,114,159,0,0,0,114,201,
+- 0,0,0,114,4,0,0,0,114,4,0,0,0,41,1,114,
+- 212,0,0,0,114,6,0,0,0,114,211,0,0,0,21,3,
+- 0,0,115,14,0,0,0,12,3,6,2,12,6,12,4,12,
+- 3,24,12,18,5,114,211,0,0,0,99,0,0,0,0,0,
+- 0,0,0,0,0,0,0,4,0,0,0,64,0,0,0,115,
+- 64,0,0,0,101,0,0,90,1,0,100,0,0,90,2,0,
++ 0,0,0,114,189,0,0,0,114,204,0,0,0,114,4,0,
++ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
++ 0,114,225,0,0,0,129,3,0,0,115,6,0,0,0,12,
++ 2,6,2,12,6,114,225,0,0,0,99,0,0,0,0,0,
++ 0,0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,
++ 136,0,0,0,101,0,0,90,1,0,100,0,0,90,2,0,
+ 100,1,0,90,3,0,100,2,0,100,3,0,132,0,0,90,
+ 4,0,100,4,0,100,5,0,132,0,0,90,5,0,100,6,
+- 0,100,7,0,100,8,0,100,9,0,132,0,1,90,6,0,
+- 100,10,0,83,41,11,218,16,83,111,117,114,99,101,70,105,
+- 108,101,76,111,97,100,101,114,122,62,67,111,110,99,114,101,
+- 116,101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,
+- 110,32,111,102,32,83,111,117,114,99,101,76,111,97,100,101,
+- 114,32,117,115,105,110,103,32,116,104,101,32,102,105,108,101,
+- 32,115,121,115,116,101,109,46,99,2,0,0,0,0,0,0,
+- 0,3,0,0,0,4,0,0,0,67,0,0,0,115,34,0,
+- 0,0,116,0,0,124,1,0,131,1,0,125,2,0,100,1,
+- 0,124,2,0,106,1,0,100,2,0,124,2,0,106,2,0,
+- 105,2,0,83,41,3,122,33,82,101,116,117,114,110,32,116,
+- 104,101,32,109,101,116,97,100,97,116,97,32,102,111,114,32,
+- 116,104,101,32,112,97,116,104,46,114,135,0,0,0,114,136,
+- 0,0,0,41,3,114,41,0,0,0,218,8,115,116,95,109,
+- 116,105,109,101,90,7,115,116,95,115,105,122,101,41,3,114,
+- 110,0,0,0,114,37,0,0,0,114,209,0,0,0,114,4,
+- 0,0,0,114,4,0,0,0,114,6,0,0,0,114,198,0,
+- 0,0,66,3,0,0,115,4,0,0,0,0,2,12,1,122,
+- 27,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101,
+- 114,46,112,97,116,104,95,115,116,97,116,115,99,4,0,0,
+- 0,0,0,0,0,5,0,0,0,5,0,0,0,67,0,0,
+- 0,115,34,0,0,0,116,0,0,124,1,0,131,1,0,125,
+- 4,0,124,0,0,106,1,0,124,2,0,124,3,0,100,1,
+- 0,124,4,0,131,2,1,83,41,2,78,218,5,95,109,111,
+- 100,101,41,2,114,99,0,0,0,114,199,0,0,0,41,5,
+- 114,110,0,0,0,114,92,0,0,0,114,91,0,0,0,114,
+- 55,0,0,0,114,44,0,0,0,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,114,200,0,0,0,71,3,0,
+- 0,115,4,0,0,0,0,2,12,1,122,32,83,111,117,114,
+- 99,101,70,105,108,101,76,111,97,100,101,114,46,95,99,97,
+- 99,104,101,95,98,121,116,101,99,111,100,101,114,221,0,0,
+- 0,105,182,1,0,0,99,3,0,0,0,1,0,0,0,9,
+- 0,0,0,17,0,0,0,67,0,0,0,115,53,1,0,0,
+- 116,0,0,124,1,0,131,1,0,92,2,0,125,4,0,125,
+- 5,0,103,0,0,125,6,0,120,54,0,124,4,0,114,80,
+- 0,116,1,0,124,4,0,131,1,0,12,114,80,0,116,0,
+- 0,124,4,0,131,1,0,92,2,0,125,4,0,125,7,0,
+- 124,6,0,106,2,0,124,7,0,131,1,0,1,113,27,0,
+- 87,120,132,0,116,3,0,124,6,0,131,1,0,68,93,118,
+- 0,125,7,0,116,4,0,124,4,0,124,7,0,131,2,0,
+- 125,4,0,121,17,0,116,5,0,106,6,0,124,4,0,131,
+- 1,0,1,87,113,94,0,4,116,7,0,107,10,0,114,155,
+- 0,1,1,1,119,94,0,89,113,94,0,4,116,8,0,107,
+- 10,0,114,211,0,1,125,8,0,1,122,25,0,116,9,0,
+- 100,1,0,124,4,0,124,8,0,131,3,0,1,100,2,0,
+- 83,87,89,100,2,0,100,2,0,125,8,0,126,8,0,88,
+- 113,94,0,88,113,94,0,87,121,33,0,116,10,0,124,1,
+- 0,124,2,0,124,3,0,131,3,0,1,116,9,0,100,3,
+- 0,124,1,0,131,2,0,1,87,110,53,0,4,116,8,0,
+- 107,10,0,114,48,1,1,125,8,0,1,122,21,0,116,9,
+- 0,100,1,0,124,1,0,124,8,0,131,3,0,1,87,89,
+- 100,2,0,100,2,0,125,8,0,126,8,0,88,110,1,0,
+- 88,100,2,0,83,41,4,122,27,87,114,105,116,101,32,98,
+- 121,116,101,115,32,100,97,116,97,32,116,111,32,97,32,102,
+- 105,108,101,46,122,27,99,111,117,108,100,32,110,111,116,32,
+- 99,114,101,97,116,101,32,123,33,114,125,58,32,123,33,114,
+- 125,78,122,12,99,114,101,97,116,101,100,32,123,33,114,125,
+- 41,11,114,40,0,0,0,114,48,0,0,0,114,165,0,0,
+- 0,114,35,0,0,0,114,30,0,0,0,114,3,0,0,0,
+- 90,5,109,107,100,105,114,218,15,70,105,108,101,69,120,105,
+- 115,116,115,69,114,114,111,114,114,42,0,0,0,114,107,0,
+- 0,0,114,57,0,0,0,41,9,114,110,0,0,0,114,37,
+- 0,0,0,114,55,0,0,0,114,221,0,0,0,218,6,112,
+- 97,114,101,110,116,114,96,0,0,0,114,29,0,0,0,114,
+- 25,0,0,0,114,202,0,0,0,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,114,199,0,0,0,76,3,0,
+- 0,115,38,0,0,0,0,2,18,1,6,2,22,1,18,1,
+- 17,2,19,1,15,1,3,1,17,1,13,2,7,1,18,3,
+- 16,1,27,1,3,1,16,1,17,1,18,2,122,25,83,111,
+- 117,114,99,101,70,105,108,101,76,111,97,100,101,114,46,115,
+- 101,116,95,100,97,116,97,78,41,7,114,114,0,0,0,114,
+- 113,0,0,0,114,115,0,0,0,114,116,0,0,0,114,198,
+- 0,0,0,114,200,0,0,0,114,199,0,0,0,114,4,0,
++ 0,100,7,0,132,0,0,90,6,0,100,8,0,100,9,0,
++ 132,0,0,90,7,0,100,10,0,100,11,0,132,0,0,90,
++ 8,0,100,12,0,100,13,0,132,0,0,90,9,0,100,14,
++ 0,100,15,0,132,0,0,90,10,0,100,16,0,100,17,0,
++ 132,0,0,90,11,0,101,12,0,100,18,0,100,19,0,132,
++ 0,0,131,1,0,90,13,0,100,20,0,83,41,21,218,19,
++ 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,
++ 100,101,114,122,93,76,111,97,100,101,114,32,102,111,114,32,
++ 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,
++ 115,46,10,10,32,32,32,32,84,104,101,32,99,111,110,115,
++ 116,114,117,99,116,111,114,32,105,115,32,100,101,115,105,103,
++ 110,101,100,32,116,111,32,119,111,114,107,32,119,105,116,104,
++ 32,70,105,108,101,70,105,110,100,101,114,46,10,10,32,32,
++ 32,32,99,3,0,0,0,0,0,0,0,3,0,0,0,2,
++ 0,0,0,67,0,0,0,115,22,0,0,0,124,1,0,124,
++ 0,0,95,0,0,124,2,0,124,0,0,95,1,0,100,0,
++ 0,83,41,1,78,41,2,114,108,0,0,0,114,37,0,0,
++ 0,41,3,114,110,0,0,0,114,108,0,0,0,114,37,0,
+ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
+- 0,114,219,0,0,0,62,3,0,0,115,8,0,0,0,12,
+- 2,6,2,12,5,12,5,114,219,0,0,0,99,0,0,0,
+- 0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,
+- 0,115,46,0,0,0,101,0,0,90,1,0,100,0,0,90,
+- 2,0,100,1,0,90,3,0,100,2,0,100,3,0,132,0,
+- 0,90,4,0,100,4,0,100,5,0,132,0,0,90,5,0,
+- 100,6,0,83,41,7,218,20,83,111,117,114,99,101,108,101,
+- 115,115,70,105,108,101,76,111,97,100,101,114,122,45,76,111,
+- 97,100,101,114,32,119,104,105,99,104,32,104,97,110,100,108,
+- 101,115,32,115,111,117,114,99,101,108,101,115,115,32,102,105,
+- 108,101,32,105,109,112,111,114,116,115,46,99,2,0,0,0,
+- 0,0,0,0,5,0,0,0,6,0,0,0,67,0,0,0,
+- 115,76,0,0,0,124,0,0,106,0,0,124,1,0,131,1,
+- 0,125,2,0,124,0,0,106,1,0,124,2,0,131,1,0,
+- 125,3,0,116,2,0,124,3,0,100,1,0,124,1,0,100,
+- 2,0,124,2,0,131,1,2,125,4,0,116,3,0,124,4,
+- 0,100,1,0,124,1,0,100,3,0,124,2,0,131,1,2,
+- 83,41,4,78,114,108,0,0,0,114,37,0,0,0,114,91,
+- 0,0,0,41,4,114,159,0,0,0,114,201,0,0,0,114,
+- 143,0,0,0,114,149,0,0,0,41,5,114,110,0,0,0,
+- 114,128,0,0,0,114,37,0,0,0,114,55,0,0,0,114,
+- 210,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
+- 0,0,0,114,188,0,0,0,109,3,0,0,115,8,0,0,
+- 0,0,1,15,1,15,1,24,1,122,29,83,111,117,114,99,
+- 101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,46,
+- 103,101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,
++ 0,114,187,0,0,0,156,3,0,0,115,4,0,0,0,0,
++ 1,9,1,122,28,69,120,116,101,110,115,105,111,110,70,105,
++ 108,101,76,111,97,100,101,114,46,95,95,105,110,105,116,95,
++ 95,99,2,0,0,0,0,0,0,0,2,0,0,0,2,0,
++ 0,0,67,0,0,0,115,34,0,0,0,124,0,0,106,0,
++ 0,124,1,0,106,0,0,107,2,0,111,33,0,124,0,0,
++ 106,1,0,124,1,0,106,1,0,107,2,0,83,41,1,78,
++ 41,2,114,213,0,0,0,114,120,0,0,0,41,2,114,110,
++ 0,0,0,114,214,0,0,0,114,4,0,0,0,114,4,0,
++ 0,0,114,6,0,0,0,114,215,0,0,0,160,3,0,0,
++ 115,4,0,0,0,0,1,18,1,122,26,69,120,116,101,110,
++ 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,95,
++ 95,101,113,95,95,99,1,0,0,0,0,0,0,0,1,0,
++ 0,0,3,0,0,0,67,0,0,0,115,26,0,0,0,116,
++ 0,0,124,0,0,106,1,0,131,1,0,116,0,0,124,0,
++ 0,106,2,0,131,1,0,65,83,41,1,78,41,3,114,216,
++ 0,0,0,114,108,0,0,0,114,37,0,0,0,41,1,114,
++ 110,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
++ 0,0,0,114,217,0,0,0,164,3,0,0,115,2,0,0,
++ 0,0,1,122,28,69,120,116,101,110,115,105,111,110,70,105,
++ 108,101,76,111,97,100,101,114,46,95,95,104,97,115,104,95,
++ 95,99,2,0,0,0,0,0,0,0,3,0,0,0,4,0,
++ 0,0,67,0,0,0,115,47,0,0,0,116,0,0,106,1,
++ 0,116,2,0,106,3,0,124,1,0,131,2,0,125,2,0,
++ 116,4,0,100,1,0,124,1,0,106,5,0,124,0,0,106,
++ 6,0,131,3,0,1,124,2,0,83,41,2,122,38,67,114,
++ 101,97,116,101,32,97,110,32,117,110,105,116,105,97,108,105,
++ 122,101,100,32,101,120,116,101,110,115,105,111,110,32,109,111,
++ 100,117,108,101,122,38,101,120,116,101,110,115,105,111,110,32,
++ 109,111,100,117,108,101,32,123,33,114,125,32,108,111,97,100,
++ 101,100,32,102,114,111,109,32,123,33,114,125,41,7,114,123,
++ 0,0,0,114,190,0,0,0,114,148,0,0,0,90,14,99,
++ 114,101,97,116,101,95,100,121,110,97,109,105,99,114,107,0,
++ 0,0,114,108,0,0,0,114,37,0,0,0,41,3,114,110,
++ 0,0,0,114,167,0,0,0,114,192,0,0,0,114,4,0,
++ 0,0,114,4,0,0,0,114,6,0,0,0,114,188,0,0,
++ 0,167,3,0,0,115,10,0,0,0,0,2,6,1,15,1,
++ 6,1,16,1,122,33,69,120,116,101,110,115,105,111,110,70,
++ 105,108,101,76,111,97,100,101,114,46,99,114,101,97,116,101,
++ 95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,0,
++ 2,0,0,0,4,0,0,0,67,0,0,0,115,45,0,0,
++ 0,116,0,0,106,1,0,116,2,0,106,3,0,124,1,0,
++ 131,2,0,1,116,4,0,100,1,0,124,0,0,106,5,0,
++ 124,0,0,106,6,0,131,3,0,1,100,2,0,83,41,3,
++ 122,30,73,110,105,116,105,97,108,105,122,101,32,97,110,32,
++ 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,
++ 122,40,101,120,116,101,110,115,105,111,110,32,109,111,100,117,
++ 108,101,32,123,33,114,125,32,101,120,101,99,117,116,101,100,
++ 32,102,114,111,109,32,123,33,114,125,78,41,7,114,123,0,
++ 0,0,114,190,0,0,0,114,148,0,0,0,90,12,101,120,
++ 101,99,95,100,121,110,97,109,105,99,114,107,0,0,0,114,
++ 108,0,0,0,114,37,0,0,0,41,2,114,110,0,0,0,
++ 114,192,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
++ 6,0,0,0,114,193,0,0,0,175,3,0,0,115,6,0,
++ 0,0,0,2,19,1,6,1,122,31,69,120,116,101,110,115,
++ 105,111,110,70,105,108,101,76,111,97,100,101,114,46,101,120,
++ 101,99,95,109,111,100,117,108,101,99,2,0,0,0,0,0,
++ 0,0,2,0,0,0,4,0,0,0,3,0,0,0,115,48,
++ 0,0,0,116,0,0,124,0,0,106,1,0,131,1,0,100,
++ 1,0,25,137,0,0,116,2,0,135,0,0,102,1,0,100,
++ 2,0,100,3,0,134,0,0,116,3,0,68,131,1,0,131,
++ 1,0,83,41,4,122,49,82,101,116,117,114,110,32,84,114,
++ 117,101,32,105,102,32,116,104,101,32,101,120,116,101,110,115,
++ 105,111,110,32,109,111,100,117,108,101,32,105,115,32,97,32,
++ 112,97,99,107,97,103,101,46,114,31,0,0,0,99,1,0,
++ 0,0,0,0,0,0,2,0,0,0,4,0,0,0,51,0,
++ 0,0,115,31,0,0,0,124,0,0,93,21,0,125,1,0,
++ 136,0,0,100,0,0,124,1,0,23,107,2,0,86,1,113,
++ 3,0,100,1,0,83,41,2,114,187,0,0,0,78,114,4,
++ 0,0,0,41,2,114,24,0,0,0,218,6,115,117,102,102,
++ 105,120,41,1,218,9,102,105,108,101,95,110,97,109,101,114,
++ 4,0,0,0,114,6,0,0,0,250,9,60,103,101,110,101,
++ 120,112,114,62,184,3,0,0,115,2,0,0,0,6,1,122,
++ 49,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
++ 97,100,101,114,46,105,115,95,112,97,99,107,97,103,101,46,
++ 60,108,111,99,97,108,115,62,46,60,103,101,110,101,120,112,
++ 114,62,41,4,114,40,0,0,0,114,37,0,0,0,218,3,
++ 97,110,121,218,18,69,88,84,69,78,83,73,79,78,95,83,
++ 85,70,70,73,88,69,83,41,2,114,110,0,0,0,114,128,
++ 0,0,0,114,4,0,0,0,41,1,114,228,0,0,0,114,
++ 6,0,0,0,114,162,0,0,0,181,3,0,0,115,6,0,
++ 0,0,0,2,19,1,18,1,122,30,69,120,116,101,110,115,
++ 105,111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,
++ 95,112,97,99,107,97,103,101,99,2,0,0,0,0,0,0,
+ 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,
+- 0,0,100,1,0,83,41,2,122,39,82,101,116,117,114,110,
+- 32,78,111,110,101,32,97,115,32,116,104,101,114,101,32,105,
+- 115,32,110,111,32,115,111,117,114,99,101,32,99,111,100,101,
+- 46,78,114,4,0,0,0,41,2,114,110,0,0,0,114,128,
+- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
+- 0,0,114,203,0,0,0,115,3,0,0,115,2,0,0,0,
+- 0,2,122,31,83,111,117,114,99,101,108,101,115,115,70,105,
+- 108,101,76,111,97,100,101,114,46,103,101,116,95,115,111,117,
+- 114,99,101,78,41,6,114,114,0,0,0,114,113,0,0,0,
+- 114,115,0,0,0,114,116,0,0,0,114,188,0,0,0,114,
+- 203,0,0,0,114,4,0,0,0,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,114,224,0,0,0,105,3,0,
+- 0,115,6,0,0,0,12,2,6,2,12,6,114,224,0,0,
+- 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,
+- 0,0,64,0,0,0,115,136,0,0,0,101,0,0,90,1,
+- 0,100,0,0,90,2,0,100,1,0,90,3,0,100,2,0,
+- 100,3,0,132,0,0,90,4,0,100,4,0,100,5,0,132,
+- 0,0,90,5,0,100,6,0,100,7,0,132,0,0,90,6,
+- 0,100,8,0,100,9,0,132,0,0,90,7,0,100,10,0,
+- 100,11,0,132,0,0,90,8,0,100,12,0,100,13,0,132,
+- 0,0,90,9,0,100,14,0,100,15,0,132,0,0,90,10,
+- 0,100,16,0,100,17,0,132,0,0,90,11,0,101,12,0,
+- 100,18,0,100,19,0,132,0,0,131,1,0,90,13,0,100,
+- 20,0,83,41,21,218,19,69,120,116,101,110,115,105,111,110,
+- 70,105,108,101,76,111,97,100,101,114,122,93,76,111,97,100,
+- 101,114,32,102,111,114,32,101,120,116,101,110,115,105,111,110,
+- 32,109,111,100,117,108,101,115,46,10,10,32,32,32,32,84,
+- 104,101,32,99,111,110,115,116,114,117,99,116,111,114,32,105,
+- 115,32,100,101,115,105,103,110,101,100,32,116,111,32,119,111,
+- 114,107,32,119,105,116,104,32,70,105,108,101,70,105,110,100,
+- 101,114,46,10,10,32,32,32,32,99,3,0,0,0,0,0,
+- 0,0,3,0,0,0,2,0,0,0,67,0,0,0,115,22,
+- 0,0,0,124,1,0,124,0,0,95,0,0,124,2,0,124,
+- 0,0,95,1,0,100,0,0,83,41,1,78,41,2,114,108,
+- 0,0,0,114,37,0,0,0,41,3,114,110,0,0,0,114,
+- 108,0,0,0,114,37,0,0,0,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,114,186,0,0,0,132,3,0,
+- 0,115,4,0,0,0,0,1,9,1,122,28,69,120,116,101,
+- 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
+- 95,95,105,110,105,116,95,95,99,2,0,0,0,0,0,0,
+- 0,2,0,0,0,2,0,0,0,67,0,0,0,115,34,0,
+- 0,0,124,0,0,106,0,0,124,1,0,106,0,0,107,2,
+- 0,111,33,0,124,0,0,106,1,0,124,1,0,106,1,0,
+- 107,2,0,83,41,1,78,41,2,114,212,0,0,0,114,120,
+- 0,0,0,41,2,114,110,0,0,0,114,213,0,0,0,114,
+- 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,214,
+- 0,0,0,136,3,0,0,115,4,0,0,0,0,1,18,1,
+- 122,26,69,120,116,101,110,115,105,111,110,70,105,108,101,76,
+- 111,97,100,101,114,46,95,95,101,113,95,95,99,1,0,0,
+- 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
+- 0,115,26,0,0,0,116,0,0,124,0,0,106,1,0,131,
+- 1,0,116,0,0,124,0,0,106,2,0,131,1,0,65,83,
+- 41,1,78,41,3,114,215,0,0,0,114,108,0,0,0,114,
+- 37,0,0,0,41,1,114,110,0,0,0,114,4,0,0,0,
+- 114,4,0,0,0,114,6,0,0,0,114,216,0,0,0,140,
+- 3,0,0,115,2,0,0,0,0,1,122,28,69,120,116,101,
++ 0,0,100,1,0,83,41,2,122,63,82,101,116,117,114,110,
++ 32,78,111,110,101,32,97,115,32,97,110,32,101,120,116,101,
++ 110,115,105,111,110,32,109,111,100,117,108,101,32,99,97,110,
++ 110,111,116,32,99,114,101,97,116,101,32,97,32,99,111,100,
++ 101,32,111,98,106,101,99,116,46,78,114,4,0,0,0,41,
++ 2,114,110,0,0,0,114,128,0,0,0,114,4,0,0,0,
++ 114,4,0,0,0,114,6,0,0,0,114,189,0,0,0,187,
++ 3,0,0,115,2,0,0,0,0,2,122,28,69,120,116,101,
+ 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,
+- 95,95,104,97,115,104,95,95,99,2,0,0,0,0,0,0,
+- 0,3,0,0,0,4,0,0,0,67,0,0,0,115,47,0,
+- 0,0,116,0,0,106,1,0,116,2,0,106,3,0,124,1,
+- 0,131,2,0,125,2,0,116,4,0,100,1,0,124,1,0,
+- 106,5,0,124,0,0,106,6,0,131,3,0,1,124,2,0,
+- 83,41,2,122,38,67,114,101,97,116,101,32,97,110,32,117,
+- 110,105,116,105,97,108,105,122,101,100,32,101,120,116,101,110,
+- 115,105,111,110,32,109,111,100,117,108,101,122,38,101,120,116,
+- 101,110,115,105,111,110,32,109,111,100,117,108,101,32,123,33,
+- 114,125,32,108,111,97,100,101,100,32,102,114,111,109,32,123,
+- 33,114,125,41,7,114,123,0,0,0,114,189,0,0,0,114,
+- 147,0,0,0,90,14,99,114,101,97,116,101,95,100,121,110,
+- 97,109,105,99,114,107,0,0,0,114,108,0,0,0,114,37,
+- 0,0,0,41,3,114,110,0,0,0,114,166,0,0,0,114,
+- 191,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
+- 0,0,0,114,187,0,0,0,143,3,0,0,115,10,0,0,
+- 0,0,2,6,1,15,1,6,1,16,1,122,33,69,120,116,
+- 101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,
+- 46,99,114,101,97,116,101,95,109,111,100,117,108,101,99,2,
+- 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,67,
+- 0,0,0,115,45,0,0,0,116,0,0,106,1,0,116,2,
+- 0,106,3,0,124,1,0,131,2,0,1,116,4,0,100,1,
+- 0,124,0,0,106,5,0,124,0,0,106,6,0,131,3,0,
+- 1,100,2,0,83,41,3,122,30,73,110,105,116,105,97,108,
+- 105,122,101,32,97,110,32,101,120,116,101,110,115,105,111,110,
+- 32,109,111,100,117,108,101,122,40,101,120,116,101,110,115,105,
+- 111,110,32,109,111,100,117,108,101,32,123,33,114,125,32,101,
+- 120,101,99,117,116,101,100,32,102,114,111,109,32,123,33,114,
+- 125,78,41,7,114,123,0,0,0,114,189,0,0,0,114,147,
+- 0,0,0,90,12,101,120,101,99,95,100,121,110,97,109,105,
+- 99,114,107,0,0,0,114,108,0,0,0,114,37,0,0,0,
+- 41,2,114,110,0,0,0,114,191,0,0,0,114,4,0,0,
+- 0,114,4,0,0,0,114,6,0,0,0,114,192,0,0,0,
+- 151,3,0,0,115,6,0,0,0,0,2,19,1,6,1,122,
+- 31,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
+- 97,100,101,114,46,101,120,101,99,95,109,111,100,117,108,101,
+- 99,2,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
+- 0,3,0,0,0,115,48,0,0,0,116,0,0,124,0,0,
+- 106,1,0,131,1,0,100,1,0,25,137,0,0,116,2,0,
+- 135,0,0,102,1,0,100,2,0,100,3,0,134,0,0,116,
+- 3,0,68,131,1,0,131,1,0,83,41,4,122,49,82,101,
+- 116,117,114,110,32,84,114,117,101,32,105,102,32,116,104,101,
+- 32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,
+- 101,32,105,115,32,97,32,112,97,99,107,97,103,101,46,114,
+- 31,0,0,0,99,1,0,0,0,0,0,0,0,2,0,0,
+- 0,4,0,0,0,51,0,0,0,115,31,0,0,0,124,0,
+- 0,93,21,0,125,1,0,136,0,0,100,0,0,124,1,0,
+- 23,107,2,0,86,1,113,3,0,100,1,0,83,41,2,114,
+- 186,0,0,0,78,114,4,0,0,0,41,2,114,24,0,0,
+- 0,218,6,115,117,102,102,105,120,41,1,218,9,102,105,108,
+- 101,95,110,97,109,101,114,4,0,0,0,114,6,0,0,0,
+- 250,9,60,103,101,110,101,120,112,114,62,160,3,0,0,115,
+- 2,0,0,0,6,1,122,49,69,120,116,101,110,115,105,111,
+- 110,70,105,108,101,76,111,97,100,101,114,46,105,115,95,112,
+- 97,99,107,97,103,101,46,60,108,111,99,97,108,115,62,46,
+- 60,103,101,110,101,120,112,114,62,41,4,114,40,0,0,0,
+- 114,37,0,0,0,218,3,97,110,121,218,18,69,88,84,69,
+- 78,83,73,79,78,95,83,85,70,70,73,88,69,83,41,2,
+- 114,110,0,0,0,114,128,0,0,0,114,4,0,0,0,41,
+- 1,114,227,0,0,0,114,6,0,0,0,114,161,0,0,0,
+- 157,3,0,0,115,6,0,0,0,0,2,19,1,18,1,122,
+- 30,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,
+- 97,100,101,114,46,105,115,95,112,97,99,107,97,103,101,99,
+- 2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
+- 67,0,0,0,115,4,0,0,0,100,1,0,83,41,2,122,
+- 63,82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,
+- 97,110,32,101,120,116,101,110,115,105,111,110,32,109,111,100,
+- 117,108,101,32,99,97,110,110,111,116,32,99,114,101,97,116,
+- 101,32,97,32,99,111,100,101,32,111,98,106,101,99,116,46,
+- 78,114,4,0,0,0,41,2,114,110,0,0,0,114,128,0,
++ 103,101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,
++ 0,2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,
++ 0,0,100,1,0,83,41,2,122,53,82,101,116,117,114,110,
++ 32,78,111,110,101,32,97,115,32,101,120,116,101,110,115,105,
++ 111,110,32,109,111,100,117,108,101,115,32,104,97,118,101,32,
++ 110,111,32,115,111,117,114,99,101,32,99,111,100,101,46,78,
++ 114,4,0,0,0,41,2,114,110,0,0,0,114,128,0,0,
++ 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
++ 114,204,0,0,0,191,3,0,0,115,2,0,0,0,0,2,
++ 122,30,69,120,116,101,110,115,105,111,110,70,105,108,101,76,
++ 111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,101,
++ 99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
++ 0,67,0,0,0,115,7,0,0,0,124,0,0,106,0,0,
++ 83,41,1,122,58,82,101,116,117,114,110,32,116,104,101,32,
++ 112,97,116,104,32,116,111,32,116,104,101,32,115,111,117,114,
++ 99,101,32,102,105,108,101,32,97,115,32,102,111,117,110,100,
++ 32,98,121,32,116,104,101,32,102,105,110,100,101,114,46,41,
++ 1,114,37,0,0,0,41,2,114,110,0,0,0,114,128,0,
+ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
+- 0,114,188,0,0,0,163,3,0,0,115,2,0,0,0,0,
+- 2,122,28,69,120,116,101,110,115,105,111,110,70,105,108,101,
+- 76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,99,
+- 2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
+- 67,0,0,0,115,4,0,0,0,100,1,0,83,41,2,122,
+- 53,82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,
+- 101,120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,
+- 115,32,104,97,118,101,32,110,111,32,115,111,117,114,99,101,
+- 32,99,111,100,101,46,78,114,4,0,0,0,41,2,114,110,
+- 0,0,0,114,128,0,0,0,114,4,0,0,0,114,4,0,
+- 0,0,114,6,0,0,0,114,203,0,0,0,167,3,0,0,
+- 115,2,0,0,0,0,2,122,30,69,120,116,101,110,115,105,
+- 111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,116,
+- 95,115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,
+- 2,0,0,0,1,0,0,0,67,0,0,0,115,7,0,0,
+- 0,124,0,0,106,0,0,83,41,1,122,58,82,101,116,117,
+- 114,110,32,116,104,101,32,112,97,116,104,32,116,111,32,116,
+- 104,101,32,115,111,117,114,99,101,32,102,105,108,101,32,97,
+- 115,32,102,111,117,110,100,32,98,121,32,116,104,101,32,102,
+- 105,110,100,101,114,46,41,1,114,37,0,0,0,41,2,114,
+- 110,0,0,0,114,128,0,0,0,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,114,159,0,0,0,171,3,0,
+- 0,115,2,0,0,0,0,3,122,32,69,120,116,101,110,115,
+- 105,111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,
+- 116,95,102,105,108,101,110,97,109,101,78,41,14,114,114,0,
+- 0,0,114,113,0,0,0,114,115,0,0,0,114,116,0,0,
+- 0,114,186,0,0,0,114,214,0,0,0,114,216,0,0,0,
+- 114,187,0,0,0,114,192,0,0,0,114,161,0,0,0,114,
+- 188,0,0,0,114,203,0,0,0,114,125,0,0,0,114,159,
+- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,
+- 0,0,114,6,0,0,0,114,225,0,0,0,124,3,0,0,
+- 115,20,0,0,0,12,6,6,2,12,4,12,4,12,3,12,
+- 8,12,6,12,6,12,4,12,4,114,225,0,0,0,99,0,
+- 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,64,
+- 0,0,0,115,130,0,0,0,101,0,0,90,1,0,100,0,
+- 0,90,2,0,100,1,0,90,3,0,100,2,0,100,3,0,
+- 132,0,0,90,4,0,100,4,0,100,5,0,132,0,0,90,
+- 5,0,100,6,0,100,7,0,132,0,0,90,6,0,100,8,
+- 0,100,9,0,132,0,0,90,7,0,100,10,0,100,11,0,
+- 132,0,0,90,8,0,100,12,0,100,13,0,132,0,0,90,
+- 9,0,100,14,0,100,15,0,132,0,0,90,10,0,100,16,
+- 0,100,17,0,132,0,0,90,11,0,100,18,0,100,19,0,
+- 132,0,0,90,12,0,100,20,0,83,41,21,218,14,95,78,
+- 97,109,101,115,112,97,99,101,80,97,116,104,97,38,1,0,
+- 0,82,101,112,114,101,115,101,110,116,115,32,97,32,110,97,
+- 109,101,115,112,97,99,101,32,112,97,99,107,97,103,101,39,
+- 115,32,112,97,116,104,46,32,32,73,116,32,117,115,101,115,
+- 32,116,104,101,32,109,111,100,117,108,101,32,110,97,109,101,
+- 10,32,32,32,32,116,111,32,102,105,110,100,32,105,116,115,
+- 32,112,97,114,101,110,116,32,109,111,100,117,108,101,44,32,
+- 97,110,100,32,102,114,111,109,32,116,104,101,114,101,32,105,
+- 116,32,108,111,111,107,115,32,117,112,32,116,104,101,32,112,
+- 97,114,101,110,116,39,115,10,32,32,32,32,95,95,112,97,
+- 116,104,95,95,46,32,32,87,104,101,110,32,116,104,105,115,
+- 32,99,104,97,110,103,101,115,44,32,116,104,101,32,109,111,
+- 100,117,108,101,39,115,32,111,119,110,32,112,97,116,104,32,
+- 105,115,32,114,101,99,111,109,112,117,116,101,100,44,10,32,
+- 32,32,32,117,115,105,110,103,32,112,97,116,104,95,102,105,
+- 110,100,101,114,46,32,32,70,111,114,32,116,111,112,45,108,
+- 101,118,101,108,32,109,111,100,117,108,101,115,44,32,116,104,
+- 101,32,112,97,114,101,110,116,32,109,111,100,117,108,101,39,
+- 115,32,112,97,116,104,10,32,32,32,32,105,115,32,115,121,
+- 115,46,112,97,116,104,46,99,4,0,0,0,0,0,0,0,
+- 4,0,0,0,2,0,0,0,67,0,0,0,115,52,0,0,
+- 0,124,1,0,124,0,0,95,0,0,124,2,0,124,0,0,
+- 95,1,0,116,2,0,124,0,0,106,3,0,131,0,0,131,
+- 1,0,124,0,0,95,4,0,124,3,0,124,0,0,95,5,
+- 0,100,0,0,83,41,1,78,41,6,218,5,95,110,97,109,
+- 101,218,5,95,112,97,116,104,114,95,0,0,0,218,16,95,
+- 103,101,116,95,112,97,114,101,110,116,95,112,97,116,104,218,
+- 17,95,108,97,115,116,95,112,97,114,101,110,116,95,112,97,
+- 116,104,218,12,95,112,97,116,104,95,102,105,110,100,101,114,
+- 41,4,114,110,0,0,0,114,108,0,0,0,114,37,0,0,
+- 0,218,11,112,97,116,104,95,102,105,110,100,101,114,114,4,
+- 0,0,0,114,4,0,0,0,114,6,0,0,0,114,186,0,
+- 0,0,184,3,0,0,115,8,0,0,0,0,1,9,1,9,
+- 1,21,1,122,23,95,78,97,109,101,115,112,97,99,101,80,
+- 97,116,104,46,95,95,105,110,105,116,95,95,99,1,0,0,
+- 0,0,0,0,0,4,0,0,0,3,0,0,0,67,0,0,
+- 0,115,53,0,0,0,124,0,0,106,0,0,106,1,0,100,
+- 1,0,131,1,0,92,3,0,125,1,0,125,2,0,125,3,
+- 0,124,2,0,100,2,0,107,2,0,114,43,0,100,6,0,
+- 83,124,1,0,100,5,0,102,2,0,83,41,7,122,62,82,
+- 101,116,117,114,110,115,32,97,32,116,117,112,108,101,32,111,
+- 102,32,40,112,97,114,101,110,116,45,109,111,100,117,108,101,
+- 45,110,97,109,101,44,32,112,97,114,101,110,116,45,112,97,
+- 116,104,45,97,116,116,114,45,110,97,109,101,41,114,60,0,
+- 0,0,114,32,0,0,0,114,8,0,0,0,114,37,0,0,
+- 0,90,8,95,95,112,97,116,104,95,95,41,2,114,8,0,
+- 0,0,114,37,0,0,0,41,2,114,232,0,0,0,114,34,
+- 0,0,0,41,4,114,110,0,0,0,114,223,0,0,0,218,
+- 3,100,111,116,90,2,109,101,114,4,0,0,0,114,4,0,
+- 0,0,114,6,0,0,0,218,23,95,102,105,110,100,95,112,
+- 97,114,101,110,116,95,112,97,116,104,95,110,97,109,101,115,
+- 190,3,0,0,115,8,0,0,0,0,2,27,1,12,2,4,
+- 3,122,38,95,78,97,109,101,115,112,97,99,101,80,97,116,
+- 104,46,95,102,105,110,100,95,112,97,114,101,110,116,95,112,
+- 97,116,104,95,110,97,109,101,115,99,1,0,0,0,0,0,
+- 0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,38,
+- 0,0,0,124,0,0,106,0,0,131,0,0,92,2,0,125,
+- 1,0,125,2,0,116,1,0,116,2,0,106,3,0,124,1,
+- 0,25,124,2,0,131,2,0,83,41,1,78,41,4,114,239,
+- 0,0,0,114,119,0,0,0,114,8,0,0,0,218,7,109,
+- 111,100,117,108,101,115,41,3,114,110,0,0,0,90,18,112,
+- 97,114,101,110,116,95,109,111,100,117,108,101,95,110,97,109,
+- 101,90,14,112,97,116,104,95,97,116,116,114,95,110,97,109,
++ 0,114,160,0,0,0,195,3,0,0,115,2,0,0,0,0,
++ 3,122,32,69,120,116,101,110,115,105,111,110,70,105,108,101,
++ 76,111,97,100,101,114,46,103,101,116,95,102,105,108,101,110,
++ 97,109,101,78,41,14,114,114,0,0,0,114,113,0,0,0,
++ 114,115,0,0,0,114,116,0,0,0,114,187,0,0,0,114,
++ 215,0,0,0,114,217,0,0,0,114,188,0,0,0,114,193,
++ 0,0,0,114,162,0,0,0,114,189,0,0,0,114,204,0,
++ 0,0,114,125,0,0,0,114,160,0,0,0,114,4,0,0,
++ 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
++ 114,226,0,0,0,148,3,0,0,115,20,0,0,0,12,6,
++ 6,2,12,4,12,4,12,3,12,8,12,6,12,6,12,4,
++ 12,4,114,226,0,0,0,99,0,0,0,0,0,0,0,0,
++ 0,0,0,0,2,0,0,0,64,0,0,0,115,130,0,0,
++ 0,101,0,0,90,1,0,100,0,0,90,2,0,100,1,0,
++ 90,3,0,100,2,0,100,3,0,132,0,0,90,4,0,100,
++ 4,0,100,5,0,132,0,0,90,5,0,100,6,0,100,7,
++ 0,132,0,0,90,6,0,100,8,0,100,9,0,132,0,0,
++ 90,7,0,100,10,0,100,11,0,132,0,0,90,8,0,100,
++ 12,0,100,13,0,132,0,0,90,9,0,100,14,0,100,15,
++ 0,132,0,0,90,10,0,100,16,0,100,17,0,132,0,0,
++ 90,11,0,100,18,0,100,19,0,132,0,0,90,12,0,100,
++ 20,0,83,41,21,218,14,95,78,97,109,101,115,112,97,99,
++ 101,80,97,116,104,97,38,1,0,0,82,101,112,114,101,115,
++ 101,110,116,115,32,97,32,110,97,109,101,115,112,97,99,101,
++ 32,112,97,99,107,97,103,101,39,115,32,112,97,116,104,46,
++ 32,32,73,116,32,117,115,101,115,32,116,104,101,32,109,111,
++ 100,117,108,101,32,110,97,109,101,10,32,32,32,32,116,111,
++ 32,102,105,110,100,32,105,116,115,32,112,97,114,101,110,116,
++ 32,109,111,100,117,108,101,44,32,97,110,100,32,102,114,111,
++ 109,32,116,104,101,114,101,32,105,116,32,108,111,111,107,115,
++ 32,117,112,32,116,104,101,32,112,97,114,101,110,116,39,115,
++ 10,32,32,32,32,95,95,112,97,116,104,95,95,46,32,32,
++ 87,104,101,110,32,116,104,105,115,32,99,104,97,110,103,101,
++ 115,44,32,116,104,101,32,109,111,100,117,108,101,39,115,32,
++ 111,119,110,32,112,97,116,104,32,105,115,32,114,101,99,111,
++ 109,112,117,116,101,100,44,10,32,32,32,32,117,115,105,110,
++ 103,32,112,97,116,104,95,102,105,110,100,101,114,46,32,32,
++ 70,111,114,32,116,111,112,45,108,101,118,101,108,32,109,111,
++ 100,117,108,101,115,44,32,116,104,101,32,112,97,114,101,110,
++ 116,32,109,111,100,117,108,101,39,115,32,112,97,116,104,10,
++ 32,32,32,32,105,115,32,115,121,115,46,112,97,116,104,46,
++ 99,4,0,0,0,0,0,0,0,4,0,0,0,2,0,0,
++ 0,67,0,0,0,115,52,0,0,0,124,1,0,124,0,0,
++ 95,0,0,124,2,0,124,0,0,95,1,0,116,2,0,124,
++ 0,0,106,3,0,131,0,0,131,1,0,124,0,0,95,4,
++ 0,124,3,0,124,0,0,95,5,0,100,0,0,83,41,1,
++ 78,41,6,218,5,95,110,97,109,101,218,5,95,112,97,116,
++ 104,114,95,0,0,0,218,16,95,103,101,116,95,112,97,114,
++ 101,110,116,95,112,97,116,104,218,17,95,108,97,115,116,95,
++ 112,97,114,101,110,116,95,112,97,116,104,218,12,95,112,97,
++ 116,104,95,102,105,110,100,101,114,41,4,114,110,0,0,0,
++ 114,108,0,0,0,114,37,0,0,0,218,11,112,97,116,104,
++ 95,102,105,110,100,101,114,114,4,0,0,0,114,4,0,0,
++ 0,114,6,0,0,0,114,187,0,0,0,208,3,0,0,115,
++ 8,0,0,0,0,1,9,1,9,1,21,1,122,23,95,78,
++ 97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,105,
++ 110,105,116,95,95,99,1,0,0,0,0,0,0,0,4,0,
++ 0,0,3,0,0,0,67,0,0,0,115,53,0,0,0,124,
++ 0,0,106,0,0,106,1,0,100,1,0,131,1,0,92,3,
++ 0,125,1,0,125,2,0,125,3,0,124,2,0,100,2,0,
++ 107,2,0,114,43,0,100,6,0,83,124,1,0,100,5,0,
++ 102,2,0,83,41,7,122,62,82,101,116,117,114,110,115,32,
++ 97,32,116,117,112,108,101,32,111,102,32,40,112,97,114,101,
++ 110,116,45,109,111,100,117,108,101,45,110,97,109,101,44,32,
++ 112,97,114,101,110,116,45,112,97,116,104,45,97,116,116,114,
++ 45,110,97,109,101,41,114,60,0,0,0,114,32,0,0,0,
++ 114,8,0,0,0,114,37,0,0,0,90,8,95,95,112,97,
++ 116,104,95,95,41,2,114,8,0,0,0,114,37,0,0,0,
++ 41,2,114,233,0,0,0,114,34,0,0,0,41,4,114,110,
++ 0,0,0,114,224,0,0,0,218,3,100,111,116,90,2,109,
+ 101,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
+- 114,234,0,0,0,200,3,0,0,115,4,0,0,0,0,1,
+- 18,1,122,31,95,78,97,109,101,115,112,97,99,101,80,97,
+- 116,104,46,95,103,101,116,95,112,97,114,101,110,116,95,112,
+- 97,116,104,99,1,0,0,0,0,0,0,0,3,0,0,0,
+- 3,0,0,0,67,0,0,0,115,118,0,0,0,116,0,0,
+- 124,0,0,106,1,0,131,0,0,131,1,0,125,1,0,124,
+- 1,0,124,0,0,106,2,0,107,3,0,114,111,0,124,0,
+- 0,106,3,0,124,0,0,106,4,0,124,1,0,131,2,0,
+- 125,2,0,124,2,0,100,0,0,107,9,0,114,102,0,124,
+- 2,0,106,5,0,100,0,0,107,8,0,114,102,0,124,2,
+- 0,106,6,0,114,102,0,124,2,0,106,6,0,124,0,0,
+- 95,7,0,124,1,0,124,0,0,95,2,0,124,0,0,106,
+- 7,0,83,41,1,78,41,8,114,95,0,0,0,114,234,0,
+- 0,0,114,235,0,0,0,114,236,0,0,0,114,232,0,0,
+- 0,114,129,0,0,0,114,158,0,0,0,114,233,0,0,0,
+- 41,3,114,110,0,0,0,90,11,112,97,114,101,110,116,95,
+- 112,97,116,104,114,166,0,0,0,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,218,12,95,114,101,99,97,108,
+- 99,117,108,97,116,101,204,3,0,0,115,16,0,0,0,0,
+- 2,18,1,15,1,21,3,27,1,9,1,12,1,9,1,122,
+- 27,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
+- 95,114,101,99,97,108,99,117,108,97,116,101,99,1,0,0,
+- 0,0,0,0,0,1,0,0,0,2,0,0,0,67,0,0,
+- 0,115,16,0,0,0,116,0,0,124,0,0,106,1,0,131,
+- 0,0,131,1,0,83,41,1,78,41,2,218,4,105,116,101,
+- 114,114,241,0,0,0,41,1,114,110,0,0,0,114,4,0,
+- 0,0,114,4,0,0,0,114,6,0,0,0,218,8,95,95,
+- 105,116,101,114,95,95,217,3,0,0,115,2,0,0,0,0,
+- 1,122,23,95,78,97,109,101,115,112,97,99,101,80,97,116,
+- 104,46,95,95,105,116,101,114,95,95,99,1,0,0,0,0,
+- 0,0,0,1,0,0,0,2,0,0,0,67,0,0,0,115,
+- 16,0,0,0,116,0,0,124,0,0,106,1,0,131,0,0,
+- 131,1,0,83,41,1,78,41,2,114,33,0,0,0,114,241,
+- 0,0,0,41,1,114,110,0,0,0,114,4,0,0,0,114,
+- 4,0,0,0,114,6,0,0,0,218,7,95,95,108,101,110,
+- 95,95,220,3,0,0,115,2,0,0,0,0,1,122,22,95,
+- 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,
+- 108,101,110,95,95,99,1,0,0,0,0,0,0,0,1,0,
+- 0,0,2,0,0,0,67,0,0,0,115,16,0,0,0,100,
+- 1,0,106,0,0,124,0,0,106,1,0,131,1,0,83,41,
+- 2,78,122,20,95,78,97,109,101,115,112,97,99,101,80,97,
+- 116,104,40,123,33,114,125,41,41,2,114,49,0,0,0,114,
+- 233,0,0,0,41,1,114,110,0,0,0,114,4,0,0,0,
+- 114,4,0,0,0,114,6,0,0,0,218,8,95,95,114,101,
+- 112,114,95,95,223,3,0,0,115,2,0,0,0,0,1,122,
+- 23,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
+- 95,95,114,101,112,114,95,95,99,2,0,0,0,0,0,0,
+- 0,2,0,0,0,2,0,0,0,67,0,0,0,115,16,0,
+- 0,0,124,1,0,124,0,0,106,0,0,131,0,0,107,6,
+- 0,83,41,1,78,41,1,114,241,0,0,0,41,2,114,110,
+- 0,0,0,218,4,105,116,101,109,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,218,12,95,95,99,111,110,116,
+- 97,105,110,115,95,95,226,3,0,0,115,2,0,0,0,0,
+- 1,122,27,95,78,97,109,101,115,112,97,99,101,80,97,116,
+- 104,46,95,95,99,111,110,116,97,105,110,115,95,95,99,2,
+- 0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,
+- 0,0,0,115,20,0,0,0,124,0,0,106,0,0,106,1,
+- 0,124,1,0,131,1,0,1,100,0,0,83,41,1,78,41,
+- 2,114,233,0,0,0,114,165,0,0,0,41,2,114,110,0,
+- 0,0,114,246,0,0,0,114,4,0,0,0,114,4,0,0,
+- 0,114,6,0,0,0,114,165,0,0,0,229,3,0,0,115,
+- 2,0,0,0,0,1,122,21,95,78,97,109,101,115,112,97,
+- 99,101,80,97,116,104,46,97,112,112,101,110,100,78,41,13,
+- 114,114,0,0,0,114,113,0,0,0,114,115,0,0,0,114,
+- 116,0,0,0,114,186,0,0,0,114,239,0,0,0,114,234,
+- 0,0,0,114,241,0,0,0,114,243,0,0,0,114,244,0,
+- 0,0,114,245,0,0,0,114,247,0,0,0,114,165,0,0,
+- 0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,
+- 114,6,0,0,0,114,231,0,0,0,177,3,0,0,115,20,
+- 0,0,0,12,5,6,2,12,6,12,10,12,4,12,13,12,
+- 3,12,3,12,3,12,3,114,231,0,0,0,99,0,0,0,
+- 0,0,0,0,0,0,0,0,0,3,0,0,0,64,0,0,
+- 0,115,118,0,0,0,101,0,0,90,1,0,100,0,0,90,
+- 2,0,100,1,0,100,2,0,132,0,0,90,3,0,101,4,
+- 0,100,3,0,100,4,0,132,0,0,131,1,0,90,5,0,
+- 100,5,0,100,6,0,132,0,0,90,6,0,100,7,0,100,
+- 8,0,132,0,0,90,7,0,100,9,0,100,10,0,132,0,
+- 0,90,8,0,100,11,0,100,12,0,132,0,0,90,9,0,
+- 100,13,0,100,14,0,132,0,0,90,10,0,100,15,0,100,
+- 16,0,132,0,0,90,11,0,100,17,0,83,41,18,218,16,
+- 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
+- 99,4,0,0,0,0,0,0,0,4,0,0,0,4,0,0,
+- 0,67,0,0,0,115,25,0,0,0,116,0,0,124,1,0,
+- 124,2,0,124,3,0,131,3,0,124,0,0,95,1,0,100,
+- 0,0,83,41,1,78,41,2,114,231,0,0,0,114,233,0,
+- 0,0,41,4,114,110,0,0,0,114,108,0,0,0,114,37,
+- 0,0,0,114,237,0,0,0,114,4,0,0,0,114,4,0,
+- 0,0,114,6,0,0,0,114,186,0,0,0,235,3,0,0,
+- 115,2,0,0,0,0,1,122,25,95,78,97,109,101,115,112,
+- 97,99,101,76,111,97,100,101,114,46,95,95,105,110,105,116,
+- 95,95,99,2,0,0,0,0,0,0,0,2,0,0,0,2,
+- 0,0,0,67,0,0,0,115,16,0,0,0,100,1,0,106,
+- 0,0,124,1,0,106,1,0,131,1,0,83,41,2,122,115,
+- 82,101,116,117,114,110,32,114,101,112,114,32,102,111,114,32,
+- 116,104,101,32,109,111,100,117,108,101,46,10,10,32,32,32,
+- 32,32,32,32,32,84,104,101,32,109,101,116,104,111,100,32,
+- 105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,
+- 84,104,101,32,105,109,112,111,114,116,32,109,97,99,104,105,
+- 110,101,114,121,32,100,111,101,115,32,116,104,101,32,106,111,
+- 98,32,105,116,115,101,108,102,46,10,10,32,32,32,32,32,
+- 32,32,32,122,25,60,109,111,100,117,108,101,32,123,33,114,
+- 125,32,40,110,97,109,101,115,112,97,99,101,41,62,41,2,
+- 114,49,0,0,0,114,114,0,0,0,41,2,114,172,0,0,
+- 0,114,191,0,0,0,114,4,0,0,0,114,4,0,0,0,
+- 114,6,0,0,0,218,11,109,111,100,117,108,101,95,114,101,
+- 112,114,238,3,0,0,115,2,0,0,0,0,7,122,28,95,
+- 78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,
+- 109,111,100,117,108,101,95,114,101,112,114,99,2,0,0,0,
+- 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,
+- 115,4,0,0,0,100,1,0,83,41,2,78,84,114,4,0,
+- 0,0,41,2,114,110,0,0,0,114,128,0,0,0,114,4,
+- 0,0,0,114,4,0,0,0,114,6,0,0,0,114,161,0,
+- 0,0,247,3,0,0,115,2,0,0,0,0,1,122,27,95,
+- 78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,
+- 105,115,95,112,97,99,107,97,103,101,99,2,0,0,0,0,
+- 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,115,
+- 4,0,0,0,100,1,0,83,41,2,78,114,32,0,0,0,
+- 114,4,0,0,0,41,2,114,110,0,0,0,114,128,0,0,
++ 218,23,95,102,105,110,100,95,112,97,114,101,110,116,95,112,
++ 97,116,104,95,110,97,109,101,115,214,3,0,0,115,8,0,
++ 0,0,0,2,27,1,12,2,4,3,122,38,95,78,97,109,
++ 101,115,112,97,99,101,80,97,116,104,46,95,102,105,110,100,
++ 95,112,97,114,101,110,116,95,112,97,116,104,95,110,97,109,
++ 101,115,99,1,0,0,0,0,0,0,0,3,0,0,0,3,
++ 0,0,0,67,0,0,0,115,38,0,0,0,124,0,0,106,
++ 0,0,131,0,0,92,2,0,125,1,0,125,2,0,116,1,
++ 0,116,2,0,106,3,0,124,1,0,25,124,2,0,131,2,
++ 0,83,41,1,78,41,4,114,240,0,0,0,114,119,0,0,
++ 0,114,8,0,0,0,218,7,109,111,100,117,108,101,115,41,
++ 3,114,110,0,0,0,90,18,112,97,114,101,110,116,95,109,
++ 111,100,117,108,101,95,110,97,109,101,90,14,112,97,116,104,
++ 95,97,116,116,114,95,110,97,109,101,114,4,0,0,0,114,
++ 4,0,0,0,114,6,0,0,0,114,235,0,0,0,224,3,
++ 0,0,115,4,0,0,0,0,1,18,1,122,31,95,78,97,
++ 109,101,115,112,97,99,101,80,97,116,104,46,95,103,101,116,
++ 95,112,97,114,101,110,116,95,112,97,116,104,99,1,0,0,
++ 0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,
++ 0,115,118,0,0,0,116,0,0,124,0,0,106,1,0,131,
++ 0,0,131,1,0,125,1,0,124,1,0,124,0,0,106,2,
++ 0,107,3,0,114,111,0,124,0,0,106,3,0,124,0,0,
++ 106,4,0,124,1,0,131,2,0,125,2,0,124,2,0,100,
++ 0,0,107,9,0,114,102,0,124,2,0,106,5,0,100,0,
++ 0,107,8,0,114,102,0,124,2,0,106,6,0,114,102,0,
++ 124,2,0,106,6,0,124,0,0,95,7,0,124,1,0,124,
++ 0,0,95,2,0,124,0,0,106,7,0,83,41,1,78,41,
++ 8,114,95,0,0,0,114,235,0,0,0,114,236,0,0,0,
++ 114,237,0,0,0,114,233,0,0,0,114,129,0,0,0,114,
++ 159,0,0,0,114,234,0,0,0,41,3,114,110,0,0,0,
++ 90,11,112,97,114,101,110,116,95,112,97,116,104,114,167,0,
++ 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
++ 0,218,12,95,114,101,99,97,108,99,117,108,97,116,101,228,
++ 3,0,0,115,16,0,0,0,0,2,18,1,15,1,21,3,
++ 27,1,9,1,12,1,9,1,122,27,95,78,97,109,101,115,
++ 112,97,99,101,80,97,116,104,46,95,114,101,99,97,108,99,
++ 117,108,97,116,101,99,1,0,0,0,0,0,0,0,1,0,
++ 0,0,2,0,0,0,67,0,0,0,115,16,0,0,0,116,
++ 0,0,124,0,0,106,1,0,131,0,0,131,1,0,83,41,
++ 1,78,41,2,218,4,105,116,101,114,114,242,0,0,0,41,
++ 1,114,110,0,0,0,114,4,0,0,0,114,4,0,0,0,
++ 114,6,0,0,0,218,8,95,95,105,116,101,114,95,95,241,
++ 3,0,0,115,2,0,0,0,0,1,122,23,95,78,97,109,
++ 101,115,112,97,99,101,80,97,116,104,46,95,95,105,116,101,
++ 114,95,95,99,1,0,0,0,0,0,0,0,1,0,0,0,
++ 2,0,0,0,67,0,0,0,115,16,0,0,0,116,0,0,
++ 124,0,0,106,1,0,131,0,0,131,1,0,83,41,1,78,
++ 41,2,114,33,0,0,0,114,242,0,0,0,41,1,114,110,
++ 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
++ 0,0,218,7,95,95,108,101,110,95,95,244,3,0,0,115,
++ 2,0,0,0,0,1,122,22,95,78,97,109,101,115,112,97,
++ 99,101,80,97,116,104,46,95,95,108,101,110,95,95,99,1,
++ 0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,67,
++ 0,0,0,115,16,0,0,0,100,1,0,106,0,0,124,0,
++ 0,106,1,0,131,1,0,83,41,2,78,122,20,95,78,97,
++ 109,101,115,112,97,99,101,80,97,116,104,40,123,33,114,125,
++ 41,41,2,114,49,0,0,0,114,234,0,0,0,41,1,114,
++ 110,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
++ 0,0,0,218,8,95,95,114,101,112,114,95,95,247,3,0,
++ 0,115,2,0,0,0,0,1,122,23,95,78,97,109,101,115,
++ 112,97,99,101,80,97,116,104,46,95,95,114,101,112,114,95,
++ 95,99,2,0,0,0,0,0,0,0,2,0,0,0,2,0,
++ 0,0,67,0,0,0,115,16,0,0,0,124,1,0,124,0,
++ 0,106,0,0,131,0,0,107,6,0,83,41,1,78,41,1,
++ 114,242,0,0,0,41,2,114,110,0,0,0,218,4,105,116,
++ 101,109,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
++ 0,218,12,95,95,99,111,110,116,97,105,110,115,95,95,250,
++ 3,0,0,115,2,0,0,0,0,1,122,27,95,78,97,109,
++ 101,115,112,97,99,101,80,97,116,104,46,95,95,99,111,110,
++ 116,97,105,110,115,95,95,99,2,0,0,0,0,0,0,0,
++ 2,0,0,0,2,0,0,0,67,0,0,0,115,20,0,0,
++ 0,124,0,0,106,0,0,106,1,0,124,1,0,131,1,0,
++ 1,100,0,0,83,41,1,78,41,2,114,234,0,0,0,114,
++ 166,0,0,0,41,2,114,110,0,0,0,114,247,0,0,0,
++ 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,
++ 166,0,0,0,253,3,0,0,115,2,0,0,0,0,1,122,
++ 21,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46,
++ 97,112,112,101,110,100,78,41,13,114,114,0,0,0,114,113,
++ 0,0,0,114,115,0,0,0,114,116,0,0,0,114,187,0,
++ 0,0,114,240,0,0,0,114,235,0,0,0,114,242,0,0,
++ 0,114,244,0,0,0,114,245,0,0,0,114,246,0,0,0,
++ 114,248,0,0,0,114,166,0,0,0,114,4,0,0,0,114,
++ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,232,
++ 0,0,0,201,3,0,0,115,20,0,0,0,12,5,6,2,
++ 12,6,12,10,12,4,12,13,12,3,12,3,12,3,12,3,
++ 114,232,0,0,0,99,0,0,0,0,0,0,0,0,0,0,
++ 0,0,3,0,0,0,64,0,0,0,115,118,0,0,0,101,
++ 0,0,90,1,0,100,0,0,90,2,0,100,1,0,100,2,
++ 0,132,0,0,90,3,0,101,4,0,100,3,0,100,4,0,
++ 132,0,0,131,1,0,90,5,0,100,5,0,100,6,0,132,
++ 0,0,90,6,0,100,7,0,100,8,0,132,0,0,90,7,
++ 0,100,9,0,100,10,0,132,0,0,90,8,0,100,11,0,
++ 100,12,0,132,0,0,90,9,0,100,13,0,100,14,0,132,
++ 0,0,90,10,0,100,15,0,100,16,0,132,0,0,90,11,
++ 0,100,17,0,83,41,18,218,16,95,78,97,109,101,115,112,
++ 97,99,101,76,111,97,100,101,114,99,4,0,0,0,0,0,
++ 0,0,4,0,0,0,4,0,0,0,67,0,0,0,115,25,
++ 0,0,0,116,0,0,124,1,0,124,2,0,124,3,0,131,
++ 3,0,124,0,0,95,1,0,100,0,0,83,41,1,78,41,
++ 2,114,232,0,0,0,114,234,0,0,0,41,4,114,110,0,
++ 0,0,114,108,0,0,0,114,37,0,0,0,114,238,0,0,
+ 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
+- 114,203,0,0,0,250,3,0,0,115,2,0,0,0,0,1,
+- 122,27,95,78,97,109,101,115,112,97,99,101,76,111,97,100,
+- 101,114,46,103,101,116,95,115,111,117,114,99,101,99,2,0,
+- 0,0,0,0,0,0,2,0,0,0,6,0,0,0,67,0,
+- 0,0,115,22,0,0,0,116,0,0,100,1,0,100,2,0,
+- 100,3,0,100,4,0,100,5,0,131,3,1,83,41,6,78,
+- 114,32,0,0,0,122,8,60,115,116,114,105,110,103,62,114,
+- 190,0,0,0,114,205,0,0,0,84,41,1,114,206,0,0,
+- 0,41,2,114,110,0,0,0,114,128,0,0,0,114,4,0,
+- 0,0,114,4,0,0,0,114,6,0,0,0,114,188,0,0,
+- 0,253,3,0,0,115,2,0,0,0,0,1,122,25,95,78,
+- 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,103,
+- 101,116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,
+- 2,0,0,0,1,0,0,0,67,0,0,0,115,4,0,0,
+- 0,100,1,0,83,41,2,122,42,85,115,101,32,100,101,102,
+- 97,117,108,116,32,115,101,109,97,110,116,105,99,115,32,102,
+- 111,114,32,109,111,100,117,108,101,32,99,114,101,97,116,105,
+- 111,110,46,78,114,4,0,0,0,41,2,114,110,0,0,0,
+- 114,166,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
+- 6,0,0,0,114,187,0,0,0,0,4,0,0,115,0,0,
+- 0,0,122,30,95,78,97,109,101,115,112,97,99,101,76,111,
+- 97,100,101,114,46,99,114,101,97,116,101,95,109,111,100,117,
+- 108,101,99,2,0,0,0,0,0,0,0,2,0,0,0,1,
+- 0,0,0,67,0,0,0,115,4,0,0,0,100,0,0,83,
+- 41,1,78,114,4,0,0,0,41,2,114,110,0,0,0,114,
+- 191,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
+- 0,0,0,114,192,0,0,0,3,4,0,0,115,2,0,0,
+- 0,0,1,122,28,95,78,97,109,101,115,112,97,99,101,76,
+- 111,97,100,101,114,46,101,120,101,99,95,109,111,100,117,108,
+- 101,99,2,0,0,0,0,0,0,0,2,0,0,0,3,0,
+- 0,0,67,0,0,0,115,32,0,0,0,116,0,0,100,1,
+- 0,124,0,0,106,1,0,131,2,0,1,116,2,0,106,3,
+- 0,124,0,0,124,1,0,131,2,0,83,41,2,122,98,76,
+- 111,97,100,32,97,32,110,97,109,101,115,112,97,99,101,32,
+- 109,111,100,117,108,101,46,10,10,32,32,32,32,32,32,32,
+- 32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,
+- 100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,
+- 32,101,120,101,99,95,109,111,100,117,108,101,40,41,32,105,
+- 110,115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,
+- 32,122,38,110,97,109,101,115,112,97,99,101,32,109,111,100,
+- 117,108,101,32,108,111,97,100,101,100,32,119,105,116,104,32,
+- 112,97,116,104,32,123,33,114,125,41,4,114,107,0,0,0,
+- 114,233,0,0,0,114,123,0,0,0,114,193,0,0,0,41,
+- 2,114,110,0,0,0,114,128,0,0,0,114,4,0,0,0,
+- 114,4,0,0,0,114,6,0,0,0,114,194,0,0,0,6,
+- 4,0,0,115,4,0,0,0,0,7,16,1,122,28,95,78,
+- 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,108,
+- 111,97,100,95,109,111,100,117,108,101,78,41,12,114,114,0,
+- 0,0,114,113,0,0,0,114,115,0,0,0,114,186,0,0,
+- 0,114,184,0,0,0,114,249,0,0,0,114,161,0,0,0,
+- 114,203,0,0,0,114,188,0,0,0,114,187,0,0,0,114,
+- 192,0,0,0,114,194,0,0,0,114,4,0,0,0,114,4,
+- 0,0,0,114,4,0,0,0,114,6,0,0,0,114,248,0,
+- 0,0,234,3,0,0,115,16,0,0,0,12,1,12,3,18,
+- 9,12,3,12,3,12,3,12,3,12,3,114,248,0,0,0,
+- 99,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,
+- 0,64,0,0,0,115,160,0,0,0,101,0,0,90,1,0,
+- 100,0,0,90,2,0,100,1,0,90,3,0,101,4,0,100,
+- 2,0,100,3,0,132,0,0,131,1,0,90,5,0,101,4,
+- 0,100,4,0,100,5,0,132,0,0,131,1,0,90,6,0,
+- 101,4,0,100,6,0,100,7,0,132,0,0,131,1,0,90,
+- 7,0,101,4,0,100,8,0,100,9,0,132,0,0,131,1,
+- 0,90,8,0,101,4,0,100,10,0,100,11,0,100,12,0,
+- 132,1,0,131,1,0,90,9,0,101,4,0,100,10,0,100,
+- 10,0,100,13,0,100,14,0,132,2,0,131,1,0,90,10,
+- 0,101,4,0,100,10,0,100,15,0,100,16,0,132,1,0,
+- 131,1,0,90,11,0,100,10,0,83,41,17,218,10,80,97,
+- 116,104,70,105,110,100,101,114,122,62,77,101,116,97,32,112,
+- 97,116,104,32,102,105,110,100,101,114,32,102,111,114,32,115,
+- 121,115,46,112,97,116,104,32,97,110,100,32,112,97,99,107,
+- 97,103,101,32,95,95,112,97,116,104,95,95,32,97,116,116,
+- 114,105,98,117,116,101,115,46,99,1,0,0,0,0,0,0,
+- 0,2,0,0,0,4,0,0,0,67,0,0,0,115,55,0,
+- 0,0,120,48,0,116,0,0,106,1,0,106,2,0,131,0,
+- 0,68,93,31,0,125,1,0,116,3,0,124,1,0,100,1,
+- 0,131,2,0,114,16,0,124,1,0,106,4,0,131,0,0,
+- 1,113,16,0,87,100,2,0,83,41,3,122,125,67,97,108,
+- 108,32,116,104,101,32,105,110,118,97,108,105,100,97,116,101,
+- 95,99,97,99,104,101,115,40,41,32,109,101,116,104,111,100,
+- 32,111,110,32,97,108,108,32,112,97,116,104,32,101,110,116,
+- 114,121,32,102,105,110,100,101,114,115,10,32,32,32,32,32,
+- 32,32,32,115,116,111,114,101,100,32,105,110,32,115,121,115,
+- 46,112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,
+- 97,99,104,101,115,32,40,119,104,101,114,101,32,105,109,112,
+- 108,101,109,101,110,116,101,100,41,46,218,17,105,110,118,97,
+- 108,105,100,97,116,101,95,99,97,99,104,101,115,78,41,5,
+- 114,8,0,0,0,218,19,112,97,116,104,95,105,109,112,111,
+- 114,116,101,114,95,99,97,99,104,101,218,6,118,97,108,117,
+- 101,115,114,117,0,0,0,114,251,0,0,0,41,2,114,172,
+- 0,0,0,218,6,102,105,110,100,101,114,114,4,0,0,0,
+- 114,4,0,0,0,114,6,0,0,0,114,251,0,0,0,23,
+- 4,0,0,115,6,0,0,0,0,4,22,1,15,1,122,28,
+- 80,97,116,104,70,105,110,100,101,114,46,105,110,118,97,108,
+- 105,100,97,116,101,95,99,97,99,104,101,115,99,2,0,0,
+- 0,0,0,0,0,3,0,0,0,12,0,0,0,67,0,0,
+- 0,115,107,0,0,0,116,0,0,106,1,0,100,1,0,107,
+- 9,0,114,41,0,116,0,0,106,1,0,12,114,41,0,116,
+- 2,0,106,3,0,100,2,0,116,4,0,131,2,0,1,120,
+- 59,0,116,0,0,106,1,0,68,93,44,0,125,2,0,121,
+- 14,0,124,2,0,124,1,0,131,1,0,83,87,113,51,0,
+- 4,116,5,0,107,10,0,114,94,0,1,1,1,119,51,0,
+- 89,113,51,0,88,113,51,0,87,100,1,0,83,100,1,0,
+- 83,41,3,122,113,83,101,97,114,99,104,32,115,101,113,117,
+- 101,110,99,101,32,111,102,32,104,111,111,107,115,32,102,111,
+- 114,32,97,32,102,105,110,100,101,114,32,102,111,114,32,39,
+- 112,97,116,104,39,46,10,10,32,32,32,32,32,32,32,32,
+- 73,102,32,39,104,111,111,107,115,39,32,105,115,32,102,97,
+- 108,115,101,32,116,104,101,110,32,117,115,101,32,115,121,115,
+- 46,112,97,116,104,95,104,111,111,107,115,46,10,10,32,32,
+- 32,32,32,32,32,32,78,122,23,115,121,115,46,112,97,116,
+- 104,95,104,111,111,107,115,32,105,115,32,101,109,112,116,121,
+- 41,6,114,8,0,0,0,218,10,112,97,116,104,95,104,111,
+- 111,107,115,114,62,0,0,0,114,63,0,0,0,114,127,0,
+- 0,0,114,109,0,0,0,41,3,114,172,0,0,0,114,37,
+- 0,0,0,90,4,104,111,111,107,114,4,0,0,0,114,4,
+- 0,0,0,114,6,0,0,0,218,11,95,112,97,116,104,95,
+- 104,111,111,107,115,31,4,0,0,115,16,0,0,0,0,7,
+- 25,1,16,1,16,1,3,1,14,1,13,1,12,2,122,22,
+- 80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,
+- 95,104,111,111,107,115,99,2,0,0,0,0,0,0,0,3,
+- 0,0,0,19,0,0,0,67,0,0,0,115,123,0,0,0,
+- 124,1,0,100,1,0,107,2,0,114,53,0,121,16,0,116,
+- 0,0,106,1,0,131,0,0,125,1,0,87,110,22,0,4,
+- 116,2,0,107,10,0,114,52,0,1,1,1,100,2,0,83,
+- 89,110,1,0,88,121,17,0,116,3,0,106,4,0,124,1,
+- 0,25,125,2,0,87,110,46,0,4,116,5,0,107,10,0,
+- 114,118,0,1,1,1,124,0,0,106,6,0,124,1,0,131,
+- 1,0,125,2,0,124,2,0,116,3,0,106,4,0,124,1,
+- 0,60,89,110,1,0,88,124,2,0,83,41,3,122,210,71,
+- 101,116,32,116,104,101,32,102,105,110,100,101,114,32,102,111,
+- 114,32,116,104,101,32,112,97,116,104,32,101,110,116,114,121,
+- 32,102,114,111,109,32,115,121,115,46,112,97,116,104,95,105,
+- 109,112,111,114,116,101,114,95,99,97,99,104,101,46,10,10,
+- 32,32,32,32,32,32,32,32,73,102,32,116,104,101,32,112,
+- 97,116,104,32,101,110,116,114,121,32,105,115,32,110,111,116,
+- 32,105,110,32,116,104,101,32,99,97,99,104,101,44,32,102,
+- 105,110,100,32,116,104,101,32,97,112,112,114,111,112,114,105,
+- 97,116,101,32,102,105,110,100,101,114,10,32,32,32,32,32,
+- 32,32,32,97,110,100,32,99,97,99,104,101,32,105,116,46,
+- 32,73,102,32,110,111,32,102,105,110,100,101,114,32,105,115,
+- 32,97,118,97,105,108,97,98,108,101,44,32,115,116,111,114,
+- 101,32,78,111,110,101,46,10,10,32,32,32,32,32,32,32,
+- 32,114,32,0,0,0,78,41,7,114,3,0,0,0,114,47,
+- 0,0,0,218,17,70,105,108,101,78,111,116,70,111,117,110,
+- 100,69,114,114,111,114,114,8,0,0,0,114,252,0,0,0,
+- 114,139,0,0,0,114,0,1,0,0,41,3,114,172,0,0,
+- 0,114,37,0,0,0,114,254,0,0,0,114,4,0,0,0,
+- 114,4,0,0,0,114,6,0,0,0,218,20,95,112,97,116,
+- 104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,
+- 48,4,0,0,115,22,0,0,0,0,8,12,1,3,1,16,
+- 1,13,3,9,1,3,1,17,1,13,1,15,1,18,1,122,
+- 31,80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,
+- 104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,
+- 99,3,0,0,0,0,0,0,0,6,0,0,0,3,0,0,
+- 0,67,0,0,0,115,119,0,0,0,116,0,0,124,2,0,
+- 100,1,0,131,2,0,114,39,0,124,2,0,106,1,0,124,
+- 1,0,131,1,0,92,2,0,125,3,0,125,4,0,110,21,
+- 0,124,2,0,106,2,0,124,1,0,131,1,0,125,3,0,
+- 103,0,0,125,4,0,124,3,0,100,0,0,107,9,0,114,
+- 88,0,116,3,0,106,4,0,124,1,0,124,3,0,131,2,
+- 0,83,116,3,0,106,5,0,124,1,0,100,0,0,131,2,
+- 0,125,5,0,124,4,0,124,5,0,95,6,0,124,5,0,
+- 83,41,2,78,114,126,0,0,0,41,7,114,117,0,0,0,
+- 114,126,0,0,0,114,183,0,0,0,114,123,0,0,0,114,
+- 180,0,0,0,114,162,0,0,0,114,158,0,0,0,41,6,
+- 114,172,0,0,0,114,128,0,0,0,114,254,0,0,0,114,
+- 129,0,0,0,114,130,0,0,0,114,166,0,0,0,114,4,
+- 0,0,0,114,4,0,0,0,114,6,0,0,0,218,16,95,
+- 108,101,103,97,99,121,95,103,101,116,95,115,112,101,99,70,
+- 4,0,0,115,18,0,0,0,0,4,15,1,24,2,15,1,
+- 6,1,12,1,16,1,18,1,9,1,122,27,80,97,116,104,
+- 70,105,110,100,101,114,46,95,108,101,103,97,99,121,95,103,
+- 101,116,95,115,112,101,99,78,99,4,0,0,0,0,0,0,
+- 0,9,0,0,0,5,0,0,0,67,0,0,0,115,243,0,
+- 0,0,103,0,0,125,4,0,120,230,0,124,2,0,68,93,
+- 191,0,125,5,0,116,0,0,124,5,0,116,1,0,116,2,
+- 0,102,2,0,131,2,0,115,43,0,113,13,0,124,0,0,
+- 106,3,0,124,5,0,131,1,0,125,6,0,124,6,0,100,
+- 1,0,107,9,0,114,13,0,116,4,0,124,6,0,100,2,
+- 0,131,2,0,114,106,0,124,6,0,106,5,0,124,1,0,
+- 124,3,0,131,2,0,125,7,0,110,18,0,124,0,0,106,
+- 6,0,124,1,0,124,6,0,131,2,0,125,7,0,124,7,
+- 0,100,1,0,107,8,0,114,139,0,113,13,0,124,7,0,
+- 106,7,0,100,1,0,107,9,0,114,158,0,124,7,0,83,
+- 124,7,0,106,8,0,125,8,0,124,8,0,100,1,0,107,
+- 8,0,114,191,0,116,9,0,100,3,0,131,1,0,130,1,
+- 0,124,4,0,106,10,0,124,8,0,131,1,0,1,113,13,
+- 0,87,116,11,0,106,12,0,124,1,0,100,1,0,131,2,
+- 0,125,7,0,124,4,0,124,7,0,95,8,0,124,7,0,
+- 83,100,1,0,83,41,4,122,63,70,105,110,100,32,116,104,
+- 101,32,108,111,97,100,101,114,32,111,114,32,110,97,109,101,
+- 115,112,97,99,101,95,112,97,116,104,32,102,111,114,32,116,
+- 104,105,115,32,109,111,100,117,108,101,47,112,97,99,107,97,
+- 103,101,32,110,97,109,101,46,78,114,182,0,0,0,122,19,
+- 115,112,101,99,32,109,105,115,115,105,110,103,32,108,111,97,
+- 100,101,114,41,13,114,145,0,0,0,114,71,0,0,0,218,
+- 5,98,121,116,101,115,114,2,1,0,0,114,117,0,0,0,
+- 114,182,0,0,0,114,3,1,0,0,114,129,0,0,0,114,
+- 158,0,0,0,114,109,0,0,0,114,151,0,0,0,114,123,
+- 0,0,0,114,162,0,0,0,41,9,114,172,0,0,0,114,
+- 128,0,0,0,114,37,0,0,0,114,181,0,0,0,218,14,
+- 110,97,109,101,115,112,97,99,101,95,112,97,116,104,90,5,
+- 101,110,116,114,121,114,254,0,0,0,114,166,0,0,0,114,
+- 130,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
+- 0,0,0,218,9,95,103,101,116,95,115,112,101,99,85,4,
+- 0,0,115,40,0,0,0,0,5,6,1,13,1,21,1,3,
+- 1,15,1,12,1,15,1,21,2,18,1,12,1,3,1,15,
+- 1,4,1,9,1,12,1,12,5,17,2,18,1,9,1,122,
+- 20,80,97,116,104,70,105,110,100,101,114,46,95,103,101,116,
+- 95,115,112,101,99,99,4,0,0,0,0,0,0,0,6,0,
+- 0,0,4,0,0,0,67,0,0,0,115,140,0,0,0,124,
+- 2,0,100,1,0,107,8,0,114,21,0,116,0,0,106,1,
+- 0,125,2,0,124,0,0,106,2,0,124,1,0,124,2,0,
+- 124,3,0,131,3,0,125,4,0,124,4,0,100,1,0,107,
+- 8,0,114,58,0,100,1,0,83,124,4,0,106,3,0,100,
+- 1,0,107,8,0,114,132,0,124,4,0,106,4,0,125,5,
+- 0,124,5,0,114,125,0,100,2,0,124,4,0,95,5,0,
+- 116,6,0,124,1,0,124,5,0,124,0,0,106,2,0,131,
+- 3,0,124,4,0,95,4,0,124,4,0,83,100,1,0,83,
+- 110,4,0,124,4,0,83,100,1,0,83,41,3,122,98,102,
++ 114,187,0,0,0,3,4,0,0,115,2,0,0,0,0,1,
++ 122,25,95,78,97,109,101,115,112,97,99,101,76,111,97,100,
++ 101,114,46,95,95,105,110,105,116,95,95,99,2,0,0,0,
++ 0,0,0,0,2,0,0,0,2,0,0,0,67,0,0,0,
++ 115,16,0,0,0,100,1,0,106,0,0,124,1,0,106,1,
++ 0,131,1,0,83,41,2,122,115,82,101,116,117,114,110,32,
++ 114,101,112,114,32,102,111,114,32,116,104,101,32,109,111,100,
++ 117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,
++ 101,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,
++ 101,99,97,116,101,100,46,32,32,84,104,101,32,105,109,112,
++ 111,114,116,32,109,97,99,104,105,110,101,114,121,32,100,111,
++ 101,115,32,116,104,101,32,106,111,98,32,105,116,115,101,108,
++ 102,46,10,10,32,32,32,32,32,32,32,32,122,25,60,109,
++ 111,100,117,108,101,32,123,33,114,125,32,40,110,97,109,101,
++ 115,112,97,99,101,41,62,41,2,114,49,0,0,0,114,114,
++ 0,0,0,41,2,114,173,0,0,0,114,192,0,0,0,114,
++ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,11,
++ 109,111,100,117,108,101,95,114,101,112,114,6,4,0,0,115,
++ 2,0,0,0,0,7,122,28,95,78,97,109,101,115,112,97,
++ 99,101,76,111,97,100,101,114,46,109,111,100,117,108,101,95,
++ 114,101,112,114,99,2,0,0,0,0,0,0,0,2,0,0,
++ 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,
++ 0,83,41,2,78,84,114,4,0,0,0,41,2,114,110,0,
++ 0,0,114,128,0,0,0,114,4,0,0,0,114,4,0,0,
++ 0,114,6,0,0,0,114,162,0,0,0,15,4,0,0,115,
++ 2,0,0,0,0,1,122,27,95,78,97,109,101,115,112,97,
++ 99,101,76,111,97,100,101,114,46,105,115,95,112,97,99,107,
++ 97,103,101,99,2,0,0,0,0,0,0,0,2,0,0,0,
++ 1,0,0,0,67,0,0,0,115,4,0,0,0,100,1,0,
++ 83,41,2,78,114,32,0,0,0,114,4,0,0,0,41,2,
++ 114,110,0,0,0,114,128,0,0,0,114,4,0,0,0,114,
++ 4,0,0,0,114,6,0,0,0,114,204,0,0,0,18,4,
++ 0,0,115,2,0,0,0,0,1,122,27,95,78,97,109,101,
++ 115,112,97,99,101,76,111,97,100,101,114,46,103,101,116,95,
++ 115,111,117,114,99,101,99,2,0,0,0,0,0,0,0,2,
++ 0,0,0,6,0,0,0,67,0,0,0,115,22,0,0,0,
++ 116,0,0,100,1,0,100,2,0,100,3,0,100,4,0,100,
++ 5,0,131,3,1,83,41,6,78,114,32,0,0,0,122,8,
++ 60,115,116,114,105,110,103,62,114,191,0,0,0,114,206,0,
++ 0,0,84,41,1,114,207,0,0,0,41,2,114,110,0,0,
++ 0,114,128,0,0,0,114,4,0,0,0,114,4,0,0,0,
++ 114,6,0,0,0,114,189,0,0,0,21,4,0,0,115,2,
++ 0,0,0,0,1,122,25,95,78,97,109,101,115,112,97,99,
++ 101,76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,
++ 99,2,0,0,0,0,0,0,0,2,0,0,0,1,0,0,
++ 0,67,0,0,0,115,4,0,0,0,100,1,0,83,41,2,
++ 122,42,85,115,101,32,100,101,102,97,117,108,116,32,115,101,
++ 109,97,110,116,105,99,115,32,102,111,114,32,109,111,100,117,
++ 108,101,32,99,114,101,97,116,105,111,110,46,78,114,4,0,
++ 0,0,41,2,114,110,0,0,0,114,167,0,0,0,114,4,
++ 0,0,0,114,4,0,0,0,114,6,0,0,0,114,188,0,
++ 0,0,24,4,0,0,115,0,0,0,0,122,30,95,78,97,
++ 109,101,115,112,97,99,101,76,111,97,100,101,114,46,99,114,
++ 101,97,116,101,95,109,111,100,117,108,101,99,2,0,0,0,
++ 0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,
++ 115,4,0,0,0,100,0,0,83,41,1,78,114,4,0,0,
++ 0,41,2,114,110,0,0,0,114,192,0,0,0,114,4,0,
++ 0,0,114,4,0,0,0,114,6,0,0,0,114,193,0,0,
++ 0,27,4,0,0,115,2,0,0,0,0,1,122,28,95,78,
++ 97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,101,
++ 120,101,99,95,109,111,100,117,108,101,99,2,0,0,0,0,
++ 0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,
++ 32,0,0,0,116,0,0,100,1,0,124,0,0,106,1,0,
++ 131,2,0,1,116,2,0,106,3,0,124,0,0,124,1,0,
++ 131,2,0,83,41,2,122,98,76,111,97,100,32,97,32,110,
++ 97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,46,
++ 10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,
++ 101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,
++ 116,101,100,46,32,32,85,115,101,32,101,120,101,99,95,109,
++ 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,46,
++ 10,10,32,32,32,32,32,32,32,32,122,38,110,97,109,101,
++ 115,112,97,99,101,32,109,111,100,117,108,101,32,108,111,97,
++ 100,101,100,32,119,105,116,104,32,112,97,116,104,32,123,33,
++ 114,125,41,4,114,107,0,0,0,114,234,0,0,0,114,123,
++ 0,0,0,114,194,0,0,0,41,2,114,110,0,0,0,114,
++ 128,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
++ 0,0,0,114,195,0,0,0,30,4,0,0,115,4,0,0,
++ 0,0,7,16,1,122,28,95,78,97,109,101,115,112,97,99,
++ 101,76,111,97,100,101,114,46,108,111,97,100,95,109,111,100,
++ 117,108,101,78,41,12,114,114,0,0,0,114,113,0,0,0,
++ 114,115,0,0,0,114,187,0,0,0,114,185,0,0,0,114,
++ 250,0,0,0,114,162,0,0,0,114,204,0,0,0,114,189,
++ 0,0,0,114,188,0,0,0,114,193,0,0,0,114,195,0,
++ 0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,
++ 0,114,6,0,0,0,114,249,0,0,0,2,4,0,0,115,
++ 16,0,0,0,12,1,12,3,18,9,12,3,12,3,12,3,
++ 12,3,12,3,114,249,0,0,0,99,0,0,0,0,0,0,
++ 0,0,0,0,0,0,5,0,0,0,64,0,0,0,115,160,
++ 0,0,0,101,0,0,90,1,0,100,0,0,90,2,0,100,
++ 1,0,90,3,0,101,4,0,100,2,0,100,3,0,132,0,
++ 0,131,1,0,90,5,0,101,4,0,100,4,0,100,5,0,
++ 132,0,0,131,1,0,90,6,0,101,4,0,100,6,0,100,
++ 7,0,132,0,0,131,1,0,90,7,0,101,4,0,100,8,
++ 0,100,9,0,132,0,0,131,1,0,90,8,0,101,4,0,
++ 100,10,0,100,11,0,100,12,0,132,1,0,131,1,0,90,
++ 9,0,101,4,0,100,10,0,100,10,0,100,13,0,100,14,
++ 0,132,2,0,131,1,0,90,10,0,101,4,0,100,10,0,
++ 100,15,0,100,16,0,132,1,0,131,1,0,90,11,0,100,
++ 10,0,83,41,17,218,10,80,97,116,104,70,105,110,100,101,
++ 114,122,62,77,101,116,97,32,112,97,116,104,32,102,105,110,
++ 100,101,114,32,102,111,114,32,115,121,115,46,112,97,116,104,
++ 32,97,110,100,32,112,97,99,107,97,103,101,32,95,95,112,
++ 97,116,104,95,95,32,97,116,116,114,105,98,117,116,101,115,
++ 46,99,1,0,0,0,0,0,0,0,2,0,0,0,4,0,
++ 0,0,67,0,0,0,115,55,0,0,0,120,48,0,116,0,
++ 0,106,1,0,106,2,0,131,0,0,68,93,31,0,125,1,
++ 0,116,3,0,124,1,0,100,1,0,131,2,0,114,16,0,
++ 124,1,0,106,4,0,131,0,0,1,113,16,0,87,100,2,
++ 0,83,41,3,122,125,67,97,108,108,32,116,104,101,32,105,
++ 110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,115,
++ 40,41,32,109,101,116,104,111,100,32,111,110,32,97,108,108,
++ 32,112,97,116,104,32,101,110,116,114,121,32,102,105,110,100,
++ 101,114,115,10,32,32,32,32,32,32,32,32,115,116,111,114,
++ 101,100,32,105,110,32,115,121,115,46,112,97,116,104,95,105,
++ 109,112,111,114,116,101,114,95,99,97,99,104,101,115,32,40,
++ 119,104,101,114,101,32,105,109,112,108,101,109,101,110,116,101,
++ 100,41,46,218,17,105,110,118,97,108,105,100,97,116,101,95,
++ 99,97,99,104,101,115,78,41,5,114,8,0,0,0,218,19,
++ 112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,
++ 99,104,101,218,6,118,97,108,117,101,115,114,117,0,0,0,
++ 114,252,0,0,0,41,2,114,173,0,0,0,218,6,102,105,
++ 110,100,101,114,114,4,0,0,0,114,4,0,0,0,114,6,
++ 0,0,0,114,252,0,0,0,47,4,0,0,115,6,0,0,
++ 0,0,4,22,1,15,1,122,28,80,97,116,104,70,105,110,
++ 100,101,114,46,105,110,118,97,108,105,100,97,116,101,95,99,
++ 97,99,104,101,115,99,2,0,0,0,0,0,0,0,3,0,
++ 0,0,12,0,0,0,67,0,0,0,115,107,0,0,0,116,
++ 0,0,106,1,0,100,1,0,107,9,0,114,41,0,116,0,
++ 0,106,1,0,12,114,41,0,116,2,0,106,3,0,100,2,
++ 0,116,4,0,131,2,0,1,120,59,0,116,0,0,106,1,
++ 0,68,93,44,0,125,2,0,121,14,0,124,2,0,124,1,
++ 0,131,1,0,83,87,113,51,0,4,116,5,0,107,10,0,
++ 114,94,0,1,1,1,119,51,0,89,113,51,0,88,113,51,
++ 0,87,100,1,0,83,100,1,0,83,41,3,122,113,83,101,
++ 97,114,99,104,32,115,101,113,117,101,110,99,101,32,111,102,
++ 32,104,111,111,107,115,32,102,111,114,32,97,32,102,105,110,
++ 100,101,114,32,102,111,114,32,39,112,97,116,104,39,46,10,
++ 10,32,32,32,32,32,32,32,32,73,102,32,39,104,111,111,
++ 107,115,39,32,105,115,32,102,97,108,115,101,32,116,104,101,
++ 110,32,117,115,101,32,115,121,115,46,112,97,116,104,95,104,
++ 111,111,107,115,46,10,10,32,32,32,32,32,32,32,32,78,
++ 122,23,115,121,115,46,112,97,116,104,95,104,111,111,107,115,
++ 32,105,115,32,101,109,112,116,121,41,6,114,8,0,0,0,
++ 218,10,112,97,116,104,95,104,111,111,107,115,114,62,0,0,
++ 0,114,63,0,0,0,114,127,0,0,0,114,109,0,0,0,
++ 41,3,114,173,0,0,0,114,37,0,0,0,90,4,104,111,
++ 111,107,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
++ 0,218,11,95,112,97,116,104,95,104,111,111,107,115,55,4,
++ 0,0,115,16,0,0,0,0,7,25,1,16,1,16,1,3,
++ 1,14,1,13,1,12,2,122,22,80,97,116,104,70,105,110,
++ 100,101,114,46,95,112,97,116,104,95,104,111,111,107,115,99,
++ 2,0,0,0,0,0,0,0,3,0,0,0,19,0,0,0,
++ 67,0,0,0,115,123,0,0,0,124,1,0,100,1,0,107,
++ 2,0,114,53,0,121,16,0,116,0,0,106,1,0,131,0,
++ 0,125,1,0,87,110,22,0,4,116,2,0,107,10,0,114,
++ 52,0,1,1,1,100,2,0,83,89,110,1,0,88,121,17,
++ 0,116,3,0,106,4,0,124,1,0,25,125,2,0,87,110,
++ 46,0,4,116,5,0,107,10,0,114,118,0,1,1,1,124,
++ 0,0,106,6,0,124,1,0,131,1,0,125,2,0,124,2,
++ 0,116,3,0,106,4,0,124,1,0,60,89,110,1,0,88,
++ 124,2,0,83,41,3,122,210,71,101,116,32,116,104,101,32,
++ 102,105,110,100,101,114,32,102,111,114,32,116,104,101,32,112,
++ 97,116,104,32,101,110,116,114,121,32,102,114,111,109,32,115,
++ 121,115,46,112,97,116,104,95,105,109,112,111,114,116,101,114,
++ 95,99,97,99,104,101,46,10,10,32,32,32,32,32,32,32,
++ 32,73,102,32,116,104,101,32,112,97,116,104,32,101,110,116,
++ 114,121,32,105,115,32,110,111,116,32,105,110,32,116,104,101,
++ 32,99,97,99,104,101,44,32,102,105,110,100,32,116,104,101,
++ 32,97,112,112,114,111,112,114,105,97,116,101,32,102,105,110,
++ 100,101,114,10,32,32,32,32,32,32,32,32,97,110,100,32,
++ 99,97,99,104,101,32,105,116,46,32,73,102,32,110,111,32,
++ 102,105,110,100,101,114,32,105,115,32,97,118,97,105,108,97,
++ 98,108,101,44,32,115,116,111,114,101,32,78,111,110,101,46,
++ 10,10,32,32,32,32,32,32,32,32,114,32,0,0,0,78,
++ 41,7,114,3,0,0,0,114,47,0,0,0,218,17,70,105,
++ 108,101,78,111,116,70,111,117,110,100,69,114,114,111,114,114,
++ 8,0,0,0,114,253,0,0,0,114,140,0,0,0,114,1,
++ 1,0,0,41,3,114,173,0,0,0,114,37,0,0,0,114,
++ 255,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
++ 0,0,0,218,20,95,112,97,116,104,95,105,109,112,111,114,
++ 116,101,114,95,99,97,99,104,101,72,4,0,0,115,22,0,
++ 0,0,0,8,12,1,3,1,16,1,13,3,9,1,3,1,
++ 17,1,13,1,15,1,18,1,122,31,80,97,116,104,70,105,
++ 110,100,101,114,46,95,112,97,116,104,95,105,109,112,111,114,
++ 116,101,114,95,99,97,99,104,101,99,3,0,0,0,0,0,
++ 0,0,6,0,0,0,3,0,0,0,67,0,0,0,115,119,
++ 0,0,0,116,0,0,124,2,0,100,1,0,131,2,0,114,
++ 39,0,124,2,0,106,1,0,124,1,0,131,1,0,92,2,
++ 0,125,3,0,125,4,0,110,21,0,124,2,0,106,2,0,
++ 124,1,0,131,1,0,125,3,0,103,0,0,125,4,0,124,
++ 3,0,100,0,0,107,9,0,114,88,0,116,3,0,106,4,
++ 0,124,1,0,124,3,0,131,2,0,83,116,3,0,106,5,
++ 0,124,1,0,100,0,0,131,2,0,125,5,0,124,4,0,
++ 124,5,0,95,6,0,124,5,0,83,41,2,78,114,126,0,
++ 0,0,41,7,114,117,0,0,0,114,126,0,0,0,114,184,
++ 0,0,0,114,123,0,0,0,114,181,0,0,0,114,163,0,
++ 0,0,114,159,0,0,0,41,6,114,173,0,0,0,114,128,
++ 0,0,0,114,255,0,0,0,114,129,0,0,0,114,130,0,
++ 0,0,114,167,0,0,0,114,4,0,0,0,114,4,0,0,
++ 0,114,6,0,0,0,218,16,95,108,101,103,97,99,121,95,
++ 103,101,116,95,115,112,101,99,94,4,0,0,115,18,0,0,
++ 0,0,4,15,1,24,2,15,1,6,1,12,1,16,1,18,
++ 1,9,1,122,27,80,97,116,104,70,105,110,100,101,114,46,
++ 95,108,101,103,97,99,121,95,103,101,116,95,115,112,101,99,
++ 78,99,4,0,0,0,0,0,0,0,9,0,0,0,5,0,
++ 0,0,67,0,0,0,115,243,0,0,0,103,0,0,125,4,
++ 0,120,230,0,124,2,0,68,93,191,0,125,5,0,116,0,
++ 0,124,5,0,116,1,0,116,2,0,102,2,0,131,2,0,
++ 115,43,0,113,13,0,124,0,0,106,3,0,124,5,0,131,
++ 1,0,125,6,0,124,6,0,100,1,0,107,9,0,114,13,
++ 0,116,4,0,124,6,0,100,2,0,131,2,0,114,106,0,
++ 124,6,0,106,5,0,124,1,0,124,3,0,131,2,0,125,
++ 7,0,110,18,0,124,0,0,106,6,0,124,1,0,124,6,
++ 0,131,2,0,125,7,0,124,7,0,100,1,0,107,8,0,
++ 114,139,0,113,13,0,124,7,0,106,7,0,100,1,0,107,
++ 9,0,114,158,0,124,7,0,83,124,7,0,106,8,0,125,
++ 8,0,124,8,0,100,1,0,107,8,0,114,191,0,116,9,
++ 0,100,3,0,131,1,0,130,1,0,124,4,0,106,10,0,
++ 124,8,0,131,1,0,1,113,13,0,87,116,11,0,106,12,
++ 0,124,1,0,100,1,0,131,2,0,125,7,0,124,4,0,
++ 124,7,0,95,8,0,124,7,0,83,100,1,0,83,41,4,
++ 122,63,70,105,110,100,32,116,104,101,32,108,111,97,100,101,
++ 114,32,111,114,32,110,97,109,101,115,112,97,99,101,95,112,
++ 97,116,104,32,102,111,114,32,116,104,105,115,32,109,111,100,
++ 117,108,101,47,112,97,99,107,97,103,101,32,110,97,109,101,
++ 46,78,114,183,0,0,0,122,19,115,112,101,99,32,109,105,
++ 115,115,105,110,103,32,108,111,97,100,101,114,41,13,114,146,
++ 0,0,0,114,71,0,0,0,218,5,98,121,116,101,115,114,
++ 3,1,0,0,114,117,0,0,0,114,183,0,0,0,114,4,
++ 1,0,0,114,129,0,0,0,114,159,0,0,0,114,109,0,
++ 0,0,114,152,0,0,0,114,123,0,0,0,114,163,0,0,
++ 0,41,9,114,173,0,0,0,114,128,0,0,0,114,37,0,
++ 0,0,114,182,0,0,0,218,14,110,97,109,101,115,112,97,
++ 99,101,95,112,97,116,104,90,5,101,110,116,114,121,114,255,
++ 0,0,0,114,167,0,0,0,114,130,0,0,0,114,4,0,
++ 0,0,114,4,0,0,0,114,6,0,0,0,218,9,95,103,
++ 101,116,95,115,112,101,99,109,4,0,0,115,40,0,0,0,
++ 0,5,6,1,13,1,21,1,3,1,15,1,12,1,15,1,
++ 21,2,18,1,12,1,3,1,15,1,4,1,9,1,12,1,
++ 12,5,17,2,18,1,9,1,122,20,80,97,116,104,70,105,
++ 110,100,101,114,46,95,103,101,116,95,115,112,101,99,99,4,
++ 0,0,0,0,0,0,0,6,0,0,0,4,0,0,0,67,
++ 0,0,0,115,140,0,0,0,124,2,0,100,1,0,107,8,
++ 0,114,21,0,116,0,0,106,1,0,125,2,0,124,0,0,
++ 106,2,0,124,1,0,124,2,0,124,3,0,131,3,0,125,
++ 4,0,124,4,0,100,1,0,107,8,0,114,58,0,100,1,
++ 0,83,124,4,0,106,3,0,100,1,0,107,8,0,114,132,
++ 0,124,4,0,106,4,0,125,5,0,124,5,0,114,125,0,
++ 100,2,0,124,4,0,95,5,0,116,6,0,124,1,0,124,
++ 5,0,124,0,0,106,2,0,131,3,0,124,4,0,95,4,
++ 0,124,4,0,83,100,1,0,83,110,4,0,124,4,0,83,
++ 100,1,0,83,41,3,122,98,102,105,110,100,32,116,104,101,
++ 32,109,111,100,117,108,101,32,111,110,32,115,121,115,46,112,
++ 97,116,104,32,111,114,32,39,112,97,116,104,39,32,98,97,
++ 115,101,100,32,111,110,32,115,121,115,46,112,97,116,104,95,
++ 104,111,111,107,115,32,97,110,100,10,32,32,32,32,32,32,
++ 32,32,115,121,115,46,112,97,116,104,95,105,109,112,111,114,
++ 116,101,114,95,99,97,99,104,101,46,78,90,9,110,97,109,
++ 101,115,112,97,99,101,41,7,114,8,0,0,0,114,37,0,
++ 0,0,114,7,1,0,0,114,129,0,0,0,114,159,0,0,
++ 0,114,161,0,0,0,114,232,0,0,0,41,6,114,173,0,
++ 0,0,114,128,0,0,0,114,37,0,0,0,114,182,0,0,
++ 0,114,167,0,0,0,114,6,1,0,0,114,4,0,0,0,
++ 114,4,0,0,0,114,6,0,0,0,114,183,0,0,0,141,
++ 4,0,0,115,26,0,0,0,0,4,12,1,9,1,21,1,
++ 12,1,4,1,15,1,9,1,6,3,9,1,24,1,4,2,
++ 7,2,122,20,80,97,116,104,70,105,110,100,101,114,46,102,
++ 105,110,100,95,115,112,101,99,99,3,0,0,0,0,0,0,
++ 0,4,0,0,0,3,0,0,0,67,0,0,0,115,41,0,
++ 0,0,124,0,0,106,0,0,124,1,0,124,2,0,131,2,
++ 0,125,3,0,124,3,0,100,1,0,107,8,0,114,34,0,
++ 100,1,0,83,124,3,0,106,1,0,83,41,2,122,170,102,
+ 105,110,100,32,116,104,101,32,109,111,100,117,108,101,32,111,
+ 110,32,115,121,115,46,112,97,116,104,32,111,114,32,39,112,
+ 97,116,104,39,32,98,97,115,101,100,32,111,110,32,115,121,
+ 115,46,112,97,116,104,95,104,111,111,107,115,32,97,110,100,
+ 10,32,32,32,32,32,32,32,32,115,121,115,46,112,97,116,
+ 104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,
+- 46,78,90,9,110,97,109,101,115,112,97,99,101,41,7,114,
+- 8,0,0,0,114,37,0,0,0,114,6,1,0,0,114,129,
+- 0,0,0,114,158,0,0,0,114,160,0,0,0,114,231,0,
+- 0,0,41,6,114,172,0,0,0,114,128,0,0,0,114,37,
+- 0,0,0,114,181,0,0,0,114,166,0,0,0,114,5,1,
+- 0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
+- 0,114,182,0,0,0,117,4,0,0,115,26,0,0,0,0,
+- 4,12,1,9,1,21,1,12,1,4,1,15,1,9,1,6,
+- 3,9,1,24,1,4,2,7,2,122,20,80,97,116,104,70,
+- 105,110,100,101,114,46,102,105,110,100,95,115,112,101,99,99,
+- 3,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,
+- 67,0,0,0,115,41,0,0,0,124,0,0,106,0,0,124,
+- 1,0,124,2,0,131,2,0,125,3,0,124,3,0,100,1,
+- 0,107,8,0,114,34,0,100,1,0,83,124,3,0,106,1,
+- 0,83,41,2,122,170,102,105,110,100,32,116,104,101,32,109,
+- 111,100,117,108,101,32,111,110,32,115,121,115,46,112,97,116,
+- 104,32,111,114,32,39,112,97,116,104,39,32,98,97,115,101,
+- 100,32,111,110,32,115,121,115,46,112,97,116,104,95,104,111,
+- 111,107,115,32,97,110,100,10,32,32,32,32,32,32,32,32,
+- 115,121,115,46,112,97,116,104,95,105,109,112,111,114,116,101,
+- 114,95,99,97,99,104,101,46,10,10,32,32,32,32,32,32,
+- 32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,
+- 32,100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,
+- 101,32,102,105,110,100,95,115,112,101,99,40,41,32,105,110,
+- 115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,
+- 78,41,2,114,182,0,0,0,114,129,0,0,0,41,4,114,
+- 172,0,0,0,114,128,0,0,0,114,37,0,0,0,114,166,
+- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
+- 0,0,114,183,0,0,0,139,4,0,0,115,8,0,0,0,
+- 0,8,18,1,12,1,4,1,122,22,80,97,116,104,70,105,
+- 110,100,101,114,46,102,105,110,100,95,109,111,100,117,108,101,
+- 41,12,114,114,0,0,0,114,113,0,0,0,114,115,0,0,
+- 0,114,116,0,0,0,114,184,0,0,0,114,251,0,0,0,
+- 114,0,1,0,0,114,2,1,0,0,114,3,1,0,0,114,
+- 6,1,0,0,114,182,0,0,0,114,183,0,0,0,114,4,
+- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
+- 0,0,114,250,0,0,0,19,4,0,0,115,22,0,0,0,
+- 12,2,6,2,18,8,18,17,18,22,18,15,3,1,18,31,
+- 3,1,21,21,3,1,114,250,0,0,0,99,0,0,0,0,
+- 0,0,0,0,0,0,0,0,3,0,0,0,64,0,0,0,
+- 115,133,0,0,0,101,0,0,90,1,0,100,0,0,90,2,
+- 0,100,1,0,90,3,0,100,2,0,100,3,0,132,0,0,
+- 90,4,0,100,4,0,100,5,0,132,0,0,90,5,0,101,
+- 6,0,90,7,0,100,6,0,100,7,0,132,0,0,90,8,
+- 0,100,8,0,100,9,0,132,0,0,90,9,0,100,10,0,
+- 100,11,0,100,12,0,132,1,0,90,10,0,100,13,0,100,
+- 14,0,132,0,0,90,11,0,101,12,0,100,15,0,100,16,
+- 0,132,0,0,131,1,0,90,13,0,100,17,0,100,18,0,
+- 132,0,0,90,14,0,100,10,0,83,41,19,218,10,70,105,
+- 108,101,70,105,110,100,101,114,122,172,70,105,108,101,45,98,
+- 97,115,101,100,32,102,105,110,100,101,114,46,10,10,32,32,
+- 32,32,73,110,116,101,114,97,99,116,105,111,110,115,32,119,
+- 105,116,104,32,116,104,101,32,102,105,108,101,32,115,121,115,
+- 116,101,109,32,97,114,101,32,99,97,99,104,101,100,32,102,
+- 111,114,32,112,101,114,102,111,114,109,97,110,99,101,44,32,
+- 98,101,105,110,103,10,32,32,32,32,114,101,102,114,101,115,
+- 104,101,100,32,119,104,101,110,32,116,104,101,32,100,105,114,
+- 101,99,116,111,114,121,32,116,104,101,32,102,105,110,100,101,
+- 114,32,105,115,32,104,97,110,100,108,105,110,103,32,104,97,
+- 115,32,98,101,101,110,32,109,111,100,105,102,105,101,100,46,
+- 10,10,32,32,32,32,99,2,0,0,0,0,0,0,0,5,
+- 0,0,0,5,0,0,0,7,0,0,0,115,122,0,0,0,
+- 103,0,0,125,3,0,120,52,0,124,2,0,68,93,44,0,
+- 92,2,0,137,0,0,125,4,0,124,3,0,106,0,0,135,
+- 0,0,102,1,0,100,1,0,100,2,0,134,0,0,124,4,
+- 0,68,131,1,0,131,1,0,1,113,13,0,87,124,3,0,
+- 124,0,0,95,1,0,124,1,0,112,79,0,100,3,0,124,
+- 0,0,95,2,0,100,6,0,124,0,0,95,3,0,116,4,
+- 0,131,0,0,124,0,0,95,5,0,116,4,0,131,0,0,
+- 124,0,0,95,6,0,100,5,0,83,41,7,122,154,73,110,
+- 105,116,105,97,108,105,122,101,32,119,105,116,104,32,116,104,
+- 101,32,112,97,116,104,32,116,111,32,115,101,97,114,99,104,
+- 32,111,110,32,97,110,100,32,97,32,118,97,114,105,97,98,
+- 108,101,32,110,117,109,98,101,114,32,111,102,10,32,32,32,
+- 32,32,32,32,32,50,45,116,117,112,108,101,115,32,99,111,
+- 110,116,97,105,110,105,110,103,32,116,104,101,32,108,111,97,
+- 100,101,114,32,97,110,100,32,116,104,101,32,102,105,108,101,
+- 32,115,117,102,102,105,120,101,115,32,116,104,101,32,108,111,
+- 97,100,101,114,10,32,32,32,32,32,32,32,32,114,101,99,
+- 111,103,110,105,122,101,115,46,99,1,0,0,0,0,0,0,
+- 0,2,0,0,0,3,0,0,0,51,0,0,0,115,27,0,
+- 0,0,124,0,0,93,17,0,125,1,0,124,1,0,136,0,
+- 0,102,2,0,86,1,113,3,0,100,0,0,83,41,1,78,
+- 114,4,0,0,0,41,2,114,24,0,0,0,114,226,0,0,
+- 0,41,1,114,129,0,0,0,114,4,0,0,0,114,6,0,
+- 0,0,114,228,0,0,0,168,4,0,0,115,2,0,0,0,
+- 6,0,122,38,70,105,108,101,70,105,110,100,101,114,46,95,
+- 95,105,110,105,116,95,95,46,60,108,111,99,97,108,115,62,
+- 46,60,103,101,110,101,120,112,114,62,114,60,0,0,0,114,
+- 31,0,0,0,78,114,89,0,0,0,41,7,114,151,0,0,
+- 0,218,8,95,108,111,97,100,101,114,115,114,37,0,0,0,
+- 218,11,95,112,97,116,104,95,109,116,105,109,101,218,3,115,
+- 101,116,218,11,95,112,97,116,104,95,99,97,99,104,101,218,
+- 19,95,114,101,108,97,120,101,100,95,112,97,116,104,95,99,
+- 97,99,104,101,41,5,114,110,0,0,0,114,37,0,0,0,
+- 218,14,108,111,97,100,101,114,95,100,101,116,97,105,108,115,
+- 90,7,108,111,97,100,101,114,115,114,168,0,0,0,114,4,
+- 0,0,0,41,1,114,129,0,0,0,114,6,0,0,0,114,
+- 186,0,0,0,162,4,0,0,115,16,0,0,0,0,4,6,
+- 1,19,1,36,1,9,2,15,1,9,1,12,1,122,19,70,
+- 105,108,101,70,105,110,100,101,114,46,95,95,105,110,105,116,
+- 95,95,99,1,0,0,0,0,0,0,0,1,0,0,0,2,
+- 0,0,0,67,0,0,0,115,13,0,0,0,100,3,0,124,
+- 0,0,95,0,0,100,2,0,83,41,4,122,31,73,110,118,
+- 97,108,105,100,97,116,101,32,116,104,101,32,100,105,114,101,
+- 99,116,111,114,121,32,109,116,105,109,101,46,114,31,0,0,
+- 0,78,114,89,0,0,0,41,1,114,9,1,0,0,41,1,
+- 114,110,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
+- 6,0,0,0,114,251,0,0,0,176,4,0,0,115,2,0,
+- 0,0,0,2,122,28,70,105,108,101,70,105,110,100,101,114,
+- 46,105,110,118,97,108,105,100,97,116,101,95,99,97,99,104,
+- 101,115,99,2,0,0,0,0,0,0,0,3,0,0,0,2,
+- 0,0,0,67,0,0,0,115,59,0,0,0,124,0,0,106,
+- 0,0,124,1,0,131,1,0,125,2,0,124,2,0,100,1,
+- 0,107,8,0,114,37,0,100,1,0,103,0,0,102,2,0,
+- 83,124,2,0,106,1,0,124,2,0,106,2,0,112,55,0,
+- 103,0,0,102,2,0,83,41,2,122,197,84,114,121,32,116,
+- 111,32,102,105,110,100,32,97,32,108,111,97,100,101,114,32,
+- 102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,
+- 100,32,109,111,100,117,108,101,44,32,111,114,32,116,104,101,
+- 32,110,97,109,101,115,112,97,99,101,10,32,32,32,32,32,
+- 32,32,32,112,97,99,107,97,103,101,32,112,111,114,116,105,
+- 111,110,115,46,32,82,101,116,117,114,110,115,32,40,108,111,
+- 97,100,101,114,44,32,108,105,115,116,45,111,102,45,112,111,
+- 114,116,105,111,110,115,41,46,10,10,32,32,32,32,32,32,
+- 32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,
+- 32,100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,
+- 101,32,102,105,110,100,95,115,112,101,99,40,41,32,105,110,
+- 115,116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,
+- 78,41,3,114,182,0,0,0,114,129,0,0,0,114,158,0,
+- 0,0,41,3,114,110,0,0,0,114,128,0,0,0,114,166,
+- 0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
+- 0,0,114,126,0,0,0,182,4,0,0,115,8,0,0,0,
+- 0,7,15,1,12,1,10,1,122,22,70,105,108,101,70,105,
+- 110,100,101,114,46,102,105,110,100,95,108,111,97,100,101,114,
+- 99,6,0,0,0,0,0,0,0,7,0,0,0,7,0,0,
+- 0,67,0,0,0,115,40,0,0,0,124,1,0,124,2,0,
+- 124,3,0,131,2,0,125,6,0,116,0,0,124,2,0,124,
+- 3,0,100,1,0,124,6,0,100,2,0,124,4,0,131,2,
+- 2,83,41,3,78,114,129,0,0,0,114,158,0,0,0,41,
+- 1,114,169,0,0,0,41,7,114,110,0,0,0,114,167,0,
+- 0,0,114,128,0,0,0,114,37,0,0,0,90,4,115,109,
+- 115,108,114,181,0,0,0,114,129,0,0,0,114,4,0,0,
+- 0,114,4,0,0,0,114,6,0,0,0,114,6,1,0,0,
+- 194,4,0,0,115,6,0,0,0,0,1,15,1,18,1,122,
+- 20,70,105,108,101,70,105,110,100,101,114,46,95,103,101,116,
+- 95,115,112,101,99,78,99,3,0,0,0,0,0,0,0,14,
+- 0,0,0,15,0,0,0,67,0,0,0,115,234,1,0,0,
+- 100,1,0,125,3,0,124,1,0,106,0,0,100,2,0,131,
+- 1,0,100,3,0,25,125,4,0,121,34,0,116,1,0,124,
+- 0,0,106,2,0,112,49,0,116,3,0,106,4,0,131,0,
+- 0,131,1,0,106,5,0,125,5,0,87,110,24,0,4,116,
+- 6,0,107,10,0,114,85,0,1,1,1,100,10,0,125,5,
+- 0,89,110,1,0,88,124,5,0,124,0,0,106,7,0,107,
+- 3,0,114,120,0,124,0,0,106,8,0,131,0,0,1,124,
+- 5,0,124,0,0,95,7,0,116,9,0,131,0,0,114,153,
+- 0,124,0,0,106,10,0,125,6,0,124,4,0,106,11,0,
+- 131,0,0,125,7,0,110,15,0,124,0,0,106,12,0,125,
+- 6,0,124,4,0,125,7,0,124,7,0,124,6,0,107,6,
+- 0,114,45,1,116,13,0,124,0,0,106,2,0,124,4,0,
+- 131,2,0,125,8,0,120,100,0,124,0,0,106,14,0,68,
+- 93,77,0,92,2,0,125,9,0,125,10,0,100,5,0,124,
+- 9,0,23,125,11,0,116,13,0,124,8,0,124,11,0,131,
+- 2,0,125,12,0,116,15,0,124,12,0,131,1,0,114,208,
+- 0,124,0,0,106,16,0,124,10,0,124,1,0,124,12,0,
+- 124,8,0,103,1,0,124,2,0,131,5,0,83,113,208,0,
+- 87,116,17,0,124,8,0,131,1,0,125,3,0,120,123,0,
+- 124,0,0,106,14,0,68,93,112,0,92,2,0,125,9,0,
+- 125,10,0,116,13,0,124,0,0,106,2,0,124,4,0,124,
+- 9,0,23,131,2,0,125,12,0,116,18,0,100,6,0,106,
+- 19,0,124,12,0,131,1,0,100,7,0,100,3,0,131,1,
+- 1,1,124,7,0,124,9,0,23,124,6,0,107,6,0,114,
+- 55,1,116,15,0,124,12,0,131,1,0,114,55,1,124,0,
+- 0,106,16,0,124,10,0,124,1,0,124,12,0,100,8,0,
+- 124,2,0,131,5,0,83,113,55,1,87,124,3,0,114,230,
+- 1,116,18,0,100,9,0,106,19,0,124,8,0,131,1,0,
+- 131,1,0,1,116,20,0,106,21,0,124,1,0,100,8,0,
+- 131,2,0,125,13,0,124,8,0,103,1,0,124,13,0,95,
+- 22,0,124,13,0,83,100,8,0,83,41,11,122,102,84,114,
+- 121,32,116,111,32,102,105,110,100,32,97,32,115,112,101,99,
+- 32,102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,
+- 101,100,32,109,111,100,117,108,101,46,32,32,82,101,116,117,
+- 114,110,115,32,116,104,101,10,32,32,32,32,32,32,32,32,
+- 109,97,116,99,104,105,110,103,32,115,112,101,99,44,32,111,
+- 114,32,78,111,110,101,32,105,102,32,110,111,116,32,102,111,
+- 117,110,100,46,70,114,60,0,0,0,114,58,0,0,0,114,
+- 31,0,0,0,114,186,0,0,0,122,9,116,114,121,105,110,
+- 103,32,123,125,114,100,0,0,0,78,122,25,112,111,115,115,
+- 105,98,108,101,32,110,97,109,101,115,112,97,99,101,32,102,
+- 111,114,32,123,125,114,89,0,0,0,41,23,114,34,0,0,
+- 0,114,41,0,0,0,114,37,0,0,0,114,3,0,0,0,
+- 114,47,0,0,0,114,220,0,0,0,114,42,0,0,0,114,
+- 9,1,0,0,218,11,95,102,105,108,108,95,99,97,99,104,
+- 101,114,7,0,0,0,114,12,1,0,0,114,90,0,0,0,
+- 114,11,1,0,0,114,30,0,0,0,114,8,1,0,0,114,
+- 46,0,0,0,114,6,1,0,0,114,48,0,0,0,114,107,
+- 0,0,0,114,49,0,0,0,114,123,0,0,0,114,162,0,
+- 0,0,114,158,0,0,0,41,14,114,110,0,0,0,114,128,
+- 0,0,0,114,181,0,0,0,90,12,105,115,95,110,97,109,
+- 101,115,112,97,99,101,90,11,116,97,105,108,95,109,111,100,
+- 117,108,101,114,135,0,0,0,90,5,99,97,99,104,101,90,
+- 12,99,97,99,104,101,95,109,111,100,117,108,101,90,9,98,
+- 97,115,101,95,112,97,116,104,114,226,0,0,0,114,167,0,
+- 0,0,90,13,105,110,105,116,95,102,105,108,101,110,97,109,
+- 101,90,9,102,117,108,108,95,112,97,116,104,114,166,0,0,
++ 46,10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,
++ 109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,
++ 97,116,101,100,46,32,32,85,115,101,32,102,105,110,100,95,
++ 115,112,101,99,40,41,32,105,110,115,116,101,97,100,46,10,
++ 10,32,32,32,32,32,32,32,32,78,41,2,114,183,0,0,
++ 0,114,129,0,0,0,41,4,114,173,0,0,0,114,128,0,
++ 0,0,114,37,0,0,0,114,167,0,0,0,114,4,0,0,
++ 0,114,4,0,0,0,114,6,0,0,0,114,184,0,0,0,
++ 163,4,0,0,115,8,0,0,0,0,8,18,1,12,1,4,
++ 1,122,22,80,97,116,104,70,105,110,100,101,114,46,102,105,
++ 110,100,95,109,111,100,117,108,101,41,12,114,114,0,0,0,
++ 114,113,0,0,0,114,115,0,0,0,114,116,0,0,0,114,
++ 185,0,0,0,114,252,0,0,0,114,1,1,0,0,114,3,
++ 1,0,0,114,4,1,0,0,114,7,1,0,0,114,183,0,
++ 0,0,114,184,0,0,0,114,4,0,0,0,114,4,0,0,
++ 0,114,4,0,0,0,114,6,0,0,0,114,251,0,0,0,
++ 43,4,0,0,115,22,0,0,0,12,2,6,2,18,8,18,
++ 17,18,22,18,15,3,1,18,31,3,1,21,21,3,1,114,
++ 251,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
++ 0,3,0,0,0,64,0,0,0,115,133,0,0,0,101,0,
++ 0,90,1,0,100,0,0,90,2,0,100,1,0,90,3,0,
++ 100,2,0,100,3,0,132,0,0,90,4,0,100,4,0,100,
++ 5,0,132,0,0,90,5,0,101,6,0,90,7,0,100,6,
++ 0,100,7,0,132,0,0,90,8,0,100,8,0,100,9,0,
++ 132,0,0,90,9,0,100,10,0,100,11,0,100,12,0,132,
++ 1,0,90,10,0,100,13,0,100,14,0,132,0,0,90,11,
++ 0,101,12,0,100,15,0,100,16,0,132,0,0,131,1,0,
++ 90,13,0,100,17,0,100,18,0,132,0,0,90,14,0,100,
++ 10,0,83,41,19,218,10,70,105,108,101,70,105,110,100,101,
++ 114,122,172,70,105,108,101,45,98,97,115,101,100,32,102,105,
++ 110,100,101,114,46,10,10,32,32,32,32,73,110,116,101,114,
++ 97,99,116,105,111,110,115,32,119,105,116,104,32,116,104,101,
++ 32,102,105,108,101,32,115,121,115,116,101,109,32,97,114,101,
++ 32,99,97,99,104,101,100,32,102,111,114,32,112,101,114,102,
++ 111,114,109,97,110,99,101,44,32,98,101,105,110,103,10,32,
++ 32,32,32,114,101,102,114,101,115,104,101,100,32,119,104,101,
++ 110,32,116,104,101,32,100,105,114,101,99,116,111,114,121,32,
++ 116,104,101,32,102,105,110,100,101,114,32,105,115,32,104,97,
++ 110,100,108,105,110,103,32,104,97,115,32,98,101,101,110,32,
++ 109,111,100,105,102,105,101,100,46,10,10,32,32,32,32,99,
++ 2,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,
++ 7,0,0,0,115,122,0,0,0,103,0,0,125,3,0,120,
++ 52,0,124,2,0,68,93,44,0,92,2,0,137,0,0,125,
++ 4,0,124,3,0,106,0,0,135,0,0,102,1,0,100,1,
++ 0,100,2,0,134,0,0,124,4,0,68,131,1,0,131,1,
++ 0,1,113,13,0,87,124,3,0,124,0,0,95,1,0,124,
++ 1,0,112,79,0,100,3,0,124,0,0,95,2,0,100,6,
++ 0,124,0,0,95,3,0,116,4,0,131,0,0,124,0,0,
++ 95,5,0,116,4,0,131,0,0,124,0,0,95,6,0,100,
++ 5,0,83,41,7,122,154,73,110,105,116,105,97,108,105,122,
++ 101,32,119,105,116,104,32,116,104,101,32,112,97,116,104,32,
++ 116,111,32,115,101,97,114,99,104,32,111,110,32,97,110,100,
++ 32,97,32,118,97,114,105,97,98,108,101,32,110,117,109,98,
++ 101,114,32,111,102,10,32,32,32,32,32,32,32,32,50,45,
++ 116,117,112,108,101,115,32,99,111,110,116,97,105,110,105,110,
++ 103,32,116,104,101,32,108,111,97,100,101,114,32,97,110,100,
++ 32,116,104,101,32,102,105,108,101,32,115,117,102,102,105,120,
++ 101,115,32,116,104,101,32,108,111,97,100,101,114,10,32,32,
++ 32,32,32,32,32,32,114,101,99,111,103,110,105,122,101,115,
++ 46,99,1,0,0,0,0,0,0,0,2,0,0,0,3,0,
++ 0,0,51,0,0,0,115,27,0,0,0,124,0,0,93,17,
++ 0,125,1,0,124,1,0,136,0,0,102,2,0,86,1,113,
++ 3,0,100,0,0,83,41,1,78,114,4,0,0,0,41,2,
++ 114,24,0,0,0,114,227,0,0,0,41,1,114,129,0,0,
++ 0,114,4,0,0,0,114,6,0,0,0,114,229,0,0,0,
++ 192,4,0,0,115,2,0,0,0,6,0,122,38,70,105,108,
++ 101,70,105,110,100,101,114,46,95,95,105,110,105,116,95,95,
++ 46,60,108,111,99,97,108,115,62,46,60,103,101,110,101,120,
++ 112,114,62,114,60,0,0,0,114,31,0,0,0,78,114,89,
++ 0,0,0,41,7,114,152,0,0,0,218,8,95,108,111,97,
++ 100,101,114,115,114,37,0,0,0,218,11,95,112,97,116,104,
++ 95,109,116,105,109,101,218,3,115,101,116,218,11,95,112,97,
++ 116,104,95,99,97,99,104,101,218,19,95,114,101,108,97,120,
++ 101,100,95,112,97,116,104,95,99,97,99,104,101,41,5,114,
++ 110,0,0,0,114,37,0,0,0,218,14,108,111,97,100,101,
++ 114,95,100,101,116,97,105,108,115,90,7,108,111,97,100,101,
++ 114,115,114,169,0,0,0,114,4,0,0,0,41,1,114,129,
++ 0,0,0,114,6,0,0,0,114,187,0,0,0,186,4,0,
++ 0,115,16,0,0,0,0,4,6,1,19,1,36,1,9,2,
++ 15,1,9,1,12,1,122,19,70,105,108,101,70,105,110,100,
++ 101,114,46,95,95,105,110,105,116,95,95,99,1,0,0,0,
++ 0,0,0,0,1,0,0,0,2,0,0,0,67,0,0,0,
++ 115,13,0,0,0,100,3,0,124,0,0,95,0,0,100,2,
++ 0,83,41,4,122,31,73,110,118,97,108,105,100,97,116,101,
++ 32,116,104,101,32,100,105,114,101,99,116,111,114,121,32,109,
++ 116,105,109,101,46,114,31,0,0,0,78,114,89,0,0,0,
++ 41,1,114,10,1,0,0,41,1,114,110,0,0,0,114,4,
++ 0,0,0,114,4,0,0,0,114,6,0,0,0,114,252,0,
++ 0,0,200,4,0,0,115,2,0,0,0,0,2,122,28,70,
++ 105,108,101,70,105,110,100,101,114,46,105,110,118,97,108,105,
++ 100,97,116,101,95,99,97,99,104,101,115,99,2,0,0,0,
++ 0,0,0,0,3,0,0,0,2,0,0,0,67,0,0,0,
++ 115,59,0,0,0,124,0,0,106,0,0,124,1,0,131,1,
++ 0,125,2,0,124,2,0,100,1,0,107,8,0,114,37,0,
++ 100,1,0,103,0,0,102,2,0,83,124,2,0,106,1,0,
++ 124,2,0,106,2,0,112,55,0,103,0,0,102,2,0,83,
++ 41,2,122,197,84,114,121,32,116,111,32,102,105,110,100,32,
++ 97,32,108,111,97,100,101,114,32,102,111,114,32,116,104,101,
++ 32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,108,
++ 101,44,32,111,114,32,116,104,101,32,110,97,109,101,115,112,
++ 97,99,101,10,32,32,32,32,32,32,32,32,112,97,99,107,
++ 97,103,101,32,112,111,114,116,105,111,110,115,46,32,82,101,
++ 116,117,114,110,115,32,40,108,111,97,100,101,114,44,32,108,
++ 105,115,116,45,111,102,45,112,111,114,116,105,111,110,115,41,
++ 46,10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,
++ 109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,
++ 97,116,101,100,46,32,32,85,115,101,32,102,105,110,100,95,
++ 115,112,101,99,40,41,32,105,110,115,116,101,97,100,46,10,
++ 10,32,32,32,32,32,32,32,32,78,41,3,114,183,0,0,
++ 0,114,129,0,0,0,114,159,0,0,0,41,3,114,110,0,
++ 0,0,114,128,0,0,0,114,167,0,0,0,114,4,0,0,
++ 0,114,4,0,0,0,114,6,0,0,0,114,126,0,0,0,
++ 206,4,0,0,115,8,0,0,0,0,7,15,1,12,1,10,
++ 1,122,22,70,105,108,101,70,105,110,100,101,114,46,102,105,
++ 110,100,95,108,111,97,100,101,114,99,6,0,0,0,0,0,
++ 0,0,7,0,0,0,7,0,0,0,67,0,0,0,115,40,
++ 0,0,0,124,1,0,124,2,0,124,3,0,131,2,0,125,
++ 6,0,116,0,0,124,2,0,124,3,0,100,1,0,124,6,
++ 0,100,2,0,124,4,0,131,2,2,83,41,3,78,114,129,
++ 0,0,0,114,159,0,0,0,41,1,114,170,0,0,0,41,
++ 7,114,110,0,0,0,114,168,0,0,0,114,128,0,0,0,
++ 114,37,0,0,0,90,4,115,109,115,108,114,182,0,0,0,
++ 114,129,0,0,0,114,4,0,0,0,114,4,0,0,0,114,
++ 6,0,0,0,114,7,1,0,0,218,4,0,0,115,6,0,
++ 0,0,0,1,15,1,18,1,122,20,70,105,108,101,70,105,
++ 110,100,101,114,46,95,103,101,116,95,115,112,101,99,78,99,
++ 3,0,0,0,0,0,0,0,14,0,0,0,15,0,0,0,
++ 67,0,0,0,115,234,1,0,0,100,1,0,125,3,0,124,
++ 1,0,106,0,0,100,2,0,131,1,0,100,3,0,25,125,
++ 4,0,121,34,0,116,1,0,124,0,0,106,2,0,112,49,
++ 0,116,3,0,106,4,0,131,0,0,131,1,0,106,5,0,
++ 125,5,0,87,110,24,0,4,116,6,0,107,10,0,114,85,
++ 0,1,1,1,100,10,0,125,5,0,89,110,1,0,88,124,
++ 5,0,124,0,0,106,7,0,107,3,0,114,120,0,124,0,
++ 0,106,8,0,131,0,0,1,124,5,0,124,0,0,95,7,
++ 0,116,9,0,131,0,0,114,153,0,124,0,0,106,10,0,
++ 125,6,0,124,4,0,106,11,0,131,0,0,125,7,0,110,
++ 15,0,124,0,0,106,12,0,125,6,0,124,4,0,125,7,
++ 0,124,7,0,124,6,0,107,6,0,114,45,1,116,13,0,
++ 124,0,0,106,2,0,124,4,0,131,2,0,125,8,0,120,
++ 100,0,124,0,0,106,14,0,68,93,77,0,92,2,0,125,
++ 9,0,125,10,0,100,5,0,124,9,0,23,125,11,0,116,
++ 13,0,124,8,0,124,11,0,131,2,0,125,12,0,116,15,
++ 0,124,12,0,131,1,0,114,208,0,124,0,0,106,16,0,
++ 124,10,0,124,1,0,124,12,0,124,8,0,103,1,0,124,
++ 2,0,131,5,0,83,113,208,0,87,116,17,0,124,8,0,
++ 131,1,0,125,3,0,120,123,0,124,0,0,106,14,0,68,
++ 93,112,0,92,2,0,125,9,0,125,10,0,116,13,0,124,
++ 0,0,106,2,0,124,4,0,124,9,0,23,131,2,0,125,
++ 12,0,116,18,0,100,6,0,106,19,0,124,12,0,131,1,
++ 0,100,7,0,100,3,0,131,1,1,1,124,7,0,124,9,
++ 0,23,124,6,0,107,6,0,114,55,1,116,15,0,124,12,
++ 0,131,1,0,114,55,1,124,0,0,106,16,0,124,10,0,
++ 124,1,0,124,12,0,100,8,0,124,2,0,131,5,0,83,
++ 113,55,1,87,124,3,0,114,230,1,116,18,0,100,9,0,
++ 106,19,0,124,8,0,131,1,0,131,1,0,1,116,20,0,
++ 106,21,0,124,1,0,100,8,0,131,2,0,125,13,0,124,
++ 8,0,103,1,0,124,13,0,95,22,0,124,13,0,83,100,
++ 8,0,83,41,11,122,102,84,114,121,32,116,111,32,102,105,
++ 110,100,32,97,32,115,112,101,99,32,102,111,114,32,116,104,
++ 101,32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,
++ 108,101,46,32,32,82,101,116,117,114,110,115,32,116,104,101,
++ 10,32,32,32,32,32,32,32,32,109,97,116,99,104,105,110,
++ 103,32,115,112,101,99,44,32,111,114,32,78,111,110,101,32,
++ 105,102,32,110,111,116,32,102,111,117,110,100,46,70,114,60,
++ 0,0,0,114,58,0,0,0,114,31,0,0,0,114,187,0,
++ 0,0,122,9,116,114,121,105,110,103,32,123,125,114,100,0,
++ 0,0,78,122,25,112,111,115,115,105,98,108,101,32,110,97,
++ 109,101,115,112,97,99,101,32,102,111,114,32,123,125,114,89,
++ 0,0,0,41,23,114,34,0,0,0,114,41,0,0,0,114,
++ 37,0,0,0,114,3,0,0,0,114,47,0,0,0,114,221,
++ 0,0,0,114,42,0,0,0,114,10,1,0,0,218,11,95,
++ 102,105,108,108,95,99,97,99,104,101,114,7,0,0,0,114,
++ 13,1,0,0,114,90,0,0,0,114,12,1,0,0,114,30,
++ 0,0,0,114,9,1,0,0,114,46,0,0,0,114,7,1,
++ 0,0,114,48,0,0,0,114,107,0,0,0,114,49,0,0,
++ 0,114,123,0,0,0,114,163,0,0,0,114,159,0,0,0,
++ 41,14,114,110,0,0,0,114,128,0,0,0,114,182,0,0,
++ 0,90,12,105,115,95,110,97,109,101,115,112,97,99,101,90,
++ 11,116,97,105,108,95,109,111,100,117,108,101,114,135,0,0,
++ 0,90,5,99,97,99,104,101,90,12,99,97,99,104,101,95,
++ 109,111,100,117,108,101,90,9,98,97,115,101,95,112,97,116,
++ 104,114,227,0,0,0,114,168,0,0,0,90,13,105,110,105,
++ 116,95,102,105,108,101,110,97,109,101,90,9,102,117,108,108,
++ 95,112,97,116,104,114,167,0,0,0,114,4,0,0,0,114,
++ 4,0,0,0,114,6,0,0,0,114,183,0,0,0,223,4,
++ 0,0,115,68,0,0,0,0,3,6,1,19,1,3,1,34,
++ 1,13,1,11,1,15,1,10,1,9,2,9,1,9,1,15,
++ 2,9,1,6,2,12,1,18,1,22,1,10,1,15,1,12,
++ 1,32,4,12,2,22,1,22,1,25,1,16,1,12,1,29,
++ 1,6,1,19,1,18,1,12,1,4,1,122,20,70,105,108,
++ 101,70,105,110,100,101,114,46,102,105,110,100,95,115,112,101,
++ 99,99,1,0,0,0,0,0,0,0,9,0,0,0,13,0,
++ 0,0,67,0,0,0,115,11,1,0,0,124,0,0,106,0,
++ 0,125,1,0,121,31,0,116,1,0,106,2,0,124,1,0,
++ 112,33,0,116,1,0,106,3,0,131,0,0,131,1,0,125,
++ 2,0,87,110,33,0,4,116,4,0,116,5,0,116,6,0,
++ 102,3,0,107,10,0,114,75,0,1,1,1,103,0,0,125,
++ 2,0,89,110,1,0,88,116,7,0,106,8,0,106,9,0,
++ 100,1,0,131,1,0,115,112,0,116,10,0,124,2,0,131,
++ 1,0,124,0,0,95,11,0,110,111,0,116,10,0,131,0,
++ 0,125,3,0,120,90,0,124,2,0,68,93,82,0,125,4,
++ 0,124,4,0,106,12,0,100,2,0,131,1,0,92,3,0,
++ 125,5,0,125,6,0,125,7,0,124,6,0,114,191,0,100,
++ 3,0,106,13,0,124,5,0,124,7,0,106,14,0,131,0,
++ 0,131,2,0,125,8,0,110,6,0,124,5,0,125,8,0,
++ 124,3,0,106,15,0,124,8,0,131,1,0,1,113,128,0,
++ 87,124,3,0,124,0,0,95,11,0,116,7,0,106,8,0,
++ 106,9,0,116,16,0,131,1,0,114,7,1,100,4,0,100,
++ 5,0,132,0,0,124,2,0,68,131,1,0,124,0,0,95,
++ 17,0,100,6,0,83,41,7,122,68,70,105,108,108,32,116,
++ 104,101,32,99,97,99,104,101,32,111,102,32,112,111,116,101,
++ 110,116,105,97,108,32,109,111,100,117,108,101,115,32,97,110,
++ 100,32,112,97,99,107,97,103,101,115,32,102,111,114,32,116,
++ 104,105,115,32,100,105,114,101,99,116,111,114,121,46,114,0,
++ 0,0,0,114,60,0,0,0,122,5,123,125,46,123,125,99,
++ 1,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,
++ 83,0,0,0,115,28,0,0,0,104,0,0,124,0,0,93,
++ 18,0,125,1,0,124,1,0,106,0,0,131,0,0,146,2,
++ 0,113,6,0,83,114,4,0,0,0,41,1,114,90,0,0,
++ 0,41,2,114,24,0,0,0,90,2,102,110,114,4,0,0,
++ 0,114,4,0,0,0,114,6,0,0,0,250,9,60,115,101,
++ 116,99,111,109,112,62,41,5,0,0,115,2,0,0,0,9,
++ 0,122,41,70,105,108,101,70,105,110,100,101,114,46,95,102,
++ 105,108,108,95,99,97,99,104,101,46,60,108,111,99,97,108,
++ 115,62,46,60,115,101,116,99,111,109,112,62,78,41,18,114,
++ 37,0,0,0,114,3,0,0,0,90,7,108,105,115,116,100,
++ 105,114,114,47,0,0,0,114,2,1,0,0,218,15,80,101,
++ 114,109,105,115,115,105,111,110,69,114,114,111,114,218,18,78,
++ 111,116,65,68,105,114,101,99,116,111,114,121,69,114,114,111,
++ 114,114,8,0,0,0,114,9,0,0,0,114,10,0,0,0,
++ 114,11,1,0,0,114,12,1,0,0,114,85,0,0,0,114,
++ 49,0,0,0,114,90,0,0,0,218,3,97,100,100,114,11,
++ 0,0,0,114,13,1,0,0,41,9,114,110,0,0,0,114,
++ 37,0,0,0,90,8,99,111,110,116,101,110,116,115,90,21,
++ 108,111,119,101,114,95,115,117,102,102,105,120,95,99,111,110,
++ 116,101,110,116,115,114,247,0,0,0,114,108,0,0,0,114,
++ 239,0,0,0,114,227,0,0,0,90,8,110,101,119,95,110,
++ 97,109,101,114,4,0,0,0,114,4,0,0,0,114,6,0,
++ 0,0,114,15,1,0,0,12,5,0,0,115,34,0,0,0,
++ 0,2,9,1,3,1,31,1,22,3,11,3,18,1,18,7,
++ 9,1,13,1,24,1,6,1,27,2,6,1,17,1,9,1,
++ 18,1,122,22,70,105,108,101,70,105,110,100,101,114,46,95,
++ 102,105,108,108,95,99,97,99,104,101,99,1,0,0,0,0,
++ 0,0,0,3,0,0,0,3,0,0,0,7,0,0,0,115,
++ 25,0,0,0,135,0,0,135,1,0,102,2,0,100,1,0,
++ 100,2,0,134,0,0,125,2,0,124,2,0,83,41,3,97,
++ 20,1,0,0,65,32,99,108,97,115,115,32,109,101,116,104,
++ 111,100,32,119,104,105,99,104,32,114,101,116,117,114,110,115,
++ 32,97,32,99,108,111,115,117,114,101,32,116,111,32,117,115,
++ 101,32,111,110,32,115,121,115,46,112,97,116,104,95,104,111,
++ 111,107,10,32,32,32,32,32,32,32,32,119,104,105,99,104,
++ 32,119,105,108,108,32,114,101,116,117,114,110,32,97,110,32,
++ 105,110,115,116,97,110,99,101,32,117,115,105,110,103,32,116,
++ 104,101,32,115,112,101,99,105,102,105,101,100,32,108,111,97,
++ 100,101,114,115,32,97,110,100,32,116,104,101,32,112,97,116,
++ 104,10,32,32,32,32,32,32,32,32,99,97,108,108,101,100,
++ 32,111,110,32,116,104,101,32,99,108,111,115,117,114,101,46,
++ 10,10,32,32,32,32,32,32,32,32,73,102,32,116,104,101,
++ 32,112,97,116,104,32,99,97,108,108,101,100,32,111,110,32,
++ 116,104,101,32,99,108,111,115,117,114,101,32,105,115,32,110,
++ 111,116,32,97,32,100,105,114,101,99,116,111,114,121,44,32,
++ 73,109,112,111,114,116,69,114,114,111,114,32,105,115,10,32,
++ 32,32,32,32,32,32,32,114,97,105,115,101,100,46,10,10,
++ 32,32,32,32,32,32,32,32,99,1,0,0,0,0,0,0,
++ 0,1,0,0,0,4,0,0,0,19,0,0,0,115,43,0,
++ 0,0,116,0,0,124,0,0,131,1,0,115,30,0,116,1,
++ 0,100,1,0,100,2,0,124,0,0,131,1,1,130,1,0,
++ 136,0,0,124,0,0,136,1,0,140,1,0,83,41,3,122,
++ 45,80,97,116,104,32,104,111,111,107,32,102,111,114,32,105,
++ 109,112,111,114,116,108,105,98,46,109,97,99,104,105,110,101,
++ 114,121,46,70,105,108,101,70,105,110,100,101,114,46,122,30,
++ 111,110,108,121,32,100,105,114,101,99,116,111,114,105,101,115,
++ 32,97,114,101,32,115,117,112,112,111,114,116,101,100,114,37,
++ 0,0,0,41,2,114,48,0,0,0,114,109,0,0,0,41,
++ 1,114,37,0,0,0,41,2,114,173,0,0,0,114,14,1,
++ 0,0,114,4,0,0,0,114,6,0,0,0,218,24,112,97,
++ 116,104,95,104,111,111,107,95,102,111,114,95,70,105,108,101,
++ 70,105,110,100,101,114,53,5,0,0,115,6,0,0,0,0,
++ 2,12,1,18,1,122,54,70,105,108,101,70,105,110,100,101,
++ 114,46,112,97,116,104,95,104,111,111,107,46,60,108,111,99,
++ 97,108,115,62,46,112,97,116,104,95,104,111,111,107,95,102,
++ 111,114,95,70,105,108,101,70,105,110,100,101,114,114,4,0,
++ 0,0,41,3,114,173,0,0,0,114,14,1,0,0,114,20,
++ 1,0,0,114,4,0,0,0,41,2,114,173,0,0,0,114,
++ 14,1,0,0,114,6,0,0,0,218,9,112,97,116,104,95,
++ 104,111,111,107,43,5,0,0,115,4,0,0,0,0,10,21,
++ 6,122,20,70,105,108,101,70,105,110,100,101,114,46,112,97,
++ 116,104,95,104,111,111,107,99,1,0,0,0,0,0,0,0,
++ 1,0,0,0,2,0,0,0,67,0,0,0,115,16,0,0,
++ 0,100,1,0,106,0,0,124,0,0,106,1,0,131,1,0,
++ 83,41,2,78,122,16,70,105,108,101,70,105,110,100,101,114,
++ 40,123,33,114,125,41,41,2,114,49,0,0,0,114,37,0,
++ 0,0,41,1,114,110,0,0,0,114,4,0,0,0,114,4,
++ 0,0,0,114,6,0,0,0,114,246,0,0,0,61,5,0,
++ 0,115,2,0,0,0,0,1,122,19,70,105,108,101,70,105,
++ 110,100,101,114,46,95,95,114,101,112,114,95,95,41,15,114,
++ 114,0,0,0,114,113,0,0,0,114,115,0,0,0,114,116,
++ 0,0,0,114,187,0,0,0,114,252,0,0,0,114,132,0,
++ 0,0,114,184,0,0,0,114,126,0,0,0,114,7,1,0,
++ 0,114,183,0,0,0,114,15,1,0,0,114,185,0,0,0,
++ 114,21,1,0,0,114,246,0,0,0,114,4,0,0,0,114,
++ 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,8,
++ 1,0,0,177,4,0,0,115,20,0,0,0,12,7,6,2,
++ 12,14,12,4,6,2,12,12,12,5,15,45,12,31,18,18,
++ 114,8,1,0,0,99,4,0,0,0,0,0,0,0,6,0,
++ 0,0,11,0,0,0,67,0,0,0,115,195,0,0,0,124,
++ 0,0,106,0,0,100,1,0,131,1,0,125,4,0,124,0,
++ 0,106,0,0,100,2,0,131,1,0,125,5,0,124,4,0,
++ 115,99,0,124,5,0,114,54,0,124,5,0,106,1,0,125,
++ 4,0,110,45,0,124,2,0,124,3,0,107,2,0,114,84,
++ 0,116,2,0,124,1,0,124,2,0,131,2,0,125,4,0,
++ 110,15,0,116,3,0,124,1,0,124,2,0,131,2,0,125,
++ 4,0,124,5,0,115,126,0,116,4,0,124,1,0,124,2,
++ 0,100,3,0,124,4,0,131,2,1,125,5,0,121,44,0,
++ 124,5,0,124,0,0,100,2,0,60,124,4,0,124,0,0,
++ 100,1,0,60,124,2,0,124,0,0,100,4,0,60,124,3,
++ 0,124,0,0,100,5,0,60,87,110,18,0,4,116,5,0,
++ 107,10,0,114,190,0,1,1,1,89,110,1,0,88,100,0,
++ 0,83,41,6,78,218,10,95,95,108,111,97,100,101,114,95,
++ 95,218,8,95,95,115,112,101,99,95,95,114,129,0,0,0,
++ 90,8,95,95,102,105,108,101,95,95,90,10,95,95,99,97,
++ 99,104,101,100,95,95,41,6,218,3,103,101,116,114,129,0,
++ 0,0,114,225,0,0,0,114,220,0,0,0,114,170,0,0,
++ 0,218,9,69,120,99,101,112,116,105,111,110,41,6,90,2,
++ 110,115,114,108,0,0,0,90,8,112,97,116,104,110,97,109,
++ 101,90,9,99,112,97,116,104,110,97,109,101,114,129,0,0,
++ 0,114,167,0,0,0,114,4,0,0,0,114,4,0,0,0,
++ 114,6,0,0,0,218,14,95,102,105,120,95,117,112,95,109,
++ 111,100,117,108,101,67,5,0,0,115,34,0,0,0,0,2,
++ 15,1,15,1,6,1,6,1,12,1,12,1,18,2,15,1,
++ 6,1,21,1,3,1,10,1,10,1,10,1,14,1,13,2,
++ 114,26,1,0,0,99,0,0,0,0,0,0,0,0,3,0,
++ 0,0,3,0,0,0,67,0,0,0,115,55,0,0,0,116,
++ 0,0,116,1,0,106,2,0,131,0,0,102,2,0,125,0,
++ 0,116,3,0,116,4,0,102,2,0,125,1,0,116,5,0,
++ 116,6,0,102,2,0,125,2,0,124,0,0,124,1,0,124,
++ 2,0,103,3,0,83,41,1,122,95,82,101,116,117,114,110,
++ 115,32,97,32,108,105,115,116,32,111,102,32,102,105,108,101,
++ 45,98,97,115,101,100,32,109,111,100,117,108,101,32,108,111,
++ 97,100,101,114,115,46,10,10,32,32,32,32,69,97,99,104,
++ 32,105,116,101,109,32,105,115,32,97,32,116,117,112,108,101,
++ 32,40,108,111,97,100,101,114,44,32,115,117,102,102,105,120,
++ 101,115,41,46,10,32,32,32,32,41,7,114,226,0,0,0,
++ 114,148,0,0,0,218,18,101,120,116,101,110,115,105,111,110,
++ 95,115,117,102,102,105,120,101,115,114,220,0,0,0,114,86,
++ 0,0,0,114,225,0,0,0,114,76,0,0,0,41,3,90,
++ 10,101,120,116,101,110,115,105,111,110,115,90,6,115,111,117,
++ 114,99,101,90,8,98,121,116,101,99,111,100,101,114,4,0,
++ 0,0,114,4,0,0,0,114,6,0,0,0,114,164,0,0,
++ 0,90,5,0,0,115,8,0,0,0,0,5,18,1,12,1,
++ 12,1,114,164,0,0,0,99,1,0,0,0,0,0,0,0,
++ 12,0,0,0,12,0,0,0,67,0,0,0,115,70,2,0,
++ 0,124,0,0,97,0,0,116,0,0,106,1,0,97,1,0,
++ 116,0,0,106,2,0,97,2,0,116,1,0,106,3,0,116,
++ 4,0,25,125,1,0,120,76,0,100,26,0,68,93,68,0,
++ 125,2,0,124,2,0,116,1,0,106,3,0,107,7,0,114,
++ 83,0,116,0,0,106,5,0,124,2,0,131,1,0,125,3,
++ 0,110,13,0,116,1,0,106,3,0,124,2,0,25,125,3,
++ 0,116,6,0,124,1,0,124,2,0,124,3,0,131,3,0,
++ 1,113,44,0,87,100,5,0,100,6,0,103,1,0,102,2,
++ 0,100,7,0,100,8,0,100,6,0,103,2,0,102,2,0,
++ 102,2,0,125,4,0,120,149,0,124,4,0,68,93,129,0,
++ 92,2,0,125,5,0,125,6,0,116,7,0,100,9,0,100,
++ 10,0,132,0,0,124,6,0,68,131,1,0,131,1,0,115,
++ 199,0,116,8,0,130,1,0,124,6,0,100,11,0,25,125,
++ 7,0,124,5,0,116,1,0,106,3,0,107,6,0,114,241,
++ 0,116,1,0,106,3,0,124,5,0,25,125,8,0,80,113,
++ 156,0,121,20,0,116,0,0,106,5,0,124,5,0,131,1,
++ 0,125,8,0,80,87,113,156,0,4,116,9,0,107,10,0,
++ 114,28,1,1,1,1,119,156,0,89,113,156,0,88,113,156,
++ 0,87,116,9,0,100,12,0,131,1,0,130,1,0,116,6,
++ 0,124,1,0,100,13,0,124,8,0,131,3,0,1,116,6,
++ 0,124,1,0,100,14,0,124,7,0,131,3,0,1,116,6,
++ 0,124,1,0,100,15,0,100,16,0,106,10,0,124,6,0,
++ 131,1,0,131,3,0,1,121,19,0,116,0,0,106,5,0,
++ 100,17,0,131,1,0,125,9,0,87,110,24,0,4,116,9,
++ 0,107,10,0,114,147,1,1,1,1,100,18,0,125,9,0,
++ 89,110,1,0,88,116,6,0,124,1,0,100,17,0,124,9,
++ 0,131,3,0,1,116,0,0,106,5,0,100,19,0,131,1,
++ 0,125,10,0,116,6,0,124,1,0,100,19,0,124,10,0,
++ 131,3,0,1,124,5,0,100,7,0,107,2,0,114,238,1,
++ 116,0,0,106,5,0,100,20,0,131,1,0,125,11,0,116,
++ 6,0,124,1,0,100,21,0,124,11,0,131,3,0,1,116,
++ 6,0,124,1,0,100,22,0,116,11,0,131,0,0,131,3,
++ 0,1,116,12,0,106,13,0,116,2,0,106,14,0,131,0,
++ 0,131,1,0,1,124,5,0,100,7,0,107,2,0,114,66,
++ 2,116,15,0,106,16,0,100,23,0,131,1,0,1,100,24,
++ 0,116,12,0,107,6,0,114,66,2,100,25,0,116,17,0,
++ 95,18,0,100,18,0,83,41,27,122,205,83,101,116,117,112,
++ 32,116,104,101,32,112,97,116,104,45,98,97,115,101,100,32,
++ 105,109,112,111,114,116,101,114,115,32,102,111,114,32,105,109,
++ 112,111,114,116,108,105,98,32,98,121,32,105,109,112,111,114,
++ 116,105,110,103,32,110,101,101,100,101,100,10,32,32,32,32,
++ 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,115,
++ 32,97,110,100,32,105,110,106,101,99,116,105,110,103,32,116,
++ 104,101,109,32,105,110,116,111,32,116,104,101,32,103,108,111,
++ 98,97,108,32,110,97,109,101,115,112,97,99,101,46,10,10,
++ 32,32,32,32,79,116,104,101,114,32,99,111,109,112,111,110,
++ 101,110,116,115,32,97,114,101,32,101,120,116,114,97,99,116,
++ 101,100,32,102,114,111,109,32,116,104,101,32,99,111,114,101,
++ 32,98,111,111,116,115,116,114,97,112,32,109,111,100,117,108,
++ 101,46,10,10,32,32,32,32,114,51,0,0,0,114,62,0,
++ 0,0,218,8,98,117,105,108,116,105,110,115,114,145,0,0,
++ 0,90,5,112,111,115,105,120,250,1,47,218,2,110,116,250,
++ 1,92,99,1,0,0,0,0,0,0,0,2,0,0,0,3,
++ 0,0,0,115,0,0,0,115,33,0,0,0,124,0,0,93,
++ 23,0,125,1,0,116,0,0,124,1,0,131,1,0,100,0,
++ 0,107,2,0,86,1,113,3,0,100,1,0,83,41,2,114,
++ 31,0,0,0,78,41,1,114,33,0,0,0,41,2,114,24,
++ 0,0,0,114,79,0,0,0,114,4,0,0,0,114,4,0,
++ 0,0,114,6,0,0,0,114,229,0,0,0,126,5,0,0,
++ 115,2,0,0,0,6,0,122,25,95,115,101,116,117,112,46,
++ 60,108,111,99,97,108,115,62,46,60,103,101,110,101,120,112,
++ 114,62,114,61,0,0,0,122,30,105,109,112,111,114,116,108,
++ 105,98,32,114,101,113,117,105,114,101,115,32,112,111,115,105,
++ 120,32,111,114,32,110,116,114,3,0,0,0,114,27,0,0,
++ 0,114,23,0,0,0,114,32,0,0,0,90,7,95,116,104,
++ 114,101,97,100,78,90,8,95,119,101,97,107,114,101,102,90,
++ 6,119,105,110,114,101,103,114,172,0,0,0,114,7,0,0,
++ 0,122,4,46,112,121,119,122,6,95,100,46,112,121,100,84,
++ 41,4,114,51,0,0,0,114,62,0,0,0,114,28,1,0,
++ 0,114,145,0,0,0,41,19,114,123,0,0,0,114,8,0,
++ 0,0,114,148,0,0,0,114,241,0,0,0,114,114,0,0,
++ 0,90,18,95,98,117,105,108,116,105,110,95,102,114,111,109,
++ 95,110,97,109,101,114,118,0,0,0,218,3,97,108,108,218,
++ 14,65,115,115,101,114,116,105,111,110,69,114,114,111,114,114,
++ 109,0,0,0,114,28,0,0,0,114,13,0,0,0,114,231,
++ 0,0,0,114,152,0,0,0,114,27,1,0,0,114,86,0,
++ 0,0,114,166,0,0,0,114,171,0,0,0,114,175,0,0,
++ 0,41,12,218,17,95,98,111,111,116,115,116,114,97,112,95,
++ 109,111,100,117,108,101,90,11,115,101,108,102,95,109,111,100,
++ 117,108,101,90,12,98,117,105,108,116,105,110,95,110,97,109,
++ 101,90,14,98,117,105,108,116,105,110,95,109,111,100,117,108,
++ 101,90,10,111,115,95,100,101,116,97,105,108,115,90,10,98,
++ 117,105,108,116,105,110,95,111,115,114,23,0,0,0,114,27,
++ 0,0,0,90,9,111,115,95,109,111,100,117,108,101,90,13,
++ 116,104,114,101,97,100,95,109,111,100,117,108,101,90,14,119,
++ 101,97,107,114,101,102,95,109,111,100,117,108,101,90,13,119,
++ 105,110,114,101,103,95,109,111,100,117,108,101,114,4,0,0,
++ 0,114,4,0,0,0,114,6,0,0,0,218,6,95,115,101,
++ 116,117,112,101,5,0,0,115,82,0,0,0,0,8,6,1,
++ 9,1,9,3,13,1,13,1,15,1,18,2,13,1,20,3,
++ 33,1,19,2,31,1,10,1,15,1,13,1,4,2,3,1,
++ 15,1,5,1,13,1,12,2,12,1,16,1,16,1,25,3,
++ 3,1,19,1,13,2,11,1,16,3,15,1,16,3,12,1,
++ 15,1,16,3,19,1,19,1,12,1,13,1,12,1,114,35,
++ 1,0,0,99,1,0,0,0,0,0,0,0,2,0,0,0,
++ 3,0,0,0,67,0,0,0,115,116,0,0,0,116,0,0,
++ 124,0,0,131,1,0,1,116,1,0,131,0,0,125,1,0,
++ 116,2,0,106,3,0,106,4,0,116,5,0,106,6,0,124,
++ 1,0,140,0,0,103,1,0,131,1,0,1,116,7,0,106,
++ 8,0,100,1,0,107,2,0,114,78,0,116,2,0,106,9,
++ 0,106,10,0,116,11,0,131,1,0,1,116,2,0,106,9,
++ 0,106,10,0,116,12,0,131,1,0,1,116,5,0,124,0,
++ 0,95,5,0,116,13,0,124,0,0,95,13,0,100,2,0,
++ 83,41,3,122,41,73,110,115,116,97,108,108,32,116,104,101,
++ 32,112,97,116,104,45,98,97,115,101,100,32,105,109,112,111,
++ 114,116,32,99,111,109,112,111,110,101,110,116,115,46,114,30,
++ 1,0,0,78,41,14,114,35,1,0,0,114,164,0,0,0,
++ 114,8,0,0,0,114,0,1,0,0,114,152,0,0,0,114,
++ 8,1,0,0,114,21,1,0,0,114,3,0,0,0,114,114,
++ 0,0,0,218,9,109,101,116,97,95,112,97,116,104,114,166,
++ 0,0,0,114,171,0,0,0,114,251,0,0,0,114,220,0,
++ 0,0,41,2,114,34,1,0,0,90,17,115,117,112,112,111,
++ 114,116,101,100,95,108,111,97,100,101,114,115,114,4,0,0,
++ 0,114,4,0,0,0,114,6,0,0,0,218,8,95,105,110,
++ 115,116,97,108,108,169,5,0,0,115,16,0,0,0,0,2,
++ 10,1,9,1,28,1,15,1,16,1,16,4,9,1,114,37,
++ 1,0,0,41,1,114,0,0,0,0,41,2,114,1,0,0,
++ 0,114,2,0,0,0,41,62,114,116,0,0,0,114,12,0,
++ 0,0,90,37,95,67,65,83,69,95,73,78,83,69,78,83,
++ 73,84,73,86,69,95,80,76,65,84,70,79,82,77,83,95,
++ 66,89,84,69,83,95,75,69,89,114,11,0,0,0,114,13,
++ 0,0,0,114,19,0,0,0,114,21,0,0,0,114,30,0,
++ 0,0,114,40,0,0,0,114,41,0,0,0,114,45,0,0,
++ 0,114,46,0,0,0,114,48,0,0,0,114,57,0,0,0,
++ 218,4,116,121,112,101,218,8,95,95,99,111,100,101,95,95,
++ 114,147,0,0,0,114,17,0,0,0,114,137,0,0,0,114,
++ 16,0,0,0,114,20,0,0,0,90,17,95,82,65,87,95,
++ 77,65,71,73,67,95,78,85,77,66,69,82,90,4,95,109,
++ 115,103,218,11,83,121,115,116,101,109,69,114,114,111,114,114,
++ 138,0,0,0,114,75,0,0,0,114,74,0,0,0,114,86,
++ 0,0,0,114,76,0,0,0,90,23,68,69,66,85,71,95,
++ 66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,69,
++ 83,90,27,79,80,84,73,77,73,90,69,68,95,66,89,84,
++ 69,67,79,68,69,95,83,85,70,70,73,88,69,83,114,81,
++ 0,0,0,114,87,0,0,0,114,93,0,0,0,114,97,0,
++ 0,0,114,99,0,0,0,114,107,0,0,0,114,125,0,0,
++ 0,114,132,0,0,0,114,144,0,0,0,114,150,0,0,0,
++ 114,153,0,0,0,114,158,0,0,0,218,6,111,98,106,101,
++ 99,116,114,165,0,0,0,114,170,0,0,0,114,171,0,0,
++ 0,114,186,0,0,0,114,196,0,0,0,114,212,0,0,0,
++ 114,220,0,0,0,114,225,0,0,0,114,231,0,0,0,114,
++ 226,0,0,0,114,232,0,0,0,114,249,0,0,0,114,251,
++ 0,0,0,114,8,1,0,0,114,26,1,0,0,114,164,0,
++ 0,0,114,35,1,0,0,114,37,1,0,0,114,4,0,0,
+ 0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
+- 114,182,0,0,0,199,4,0,0,115,68,0,0,0,0,3,
+- 6,1,19,1,3,1,34,1,13,1,11,1,15,1,10,1,
+- 9,2,9,1,9,1,15,2,9,1,6,2,12,1,18,1,
+- 22,1,10,1,15,1,12,1,32,4,12,2,22,1,22,1,
+- 25,1,16,1,12,1,29,1,6,1,19,1,18,1,12,1,
+- 4,1,122,20,70,105,108,101,70,105,110,100,101,114,46,102,
+- 105,110,100,95,115,112,101,99,99,1,0,0,0,0,0,0,
+- 0,9,0,0,0,13,0,0,0,67,0,0,0,115,11,1,
+- 0,0,124,0,0,106,0,0,125,1,0,121,31,0,116,1,
+- 0,106,2,0,124,1,0,112,33,0,116,1,0,106,3,0,
+- 131,0,0,131,1,0,125,2,0,87,110,33,0,4,116,4,
+- 0,116,5,0,116,6,0,102,3,0,107,10,0,114,75,0,
+- 1,1,1,103,0,0,125,2,0,89,110,1,0,88,116,7,
+- 0,106,8,0,106,9,0,100,1,0,131,1,0,115,112,0,
+- 116,10,0,124,2,0,131,1,0,124,0,0,95,11,0,110,
+- 111,0,116,10,0,131,0,0,125,3,0,120,90,0,124,2,
+- 0,68,93,82,0,125,4,0,124,4,0,106,12,0,100,2,
+- 0,131,1,0,92,3,0,125,5,0,125,6,0,125,7,0,
+- 124,6,0,114,191,0,100,3,0,106,13,0,124,5,0,124,
+- 7,0,106,14,0,131,0,0,131,2,0,125,8,0,110,6,
+- 0,124,5,0,125,8,0,124,3,0,106,15,0,124,8,0,
+- 131,1,0,1,113,128,0,87,124,3,0,124,0,0,95,11,
+- 0,116,7,0,106,8,0,106,9,0,116,16,0,131,1,0,
+- 114,7,1,100,4,0,100,5,0,132,0,0,124,2,0,68,
+- 131,1,0,124,0,0,95,17,0,100,6,0,83,41,7,122,
+- 68,70,105,108,108,32,116,104,101,32,99,97,99,104,101,32,
+- 111,102,32,112,111,116,101,110,116,105,97,108,32,109,111,100,
+- 117,108,101,115,32,97,110,100,32,112,97,99,107,97,103,101,
+- 115,32,102,111,114,32,116,104,105,115,32,100,105,114,101,99,
+- 116,111,114,121,46,114,0,0,0,0,114,60,0,0,0,122,
+- 5,123,125,46,123,125,99,1,0,0,0,0,0,0,0,2,
+- 0,0,0,3,0,0,0,83,0,0,0,115,28,0,0,0,
+- 104,0,0,124,0,0,93,18,0,125,1,0,124,1,0,106,
+- 0,0,131,0,0,146,2,0,113,6,0,83,114,4,0,0,
+- 0,41,1,114,90,0,0,0,41,2,114,24,0,0,0,90,
+- 2,102,110,114,4,0,0,0,114,4,0,0,0,114,6,0,
+- 0,0,250,9,60,115,101,116,99,111,109,112,62,17,5,0,
+- 0,115,2,0,0,0,9,0,122,41,70,105,108,101,70,105,
+- 110,100,101,114,46,95,102,105,108,108,95,99,97,99,104,101,
+- 46,60,108,111,99,97,108,115,62,46,60,115,101,116,99,111,
+- 109,112,62,78,41,18,114,37,0,0,0,114,3,0,0,0,
+- 90,7,108,105,115,116,100,105,114,114,47,0,0,0,114,1,
+- 1,0,0,218,15,80,101,114,109,105,115,115,105,111,110,69,
+- 114,114,111,114,218,18,78,111,116,65,68,105,114,101,99,116,
+- 111,114,121,69,114,114,111,114,114,8,0,0,0,114,9,0,
+- 0,0,114,10,0,0,0,114,10,1,0,0,114,11,1,0,
+- 0,114,85,0,0,0,114,49,0,0,0,114,90,0,0,0,
+- 218,3,97,100,100,114,11,0,0,0,114,12,1,0,0,41,
+- 9,114,110,0,0,0,114,37,0,0,0,90,8,99,111,110,
+- 116,101,110,116,115,90,21,108,111,119,101,114,95,115,117,102,
+- 102,105,120,95,99,111,110,116,101,110,116,115,114,246,0,0,
+- 0,114,108,0,0,0,114,238,0,0,0,114,226,0,0,0,
+- 90,8,110,101,119,95,110,97,109,101,114,4,0,0,0,114,
+- 4,0,0,0,114,6,0,0,0,114,14,1,0,0,244,4,
+- 0,0,115,34,0,0,0,0,2,9,1,3,1,31,1,22,
+- 3,11,3,18,1,18,7,9,1,13,1,24,1,6,1,27,
+- 2,6,1,17,1,9,1,18,1,122,22,70,105,108,101,70,
+- 105,110,100,101,114,46,95,102,105,108,108,95,99,97,99,104,
+- 101,99,1,0,0,0,0,0,0,0,3,0,0,0,3,0,
+- 0,0,7,0,0,0,115,25,0,0,0,135,0,0,135,1,
+- 0,102,2,0,100,1,0,100,2,0,134,0,0,125,2,0,
+- 124,2,0,83,41,3,97,20,1,0,0,65,32,99,108,97,
+- 115,115,32,109,101,116,104,111,100,32,119,104,105,99,104,32,
+- 114,101,116,117,114,110,115,32,97,32,99,108,111,115,117,114,
+- 101,32,116,111,32,117,115,101,32,111,110,32,115,121,115,46,
+- 112,97,116,104,95,104,111,111,107,10,32,32,32,32,32,32,
+- 32,32,119,104,105,99,104,32,119,105,108,108,32,114,101,116,
+- 117,114,110,32,97,110,32,105,110,115,116,97,110,99,101,32,
+- 117,115,105,110,103,32,116,104,101,32,115,112,101,99,105,102,
+- 105,101,100,32,108,111,97,100,101,114,115,32,97,110,100,32,
+- 116,104,101,32,112,97,116,104,10,32,32,32,32,32,32,32,
+- 32,99,97,108,108,101,100,32,111,110,32,116,104,101,32,99,
+- 108,111,115,117,114,101,46,10,10,32,32,32,32,32,32,32,
+- 32,73,102,32,116,104,101,32,112,97,116,104,32,99,97,108,
+- 108,101,100,32,111,110,32,116,104,101,32,99,108,111,115,117,
+- 114,101,32,105,115,32,110,111,116,32,97,32,100,105,114,101,
+- 99,116,111,114,121,44,32,73,109,112,111,114,116,69,114,114,
+- 111,114,32,105,115,10,32,32,32,32,32,32,32,32,114,97,
+- 105,115,101,100,46,10,10,32,32,32,32,32,32,32,32,99,
+- 1,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,
+- 19,0,0,0,115,43,0,0,0,116,0,0,124,0,0,131,
+- 1,0,115,30,0,116,1,0,100,1,0,100,2,0,124,0,
+- 0,131,1,1,130,1,0,136,0,0,124,0,0,136,1,0,
+- 140,1,0,83,41,3,122,45,80,97,116,104,32,104,111,111,
+- 107,32,102,111,114,32,105,109,112,111,114,116,108,105,98,46,
+- 109,97,99,104,105,110,101,114,121,46,70,105,108,101,70,105,
+- 110,100,101,114,46,122,30,111,110,108,121,32,100,105,114,101,
+- 99,116,111,114,105,101,115,32,97,114,101,32,115,117,112,112,
+- 111,114,116,101,100,114,37,0,0,0,41,2,114,48,0,0,
+- 0,114,109,0,0,0,41,1,114,37,0,0,0,41,2,114,
+- 172,0,0,0,114,13,1,0,0,114,4,0,0,0,114,6,
+- 0,0,0,218,24,112,97,116,104,95,104,111,111,107,95,102,
+- 111,114,95,70,105,108,101,70,105,110,100,101,114,29,5,0,
+- 0,115,6,0,0,0,0,2,12,1,18,1,122,54,70,105,
+- 108,101,70,105,110,100,101,114,46,112,97,116,104,95,104,111,
+- 111,107,46,60,108,111,99,97,108,115,62,46,112,97,116,104,
+- 95,104,111,111,107,95,102,111,114,95,70,105,108,101,70,105,
+- 110,100,101,114,114,4,0,0,0,41,3,114,172,0,0,0,
+- 114,13,1,0,0,114,19,1,0,0,114,4,0,0,0,41,
+- 2,114,172,0,0,0,114,13,1,0,0,114,6,0,0,0,
+- 218,9,112,97,116,104,95,104,111,111,107,19,5,0,0,115,
+- 4,0,0,0,0,10,21,6,122,20,70,105,108,101,70,105,
+- 110,100,101,114,46,112,97,116,104,95,104,111,111,107,99,1,
+- 0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,67,
+- 0,0,0,115,16,0,0,0,100,1,0,106,0,0,124,0,
+- 0,106,1,0,131,1,0,83,41,2,78,122,16,70,105,108,
+- 101,70,105,110,100,101,114,40,123,33,114,125,41,41,2,114,
+- 49,0,0,0,114,37,0,0,0,41,1,114,110,0,0,0,
+- 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,
+- 245,0,0,0,37,5,0,0,115,2,0,0,0,0,1,122,
+- 19,70,105,108,101,70,105,110,100,101,114,46,95,95,114,101,
+- 112,114,95,95,41,15,114,114,0,0,0,114,113,0,0,0,
+- 114,115,0,0,0,114,116,0,0,0,114,186,0,0,0,114,
+- 251,0,0,0,114,132,0,0,0,114,183,0,0,0,114,126,
+- 0,0,0,114,6,1,0,0,114,182,0,0,0,114,14,1,
+- 0,0,114,184,0,0,0,114,20,1,0,0,114,245,0,0,
+- 0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,
+- 114,6,0,0,0,114,7,1,0,0,153,4,0,0,115,20,
+- 0,0,0,12,7,6,2,12,14,12,4,6,2,12,12,12,
+- 5,15,45,12,31,18,18,114,7,1,0,0,99,4,0,0,
+- 0,0,0,0,0,6,0,0,0,11,0,0,0,67,0,0,
+- 0,115,195,0,0,0,124,0,0,106,0,0,100,1,0,131,
+- 1,0,125,4,0,124,0,0,106,0,0,100,2,0,131,1,
+- 0,125,5,0,124,4,0,115,99,0,124,5,0,114,54,0,
+- 124,5,0,106,1,0,125,4,0,110,45,0,124,2,0,124,
+- 3,0,107,2,0,114,84,0,116,2,0,124,1,0,124,2,
+- 0,131,2,0,125,4,0,110,15,0,116,3,0,124,1,0,
+- 124,2,0,131,2,0,125,4,0,124,5,0,115,126,0,116,
+- 4,0,124,1,0,124,2,0,100,3,0,124,4,0,131,2,
+- 1,125,5,0,121,44,0,124,5,0,124,0,0,100,2,0,
+- 60,124,4,0,124,0,0,100,1,0,60,124,2,0,124,0,
+- 0,100,4,0,60,124,3,0,124,0,0,100,5,0,60,87,
+- 110,18,0,4,116,5,0,107,10,0,114,190,0,1,1,1,
+- 89,110,1,0,88,100,0,0,83,41,6,78,218,10,95,95,
+- 108,111,97,100,101,114,95,95,218,8,95,95,115,112,101,99,
+- 95,95,114,129,0,0,0,90,8,95,95,102,105,108,101,95,
+- 95,90,10,95,95,99,97,99,104,101,100,95,95,41,6,218,
+- 3,103,101,116,114,129,0,0,0,114,224,0,0,0,114,219,
+- 0,0,0,114,169,0,0,0,218,9,69,120,99,101,112,116,
+- 105,111,110,41,6,90,2,110,115,114,108,0,0,0,90,8,
+- 112,97,116,104,110,97,109,101,90,9,99,112,97,116,104,110,
+- 97,109,101,114,129,0,0,0,114,166,0,0,0,114,4,0,
+- 0,0,114,4,0,0,0,114,6,0,0,0,218,14,95,102,
+- 105,120,95,117,112,95,109,111,100,117,108,101,43,5,0,0,
+- 115,34,0,0,0,0,2,15,1,15,1,6,1,6,1,12,
+- 1,12,1,18,2,15,1,6,1,21,1,3,1,10,1,10,
+- 1,10,1,14,1,13,2,114,25,1,0,0,99,0,0,0,
+- 0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,
+- 0,115,55,0,0,0,116,0,0,116,1,0,106,2,0,131,
+- 0,0,102,2,0,125,0,0,116,3,0,116,4,0,102,2,
+- 0,125,1,0,116,5,0,116,6,0,102,2,0,125,2,0,
+- 124,0,0,124,1,0,124,2,0,103,3,0,83,41,1,122,
+- 95,82,101,116,117,114,110,115,32,97,32,108,105,115,116,32,
+- 111,102,32,102,105,108,101,45,98,97,115,101,100,32,109,111,
+- 100,117,108,101,32,108,111,97,100,101,114,115,46,10,10,32,
+- 32,32,32,69,97,99,104,32,105,116,101,109,32,105,115,32,
+- 97,32,116,117,112,108,101,32,40,108,111,97,100,101,114,44,
+- 32,115,117,102,102,105,120,101,115,41,46,10,32,32,32,32,
+- 41,7,114,225,0,0,0,114,147,0,0,0,218,18,101,120,
+- 116,101,110,115,105,111,110,95,115,117,102,102,105,120,101,115,
+- 114,219,0,0,0,114,86,0,0,0,114,224,0,0,0,114,
+- 76,0,0,0,41,3,90,10,101,120,116,101,110,115,105,111,
+- 110,115,90,6,115,111,117,114,99,101,90,8,98,121,116,101,
+- 99,111,100,101,114,4,0,0,0,114,4,0,0,0,114,6,
+- 0,0,0,114,163,0,0,0,66,5,0,0,115,8,0,0,
+- 0,0,5,18,1,12,1,12,1,114,163,0,0,0,99,1,
+- 0,0,0,0,0,0,0,12,0,0,0,12,0,0,0,67,
+- 0,0,0,115,70,2,0,0,124,0,0,97,0,0,116,0,
+- 0,106,1,0,97,1,0,116,0,0,106,2,0,97,2,0,
+- 116,1,0,106,3,0,116,4,0,25,125,1,0,120,76,0,
+- 100,26,0,68,93,68,0,125,2,0,124,2,0,116,1,0,
+- 106,3,0,107,7,0,114,83,0,116,0,0,106,5,0,124,
+- 2,0,131,1,0,125,3,0,110,13,0,116,1,0,106,3,
+- 0,124,2,0,25,125,3,0,116,6,0,124,1,0,124,2,
+- 0,124,3,0,131,3,0,1,113,44,0,87,100,5,0,100,
+- 6,0,103,1,0,102,2,0,100,7,0,100,8,0,100,6,
+- 0,103,2,0,102,2,0,102,2,0,125,4,0,120,149,0,
+- 124,4,0,68,93,129,0,92,2,0,125,5,0,125,6,0,
+- 116,7,0,100,9,0,100,10,0,132,0,0,124,6,0,68,
+- 131,1,0,131,1,0,115,199,0,116,8,0,130,1,0,124,
+- 6,0,100,11,0,25,125,7,0,124,5,0,116,1,0,106,
+- 3,0,107,6,0,114,241,0,116,1,0,106,3,0,124,5,
+- 0,25,125,8,0,80,113,156,0,121,20,0,116,0,0,106,
+- 5,0,124,5,0,131,1,0,125,8,0,80,87,113,156,0,
+- 4,116,9,0,107,10,0,114,28,1,1,1,1,119,156,0,
+- 89,113,156,0,88,113,156,0,87,116,9,0,100,12,0,131,
+- 1,0,130,1,0,116,6,0,124,1,0,100,13,0,124,8,
+- 0,131,3,0,1,116,6,0,124,1,0,100,14,0,124,7,
+- 0,131,3,0,1,116,6,0,124,1,0,100,15,0,100,16,
+- 0,106,10,0,124,6,0,131,1,0,131,3,0,1,121,19,
+- 0,116,0,0,106,5,0,100,17,0,131,1,0,125,9,0,
+- 87,110,24,0,4,116,9,0,107,10,0,114,147,1,1,1,
+- 1,100,18,0,125,9,0,89,110,1,0,88,116,6,0,124,
+- 1,0,100,17,0,124,9,0,131,3,0,1,116,0,0,106,
+- 5,0,100,19,0,131,1,0,125,10,0,116,6,0,124,1,
+- 0,100,19,0,124,10,0,131,3,0,1,124,5,0,100,7,
+- 0,107,2,0,114,238,1,116,0,0,106,5,0,100,20,0,
+- 131,1,0,125,11,0,116,6,0,124,1,0,100,21,0,124,
+- 11,0,131,3,0,1,116,6,0,124,1,0,100,22,0,116,
+- 11,0,131,0,0,131,3,0,1,116,12,0,106,13,0,116,
+- 2,0,106,14,0,131,0,0,131,1,0,1,124,5,0,100,
+- 7,0,107,2,0,114,66,2,116,15,0,106,16,0,100,23,
+- 0,131,1,0,1,100,24,0,116,12,0,107,6,0,114,66,
+- 2,100,25,0,116,17,0,95,18,0,100,18,0,83,41,27,
+- 122,205,83,101,116,117,112,32,116,104,101,32,112,97,116,104,
+- 45,98,97,115,101,100,32,105,109,112,111,114,116,101,114,115,
+- 32,102,111,114,32,105,109,112,111,114,116,108,105,98,32,98,
+- 121,32,105,109,112,111,114,116,105,110,103,32,110,101,101,100,
+- 101,100,10,32,32,32,32,98,117,105,108,116,45,105,110,32,
+- 109,111,100,117,108,101,115,32,97,110,100,32,105,110,106,101,
+- 99,116,105,110,103,32,116,104,101,109,32,105,110,116,111,32,
+- 116,104,101,32,103,108,111,98,97,108,32,110,97,109,101,115,
+- 112,97,99,101,46,10,10,32,32,32,32,79,116,104,101,114,
+- 32,99,111,109,112,111,110,101,110,116,115,32,97,114,101,32,
+- 101,120,116,114,97,99,116,101,100,32,102,114,111,109,32,116,
+- 104,101,32,99,111,114,101,32,98,111,111,116,115,116,114,97,
+- 112,32,109,111,100,117,108,101,46,10,10,32,32,32,32,114,
+- 51,0,0,0,114,62,0,0,0,218,8,98,117,105,108,116,
+- 105,110,115,114,144,0,0,0,90,5,112,111,115,105,120,250,
+- 1,47,218,2,110,116,250,1,92,99,1,0,0,0,0,0,
+- 0,0,2,0,0,0,3,0,0,0,115,0,0,0,115,33,
+- 0,0,0,124,0,0,93,23,0,125,1,0,116,0,0,124,
+- 1,0,131,1,0,100,0,0,107,2,0,86,1,113,3,0,
+- 100,1,0,83,41,2,114,31,0,0,0,78,41,1,114,33,
+- 0,0,0,41,2,114,24,0,0,0,114,79,0,0,0,114,
+- 4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,228,
+- 0,0,0,102,5,0,0,115,2,0,0,0,6,0,122,25,
+- 95,115,101,116,117,112,46,60,108,111,99,97,108,115,62,46,
+- 60,103,101,110,101,120,112,114,62,114,61,0,0,0,122,30,
+- 105,109,112,111,114,116,108,105,98,32,114,101,113,117,105,114,
+- 101,115,32,112,111,115,105,120,32,111,114,32,110,116,114,3,
+- 0,0,0,114,27,0,0,0,114,23,0,0,0,114,32,0,
+- 0,0,90,7,95,116,104,114,101,97,100,78,90,8,95,119,
+- 101,97,107,114,101,102,90,6,119,105,110,114,101,103,114,171,
+- 0,0,0,114,7,0,0,0,122,4,46,112,121,119,122,6,
+- 95,100,46,112,121,100,84,41,4,114,51,0,0,0,114,62,
+- 0,0,0,114,27,1,0,0,114,144,0,0,0,41,19,114,
+- 123,0,0,0,114,8,0,0,0,114,147,0,0,0,114,240,
+- 0,0,0,114,114,0,0,0,90,18,95,98,117,105,108,116,
+- 105,110,95,102,114,111,109,95,110,97,109,101,114,118,0,0,
+- 0,218,3,97,108,108,218,14,65,115,115,101,114,116,105,111,
+- 110,69,114,114,111,114,114,109,0,0,0,114,28,0,0,0,
+- 114,13,0,0,0,114,230,0,0,0,114,151,0,0,0,114,
+- 26,1,0,0,114,86,0,0,0,114,165,0,0,0,114,170,
+- 0,0,0,114,174,0,0,0,41,12,218,17,95,98,111,111,
+- 116,115,116,114,97,112,95,109,111,100,117,108,101,90,11,115,
+- 101,108,102,95,109,111,100,117,108,101,90,12,98,117,105,108,
+- 116,105,110,95,110,97,109,101,90,14,98,117,105,108,116,105,
+- 110,95,109,111,100,117,108,101,90,10,111,115,95,100,101,116,
+- 97,105,108,115,90,10,98,117,105,108,116,105,110,95,111,115,
+- 114,23,0,0,0,114,27,0,0,0,90,9,111,115,95,109,
+- 111,100,117,108,101,90,13,116,104,114,101,97,100,95,109,111,
+- 100,117,108,101,90,14,119,101,97,107,114,101,102,95,109,111,
+- 100,117,108,101,90,13,119,105,110,114,101,103,95,109,111,100,
+- 117,108,101,114,4,0,0,0,114,4,0,0,0,114,6,0,
+- 0,0,218,6,95,115,101,116,117,112,77,5,0,0,115,82,
+- 0,0,0,0,8,6,1,9,1,9,3,13,1,13,1,15,
+- 1,18,2,13,1,20,3,33,1,19,2,31,1,10,1,15,
+- 1,13,1,4,2,3,1,15,1,5,1,13,1,12,2,12,
+- 1,16,1,16,1,25,3,3,1,19,1,13,2,11,1,16,
+- 3,15,1,16,3,12,1,15,1,16,3,19,1,19,1,12,
+- 1,13,1,12,1,114,34,1,0,0,99,1,0,0,0,0,
+- 0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,
+- 116,0,0,0,116,0,0,124,0,0,131,1,0,1,116,1,
+- 0,131,0,0,125,1,0,116,2,0,106,3,0,106,4,0,
+- 116,5,0,106,6,0,124,1,0,140,0,0,103,1,0,131,
+- 1,0,1,116,7,0,106,8,0,100,1,0,107,2,0,114,
+- 78,0,116,2,0,106,9,0,106,10,0,116,11,0,131,1,
+- 0,1,116,2,0,106,9,0,106,10,0,116,12,0,131,1,
+- 0,1,116,5,0,124,0,0,95,5,0,116,13,0,124,0,
+- 0,95,13,0,100,2,0,83,41,3,122,41,73,110,115,116,
+- 97,108,108,32,116,104,101,32,112,97,116,104,45,98,97,115,
+- 101,100,32,105,109,112,111,114,116,32,99,111,109,112,111,110,
+- 101,110,116,115,46,114,29,1,0,0,78,41,14,114,34,1,
+- 0,0,114,163,0,0,0,114,8,0,0,0,114,255,0,0,
+- 0,114,151,0,0,0,114,7,1,0,0,114,20,1,0,0,
+- 114,3,0,0,0,114,114,0,0,0,218,9,109,101,116,97,
+- 95,112,97,116,104,114,165,0,0,0,114,170,0,0,0,114,
+- 250,0,0,0,114,219,0,0,0,41,2,114,33,1,0,0,
+- 90,17,115,117,112,112,111,114,116,101,100,95,108,111,97,100,
+- 101,114,115,114,4,0,0,0,114,4,0,0,0,114,6,0,
+- 0,0,218,8,95,105,110,115,116,97,108,108,145,5,0,0,
+- 115,16,0,0,0,0,2,10,1,9,1,28,1,15,1,16,
+- 1,16,4,9,1,114,36,1,0,0,41,1,114,0,0,0,
+- 0,41,2,114,1,0,0,0,114,2,0,0,0,41,59,114,
+- 116,0,0,0,114,12,0,0,0,90,37,95,67,65,83,69,
+- 95,73,78,83,69,78,83,73,84,73,86,69,95,80,76,65,
+- 84,70,79,82,77,83,95,66,89,84,69,83,95,75,69,89,
+- 114,11,0,0,0,114,13,0,0,0,114,19,0,0,0,114,
+- 21,0,0,0,114,30,0,0,0,114,40,0,0,0,114,41,
+- 0,0,0,114,45,0,0,0,114,46,0,0,0,114,48,0,
+- 0,0,114,57,0,0,0,218,4,116,121,112,101,218,8,95,
+- 95,99,111,100,101,95,95,114,146,0,0,0,114,17,0,0,
+- 0,114,137,0,0,0,114,16,0,0,0,114,20,0,0,0,
+- 90,17,95,82,65,87,95,77,65,71,73,67,95,78,85,77,
+- 66,69,82,114,75,0,0,0,114,74,0,0,0,114,86,0,
+- 0,0,114,76,0,0,0,90,23,68,69,66,85,71,95,66,
+- 89,84,69,67,79,68,69,95,83,85,70,70,73,88,69,83,
+- 90,27,79,80,84,73,77,73,90,69,68,95,66,89,84,69,
+- 67,79,68,69,95,83,85,70,70,73,88,69,83,114,81,0,
+- 0,0,114,87,0,0,0,114,93,0,0,0,114,97,0,0,
+- 0,114,99,0,0,0,114,107,0,0,0,114,125,0,0,0,
+- 114,132,0,0,0,114,143,0,0,0,114,149,0,0,0,114,
+- 152,0,0,0,114,157,0,0,0,218,6,111,98,106,101,99,
+- 116,114,164,0,0,0,114,169,0,0,0,114,170,0,0,0,
+- 114,185,0,0,0,114,195,0,0,0,114,211,0,0,0,114,
+- 219,0,0,0,114,224,0,0,0,114,230,0,0,0,114,225,
+- 0,0,0,114,231,0,0,0,114,248,0,0,0,114,250,0,
+- 0,0,114,7,1,0,0,114,25,1,0,0,114,163,0,0,
+- 0,114,34,1,0,0,114,36,1,0,0,114,4,0,0,0,
+- 114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,218,
+- 8,60,109,111,100,117,108,101,62,8,0,0,0,115,106,0,
+- 0,0,6,16,6,1,6,1,3,1,7,3,12,17,12,5,
+- 12,5,12,6,12,12,12,10,12,9,12,5,12,7,15,22,
+- 15,114,22,1,18,2,6,1,6,2,9,2,9,2,10,2,
+- 21,44,12,33,12,19,12,12,12,12,18,8,12,28,12,17,
+- 21,55,21,12,18,10,12,14,9,3,12,1,15,65,19,64,
+- 19,28,22,110,19,41,25,43,25,16,6,3,25,53,19,57,
+- 19,41,19,134,19,146,15,23,12,11,12,68,
++ 218,8,60,109,111,100,117,108,101,62,8,0,0,0,115,114,
++ 0,0,0,6,16,6,1,6,1,3,1,7,3,12,17,12,
++ 5,12,5,12,6,12,12,12,10,12,9,12,5,12,7,15,
++ 22,15,114,22,1,18,19,12,1,6,1,12,1,22,2,6,
++ 1,6,2,9,2,9,2,10,2,21,44,12,33,12,19,12,
++ 12,12,12,18,8,12,28,12,17,21,57,21,12,18,10,12,
++ 14,9,3,12,1,15,65,19,64,19,28,22,110,19,41,25,
++ 43,25,16,6,3,25,53,19,57,19,41,19,134,19,146,15,
++ 23,12,11,12,68,
+ };
+diff --git a/Python/pythonrun.c b/Python/pythonrun.c
+index 90cb2de..dd41a3a 100644
+--- a/Python/pythonrun.c
++++ b/Python/pythonrun.c
+@@ -259,6 +259,21 @@ PyRun_InteractiveOneFlags(FILE *fp, const char *filename_str, PyCompilerFlags *f
+ }
+
+
++/* Issue #29537: handle issue27286 bytecode incompatibility
++ * See Lib/importlib/_bootstrap_external.py for general discussion
++ */
++extern PY_UINT32_T _Py_BACKCOMPAT_HALF_MAGIC;
++static int
++_check_half_magic(unsigned int read_value, unsigned int halfmagic) {
++ return (read_value == halfmagic || read_value == _Py_BACKCOMPAT_HALF_MAGIC);
++}
++
++extern PY_UINT32_T _Py_BACKCOMPAT_MAGIC_NUMBER;
++static int
++_check_magic(long read_value, long magic) {
++ return (read_value == magic || read_value == _Py_BACKCOMPAT_MAGIC_NUMBER);
++}
++
+ /* Check whether a file maybe a pyc file: Look at the extension,
+ the file type, and, if we may close it, at the first few bytes. */
+
+@@ -290,7 +305,7 @@ maybe_pyc_file(FILE *fp, const char* filename, const char* ext, int closeit)
+ int ispyc = 0;
+ if (ftell(fp) == 0) {
+ if (fread(buf, 1, 2, fp) == 2 &&
+- ((unsigned int)buf[1]<<8 | buf[0]) == halfmagic)
++ _check_half_magic(((unsigned int)buf[1]<<8 | buf[0]), halfmagic))
+ ispyc = 1;
+ rewind(fp);
+ }
+@@ -988,7 +1003,7 @@ run_pyc_file(FILE *fp, const char *filename, PyObject *globals,
+ long PyImport_GetMagicNumber(void);
+
+ magic = PyMarshal_ReadLongFromFile(fp);
+- if (magic != PyImport_GetMagicNumber()) {
++ if (!_check_magic(magic, PyImport_GetMagicNumber())) {
+ if (!PyErr_Occurred())
+ PyErr_SetString(PyExc_RuntimeError,
+ "Bad magic number in .pyc file");
+--
+2.9.3
+
diff --git a/00267-install-pip-in-a-venv-with-system-site-packages.patch b/00267-install-pip-in-a-venv-with-system-site-packages.patch
new file mode 100644
index 0000000..60039f8
--- /dev/null
+++ b/00267-install-pip-in-a-venv-with-system-site-packages.patch
@@ -0,0 +1,78 @@
+diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py
+index 3999d1f..c1e6566 100644
+--- a/Lib/test/test_venv.py
++++ b/Lib/test/test_venv.py
+@@ -328,13 +328,7 @@ def test_devnull_exists_and_is_empty(self):
+ with open(os.devnull, "rb") as f:
+ self.assertEqual(f.read(), b"")
+
+- # Requesting pip fails without SSL (http://bugs.python.org/issue19744)
+- @unittest.skipIf(ssl is None, ensurepip._MISSING_SSL_MESSAGE)
+- @unittest.skipUnless(threading, 'some dependencies of pip import threading'
+- ' module unconditionally')
+- # Issue #26610: pip/pep425tags.py requires ctypes
+- @unittest.skipUnless(ctypes, 'pip requires ctypes')
+- def test_with_pip(self):
++ def do_test_with_pip(self, system_site_packages):
+ rmtree(self.env_dir)
+ with EnvironmentVarGuard() as envvars:
+ # pip's cross-version compatibility may trigger deprecation
+@@ -368,6 +362,7 @@ def test_with_pip(self):
+ # config in place to ensure we ignore it
+ try:
+ self.run_with_capture(venv.create, self.env_dir,
++ system_site_packages=system_site_packages,
+ with_pip=True)
+ except subprocess.CalledProcessError as exc:
+ # The output this produces can be a little hard to read,
+@@ -417,9 +412,21 @@ def test_with_pip(self):
+ out = out.decode("latin-1") # Force to text, prevent decoding errors
+ self.assertIn("Successfully uninstalled pip", out)
+ self.assertIn("Successfully uninstalled setuptools", out)
+- # Check pip is now gone from the virtual environment
+- self.assert_pip_not_installed()
++ # Check pip is now gone from the virtual environment. This only
++ # applies in the system_site_packages=False case, because in the
++ # other case, pip may still be available in the system site-packages
++ if not system_site_packages:
++ self.assert_pip_not_installed()
+
++ # Requesting pip fails without SSL (http://bugs.python.org/issue19744)
++ @unittest.skipIf(ssl is None, ensurepip._MISSING_SSL_MESSAGE)
++ @unittest.skipUnless(threading, 'some dependencies of pip import threading'
++ ' module unconditionally')
++ # Issue #26610: pip/pep425tags.py requires ctypes
++ @unittest.skipUnless(ctypes, 'pip requires ctypes')
++ def test_with_pip(self):
++ self.do_test_with_pip(False)
++ self.do_test_with_pip(True)
+
+ if __name__ == "__main__":
+ unittest.main()
+diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py
+index 74245ab..fa03262 100644
+--- a/Lib/venv/__init__.py
++++ b/Lib/venv/__init__.py
+@@ -77,6 +77,10 @@ def create(self, env_dir):
+ """
+ env_dir = os.path.abspath(env_dir)
+ context = self.ensure_directories(env_dir)
++ # See issue 24875. We need system_site_packages to be False
++ # until after pip is installed.
++ true_system_site_packages = self.system_site_packages
++ self.system_site_packages = False
+ self.create_configuration(context)
+ self.setup_python(context)
+ if self.with_pip:
+@@ -84,6 +88,11 @@ def create(self, env_dir):
+ if not self.upgrade:
+ self.setup_scripts(context)
+ self.post_setup(context)
++ if true_system_site_packages:
++ # We had set it to False before, now
++ # restore it and rewrite the configuration
++ self.system_site_packages = True
++ self.create_configuration(context)
+
+ def clear_directory(self, path):
+ for fn in os.listdir(path):
diff --git a/00269-fix-multiple-compilations-issue-with-pgo-builds.patch b/00269-fix-multiple-compilations-issue-with-pgo-builds.patch
new file mode 100644
index 0000000..a911feb
--- /dev/null
+++ b/00269-fix-multiple-compilations-issue-with-pgo-builds.patch
@@ -0,0 +1,67 @@
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 0e1d0af..42ab191 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -989,7 +989,7 @@ TESTTIMEOUT= 1200
+
+ # Run a basic set of regression tests.
+ # This excludes some tests that are particularly resource-intensive.
+-test: all platform
++test: @DEF_MAKE_RULE@ platform
+ $(TESTRUNNER) $(TESTOPTS)
+
+ # Run the full test suite twice - once without .pyc files, and once with.
+@@ -999,7 +999,7 @@ test: all platform
+ # the bytecode read from a .pyc file had the bug, sometimes the directly
+ # generated bytecode. This is sometimes a very shy bug needing a lot of
+ # sample data.
+-testall: all platform
++testall: @DEF_MAKE_RULE@ platform
+ -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
+ $(TESTPYTHON) -E $(srcdir)/Lib/compileall.py
+ -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
+@@ -1008,7 +1008,7 @@ testall: all platform
+
+ # Run the test suite for both architectures in a Universal build on OSX.
+ # Must be run on an Intel box.
+-testuniversal: all platform
++testuniversal: @DEF_MAKE_RULE@ platform
+ if [ `arch` != 'i386' ];then \
+ echo "This can only be used on OSX/i386" ;\
+ exit 1 ;\
+@@ -1031,7 +1031,7 @@ QUICKTESTOPTS= $(TESTOPTS) -x test_subprocess test_io test_lib2to3 \
+ test_multiprocessing_forkserver \
+ test_mailbox test_socket test_poll \
+ test_select test_zipfile test_concurrent_futures
+-quicktest: all platform
++quicktest: @DEF_MAKE_RULE@ platform
+ $(TESTRUNNER) $(QUICKTESTOPTS)
+
+
+@@ -1368,7 +1368,7 @@ LIBPL= $(LIBDEST)/config-$(LDVERSION)-$(MULTIARCH)
+ # pkgconfig directory
+ LIBPC= $(LIBDIR)/pkgconfig
+
+-libainstall: all python-config
++libainstall: @DEF_MAKE_RULE@ python-config
+ @for i in $(LIBDIR) $(LIBPL) $(LIBPC); \
+ do \
+ if test ! -d $(DESTDIR)$$i; then \
+@@ -1616,7 +1616,7 @@ distclean: clobber
+ -exec rm -f {} ';'
+
+ # Check for smelly exported symbols (not starting with Py/_Py)
+-smelly: all
++smelly: @DEF_MAKE_RULE@
+ nm -p $(LIBRARY) | \
+ sed -n "/ [TDB] /s/.* //p" | grep -v "^_*Py" | sort -u; \
+
+@@ -1653,7 +1653,7 @@ funny:
+ -o -print
+
+ # Perform some verification checks on any modified files.
+-patchcheck: all
++patchcheck: @DEF_MAKE_RULE@
+ $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/patchcheck.py
+
+ # Dependencies
diff --git a/macros.pybytecompile3.5 b/macros.pybytecompile3.5
index 96d1826..3968c6e 100644
--- a/macros.pybytecompile3.5
+++ b/macros.pybytecompile3.5
@@ -6,5 +6,5 @@
%py_byte_compile()\
python_binary="%1"\
bytecode_compilation_path="%2"\
-find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]], optimize=opt) for opt in range(2) for f in sys.argv[1:]]' || :\
+find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2], optimize=opt) for opt in range(2) for f in sys.argv[1:]]' || :\
%{nil}
diff --git a/python35.spec b/python35.spec
index 5a23ac9..246cf1d 100644
--- a/python35.spec
+++ b/python35.spec
@@ -97,8 +97,8 @@
# ==================
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
-Version: %{pybasever}.2
-Release: 9%{?dist}
+Version: %{pybasever}.3
+Release: 1%{?dist}
License: Python
Group: Development/Languages
@@ -326,14 +326,6 @@ Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch
# Not appropriate for upstream, Fedora-specific naming
Patch180: 00180-python-add-support-for-ppc64p7.patch
-# 00184 #
-# Fix for https://bugzilla.redhat.com/show_bug.cgi?id=979696
-# Fixes build of ctypes against libffi with multilib wrapper
-# Python recognizes ffi.h only if it contains "#define LIBFFI_H",
-# but the wrapper doesn't contain that, which makes the build fail
-# We patch this by also accepting "#define ffi_wrapper_h"
-Patch184: 00184-ctypes-should-build-with-libffi-multilib-wrapper.patch
-
# 00186 #
# Fix for https://bugzilla.redhat.com/show_bug.cgi?id=1023607
# Previously, this fixed a problem where some *.py files were not being
@@ -368,20 +360,6 @@ Patch205: 00205-make-libpl-respect-lib64.patch
# by debian but fedora infra uses only eabi without hf
Patch206: 00206-remove-hf-from-arm-triplet.patch
-# 00209 #
-# Fix test breakage with version 2.2.0 of Expat
-# rhbz#1353918: https://bugzilla.redhat.com/show_bug.cgi?id=1353918
-# FIXED UPSTREAM: http://bugs.python.org/issue27369
-Patch209: 00209-fix-test-pyexpat-failure.patch
-
-# 00242 #
-# HTTPoxy attack (CVE-2016-1000110)
-# https://httpoxy.org/
-# FIXED UPSTREAM: http://bugs.python.org/issue27568
-# Based on a patch by Rmi Rampin
-# Resolves: rhbz#1359177
-Patch242: 00242-CVE-2016-1000110-httpoxy.patch
-
# 00243 #
# Fix the triplet used on 64-bit MIPS
# rhbz#1322526: https://bugzilla.redhat.com/show_bug.cgi?id=1322526
@@ -389,19 +367,33 @@ Patch242: 00242-CVE-2016-1000110-httpoxy.patch
# Fedora needs the default mips64-linux-gnu
Patch243: 00243-fix-mips64-triplet.patch
-# 00247 #
-# Port ssl and hashlib modules to OpenSSL 1.1.0.
-# As of F26, OpenSSL is rebased to 1.1.0, so in order for python
-# to not FTBFS we need to backport this patch from 3.5.3
-# FIXED UPSTREAM: https://bugs.python.org/issue26470
-Patch247: 00247-port-ssl-and-hashlib-to-OpenSSL-1.1.0.patch
-
# 00250 #
# After glibc-2.24.90, Python 3 failed to start on EL7 kernel
# rhbz#1410175: https://bugzilla.redhat.com/show_bug.cgi?id=1410175
# http://bugs.python.org/issue29157
Patch250: 00250-getentropy.patch
+# 00259 #
+# Tolerate legacy invalid bytecode
+# This patch restores the ability to import legacy bytecode generated
+# by 3.5.0, 3.5.1 or 3.5.2, and modifies the eval loop to
+# avoid any harmful consequences from the potentially malformed legacy
+# bytecode.
+# Original import patch by Petr Viktorin, eval loop patch by Serhiy Storchaka,
+# and tests and integration by Nick Coghlan.
+Patch259: 00259-tolerate-legacy-invalid-bytecode.patch
+
+# 00267 #
+# Make pip installable inside a new venv when using the --system-site-packages flag
+# FIXED UPSTREAM: https://bugs.python.org/issue24875
+Patch267: 00267-install-pip-in-a-venv-with-system-site-packages.patch
+
+# 00269 #
+# Fix python's recompilation with common build commands when using
+# profile guided optimizations.
+# Fixed upstream: http://bugs.python.org/issue29243
+Patch269: 00269-fix-multiple-compilations-issue-with-pgo-builds.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -508,16 +500,15 @@ rm -r Modules/zlib || exit 1
%patch170 -p0
%patch178 -p1
%patch180 -p1
-%patch184 -p1
%patch186 -p1
%patch188 -p1
%patch205 -p1
%patch206 -p1
-%patch209 -p1
-%patch242 -p1
%patch243 -p1
-%patch247 -p1
%patch250 -p1
+%patch259 -p1
+%patch267 -p1
+%patch269 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@@ -616,7 +607,11 @@ BuildPython debug \
BuildPython optimized \
python \
python%{pybasever} \
- "--without-ensurepip" \
+%ifarch %{ix86} x86_64
+ "--without-ensurepip --enable-optimizations" \
+%else
+ "--without-ensurepip" \
+%endif
true
# ======================================================
@@ -1044,6 +1039,13 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu May 11 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.3-1
+- Rebased to version 3.5.3 from F25
+- Enable profile guided optimizations for x86_64 and i686 architectures
+- Make pip installable in a new venv when using the --system-site-packages flag
+- Fix syntax error in %%py_byte_compile macro
+- Add patch 259 to work around magic number bump in Python 3.5.3
+
* Sat Feb 11 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.2-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
diff --git a/sources b/sources
index aeb1966..0847be0 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-8906efbacfcdc7c3c9198aeefafd159e Python-3.5.2.tar.xz
+SHA512 (Python-3.5.3.tar.xz) = bbcc20e315c63dbc8901d7e7bfa29d4dbdad9335720757d8d679730319fd1d9fcfdb55cf62d620c9b052134170f162c28d653a8af60923185b8932524d827864
commit 0221a74981715c16a086dd1070835427760f2e9a
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Feb 11 11:07:17 2017 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
diff --git a/python35.spec b/python35.spec
index 8dd6489..5a23ac9 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.2
-Release: 8%{?dist}
+Release: 9%{?dist}
License: Python
Group: Development/Languages
@@ -1044,6 +1044,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sat Feb 11 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.2-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
* Thu Jan 12 2017 Igor Gnatenko <ignatenko(a)redhat.com> - 3.5.2-8
- Rebuild for readline 7.x
commit d0f50ba59c938ef70945ff852eecd98d8244cad6
Author: Igor Gnatenko <ignatenko(a)redhat.com>
Date: Thu Jan 12 17:30:38 2017 +0100
Rebuild for readline 7.x
Signed-off-by: Igor Gnatenko <ignatenko(a)redhat.com>
diff --git a/python35.spec b/python35.spec
index 3832ec2..8dd6489 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.2
-Release: 7%{?dist}
+Release: 8%{?dist}
License: Python
Group: Development/Languages
@@ -1044,6 +1044,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Jan 12 2017 Igor Gnatenko <ignatenko(a)redhat.com> - 3.5.2-8
+- Rebuild for readline 7.x
+
* Tue Jan 10 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-7
- Require glibc >= 2.24.90-26 (rhbz#1410644)
commit d5a4946f6e9b3c84a404bc2b3944393dc2eae00b
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Thu Jan 12 11:16:34 2017 +0100
Require arch specific glibc
diff --git a/python35.spec b/python35.spec
index 0b00297..3832ec2 100644
--- a/python35.spec
+++ b/python35.spec
@@ -159,7 +159,7 @@ BuildRequires: zlib-devel
Requires: expat >= 2.1.0
# Python 3 built with glibc >= 2.24.90-26 needs to require it (rhbz#1410644).
-Requires: glibc >= 2.24.90-26
+Requires: glibc%{?_isa} >= 2.24.90-26
BuildRequires: python-rpm-macros
commit 3f83550d80bb761e722e1890c0e983792044d6fe
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Tue Jan 10 17:10:51 2017 +0100
Require glibc >= 2.24.90-26(rhbz#1410644)
diff --git a/python35.spec b/python35.spec
index d6d2bf7..0b00297 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.2
-Release: 6%{?dist}
+Release: 7%{?dist}
License: Python
Group: Development/Languages
@@ -157,6 +157,10 @@ BuildRequires: xz-devel
BuildRequires: zlib-devel
Requires: expat >= 2.1.0
+
+# Python 3 built with glibc >= 2.24.90-26 needs to require it (rhbz#1410644).
+Requires: glibc >= 2.24.90-26
+
BuildRequires: python-rpm-macros
# =======================
@@ -1040,6 +1044,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Jan 10 2017 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.2-7
+- Require glibc >= 2.24.90-26 (rhbz#1410644)
+
* Thu Jan 05 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.5.2-6
- Don't blow up on EL7 kernel (random generator) (rhbz#1410175, rhbz#1410187)
commit 3bc162cdb4775acfdefa2877d3d7bc068f3de046
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Jan 6 23:27:49 2017 +0100
Rebase 00250-getentropy.patch for 3.5
diff --git a/00250-getentropy.patch b/00250-getentropy.patch
index 6d0025a..4ec2bec 100644
--- a/00250-getentropy.patch
+++ b/00250-getentropy.patch
@@ -1,7 +1,8 @@
-diff -r ee1390c9b585 Python/random.c
---- a/Python/random.c Wed Jan 04 12:02:30 2017 +0100
-+++ b/Python/random.c Wed Jan 04 18:32:21 2017 +0100
-@@ -77,45 +77,8 @@ win32_urandom(unsigned char *buffer, Py_
+diff --git a/Python/random.c b/Python/random.c
+index 07dacfe..a4f7f40 100644
+--- a/Python/random.c
++++ b/Python/random.c
+@@ -75,46 +75,7 @@ win32_urandom(unsigned char *buffer, Py_ssize_t size, int raise)
return 0;
}
@@ -13,29 +14,29 @@ diff -r ee1390c9b585 Python/random.c
-/* Fill buffer with size pseudo-random bytes generated by getentropy().
- Return 0 on success, or raise an exception and return -1 on error.
-
-- If raise is zero, don't raise an exception on error. */
+- If fatal is nonzero, call Py_FatalError() instead of raising an exception
+- on error. */
-static int
--py_getentropy(char *buffer, Py_ssize_t size, int raise)
+-py_getentropy(unsigned char *buffer, Py_ssize_t size, int fatal)
-{
- while (size > 0) {
- Py_ssize_t len = Py_MIN(size, 256);
- int res;
-+#else /* !MS_WINDOWS */
-
-- if (raise) {
+-
+- if (!fatal) {
- Py_BEGIN_ALLOW_THREADS
- res = getentropy(buffer, len);
- Py_END_ALLOW_THREADS
-- }
-- else {
-- res = getentropy(buffer, len);
-- }
-
-- if (res < 0) {
-- if (raise) {
+- if (res < 0) {
- PyErr_SetFromErrno(PyExc_OSError);
+- return -1;
- }
-- return -1;
+- }
+- else {
+- res = getentropy(buffer, len);
+- if (res < 0)
+- Py_FatalError("getentropy() failed");
- }
-
- buffer += len;
@@ -45,10 +46,11 @@ diff -r ee1390c9b585 Python/random.c
-}
-
-#else
++#else /* !MS_WINDOWS */
#if defined(HAVE_GETRANDOM) || defined(HAVE_GETRANDOM_SYSCALL)
#define PY_GETRANDOM 1
-@@ -217,6 +180,59 @@ py_getrandom(void *buffer, Py_ssize_t si
+@@ -209,6 +170,59 @@ py_getrandom(void *buffer, Py_ssize_t size, int raise)
}
return 1;
}
@@ -108,40 +110,35 @@ diff -r ee1390c9b585 Python/random.c
#endif
static struct {
-@@ -236,7 +252,7 @@ dev_urandom(char *buffer, Py_ssize_t siz
- {
+@@ -264,7 +278,7 @@ dev_urandom_python(char *buffer, Py_ssize_t size)
int fd;
Py_ssize_t n;
+ struct _Py_stat_struct st;
-#ifdef PY_GETRANDOM
+#if defined(PY_GETRANDOM) || defined(PY_GETENTROPY)
int res;
#endif
-@@ -244,17 +260,20 @@ dev_urandom(char *buffer, Py_ssize_t siz
+@@ -273,12 +287,16 @@ dev_urandom_python(char *buffer, Py_ssize_t size)
#ifdef PY_GETRANDOM
- res = py_getrandom(buffer, size, blocking, raise);
+ res = py_getrandom(buffer, size, 1);
+#elif defined(PY_GETENTROPY)
-+ res = py_getentropy(buffer, size, raise);
++ res = py_getentropy(buffer, size, 1);
+#endif
+#if defined(PY_GETRANDOM) || defined(PY_GETENTROPY)
- if (res < 0) {
+ if (res < 0)
return -1;
- }
- if (res == 1) {
+ if (res == 1)
return 0;
- }
-- /* getrandom() failed with ENOSYS or EPERM,
-- fall back on reading /dev/urandom */
+- /* getrandom() is not supported by the running kernel, fall back
+- * on reading /dev/urandom */
+ /* function failed with ENOSYS or EPERM, fall back on reading
+ from /dev/urandom */
#endif
--
- if (raise) {
- struct _Py_stat_struct st;
-
-@@ -349,8 +368,8 @@ dev_urandom_close(void)
+ if (urandom_cache.fd >= 0) {
+@@ -349,8 +367,8 @@ dev_urandom_close(void)
urandom_cache.fd = -1;
}
}
@@ -151,16 +148,16 @@ diff -r ee1390c9b585 Python/random.c
/* Fill buffer with pseudo-random bytes generated by a linear congruent
generator (LCG):
-@@ -395,8 +414,6 @@ pyurandom(void *buffer, Py_ssize_t size,
+@@ -391,8 +409,6 @@ _PyOS_URandom(void *buffer, Py_ssize_t size)
#ifdef MS_WINDOWS
- return win32_urandom((unsigned char *)buffer, size, raise);
+ return win32_urandom((unsigned char *)buffer, size, 1);
-#elif defined(PY_GETENTROPY)
-- return py_getentropy(buffer, size, raise);
+- return py_getentropy(buffer, size, 0);
#else
- return dev_urandom(buffer, size, blocking, raise);
+ return dev_urandom_python((char*)buffer, size);
#endif
-@@ -491,8 +508,6 @@ void
+@@ -454,8 +470,6 @@ _PyRandom_Fini(void)
CryptReleaseContext(hCryptProv, 0);
hCryptProv = 0;
}
commit 3ab335d62c387766c9bbcb743da6afea842828ba
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Jan 6 22:17:13 2017 +0100
Don't blow up on EL7 kernel (random generator) (rhbz#1410175, rhbz#1410187)
diff --git a/00250-getentropy.patch b/00250-getentropy.patch
new file mode 100644
index 0000000..6d0025a
--- /dev/null
+++ b/00250-getentropy.patch
@@ -0,0 +1,171 @@
+diff -r ee1390c9b585 Python/random.c
+--- a/Python/random.c Wed Jan 04 12:02:30 2017 +0100
++++ b/Python/random.c Wed Jan 04 18:32:21 2017 +0100
+@@ -77,45 +77,8 @@ win32_urandom(unsigned char *buffer, Py_
+ return 0;
+ }
+
+-/* Issue #25003: Don't use getentropy() on Solaris (available since
+- * Solaris 11.3), it is blocking whereas os.urandom() should not block. */
+-#elif defined(HAVE_GETENTROPY) && !defined(sun)
+-#define PY_GETENTROPY 1
+-
+-/* Fill buffer with size pseudo-random bytes generated by getentropy().
+- Return 0 on success, or raise an exception and return -1 on error.
+-
+- If raise is zero, don't raise an exception on error. */
+-static int
+-py_getentropy(char *buffer, Py_ssize_t size, int raise)
+-{
+- while (size > 0) {
+- Py_ssize_t len = Py_MIN(size, 256);
+- int res;
++#else /* !MS_WINDOWS */
+
+- if (raise) {
+- Py_BEGIN_ALLOW_THREADS
+- res = getentropy(buffer, len);
+- Py_END_ALLOW_THREADS
+- }
+- else {
+- res = getentropy(buffer, len);
+- }
+-
+- if (res < 0) {
+- if (raise) {
+- PyErr_SetFromErrno(PyExc_OSError);
+- }
+- return -1;
+- }
+-
+- buffer += len;
+- size -= len;
+- }
+- return 0;
+-}
+-
+-#else
+
+ #if defined(HAVE_GETRANDOM) || defined(HAVE_GETRANDOM_SYSCALL)
+ #define PY_GETRANDOM 1
+@@ -217,6 +180,59 @@ py_getrandom(void *buffer, Py_ssize_t si
+ }
+ return 1;
+ }
++
++/* Issue #25003: Don't use getentropy() on Solaris (available since
++ * Solaris 11.3), it is blocking whereas os.urandom() should not block. */
++#elif defined(HAVE_GETENTROPY) && !defined(sun)
++#define PY_GETENTROPY 1
++
++/* Fill buffer with size pseudo-random bytes generated by getentropy().
++ Return 1 on success, or raise an exception and return -1 on error.
++
++ If raise is zero, don't raise an exception on error. */
++static int
++py_getentropy(char *buffer, Py_ssize_t size, int raise)
++{
++ /* Is getentropy() supported by the running kernel? Set to 0 if
++ getentropy() failed with ENOSYS. */
++ static int getentropy_works = 1;
++
++ if (!getentropy_works) {
++ return 0;
++ }
++
++ while (size > 0) {
++ Py_ssize_t len = Py_MIN(size, 256);
++ int res;
++
++ if (raise) {
++ Py_BEGIN_ALLOW_THREADS
++ res = getentropy(buffer, len);
++ Py_END_ALLOW_THREADS
++ }
++ else {
++ res = getentropy(buffer, len);
++ }
++
++ if (res < 0) {
++ /* ENOSYS: the inner syscall is not supported by the running
++ kernel. */
++ if (errno == ENOSYS) {
++ getentropy_works = 0;
++ return 0;
++ }
++
++ if (raise) {
++ PyErr_SetFromErrno(PyExc_OSError);
++ }
++ return -1;
++ }
++
++ buffer += len;
++ size -= len;
++ }
++ return 1;
++}
+ #endif
+
+ static struct {
+@@ -236,7 +252,7 @@ dev_urandom(char *buffer, Py_ssize_t siz
+ {
+ int fd;
+ Py_ssize_t n;
+-#ifdef PY_GETRANDOM
++#if defined(PY_GETRANDOM) || defined(PY_GETENTROPY)
+ int res;
+ #endif
+
+@@ -244,17 +260,20 @@ dev_urandom(char *buffer, Py_ssize_t siz
+
+ #ifdef PY_GETRANDOM
+ res = py_getrandom(buffer, size, blocking, raise);
++#elif defined(PY_GETENTROPY)
++ res = py_getentropy(buffer, size, raise);
++#endif
++#if defined(PY_GETRANDOM) || defined(PY_GETENTROPY)
+ if (res < 0) {
+ return -1;
+ }
+ if (res == 1) {
+ return 0;
+ }
+- /* getrandom() failed with ENOSYS or EPERM,
+- fall back on reading /dev/urandom */
++ /* function failed with ENOSYS or EPERM, fall back on reading
++ from /dev/urandom */
+ #endif
+
+-
+ if (raise) {
+ struct _Py_stat_struct st;
+
+@@ -349,8 +368,8 @@ dev_urandom_close(void)
+ urandom_cache.fd = -1;
+ }
+ }
++#endif /* !MS_WINDOWS */
+
+-#endif
+
+ /* Fill buffer with pseudo-random bytes generated by a linear congruent
+ generator (LCG):
+@@ -395,8 +414,6 @@ pyurandom(void *buffer, Py_ssize_t size,
+
+ #ifdef MS_WINDOWS
+ return win32_urandom((unsigned char *)buffer, size, raise);
+-#elif defined(PY_GETENTROPY)
+- return py_getentropy(buffer, size, raise);
+ #else
+ return dev_urandom(buffer, size, blocking, raise);
+ #endif
+@@ -491,8 +508,6 @@ void
+ CryptReleaseContext(hCryptProv, 0);
+ hCryptProv = 0;
+ }
+-#elif defined(PY_GETENTROPY)
+- /* nothing to clean */
+ #else
+ dev_urandom_close();
+ #endif
diff --git a/python35.spec b/python35.spec
index 7698f53..d6d2bf7 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.2
-Release: 5%{?dist}
+Release: 6%{?dist}
License: Python
Group: Development/Languages
@@ -392,6 +392,12 @@ Patch243: 00243-fix-mips64-triplet.patch
# FIXED UPSTREAM: https://bugs.python.org/issue26470
Patch247: 00247-port-ssl-and-hashlib-to-OpenSSL-1.1.0.patch
+# 00250 #
+# After glibc-2.24.90, Python 3 failed to start on EL7 kernel
+# rhbz#1410175: https://bugzilla.redhat.com/show_bug.cgi?id=1410175
+# http://bugs.python.org/issue29157
+Patch250: 00250-getentropy.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -507,6 +513,7 @@ rm -r Modules/zlib || exit 1
%patch242 -p1
%patch243 -p1
%patch247 -p1
+%patch250 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@@ -1033,6 +1040,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Thu Jan 05 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.5.2-6
+- Don't blow up on EL7 kernel (random generator) (rhbz#1410175, rhbz#1410187)
+
* Sun Jan 01 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.5.2-5
- Update description
commit bb42e731b397869521d3a25430d4b25c53aaa85e
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sun Jan 1 15:11:48 2017 +0100
Update description
diff --git a/python35.spec b/python35.spec
index 19f32c1..7698f53 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.2
-Release: 4%{?dist}
+Release: 5%{?dist}
License: Python
Group: Development/Languages
@@ -427,10 +427,11 @@ Provides: bundled(python3-setuptools) = 20.10.1
%description
Python %{pybasever} package for developers.
-This package exists to allow developers to test their code against an newer
+This package exists to allow developers to test their code against an older
version of Python. This is not a full Python stack and if you wish to run
-your applications with Python %{pybasever}, update your Fedora to a newer
-version.
+your applications with Python %{pybasever}, see other distributions
+that support it, such as CentOS or RHEL with Software Collections
+or older Fedora releases.
# ======================================================
@@ -1032,6 +1033,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sun Jan 01 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.5.2-5
+- Update description
+
* Sun Jan 01 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.5.2-4
- Add patch for OpenSSL 1.1.0
commit c63207148556bc3b6e18a69b2fc3de4a977bdadb
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sun Jan 1 13:25:48 2017 +0100
Add patch for OpenSSL 1.1.0
diff --git a/00247-port-ssl-and-hashlib-to-OpenSSL-1.1.0.patch b/00247-port-ssl-and-hashlib-to-OpenSSL-1.1.0.patch
new file mode 100644
index 0000000..5760d67
--- /dev/null
+++ b/00247-port-ssl-and-hashlib-to-OpenSSL-1.1.0.patch
@@ -0,0 +1,1314 @@
+
+# HG changeset patch
+# User Christian Heimes <christian(a)python.org>
+# Date 1473110345 -7200
+# Node ID 5c75b315152b714f7c84258ea511b461e2c06154
+# Parent 82467d0dbaea31a7971d1429ca5f4a251a995f33
+Issue #26470: Port ssl and hashlib module to OpenSSL 1.1.0.
+
+diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst
+--- a/Doc/library/ssl.rst
++++ b/Doc/library/ssl.rst
+@@ -178,7 +178,7 @@ instead.
+ use. Typically, the server chooses a particular protocol version, and the
+ client must adapt to the server's choice. Most of the versions are not
+ interoperable with the other versions. If not specified, the default is
+- :data:`PROTOCOL_SSLv23`; it provides the most compatibility with other
++ :data:`PROTOCOL_TLS`; it provides the most compatibility with other
+ versions.
+
+ Here's a table showing which versions in a client (down the side) can connect
+@@ -187,11 +187,11 @@ instead.
+ .. table::
+
+ ======================== ========= ========= ========== ========= =========== ===========
+- *client* / **server** **SSLv2** **SSLv3** **SSLv23** **TLSv1** **TLSv1.1** **TLSv1.2**
++ *client* / **server** **SSLv2** **SSLv3** **TLS** **TLSv1** **TLSv1.1** **TLSv1.2**
+ ------------------------ --------- --------- ---------- --------- ----------- -----------
+ *SSLv2* yes no yes no no no
+ *SSLv3* no yes yes no no no
+- *SSLv23* no yes yes yes yes yes
++ *TLS* (*SSLv23*) no yes yes yes yes yes
+ *TLSv1* no no yes yes no no
+ *TLSv1.1* no no yes no yes no
+ *TLSv1.2* no no yes no no yes
+@@ -244,7 +244,7 @@ purposes.
+ :const:`None`, this function can choose to trust the system's default
+ CA certificates instead.
+
+- The settings are: :data:`PROTOCOL_SSLv23`, :data:`OP_NO_SSLv2`, and
++ The settings are: :data:`PROTOCOL_TLS`, :data:`OP_NO_SSLv2`, and
+ :data:`OP_NO_SSLv3` with high encryption cipher suites without RC4 and
+ without unauthenticated cipher suites. Passing :data:`~Purpose.SERVER_AUTH`
+ as *purpose* sets :data:`~SSLContext.verify_mode` to :data:`CERT_REQUIRED`
+@@ -316,6 +316,11 @@ Random generation
+
+ .. versionadded:: 3.3
+
++ .. deprecated:: 3.5.3
++
++ OpenSSL has deprecated :func:`ssl.RAND_pseudo_bytes`, use
++ :func:`ssl.RAND_bytes` instead.
++
+ .. function:: RAND_status()
+
+ Return ``True`` if the SSL pseudo-random number generator has been seeded
+@@ -334,7 +339,7 @@ Random generation
+ See http://egd.sourceforge.net/ or http://prngd.sourceforge.net/ for sources
+ of entropy-gathering daemons.
+
+- Availability: not available with LibreSSL.
++ Availability: not available with LibreSSL and OpenSSL > 1.1.0
+
+ .. function:: RAND_add(bytes, entropy)
+
+@@ -409,7 +414,7 @@ Certificate handling
+ previously. Return an integer (no fractions of a second in the
+ input format)
+
+-.. function:: get_server_certificate(addr, ssl_version=PROTOCOL_SSLv23, ca_certs=None)
++.. function:: get_server_certificate(addr, ssl_version=PROTOCOL_TLS, ca_certs=None)
+
+ Given the address ``addr`` of an SSL-protected server, as a (*hostname*,
+ *port-number*) pair, fetches the server's certificate, and returns it as a
+@@ -425,7 +430,7 @@ Certificate handling
+
+ .. versionchanged:: 3.5
+ The default *ssl_version* is changed from :data:`PROTOCOL_SSLv3` to
+- :data:`PROTOCOL_SSLv23` for maximum compatibility with modern servers.
++ :data:`PROTOCOL_TLS` for maximum compatibility with modern servers.
+
+ .. function:: DER_cert_to_PEM_cert(DER_cert_bytes)
+
+@@ -451,6 +456,9 @@ Certificate handling
+ * :attr:`openssl_capath_env` - OpenSSL's environment key that points to a capath,
+ * :attr:`openssl_capath` - hard coded path to a capath directory
+
++ Availability: LibreSSL ignores the environment vars
++ :attr:`openssl_cafile_env` and :attr:`openssl_capath_env`
++
+ .. versionadded:: 3.4
+
+ .. function:: enum_certificates(store_name)
+@@ -568,11 +576,21 @@ Constants
+
+ .. versionadded:: 3.4.4
+
+-.. data:: PROTOCOL_SSLv23
++.. data:: PROTOCOL_TLS
+
+ Selects the highest protocol version that both the client and server support.
+ Despite the name, this option can select "TLS" protocols as well as "SSL".
+
++ .. versionadded:: 3.5.3
++
++.. data:: PROTOCOL_SSLv23
++
++ Alias for data:`PROTOCOL_TLS`.
++
++ .. deprecated:: 3.5.3
++
++ Use data:`PROTOCOL_TLS` instead.
++
+ .. data:: PROTOCOL_SSLv2
+
+ Selects SSL version 2 as the channel encryption protocol.
+@@ -584,6 +602,10 @@ Constants
+
+ SSL version 2 is insecure. Its use is highly discouraged.
+
++ .. deprecated:: 3.5.3
++
++ OpenSSL has removed support for SSLv2.
++
+ .. data:: PROTOCOL_SSLv3
+
+ Selects SSL version 3 as the channel encryption protocol.
+@@ -595,10 +617,20 @@ Constants
+
+ SSL version 3 is insecure. Its use is highly discouraged.
+
++ .. deprecated:: 3.5.3
++
++ OpenSSL has deprecated all version specific protocols. Use the default
++ protocol data:`PROTOCOL_TLS` with flags like data:`OP_NO_SSLv3` instead.
++
+ .. data:: PROTOCOL_TLSv1
+
+ Selects TLS version 1.0 as the channel encryption protocol.
+
++ .. deprecated:: 3.5.3
++
++ OpenSSL has deprecated all version specific protocols. Use the default
++ protocol data:`PROTOCOL_TLS` with flags like data:`OP_NO_SSLv3` instead.
++
+ .. data:: PROTOCOL_TLSv1_1
+
+ Selects TLS version 1.1 as the channel encryption protocol.
+@@ -606,6 +638,11 @@ Constants
+
+ .. versionadded:: 3.4
+
++ .. deprecated:: 3.5.3
++
++ OpenSSL has deprecated all version specific protocols. Use the default
++ protocol data:`PROTOCOL_TLS` with flags like data:`OP_NO_SSLv3` instead.
++
+ .. data:: PROTOCOL_TLSv1_2
+
+ Selects TLS version 1.2 as the channel encryption protocol. This is the
+@@ -614,6 +651,11 @@ Constants
+
+ .. versionadded:: 3.4
+
++ .. deprecated:: 3.5.3
++
++ OpenSSL has deprecated all version specific protocols. Use the default
++ protocol data:`PROTOCOL_TLS` with flags like data:`OP_NO_SSLv3` instead.
++
+ .. data:: OP_ALL
+
+ Enables workarounds for various bugs present in other SSL implementations.
+@@ -625,23 +667,32 @@ Constants
+ .. data:: OP_NO_SSLv2
+
+ Prevents an SSLv2 connection. This option is only applicable in
+- conjunction with :const:`PROTOCOL_SSLv23`. It prevents the peers from
++ conjunction with :const:`PROTOCOL_TLS`. It prevents the peers from
+ choosing SSLv2 as the protocol version.
+
+ .. versionadded:: 3.2
+
++ .. deprecated:: 3.5.3
++
++ SSLv2 is deprecated
++
++
+ .. data:: OP_NO_SSLv3
+
+ Prevents an SSLv3 connection. This option is only applicable in
+- conjunction with :const:`PROTOCOL_SSLv23`. It prevents the peers from
++ conjunction with :const:`PROTOCOL_TLS`. It prevents the peers from
+ choosing SSLv3 as the protocol version.
+
+ .. versionadded:: 3.2
+
++ .. deprecated:: 3.5.3
++
++ SSLv3 is deprecated
++
+ .. data:: OP_NO_TLSv1
+
+ Prevents a TLSv1 connection. This option is only applicable in
+- conjunction with :const:`PROTOCOL_SSLv23`. It prevents the peers from
++ conjunction with :const:`PROTOCOL_TLS`. It prevents the peers from
+ choosing TLSv1 as the protocol version.
+
+ .. versionadded:: 3.2
+@@ -649,7 +700,7 @@ Constants
+ .. data:: OP_NO_TLSv1_1
+
+ Prevents a TLSv1.1 connection. This option is only applicable in conjunction
+- with :const:`PROTOCOL_SSLv23`. It prevents the peers from choosing TLSv1.1 as
++ with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1.1 as
+ the protocol version. Available only with openssl version 1.0.1+.
+
+ .. versionadded:: 3.4
+@@ -657,7 +708,7 @@ Constants
+ .. data:: OP_NO_TLSv1_2
+
+ Prevents a TLSv1.2 connection. This option is only applicable in conjunction
+- with :const:`PROTOCOL_SSLv23`. It prevents the peers from choosing TLSv1.2 as
++ with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1.2 as
+ the protocol version. Available only with openssl version 1.0.1+.
+
+ .. versionadded:: 3.4
+@@ -1081,17 +1132,21 @@ such as SSL configuration options, certi
+ It also manages a cache of SSL sessions for server-side sockets, in order
+ to speed up repeated connections from the same clients.
+
+-.. class:: SSLContext(protocol)
+-
+- Create a new SSL context. You must pass *protocol* which must be one
++.. class:: SSLContext(protocol=PROTOCOL_TLS)
++
++ Create a new SSL context. You may pass *protocol* which must be one
+ of the ``PROTOCOL_*`` constants defined in this module.
+- :data:`PROTOCOL_SSLv23` is currently recommended for maximum
+- interoperability.
++ :data:`PROTOCOL_TLS` is currently recommended for maximum
++ interoperability and default value.
+
+ .. seealso::
+ :func:`create_default_context` lets the :mod:`ssl` module choose
+ security settings for a given purpose.
+
++ .. versionchanged:: 3.5.3
++
++ :data:`PROTOCOL_TLS` is the default value.
++
+
+ :class:`SSLContext` objects have the following methods and attributes:
+
+@@ -1232,6 +1287,9 @@ to speed up repeated connections from th
+ This method will raise :exc:`NotImplementedError` if :data:`HAS_ALPN` is
+ False.
+
++ OpenSSL 1.1.0+ will abort the handshake and raise :exc:`SSLError` when
++ both sides support ALPN but cannot agree on a protocol.
++
+ .. versionadded:: 3.5
+
+ .. method:: SSLContext.set_npn_protocols(protocols)
+@@ -1598,7 +1656,7 @@ If you prefer to tune security settings
+ a context from scratch (but beware that you might not get the settings
+ right)::
+
+- >>> context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
++ >>> context = ssl.SSLContext(ssl.PROTOCOL_TLS)
+ >>> context.verify_mode = ssl.CERT_REQUIRED
+ >>> context.check_hostname = True
+ >>> context.load_verify_locations("/etc/ssl/certs/ca-bundle.crt")
+@@ -1999,15 +2057,17 @@ Protocol versions
+
+ SSL versions 2 and 3 are considered insecure and are therefore dangerous to
+ use. If you want maximum compatibility between clients and servers, it is
+-recommended to use :const:`PROTOCOL_SSLv23` as the protocol version and then
++recommended to use :const:`PROTOCOL_TLS` as the protocol version and then
+ disable SSLv2 and SSLv3 explicitly using the :data:`SSLContext.options`
+ attribute::
+
+- context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
++ context = ssl.SSLContext(ssl.PROTOCOL_TLS)
+ context.options |= ssl.OP_NO_SSLv2
+ context.options |= ssl.OP_NO_SSLv3
+-
+-The SSL context created above will only allow TLSv1 and later (if
++ context.options |= ssl.OP_NO_TLSv1
++ context.options |= ssl.OP_NO_TLSv1_1
++
++The SSL context created above will only allow TLSv1.2 and later (if
+ supported by your system) connections.
+
+ Cipher selection
+diff --git a/Lib/ssl.py b/Lib/ssl.py
+--- a/Lib/ssl.py
++++ b/Lib/ssl.py
+@@ -51,6 +51,7 @@ The following constants identify various
+ PROTOCOL_SSLv2
+ PROTOCOL_SSLv3
+ PROTOCOL_SSLv23
++PROTOCOL_TLS
+ PROTOCOL_TLSv1
+ PROTOCOL_TLSv1_1
+ PROTOCOL_TLSv1_2
+@@ -128,9 +129,10 @@ from _ssl import _OPENSSL_API_VERSION
+
+ _IntEnum._convert(
+ '_SSLMethod', __name__,
+- lambda name: name.startswith('PROTOCOL_'),
++ lambda name: name.startswith('PROTOCOL_') and name != 'PROTOCOL_SSLv23',
+ source=_ssl)
+
++PROTOCOL_SSLv23 = _SSLMethod.PROTOCOL_SSLv23 = _SSLMethod.PROTOCOL_TLS
+ _PROTOCOL_NAMES = {value: name for name, value in _SSLMethod.__members__.items()}
+
+ try:
+@@ -357,13 +359,13 @@ class SSLContext(_SSLContext):
+ __slots__ = ('protocol', '__weakref__')
+ _windows_cert_stores = ("CA", "ROOT")
+
+- def __new__(cls, protocol, *args, **kwargs):
++ def __new__(cls, protocol=PROTOCOL_TLS, *args, **kwargs):
+ self = _SSLContext.__new__(cls, protocol)
+ if protocol != _SSLv2_IF_EXISTS:
+ self.set_ciphers(_DEFAULT_CIPHERS)
+ return self
+
+- def __init__(self, protocol):
++ def __init__(self, protocol=PROTOCOL_TLS):
+ self.protocol = protocol
+
+ def wrap_socket(self, sock, server_side=False,
+@@ -438,7 +440,7 @@ def create_default_context(purpose=Purpo
+ if not isinstance(purpose, _ASN1Object):
+ raise TypeError(purpose)
+
+- context = SSLContext(PROTOCOL_SSLv23)
++ context = SSLContext(PROTOCOL_TLS)
+
+ # SSLv2 considered harmful.
+ context.options |= OP_NO_SSLv2
+@@ -475,7 +477,7 @@ def create_default_context(purpose=Purpo
+ context.load_default_certs(purpose)
+ return context
+
+-def _create_unverified_context(protocol=PROTOCOL_SSLv23, *, cert_reqs=None,
++def _create_unverified_context(protocol=PROTOCOL_TLS, *, cert_reqs=None,
+ check_hostname=False, purpose=Purpose.SERVER_AUTH,
+ certfile=None, keyfile=None,
+ cafile=None, capath=None, cadata=None):
+@@ -666,7 +668,7 @@ class SSLSocket(socket):
+
+ def __init__(self, sock=None, keyfile=None, certfile=None,
+ server_side=False, cert_reqs=CERT_NONE,
+- ssl_version=PROTOCOL_SSLv23, ca_certs=None,
++ ssl_version=PROTOCOL_TLS, ca_certs=None,
+ do_handshake_on_connect=True,
+ family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None,
+ suppress_ragged_eofs=True, npn_protocols=None, ciphers=None,
+@@ -1056,7 +1058,7 @@ class SSLSocket(socket):
+
+ def wrap_socket(sock, keyfile=None, certfile=None,
+ server_side=False, cert_reqs=CERT_NONE,
+- ssl_version=PROTOCOL_SSLv23, ca_certs=None,
++ ssl_version=PROTOCOL_TLS, ca_certs=None,
+ do_handshake_on_connect=True,
+ suppress_ragged_eofs=True,
+ ciphers=None):
+@@ -1125,7 +1127,7 @@ def PEM_cert_to_DER_cert(pem_cert_string
+ d = pem_cert_string.strip()[len(PEM_HEADER):-len(PEM_FOOTER)]
+ return base64.decodebytes(d.encode('ASCII', 'strict'))
+
+-def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv23, ca_certs=None):
++def get_server_certificate(addr, ssl_version=PROTOCOL_TLS, ca_certs=None):
+ """Retrieve the certificate from the server at the specified address,
+ and return it as a PEM-encoded string.
+ If 'ca_certs' is specified, validate the server cert against it.
+diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
+--- a/Lib/test/test_ssl.py
++++ b/Lib/test/test_ssl.py
+@@ -23,6 +23,9 @@ ssl = support.import_module("ssl")
+
+ PROTOCOLS = sorted(ssl._PROTOCOL_NAMES)
+ HOST = support.HOST
++IS_LIBRESSL = ssl.OPENSSL_VERSION.startswith('LibreSSL')
++IS_OPENSSL_1_1 = not IS_LIBRESSL and ssl.OPENSSL_VERSION_INFO >= (1, 1, 0)
++
+
+ def data_file(*name):
+ return os.path.join(os.path.dirname(__file__), *name)
+@@ -143,8 +146,8 @@ class BasicSocketTests(unittest.TestCase
+ def test_str_for_enums(self):
+ # Make sure that the PROTOCOL_* constants have enum-like string
+ # reprs.
+- proto = ssl.PROTOCOL_SSLv23
+- self.assertEqual(str(proto), '_SSLMethod.PROTOCOL_SSLv23')
++ proto = ssl.PROTOCOL_TLS
++ self.assertEqual(str(proto), '_SSLMethod.PROTOCOL_TLS')
+ ctx = ssl.SSLContext(proto)
+ self.assertIs(ctx.protocol, proto)
+
+@@ -312,8 +315,8 @@ class BasicSocketTests(unittest.TestCase
+ self.assertGreaterEqual(status, 0)
+ self.assertLessEqual(status, 15)
+ # Version string as returned by {Open,Libre}SSL, the format might change
+- if "LibreSSL" in s:
+- self.assertTrue(s.startswith("LibreSSL {:d}.{:d}".format(major, minor)),
++ if IS_LIBRESSL:
++ self.assertTrue(s.startswith("LibreSSL {:d}".format(major)),
+ (s, t, hex(n)))
+ else:
+ self.assertTrue(s.startswith("OpenSSL {:d}.{:d}.{:d}".format(major, minor, fix)),
+@@ -790,7 +793,8 @@ class ContextTests(unittest.TestCase):
+ def test_constructor(self):
+ for protocol in PROTOCOLS:
+ ssl.SSLContext(protocol)
+- self.assertRaises(TypeError, ssl.SSLContext)
++ ctx = ssl.SSLContext()
++ self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS)
+ self.assertRaises(ValueError, ssl.SSLContext, -1)
+ self.assertRaises(ValueError, ssl.SSLContext, 42)
+
+@@ -811,15 +815,15 @@ class ContextTests(unittest.TestCase):
+ def test_options(self):
+ ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
+ # OP_ALL | OP_NO_SSLv2 | OP_NO_SSLv3 is the default value
+- self.assertEqual(ssl.OP_ALL | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3,
+- ctx.options)
++ default = (ssl.OP_ALL | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3)
++ if not IS_LIBRESSL and ssl.OPENSSL_VERSION_INFO >= (1, 1, 0):
++ default |= ssl.OP_NO_COMPRESSION
++ self.assertEqual(default, ctx.options)
+ ctx.options |= ssl.OP_NO_TLSv1
+- self.assertEqual(ssl.OP_ALL | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3 | ssl.OP_NO_TLSv1,
+- ctx.options)
++ self.assertEqual(default | ssl.OP_NO_TLSv1, ctx.options)
+ if can_clear_options():
+- ctx.options = (ctx.options & ~ssl.OP_NO_SSLv2) | ssl.OP_NO_TLSv1
+- self.assertEqual(ssl.OP_ALL | ssl.OP_NO_TLSv1 | ssl.OP_NO_SSLv3,
+- ctx.options)
++ ctx.options = (ctx.options & ~ssl.OP_NO_TLSv1)
++ self.assertEqual(default, ctx.options)
+ ctx.options = 0
+ # Ubuntu has OP_NO_SSLv3 forced on by default
+ self.assertEqual(0, ctx.options & ~ssl.OP_NO_SSLv3)
+@@ -1155,6 +1159,7 @@ class ContextTests(unittest.TestCase):
+ self.assertRaises(TypeError, ctx.load_default_certs, 'SERVER_AUTH')
+
+ @unittest.skipIf(sys.platform == "win32", "not-Windows specific")
++ @unittest.skipIf(IS_LIBRESSL, "LibreSSL doesn't support env vars")
+ def test_load_default_certs_env(self):
+ ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
+ with support.EnvironmentVarGuard() as env:
+@@ -1750,13 +1755,13 @@ class NetworkedBIOTests(unittest.TestCas
+ sslobj = ctx.wrap_bio(incoming, outgoing, False, REMOTE_HOST)
+ self.assertIs(sslobj._sslobj.owner, sslobj)
+ self.assertIsNone(sslobj.cipher())
+- self.assertIsNone(sslobj.shared_ciphers())
++ self.assertIsNotNone(sslobj.shared_ciphers())
+ self.assertRaises(ValueError, sslobj.getpeercert)
+ if 'tls-unique' in ssl.CHANNEL_BINDING_TYPES:
+ self.assertIsNone(sslobj.get_channel_binding('tls-unique'))
+ self.ssl_io_loop(sock, incoming, outgoing, sslobj.do_handshake)
+ self.assertTrue(sslobj.cipher())
+- self.assertIsNone(sslobj.shared_ciphers())
++ self.assertIsNotNone(sslobj.shared_ciphers())
+ self.assertTrue(sslobj.getpeercert())
+ if 'tls-unique' in ssl.CHANNEL_BINDING_TYPES:
+ self.assertTrue(sslobj.get_channel_binding('tls-unique'))
+@@ -2993,7 +2998,7 @@ else:
+ with context.wrap_socket(socket.socket()) as s:
+ self.assertIs(s.version(), None)
+ s.connect((HOST, server.port))
+- self.assertEqual(s.version(), "TLSv1")
++ self.assertEqual(s.version(), 'TLSv1')
+ self.assertIs(s.version(), None)
+
+ @unittest.skipUnless(ssl.HAS_ECDH, "test requires ECDH-enabled OpenSSL")
+@@ -3135,24 +3140,36 @@ else:
+ (['http/3.0', 'http/4.0'], None)
+ ]
+ for client_protocols, expected in protocol_tests:
+- server_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
++ server_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
+ server_context.load_cert_chain(CERTFILE)
+ server_context.set_alpn_protocols(server_protocols)
+- client_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
++ client_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
+ client_context.load_cert_chain(CERTFILE)
+ client_context.set_alpn_protocols(client_protocols)
+- stats = server_params_test(client_context, server_context,
+- chatty=True, connectionchatty=True)
+-
+- msg = "failed trying %s (s) and %s (c).\n" \
+- "was expecting %s, but got %%s from the %%s" \
+- % (str(server_protocols), str(client_protocols),
+- str(expected))
+- client_result = stats['client_alpn_protocol']
+- self.assertEqual(client_result, expected, msg % (client_result, "client"))
+- server_result = stats['server_alpn_protocols'][-1] \
+- if len(stats['server_alpn_protocols']) else 'nothing'
+- self.assertEqual(server_result, expected, msg % (server_result, "server"))
++
++ try:
++ stats = server_params_test(client_context,
++ server_context,
++ chatty=True,
++ connectionchatty=True)
++ except ssl.SSLError as e:
++ stats = e
++
++ if expected is None and IS_OPENSSL_1_1:
++ # OpenSSL 1.1.0 raises handshake error
++ self.assertIsInstance(stats, ssl.SSLError)
++ else:
++ msg = "failed trying %s (s) and %s (c).\n" \
++ "was expecting %s, but got %%s from the %%s" \
++ % (str(server_protocols), str(client_protocols),
++ str(expected))
++ client_result = stats['client_alpn_protocol']
++ self.assertEqual(client_result, expected,
++ msg % (client_result, "client"))
++ server_result = stats['server_alpn_protocols'][-1] \
++ if len(stats['server_alpn_protocols']) else 'nothing'
++ self.assertEqual(server_result, expected,
++ msg % (server_result, "server"))
+
+ def test_selected_npn_protocol(self):
+ # selected_npn_protocol() is None unless NPN is used
+@@ -3300,13 +3317,23 @@ else:
+ client_context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
+ client_context.verify_mode = ssl.CERT_REQUIRED
+ client_context.load_verify_locations(SIGNING_CA)
+- client_context.set_ciphers("RC4")
+- server_context.set_ciphers("AES:RC4")
++ if ssl.OPENSSL_VERSION_INFO >= (1, 0, 2):
++ client_context.set_ciphers("AES128:AES256")
++ server_context.set_ciphers("AES256")
++ alg1 = "AES256"
++ alg2 = "AES-256"
++ else:
++ client_context.set_ciphers("AES:3DES")
++ server_context.set_ciphers("3DES")
++ alg1 = "3DES"
++ alg2 = "DES-CBC3"
++
+ stats = server_params_test(client_context, server_context)
+ ciphers = stats['server_shared_ciphers'][0]
+ self.assertGreater(len(ciphers), 0)
+ for name, tls_version, bits in ciphers:
+- self.assertIn("RC4", name.split("-"))
++ if not alg1 in name.split("-") and alg2 not in name:
++ self.fail(name)
+
+ def test_read_write_after_close_raises_valuerror(self):
+ context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
+
+diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c
+--- a/Modules/_hashopenssl.c
++++ b/Modules/_hashopenssl.c
+@@ -21,7 +21,6 @@
+
+ /* EVP is the preferred interface to hashing in OpenSSL */
+ #include <openssl/evp.h>
+-#include <openssl/hmac.h>
+ /* We use the object interface to discover what hashes OpenSSL supports. */
+ #include <openssl/objects.h>
+ #include "openssl/err.h"
+@@ -32,11 +31,22 @@
+ #define HASH_OBJ_CONSTRUCTOR 0
+ #endif
+
++#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
++/* OpenSSL < 1.1.0 */
++#define EVP_MD_CTX_new EVP_MD_CTX_create
++#define EVP_MD_CTX_free EVP_MD_CTX_destroy
++#define HAS_FAST_PKCS5_PBKDF2_HMAC 0
++#include <openssl/hmac.h>
++#else
++/* OpenSSL >= 1.1.0 */
++#define HAS_FAST_PKCS5_PBKDF2_HMAC 1
++#endif
++
+
+ typedef struct {
+ PyObject_HEAD
+ PyObject *name; /* name of this hash algorithm */
+- EVP_MD_CTX ctx; /* OpenSSL message digest context */
++ EVP_MD_CTX *ctx; /* OpenSSL message digest context */
+ #ifdef WITH_THREAD
+ PyThread_type_lock lock; /* OpenSSL context lock */
+ #endif
+@@ -48,7 +58,6 @@ static PyTypeObject EVPtype;
+
+ #define DEFINE_CONSTS_FOR_NEW(Name) \
+ static PyObject *CONST_ ## Name ## _name_obj = NULL; \
+- static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
+ static EVP_MD_CTX *CONST_new_ ## Name ## _ctx_p = NULL;
+
+ DEFINE_CONSTS_FOR_NEW(md5)
+@@ -59,19 +68,57 @@ DEFINE_CONSTS_FOR_NEW(sha384)
+ DEFINE_CONSTS_FOR_NEW(sha512)
+
+
++/* LCOV_EXCL_START */
++static PyObject *
++_setException(PyObject *exc)
++{
++ unsigned long errcode;
++ const char *lib, *func, *reason;
++
++ errcode = ERR_peek_last_error();
++ if (!errcode) {
++ PyErr_SetString(exc, "unknown reasons");
++ return NULL;
++ }
++ ERR_clear_error();
++
++ lib = ERR_lib_error_string(errcode);
++ func = ERR_func_error_string(errcode);
++ reason = ERR_reason_error_string(errcode);
++
++ if (lib && func) {
++ PyErr_Format(exc, "[%s: %s] %s", lib, func, reason);
++ }
++ else if (lib) {
++ PyErr_Format(exc, "[%s] %s", lib, reason);
++ }
++ else {
++ PyErr_SetString(exc, reason);
++ }
++ return NULL;
++}
++/* LCOV_EXCL_STOP */
++
+ static EVPobject *
+ newEVPobject(PyObject *name)
+ {
+ EVPobject *retval = (EVPobject *)PyObject_New(EVPobject, &EVPtype);
++ if (retval == NULL) {
++ return NULL;
++ }
++
++ retval->ctx = EVP_MD_CTX_new();
++ if (retval->ctx == NULL) {
++ PyErr_NoMemory();
++ return NULL;
++ }
+
+ /* save the name for .name to return */
+- if (retval != NULL) {
+- Py_INCREF(name);
+- retval->name = name;
++ Py_INCREF(name);
++ retval->name = name;
+ #ifdef WITH_THREAD
+- retval->lock = NULL;
++ retval->lock = NULL;
+ #endif
+- }
+
+ return retval;
+ }
+@@ -86,7 +133,7 @@ EVP_hash(EVPobject *self, const void *vp
+ process = MUNCH_SIZE;
+ else
+ process = Py_SAFE_DOWNCAST(len, Py_ssize_t, unsigned int);
+- EVP_DigestUpdate(&self->ctx, (const void*)cp, process);
++ EVP_DigestUpdate(self->ctx, (const void*)cp, process);
+ len -= process;
+ cp += process;
+ }
+@@ -101,16 +148,19 @@ EVP_dealloc(EVPobject *self)
+ if (self->lock != NULL)
+ PyThread_free_lock(self->lock);
+ #endif
+- EVP_MD_CTX_cleanup(&self->ctx);
++ EVP_MD_CTX_free(self->ctx);
+ Py_XDECREF(self->name);
+ PyObject_Del(self);
+ }
+
+-static void locked_EVP_MD_CTX_copy(EVP_MD_CTX *new_ctx_p, EVPobject *self)
++static int
++locked_EVP_MD_CTX_copy(EVP_MD_CTX *new_ctx_p, EVPobject *self)
+ {
++ int result;
+ ENTER_HASHLIB(self);
+- EVP_MD_CTX_copy(new_ctx_p, &self->ctx);
++ result = EVP_MD_CTX_copy(new_ctx_p, self->ctx);
+ LEAVE_HASHLIB(self);
++ return result;
+ }
+
+ /* External methods for a hash object */
+@@ -126,7 +176,9 @@ EVP_copy(EVPobject *self, PyObject *unus
+ if ( (newobj = newEVPobject(self->name))==NULL)
+ return NULL;
+
+- locked_EVP_MD_CTX_copy(&newobj->ctx, self);
++ if (!locked_EVP_MD_CTX_copy(newobj->ctx, self)) {
++ return _setException(PyExc_ValueError);
++ }
+ return (PyObject *)newobj;
+ }
+
+@@ -137,16 +189,24 @@ static PyObject *
+ EVP_digest(EVPobject *self, PyObject *unused)
+ {
+ unsigned char digest[EVP_MAX_MD_SIZE];
+- EVP_MD_CTX temp_ctx;
++ EVP_MD_CTX *temp_ctx;
+ PyObject *retval;
+ unsigned int digest_size;
+
+- locked_EVP_MD_CTX_copy(&temp_ctx, self);
+- digest_size = EVP_MD_CTX_size(&temp_ctx);
+- EVP_DigestFinal(&temp_ctx, digest, NULL);
++ temp_ctx = EVP_MD_CTX_new();
++ if (temp_ctx == NULL) {
++ PyErr_NoMemory();
++ return NULL;
++ }
++
++ if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) {
++ return _setException(PyExc_ValueError);
++ }
++ digest_size = EVP_MD_CTX_size(temp_ctx);
++ EVP_DigestFinal(temp_ctx, digest, NULL);
+
+ retval = PyBytes_FromStringAndSize((const char *)digest, digest_size);
+- EVP_MD_CTX_cleanup(&temp_ctx);
++ EVP_MD_CTX_free(temp_ctx);
+ return retval;
+ }
+
+@@ -157,15 +217,23 @@ static PyObject *
+ EVP_hexdigest(EVPobject *self, PyObject *unused)
+ {
+ unsigned char digest[EVP_MAX_MD_SIZE];
+- EVP_MD_CTX temp_ctx;
++ EVP_MD_CTX *temp_ctx;
+ unsigned int digest_size;
+
++ temp_ctx = EVP_MD_CTX_new();
++ if (temp_ctx == NULL) {
++ PyErr_NoMemory();
++ return NULL;
++ }
++
+ /* Get the raw (binary) digest value */
+- locked_EVP_MD_CTX_copy(&temp_ctx, self);
+- digest_size = EVP_MD_CTX_size(&temp_ctx);
+- EVP_DigestFinal(&temp_ctx, digest, NULL);
++ if (!locked_EVP_MD_CTX_copy(temp_ctx, self)) {
++ return _setException(PyExc_ValueError);
++ }
++ digest_size = EVP_MD_CTX_size(temp_ctx);
++ EVP_DigestFinal(temp_ctx, digest, NULL);
+
+- EVP_MD_CTX_cleanup(&temp_ctx);
++ EVP_MD_CTX_free(temp_ctx);
+
+ return _Py_strhex((const char *)digest, digest_size);
+ }
+@@ -219,7 +287,7 @@ static PyObject *
+ EVP_get_block_size(EVPobject *self, void *closure)
+ {
+ long block_size;
+- block_size = EVP_MD_CTX_block_size(&self->ctx);
++ block_size = EVP_MD_CTX_block_size(self->ctx);
+ return PyLong_FromLong(block_size);
+ }
+
+@@ -227,7 +295,7 @@ static PyObject *
+ EVP_get_digest_size(EVPobject *self, void *closure)
+ {
+ long size;
+- size = EVP_MD_CTX_size(&self->ctx);
++ size = EVP_MD_CTX_size(self->ctx);
+ return PyLong_FromLong(size);
+ }
+
+@@ -288,7 +356,7 @@ EVP_tp_init(EVPobject *self, PyObject *a
+ PyBuffer_Release(&view);
+ return -1;
+ }
+- EVP_DigestInit(&self->ctx, digest);
++ EVP_DigestInit(self->ctx, digest);
+
+ self->name = name_obj;
+ Py_INCREF(self->name);
+@@ -385,9 +453,9 @@ EVPnew(PyObject *name_obj,
+ return NULL;
+
+ if (initial_ctx) {
+- EVP_MD_CTX_copy(&self->ctx, initial_ctx);
++ EVP_MD_CTX_copy(self->ctx, initial_ctx);
+ } else {
+- EVP_DigestInit(&self->ctx, digest);
++ EVP_DigestInit(self->ctx, digest);
+ }
+
+ if (cp && len) {
+@@ -453,6 +521,7 @@ EVP_new(PyObject *self, PyObject *args,
+
+ #define PY_PBKDF2_HMAC 1
+
++#if !HAS_FAST_PKCS5_PBKDF2_HMAC
+ /* Improved implementation of PKCS5_PBKDF2_HMAC()
+ *
+ * PKCS5_PBKDF2_HMAC_fast() hashes the password exactly one time instead of
+@@ -534,37 +603,8 @@ PKCS5_PBKDF2_HMAC_fast(const char *pass,
+ HMAC_CTX_cleanup(&hctx_tpl);
+ return 1;
+ }
++#endif
+
+-/* LCOV_EXCL_START */
+-static PyObject *
+-_setException(PyObject *exc)
+-{
+- unsigned long errcode;
+- const char *lib, *func, *reason;
+-
+- errcode = ERR_peek_last_error();
+- if (!errcode) {
+- PyErr_SetString(exc, "unknown reasons");
+- return NULL;
+- }
+- ERR_clear_error();
+-
+- lib = ERR_lib_error_string(errcode);
+- func = ERR_func_error_string(errcode);
+- reason = ERR_reason_error_string(errcode);
+-
+- if (lib && func) {
+- PyErr_Format(exc, "[%s: %s] %s", lib, func, reason);
+- }
+- else if (lib) {
+- PyErr_Format(exc, "[%s] %s", lib, reason);
+- }
+- else {
+- PyErr_SetString(exc, reason);
+- }
+- return NULL;
+-}
+-/* LCOV_EXCL_STOP */
+
+ PyDoc_STRVAR(pbkdf2_hmac__doc__,
+ "pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None) -> key\n\
+@@ -646,10 +686,17 @@ pbkdf2_hmac(PyObject *self, PyObject *ar
+ key = PyBytes_AS_STRING(key_obj);
+
+ Py_BEGIN_ALLOW_THREADS
++#if HAS_FAST_PKCS5_PBKDF2_HMAC
++ retval = PKCS5_PBKDF2_HMAC((char*)password.buf, (int)password.len,
++ (unsigned char *)salt.buf, (int)salt.len,
++ iterations, digest, dklen,
++ (unsigned char *)key);
++#else
+ retval = PKCS5_PBKDF2_HMAC_fast((char*)password.buf, (int)password.len,
+ (unsigned char *)salt.buf, (int)salt.len,
+ iterations, digest, dklen,
+ (unsigned char *)key);
++#endif
+ Py_END_ALLOW_THREADS
+
+ if (!retval) {
+@@ -768,7 +815,7 @@ generate_hash_name_list(void)
+ if (CONST_ ## NAME ## _name_obj == NULL) { \
+ CONST_ ## NAME ## _name_obj = PyUnicode_FromString(#NAME); \
+ if (EVP_get_digestbyname(#NAME)) { \
+- CONST_new_ ## NAME ## _ctx_p = &CONST_new_ ## NAME ## _ctx; \
++ CONST_new_ ## NAME ## _ctx_p = EVP_MD_CTX_new(); \
+ EVP_DigestInit(CONST_new_ ## NAME ## _ctx_p, EVP_get_digestbyname(#NAME)); \
+ } \
+ } \
+diff --git a/Modules/_ssl.c b/Modules/_ssl.c
+--- a/Modules/_ssl.c
++++ b/Modules/_ssl.c
+@@ -55,6 +55,14 @@ static PySocketModule_APIObject PySocket
+ #include <sys/poll.h>
+ #endif
+
++/* Don't warn about deprecated functions */
++#ifdef __GNUC__
++#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
++#endif
++#ifdef __clang__
++#pragma clang diagnostic ignored "-Wdeprecated-declarations"
++#endif
++
+ /* Include OpenSSL header files */
+ #include "openssl/rsa.h"
+ #include "openssl/crypto.h"
+@@ -91,6 +99,10 @@ struct py_ssl_library_code {
+ /* Include generated data (error codes) */
+ #include "_ssl_data.h"
+
++#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
++# define OPENSSL_VERSION_1_1 1
++#endif
++
+ /* Openssl comes with TLSv1.1 and TLSv1.2 between 1.0.0h and 1.0.1
+ http://www.openssl.org/news/changelog.html
+ */
+@@ -117,6 +129,72 @@ struct py_ssl_library_code {
+ # define HAVE_ALPN
+ #endif
+
++#ifdef OPENSSL_VERSION_1_1
++/* OpenSSL 1.1.0+ */
++#ifndef OPENSSL_NO_SSL2
++#define OPENSSL_NO_SSL2
++#endif
++#else /* OpenSSL < 1.1.0 */
++#if defined(WITH_THREAD)
++#define HAVE_OPENSSL_CRYPTO_LOCK
++#endif
++
++#define TLS_method SSLv23_method
++
++static int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne)
++{
++ return ne->set;
++}
++
++#ifndef OPENSSL_NO_COMP
++static int COMP_get_type(const COMP_METHOD *meth)
++{
++ return meth->type;
++}
++
++static const char *COMP_get_name(const COMP_METHOD *meth)
++{
++ return meth->name;
++}
++#endif
++
++static pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx)
++{
++ return ctx->default_passwd_callback;
++}
++
++static void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx)
++{
++ return ctx->default_passwd_callback_userdata;
++}
++
++static int X509_OBJECT_get_type(X509_OBJECT *x)
++{
++ return x->type;
++}
++
++static X509 *X509_OBJECT_get0_X509(X509_OBJECT *x)
++{
++ return x->data.x509;
++}
++
++static int BIO_up_ref(BIO *b)
++{
++ CRYPTO_add(&b->references, 1, CRYPTO_LOCK_BIO);
++ return 1;
++}
++
++static STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(X509_STORE *store) {
++ return store->objs;
++}
++
++static X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *store)
++{
++ return store->param;
++}
++#endif /* OpenSSL < 1.1.0 or LibreSSL */
++
++
+ enum py_ssl_error {
+ /* these mirror ssl.h */
+ PY_SSL_ERROR_NONE,
+@@ -147,7 +225,7 @@ enum py_ssl_cert_requirements {
+ enum py_ssl_version {
+ PY_SSL_VERSION_SSL2,
+ PY_SSL_VERSION_SSL3=1,
+- PY_SSL_VERSION_SSL23,
++ PY_SSL_VERSION_TLS,
+ #if HAVE_TLSv1_2
+ PY_SSL_VERSION_TLS1,
+ PY_SSL_VERSION_TLS1_1,
+@@ -527,8 +605,8 @@ newPySSLSocket(PySSLContext *sslctx, PyS
+ /* BIOs are reference counted and SSL_set_bio borrows our reference.
+ * To prevent a double free in memory_bio_dealloc() we need to take an
+ * extra reference here. */
+- CRYPTO_add(&inbio->bio->references, 1, CRYPTO_LOCK_BIO);
+- CRYPTO_add(&outbio->bio->references, 1, CRYPTO_LOCK_BIO);
++ BIO_up_ref(inbio->bio);
++ BIO_up_ref(outbio->bio);
+ SSL_set_bio(self->ssl, inbio->bio, outbio->bio);
+ }
+ mode = SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER;
+@@ -738,7 +816,7 @@ static PyObject *
+
+ /* check to see if we've gotten to a new RDN */
+ if (rdn_level >= 0) {
+- if (rdn_level != entry->set) {
++ if (rdn_level != X509_NAME_ENTRY_set(entry)) {
+ /* yes, new RDN */
+ /* add old RDN to DN */
+ rdnt = PyList_AsTuple(rdn);
+@@ -755,7 +833,7 @@ static PyObject *
+ goto fail0;
+ }
+ }
+- rdn_level = entry->set;
++ rdn_level = X509_NAME_ENTRY_set(entry);
+
+ /* now add this attribute to the current RDN */
+ name = X509_NAME_ENTRY_get_object(entry);
+@@ -853,18 +931,18 @@ static PyObject *
+ goto fail;
+ }
+
+- p = ext->value->data;
++ p = X509_EXTENSION_get_data(ext)->data;
+ if (method->it)
+ names = (GENERAL_NAMES*)
+ (ASN1_item_d2i(NULL,
+ &p,
+- ext->value->length,
++ X509_EXTENSION_get_data(ext)->length,
+ ASN1_ITEM_ptr(method->it)));
+ else
+ names = (GENERAL_NAMES*)
+ (method->d2i(NULL,
+ &p,
+- ext->value->length));
++ X509_EXTENSION_get_data(ext)->length));
+
+ for(j = 0; j < sk_GENERAL_NAME_num(names); j++) {
+ /* get a rendering of each name in the set of names */
+@@ -1075,13 +1153,11 @@ static PyObject *
+ int i, j;
+ PyObject *lst, *res = NULL;
+
+-#if OPENSSL_VERSION_NUMBER < 0x10001000L
+- dps = X509_get_ext_d2i(certificate, NID_crl_distribution_points, NULL, NULL);
+-#else
++#if OPENSSL_VERSION_NUMBER >= 0x10001000L
+ /* Calls x509v3_cache_extensions and sets up crldp */
+ X509_check_ca(certificate);
+- dps = certificate->crldp;
+ #endif
++ dps = X509_get_ext_d2i(certificate, NID_crl_distribution_points, NULL, NULL);
+
+ if (dps == NULL)
+ return Py_None;
+@@ -1451,14 +1527,13 @@ static PyObject *
+ _ssl__SSLSocket_shared_ciphers_impl(PySSLSocket *self)
+ /*[clinic end generated code: output=3d174ead2e42c4fd input=0bfe149da8fe6306]*/
+ {
+- SSL_SESSION *sess = SSL_get_session(self->ssl);
+ STACK_OF(SSL_CIPHER) *ciphers;
+ int i;
+ PyObject *res;
+
+- if (!sess || !sess->ciphers)
++ ciphers = SSL_get_ciphers(self->ssl);
++ if (!ciphers)
+ Py_RETURN_NONE;
+- ciphers = sess->ciphers;
+ res = PyList_New(sk_SSL_CIPHER_num(ciphers));
+ if (!res)
+ return NULL;
+@@ -1567,9 +1642,9 @@ static PyObject *
+ if (self->ssl == NULL)
+ Py_RETURN_NONE;
+ comp_method = SSL_get_current_compression(self->ssl);
+- if (comp_method == NULL || comp_method->type == NID_undef)
++ if (comp_method == NULL || COMP_get_type(comp_method) == NID_undef)
+ Py_RETURN_NONE;
+- short_name = OBJ_nid2sn(comp_method->type);
++ short_name = COMP_get_name(comp_method);
+ if (short_name == NULL)
+ Py_RETURN_NONE;
+ return PyUnicode_DecodeFSDefault(short_name);
+@@ -2255,8 +2330,8 @@ static PyObject *
+ else if (proto_version == PY_SSL_VERSION_SSL2)
+ ctx = SSL_CTX_new(SSLv2_method());
+ #endif
+- else if (proto_version == PY_SSL_VERSION_SSL23)
+- ctx = SSL_CTX_new(SSLv23_method());
++ else if (proto_version == PY_SSL_VERSION_TLS)
++ ctx = SSL_CTX_new(TLS_method());
+ else
+ proto_version = -1;
+ PySSL_END_ALLOW_THREADS
+@@ -2318,8 +2393,9 @@ static PyObject *
+ #ifndef OPENSSL_NO_ECDH
+ /* Allow automatic ECDH curve selection (on OpenSSL 1.0.2+), or use
+ prime256v1 by default. This is Apache mod_ssl's initialization
+- policy, so we should be safe. */
+-#if defined(SSL_CTX_set_ecdh_auto)
++ policy, so we should be safe. OpenSSL 1.1 has it enabled by default.
++ */
++#if defined(SSL_CTX_set_ecdh_auto) && !defined(OPENSSL_VERSION_1_1)
+ SSL_CTX_set_ecdh_auto(self->ctx, 1);
+ #else
+ {
+@@ -2586,10 +2662,12 @@ static PyObject *
+ get_verify_flags(PySSLContext *self, void *c)
+ {
+ X509_STORE *store;
++ X509_VERIFY_PARAM *param;
+ unsigned long flags;
+
+ store = SSL_CTX_get_cert_store(self->ctx);
+- flags = X509_VERIFY_PARAM_get_flags(store->param);
++ param = X509_STORE_get0_param(store);
++ flags = X509_VERIFY_PARAM_get_flags(param);
+ return PyLong_FromUnsignedLong(flags);
+ }
+
+@@ -2597,22 +2675,24 @@ static int
+ set_verify_flags(PySSLContext *self, PyObject *arg, void *c)
+ {
+ X509_STORE *store;
++ X509_VERIFY_PARAM *param;
+ unsigned long new_flags, flags, set, clear;
+
+ if (!PyArg_Parse(arg, "k", &new_flags))
+ return -1;
+ store = SSL_CTX_get_cert_store(self->ctx);
+- flags = X509_VERIFY_PARAM_get_flags(store->param);
++ param = X509_STORE_get0_param(store);
++ flags = X509_VERIFY_PARAM_get_flags(param);
+ clear = flags & ~new_flags;
+ set = ~flags & new_flags;
+ if (clear) {
+- if (!X509_VERIFY_PARAM_clear_flags(store->param, clear)) {
++ if (!X509_VERIFY_PARAM_clear_flags(param, clear)) {
+ _setSSLError(NULL, 0, __FILE__, __LINE__);
+ return -1;
+ }
+ }
+ if (set) {
+- if (!X509_VERIFY_PARAM_set_flags(store->param, set)) {
++ if (!X509_VERIFY_PARAM_set_flags(param, set)) {
+ _setSSLError(NULL, 0, __FILE__, __LINE__);
+ return -1;
+ }
+@@ -2789,8 +2869,8 @@ static PyObject *
+ /*[clinic end generated code: output=9480bc1c380e2095 input=7cf9ac673cbee6fc]*/
+ {
+ PyObject *certfile_bytes = NULL, *keyfile_bytes = NULL;
+- pem_password_cb *orig_passwd_cb = self->ctx->default_passwd_callback;
+- void *orig_passwd_userdata = self->ctx->default_passwd_callback_userdata;
++ pem_password_cb *orig_passwd_cb = SSL_CTX_get_default_passwd_cb(self->ctx);
++ void *orig_passwd_userdata = SSL_CTX_get_default_passwd_cb_userdata(self->ctx);
+ _PySSLPasswordInfo pw_info = { NULL, NULL, NULL, 0, 0 };
+ int r;
+
+@@ -2917,8 +2997,9 @@ static int
+ cert = d2i_X509_bio(biobuf, NULL);
+ } else {
+ cert = PEM_read_bio_X509(biobuf, NULL,
+- self->ctx->default_passwd_callback,
+- self->ctx->default_passwd_callback_userdata);
++ SSL_CTX_get_default_passwd_cb(self->ctx),
++ SSL_CTX_get_default_passwd_cb_userdata(self->ctx)
++ );
+ }
+ if (cert == NULL) {
+ break;
+@@ -3444,25 +3525,24 @@ static PyObject *
+ /*[clinic end generated code: output=5f356f4d9cca874d input=eb40dd0f6d0e40cf]*/
+ {
+ X509_STORE *store;
++ STACK_OF(X509_OBJECT) *objs;
+ X509_OBJECT *obj;
+- int x509 = 0, crl = 0, pkey = 0, ca = 0, i;
++ int x509 = 0, crl = 0, ca = 0, i;
+
+ store = SSL_CTX_get_cert_store(self->ctx);
+- for (i = 0; i < sk_X509_OBJECT_num(store->objs); i++) {
+- obj = sk_X509_OBJECT_value(store->objs, i);
+- switch (obj->type) {
++ objs = X509_STORE_get0_objects(store);
++ for (i = 0; i < sk_X509_OBJECT_num(objs); i++) {
++ obj = sk_X509_OBJECT_value(objs, i);
++ switch (X509_OBJECT_get_type(obj)) {
+ case X509_LU_X509:
+ x509++;
+- if (X509_check_ca(obj->data.x509)) {
++ if (X509_check_ca(X509_OBJECT_get0_X509(obj))) {
+ ca++;
+ }
+ break;
+ case X509_LU_CRL:
+ crl++;
+ break;
+- case X509_LU_PKEY:
+- pkey++;
+- break;
+ default:
+ /* Ignore X509_LU_FAIL, X509_LU_RETRY, X509_LU_PKEY.
+ * As far as I can tell they are internal states and never
+@@ -3492,6 +3572,7 @@ static PyObject *
+ /*[clinic end generated code: output=0d58f148f37e2938 input=6887b5a09b7f9076]*/
+ {
+ X509_STORE *store;
++ STACK_OF(X509_OBJECT) *objs;
+ PyObject *ci = NULL, *rlist = NULL;
+ int i;
+
+@@ -3500,17 +3581,18 @@ static PyObject *
+ }
+
+ store = SSL_CTX_get_cert_store(self->ctx);
+- for (i = 0; i < sk_X509_OBJECT_num(store->objs); i++) {
++ objs = X509_STORE_get0_objects(store);
++ for (i = 0; i < sk_X509_OBJECT_num(objs); i++) {
+ X509_OBJECT *obj;
+ X509 *cert;
+
+- obj = sk_X509_OBJECT_value(store->objs, i);
+- if (obj->type != X509_LU_X509) {
++ obj = sk_X509_OBJECT_value(objs, i);
++ if (X509_OBJECT_get_type(obj) != X509_LU_X509) {
+ /* not a x509 cert */
+ continue;
+ }
+ /* CA for any purpose */
+- cert = obj->data.x509;
++ cert = X509_OBJECT_get0_X509(obj);
+ if (!X509_check_ca(cert)) {
+ continue;
+ }
+@@ -4374,10 +4456,12 @@ static PyMethodDef PySSL_methods[] = {
+ };
+
+
+-#ifdef WITH_THREAD
++#ifdef HAVE_OPENSSL_CRYPTO_LOCK
+
+ /* an implementation of OpenSSL threading operations in terms
+- of the Python C thread library */
++ * of the Python C thread library
++ * Only used up to 1.0.2. OpenSSL 1.1.0+ has its own locking code.
++ */
+
+ static PyThread_type_lock *_ssl_locks = NULL;
+
+@@ -4458,7 +4542,7 @@ static int _setup_ssl_threads(void) {
+ return 1;
+ }
+
+-#endif /* def HAVE_THREAD */
++#endif /* HAVE_OPENSSL_CRYPTO_LOCK for WITH_THREAD && OpenSSL < 1.1.0 */
+
+ PyDoc_STRVAR(module_doc,
+ "Implementation module for SSL socket operations. See the socket module\n\
+@@ -4527,11 +4611,16 @@ PyInit__ssl(void)
+ SSL_load_error_strings();
+ SSL_library_init();
+ #ifdef WITH_THREAD
++#ifdef HAVE_OPENSSL_CRYPTO_LOCK
+ /* note that this will start threading if not already started */
+ if (!_setup_ssl_threads()) {
+ return NULL;
+ }
++#elif OPENSSL_VERSION_1_1 && defined(OPENSSL_THREADS)
++ /* OpenSSL 1.1.0 builtin thread support is enabled */
++ _ssl_locks_count++;
+ #endif
++#endif /* WITH_THREAD */
+ OpenSSL_add_all_algorithms();
+
+ /* Add symbols to module dict */
+@@ -4678,7 +4767,9 @@ PyInit__ssl(void)
+ PY_SSL_VERSION_SSL3);
+ #endif
+ PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
+- PY_SSL_VERSION_SSL23);
++ PY_SSL_VERSION_TLS);
++ PyModule_AddIntConstant(m, "PROTOCOL_TLS",
++ PY_SSL_VERSION_TLS);
+ PyModule_AddIntConstant(m, "PROTOCOL_TLSv1",
+ PY_SSL_VERSION_TLS1);
+ #if HAVE_TLSv1_2
+
+diff --git a/Modules/_ssl.c b/Modules/_ssl.c
+--- a/Modules/_ssl.c
++++ b/Modules/_ssl.c
+@@ -151,11 +151,6 @@ static int COMP_get_type(const COMP_METH
+ {
+ return meth->type;
+ }
+-
+-static const char *COMP_get_name(const COMP_METHOD *meth)
+-{
+- return meth->name;
+-}
+ #endif
+
+ static pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx)
+@@ -1644,7 +1639,7 @@ static PyObject *
+ comp_method = SSL_get_current_compression(self->ssl);
+ if (comp_method == NULL || COMP_get_type(comp_method) == NID_undef)
+ Py_RETURN_NONE;
+- short_name = COMP_get_name(comp_method);
++ short_name = OBJ_nid2sn(COMP_get_type(comp_method));
+ if (short_name == NULL)
+ Py_RETURN_NONE;
+ return PyUnicode_DecodeFSDefault(short_name);
diff --git a/python35.spec b/python35.spec
index 98cac08..19f32c1 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.2
-Release: 3%{?dist}
+Release: 4%{?dist}
License: Python
Group: Development/Languages
@@ -385,6 +385,13 @@ Patch242: 00242-CVE-2016-1000110-httpoxy.patch
# Fedora needs the default mips64-linux-gnu
Patch243: 00243-fix-mips64-triplet.patch
+# 00247 #
+# Port ssl and hashlib modules to OpenSSL 1.1.0.
+# As of F26, OpenSSL is rebased to 1.1.0, so in order for python
+# to not FTBFS we need to backport this patch from 3.5.3
+# FIXED UPSTREAM: https://bugs.python.org/issue26470
+Patch247: 00247-port-ssl-and-hashlib-to-OpenSSL-1.1.0.patch
+
# (New patches go here ^^^)
#
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
@@ -452,6 +459,8 @@ done
# Remove embedded copy of zlib:
rm -r Modules/zlib || exit 1
+## Disabling hashlib patch for now as it needs to be reimplemented
+## for OpenSSL 1.1.0.
# Don't build upstream Python's implementation of these crypto algorithms;
# instead rely on _hashlib and OpenSSL.
#
@@ -459,9 +468,9 @@ rm -r Modules/zlib || exit 1
# OpenSSL (and thus respects FIPS mode), and does not fall back to _md5
# TODO: there seems to be no OpenSSL support in Python for sha3 so far
# when it is there, also remove _sha3/ dir
-for f in md5module.c sha1module.c sha256module.c sha512module.c; do
- rm Modules/$f
-done
+#for f in md5module.c sha1module.c sha256module.c sha512module.c; do
+# rm Modules/$f
+#done
#
# Apply patches:
@@ -480,7 +489,7 @@ done
%patch132 -p1
%patch137 -p1
%patch143 -p1 -b .tsc-on-ppc
-%patch146 -p1
+#patch146 -p1
%patch155 -p1
%patch157 -p1
%patch160 -p1
@@ -496,6 +505,7 @@ done
%patch209 -p1
%patch242 -p1
%patch243 -p1
+%patch247 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@@ -1022,6 +1032,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Sun Jan 01 2017 Miro Hronok <mhroncok(a)redhat.com> - 3.5.2-4
+- Add patch for OpenSSL 1.1.0
+
* Fri Oct 21 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.2-3
- Reword the description
commit f375de3d550859593822e14288fe2212dd136777
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Fri Oct 21 23:52:34 2016 +0200
Reword the description
diff --git a/python35.spec b/python35.spec
index 9e947c9..98cac08 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.2
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Python
Group: Development/Languages
@@ -418,8 +418,12 @@ Provides: bundled(python3-pip) = 8.1.1
Provides: bundled(python3-setuptools) = 20.10.1
%description
-Python 3.5 package for developers.
-No security fixes will be applied.
+Python %{pybasever} package for developers.
+
+This package exists to allow developers to test their code against an newer
+version of Python. This is not a full Python stack and if you wish to run
+your applications with Python %{pybasever}, update your Fedora to a newer
+version.
# ======================================================
@@ -1018,6 +1022,9 @@ CheckPython optimized
# ======================================================
%changelog
+* Fri Oct 21 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.2-3
+- Reword the description
+
* Tue Sep 13 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.2-2
- Fixed .pyc bytecompilation
- Remove unused configure flags
commit e4abf754032cf8aa5a4ef05a274309871fb0d639
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Sep 13 12:25:51 2016 +0200
Bump the release
diff --git a/python35.spec b/python35.spec
index 1581275..9e947c9 100644
--- a/python35.spec
+++ b/python35.spec
@@ -98,7 +98,7 @@
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.2
-Release: 1%{?dist}
+Release: 2%{?dist}
License: Python
Group: Development/Languages
@@ -1018,6 +1018,10 @@ CheckPython optimized
# ======================================================
%changelog
+* Tue Sep 13 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.2-2
+- Fixed .pyc bytecompilation
+- Remove unused configure flags
+
* Mon Aug 15 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.2-1
- Rebased to version 3.5.2 from F26
commit 8a7a7a76512fda283dcbca6287d94b18d7e7c756
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Sep 13 12:25:09 2016 +0200
Remove unused configure flags
diff --git a/python35.spec b/python35.spec
index cce1022..1581275 100644
--- a/python35.spec
+++ b/python35.spec
@@ -579,9 +579,9 @@ BuildPython debug \
python-debug \
python%{pybasever}-debug \
%ifarch %{ix86} x86_64 ppc %{power64}
- "--with-pydebug --with-tsc --with-count-allocs --with-call-profile --without-ensurepip" \
+ "--with-pydebug --with-tsc --without-ensurepip" \
%else
- "--with-pydebug --with-count-allocs --with-call-profile --without-ensurepip" \
+ "--with-pydebug --without-ensurepip" \
%endif
false \
-O0
commit b54c87b3b6b6c20470b6807ad80ac92d71bbf1e3
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Sep 13 12:24:51 2016 +0200
Fixed .pyc bytecompilation
diff --git a/macros.pybytecompile3.5 b/macros.pybytecompile3.5
index a8b79b2..96d1826 100644
--- a/macros.pybytecompile3.5
+++ b/macros.pybytecompile3.5
@@ -6,7 +6,5 @@
%py_byte_compile()\
python_binary="%1"\
bytecode_compilation_path="%2"\
-find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
-\
-find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
+find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]], optimize=opt) for opt in range(2) for f in sys.argv[1:]]' || :\
%{nil}
diff --git a/python35.spec b/python35.spec
index 55fff03..cce1022 100644
--- a/python35.spec
+++ b/python35.spec
@@ -797,16 +797,11 @@ iconv -f iso8859-1 -t utf-8 %{buildroot}/%{pylibdir}/Demo/rpc/README > README.co
# Do bytecompilation with the newly installed interpreter.
# This is similar to the script in macros.pybytecompile
-# compile *.pyo
-find %{buildroot} -type f -a -name "*.py" -print0 | \
- LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
- PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
- xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2]) for f in sys.argv[1:]]' || :
# compile *.pyc
find %{buildroot} -type f -a -name "*.py" -print0 | \
LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
- xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2], optimize=0) for f in sys.argv[1:]]' || :
+ xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2], optimize=opt) for opt in range(3) for f in sys.argv[1:]]' || :
# Fixup permissions for shared libraries from non-standard 555 to standard 755:
find %{buildroot} \
commit cb3ed8f93bca643a8e5ce6dd098466af8ad3fc98
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Sat Aug 27 14:06:48 2016 +0200
Clean the files section
diff --git a/python35.spec b/python35.spec
index 380805d..55fff03 100644
--- a/python35.spec
+++ b/python35.spec
@@ -963,6 +963,8 @@ CheckPython optimized
%files
%defattr(-, root, root)
%doc LICENSE README
+%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
+
%{_bindir}/pydoc%{pybasever}
%{_bindir}/python%{pybasever}
%{_bindir}/python%{pyshortver}
@@ -970,178 +972,7 @@ CheckPython optimized
%{_bindir}/pyvenv-%{pybasever}
%{_mandir}/*/*
-%{pylibdir}/lib2to3
-
-%dir %{pylibdir}/unittest/
-%dir %{pylibdir}/unittest/__pycache__/
-%{pylibdir}/unittest/*.py
-%{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/asyncio/
-%dir %{pylibdir}/asyncio/__pycache__/
-%{pylibdir}/asyncio/*.py
-%{pylibdir}/asyncio/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/venv/
-%dir %{pylibdir}/venv/__pycache__/
-%{pylibdir}/venv/*.py
-%{pylibdir}/venv/__pycache__/*%{bytecode_suffixes}
-%{pylibdir}/venv/scripts
-
-%{pylibdir}/wsgiref
-%{pylibdir}/xmlrpc
-
-%{pylibdir}/ensurepip/
-%{pylibdir}/idlelib
-
-%dir %{pylibdir}/test/
-%dir %{pylibdir}/test/__pycache__/
-%dir %{pylibdir}/test/support/
-%dir %{pylibdir}/test/support/__pycache__/
-%{pylibdir}/test/__init__.py
-%{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
-%{pylibdir}/test/support/__init__.py
-%{pylibdir}/test/support/__pycache__/__init__%{bytecode_suffixes}
-
-%dir %{pylibdir}/concurrent/
-%dir %{pylibdir}/concurrent/__pycache__/
-%{pylibdir}/concurrent/*.py
-%{pylibdir}/concurrent/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/concurrent/futures/
-%dir %{pylibdir}/concurrent/futures/__pycache__/
-%{pylibdir}/concurrent/futures/*.py
-%{pylibdir}/concurrent/futures/__pycache__/*%{bytecode_suffixes}
-
-%{pylibdir}/pydoc_data
-
-%dir %{pylibdir}
-%dir %{dynload_dir}
-%{dynload_dir}/_bisect.%{SOABI_optimized}.so
-%{dynload_dir}/_bz2.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_cn.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_hk.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_iso2022.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_jp.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_kr.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_tw.%{SOABI_optimized}.so
-%{dynload_dir}/_crypt.%{SOABI_optimized}.so
-%{dynload_dir}/_csv.%{SOABI_optimized}.so
-%{dynload_dir}/_ctypes.%{SOABI_optimized}.so
-%{dynload_dir}/_curses.%{SOABI_optimized}.so
-%{dynload_dir}/_curses_panel.%{SOABI_optimized}.so
-%{dynload_dir}/_dbm.%{SOABI_optimized}.so
-%{dynload_dir}/_decimal.%{SOABI_optimized}.so
-%{dynload_dir}/_elementtree.%{SOABI_optimized}.so
-%if %{with_gdbm}
-%{dynload_dir}/_gdbm.%{SOABI_optimized}.so
-%endif
-%{dynload_dir}/_hashlib.%{SOABI_optimized}.so
-%{dynload_dir}/_heapq.%{SOABI_optimized}.so
-%{dynload_dir}/_json.%{SOABI_optimized}.so
-%{dynload_dir}/_lsprof.%{SOABI_optimized}.so
-%{dynload_dir}/_lzma.%{SOABI_optimized}.so
-%{dynload_dir}/_multibytecodec.%{SOABI_optimized}.so
-%{dynload_dir}/_multiprocessing.%{SOABI_optimized}.so
-%{dynload_dir}/_opcode.%{SOABI_optimized}.so
-%{dynload_dir}/_pickle.%{SOABI_optimized}.so
-%{dynload_dir}/_posixsubprocess.%{SOABI_optimized}.so
-%{dynload_dir}/_random.%{SOABI_optimized}.so
-%{dynload_dir}/_socket.%{SOABI_optimized}.so
-%{dynload_dir}/_sqlite3.%{SOABI_optimized}.so
-%{dynload_dir}/_ssl.%{SOABI_optimized}.so
-%{dynload_dir}/_struct.%{SOABI_optimized}.so
-%{dynload_dir}/array.%{SOABI_optimized}.so
-%{dynload_dir}/audioop.%{SOABI_optimized}.so
-%{dynload_dir}/binascii.%{SOABI_optimized}.so
-%{dynload_dir}/cmath.%{SOABI_optimized}.so
-%{dynload_dir}/_datetime.%{SOABI_optimized}.so
-%{dynload_dir}/fcntl.%{SOABI_optimized}.so
-%{dynload_dir}/grp.%{SOABI_optimized}.so
-%{dynload_dir}/math.%{SOABI_optimized}.so
-%{dynload_dir}/mmap.%{SOABI_optimized}.so
-%{dynload_dir}/nis.%{SOABI_optimized}.so
-%{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so
-%{dynload_dir}/parser.%{SOABI_optimized}.so
-%{dynload_dir}/pyexpat.%{SOABI_optimized}.so
-%{dynload_dir}/readline.%{SOABI_optimized}.so
-%{dynload_dir}/resource.%{SOABI_optimized}.so
-%{dynload_dir}/select.%{SOABI_optimized}.so
-%{dynload_dir}/spwd.%{SOABI_optimized}.so
-%{dynload_dir}/syslog.%{SOABI_optimized}.so
-%{dynload_dir}/termios.%{SOABI_optimized}.so
-#%{dynload_dir}/time.%{SOABI_optimized}.so
-%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so
-%{dynload_dir}/unicodedata.%{SOABI_optimized}.so
-%{dynload_dir}/xxlimited.%{SOABI_optimized}.so
-%{dynload_dir}/zlib.%{SOABI_optimized}.so
-
-%dir %{pylibdir}/site-packages/
-%dir %{pylibdir}/site-packages/__pycache__/
-%{pylibdir}/site-packages/README
-%{pylibdir}/*.py
-%dir %{pylibdir}/__pycache__/
-%{pylibdir}/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/collections/
-%dir %{pylibdir}/collections/__pycache__/
-%{pylibdir}/collections/*.py
-%{pylibdir}/collections/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/ctypes/
-%dir %{pylibdir}/ctypes/__pycache__/
-%{pylibdir}/ctypes/*.py
-%{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes}
-%{pylibdir}/ctypes/macholib
-
-%{pylibdir}/curses
-
-%dir %{pylibdir}/dbm/
-%dir %{pylibdir}/dbm/__pycache__/
-%{pylibdir}/dbm/*.py
-%{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/distutils/
-%dir %{pylibdir}/distutils/__pycache__/
-%{pylibdir}/distutils/*.py
-%{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes}
-%{pylibdir}/distutils/README
-%{pylibdir}/distutils/command
-
-
-%dir %{pylibdir}/email/
-%dir %{pylibdir}/email/__pycache__/
-%{pylibdir}/email/*.py
-%{pylibdir}/email/__pycache__/*%{bytecode_suffixes}
-%{pylibdir}/email/mime
-%doc %{pylibdir}/email/architecture.rst
-
-%{pylibdir}/encodings
-
-%{pylibdir}/html
-%{pylibdir}/http
-
-%dir %{pylibdir}/importlib/
-%dir %{pylibdir}/importlib/__pycache__/
-%{pylibdir}/importlib/*.py
-%{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/json/
-%dir %{pylibdir}/json/__pycache__/
-%{pylibdir}/json/*.py
-%{pylibdir}/json/__pycache__/*%{bytecode_suffixes}
-
-%{pylibdir}/logging
-%{pylibdir}/multiprocessing
-%{pylibdir}/plat-linux
-
-%dir %{pylibdir}/sqlite3/
-%dir %{pylibdir}/sqlite3/__pycache__/
-%{pylibdir}/sqlite3/*.py
-%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}
-
-%{pylibdir}/urllib
-%{pylibdir}/xml
+%{pylibdir}/
%if "%{_lib}" == "lib64"
%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}
@@ -1149,14 +980,6 @@ CheckPython optimized
%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages/__pycache__/
%endif
-# "Makefile" and the config-32/64.h file are needed by
-# distutils/sysconfig.py:_init_posix(), so we include them in the core
-# package, along with their parent directories (bug 531901):
-%dir %{pylibdir}/config-%{LDVERSION_optimized}/
-%{pylibdir}/config-%{LDVERSION_optimized}/Makefile
-%dir %{_includedir}/python%{LDVERSION_optimized}/
-%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
-
%{_libdir}/%{py_INSTSONAME_optimized}
%if 0%{?with_systemtap}
%dir %(dirname %{tapsetdir})
@@ -1165,164 +988,35 @@ CheckPython optimized
%doc systemtap-example.stp pyfuntop.stp
%endif
-%{pylibdir}/config-%{LDVERSION_optimized}/*
-%{_includedir}/python%{LDVERSION_optimized}/*.h
-%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
+%{_includedir}/python%{LDVERSION_optimized}/
+
%{_bindir}/python%{pybasever}-config
%{_bindir}/python%{LDVERSION_optimized}-config
%{_bindir}/python%{LDVERSION_optimized}-*-config
%{_libdir}/libpython%{LDVERSION_optimized}.so
%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
%{_libdir}/pkgconfig/python-%{pybasever}.pc
-%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
+%exclude %{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
%{_bindir}/2to3-%{pybasever}
%{_bindir}/idle%{pybasever}
-%{pylibdir}/Tools
-%doc %{pylibdir}/Doc
-
-%{pylibdir}/tkinter
-%{dynload_dir}/_tkinter.%{SOABI_optimized}.so
-%{pylibdir}/turtle.py
-%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
-%dir %{pylibdir}/turtledemo
-%{pylibdir}/turtledemo/*.py
-%{pylibdir}/turtledemo/*.cfg
-%dir %{pylibdir}/turtledemo/__pycache__/
-%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}
-
-
-%{pylibdir}/ctypes/test
-%{pylibdir}/distutils/tests
-%{pylibdir}/sqlite3/test
-%{pylibdir}/test
-%{dynload_dir}/_ctypes_test.%{SOABI_optimized}.so
-%{dynload_dir}/_testbuffer.%{SOABI_optimized}.so
-%{dynload_dir}/_testcapi.%{SOABI_optimized}.so
-%{dynload_dir}/_testimportmultiple.%{SOABI_optimized}.so
-%{pylibdir}/lib2to3/tests
-%{pylibdir}/tkinter/test
-%{pylibdir}/unittest/test
-
-
-# We don't bother splitting the debug build out into further subpackages:
-# if you need it, you're probably a developer.
-
-# Hence the manifest is the combination of analogous files in the manifests of
-# all of the other subpackages
%if 0%{?with_debug_build}
-
-# Analog of the core subpackage's files:
%{_bindir}/python%{LDVERSION_debug}
-# Analog of the -libs subpackage's files:
-# ...with debug builds of the built-in "extension" modules:
-%{dynload_dir}/_bisect.%{SOABI_debug}.so
-%{dynload_dir}/_bz2.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_cn.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_hk.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_iso2022.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_jp.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_kr.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_tw.%{SOABI_debug}.so
-%{dynload_dir}/_crypt.%{SOABI_debug}.so
-%{dynload_dir}/_csv.%{SOABI_debug}.so
-%{dynload_dir}/_ctypes.%{SOABI_debug}.so
-%{dynload_dir}/_curses.%{SOABI_debug}.so
-%{dynload_dir}/_curses_panel.%{SOABI_debug}.so
-%{dynload_dir}/_dbm.%{SOABI_debug}.so
-%{dynload_dir}/_decimal.%{SOABI_debug}.so
-%{dynload_dir}/_elementtree.%{SOABI_debug}.so
-%if %{with_gdbm}
-%{dynload_dir}/_gdbm.%{SOABI_debug}.so
-%endif
-%{dynload_dir}/_hashlib.%{SOABI_debug}.so
-%{dynload_dir}/_heapq.%{SOABI_debug}.so
-%{dynload_dir}/_json.%{SOABI_debug}.so
-%{dynload_dir}/_lsprof.%{SOABI_debug}.so
-%{dynload_dir}/_lzma.%{SOABI_debug}.so
-%{dynload_dir}/_multibytecodec.%{SOABI_debug}.so
-%{dynload_dir}/_multiprocessing.%{SOABI_debug}.so
-%{dynload_dir}/_opcode.%{SOABI_debug}.so
-%{dynload_dir}/_pickle.%{SOABI_debug}.so
-%{dynload_dir}/_posixsubprocess.%{SOABI_debug}.so
-%{dynload_dir}/_random.%{SOABI_debug}.so
-%{dynload_dir}/_socket.%{SOABI_debug}.so
-%{dynload_dir}/_sqlite3.%{SOABI_debug}.so
-%{dynload_dir}/_ssl.%{SOABI_debug}.so
-%{dynload_dir}/_struct.%{SOABI_debug}.so
-%{dynload_dir}/array.%{SOABI_debug}.so
-%{dynload_dir}/audioop.%{SOABI_debug}.so
-%{dynload_dir}/binascii.%{SOABI_debug}.so
-%{dynload_dir}/cmath.%{SOABI_debug}.so
-%{dynload_dir}/_datetime.%{SOABI_debug}.so
-%{dynload_dir}/fcntl.%{SOABI_debug}.so
-%{dynload_dir}/grp.%{SOABI_debug}.so
-%{dynload_dir}/math.%{SOABI_debug}.so
-%{dynload_dir}/mmap.%{SOABI_debug}.so
-%{dynload_dir}/nis.%{SOABI_debug}.so
-%{dynload_dir}/ossaudiodev.%{SOABI_debug}.so
-%{dynload_dir}/parser.%{SOABI_debug}.so
-%{dynload_dir}/pyexpat.%{SOABI_debug}.so
-%{dynload_dir}/readline.%{SOABI_debug}.so
-%{dynload_dir}/resource.%{SOABI_debug}.so
-%{dynload_dir}/select.%{SOABI_debug}.so
-%{dynload_dir}/spwd.%{SOABI_debug}.so
-%{dynload_dir}/syslog.%{SOABI_debug}.so
-%{dynload_dir}/termios.%{SOABI_debug}.so
-#%{dynload_dir}/time.%{SOABI_debug}.so
-%{dynload_dir}/_testmultiphase.%{SOABI_debug}.so
-%{dynload_dir}/unicodedata.%{SOABI_debug}.so
-%{dynload_dir}/zlib.%{SOABI_debug}.so
-
-# No need to split things out the "Makefile" and the config-32/64.h file as we
-# do for the regular build above (bug 531901), since they're all in one package
-# now; they're listed below, under "-devel":
-
%{_libdir}/%{py_INSTSONAME_debug}
%if 0%{?with_systemtap}
-%dir %(dirname %{tapsetdir})
-%dir %{tapsetdir}
%{tapsetdir}/%{libpython_stp_debug}
%endif
-# Analog of the -devel subpackage's files:
-%{pylibdir}/config-%{LDVERSION_debug}
%{_includedir}/python%{LDVERSION_debug}
%{_bindir}/python%{LDVERSION_debug}-config
%{_libdir}/libpython%{LDVERSION_debug}.so
%{_libdir}/libpython%{LDVERSION_debug}.so.1.0
%{_libdir}/pkgconfig/python-%{LDVERSION_debug}.pc
-# Analog of the -tools subpackage's files:
-# None for now; we could build precanned versions that have the appropriate
-# shebang if needed
-
-# Analog of the tkinter subpackage's files:
-%{dynload_dir}/_tkinter.%{SOABI_debug}.so
-
-# Analog of the -test subpackage's files:
-%{dynload_dir}/_ctypes_test.%{SOABI_debug}.so
-%{dynload_dir}/_testbuffer.%{SOABI_debug}.so
-%{dynload_dir}/_testcapi.%{SOABI_debug}.so
-%{dynload_dir}/_testimportmultiple.%{SOABI_debug}.so
-
%endif # with_debug_build
-# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from
-# ldconfig (rhbz:562980).
-#
-# The /usr/lib/rpm/redhat/macros defines %__debug_package to use
-# debugfiles.list, and it appears that everything below /usr/lib/debug and
-# (/usr/src/debug) gets added to this file (via LISTFILES) in
-# /usr/lib/rpm/find-debuginfo.sh
-#
-# Hence by installing it below /usr/lib/debug we ensure it is added to the
-# -debuginfo subpackage
-# (if it doesn't, then the rpmbuild ought to fail since the debug-gdb.py
-# payload file would be unpackaged)
-
# ======================================================
# Finally, the changelog:
commit 90c54fba1548d97a241f8b30d187cd3f2548904b
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Aug 16 23:42:08 2016 +0200
Rebased to version 3.5.2 from F26
All the heavy lifting was done by Tomas Orsava
http://pkgs.fedoraproject.org/cgit/rpms/python3.git/commit/?id=6cd1c5f463...
diff --git a/.gitignore b/.gitignore
index 572419f..cee6423 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
Python-3.5.1.tar.xz
+/Python-3.5.2.tar.xz
diff --git a/00102-lib64.patch b/00102-lib64.patch
index be67b9b..35a442e 100644
--- a/00102-lib64.patch
+++ b/00102-lib64.patch
@@ -1,6 +1,8 @@
---- Python-3.4.0b1/Lib/distutils/command/install.py.lib64 2013-11-24 21:36:54.000000000 +0100
-+++ Python-3.4.0b1/Lib/distutils/command/install.py 2013-11-27 11:10:43.821150774 +0100
-@@ -45,14 +45,14 @@ else:
+diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
+index 67db007..b16fe0f 100644
+--- a/Lib/distutils/command/install.py
++++ b/Lib/distutils/command/install.py
+@@ -30,14 +30,14 @@ WINDOWS_SCHEME = {
INSTALL_SCHEMES = {
'unix_prefix': {
'purelib': '$base/lib/python$py_version_short/site-packages',
@@ -17,9 +19,11 @@
'headers': '$base/include/python/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
---- Python-3.4.0b1/Lib/distutils/sysconfig.py.lib64 2013-11-24 21:36:54.000000000 +0100
-+++ Python-3.4.0b1/Lib/distutils/sysconfig.py 2013-11-27 11:10:43.821150774 +0100
-@@ -141,8 +141,12 @@
+diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
+index e5c493d..a4846eb 100644
+--- a/Lib/distutils/sysconfig.py
++++ b/Lib/distutils/sysconfig.py
+@@ -132,8 +132,12 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
prefix = plat_specific and EXEC_PREFIX or PREFIX
if os.name == "posix":
@@ -33,9 +37,11 @@
if standard_lib:
return libpython
else:
---- Python-3.4.0b1/Lib/site.py.lib64 2013-11-24 21:36:54.000000000 +0100
-+++ Python-3.4.0b1/Lib/site.py 2013-11-27 11:10:43.822150773 +0100
-@@ -304,11 +304,15 @@
+diff --git a/Lib/site.py b/Lib/site.py
+index 3f78ef5..ad1033e 100644
+--- a/Lib/site.py
++++ b/Lib/site.py
+@@ -303,11 +303,15 @@ def getsitepackages(prefixes=None):
seen.add(prefix)
if os.sep == '/':
@@ -51,9 +57,11 @@
sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
if sys.platform == "darwin":
# for framework builds *only* we add the standard Apple
---- Python-3.4.0b1/Lib/sysconfig.py.lib64 2013-11-24 21:36:54.000000000 +0100
-+++ Python-3.4.0b1/Lib/sysconfig.py 2013-11-27 11:10:43.822150773 +0100
-@@ -20,10 +20,10 @@
+diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
+index 61451b2..b021cce 100644
+--- a/Lib/sysconfig.py
++++ b/Lib/sysconfig.py
+@@ -20,10 +20,10 @@ __all__ = [
_INSTALL_SCHEMES = {
'posix_prefix': {
@@ -67,7 +75,7 @@
'include':
'{installed_base}/include/python{py_version_short}{abiflags}',
'platinclude':
-@@ -61,10 +61,10 @@
+@@ -61,10 +61,10 @@ _INSTALL_SCHEMES = {
'data': '{userbase}',
},
'posix_user': {
@@ -81,9 +89,11 @@
'include': '{userbase}/include/python{py_version_short}',
'scripts': '{userbase}/bin',
'data': '{userbase}',
---- Python-3.4.0b1/Lib/test/test_site.py.lib64 2013-11-24 21:36:55.000000000 +0100
-+++ Python-3.4.0b1/Lib/test/test_site.py 2013-11-27 11:10:43.822150773 +0100
-@@ -244,8 +244,8 @@
+diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
+index da20a3d..f38ce06 100644
+--- a/Lib/test/test_site.py
++++ b/Lib/test/test_site.py
+@@ -248,8 +248,8 @@ class HelperFunctionsTests(unittest.TestCase):
self.assertEqual(dirs[1], wanted)
elif os.sep == '/':
# OS X non-framwework builds, Linux, FreeBSD, etc
@@ -94,9 +104,11 @@
'site-packages')
self.assertEqual(dirs[0], wanted)
else:
---- Python-3.4.0b1/Makefile.pre.in.lib64 2013-11-27 11:10:43.814150786 +0100
-+++ Python-3.4.0b1/Makefile.pre.in 2013-11-27 11:10:43.823150771 +0100
-@@ -115,7 +115,7 @@
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index 58d4258..e8364f0 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -125,7 +125,7 @@ LIBDIR= @libdir@
MANDIR= @mandir@
INCLUDEDIR= @includedir@
CONFINCLUDEDIR= $(exec_prefix)/include
@@ -105,20 +117,11 @@
ABIFLAGS= @ABIFLAGS@
# Detailed destination directories
---- Python-3.4.0b1/Modules/getpath.c.lib64 2013-11-24 21:36:56.000000000 +0100
-+++ Python-3.4.0b1/Modules/getpath.c 2013-11-27 11:17:33.619449704 +0100
-@@ -122,8 +122,8 @@
- #endif
-
- #ifndef PYTHONPATH
--#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
-- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
-+#define PYTHONPATH PREFIX "/lib64/python" VERSION ":" \
-+ EXEC_PREFIX "/lib64/python" VERSION "/lib-dynload"
- #endif
-
- #ifndef LANDMARK
-@@ -498,7 +498,7 @@
+diff --git a/Modules/getpath.c b/Modules/getpath.c
+index 18deb60..27ca814 100644
+--- a/Modules/getpath.c
++++ b/Modules/getpath.c
+@@ -494,7 +494,7 @@ calculate_path(void)
_pythonpath = Py_DecodeLocale(PYTHONPATH, NULL);
_prefix = Py_DecodeLocale(PREFIX, NULL);
_exec_prefix = Py_DecodeLocale(EXEC_PREFIX, NULL);
@@ -127,7 +130,7 @@
if (!_pythonpath || !_prefix || !_exec_prefix || !lib_python) {
Py_FatalError(
-@@ -687,7 +687,7 @@
+@@ -683,7 +683,7 @@ calculate_path(void)
}
else
wcsncpy(zip_path, _prefix, MAXPATHLEN);
@@ -136,7 +139,7 @@
bufsz = wcslen(zip_path); /* Replace "00" with version */
zip_path[bufsz - 6] = VERSION[0];
zip_path[bufsz - 5] = VERSION[2];
-@@ -699,7 +699,7 @@
+@@ -695,7 +695,7 @@ calculate_path(void)
fprintf(stderr,
"Could not find platform dependent libraries <exec_prefix>\n");
wcsncpy(exec_prefix, _exec_prefix, MAXPATHLEN);
@@ -145,9 +148,11 @@
}
/* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
---- Python-3.4.0b1/setup.py.lib64 2013-11-24 21:36:56.000000000 +0100
-+++ Python-3.4.0b1/setup.py 2013-11-27 11:10:43.824150769 +0100
-@@ -441,7 +441,7 @@
+diff --git a/setup.py b/setup.py
+index be33c46..f2779cc 100644
+--- a/setup.py
++++ b/setup.py
+@@ -492,7 +492,7 @@ class PyBuildExt(build_ext):
# directories (i.e. '.' and 'Include') must be first. See issue
# 10520.
if not cross_compiling:
@@ -156,7 +161,7 @@
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
# only change this for cross builds for 3.3, issues on Mageia
if cross_compiling:
-@@ -718,11 +718,11 @@
+@@ -780,11 +780,11 @@ class PyBuildExt(build_ext):
elif curses_library:
readline_libs.append(curses_library)
elif self.compiler.find_library_file(lib_dirs +
@@ -170,7 +175,7 @@
extra_link_args=readline_extra_link_args,
libraries=readline_libs) )
else:
-@@ -759,8 +759,8 @@
+@@ -821,8 +821,8 @@ class PyBuildExt(build_ext):
if krb5_h:
ssl_incs += krb5_h
ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
diff --git a/00146-hashlib-fips.patch b/00146-hashlib-fips.patch
index 3d92c34..e0cdce0 100644
--- a/00146-hashlib-fips.patch
+++ b/00146-hashlib-fips.patch
@@ -1,6 +1,8 @@
---- Python-3.4.0b1/Lib/hashlib.py.hashlib-fips 2013-11-24 21:36:54.000000000 +0100
-+++ Python-3.4.0b1/Lib/hashlib.py 2013-11-27 11:45:17.073617547 +0100
-@@ -23,6 +23,16 @@
+diff --git a/Lib/hashlib.py b/Lib/hashlib.py
+index 316cece..b7ad879 100644
+--- a/Lib/hashlib.py
++++ b/Lib/hashlib.py
+@@ -23,6 +23,16 @@ the zlib module.
Choose your hash function wisely. Some have known collision weaknesses.
sha384 and sha512 will be slow on 32 bit platforms.
@@ -17,7 +19,7 @@
Hash objects have these methods:
- update(arg): Update the hash object with the bytes in arg. Repeated calls
are equivalent to a single call with the concatenation of all
-@@ -63,6 +73,19 @@
+@@ -62,6 +72,18 @@ algorithms_available = set(__always_supported)
__all__ = __always_supported + ('new', 'algorithms_guaranteed',
'algorithms_available', 'pbkdf2_hmac')
@@ -33,11 +35,10 @@
+ kwargs.pop('usedforsecurity')
+ return func(*args, **kwargs)
+ return inner
-+
__builtin_constructor_cache = {}
-@@ -108,34 +131,41 @@
+@@ -100,31 +122,39 @@ def __get_openssl_constructor(name):
f = getattr(_hashlib, 'openssl_' + name)
# Allow the C module to raise ValueError. The function will be
# defined but the hash not actually available thanks to OpenSSL.
@@ -88,11 +89,8 @@
+ # because we want to make sure that Fedora uses everything from OpenSSL
return __get_builtin_constructor(name)(data)
--
- try:
- import _hashlib
- new = __hash_new
-@@ -215,7 +245,10 @@
+
+@@ -207,7 +237,10 @@ for __func_name in __always_supported:
# try them all, some may not work due to the OpenSSL
# version not supporting that algorithm.
try:
@@ -104,14 +102,17 @@
except ValueError:
import logging
logging.exception('code for hash %s was not found.', __func_name)
-@@ -223,3 +256,4 @@
+@@ -215,3 +248,4 @@ for __func_name in __always_supported:
# Cleanup locals()
del __always_supported, __func_name, __get_hash
del __py_new, __hash_new, __get_openssl_constructor
+del __ignore_usedforsecurity
---- Python-3.4.0b1/Lib/test/test_hashlib.py 2013-11-27 11:55:42.769601363 +0100
-+++ Python-3.4.0b1/Lib/test/test_hashlib.py 2013-11-28 09:33:03.929008508 +0100
-@@ -24,7 +24,22 @@
+\ No newline at end of file
+diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py
+index c9b113e..60e2392 100644
+--- a/Lib/test/test_hashlib.py
++++ b/Lib/test/test_hashlib.py
+@@ -24,7 +24,22 @@ from test.support import _4G, bigmemtest, import_fresh_module
COMPILED_WITH_PYDEBUG = hasattr(sys, 'gettotalrefcount')
c_hashlib = import_fresh_module('hashlib', fresh=['_hashlib'])
@@ -135,7 +136,7 @@
def hexstr(s):
assert isinstance(s, bytes), repr(s)
-@@ -34,6 +49,16 @@
+@@ -34,6 +49,16 @@ def hexstr(s):
r += h[(i >> 4) & 0xF] + h[i & 0xF]
return r
@@ -152,7 +153,7 @@
class HashLibTestCase(unittest.TestCase):
supported_hash_names = ( 'md5', 'MD5', 'sha1', 'SHA1',
-@@ -66,11 +91,11 @@
+@@ -63,11 +88,11 @@ class HashLibTestCase(unittest.TestCase):
# For each algorithm, test the direct constructor and the use
# of hashlib.new given the algorithm name.
for algorithm, constructors in self.constructors_to_test.items():
@@ -167,7 +168,7 @@
constructors.add(_test_algorithm_via_hashlib_new)
_hashlib = self._conditional_import_module('_hashlib')
-@@ -82,26 +107,12 @@
+@@ -79,27 +104,12 @@ class HashLibTestCase(unittest.TestCase):
for algorithm, constructors in self.constructors_to_test.items():
constructor = getattr(_hashlib, 'openssl_'+algorithm, None)
if constructor:
@@ -192,10 +193,11 @@
- if _sha512:
- add_builtin_constructor('sha384')
- add_builtin_constructor('sha512')
-
+-
super(HashLibTestCase, self).__init__(*args, **kwargs)
-@@ -157,9 +169,6 @@
+ @property
+@@ -148,9 +158,6 @@ class HashLibTestCase(unittest.TestCase):
else:
del sys.modules['_md5']
self.assertRaises(TypeError, get_builtin_constructor, 3)
@@ -205,7 +207,7 @@
def test_hexdigest(self):
for cons in self.hash_constructors:
-@@ -558,6 +567,65 @@
+@@ -433,6 +440,64 @@ class HashLibTestCase(unittest.TestCase):
self.assertEqual(expected_hash, hasher.hexdigest())
@@ -267,21 +269,23 @@
+
+ m = _hashlib.new('md5', b'abc\n', usedforsecurity=False)
+ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
-+
class KDFTests(unittest.TestCase):
-@@ -639,6 +707,7 @@
- with self.assertRaisesRegex(ValueError, 'unsupported hash type'):
- pbkdf2('unknown', b'pass', b'salt', 1)
-
+@@ -516,7 +581,7 @@ class KDFTests(unittest.TestCase):
+ out = pbkdf2(hash_name='sha1', password=b'password', salt=b'salt',
+ iterations=1, dklen=None)
+ self.assertEqual(out, self.pbkdf2_results['sha1'][0][0])
+-
+ @unittest.skip('skipped on Fedora, as we always use OpenSSL pbkdf2_hmac')
def test_pbkdf2_hmac_py(self):
self._test_pbkdf2_hmac(py_hashlib.pbkdf2_hmac)
---- Python-3.4.0b1/Modules/_hashopenssl.c.hashlib-fips 2013-11-24 21:36:56.000000000 +0100
-+++ Python-3.4.0b1/Modules/_hashopenssl.c 2013-11-27 12:01:57.443537463 +0100
-@@ -19,6 +19,8 @@
+diff --git a/Modules/_hashopenssl.c b/Modules/_hashopenssl.c
+index 44765ac..b8cf490 100644
+--- a/Modules/_hashopenssl.c
++++ b/Modules/_hashopenssl.c
+@@ -20,6 +20,8 @@
/* EVP is the preferred interface to hashing in OpenSSL */
@@ -290,7 +294,7 @@
#include <openssl/evp.h>
#include <openssl/hmac.h>
/* We use the object interface to discover what hashes OpenSSL supports. */
-@@ -48,11 +50,19 @@
+@@ -45,11 +47,19 @@ typedef struct {
static PyTypeObject EVPtype;
@@ -314,7 +318,7 @@
DEFINE_CONSTS_FOR_NEW(md5)
DEFINE_CONSTS_FOR_NEW(sha1)
-@@ -97,6 +107,48 @@
+@@ -92,6 +102,48 @@ EVP_hash(EVPobject *self, const void *vp, Py_ssize_t len)
}
}
@@ -363,7 +367,7 @@
/* Internal methods for a hash object */
static void
-@@ -281,15 +333,16 @@
+@@ -259,15 +311,16 @@ EVP_repr(EVPobject *self)
static int
EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
{
@@ -383,7 +387,7 @@
return -1;
}
-@@ -310,7 +363,12 @@
+@@ -288,7 +341,12 @@ EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
PyBuffer_Release(&view);
return -1;
}
@@ -397,7 +401,7 @@
self->name = name_obj;
Py_INCREF(self->name);
-@@ -394,7 +452,8 @@
+@@ -372,7 +430,8 @@ static PyTypeObject EVPtype = {
static PyObject *
EVPnew(PyObject *name_obj,
const EVP_MD *digest, const EVP_MD_CTX *initial_ctx,
@@ -407,7 +411,7 @@
{
EVPobject *self;
-@@ -409,7 +468,12 @@
+@@ -387,7 +446,12 @@ EVPnew(PyObject *name_obj,
if (initial_ctx) {
EVP_MD_CTX_copy(&self->ctx, initial_ctx);
} else {
@@ -421,7 +425,7 @@
}
if (cp && len) {
-@@ -433,21 +497,29 @@
+@@ -411,21 +475,29 @@ PyDoc_STRVAR(EVP_new__doc__,
An optional string argument may be provided and will be\n\
automatically hashed.\n\
\n\
@@ -455,17 +459,17 @@
return NULL;
}
-@@ -461,7 +533,8 @@
+@@ -439,7 +511,8 @@ EVP_new(PyObject *self, PyObject *args, PyObject *kwdict)
digest = EVP_get_digestbyname(name);
- ret_obj = EVPnew(name_obj, digest, NULL, (unsigned char*)view.buf, view.len);
+ ret_obj = EVPnew(name_obj, digest, NULL, (unsigned char*)view.buf, view.len,
-+ usedforsecurity);
++ usedforsecurity);
if (data_obj)
PyBuffer_Release(&view);
-@@ -742,57 +815,115 @@
+@@ -722,57 +795,114 @@ generate_hash_name_list(void)
/*
@@ -508,8 +512,8 @@
+ return implement_specific_EVP_new(self, args, kwdict, \
+ "|Oi:" #NAME, \
+ &cached_info_ ## NAME ); \
-+ }
-+
+ }
+
+static PyObject *
+implement_specific_EVP_new(PyObject *self, PyObject *args, PyObject *kwdict,
+ const char *format,
@@ -554,8 +558,8 @@
+ } else {
+ PyErr_SetString(PyExc_ValueError, "Error initializing hash");
+ }
- }
-
++ }
++
+ if (data_obj)
+ PyBuffer_Release(&view);
+
@@ -614,11 +618,10 @@
+ }
+ }
+}
-+
GEN_CONSTRUCTOR(md5)
GEN_CONSTRUCTOR(sha1)
-@@ -843,13 +974,10 @@
+@@ -819,13 +949,10 @@ PyInit__hashlib(void)
{
PyObject *m, *openssl_md_meth_names;
diff --git a/00200-gettext-plural-fix.patch b/00200-gettext-plural-fix.patch
deleted file mode 100644
index 93b817b..0000000
--- a/00200-gettext-plural-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up Python-2.5.1/Lib/gettext.py.plural Python-2.5.1/Lib/gettext.py
---- Python-2.5.1/Lib/gettext.py.plural 2007-09-10 11:38:57.000000000 -0400
-+++ Python-2.5.1/Lib/gettext.py 2007-09-10 11:39:00.000000000 -0400
-@@ -299,6 +299,8 @@ class GNUTranslations(NullTranslations):
- item = b_item.decode().strip()
- if not item:
- continue
-+ if item.startswith("#"):
-+ continue
- if ':' in item:
- k, v = item.split(':', 1)
- k = k.strip().lower()
diff --git a/00201-fix-memory-leak-in-gdbm.patch b/00201-fix-memory-leak-in-gdbm.patch
deleted file mode 100644
index 48839d5..0000000
--- a/00201-fix-memory-leak-in-gdbm.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- Modules/_gdbmmodule.c.orig 2013-07-08 14:54:27.803790151 +0200
-+++ Modules/_gdbmmodule.c 2013-07-08 14:55:25.006672443 +0200
-@@ -106,6 +106,7 @@
- if(okey.dsize) free(okey.dptr);
- okey=key;
- }
-+ if(okey.dsize) free(okey.dptr);
- dp->di_size = size;
- }
- return dp->di_size;
diff --git a/00203-disable-threading-test-koji.patch b/00203-disable-threading-test-koji.patch
deleted file mode 100644
index 70010fb..0000000
--- a/00203-disable-threading-test-koji.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up Python-3.4.3/Lib/test/test_threading.py.mstuchli Python-3.4.3/Lib/test/test_threading.py
---- Python-3.4.3/Lib/test/test_threading.py.mstuchli 2015-03-10 10:00:42.917355215 +0100
-+++ Python-3.4.3/Lib/test/test_threading.py 2015-03-10 10:00:47.735373842 +0100
-@@ -988,6 +988,7 @@ class ThreadingExceptionTests(BaseTestCa
- self.assertIn("ZeroDivisionError", err)
- self.assertNotIn("Unhandled exception", err)
-
-+ @unittest.skip('Fails in Koji due to mishandled signals')
- def test_print_exception_stderr_is_none_1(self):
- script = r"""if True:
- import sys
diff --git a/00207-math-once.patch b/00207-math-once.patch
deleted file mode 100644
index 572ed59..0000000
--- a/00207-math-once.patch
+++ /dev/null
@@ -1,56 +0,0 @@
---- Python-3.5.1/Makefile.pre.in.kh 2015-12-17 05:51:08.466546157 -0500
-+++ Python-3.5.1/Makefile.pre.in 2015-12-17 05:52:26.207761635 -0500
-@@ -587,11 +587,15 @@ pybuilddir.txt: $(BUILDPYTHON)
- exit 1 ; \
- fi
-
-+# This is shared by the math and cmath modules
-+Modules/_math.o: Modules/_math.c Modules/_math.h
-+ $(CC) -c $(CCSHARED) $(PY_CORE_CFLAGS) -o $@ $<
-+
- # Build the shared modules
- # Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for
- # -s, --silent or --quiet is always the first char.
- # Under BSD make, MAKEFLAGS might be " -s -v x=y".
--sharedmods: $(BUILDPYTHON) pybuilddir.txt
-+sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
- @case "$$MAKEFLAGS" in \
- *\ -s*|s*) quiet="-q";; \
- *) quiet="";; \
---- Python-3.5.1/Misc/NEWS.kh 2015-12-17 05:53:40.898929946 -0500
-+++ Python-3.5.1/Misc/NEWS 2015-12-17 05:54:28.599676136 -0500
-@@ -464,6 +464,10 @@ Build
- - Issue #24986: It is now possible to build Python on Windows without errors
- when external libraries are not available.
-
-+- Issue #24421: Compile Modules/_math.c once, before building extensions.
-+ Previously it could fail to compile properly if the math and cmath builds
-+ were concurrent.
-+
- Windows
- -------
-
---- Python-3.5.1/setup.py.kh 2015-12-17 06:38:30.950955607 -0500
-+++ Python-3.5.1/setup.py 2015-12-17 06:42:32.074722493 -0500
-@@ -582,13 +582,17 @@ class PyBuildExt(build_ext):
-
- # array objects
- exts.append( Extension('array', ['arraymodule.c']) )
-+
-+ shared_math = 'Modules/_math.o'
- # complex math library functions
-- exts.append( Extension('cmath', ['cmathmodule.c', '_math.c'],
-- depends=['_math.h'],
-+ exts.append( Extension('cmath', ['cmathmodule.c'],
-+ extra_objects=[shared_math],
-+ depends=['_math.h', shared_math],
- libraries=math_libs) )
- # math library functions, e.g. sin()
-- exts.append( Extension('math', ['mathmodule.c', '_math.c'],
-- depends=['_math.h'],
-+ exts.append( Extension('math', ['mathmodule.c'],
-+ extra_objects=[shared_math],
-+ depends=['_math.h', shared_math],
- libraries=math_libs) )
-
- # time libraries: librt may be needed for clock_gettime()
diff --git a/00208-disable-test_with_pip-on-ppc.patch b/00208-disable-test_with_pip-on-ppc.patch
deleted file mode 100644
index 00b98ae..0000000
--- a/00208-disable-test_with_pip-on-ppc.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up Python-3.5.1/Lib/test/test_venv.py.1292467 Python-3.5.1/Lib/test/test_venv.py
---- Python-3.5.1/Lib/test/test_venv.py.1292467 2015-12-21 13:37:44.740190595 +0100
-+++ Python-3.5.1/Lib/test/test_venv.py 2015-12-21 13:40:25.707911828 +0100
-@@ -319,6 +319,7 @@ class EnsurePipTest(BaseTest):
-
- # Requesting pip fails without SSL (http://bugs.python.org/issue19744)
- @unittest.skipIf(ssl is None, ensurepip._MISSING_SSL_MESSAGE)
-+ @unittest.skip('rhbz#1292467')
- def test_with_pip(self):
- rmtree(self.env_dir)
- with EnvironmentVarGuard() as envvars:
diff --git a/00209-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch b/00209-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
deleted file mode 100644
index e2c8581..0000000
--- a/00209-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 531dfa4bcfe55d5cd1524425944b07c5b02bddf9 Mon Sep 17 00:00:00 2001
-From: Charalampos Stratakis <cstratak(a)redhat.com>
-Date: Fri, 8 Jul 2016 17:16:41 +0200
-Subject: [PATCH] CVE-2016-5636 fix
-
----
- Modules/zipimport.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/Modules/zipimport.c b/Modules/zipimport.c
-index 06abb31..4d0d1de 100644
---- a/Modules/zipimport.c
-+++ b/Modules/zipimport.c
-@@ -1076,6 +1076,10 @@ get_data(PyObject *archive, PyObject *toc_entry)
- &date, &crc)) {
- return NULL;
- }
-+ if (data_size < 0) {
-+ PyErr_Format(ZipImportError, "negative data size");
-+ return NULL;
-+ }
-
- fp = _Py_fopen_obj(archive, "rb");
- if (!fp)
-@@ -1112,6 +1116,11 @@ get_data(PyObject *archive, PyObject *toc_entry)
- }
- file_offset += l; /* Start of file data */
-
-+ if (data_size > LONG_MAX - 1) {
-+ fclose(fp);
-+ PyErr_NoMemory();
-+ return NULL;
-+ }
- bytes_size = compress == 0 ? data_size : data_size + 1;
- if (bytes_size == 0)
- bytes_size++;
---
-2.7.4
-
diff --git a/00209-fix-test-pyexpat-failure.patch b/00209-fix-test-pyexpat-failure.patch
new file mode 100644
index 0000000..7b40280
--- /dev/null
+++ b/00209-fix-test-pyexpat-failure.patch
@@ -0,0 +1,17 @@
+diff -r 682a8e36dd18 Lib/test/test_pyexpat.py
+--- a/Lib/test/test_pyexpat.py Tue Jul 05 17:08:52 2016 +0300
++++ b/Lib/test/test_pyexpat.py Thu Jul 07 17:04:35 2016 +0800
+@@ -656,11 +656,9 @@
+ # \xc2\x85 is UTF-8 encoded U+0085 (NEXT LINE)
+ xml = b"<?xml version\xc2\x85='1.0'?>\r\n"
+ parser = expat.ParserCreate()
+- try:
++ err_pattern = r'XML declaration not well-formed: line 1, column \d+'
++ with self.assertRaisesRegex(expat.ExpatError, err_pattern):
+ parser.Parse(xml, True)
+- self.fail()
+- except expat.ExpatError as e:
+- self.assertEqual(str(e), 'XML declaration not well-formed: line 1, column 14')
+
+ class ErrorMessageTest(unittest.TestCase):
+ def test_codes(self):
diff --git a/00210-Raise-an-error-when-STARTTLS-fails.patch b/00210-Raise-an-error-when-STARTTLS-fails.patch
deleted file mode 100644
index 9083e61..0000000
--- a/00210-Raise-an-error-when-STARTTLS-fails.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 761db274ca898f8a92348ed5979d3d3c1b0d634a Mon Sep 17 00:00:00 2001
-From: Tomas Orsava <torsava(a)redhat.com>
-Date: Fri, 17 Jun 2016 16:08:11 +0200
-Subject: [PATCH] Raise an error when STARTTLS fails
-
-CVE-2016-0772 python: smtplib StartTLS stripping attack
-rhbz#1303647: https://bugzilla.redhat.com/show_bug.cgi?id=1303647
-rhbz#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
-
-Based on an upstream change by Benjamin Peterson <benjamin(a)python.org>
-- in changeset 101887:d590114c2394 3.4
-- https://hg.python.org/cpython/rev/d590114c2394
----
- Lib/smtplib.py | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/Lib/smtplib.py b/Lib/smtplib.py
-index 4756973..dfbf5f9 100755
---- a/Lib/smtplib.py
-+++ b/Lib/smtplib.py
-@@ -773,6 +773,11 @@ class SMTP:
- self.ehlo_resp = None
- self.esmtp_features = {}
- self.does_esmtp = 0
-+ else:
-+ # RFC 3207:
-+ # 501 Syntax error (no parameters allowed)
-+ # 454 TLS not available due to temporary reason
-+ raise SMTPResponseException(resp, reply)
- return (resp, reply)
-
- def sendmail(self, from_addr, to_addrs, msg, mail_options=[],
---
-2.5.5
-
diff --git a/00211-fix-test-pyexpat-failure.patch b/00211-fix-test-pyexpat-failure.patch
deleted file mode 100644
index 7b40280..0000000
--- a/00211-fix-test-pyexpat-failure.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -r 682a8e36dd18 Lib/test/test_pyexpat.py
---- a/Lib/test/test_pyexpat.py Tue Jul 05 17:08:52 2016 +0300
-+++ b/Lib/test/test_pyexpat.py Thu Jul 07 17:04:35 2016 +0800
-@@ -656,11 +656,9 @@
- # \xc2\x85 is UTF-8 encoded U+0085 (NEXT LINE)
- xml = b"<?xml version\xc2\x85='1.0'?>\r\n"
- parser = expat.ParserCreate()
-- try:
-+ err_pattern = r'XML declaration not well-formed: line 1, column \d+'
-+ with self.assertRaisesRegex(expat.ExpatError, err_pattern):
- parser.Parse(xml, True)
-- self.fail()
-- except expat.ExpatError as e:
-- self.assertEqual(str(e), 'XML declaration not well-formed: line 1, column 14')
-
- class ErrorMessageTest(unittest.TestCase):
- def test_codes(self):
diff --git a/00237-Raise-an-error-when-STARTTLS-fails.patch b/00237-Raise-an-error-when-STARTTLS-fails.patch
new file mode 100644
index 0000000..9083e61
--- /dev/null
+++ b/00237-Raise-an-error-when-STARTTLS-fails.patch
@@ -0,0 +1,35 @@
+From 761db274ca898f8a92348ed5979d3d3c1b0d634a Mon Sep 17 00:00:00 2001
+From: Tomas Orsava <torsava(a)redhat.com>
+Date: Fri, 17 Jun 2016 16:08:11 +0200
+Subject: [PATCH] Raise an error when STARTTLS fails
+
+CVE-2016-0772 python: smtplib StartTLS stripping attack
+rhbz#1303647: https://bugzilla.redhat.com/show_bug.cgi?id=1303647
+rhbz#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
+
+Based on an upstream change by Benjamin Peterson <benjamin(a)python.org>
+- in changeset 101887:d590114c2394 3.4
+- https://hg.python.org/cpython/rev/d590114c2394
+---
+ Lib/smtplib.py | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/Lib/smtplib.py b/Lib/smtplib.py
+index 4756973..dfbf5f9 100755
+--- a/Lib/smtplib.py
++++ b/Lib/smtplib.py
+@@ -773,6 +773,11 @@ class SMTP:
+ self.ehlo_resp = None
+ self.esmtp_features = {}
+ self.does_esmtp = 0
++ else:
++ # RFC 3207:
++ # 501 Syntax error (no parameters allowed)
++ # 454 TLS not available due to temporary reason
++ raise SMTPResponseException(resp, reply)
+ return (resp, reply)
+
+ def sendmail(self, from_addr, to_addrs, msg, mail_options=[],
+--
+2.5.5
+
diff --git a/00241-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch b/00241-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
new file mode 100644
index 0000000..e2c8581
--- /dev/null
+++ b/00241-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
@@ -0,0 +1,39 @@
+From 531dfa4bcfe55d5cd1524425944b07c5b02bddf9 Mon Sep 17 00:00:00 2001
+From: Charalampos Stratakis <cstratak(a)redhat.com>
+Date: Fri, 8 Jul 2016 17:16:41 +0200
+Subject: [PATCH] CVE-2016-5636 fix
+
+---
+ Modules/zipimport.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/Modules/zipimport.c b/Modules/zipimport.c
+index 06abb31..4d0d1de 100644
+--- a/Modules/zipimport.c
++++ b/Modules/zipimport.c
+@@ -1076,6 +1076,10 @@ get_data(PyObject *archive, PyObject *toc_entry)
+ &date, &crc)) {
+ return NULL;
+ }
++ if (data_size < 0) {
++ PyErr_Format(ZipImportError, "negative data size");
++ return NULL;
++ }
+
+ fp = _Py_fopen_obj(archive, "rb");
+ if (!fp)
+@@ -1112,6 +1116,11 @@ get_data(PyObject *archive, PyObject *toc_entry)
+ }
+ file_offset += l; /* Start of file data */
+
++ if (data_size > LONG_MAX - 1) {
++ fclose(fp);
++ PyErr_NoMemory();
++ return NULL;
++ }
+ bytes_size = compress == 0 ? data_size : data_size + 1;
+ if (bytes_size == 0)
+ bytes_size++;
+--
+2.7.4
+
diff --git a/00242-CVE-2016-1000110-httpoxy.patch b/00242-CVE-2016-1000110-httpoxy.patch
new file mode 100644
index 0000000..244ebec
--- /dev/null
+++ b/00242-CVE-2016-1000110-httpoxy.patch
@@ -0,0 +1,89 @@
+diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst
+index 24a4156..d2c7991 100644
+--- a/Doc/howto/urllib2.rst
++++ b/Doc/howto/urllib2.rst
+@@ -538,6 +538,11 @@ setting up a `Basic Authentication`_ handler: ::
+ through a proxy. However, this can be enabled by extending urllib.request as
+ shown in the recipe [#]_.
+
++.. note::
++
++ ``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see
++ the documentation on :func:`~urllib.request.getproxies`.
++
+
+ Sockets and Layers
+ ==================
+diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst
+index 6c1bfb8..1291aeb 100644
+--- a/Doc/library/urllib.request.rst
++++ b/Doc/library/urllib.request.rst
+@@ -173,6 +173,16 @@ The :mod:`urllib.request` module defines the following functions:
+ If both lowercase and uppercase environment variables exist (and disagree),
+ lowercase is preferred.
+
++ .. note::
++
++ If the environment variable ``REQUEST_METHOD`` is set, which usually
++ indicates your script is running in a CGI environment, the environment
++ variable ``HTTP_PROXY`` (uppercase ``_PROXY``) will be ignored. This is
++ because that variable can be injected by a client using the "Proxy:" HTTP
++ header. If you need to use an HTTP proxy in a CGI environment, either use
++ ``ProxyHandler`` explicitly, or make sure the variable name is in
++ lowercase (or at least the ``_proxy`` suffix).
++
+
+ The following classes are provided:
+
+@@ -280,6 +290,11 @@ The following classes are provided:
+ list of hostname suffixes, optionally with ``:port`` appended, for example
+ ``cern.ch,ncsa.uiuc.edu,some.host:8080``.
+
++ .. note::
++
++ ``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set;
++ see the documentation on :func:`~urllib.request.getproxies`.
++
+
+ .. class:: HTTPPasswordMgr()
+
+diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
+index 5d05f8d..c26c52a 100644
+--- a/Lib/test/test_urllib.py
++++ b/Lib/test/test_urllib.py
+@@ -232,6 +232,18 @@ class ProxyTests(unittest.TestCase):
+ self.assertTrue(urllib.request.proxy_bypass_environment('anotherdomain.com:8888'))
+ self.assertTrue(urllib.request.proxy_bypass_environment('newdomain.com:1234'))
+
++ def test_proxy_cgi_ignore(self):
++ try:
++ self.env.set('HTTP_PROXY', 'http://somewhere:3128')
++ proxies = urllib.request.getproxies_environment()
++ self.assertEqual('http://somewhere:3128', proxies['http'])
++ self.env.set('REQUEST_METHOD', 'GET')
++ proxies = urllib.request.getproxies_environment()
++ self.assertNotIn('http', proxies)
++ finally:
++ self.env.unset('REQUEST_METHOD')
++ self.env.unset('HTTP_PROXY')
++
+ def test_proxy_bypass_environment_host_match(self):
+ bypass = urllib.request.proxy_bypass_environment
+ self.env.set('NO_PROXY',
+diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
+index 1731fe3..3be327d 100644
+--- a/Lib/urllib/request.py
++++ b/Lib/urllib/request.py
+@@ -2412,6 +2412,12 @@ def getproxies_environment():
+ name = name.lower()
+ if value and name[-6:] == '_proxy':
+ proxies[name[:-6]] = value
++ # CVE-2016-1000110 - If we are running as CGI script, forget HTTP_PROXY
++ # (non-all-lowercase) as it may be set from the web server by a "Proxy:"
++ # header from the client
++ # If "proxy" is lowercase, it will still be used thanks to the next block
++ if 'REQUEST_METHOD' in os.environ:
++ proxies.pop('http', None)
+ for name, value in os.environ.items():
+ if name[-6:] == '_proxy':
+ name = name.lower()
diff --git a/00243-fix-mips64-triplet.patch b/00243-fix-mips64-triplet.patch
new file mode 100644
index 0000000..91bf6af
--- /dev/null
+++ b/00243-fix-mips64-triplet.patch
@@ -0,0 +1,42 @@
+diff -urp Python-3.5.0/configure p/configure
+--- Python-3.5.0/configure 2016-02-25 16:12:12.615184011 +0000
++++ p/configure 2016-02-25 16:13:01.293412517 +0000
+@@ -5133,7 +5133,7 @@ cat >> conftest.c <<EOF
+ # elif _MIPS_SIM == _ABIN32
+ mips64el-linux-gnuabin32
+ # elif _MIPS_SIM == _ABI64
+- mips64el-linux-gnuabi64
++ mips64el-linux-gnu
+ # else
+ # error unknown platform triplet
+ # endif
+@@ -5143,7 +5143,7 @@ cat >> conftest.c <<EOF
+ # elif _MIPS_SIM == _ABIN32
+ mips64-linux-gnuabin32
+ # elif _MIPS_SIM == _ABI64
+- mips64-linux-gnuabi64
++ mips64-linux-gnu
+ # else
+ # error unknown platform triplet
+ # endif
+diff -urp Python-3.5.0/configure.ac p/configure.ac
+--- Python-3.5.0/configure.ac 2016-02-25 16:12:11.663159985 +0000
++++ p/configure.ac 2016-02-25 16:13:18.814854710 +0000
+@@ -784,7 +784,7 @@ cat >> conftest.c <<EOF
+ # elif _MIPS_SIM == _ABIN32
+ mips64el-linux-gnuabin32
+ # elif _MIPS_SIM == _ABI64
+- mips64el-linux-gnuabi64
++ mips64el-linux-gnu
+ # else
+ # error unknown platform triplet
+ # endif
+@@ -794,7 +794,7 @@ cat >> conftest.c <<EOF
+ # elif _MIPS_SIM == _ABIN32
+ mips64-linux-gnuabin32
+ # elif _MIPS_SIM == _ABI64
+- mips64-linux-gnuabi64
++ mips64-linux-gnu
+ # else
+ # error unknown platform triplet
+ # endif
diff --git a/python35.spec b/python35.spec
index 6c8af61..380805d 100644
--- a/python35.spec
+++ b/python35.spec
@@ -97,8 +97,8 @@
# ==================
Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
-Version: %{pybasever}.1
-Release: 14%{?dist}
+Version: %{pybasever}.2
+Release: 1%{?dist}
License: Python
Group: Development/Languages
@@ -354,31 +354,6 @@ Patch186: 00186-dont-raise-from-py_compile.patch
# relying on this will fail (test_filename_changing_on_output_single_dir)
Patch188: 00188-fix-lib2to3-tests-when-hashlib-doesnt-compile-properly.patch
-# 00194 #
-# Tests requiring SIGHUP to work don't work in Koji
-# see rhbz#1088233
-Patch194: temporarily-disable-tests-requiring-SIGHUP.patch
-
-# 00196 #
-# Fix test_gdb failure on ppc64le
-Patch196: 00196-test-gdb-match-addr-before-builtin.patch
-
-# 00200 #
-# Fix for gettext plural form headers (lines that begin with "#")
-# Note: Backported from scl
-Patch200: 00200-gettext-plural-fix.patch
-
-# 00201 #
-# Fixes memory leak in gdbm module (rhbz#977308)
-# This was upstreamed as a part of bigger patch, but for our purposes
-# this is ok: http://bugs.python.org/issue18404
-# Note: Backported from scl
-Patch201: 00201-fix-memory-leak-in-gdbm.patch
-
-# 00203 #
-# test_threading fails in koji dues to it's handling of signals
-Patch203: 00203-disable-threading-test-koji.patch
-
# 00205 #
# LIBPL variable in makefile takes LIBPL from configure.ac
# but the LIBPL variable defined there doesn't respect libdir macro
@@ -389,66 +364,36 @@ Patch205: 00205-make-libpl-respect-lib64.patch
# by debian but fedora infra uses only eabi without hf
Patch206: 00206-remove-hf-from-arm-triplet.patch
-# 00207 #
-# Avoid truncated _math.o files caused by parallel builds
-# modified version of https://bugs.python.org/issue24421
-# rhbz#1292461
-Patch207: 00207-math-once.patch
-
-# 00208 #
-# test_with_pip (test.test_venv.EnsurePipTest) fails on ppc64*
-# rhbz#1292467
-Patch208: 00208-disable-test_with_pip-on-ppc.patch
-
# 00209 #
-# CVE-2016-5636: http://seclists.org/oss-sec/2016/q2/560
-# rhbz#1345859: https://bugzilla.redhat.com/show_bug.cgi?id=1345859
-# https://hg.python.org/cpython/rev/10dad6da1b28/
-# https://hg.python.org/cpython/rev/5533a9e02b21
-# Fix possible integer overflow and heap corruption in zipimporter.get_data()
-# FIXED UPSTREAM: https://bugs.python.org/issue26171
-Patch209: 00209-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
-
-# 00210 #
-# CVE-2016-0772 python: smtplib StartTLS stripping attack
-# rhbz#1303647: https://bugzilla.redhat.com/show_bug.cgi?id=1303647
-# rhbz#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
-# FIXED UPSTREAM: https://hg.python.org/cpython/rev/d590114c2394
-# Raise an error when STARTTLS fails
-Patch210: 00210-Raise-an-error-when-STARTTLS-fails.patch
-
-# 00211 #
# Fix test breakage with version 2.2.0 of Expat
# rhbz#1353918: https://bugzilla.redhat.com/show_bug.cgi?id=1353918
-# NOT YET FIXED UPSTREAM: http://bugs.python.org/issue27369
-Patch211: 00211-fix-test-pyexpat-failure.patch
+# FIXED UPSTREAM: http://bugs.python.org/issue27369
+Patch209: 00209-fix-test-pyexpat-failure.patch
# 00242 #
+# HTTPoxy attack (CVE-2016-1000110)
+# https://httpoxy.org/
+# FIXED UPSTREAM: http://bugs.python.org/issue27568
+# Based on a patch by Rmi Rampin
+# Resolves: rhbz#1359177
+Patch242: 00242-CVE-2016-1000110-httpoxy.patch
+
+# 00243 #
# Fix the triplet used on 64-bit MIPS
# rhbz#1322526: https://bugzilla.redhat.com/show_bug.cgi?id=1322526
# Upstream uses Debian-like style mips64-linux-gnuabi64
# Fedora needs the default mips64-linux-gnu
-Patch242: 00242-fix-mips64-triplet.patch
+Patch243: 00243-fix-mips64-triplet.patch
# (New patches go here ^^^)
#
-# When adding new patches to "python" and "python3" in Fedora 17 onwards,
-# please try to keep the patch numbers in-sync between the two specfiles:
-#
-# - use the same patch number across both specfiles for conceptually-equivalent
-# fixes, ideally with the same name
-#
-# - when a patch is relevant to both specfiles, use the same introductory
-# comment in both specfiles where possible (to improve "diff" output when
-# comparing them)
+# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
+# please try to keep the patch numbers in-sync between all specfiles.
#
-# - when a patch is only relevant for one of the two specfiles, leave a gap
-# in the patch numbering in the other specfile, adding a comment when
-# omitting a patch, both in the manifest section here, and in the "prep"
-# phase below
+# More information, and a patch number catalog, is at:
#
-# Hopefully this will make it easier to ensure that all relevant fixes are
-# applied to both versions.
+# https://fedoraproject.org/wiki/SIGs/Python/PythonPatches
+
# add correct arch for ppc64/ppc64le
# it should be ppc64le-linux-gnu/ppc64-linux-gnu instead powerpc64le-linux-gnu/powerpc64-linux-gnu
@@ -469,8 +414,8 @@ URL: http://www.python.org/
%global __provides_exclude ^python\\(abi\\) = 3\\..$
# We keep those inside on purpose
-Provides: bundled(python3-pip) = 7.1.2
-Provides: bundled(python3-setuptools) = 18.2
+Provides: bundled(python3-pip) = 8.1.1
+Provides: bundled(python3-setuptools) = 20.10.1
%description
Python 3.5 package for developers.
@@ -542,18 +487,11 @@ done
%patch184 -p1
%patch186 -p1
%patch188 -p1
-
-%patch194 -p1
-%patch196 -p1
-%patch203 -p1
%patch205 -p1
%patch206 -p1
-%patch207 -p1
-%patch208 -p1
%patch209 -p1
-%patch210 -p1
-%patch211 -p1
%patch242 -p1
+%patch243 -p1
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
# are many differences between 2.6 and the Python 3 library.
@@ -1391,5 +1329,8 @@ CheckPython optimized
# ======================================================
%changelog
+* Mon Aug 15 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.2-1
+- Rebased to version 3.5.2 from F26
+
* Tue Aug 09 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-14
- Imported from F25
diff --git a/sources b/sources
index e69de29..aeb1966 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+8906efbacfcdc7c3c9198aeefafd159e Python-3.5.2.tar.xz
commit 08ffab1cab4793c8023754f5c1804f990970db4c
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Aug 10 17:00:36 2016 +0200
No debug build
diff --git a/python35.spec b/python35.spec
index 33ee631..6c8af61 100644
--- a/python35.spec
+++ b/python35.spec
@@ -50,7 +50,7 @@
%global py_INSTSONAME_optimized libpython%{LDVERSION_optimized}.so.%{py_SOVERSION}
%global py_INSTSONAME_debug libpython%{LDVERSION_debug}.so.%{py_SOVERSION}
-%global with_debug_build 1
+%global with_debug_build 0
%global with_gdb_hooks 1
commit c2323f2bf8cf982d22b47ca1e944542db9e6d31e
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Aug 10 16:43:11 2016 +0200
Provide bundled pip and setuptools
diff --git a/python35.spec b/python35.spec
index 2325f88..33ee631 100644
--- a/python35.spec
+++ b/python35.spec
@@ -468,6 +468,10 @@ URL: http://www.python.org/
%global __requires_exclude ^python\\(abi\\) = 3\\..$
%global __provides_exclude ^python\\(abi\\) = 3\\..$
+# We keep those inside on purpose
+Provides: bundled(python3-pip) = 7.1.2
+Provides: bundled(python3-setuptools) = 18.2
+
%description
Python 3.5 package for developers.
No security fixes will be applied.
commit 8bdbc88da08b7adea15a2d049b80d2c453788430
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Aug 10 16:29:58 2016 +0200
Do not require/provide python(abi)
diff --git a/python35.spec b/python35.spec
index f6bf7a0..2325f88 100644
--- a/python35.spec
+++ b/python35.spec
@@ -465,6 +465,8 @@ URL: http://www.python.org/
# We'll not provide this, on purpose
# No package in Fedora shall ever depend on this
# Provides: python(abi) = %{pybasever}
+%global __requires_exclude ^python\\(abi\\) = 3\\..$
+%global __provides_exclude ^python\\(abi\\) = 3\\..$
%description
Python 3.5 package for developers.
commit 50f1f6a057bd29ac3294232fb3dc11d358f6ac98
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Wed Aug 10 15:12:50 2016 +0200
Remove stuff that conflicts with python3 package
diff --git a/python35.spec b/python35.spec
index ecc30e9..f6bf7a0 100644
--- a/python35.spec
+++ b/python35.spec
@@ -894,15 +894,6 @@ for Module in %{buildroot}/%{dynload_dir}/*.so ; do
esac
done
-# Create "/usr/bin/python3-debug", a symlink to the python3 debug binary, to
-# avoid the user having to know the precise version and ABI flags. (see
-# e.g. rhbz#676748):
-%if 0%{?with_debug_build}
-ln -s \
- %{_bindir}/python%{LDVERSION_debug} \
- %{buildroot}%{_bindir}/python3-debug
-%endif
-
#
# Systemtap hooks:
#
@@ -944,6 +935,15 @@ echo '[ $? -eq 127 ] && echo "Could not find python%{LDVERSION_optimized}-`uname
%{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
chmod +x %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
+# Remove stuff that would conflict with python3 package
+mv %{buildroot}%{_bindir}/python{3,%{pyshortver}}
+rm %{buildroot}%{_bindir}/*3
+rm %{buildroot}%{_bindir}/python3-*
+rm %{buildroot}%{_bindir}/pyvenv
+rm %{buildroot}%{_libdir}/libpython3.so
+rm %{buildroot}%{_mandir}/man1/python3.1*
+rm %{buildroot}%{_libdir}/pkgconfig/python3.pc
+
# ======================================================
# Running the upstream test suite
# ======================================================
@@ -1019,16 +1019,14 @@ CheckPython optimized
%files
%defattr(-, root, root)
%doc LICENSE README
-%{_bindir}/pydoc*
-%{_bindir}/python3
+%{_bindir}/pydoc%{pybasever}
%{_bindir}/python%{pybasever}
+%{_bindir}/python%{pyshortver}
%{_bindir}/python%{pybasever}m
-%{_bindir}/pyvenv
%{_bindir}/pyvenv-%{pybasever}
%{_mandir}/*/*
%{pylibdir}/lib2to3
-%exclude %{pylibdir}/lib2to3/tests
%dir %{pylibdir}/unittest/
%dir %{pylibdir}/unittest/__pycache__/
@@ -1049,12 +1047,7 @@ CheckPython optimized
%{pylibdir}/wsgiref
%{pylibdir}/xmlrpc
-%dir %{pylibdir}/ensurepip/
-%dir %{pylibdir}/ensurepip/__pycache__/
-%{pylibdir}/ensurepip/*.py
-%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes}
-%exclude %{pylibdir}/ensurepip/_bundled
-
+%{pylibdir}/ensurepip/
%{pylibdir}/idlelib
%dir %{pylibdir}/test/
@@ -1203,9 +1196,6 @@ CheckPython optimized
%{pylibdir}/sqlite3/*.py
%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}
-%exclude %{pylibdir}/turtle.py
-%exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
-
%{pylibdir}/urllib
%{pylibdir}/xml
@@ -1224,7 +1214,6 @@ CheckPython optimized
%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
%{_libdir}/%{py_INSTSONAME_optimized}
-%{_libdir}/libpython3.so
%if 0%{?with_systemtap}
%dir %(dirname %{tapsetdir})
%dir %{tapsetdir}
@@ -1233,28 +1222,22 @@ CheckPython optimized
%endif
%{pylibdir}/config-%{LDVERSION_optimized}/*
-%exclude %{pylibdir}/config-%{LDVERSION_optimized}/Makefile
%{_includedir}/python%{LDVERSION_optimized}/*.h
-%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
-%{_bindir}/python3-config
%{_bindir}/python%{pybasever}-config
%{_bindir}/python%{LDVERSION_optimized}-config
%{_bindir}/python%{LDVERSION_optimized}-*-config
%{_libdir}/libpython%{LDVERSION_optimized}.so
%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
%{_libdir}/pkgconfig/python-%{pybasever}.pc
-%{_libdir}/pkgconfig/python3.pc
%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
-%{_bindir}/python3-2to3
%{_bindir}/2to3-%{pybasever}
-%{_bindir}/idle*
+%{_bindir}/idle%{pybasever}
%{pylibdir}/Tools
%doc %{pylibdir}/Doc
%{pylibdir}/tkinter
-%exclude %{pylibdir}/tkinter/test
%{dynload_dir}/_tkinter.%{SOABI_optimized}.so
%{pylibdir}/turtle.py
%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
@@ -1288,7 +1271,6 @@ CheckPython optimized
# Analog of the core subpackage's files:
%{_bindir}/python%{LDVERSION_debug}
-%{_bindir}/python3-debug
# Analog of the -libs subpackage's files:
# ...with debug builds of the built-in "extension" modules:
commit b7f58eaee984f7813d43543f0da803d14726c4f5
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Aug 9 15:00:03 2016 +0200
Make the package flat
Also remove system-python related things
diff --git a/macros.systempython b/macros.systempython
deleted file mode 100644
index b7d1e91..0000000
--- a/macros.systempython
+++ /dev/null
@@ -1,4 +0,0 @@
-%system_python_abi %{expand: \
-%global __requires_exclude ^python\\\\(abi\\\\) = 3\\\\..$
-Requires: system-python(abi) = %{python3_version}
-}
diff --git a/python35.spec b/python35.spec
index 372bfc9..ecc30e9 100644
--- a/python35.spec
+++ b/python35.spec
@@ -95,7 +95,7 @@
# ==================
# Top-level metadata
# ==================
-Summary: Version 3 of the Python programming language aka Python 3000
+Summary: Version 3.5 of the Python programming language
Name: python%{pyshortver}
Version: %{pybasever}.1
Release: 14%{?dist}
@@ -156,6 +156,8 @@ BuildRequires: valgrind-devel
BuildRequires: xz-devel
BuildRequires: zlib-devel
+Requires: expat >= 2.1.0
+BuildRequires: python-rpm-macros
# =======================
# Source code and patches
@@ -186,9 +188,6 @@ Source7: pyfuntop.stp
# Written by bkabrda
Source8: check-pyc-and-pyo-timestamps.py
-# A simple macro that enables packages to require system-python(abi) instead of python(abi)
-Source9: macros.systempython
-
# Fixup distutils/unixccompiler.py to remove standard library path from rpath:
# Was Patch0 in ivazquez' python3000 specfile:
Patch1: Python-3.1.1-rpath.patch
@@ -463,133 +462,14 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-root
URL: http://www.python.org/
-# See notes in bug 532118:
-Provides: python(abi) = %{pybasever}
-
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+# We'll not provide this, on purpose
+# No package in Fedora shall ever depend on this
+# Provides: python(abi) = %{pybasever}
%description
-Python 3 is a new version of the language that is incompatible with the 2.x
-line of releases. The language is mostly the same, but many details, especially
-how built-in objects like dictionaries and strings work, have changed
-considerably, and a lot of deprecated features have finally been removed.
-
-%package libs
-Summary: Python 3 runtime libraries
-Group: Development/Libraries
-Requires: system-python-libs%{?_isa} = %{version}-%{release}
-
-# expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME. We use
-# this symbol (in pyexpat), so we must explicitly state this dependency to
-# prevent "import pyexpat" from failing with a linker error if someone hasn't
-# yet upgraded expat:
-Requires: expat >= 2.1.0
-Provides: python3-enum34 = 1.0.4-5%{?dist}
-Obsoletes: python3-enum34 < 1.0.4-5%{?dist}
-
-%description libs
-This package contains files used to embed Python 3 into applications.
-
-%package -n system-python
-Summary: System Python executable
-Group: Development/Libraries
-Requires: system-python-libs%{?_isa} = %{version}-%{release}
-Provides: system-python(abi) = %{pybasever}
-
-%description -n system-python
-System Python provides a binary interpreter which uses system-python-libs,
-a subset of standard Python library considered essential to run various tools,
-requiring Python, that consider themselves "system tools".
-
-%package -n system-python-libs
-Summary: System Python runtime libraries
-Group: Development/Libraries
-
-%define __requires_exclude ^(/usr/bin/python3.*|python\\(abi\\) = 3\\..*)$
-
-Requires: expat >= 2.1.0
-
-%description -n system-python-libs
-This package contains files used to embed System Python into applications.
-
-%package devel
-Summary: Libraries and header files needed for Python 3 development
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-BuildRequires: python-rpm-macros
-Requires: python-rpm-macros
-Requires: python3-rpm-macros
-Conflicts: %{name} < %{version}-%{release}
-
-%description devel
-This package contains libraries and header files used to build applications
-with and native libraries for Python 3
-
-%package tools
-Summary: A collection of tools included with Python 3
-Group: Development/Tools
-Requires: %{name} = %{version}-%{release}
-Requires: %{name}-tkinter = %{version}-%{release}
-
-%description tools
-This package contains several tools included with Python 3
+Python 3.5 package for developers.
+No security fixes will be applied.
-%package tkinter
-Summary: A GUI toolkit for Python 3
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-
-%description tkinter
-The Tkinter (Tk interface) program is an graphical user interface for
-the Python scripting language.
-
-%package test
-Summary: The test modules from the main python 3 package
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: %{name}-tools = %{version}-%{release}
-
-%description test
-The test modules from the main %{name} package.
-These are in a separate package to save space, as they are almost never used
-in production.
-
-You might want to install the python3-test package if you're developing
-python 3 code that uses more than just unittest and/or test_support.py.
-
-%if 0%{?with_debug_build}
-%package debug
-Summary: Debug version of the Python 3 runtime
-Group: Applications/System
-
-# The debug build is an all-in-one package version of the regular build, and
-# shares the same .py/.pyc files and directories as the regular build. Hence
-# we depend on all of the subpackages of the regular build:
-Requires: %{name}%{?_isa} = %{version}-%{release}
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-Requires: %{name}-devel%{?_isa} = %{version}-%{release}
-Requires: %{name}-test%{?_isa} = %{version}-%{release}
-Requires: %{name}-tkinter%{?_isa} = %{version}-%{release}
-Requires: %{name}-tools%{?_isa} = %{version}-%{release}
-
-%description debug
-python3-debug provides a version of the Python 3 runtime with numerous debugging
-features enabled, aimed at advanced Python users, such as developers of Python
-extension modules.
-
-This version uses more memory and will be slower than the regular Python 3 build,
-but is useful for tracking down reference-counting issues, and other bugs.
-
-The bytecodes are unchanged, so that .pyc files are compatible between the two
-versions of Python 3, but the debugging features mean that C/C++ extension
-modules are ABI-incompatible with those built for the standard runtime.
-
-It shares installation directories with the standard Python 3 runtime, so that
-.py and .pyc files can be shared. All compiled extension modules gain a "_d"
-suffix ("foo_d.so" rather than "foo.so") so that each Python 3 implementation
-can load its own extensions.
-%endif # with_debug_build
# ======================================================
# The prep phase of the build:
@@ -991,7 +871,6 @@ find %{buildroot} \
# Install macros for rpm:
mkdir -p %{buildroot}/%{_rpmconfigdir}/macros.d/
install -m 644 %{SOURCE3} %{buildroot}/%{_rpmconfigdir}/macros.d/
-install -m 644 %{SOURCE9} %{buildroot}/%{_rpmconfigdir}/macros.d/
# Ensure that the curses module was linked against libncursesw.so, rather than
# libncurses.so (bug 539917)
@@ -1065,10 +944,6 @@ echo '[ $? -eq 127 ] && echo "Could not find python%{LDVERSION_optimized}-`uname
%{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
chmod +x %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
-# System Python: Copy the executable to libexec
-mkdir -p %{buildroot}%{_libexecdir}
-cp %{buildroot}%{_bindir}/python%{pybasever} %{buildroot}%{_libexecdir}/system-python
-
# ======================================================
# Running the upstream test suite
# ======================================================
@@ -1133,25 +1008,12 @@ CheckPython optimized
# ======================================================
-# Cleaning up
-# ======================================================
-
-%clean
-rm -fr %{buildroot}
-
-
-# ======================================================
# Scriptlets
# ======================================================
-%post libs -p /sbin/ldconfig
-
-%postun libs -p /sbin/ldconfig
-
-%post -n system-python-libs -p /sbin/ldconfig
-
-%postun -n system-python-libs -p /sbin/ldconfig
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
%files
@@ -1165,10 +1027,6 @@ rm -fr %{buildroot}
%{_bindir}/pyvenv-%{pybasever}
%{_mandir}/*/*
-%files libs
-%defattr(-,root,root,-)
-%doc LICENSE README
-
%{pylibdir}/lib2to3
%exclude %{pylibdir}/lib2to3/tests
@@ -1220,16 +1078,6 @@ rm -fr %{buildroot}
%{pylibdir}/pydoc_data
-##################################################################################
-
-%files -n system-python
-%defattr(-,root,root,-)
-%doc LICENSE README
-%{_libexecdir}/system-python
-
-%files -n system-python-libs
-%defattr(-,root,root,-)
-%doc LICENSE README
%dir %{pylibdir}
%dir %{dynload_dir}
%{dynload_dir}/_bisect.%{SOABI_optimized}.so
@@ -1384,8 +1232,6 @@ rm -fr %{buildroot}
%doc systemtap-example.stp pyfuntop.stp
%endif
-%files devel
-%defattr(-,root,root)
%{pylibdir}/config-%{LDVERSION_optimized}/*
%exclude %{pylibdir}/config-%{LDVERSION_optimized}/Makefile
%{_includedir}/python%{LDVERSION_optimized}/*.h
@@ -1400,18 +1246,13 @@ rm -fr %{buildroot}
%{_libdir}/pkgconfig/python-%{pybasever}.pc
%{_libdir}/pkgconfig/python3.pc
%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
-%{_rpmconfigdir}/macros.d/macros.systempython
-%files tools
-%defattr(-,root,root,755)
%{_bindir}/python3-2to3
%{_bindir}/2to3-%{pybasever}
%{_bindir}/idle*
%{pylibdir}/Tools
%doc %{pylibdir}/Doc
-%files tkinter
-%defattr(-,root,root,755)
%{pylibdir}/tkinter
%exclude %{pylibdir}/tkinter/test
%{dynload_dir}/_tkinter.%{SOABI_optimized}.so
@@ -1423,8 +1264,7 @@ rm -fr %{buildroot}
%dir %{pylibdir}/turtledemo/__pycache__/
%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}
-%files test
-%defattr(-, root, root)
+
%{pylibdir}/ctypes/test
%{pylibdir}/distutils/tests
%{pylibdir}/sqlite3/test
@@ -1445,8 +1285,6 @@ rm -fr %{buildroot}
# all of the other subpackages
%if 0%{?with_debug_build}
-%files debug
-%defattr(-,root,root,-)
# Analog of the core subpackage's files:
%{_bindir}/python%{LDVERSION_debug}
commit f0e2965bcc38997491e5f20963e8dccc43ea6c12
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Aug 9 14:07:11 2016 +0200
Rename package
Clean %changelog
Remove rewheel condition
diff --git a/00189-add-rewheel-module.patch b/00189-add-rewheel-module.patch
deleted file mode 100644
index 5d514be..0000000
--- a/00189-add-rewheel-module.patch
+++ /dev/null
@@ -1,232 +0,0 @@
-diff -Nur Python-3.4.1/Lib/ensurepip/__init__.py Python-3.4.1-rewheel/Lib/ensurepip/__init__.py
---- Python-3.4.1/Lib/ensurepip/__init__.py 2014-08-21 10:49:30.792695824 +0200
-+++ Python-3.4.1-rewheel/Lib/ensurepip/__init__.py 2014-08-21 10:10:41.958341726 +0200
-@@ -1,8 +1,10 @@
- import os
- import os.path
- import pkgutil
-+import shutil
- import sys
- import tempfile
-+from ensurepip import rewheel
-
-
- __all__ = ["version", "bootstrap"]
-@@ -38,6 +40,8 @@
-
- # Install the bundled software
- import pip
-+ if args[0] in ["install", "list", "wheel"]:
-+ args.append('--pre')
- pip.main(args)
-
-
-@@ -87,20 +91,39 @@
- # omit pip and easy_install
- os.environ["ENSUREPIP_OPTIONS"] = "install"
-
-+ whls = []
-+ rewheel_dir = None
-+ # try to see if we have system-wide versions of _PROJECTS
-+ dep_records = rewheel.find_system_records([p[0] for p in _PROJECTS])
-+ # TODO: check if system-wide versions are the newest ones
-+ # if --upgrade is used?
-+ if all(dep_records):
-+ # if we have all _PROJECTS installed system-wide, we'll recreate
-+ # wheels from them and install those
-+ rewheel_dir = tempfile.TemporaryDirectory()
-+ for dr in dep_records:
-+ new_whl = rewheel.rewheel_from_record(dr, rewheel_dir.name)
-+ whls.append(os.path.join(rewheel_dir.name, new_whl))
-+ else:
-+ # if we don't have all the _PROJECTS installed system-wide,
-+ # let's just fall back to bundled wheels
-+ for project, version in _PROJECTS:
-+ whl = os.path.join(
-+ os.path.dirname(__file__),
-+ "_bundled",
-+ "{}-{}-py2.py3-none-any.whl".format(project, version)
-+ )
-+ whls.append(whl)
-+
- with tempfile.TemporaryDirectory() as tmpdir:
- # Put our bundled wheels into a temporary directory and construct the
- # additional paths that need added to sys.path
- additional_paths = []
-- for project, version in _PROJECTS:
-- wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version)
-- whl = pkgutil.get_data(
-- "ensurepip",
-- "_bundled/{}".format(wheel_name),
-- )
-- with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
-- fp.write(whl)
--
-- additional_paths.append(os.path.join(tmpdir, wheel_name))
-+ for whl in whls:
-+ shutil.copy(whl, tmpdir)
-+ additional_paths.append(os.path.join(tmpdir, os.path.basename(whl)))
-+ if rewheel_dir:
-+ rewheel_dir.cleanup()
-
- # Construct the arguments to be passed to the pip command
- args = ["install", "--no-index", "--find-links", tmpdir]
-diff -Nur Python-3.4.1/Lib/ensurepip/rewheel/__init__.py Python-3.4.1-rewheel/Lib/ensurepip/rewheel/__init__.py
---- Python-3.4.1/Lib/ensurepip/rewheel/__init__.py 1970-01-01 01:00:00.000000000 +0100
-+++ Python-3.4.1-rewheel/Lib/ensurepip/rewheel/__init__.py 2014-08-21 10:11:22.560320121 +0200
-@@ -0,0 +1,143 @@
-+import argparse
-+import codecs
-+import csv
-+import email.parser
-+import os
-+import io
-+import re
-+import site
-+import subprocess
-+import sys
-+import zipfile
-+
-+def run():
-+ parser = argparse.ArgumentParser(description='Recreate wheel of package with given RECORD.')
-+ parser.add_argument('record_path',
-+ help='Path to RECORD file')
-+ parser.add_argument('-o', '--output-dir',
-+ help='Dir where to place the wheel, defaults to current working dir.',
-+ dest='outdir',
-+ default=os.path.curdir)
-+
-+ ns = parser.parse_args()
-+ retcode = 0
-+ try:
-+ print(rewheel_from_record(**vars(ns)))
-+ except BaseException as e:
-+ print('Failed: {}'.format(e))
-+ retcode = 1
-+ sys.exit(1)
-+
-+def find_system_records(projects):
-+ """Return list of paths to RECORD files for system-installed projects.
-+
-+ If a project is not installed, the resulting list contains None instead
-+ of a path to its RECORD
-+ """
-+ records = []
-+ # get system site-packages dirs
-+ sys_sitepack = site.getsitepackages([sys.base_prefix, sys.base_exec_prefix])
-+ sys_sitepack = [sp for sp in sys_sitepack if os.path.exists(sp)]
-+ # try to find all projects in all system site-packages
-+ for project in projects:
-+ path = None
-+ for sp in sys_sitepack:
-+ dist_info_re = os.path.join(sp, project) + '-[^\{0}]+\.dist-info'.format(os.sep)
-+ candidates = [os.path.join(sp, p) for p in os.listdir(sp)]
-+ # filter out candidate dirs based on the above regexp
-+ filtered = [c for c in candidates if re.match(dist_info_re, c)]
-+ # if we have 0 or 2 or more dirs, something is wrong...
-+ if len(filtered) == 1:
-+ path = filtered[0]
-+ if path is not None:
-+ records.append(os.path.join(path, 'RECORD'))
-+ else:
-+ records.append(None)
-+ return records
-+
-+def rewheel_from_record(record_path, outdir):
-+ """Recreates a whee of package with given record_path and returns path
-+ to the newly created wheel."""
-+ site_dir = os.path.dirname(os.path.dirname(record_path))
-+ record_relpath = record_path[len(site_dir):].strip(os.path.sep)
-+ to_write, to_omit = get_records_to_pack(site_dir, record_relpath)
-+ new_wheel_name = get_wheel_name(record_path)
-+ new_wheel_path = os.path.join(outdir, new_wheel_name + '.whl')
-+
-+ new_wheel = zipfile.ZipFile(new_wheel_path, mode='w', compression=zipfile.ZIP_DEFLATED)
-+ # we need to write a new record with just the files that we will write,
-+ # e.g. not binaries and *.pyc/*.pyo files
-+ new_record = io.StringIO()
-+ writer = csv.writer(new_record)
-+
-+ # handle files that we can write straight away
-+ for f, sha_hash, size in to_write:
-+ new_wheel.write(os.path.join(site_dir, f), arcname=f)
-+ writer.writerow([f, sha_hash,size])
-+
-+ # rewrite the old wheel file with a new computed one
-+ writer.writerow([record_relpath, '', ''])
-+ new_wheel.writestr(record_relpath, new_record.getvalue())
-+
-+ new_wheel.close()
-+
-+ return new_wheel.filename
-+
-+def get_wheel_name(record_path):
-+ """Return proper name of the wheel, without .whl."""
-+
-+ wheel_info_path = os.path.join(os.path.dirname(record_path), 'WHEEL')
-+ with codecs.open(wheel_info_path, encoding='utf-8') as wheel_info_file:
-+ wheel_info = email.parser.Parser().parsestr(wheel_info_file.read())
-+
-+ metadata_path = os.path.join(os.path.dirname(record_path), 'METADATA')
-+ with codecs.open(metadata_path, encoding='utf-8') as metadata_file:
-+ metadata = email.parser.Parser().parsestr(metadata_file.read())
-+
-+ # construct name parts according to wheel spec
-+ distribution = metadata.get('Name')
-+ version = metadata.get('Version')
-+ build_tag = '' # nothing for now
-+ lang_tag = []
-+ for t in wheel_info.get_all('Tag'):
-+ lang_tag.append(t.split('-')[0])
-+ lang_tag = '.'.join(lang_tag)
-+ abi_tag, plat_tag = wheel_info.get('Tag').split('-')[1:3]
-+ # leave out build tag, if it is empty
-+ to_join = filter(None, [distribution, version, build_tag, lang_tag, abi_tag, plat_tag])
-+ return '-'.join(list(to_join))
-+
-+def get_records_to_pack(site_dir, record_relpath):
-+ """Accepts path of sitedir and path of RECORD file relative to it.
-+ Returns two lists:
-+ - list of files that can be written to new RECORD straight away
-+ - list of files that shouldn't be written or need some processing
-+ (pyc and pyo files, scripts)
-+ """
-+ record_file_path = os.path.join(site_dir, record_relpath)
-+ with codecs.open(record_file_path, encoding='utf-8') as record_file:
-+ record_contents = record_file.read()
-+ # temporary fix for https://github.com/pypa/pip/issues/1376
-+ # we need to ignore files under ".data" directory
-+ data_dir = os.path.dirname(record_relpath).strip(os.path.sep)
-+ data_dir = data_dir[:-len('dist-info')] + 'data'
-+
-+ to_write = []
-+ to_omit = []
-+ for l in record_contents.splitlines():
-+ spl = l.split(',')
-+ if len(spl) == 3:
-+ # new record will omit (or write differently):
-+ # - abs paths, paths with ".." (entry points),
-+ # - pyc+pyo files
-+ # - the old RECORD file
-+ # TODO: is there any better way to recognize an entry point?
-+ if os.path.isabs(spl[0]) or spl[0].startswith('..') or \
-+ spl[0].endswith('.pyc') or spl[0].endswith('.pyo') or \
-+ spl[0] == record_relpath or spl[0].startswith(data_dir):
-+ to_omit.append(spl)
-+ else:
-+ to_write.append(spl)
-+ else:
-+ pass # bad RECORD or empty line
-+ return to_write, to_omit
-diff -Nur Python-3.4.1/Makefile.pre.in Python-3.4.1-rewheel/Makefile.pre.in
---- Python-3.4.1/Makefile.pre.in 2014-08-21 10:49:31.512695040 +0200
-+++ Python-3.4.1-rewheel/Makefile.pre.in 2014-08-21 10:10:41.961341722 +0200
-@@ -1145,7 +1145,7 @@
- test/test_asyncio \
- collections concurrent concurrent/futures encodings \
- email email/mime test/test_email test/test_email/data \
-- ensurepip ensurepip/_bundled \
-+ ensurepip ensurepip/_bundled ensurepip/rewheel \
- html json test/test_json http dbm xmlrpc \
- sqlite3 sqlite3/test \
- logging csv wsgiref urllib \
diff --git a/python3.spec b/python3.spec
deleted file mode 100644
index d987343..0000000
--- a/python3.spec
+++ /dev/null
@@ -1,2390 +0,0 @@
-# ======================================================
-# Conditionals and other variables controlling the build
-# ======================================================
-
-# NOTES ON BOOTSTRAPING PYTHON 3.4:
-#
-# Due to dependency cycle between Python, pip, setuptools and
-# wheel caused by the rewheel patch, one has to build in the
-# following order:
-#
-# 1) python3 with with_rewheel set to 0
-# 2) python3-setuptools and python3-pip with with_rewheel set to 0
-# 3) python3-wheel
-# 4) python3-setuptools and python3-pip with with_rewheel set to 1
-# 5) python3 with with_rewheel set to 1
-
-%global with_rewheel 0
-
-%global pybasever 3.5
-
-# pybasever without the dot:
-%global pyshortver 35
-
-%global pylibdir %{_libdir}/python%{pybasever}
-%global dynload_dir %{pylibdir}/lib-dynload
-
-# SOABI is defined in the upstream configure.in from Python-3.2a2 onwards,
-# for PEP 3149:
-# http://www.python.org/dev/peps/pep-3149/
-
-# ("configure.in" became "configure.ac" in Python 3.3 onwards, and in
-# backports)
-
-# ABIFLAGS, LDVERSION and SOABI are in the upstream Makefile
-# With Python 3.3, we lose the "u" suffix due to PEP 393
-%global ABIFLAGS_optimized m
-%global ABIFLAGS_debug dm
-
-%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
-%global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug}
-
-%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu}
-%global SOABI_debug cpython-%{pyshortver}%{ABIFLAGS_debug}-%{_arch}-linux%{_gnu}
-
-# All bytecode files are now in a __pycache__ subdirectory, with a name
-# reflecting the version of the bytecode (to permit sharing of python libraries
-# between different runtimes)
-# See http://www.python.org/dev/peps/pep-3147/
-# For example,
-# foo/bar.py
-# now has bytecode at:
-# foo/__pycache__/bar.cpython-35.pyc
-# foo/__pycache__/bar.cpython-35.pyo
-%global bytecode_suffixes .cpython-35*.py?
-
-# Python's configure script defines SOVERSION, and this is used in the Makefile
-# to determine INSTSONAME, the name of the libpython DSO:
-# LDLIBRARY='libpython$(VERSION).so'
-# INSTSONAME="$LDLIBRARY".$SOVERSION
-# We mirror this here in order to make it easier to add the -gdb.py hooks.
-# (if these get out of sync, the payload of the libs subpackage will fail
-# and halt the build)
-%global py_SOVERSION 1.0
-%global py_INSTSONAME_optimized libpython%{LDVERSION_optimized}.so.%{py_SOVERSION}
-%global py_INSTSONAME_debug libpython%{LDVERSION_debug}.so.%{py_SOVERSION}
-
-%global with_debug_build 1
-
-%global with_gdb_hooks 1
-
-%global with_systemtap 1
-
-# some arches don't have valgrind so we need to disable its support on them
-%ifnarch s390 %{mips}
-%global with_valgrind 1
-%else
-%global with_valgrind 0
-%endif
-
-%global with_gdbm 1
-
-# Change from yes to no to turn this off
-%global with_computed_gotos yes
-
-# Turn this to 0 to turn off the "check" phase:
-%global run_selftest_suite 1
-
-# We want to byte-compile the .py files within the packages using the new
-# python3 binary.
-#
-# Unfortunately, rpmbuild's infrastructure requires us to jump through some
-# hoops to avoid byte-compiling with the system python 2 version:
-# /usr/lib/rpm/redhat/macros sets up build policy that (amongst other things)
-# defines __os_install_post. In particular, "brp-python-bytecompile" is
-# invoked without an argument thus using the wrong version of python
-# (/usr/bin/python, rather than the freshly built python), thus leading to
-# numerous syntax errors, and incorrect magic numbers in the .pyc files. We
-# thus override __os_install_post to avoid invoking this script:
-%global __os_install_post /usr/lib/rpm/brp-compress \
- %{!?__debug_package:/usr/lib/rpm/brp-strip %{__strip}} \
- /usr/lib/rpm/brp-strip-static-archive %{__strip} \
- /usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} \
- /usr/lib/rpm/brp-python-hardlink
-# to remove the invocation of brp-python-bytecompile, whilst keeping the
-# invocation of brp-python-hardlink (since this should still work for python3
-# pyc/pyo files)
-
-
-# ==================
-# Top-level metadata
-# ==================
-Summary: Version 3 of the Python programming language aka Python 3000
-Name: python3
-Version: %{pybasever}.1
-Release: 14%{?dist}
-License: Python
-Group: Development/Languages
-
-
-# =======================
-# Build-time requirements
-# =======================
-
-# (keep this list alphabetized)
-
-BuildRequires: autoconf
-BuildRequires: bluez-libs-devel
-BuildRequires: bzip2
-BuildRequires: bzip2-devel
-BuildRequires: db4-devel >= 4.7
-
-# expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME. We use
-# it (in pyexpat) in order to enable the fix in Python-3.2.3 for CVE-2012-0876:
-BuildRequires: expat-devel >= 2.1.0
-
-BuildRequires: findutils
-BuildRequires: gcc-c++
-%if %{with_gdbm}
-BuildRequires: gdbm-devel
-%endif
-BuildRequires: glibc-devel
-BuildRequires: gmp-devel
-BuildRequires: libffi-devel
-BuildRequires: libGL-devel
-BuildRequires: libX11-devel
-BuildRequires: ncurses-devel
-# workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig)
-BuildRequires: net-tools
-BuildRequires: openssl-devel
-BuildRequires: pkgconfig
-BuildRequires: readline-devel
-BuildRequires: sqlite-devel
-
-%if 0%{?with_systemtap}
-BuildRequires: systemtap-sdt-devel
-# (this introduces a dependency on "python", in that systemtap-sdt-devel's
-# /usr/bin/dtrace is a python 2 script)
-%global tapsetdir /usr/share/systemtap/tapset
-%endif # with_systemtap
-
-BuildRequires: tar
-BuildRequires: tcl-devel
-BuildRequires: tix-devel
-BuildRequires: tk-devel
-
-%if 0%{?with_valgrind}
-BuildRequires: valgrind-devel
-%endif
-
-BuildRequires: xz-devel
-BuildRequires: zlib-devel
-
-%if 0%{?with_rewheel}
-BuildRequires: python3-setuptools
-BuildRequires: python3-pip
-%endif
-
-
-# =======================
-# Source code and patches
-# =======================
-
-Source: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
-
-# Supply an RPM macro "py_byte_compile" for the python3-devel subpackage
-# to enable specfiles to selectively byte-compile individual files and paths
-# with different Python runtimes as necessary:
-Source3: macros.pybytecompile%{pybasever}
-
-# Systemtap tapset to make it easier to use the systemtap static probes
-# (actually a template; LIBRARY_PATH will get fixed up during install)
-# Written by dmalcolm; not yet sent upstream
-Source5: libpython.stp
-
-# Example systemtap script using the tapset
-# Written by wcohen, mjw, dmalcolm; not yet sent upstream
-Source6: systemtap-example.stp
-
-# Another example systemtap script that uses the tapset
-# Written by dmalcolm; not yet sent upstream
-Source7: pyfuntop.stp
-
-# A simple script to check timestamps of bytecode files
-# Run in check section with Python that is currently being built
-# Written by bkabrda
-Source8: check-pyc-and-pyo-timestamps.py
-
-# A simple macro that enables packages to require system-python(abi) instead of python(abi)
-Source9: macros.systempython
-
-# Fixup distutils/unixccompiler.py to remove standard library path from rpath:
-# Was Patch0 in ivazquez' python3000 specfile:
-Patch1: Python-3.1.1-rpath.patch
-
-# 00055 #
-# Systemtap support: add statically-defined probe points
-# Patch sent upstream as http://bugs.python.org/issue14776
-# with some subsequent reworking to cope with LANG=C in an rpmbuild
-# (where sys.getfilesystemencoding() == 'ascii')
-Patch55: 00055-systemtap.patch
-
-Patch102: 00102-lib64.patch
-
-# 00104 #
-# Only used when "%{_lib}" == "lib64"
-# Another lib64 fix, for distutils/tests/test_install.py; not upstream:
-Patch104: 00104-lib64-fix-for-test_install.patch
-
-# 00111 #
-# Patch the Makefile.pre.in so that the generated Makefile doesn't try to build
-# a libpythonMAJOR.MINOR.a (bug 550692):
-# Downstream only: not appropriate for upstream
-Patch111: 00111-no-static-lib.patch
-
-# 00132 #
-# Add non-standard hooks to unittest for use in the "check" phase below, when
-# running selftests within the build:
-# @unittest._skipInRpmBuild(reason)
-# for tests that hang or fail intermittently within the build environment, and:
-# @unittest._expectedFailureInRpmBuild
-# for tests that always fail within the build environment
-#
-# The hooks only take effect if WITHIN_PYTHON_RPM_BUILD is set in the
-# environment, which we set manually in the appropriate portion of the "check"
-# phase below (and which potentially other python-* rpms could set, to reuse
-# these unittest hooks in their own "check" phases)
-Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch
-
-# 00133 #
-# 00133-skip-test_dl.patch is not relevant for python3: the "dl" module no
-# longer exists
-
-# 00137 #
-# Some tests within distutils fail when run in an rpmbuild:
-Patch137: 00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
-
-# 00143 #
-# Fix the --with-tsc option on ppc64, and rework it on 32-bit ppc to avoid
-# aliasing violations (rhbz#698726)
-# Sent upstream as http://bugs.python.org/issue12872
-Patch143: 00143-tsc-on-ppc.patch
-
-# 00146 #
-# Support OpenSSL FIPS mode (e.g. when OPENSSL_FORCE_FIPS_MODE=1 is set)
-# - handle failures from OpenSSL (e.g. on attempts to use MD5 in a
-# FIPS-enforcing environment)
-# - add a new "usedforsecurity" keyword argument to the various digest
-# algorithms in hashlib so that you can whitelist a callsite with
-# "usedforsecurity=False"
-# (sent upstream for python 3 as http://bugs.python.org/issue9216 ; see RHEL6
-# python patch 119)
-# - enforce usage of the _hashlib implementation: don't fall back to the _md5
-# and _sha* modules (leading to clearer error messages if fips selftests
-# fail)
-# - don't build the _md5 and _sha* modules; rely on the _hashlib implementation
-# of hashlib
-# (rhbz#563986)
-# Note: Up to Python 3.4.0.b1, upstream had their own implementation of what
-# they assumed would become sha3. This patch was adapted to give it the
-# usedforsecurity argument, even though it did nothing (OpenSSL didn't have
-# sha3 implementation at that time).In 3.4.0.b2, sha3 implementation was reverted
-# (see http://bugs.python.org/issue16113), but the alterations were left in the
-# patch, since they may be useful again if upstream decides to rerevert sha3
-# implementation and OpenSSL still doesn't support it. For now, they're harmless.
-Patch146: 00146-hashlib-fips.patch
-
-# 00155 #
-# Avoid allocating thunks in ctypes unless absolutely necessary, to avoid
-# generating SELinux denials on "import ctypes" and "import uuid" when
-# embedding Python within httpd (rhbz#814391)
-Patch155: 00155-avoid-ctypes-thunks.patch
-
-# 00157 #
-# Update uid/gid handling throughout the standard library: uid_t and gid_t are
-# unsigned 32-bit values, but existing code often passed them through C long
-# values, which are signed 32-bit values on 32-bit architectures, leading to
-# negative int objects for uid/gid values >= 2^31 on 32-bit architectures.
-#
-# Introduce _PyObject_FromUid/Gid to convert uid_t/gid_t values to python
-# objects, using int objects where the value will fit (long objects otherwise),
-# and _PyArg_ParseUid/Gid to convert int/long to uid_t/gid_t, with -1 allowed
-# as a special case (since this is given special meaning by the chown syscall)
-#
-# Update standard library to use this throughout for uid/gid values, so that
-# very large uid/gid values are round-trippable, and -1 remains usable.
-# (rhbz#697470)
-Patch157: 00157-uid-gid-overflows.patch
-
-# 00160 #
-# Python 3.3 added os.SEEK_DATA and os.SEEK_HOLE, which may be present in the
-# header files in the build chroot, but may not be supported in the running
-# kernel, hence we disable this test in an rpm build.
-# Adding these was upstream issue http://bugs.python.org/issue10142
-# Not yet sent upstream
-Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch
-
-# 00163 #
-# Some tests within test_socket fail intermittently when run inside Koji;
-# disable them using unittest._skipInRpmBuild
-# Not yet sent upstream
-Patch163: 00163-disable-parts-of-test_socket-in-rpm-build.patch
-
-# 00170 #
-# In debug builds, try to print repr() when a C-level assert fails in the
-# garbage collector (typically indicating a reference-counting error
-# somewhere else e.g in an extension module)
-# Backported to 2.7 from a patch I sent upstream for py3k
-# http://bugs.python.org/issue9263 (rhbz#614680)
-# hiding the proposed new macros/functions within gcmodule.c to avoid exposing
-# them within the extension API.
-# (rhbz#850013
-Patch170: 00170-gc-assertions.patch
-
-# 00178 #
-# Don't duplicate various FLAGS in sysconfig values
-# http://bugs.python.org/issue17679
-# Does not affect python2 AFAICS (different sysconfig values initialization)
-Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch
-
-# 00180 #
-# Enable building on ppc64p7
-# Not appropriate for upstream, Fedora-specific naming
-Patch180: 00180-python-add-support-for-ppc64p7.patch
-
-# 00184 #
-# Fix for https://bugzilla.redhat.com/show_bug.cgi?id=979696
-# Fixes build of ctypes against libffi with multilib wrapper
-# Python recognizes ffi.h only if it contains "#define LIBFFI_H",
-# but the wrapper doesn't contain that, which makes the build fail
-# We patch this by also accepting "#define ffi_wrapper_h"
-Patch184: 00184-ctypes-should-build-with-libffi-multilib-wrapper.patch
-
-# 00186 #
-# Fix for https://bugzilla.redhat.com/show_bug.cgi?id=1023607
-# Previously, this fixed a problem where some *.py files were not being
-# bytecompiled properly during build. This was result of py_compile.compile
-# raising exception when trying to convert test file with bad encoding, and
-# thus not continuing bytecompilation for other files.
-# This was fixed upstream, but the test hasn't been merged yet, so we keep it
-Patch186: 00186-dont-raise-from-py_compile.patch
-
-# 00188 #
-# Downstream only patch that should be removed when we compile all guaranteed
-# hashlib algorithms properly. The problem is this:
-# - during tests, test_hashlib is imported and executed before test_lib2to3
-# - if at least one hash function has failed, trying to import it triggers an
-# exception that is being caught and exception is logged:
-# http://hg.python.org/cpython/file/2de806c8b070/Lib/hashlib.py#l217
-# - logging the exception makes logging module run basicConfig
-# - when lib2to3 tests are run again, lib2to3 runs basicConfig again, which
-# doesn't do anything, because it was run previously
-# (logging.root.handlers != []), which means that the default setup
-# (most importantly logging level) is not overriden. That means that a test
-# relying on this will fail (test_filename_changing_on_output_single_dir)
-Patch188: 00188-fix-lib2to3-tests-when-hashlib-doesnt-compile-properly.patch
-
-# 00189 #
-# Add the rewheel module, allowing to recreate wheels from already installed
-# ones
-# https://github.com/bkabrda/rewheel
-%if 0%{with_rewheel}
-Patch189: 00189-add-rewheel-module.patch
-%endif
-
-# 00194 #
-# Tests requiring SIGHUP to work don't work in Koji
-# see rhbz#1088233
-Patch194: temporarily-disable-tests-requiring-SIGHUP.patch
-
-# 00196 #
-# Fix test_gdb failure on ppc64le
-Patch196: 00196-test-gdb-match-addr-before-builtin.patch
-
-# 00200 #
-# Fix for gettext plural form headers (lines that begin with "#")
-# Note: Backported from scl
-Patch200: 00200-gettext-plural-fix.patch
-
-# 00201 #
-# Fixes memory leak in gdbm module (rhbz#977308)
-# This was upstreamed as a part of bigger patch, but for our purposes
-# this is ok: http://bugs.python.org/issue18404
-# Note: Backported from scl
-Patch201: 00201-fix-memory-leak-in-gdbm.patch
-
-# 00203 #
-# test_threading fails in koji dues to it's handling of signals
-Patch203: 00203-disable-threading-test-koji.patch
-
-# 00205 #
-# LIBPL variable in makefile takes LIBPL from configure.ac
-# but the LIBPL variable defined there doesn't respect libdir macro
-Patch205: 00205-make-libpl-respect-lib64.patch
-
-# 00206 #
-# Remove hf flag from arm triplet which is used
-# by debian but fedora infra uses only eabi without hf
-Patch206: 00206-remove-hf-from-arm-triplet.patch
-
-# 00207 #
-# Avoid truncated _math.o files caused by parallel builds
-# modified version of https://bugs.python.org/issue24421
-# rhbz#1292461
-Patch207: 00207-math-once.patch
-
-# 00208 #
-# test_with_pip (test.test_venv.EnsurePipTest) fails on ppc64*
-# rhbz#1292467
-Patch208: 00208-disable-test_with_pip-on-ppc.patch
-
-# 00209 #
-# CVE-2016-5636: http://seclists.org/oss-sec/2016/q2/560
-# rhbz#1345859: https://bugzilla.redhat.com/show_bug.cgi?id=1345859
-# https://hg.python.org/cpython/rev/10dad6da1b28/
-# https://hg.python.org/cpython/rev/5533a9e02b21
-# Fix possible integer overflow and heap corruption in zipimporter.get_data()
-# FIXED UPSTREAM: https://bugs.python.org/issue26171
-Patch209: 00209-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
-
-# 00210 #
-# CVE-2016-0772 python: smtplib StartTLS stripping attack
-# rhbz#1303647: https://bugzilla.redhat.com/show_bug.cgi?id=1303647
-# rhbz#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
-# FIXED UPSTREAM: https://hg.python.org/cpython/rev/d590114c2394
-# Raise an error when STARTTLS fails
-Patch210: 00210-Raise-an-error-when-STARTTLS-fails.patch
-
-# 00211 #
-# Fix test breakage with version 2.2.0 of Expat
-# rhbz#1353918: https://bugzilla.redhat.com/show_bug.cgi?id=1353918
-# NOT YET FIXED UPSTREAM: http://bugs.python.org/issue27369
-Patch211: 00211-fix-test-pyexpat-failure.patch
-
-# 00242 #
-# Fix the triplet used on 64-bit MIPS
-# rhbz#1322526: https://bugzilla.redhat.com/show_bug.cgi?id=1322526
-# Upstream uses Debian-like style mips64-linux-gnuabi64
-# Fedora needs the default mips64-linux-gnu
-Patch242: 00242-fix-mips64-triplet.patch
-
-# (New patches go here ^^^)
-#
-# When adding new patches to "python" and "python3" in Fedora 17 onwards,
-# please try to keep the patch numbers in-sync between the two specfiles:
-#
-# - use the same patch number across both specfiles for conceptually-equivalent
-# fixes, ideally with the same name
-#
-# - when a patch is relevant to both specfiles, use the same introductory
-# comment in both specfiles where possible (to improve "diff" output when
-# comparing them)
-#
-# - when a patch is only relevant for one of the two specfiles, leave a gap
-# in the patch numbering in the other specfile, adding a comment when
-# omitting a patch, both in the manifest section here, and in the "prep"
-# phase below
-#
-# Hopefully this will make it easier to ensure that all relevant fixes are
-# applied to both versions.
-
-# add correct arch for ppc64/ppc64le
-# it should be ppc64le-linux-gnu/ppc64-linux-gnu instead powerpc64le-linux-gnu/powerpc64-linux-gnu
-Patch5001: python3-powerppc-arch.patch
-
-BuildRoot: %{_tmppath}/%{name}-%{version}-root
-
-# ======================================================
-# Additional metadata, and subpackages
-# ======================================================
-
-URL: http://www.python.org/
-
-# See notes in bug 532118:
-Provides: python(abi) = %{pybasever}
-
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-
-%if 0%{with_rewheel}
-Requires: python3-setuptools
-Requires: python3-pip
-%endif
-
-%description
-Python 3 is a new version of the language that is incompatible with the 2.x
-line of releases. The language is mostly the same, but many details, especially
-how built-in objects like dictionaries and strings work, have changed
-considerably, and a lot of deprecated features have finally been removed.
-
-%package libs
-Summary: Python 3 runtime libraries
-Group: Development/Libraries
-Requires: system-python-libs%{?_isa} = %{version}-%{release}
-
-# expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME. We use
-# this symbol (in pyexpat), so we must explicitly state this dependency to
-# prevent "import pyexpat" from failing with a linker error if someone hasn't
-# yet upgraded expat:
-Requires: expat >= 2.1.0
-Provides: python3-enum34 = 1.0.4-5%{?dist}
-Obsoletes: python3-enum34 < 1.0.4-5%{?dist}
-
-%description libs
-This package contains files used to embed Python 3 into applications.
-
-%package -n system-python
-Summary: System Python executable
-Group: Development/Libraries
-Requires: system-python-libs%{?_isa} = %{version}-%{release}
-Provides: system-python(abi) = %{pybasever}
-
-%description -n system-python
-System Python provides a binary interpreter which uses system-python-libs,
-a subset of standard Python library considered essential to run various tools,
-requiring Python, that consider themselves "system tools".
-
-%package -n system-python-libs
-Summary: System Python runtime libraries
-Group: Development/Libraries
-
-%define __requires_exclude ^(/usr/bin/python3.*|python\\(abi\\) = 3\\..*)$
-
-Requires: expat >= 2.1.0
-
-%description -n system-python-libs
-This package contains files used to embed System Python into applications.
-
-%package devel
-Summary: Libraries and header files needed for Python 3 development
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-BuildRequires: python-rpm-macros
-Requires: python-rpm-macros
-Requires: python3-rpm-macros
-Conflicts: %{name} < %{version}-%{release}
-
-%description devel
-This package contains libraries and header files used to build applications
-with and native libraries for Python 3
-
-%package tools
-Summary: A collection of tools included with Python 3
-Group: Development/Tools
-Requires: %{name} = %{version}-%{release}
-Requires: %{name}-tkinter = %{version}-%{release}
-
-%description tools
-This package contains several tools included with Python 3
-
-%package tkinter
-Summary: A GUI toolkit for Python 3
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-
-%description tkinter
-The Tkinter (Tk interface) program is an graphical user interface for
-the Python scripting language.
-
-%package test
-Summary: The test modules from the main python 3 package
-Group: Development/Languages
-Requires: %{name} = %{version}-%{release}
-Requires: %{name}-tools = %{version}-%{release}
-
-%description test
-The test modules from the main %{name} package.
-These are in a separate package to save space, as they are almost never used
-in production.
-
-You might want to install the python3-test package if you're developing
-python 3 code that uses more than just unittest and/or test_support.py.
-
-%if 0%{?with_debug_build}
-%package debug
-Summary: Debug version of the Python 3 runtime
-Group: Applications/System
-
-# The debug build is an all-in-one package version of the regular build, and
-# shares the same .py/.pyc files and directories as the regular build. Hence
-# we depend on all of the subpackages of the regular build:
-Requires: %{name}%{?_isa} = %{version}-%{release}
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-Requires: %{name}-devel%{?_isa} = %{version}-%{release}
-Requires: %{name}-test%{?_isa} = %{version}-%{release}
-Requires: %{name}-tkinter%{?_isa} = %{version}-%{release}
-Requires: %{name}-tools%{?_isa} = %{version}-%{release}
-
-%description debug
-python3-debug provides a version of the Python 3 runtime with numerous debugging
-features enabled, aimed at advanced Python users, such as developers of Python
-extension modules.
-
-This version uses more memory and will be slower than the regular Python 3 build,
-but is useful for tracking down reference-counting issues, and other bugs.
-
-The bytecodes are unchanged, so that .pyc files are compatible between the two
-versions of Python 3, but the debugging features mean that C/C++ extension
-modules are ABI-incompatible with those built for the standard runtime.
-
-It shares installation directories with the standard Python 3 runtime, so that
-.py and .pyc files can be shared. All compiled extension modules gain a "_d"
-suffix ("foo_d.so" rather than "foo.so") so that each Python 3 implementation
-can load its own extensions.
-%endif # with_debug_build
-
-# ======================================================
-# The prep phase of the build:
-# ======================================================
-
-%prep
-%setup -q -n Python-%{version}%{?prerel}
-
-%if 0%{?with_systemtap}
-# Provide an example of usage of the tapset:
-cp -a %{SOURCE6} .
-cp -a %{SOURCE7} .
-%endif # with_systemtap
-
-# Ensure that we're using the system copy of various libraries, rather than
-# copies shipped by upstream in the tarball:
-# Remove embedded copy of expat:
-rm -r Modules/expat || exit 1
-
-# Remove embedded copy of libffi:
-for SUBDIR in darwin libffi libffi_arm_wince libffi_msvc libffi_osx ; do
- rm -r Modules/_ctypes/$SUBDIR || exit 1 ;
-done
-
-# Remove embedded copy of zlib:
-rm -r Modules/zlib || exit 1
-
-# Don't build upstream Python's implementation of these crypto algorithms;
-# instead rely on _hashlib and OpenSSL.
-#
-# For example, in our builds hashlib.md5 is implemented within _hashlib via
-# OpenSSL (and thus respects FIPS mode), and does not fall back to _md5
-# TODO: there seems to be no OpenSSL support in Python for sha3 so far
-# when it is there, also remove _sha3/ dir
-for f in md5module.c sha1module.c sha256module.c sha512module.c; do
- rm Modules/$f
-done
-
-%if 0%{with_rewheel}
-%global pip_version 7.1.0
-sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/ensurepip/__init__.py
-%endif
-
-#
-# Apply patches:
-#
-%patch1 -p1
-
-%if 0%{?with_systemtap}
-%patch55 -p1 -b .systemtap
-%endif
-
-%if "%{_lib}" == "lib64"
-%patch102 -p1
-%patch104 -p1
-%endif
-%patch111 -p1
-%patch132 -p1
-%patch137 -p1
-%patch143 -p1 -b .tsc-on-ppc
-%patch146 -p1
-%patch155 -p1
-%patch157 -p1
-%patch160 -p1
-%patch163 -p1
-%patch170 -p0
-%patch178 -p1
-%patch180 -p1
-%patch184 -p1
-%patch186 -p1
-%patch188 -p1
-
-%if 0%{with_rewheel}
-%patch189 -p1
-%endif
-
-%patch194 -p1
-%patch196 -p1
-%patch203 -p1
-%patch205 -p1
-%patch206 -p1
-%patch207 -p1
-%patch208 -p1
-%patch209 -p1
-%patch210 -p1
-%patch211 -p1
-%patch242 -p1
-
-# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
-# are many differences between 2.6 and the Python 3 library.
-#
-# Fix up the URLs within pydoc to point at the documentation for this
-# MAJOR.MINOR version:
-#
-sed --in-place \
- --expression="s|http://docs.python.org/library|http://docs.python.org/%{pybasever}/libr..." \
- Lib/pydoc.py || exit 1
-
-%patch5001 -p1
-
-# ======================================================
-# Configuring and building the code:
-# ======================================================
-
-%build
-topdir=$(pwd)
-export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
-export CXXFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
-export CPPFLAGS="`pkg-config --cflags-only-I libffi`"
-export OPT="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
-export LINKCC="gcc"
-export CFLAGS="$CFLAGS `pkg-config --cflags openssl`"
-export LDFLAGS="$RPM_LD_FLAGS `pkg-config --libs-only-L openssl`"
-
-
-# Define a function, for how to perform a "build" of python for a given
-# configuration:
-BuildPython() {
- ConfName=$1
- BinaryName=$2
- SymlinkName=$3
- ExtraConfigArgs=$4
- PathFixWithThisBinary=$5
- MoreCFlags=$6
-
- ConfDir=build/$ConfName
-
- echo STARTING: BUILD OF PYTHON FOR CONFIGURATION: $ConfName - %{_bindir}/$BinaryName
- mkdir -p $ConfDir
-
- pushd $ConfDir
-
- # Use the freshly created "configure" script, but in the directory two above:
- %global _configure $topdir/configure
-
-%configure \
- --enable-ipv6 \
- --enable-shared \
- --with-computed-gotos=%{with_computed_gotos} \
- --with-dbmliborder=gdbm:ndbm:bdb \
- --with-system-expat \
- --with-system-ffi \
- --enable-loadable-sqlite-extensions \
-%if 0%{?with_systemtap}
- --with-systemtap \
-%endif
-%if 0%{?with_valgrind}
- --with-valgrind \
-%endif
- $ExtraConfigArgs \
- %{nil}
-
- # Set EXTRA_CFLAGS to our CFLAGS (rather than overriding OPT, as we've done
- # in the past).
- # This should fix a problem with --with-valgrind where it adds
- # -DDYNAMIC_ANNOTATIONS_ENABLED=1
- # to OPT which must be passed to all compilation units in the build,
- # otherwise leading to linker errors, e.g.
- # missing symbol AnnotateRWLockDestroy
- #
- # Invoke the build:
- make EXTRA_CFLAGS="$CFLAGS $MoreCFlags" %{?_smp_mflags}
-
- popd
- echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfDir
-}
-
-# Use "BuildPython" to support building with different configurations:
-
-%if 0%{?with_debug_build}
-BuildPython debug \
- python-debug \
- python%{pybasever}-debug \
-%ifarch %{ix86} x86_64 ppc %{power64}
- "--with-pydebug --with-tsc --with-count-allocs --with-call-profile --without-ensurepip" \
-%else
- "--with-pydebug --with-count-allocs --with-call-profile --without-ensurepip" \
-%endif
- false \
- -O0
-%endif # with_debug_build
-
-BuildPython optimized \
- python \
- python%{pybasever} \
- "--without-ensurepip" \
- true
-
-# ======================================================
-# Installing the built code:
-# ======================================================
-
-%install
-topdir=$(pwd)
-rm -fr %{buildroot}
-mkdir -p %{buildroot}%{_prefix} %{buildroot}%{_mandir}
-
-InstallPython() {
-
- ConfName=$1
- PyInstSoName=$2
- MoreCFlags=$3
-
- ConfDir=build/$ConfName
-
- echo STARTING: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
- mkdir -p $ConfDir
-
- pushd $ConfDir
-
-make install DESTDIR=%{buildroot} INSTALL="install -p" EXTRA_CFLAGS="$MoreCFlags"
-
- popd
-
- # We install a collection of hooks for gdb that make it easier to debug
- # executables linked against libpython3* (such as /usr/bin/python3 itself)
- #
- # These hooks are implemented in Python itself (though they are for the version
- # of python that gdb is linked with, in this case Python 2.7)
- #
- # gdb-archer looks for them in the same path as the ELF file, with a -gdb.py suffix.
- # We put them in the debuginfo package by installing them to e.g.:
- # /usr/lib/debug/usr/lib/libpython3.2.so.1.0.debug-gdb.py
- #
- # See https://fedoraproject.org/wiki/Features/EasierPythonDebugging for more
- # information
- #
- # Copy up the gdb hooks into place; the python file will be autoloaded by gdb
- # when visiting libpython.so, provided that the python file is installed to the
- # same path as the library (or its .debug file) plus a "-gdb.py" suffix, e.g:
- # /usr/lib/debug/usr/lib64/libpython3.2.so.1.0.debug-gdb.py
- # (note that the debug path is /usr/lib/debug for both 32/64 bit)
- #
- # Initially I tried:
- # /usr/lib/libpython3.1.so.1.0-gdb.py
- # but doing so generated noise when ldconfig was rerun (rhbz:562980)
- #
-%if 0%{?with_gdb_hooks}
- DirHoldingGdbPy=%{_prefix}/lib/debug/%{_libdir}
- PathOfGdbPy=$DirHoldingGdbPy/$PyInstSoName.debug-gdb.py
-
- mkdir -p %{buildroot}$DirHoldingGdbPy
- cp Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy
-%endif # with_gdb_hooks
-
- echo FINISHED: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
-}
-
-# Use "InstallPython" to support building with different configurations:
-
-# Install the "debug" build first, so that we can move some files aside
-%if 0%{?with_debug_build}
-InstallPython debug \
- %{py_INSTSONAME_debug} \
- -O0
-%endif # with_debug_build
-
-# Now the optimized build:
-InstallPython optimized \
- %{py_INSTSONAME_optimized}
-
-install -d -m 0755 ${RPM_BUILD_ROOT}%{pylibdir}/site-packages/__pycache__
-
-mv ${RPM_BUILD_ROOT}%{_bindir}/2to3 ${RPM_BUILD_ROOT}%{_bindir}/python3-2to3
-
-# Development tools
-install -m755 -d ${RPM_BUILD_ROOT}%{pylibdir}/Tools
-install Tools/README ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
-cp -ar Tools/freeze ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
-cp -ar Tools/i18n ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
-cp -ar Tools/pynche ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
-cp -ar Tools/scripts ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
-
-# Documentation tools
-install -m755 -d %{buildroot}%{pylibdir}/Doc
-cp -ar Doc/tools %{buildroot}%{pylibdir}/Doc/
-
-# Demo scripts
-cp -ar Tools/demo %{buildroot}%{pylibdir}/Tools/
-
-# Fix for bug #136654
-rm -f %{buildroot}%{pylibdir}/email/test/data/audiotest.au %{buildroot}%{pylibdir}/test/audiotest.au
-
-%if "%{_lib}" == "lib64"
-install -d -m 0755 %{buildroot}/%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__
-%endif
-
-# Make python3-devel multilib-ready (bug #192747, #139911)
-%global _pyconfig32_h pyconfig-32.h
-%global _pyconfig64_h pyconfig-64.h
-
-%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64}
-%global _pyconfig_h %{_pyconfig64_h}
-%else
-%global _pyconfig_h %{_pyconfig32_h}
-%endif
-
-# ABIFLAGS, LDVERSION and SOABI are in the upstream Makefile
-%global ABIFLAGS_optimized m
-%global ABIFLAGS_debug dm
-
-%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
-%global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug}
-
-%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu}
-%global SOABI_debug cpython-%{pyshortver}%{ABIFLAGS_debug}-%{_arch}-linux%{_gnu}
-
-%if 0%{?with_debug_build}
-%global PyIncludeDirs python%{LDVERSION_optimized} python%{LDVERSION_debug}
-
-%else
-%global PyIncludeDirs python%{LDVERSION_optimized}
-%endif
-
-for PyIncludeDir in %{PyIncludeDirs} ; do
- mv %{buildroot}%{_includedir}/$PyIncludeDir/pyconfig.h \
- %{buildroot}%{_includedir}/$PyIncludeDir/%{_pyconfig_h}
- cat > %{buildroot}%{_includedir}/$PyIncludeDir/pyconfig.h << EOF
-#include <bits/wordsize.h>
-
-#if __WORDSIZE == 32
-#include "%{_pyconfig32_h}"
-#elif __WORDSIZE == 64
-#include "%{_pyconfig64_h}"
-#else
-#error "Unknown word size"
-#endif
-EOF
-done
-
-# Fix for bug 201434: make sure distutils looks at the right pyconfig.h file
-# Similar for sysconfig: sysconfig.get_config_h_filename tries to locate
-# pyconfig.h so it can be parsed, and needs to do this at runtime in site.py
-# when python starts up (bug 653058)
-#
-# Split this out so it goes directly to the pyconfig-32.h/pyconfig-64.h
-# variants:
-sed -i -e "s/'pyconfig.h'/'%{_pyconfig_h}'/" \
- %{buildroot}%{pylibdir}/distutils/sysconfig.py \
- %{buildroot}%{pylibdir}/sysconfig.py
-
-# Switch all shebangs to refer to the specific Python version.
-LD_LIBRARY_PATH=./build/optimized ./build/optimized/python \
- Tools/scripts/pathfix.py \
- -i "%{_bindir}/python%{pybasever}" \
- %{buildroot}
-
-# Remove shebang lines from .py files that aren't executable, and
-# remove executability from .py files that don't have a shebang line:
-find %{buildroot} -name \*.py \
- \( \( \! -perm /u+x,g+x,o+x -exec sed -e '/^#!/Q 0' -e 'Q 1' {} \; \
- -print -exec sed -i '1d' {} \; \) -o \( \
- -perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
- -exec chmod a-x {} \; \) \)
-
-# .xpm and .xbm files should not be executable:
-find %{buildroot} \
- \( -name \*.xbm -o -name \*.xpm -o -name \*.xpm.1 \) \
- -exec chmod a-x {} \;
-
-# Remove executable flag from files that shouldn't have it:
-chmod a-x \
- %{buildroot}%{pylibdir}/distutils/tests/Setup.sample \
- %{buildroot}%{pylibdir}/Tools/README
-
-# Get rid of DOS batch files:
-find %{buildroot} -name \*.bat -exec rm {} \;
-
-# Get rid of backup files:
-find %{buildroot}/ -name "*~" -exec rm -f {} \;
-find . -name "*~" -exec rm -f {} \;
-rm -f %{buildroot}%{pylibdir}/LICENSE.txt
-# Junk, no point in putting in -test sub-pkg
-rm -f ${RPM_BUILD_ROOT}/%{pylibdir}/idlelib/testcode.py*
-
-# Get rid of stray patch file from buildroot:
-rm -f %{buildroot}%{pylibdir}/test/test_imp.py.apply-our-changes-to-expected-shebang # from patch 4
-
-# Fix end-of-line encodings:
-find %{buildroot}/ -name \*.py -exec sed -i 's/\r//' {} \;
-
-# Fix an encoding:
-iconv -f iso8859-1 -t utf-8 %{buildroot}/%{pylibdir}/Demo/rpc/README > README.conv && mv -f README.conv %{buildroot}/%{pylibdir}/Demo/rpc/README
-
-# Note that
-# %{pylibdir}/Demo/distutils/test2to3/setup.py
-# is in iso-8859-1 encoding, and that this is deliberate; this is test data
-# for the 2to3 tool, and one of the functions of the 2to3 tool is to fixup
-# character encodings within python source code
-
-# Do bytecompilation with the newly installed interpreter.
-# This is similar to the script in macros.pybytecompile
-# compile *.pyo
-find %{buildroot} -type f -a -name "*.py" -print0 | \
- LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
- PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
- xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2]) for f in sys.argv[1:]]' || :
-# compile *.pyc
-find %{buildroot} -type f -a -name "*.py" -print0 | \
- LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
- PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
- xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2], optimize=0) for f in sys.argv[1:]]' || :
-
-# Fixup permissions for shared libraries from non-standard 555 to standard 755:
-find %{buildroot} \
- -perm 555 -exec chmod 755 {} \;
-
-# Install macros for rpm:
-mkdir -p %{buildroot}/%{_rpmconfigdir}/macros.d/
-install -m 644 %{SOURCE3} %{buildroot}/%{_rpmconfigdir}/macros.d/
-install -m 644 %{SOURCE9} %{buildroot}/%{_rpmconfigdir}/macros.d/
-
-# Ensure that the curses module was linked against libncursesw.so, rather than
-# libncurses.so (bug 539917)
-ldd %{buildroot}/%{dynload_dir}/_curses*.so \
- | grep curses \
- | grep libncurses.so && (echo "_curses.so linked against libncurses.so" ; exit 1)
-
-# Ensure that the debug modules are linked against the debug libpython, and
-# likewise for the optimized modules and libpython:
-for Module in %{buildroot}/%{dynload_dir}/*.so ; do
- case $Module in
- *.%{SOABI_debug})
- ldd $Module | grep %{py_INSTSONAME_optimized} &&
- (echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exit 1)
-
- ;;
- *.%{SOABI_optimized})
- ldd $Module | grep %{py_INSTSONAME_debug} &&
- (echo Optimized module $Module linked against debug %{py_INSTSONAME_debug} ; exit 1)
- ;;
- esac
-done
-
-# Create "/usr/bin/python3-debug", a symlink to the python3 debug binary, to
-# avoid the user having to know the precise version and ABI flags. (see
-# e.g. rhbz#676748):
-%if 0%{?with_debug_build}
-ln -s \
- %{_bindir}/python%{LDVERSION_debug} \
- %{buildroot}%{_bindir}/python3-debug
-%endif
-
-#
-# Systemtap hooks:
-#
-%if 0%{?with_systemtap}
-# Install a tapset for this libpython into tapsetdir, fixing up the path to the
-# library:
-mkdir -p %{buildroot}%{tapsetdir}
-%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64}
-%global libpython_stp_optimized libpython%{pybasever}-64.stp
-%global libpython_stp_debug libpython%{pybasever}-debug-64.stp
-%else
-%global libpython_stp_optimized libpython%{pybasever}-32.stp
-%global libpython_stp_debug libpython%{pybasever}-debug-32.stp
-%endif
-
-sed \
- -e "s|LIBRARY_PATH|%{_libdir}/%{py_INSTSONAME_optimized}|" \
- %{_sourcedir}/libpython.stp \
- > %{buildroot}%{tapsetdir}/%{libpython_stp_optimized}
-
-%if 0%{?with_debug_build}
-# In Python 3, python3 and python3-debug don't point to the same binary,
-# so we have to replace "python3" with "python3-debug" to get systemtap
-# working with debug build
-sed \
- -e "s|LIBRARY_PATH|%{_libdir}/%{py_INSTSONAME_debug}|" \
- -e 's|"python3"|"python3-debug"|' \
- %{_sourcedir}/libpython.stp \
- > %{buildroot}%{tapsetdir}/%{libpython_stp_debug}
-%endif # with_debug_build
-
-%endif # with_systemtap
-
-# Rename the script that differs on different arches to arch specific name
-mv %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-{,`uname -m`-}config
-echo -e '#!/bin/sh\nexec `dirname $0`/python%{LDVERSION_optimized}-`uname -m`-config "$@"' > \
- %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
-echo '[ $? -eq 127 ] && echo "Could not find python%{LDVERSION_optimized}-`uname -m`-config. Look around to see available arches." >&2' >> \
- %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
- chmod +x %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
-
-# System Python: Copy the executable to libexec
-mkdir -p %{buildroot}%{_libexecdir}
-cp %{buildroot}%{_bindir}/python%{pybasever} %{buildroot}%{_libexecdir}/system-python
-
-# ======================================================
-# Running the upstream test suite
-# ======================================================
-
-%check
-
-# first of all, check timestamps of bytecode files
-find %{buildroot} -type f -a -name "*.py" -print0 | \
- LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
- PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
- xargs -0 %{buildroot}%{_bindir}/python%{pybasever} %{SOURCE8}
-
-# For ppc64 we need a larger stack than default (rhbz#1292462)
-%ifarch %{power64}
- ulimit -a
- ulimit -s 16384
-%endif
-
-topdir=$(pwd)
-CheckPython() {
- ConfName=$1
- ConfDir=$(pwd)/build/$ConfName
-
- echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
-
- # Note that we're running the tests using the version of the code in the
- # builddir, not in the buildroot.
-
- # Run the upstream test suite, setting "WITHIN_PYTHON_RPM_BUILD" so that the
- # our non-standard decorators take effect on the relevant tests:
- # @unittest._skipInRpmBuild(reason)
- # @unittest._expectedFailureInRpmBuild
- # test_faulthandler.test_register_chain currently fails on ppc64le and
- # aarch64, see upstream bug http://bugs.python.org/issue21131
- WITHIN_PYTHON_RPM_BUILD= \
- LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
- --verbose --findleaks \
- -x test_distutils \
- %ifarch ppc64le aarch64
- -x test_faulthandler \
- %endif
- %ifarch %{mips64}
- -x test_ctypes \
- %endif
- %ifarch %{power64} s390 s390x armv7hl aarch64 %{mips}
- -x test_gdb
- %endif
-
- echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
-
-}
-
-%if 0%{run_selftest_suite}
-
-# Check each of the configurations:
-%if 0%{?with_debug_build}
-CheckPython debug
-%endif # with_debug_build
-CheckPython optimized
-
-%endif # run_selftest_suite
-
-
-# ======================================================
-# Cleaning up
-# ======================================================
-
-%clean
-rm -fr %{buildroot}
-
-
-# ======================================================
-# Scriptlets
-# ======================================================
-
-%post libs -p /sbin/ldconfig
-
-%postun libs -p /sbin/ldconfig
-
-%post -n system-python-libs -p /sbin/ldconfig
-
-%postun -n system-python-libs -p /sbin/ldconfig
-
-
-
-%files
-%defattr(-, root, root)
-%doc LICENSE README
-%{_bindir}/pydoc*
-%{_bindir}/python3
-%{_bindir}/python%{pybasever}
-%{_bindir}/python%{pybasever}m
-%{_bindir}/pyvenv
-%{_bindir}/pyvenv-%{pybasever}
-%{_mandir}/*/*
-
-%files libs
-%defattr(-,root,root,-)
-%doc LICENSE README
-
-%{pylibdir}/lib2to3
-%exclude %{pylibdir}/lib2to3/tests
-
-%dir %{pylibdir}/unittest/
-%dir %{pylibdir}/unittest/__pycache__/
-%{pylibdir}/unittest/*.py
-%{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/asyncio/
-%dir %{pylibdir}/asyncio/__pycache__/
-%{pylibdir}/asyncio/*.py
-%{pylibdir}/asyncio/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/venv/
-%dir %{pylibdir}/venv/__pycache__/
-%{pylibdir}/venv/*.py
-%{pylibdir}/venv/__pycache__/*%{bytecode_suffixes}
-%{pylibdir}/venv/scripts
-
-%{pylibdir}/wsgiref
-%{pylibdir}/xmlrpc
-
-%dir %{pylibdir}/ensurepip/
-%dir %{pylibdir}/ensurepip/__pycache__/
-%{pylibdir}/ensurepip/*.py
-%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes}
-%exclude %{pylibdir}/ensurepip/_bundled
-
-%if 0%{?with_rewheel}
-%dir %{pylibdir}/ensurepip/rewheel/
-%dir %{pylibdir}/ensurepip/rewheel/__pycache__/
-%{pylibdir}/ensurepip/rewheel/*.py
-%{pylibdir}/ensurepip/rewheel/__pycache__/*%{bytecode_suffixes}
-%endif
-
-%{pylibdir}/idlelib
-
-%dir %{pylibdir}/test/
-%dir %{pylibdir}/test/__pycache__/
-%dir %{pylibdir}/test/support/
-%dir %{pylibdir}/test/support/__pycache__/
-%{pylibdir}/test/__init__.py
-%{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
-%{pylibdir}/test/support/__init__.py
-%{pylibdir}/test/support/__pycache__/__init__%{bytecode_suffixes}
-
-%dir %{pylibdir}/concurrent/
-%dir %{pylibdir}/concurrent/__pycache__/
-%{pylibdir}/concurrent/*.py
-%{pylibdir}/concurrent/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/concurrent/futures/
-%dir %{pylibdir}/concurrent/futures/__pycache__/
-%{pylibdir}/concurrent/futures/*.py
-%{pylibdir}/concurrent/futures/__pycache__/*%{bytecode_suffixes}
-
-%{pylibdir}/pydoc_data
-
-##################################################################################
-
-%files -n system-python
-%defattr(-,root,root,-)
-%doc LICENSE README
-%{_libexecdir}/system-python
-
-%files -n system-python-libs
-%defattr(-,root,root,-)
-%doc LICENSE README
-%dir %{pylibdir}
-%dir %{dynload_dir}
-%{dynload_dir}/_bisect.%{SOABI_optimized}.so
-%{dynload_dir}/_bz2.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_cn.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_hk.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_iso2022.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_jp.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_kr.%{SOABI_optimized}.so
-%{dynload_dir}/_codecs_tw.%{SOABI_optimized}.so
-%{dynload_dir}/_crypt.%{SOABI_optimized}.so
-%{dynload_dir}/_csv.%{SOABI_optimized}.so
-%{dynload_dir}/_ctypes.%{SOABI_optimized}.so
-%{dynload_dir}/_curses.%{SOABI_optimized}.so
-%{dynload_dir}/_curses_panel.%{SOABI_optimized}.so
-%{dynload_dir}/_dbm.%{SOABI_optimized}.so
-%{dynload_dir}/_decimal.%{SOABI_optimized}.so
-%{dynload_dir}/_elementtree.%{SOABI_optimized}.so
-%if %{with_gdbm}
-%{dynload_dir}/_gdbm.%{SOABI_optimized}.so
-%endif
-%{dynload_dir}/_hashlib.%{SOABI_optimized}.so
-%{dynload_dir}/_heapq.%{SOABI_optimized}.so
-%{dynload_dir}/_json.%{SOABI_optimized}.so
-%{dynload_dir}/_lsprof.%{SOABI_optimized}.so
-%{dynload_dir}/_lzma.%{SOABI_optimized}.so
-%{dynload_dir}/_multibytecodec.%{SOABI_optimized}.so
-%{dynload_dir}/_multiprocessing.%{SOABI_optimized}.so
-%{dynload_dir}/_opcode.%{SOABI_optimized}.so
-%{dynload_dir}/_pickle.%{SOABI_optimized}.so
-%{dynload_dir}/_posixsubprocess.%{SOABI_optimized}.so
-%{dynload_dir}/_random.%{SOABI_optimized}.so
-%{dynload_dir}/_socket.%{SOABI_optimized}.so
-%{dynload_dir}/_sqlite3.%{SOABI_optimized}.so
-%{dynload_dir}/_ssl.%{SOABI_optimized}.so
-%{dynload_dir}/_struct.%{SOABI_optimized}.so
-%{dynload_dir}/array.%{SOABI_optimized}.so
-%{dynload_dir}/audioop.%{SOABI_optimized}.so
-%{dynload_dir}/binascii.%{SOABI_optimized}.so
-%{dynload_dir}/cmath.%{SOABI_optimized}.so
-%{dynload_dir}/_datetime.%{SOABI_optimized}.so
-%{dynload_dir}/fcntl.%{SOABI_optimized}.so
-%{dynload_dir}/grp.%{SOABI_optimized}.so
-%{dynload_dir}/math.%{SOABI_optimized}.so
-%{dynload_dir}/mmap.%{SOABI_optimized}.so
-%{dynload_dir}/nis.%{SOABI_optimized}.so
-%{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so
-%{dynload_dir}/parser.%{SOABI_optimized}.so
-%{dynload_dir}/pyexpat.%{SOABI_optimized}.so
-%{dynload_dir}/readline.%{SOABI_optimized}.so
-%{dynload_dir}/resource.%{SOABI_optimized}.so
-%{dynload_dir}/select.%{SOABI_optimized}.so
-%{dynload_dir}/spwd.%{SOABI_optimized}.so
-%{dynload_dir}/syslog.%{SOABI_optimized}.so
-%{dynload_dir}/termios.%{SOABI_optimized}.so
-#%{dynload_dir}/time.%{SOABI_optimized}.so
-%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so
-%{dynload_dir}/unicodedata.%{SOABI_optimized}.so
-%{dynload_dir}/xxlimited.%{SOABI_optimized}.so
-%{dynload_dir}/zlib.%{SOABI_optimized}.so
-
-%dir %{pylibdir}/site-packages/
-%dir %{pylibdir}/site-packages/__pycache__/
-%{pylibdir}/site-packages/README
-%{pylibdir}/*.py
-%dir %{pylibdir}/__pycache__/
-%{pylibdir}/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/collections/
-%dir %{pylibdir}/collections/__pycache__/
-%{pylibdir}/collections/*.py
-%{pylibdir}/collections/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/ctypes/
-%dir %{pylibdir}/ctypes/__pycache__/
-%{pylibdir}/ctypes/*.py
-%{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes}
-%{pylibdir}/ctypes/macholib
-
-%{pylibdir}/curses
-
-%dir %{pylibdir}/dbm/
-%dir %{pylibdir}/dbm/__pycache__/
-%{pylibdir}/dbm/*.py
-%{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/distutils/
-%dir %{pylibdir}/distutils/__pycache__/
-%{pylibdir}/distutils/*.py
-%{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes}
-%{pylibdir}/distutils/README
-%{pylibdir}/distutils/command
-
-
-%dir %{pylibdir}/email/
-%dir %{pylibdir}/email/__pycache__/
-%{pylibdir}/email/*.py
-%{pylibdir}/email/__pycache__/*%{bytecode_suffixes}
-%{pylibdir}/email/mime
-%doc %{pylibdir}/email/architecture.rst
-
-%{pylibdir}/encodings
-
-%{pylibdir}/html
-%{pylibdir}/http
-
-%dir %{pylibdir}/importlib/
-%dir %{pylibdir}/importlib/__pycache__/
-%{pylibdir}/importlib/*.py
-%{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes}
-
-%dir %{pylibdir}/json/
-%dir %{pylibdir}/json/__pycache__/
-%{pylibdir}/json/*.py
-%{pylibdir}/json/__pycache__/*%{bytecode_suffixes}
-
-%{pylibdir}/logging
-%{pylibdir}/multiprocessing
-%{pylibdir}/plat-linux
-
-%dir %{pylibdir}/sqlite3/
-%dir %{pylibdir}/sqlite3/__pycache__/
-%{pylibdir}/sqlite3/*.py
-%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}
-
-%exclude %{pylibdir}/turtle.py
-%exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
-
-%{pylibdir}/urllib
-%{pylibdir}/xml
-
-%if "%{_lib}" == "lib64"
-%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}
-%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages
-%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages/__pycache__/
-%endif
-
-# "Makefile" and the config-32/64.h file are needed by
-# distutils/sysconfig.py:_init_posix(), so we include them in the core
-# package, along with their parent directories (bug 531901):
-%dir %{pylibdir}/config-%{LDVERSION_optimized}/
-%{pylibdir}/config-%{LDVERSION_optimized}/Makefile
-%dir %{_includedir}/python%{LDVERSION_optimized}/
-%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
-
-%{_libdir}/%{py_INSTSONAME_optimized}
-%{_libdir}/libpython3.so
-%if 0%{?with_systemtap}
-%dir %(dirname %{tapsetdir})
-%dir %{tapsetdir}
-%{tapsetdir}/%{libpython_stp_optimized}
-%doc systemtap-example.stp pyfuntop.stp
-%endif
-
-%files devel
-%defattr(-,root,root)
-%{pylibdir}/config-%{LDVERSION_optimized}/*
-%exclude %{pylibdir}/config-%{LDVERSION_optimized}/Makefile
-%{_includedir}/python%{LDVERSION_optimized}/*.h
-%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
-%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
-%{_bindir}/python3-config
-%{_bindir}/python%{pybasever}-config
-%{_bindir}/python%{LDVERSION_optimized}-config
-%{_bindir}/python%{LDVERSION_optimized}-*-config
-%{_libdir}/libpython%{LDVERSION_optimized}.so
-%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
-%{_libdir}/pkgconfig/python-%{pybasever}.pc
-%{_libdir}/pkgconfig/python3.pc
-%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
-%{_rpmconfigdir}/macros.d/macros.systempython
-
-%files tools
-%defattr(-,root,root,755)
-%{_bindir}/python3-2to3
-%{_bindir}/2to3-%{pybasever}
-%{_bindir}/idle*
-%{pylibdir}/Tools
-%doc %{pylibdir}/Doc
-
-%files tkinter
-%defattr(-,root,root,755)
-%{pylibdir}/tkinter
-%exclude %{pylibdir}/tkinter/test
-%{dynload_dir}/_tkinter.%{SOABI_optimized}.so
-%{pylibdir}/turtle.py
-%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
-%dir %{pylibdir}/turtledemo
-%{pylibdir}/turtledemo/*.py
-%{pylibdir}/turtledemo/*.cfg
-%dir %{pylibdir}/turtledemo/__pycache__/
-%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}
-
-%files test
-%defattr(-, root, root)
-%{pylibdir}/ctypes/test
-%{pylibdir}/distutils/tests
-%{pylibdir}/sqlite3/test
-%{pylibdir}/test
-%{dynload_dir}/_ctypes_test.%{SOABI_optimized}.so
-%{dynload_dir}/_testbuffer.%{SOABI_optimized}.so
-%{dynload_dir}/_testcapi.%{SOABI_optimized}.so
-%{dynload_dir}/_testimportmultiple.%{SOABI_optimized}.so
-%{pylibdir}/lib2to3/tests
-%{pylibdir}/tkinter/test
-%{pylibdir}/unittest/test
-
-
-# We don't bother splitting the debug build out into further subpackages:
-# if you need it, you're probably a developer.
-
-# Hence the manifest is the combination of analogous files in the manifests of
-# all of the other subpackages
-
-%if 0%{?with_debug_build}
-%files debug
-%defattr(-,root,root,-)
-
-# Analog of the core subpackage's files:
-%{_bindir}/python%{LDVERSION_debug}
-%{_bindir}/python3-debug
-
-# Analog of the -libs subpackage's files:
-# ...with debug builds of the built-in "extension" modules:
-%{dynload_dir}/_bisect.%{SOABI_debug}.so
-%{dynload_dir}/_bz2.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_cn.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_hk.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_iso2022.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_jp.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_kr.%{SOABI_debug}.so
-%{dynload_dir}/_codecs_tw.%{SOABI_debug}.so
-%{dynload_dir}/_crypt.%{SOABI_debug}.so
-%{dynload_dir}/_csv.%{SOABI_debug}.so
-%{dynload_dir}/_ctypes.%{SOABI_debug}.so
-%{dynload_dir}/_curses.%{SOABI_debug}.so
-%{dynload_dir}/_curses_panel.%{SOABI_debug}.so
-%{dynload_dir}/_dbm.%{SOABI_debug}.so
-%{dynload_dir}/_decimal.%{SOABI_debug}.so
-%{dynload_dir}/_elementtree.%{SOABI_debug}.so
-%if %{with_gdbm}
-%{dynload_dir}/_gdbm.%{SOABI_debug}.so
-%endif
-%{dynload_dir}/_hashlib.%{SOABI_debug}.so
-%{dynload_dir}/_heapq.%{SOABI_debug}.so
-%{dynload_dir}/_json.%{SOABI_debug}.so
-%{dynload_dir}/_lsprof.%{SOABI_debug}.so
-%{dynload_dir}/_lzma.%{SOABI_debug}.so
-%{dynload_dir}/_multibytecodec.%{SOABI_debug}.so
-%{dynload_dir}/_multiprocessing.%{SOABI_debug}.so
-%{dynload_dir}/_opcode.%{SOABI_debug}.so
-%{dynload_dir}/_pickle.%{SOABI_debug}.so
-%{dynload_dir}/_posixsubprocess.%{SOABI_debug}.so
-%{dynload_dir}/_random.%{SOABI_debug}.so
-%{dynload_dir}/_socket.%{SOABI_debug}.so
-%{dynload_dir}/_sqlite3.%{SOABI_debug}.so
-%{dynload_dir}/_ssl.%{SOABI_debug}.so
-%{dynload_dir}/_struct.%{SOABI_debug}.so
-%{dynload_dir}/array.%{SOABI_debug}.so
-%{dynload_dir}/audioop.%{SOABI_debug}.so
-%{dynload_dir}/binascii.%{SOABI_debug}.so
-%{dynload_dir}/cmath.%{SOABI_debug}.so
-%{dynload_dir}/_datetime.%{SOABI_debug}.so
-%{dynload_dir}/fcntl.%{SOABI_debug}.so
-%{dynload_dir}/grp.%{SOABI_debug}.so
-%{dynload_dir}/math.%{SOABI_debug}.so
-%{dynload_dir}/mmap.%{SOABI_debug}.so
-%{dynload_dir}/nis.%{SOABI_debug}.so
-%{dynload_dir}/ossaudiodev.%{SOABI_debug}.so
-%{dynload_dir}/parser.%{SOABI_debug}.so
-%{dynload_dir}/pyexpat.%{SOABI_debug}.so
-%{dynload_dir}/readline.%{SOABI_debug}.so
-%{dynload_dir}/resource.%{SOABI_debug}.so
-%{dynload_dir}/select.%{SOABI_debug}.so
-%{dynload_dir}/spwd.%{SOABI_debug}.so
-%{dynload_dir}/syslog.%{SOABI_debug}.so
-%{dynload_dir}/termios.%{SOABI_debug}.so
-#%{dynload_dir}/time.%{SOABI_debug}.so
-%{dynload_dir}/_testmultiphase.%{SOABI_debug}.so
-%{dynload_dir}/unicodedata.%{SOABI_debug}.so
-%{dynload_dir}/zlib.%{SOABI_debug}.so
-
-# No need to split things out the "Makefile" and the config-32/64.h file as we
-# do for the regular build above (bug 531901), since they're all in one package
-# now; they're listed below, under "-devel":
-
-%{_libdir}/%{py_INSTSONAME_debug}
-%if 0%{?with_systemtap}
-%dir %(dirname %{tapsetdir})
-%dir %{tapsetdir}
-%{tapsetdir}/%{libpython_stp_debug}
-%endif
-
-# Analog of the -devel subpackage's files:
-%{pylibdir}/config-%{LDVERSION_debug}
-%{_includedir}/python%{LDVERSION_debug}
-%{_bindir}/python%{LDVERSION_debug}-config
-%{_libdir}/libpython%{LDVERSION_debug}.so
-%{_libdir}/libpython%{LDVERSION_debug}.so.1.0
-%{_libdir}/pkgconfig/python-%{LDVERSION_debug}.pc
-
-# Analog of the -tools subpackage's files:
-# None for now; we could build precanned versions that have the appropriate
-# shebang if needed
-
-# Analog of the tkinter subpackage's files:
-%{dynload_dir}/_tkinter.%{SOABI_debug}.so
-
-# Analog of the -test subpackage's files:
-%{dynload_dir}/_ctypes_test.%{SOABI_debug}.so
-%{dynload_dir}/_testbuffer.%{SOABI_debug}.so
-%{dynload_dir}/_testcapi.%{SOABI_debug}.so
-%{dynload_dir}/_testimportmultiple.%{SOABI_debug}.so
-
-%endif # with_debug_build
-
-# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from
-# ldconfig (rhbz:562980).
-#
-# The /usr/lib/rpm/redhat/macros defines %__debug_package to use
-# debugfiles.list, and it appears that everything below /usr/lib/debug and
-# (/usr/src/debug) gets added to this file (via LISTFILES) in
-# /usr/lib/rpm/find-debuginfo.sh
-#
-# Hence by installing it below /usr/lib/debug we ensure it is added to the
-# -debuginfo subpackage
-# (if it doesn't, then the rpmbuild ought to fail since the debug-gdb.py
-# payload file would be unpackaged)
-
-
-# ======================================================
-# Finally, the changelog:
-# ======================================================
-
-%changelog
-* Mon Aug 01 2016 Michal Toman <mtoman(a)fedoraproject.org> - 3.5.1-14
-- Build properly on MIPS
-
-* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.5.1-13
-- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
-
-* Fri Jul 08 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-12
-- Refactor patch for properly fixing CVE-2016-5636
-
-* Fri Jul 08 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-11
-- Fix test_pyexpat failure with Expat version of 2.2.0
-
-* Fri Jul 08 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-10
-- Move xml module to system-python-libs
-
-* Thu Jun 16 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.1-9
-- Fix for: CVE-2016-0772 python: smtplib StartTLS stripping attack
-- Raise an error when STARTTLS fails
-- rhbz#1303647: https://bugzilla.redhat.com/show_bug.cgi?id=1303647
-- rhbz#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
-- Fixed upstream: https://hg.python.org/cpython/rev/d590114c2394
-
-* Mon Jun 13 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-8
-- Added patch for fixing possible integer overflow and heap corruption in zipimporter.get_data()
-
-* Fri Mar 04 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-7
-- Move distutils to system-python-libs
-
-* Wed Feb 24 2016 Robert Kuska <rkuska(a)redhat.com> - 3.5.1-6
-- Provide python3-enum34
-
-* Fri Feb 19 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-5
-- Provide System Python packages and macros
-
-* Thu Feb 04 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.1-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
-
-* Wed Jan 13 2016 Orion Poplwski <orion(a)cora.nwra.com> - 3.5.1-2
-- Drop python3 macros, require python/python3-rpm-macros
-
-* Mon Dec 14 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.1-1
-- Update to 3.5.1
-- Removed patch 199 and 207 (upstream)
-
-* Sun Nov 15 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-5
-- Remove versioned libpython from devel package
-
-* Fri Nov 13 2015 Than Ngo <than(a)redhat.com> 3.5.0-4
-- add correct arch for ppc64/ppc64le to fix build failure
-
-* Wed Nov 11 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-3
-- Hide the private _Py_atomic_xxx symbols from public header
-
-* Wed Oct 14 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-2
-- Rebuild with wheel set to 1
-
-* Tue Sep 15 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.5.0-1
-- Update to 3.5.0
-
-* Mon Jun 29 2015 Thomas Spura <tomspur(a)fedoraproject.org> - 3.4.3-4
-- python3-devel: Require python-macros for version independant macros such as
- python_provide. See fpc#281 and fpc#534.
-
-* Thu Jun 18 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.3-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
-
-* Wed Jun 17 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-4
-- Use 1024bit DH key in test_ssl
-- Use -O0 when compiling -debug build
-- Update pip version variable to the version we actually ship
-
-* Wed Jun 17 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-3
-- Make relocating Python by changing _prefix actually work
-Resolves: rhbz#1231801
-
-* Mon May 4 2015 Peter Robinson <pbrobinson(a)fedoraproject.org> 3.4.3-2
-- Disable test_gdb on aarch64 (rhbz#1196181), it joins all other non x86 arches
-
-* Thu Mar 12 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-1
-- Updated to 3.4.3
-- BuildPython now accepts additional build options
-- Temporarily disabled test_gdb on arm (rhbz#1196181)
-
-* Wed Feb 25 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.2-7
-- Fixed undefined behaviour in faulthandler which caused test to hang on x86_64
- (http://bugs.python.org/issue23433)
-
-* Sat Feb 21 2015 Till Maas <opensource(a)till.name> - 3.4.2-6
-- Rebuilt for Fedora 23 Change
- https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-...
-
-* Tue Feb 17 2015 Ville Skytt <ville.skytta(a)iki.fi> - 3.4.2-5
-- Own systemtap dirs (#710733)
-
-* Mon Jan 12 2015 Dan Hork <dan[at]danny.cz> - 3.4.2-4
-- build with valgrind on ppc64le
-- disable test_gdb on s390(x) until rhbz#1181034 is resolved
-
-* Tue Dec 16 2014 Robert Kuska <rkuska(a)redhat.com> - 3.4.2-3
-- New patches: 170 (gc asserts), 200 (gettext headers),
- 201 (gdbm memory leak)
-
-* Thu Dec 11 2014 Robert Kuska <rkuska(a)redhat.com> - 3.4.2-2
-- OpenSSL disabled SSLv3 in SSLv23 method
-
-* Thu Nov 13 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.2-1
-- Update to 3.4.2
-- Refreshed patches: 156 (gdb autoload)
-- Removed: 195 (Werror declaration), 197 (CVE-2014-4650)
-
-* Mon Nov 03 2014 Slavek Kabrda <bkabrda(a)redhat.com> - 3.4.1-16
-- Fix CVE-2014-4650 - CGIHTTPServer URL handling
-Resolves: rhbz#1113529
-
-* Sun Sep 07 2014 Karsten Hopp <karsten(a)redhat.com> 3.4.1-15
-- exclude test_gdb on ppc* (rhbz#1132488)
-
-* Thu Aug 21 2014 Slavek Kabrda <bkabrda(a)redhat.com> - 3.4.1-14
-- Update rewheel patch with fix from https://github.com/bkabrda/rewheel/pull/1
-
-* Sun Aug 17 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.1-13
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
-
-* Sun Jun 8 2014 Peter Robinson <pbrobinson(a)fedoraproject.org> 3.4.1-12
-- aarch64 has valgrind, just list those that don't support it
-
-* Sun Jun 08 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.1-11
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
-
-* Wed Jun 04 2014 Karsten Hopp <karsten(a)redhat.com> 3.4.1-10
-- bump release and rebuild to link with the correct tcl/tk libs on ppcle
-
-* Tue Jun 03 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-9
-- Change paths to bundled projects in rewheel patch
-
-* Fri May 30 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-8
-- In config script, use uname -m to write the arch
-
-* Thu May 29 2014 Dan Hork <dan[at]danny.cz> - 3.4.1-7
-- update the arch list where valgrind exists - %%power64 includes also
- ppc64le which is not supported yet
-
-* Thu May 29 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-6
-- Forward arguments to the arch specific config script
-Resolves: rhbz#1102683
-
-* Wed May 28 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-5
-- Rename python3.Xm-config script to arch specific.
-Resolves: rhbz#1091815
-
-* Tue May 27 2014 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.1-4
-- Use python3-*, not python-* runtime requires on setuptools and pip
-- rebuild for tcl-8.6
-
-* Tue May 27 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-3
-- Update the rewheel module
-
-* Mon May 26 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-2
-- Fix multilib dependencies.
-Resolves: rhbz#1091815
-
-* Sun May 25 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-1
-- Update to Python 3.4.1
-
-* Sun May 25 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-8
-- Fix test_gdb failure on ppc64le
-Resolves: rhbz#1095355
-
-* Thu May 22 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.0-7
-- Add macro %%python3_version_nodots
-
-* Sun May 18 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-6
-- Disable test_faulthandler, test_gdb on aarch64
-Resolves: rhbz#1045193
-
-* Fri May 16 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-5
-- Don't add Werror=declaration-after-statement for extension
- modules through setup.py (PyBT#21121)
-
-* Mon May 12 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-4
-- Add setuptools and pip to Requires
-
-* Tue Apr 29 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-3
-- Point __os_install_post to correct brp-* files
-
-* Tue Apr 15 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-2
-- Temporarily disable tests requiring SIGHUP (rhbz#1088233)
-
-* Tue Apr 15 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-1
-- Update to Python 3.4 final
-- Add patch adding the rewheel module
-- Merge patches from master
-
-* Wed Jan 08 2014 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.b2
-- Update to Python 3.4 beta 2.
-- Refreshed patches: 55 (systemtap), 146 (hashlib-fips), 154 (test_gdb noise)
-- Dropped patches: 114 (statvfs constants), 177 (platform unicode)
-
-* Mon Nov 25 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.b1
-- Update to Python 3.4 beta 1.
-- Refreshed patches: 102 (lib64), 111 (no static lib), 125 (less verbose COUNT
-ALLOCS), 141 (fix COUNT_ALLOCS in test_module), 146 (hashlib fips),
-157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port)
-- Removed patch 00187 (remove pthread atfork; upstreamed)
-
-* Mon Nov 04 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.a4
-- Update to Python 3.4 alpha 4.
-- Refreshed patches: 55 (systemtap), 102 (lib64), 111 (no static lib),
-114 (statvfs flags), 132 (unittest rpmbuild hooks), 134 (fix COUNT_ALLOCS in
-test_sys), 143 (tsc on ppc64), 146 (hashlib fips), 153 (test gdb noise),
-157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port), 186 (dont raise
-from py_compile)
-- Removed patches: 129 (test_subprocess nonreadable dir - no longer fails in
-Koji), 142 (the mock issue that caused this is fixed)
-- Added patch 187 (remove thread atfork) - will be in next version
-- Refreshed script for checking pyc and pyo timestamps with new ignored files.
-- The fips patch is disabled for now until upstream makes a final decision
-what to do with sha3 implementation for 3.4.0.
-
-* Wed Oct 30 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-7
-- Bytecompile all *.py files properly during build (rhbz#1023607)
-
-* Fri Aug 23 2013 Matej Stuchlik <mstuchli(a)redhat.com> - 3.3.2-6
-- Added fix for CVE-2013-4238 (rhbz#996399)
-
-* Fri Jul 26 2013 Dennis Gilmore <dennis(a)ausil.us> - 3.3.2-5
-- fix up indentation in arm patch
-
-* Fri Jul 26 2013 Dennis Gilmore <dennis(a)ausil.us> - 3.3.2-4
-- disable a test that fails on arm
-- enable valgrind support on arm arches
-
-* Tue Jul 02 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-3
-- Fix build with libffi containing multilib wrapper for ffi.h (rhbz#979696).
-
-* Mon May 20 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-2
-- Add patch for CVE-2013-2099 (rhbz#963261).
-
-* Thu May 16 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-1
-- Updated to Python 3.3.2.
-- Refreshed patches: 153 (gdb test noise)
-- Dropped patches: 175 (configure -Wformat, fixed upstream), 182 (gdb
-test threads)
-- Synced patch numbers with python.spec.
-
-* Thu May 9 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.1-4
-- fix test.test_gdb.PyBtTests.test_threads on ppc64 (patch 181; rhbz#960010)
-
-* Thu May 02 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-3
-- Add patch that enables building on ppc64p7 (replace the sed, so that
-we get consistent with python2 spec and it's more obvious that we're doing it.
-
-* Wed Apr 24 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-2
-- Add fix for gdb tests failing on arm, rhbz#951802.
-
-* Tue Apr 09 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-1
-- Updated to Python 3.3.1.
-- Refreshed patches: 55 (systemtap), 111 (no static lib), 146 (hashlib fips),
-153 (fix test_gdb noise), 157 (uid, gid overflow - fixed upstream, just
-keeping few more downstream tests)
-- Removed patches: 3 (audiotest.au made it to upstream tarball)
-- Removed workaround for http://bugs.python.org/issue14774, discussed in
-http://bugs.python.org/issue15298 and fixed in revision 24d52d3060e8.
-
-* Mon Mar 25 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-10
-- fix gcc 4.8 incompatibility (rhbz#927358); regenerate autotool intermediates
-
-* Mon Mar 25 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-9
-- renumber patches to keep them in sync with python.spec
-
-* Fri Mar 15 2013 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.3.0-8
-- Fix error in platform.platform() when non-ascii byte strings are decoded to
- unicode (rhbz#922149)
-
-* Thu Mar 14 2013 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.3.0-7
-- Fix up shared library extension (rhbz#889784)
-
-* Thu Mar 07 2013 Karsten Hopp <karsten(a)redhat.com> 3.3.0-6
-- add ppc64p7 build target, optimized for Power7
-
-* Mon Mar 4 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-5
-- add workaround for ENOPROTOOPT seen running selftests in Koji
-(rhbz#913732)
-
-* Mon Mar 4 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-4
-- remove config flag from /etc/rpm/macros.{python3|pybytecompile}
-
-* Mon Feb 11 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-3
-- add aarch64 (rhbz#909783)
-
-* Thu Nov 29 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-2
-- add BR on bluez-libs-devel (rhbz#879720)
-
-* Sat Sep 29 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-1
-- 3.3.0rc3 -> 3.3.0; drop alphatag
-
-* Mon Sep 24 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.6.rc3
-- 3.3.0rc2 -> 3.3.0rc3
-
-* Mon Sep 10 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.5.rc2
-- 3.3.0rc1 -> 3.3.0rc2; refresh patch 55
-
-* Mon Aug 27 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.4.rc1
-- 3.3.0b2 -> 3.3.0rc1; refresh patches 3, 55
-
-* Mon Aug 13 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.3.b2
-- 3.3b1 -> 3.3b2; drop upstreamed patch 152; refresh patches 3, 102, 111,
-134, 153, 160; regenenerate autotools patch; rework systemtap patch to work
-correctly when LANG=C (patch 55); importlib.test was moved to
-test.test_importlib upstream
-
-* Mon Aug 13 2012 Karsten Hopp <karsten(a)redhat.com> 3.3.0-0.2.b1
-- disable some failing checks on PPC* (rhbz#846849)
-
-* Fri Aug 3 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.1.b1
-- 3.2 -> 3.3: https://fedoraproject.org/wiki/Features/Python_3.3
-- 3.3.0b1: refresh patches 3, 55, 102, 111, 113, 114, 134, 157; drop upstream
-patch 147; regenenerate autotools patch; drop "--with-wide-unicode" from
-configure (PEP 393); "plat-linux2" -> "plat-linux" (upstream issue 12326);
-"bz2" -> "_bz2" and "crypt" -> "_crypt"; egg-info files are no longer shipped
-for stdlib (upstream issues 10645 and 12218); email/test moved to
-test/test_email; add /usr/bin/pyvenv[-3.3] and venv module (PEP 405); add
-_decimal and _lzma modules; make collections modules explicit in payload again
-(upstream issue 11085); add _testbuffer module to tests subpackage (added in
-upstream commit 3f9b3b6f7ff0); fix test failures (patches 160 and 161);
-workaround erroneously shared _sysconfigdata.py upstream issue #14774; fix
-distutils.sysconfig traceback (patch 162); add BuildRequires: xz-devel (for
-_lzma module); skip some tests within test_socket (patch 163)
-
-* Sat Jul 21 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.2.3-11
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
-
-* Fri Jul 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.1.b1
-
-* Fri Jun 22 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-10
-- use macro for power64 (rhbz#834653)
-
-* Mon Jun 18 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-9
-- fix missing include in uid/gid handling patch (patch 157; rhbz#830405)
-
-* Wed May 30 2012 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.2.3-8
-- fix tapset for debug build
-
-* Tue May 15 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-7
-- update uid/gid handling to avoid int overflows seen with uid/gid
-values >= 2^31 on 32-bit architectures (patch 157; rhbz#697470)
-
-* Fri May 4 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-6
-- renumber autotools patch from 300 to 5000
-- specfile cleanups
-
-* Mon Apr 30 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-5
-- fix test_gdb.py (patch 156; rhbz#817072)
-
-* Fri Apr 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-4
-- avoid allocating thunks in ctypes unless absolutely necessary, to avoid
-generating SELinux denials on "import ctypes" and "import uuid" when embedding
-Python within httpd (patch 155; rhbz#814391)
-
-* Fri Apr 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-3
-- add explicit version requirements on expat to avoid linkage problems with
-XML_SetHashSalt
-
-* Thu Apr 12 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-2
-- fix test_gdb (patch 153)
-
-* Wed Apr 11 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-1
-- 3.2.3; refresh patch 102 (lib64); drop upstream patches 148 (gdbm magic
-values), 149 (__pycache__ fix); add patch 152 (test_gdb regex)
-
-* Thu Feb 9 2012 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2.2-13
-- use newly installed python for byte compiling (now for real)
-
-* Sun Feb 5 2012 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2.2-12
-- use newly installed python for byte compiling (#787498)
-
-* Wed Jan 4 2012 Ville Skytt <ville.skytta(a)iki.fi> - 3.2.2-11
-- Build with $RPM_LD_FLAGS (#756863).
-- Use xz-compressed source tarball.
-
-* Wed Dec 07 2011 Karsten Hopp <karsten(a)redhat.com> 3.2.2-10
-- disable rAssertAlmostEqual in test_cmath on PPC (#750811)
-
-* Mon Oct 17 2011 Rex Dieter <rdieter(a)fedoraproject.org> - 3.2.2-9
-- python3-devel missing autogenerated pkgconfig() provides (#746751)
-
-* Mon Oct 10 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-8
-- cherrypick fix for distutils not using __pycache__ when byte-compiling
-files (rhbz#722578)
-
-* Fri Sep 30 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-7
-- re-enable gdbm (patch 148; rhbz#742242)
-
-* Fri Sep 16 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-6
-- add a sys._debugmallocstats() function (patch 147)
-
-* Wed Sep 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-5
-- support OpenSSL FIPS mode in _hashlib and hashlib; don't build the _md5 and
-_sha* modules, relying on _hashlib in hashlib (rhbz#563986; patch 146)
-
-* Tue Sep 13 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-4
-- disable gdbm module to prepare for gdbm soname bump
-
-* Mon Sep 12 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-3
-- renumber and rename patches for consistency with python.spec (8 to 55, 106
-to 104, 6 to 111, 104 to 113, 105 to 114, 125, 131, 130 to 143)
-
-* Sat Sep 10 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-2
-- rewrite of "check", introducing downstream-only hooks for skipping specific
-cases in an rpmbuild (patch 132), and fixing/skipping failing tests in a more
-fine-grained manner than before; (patches 106, 133-142 sparsely, moving
-patches for consistency with python.spec: 128 to 134, 126 to 135, 127 to 141)
-
-* Tue Sep 6 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-1
-- 3.2.2
-
-* Thu Sep 1 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-7
-- run selftests with "--verbose"
-- disable parts of test_io on ppc (rhbz#732998)
-
-* Wed Aug 31 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-6
-- use "--findleaks --verbose3" when running test suite
-
-* Tue Aug 23 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-5
-- re-enable and fix the --with-tsc option on ppc64, and rework it on 32-bit
-ppc to avoid aliasing violations (patch 130; rhbz#698726)
-
-* Tue Aug 23 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-4
-- don't use --with-tsc on ppc64 debug builds (rhbz#698726)
-
-* Thu Aug 18 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-3
-- add %%python3_version to the rpm macros (rhbz#719082)
-
-* Mon Jul 11 2011 Dennis Gilmore <dennis(a)ausil.us> - 3.2.1-2
-- disable some tests on sparc arches
-
-* Mon Jul 11 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-1
-- 3.2.1; refresh lib64 patch (102), subprocess unit test patch (129), disabling
-of static library build (due to Modules/_testembed; patch 6), autotool
-intermediates (patch 300)
-
-* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-5
-- use the gdb hooks from the upstream tarball, rather than keeping our own copy
-
-* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-4
-- don't run test_openpty and test_pty in %%check
-
-* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-3
-- cleanup of BuildRequires; add comment headings to specfile sections
-
-* Tue Apr 19 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-2
-- fix the libpython.stp systemtap tapset (rhbz#697730)
-
-* Mon Feb 21 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-1
-- 3.2
-- drop alphatag
-- regenerate autotool patch
-
-* Mon Feb 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.13.rc3
-- add a /usr/bin/python3-debug symlink within the debug subpackage
-
-* Mon Feb 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.12.rc3
-- 3.2rc3
-- regenerate autotool patch
-
-* Wed Feb 09 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.2-0.11.rc2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
-
-* Mon Jan 31 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.10.rc2
-- 3.2rc2
-
-* Mon Jan 17 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.9.rc1
-- 3.2rc1
-- rework patch 6 (static lib removal)
-- remove upstreamed patch 130 (ppc debug build)
-- regenerate patch 300 (autotool intermediates)
-- updated packaging to reflect upstream rewrite of "Demo" (issue 7962)
-- added libpython3.so and 2to3-3.2
-
-* Wed Jan 5 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.8.b2
-- set EXTRA_CFLAGS to our CFLAGS, rather than overriding OPT, fixing a linker
-error with dynamic annotations (when configured using --with-valgrind)
-- fix the ppc build of the debug configuration (patch 130; rhbz#661510)
-
-* Tue Jan 4 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.7.b2
-- add --with-valgrind to configuration (on architectures that support this)
-
-* Wed Dec 29 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.6.b2
-- work around test_subprocess failure seen in koji (patch 129)
-
-* Tue Dec 28 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.5.b2
-- 3.2b2
-- rework patch 3 (removal of mimeaudio tests), patch 6 (no static libs),
-patch 8 (systemtap), patch 102 (lib64)
-- remove patch 4 (rendered redundant by upstream r85537), patch 103 (PEP 3149),
-patch 110 (upstreamed expat fix), patch 111 (parallel build fix for grammar
-fixed upstream)
-- regenerate patch 300 (autotool intermediates)
-- workaround COUNT_ALLOCS weakref issues in test suite (patch 126, patch 127,
-patch 128)
-- stop using runtest.sh in %%check (dropped by upstream), replacing with
-regrtest; fixup list of failing tests
-- introduce "pyshortver", "SOABI_optimized" and "SOABI_debug" macros
-- rework manifests of shared libraries to use "SOABI_" macros, reflecting
-PEP 3149
-- drop itertools, operator and _collections modules from the manifests as py3k
-commit r84058 moved these inside libpython; json/tests moved to test/json_tests
-- move turtle code into the tkinter subpackage
-
-* Wed Nov 17 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.5.a1
-- fix sysconfig to not rely on the -devel subpackage (rhbz#653058)
-
-* Thu Sep 9 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.4.a1
-- move most of the content of the core package to the libs subpackage, given
-that the libs aren't meaningfully usable without the standard libraries
-
-* Wed Sep 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.3.a1
-- Move test.support to core package (rhbz#596258)
-- Add various missing __pycache__ directories to payload
-
-* Sun Aug 22 2010 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.2-0.2.a1
-- Add __pycache__ directory for site-packages
-
-* Sun Aug 22 2010 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2-0.1.a1
-- on 64bit "stdlib" was still "/usr/lib/python*" (modify *lib64.patch)
-- make find-provides-without-python-sonames.sh 64bit aware
-
-* Sat Aug 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.0.a1
-- 3.2a1; add alphatag
-- rework %%files in the light of PEP 3147 (__pycache__)
-- drop our configuration patch to Setup.dist (patch 0): setup.py should do a
-better job of things, and the %%files explicitly lists our modules (r82746
-appears to break the old way of doing things). This leads to various modules
-changing from "foomodule.so" to "foo.so". It also leads to the optimized build
-dropping the _sha1, _sha256 and _sha512 modules, but these are provided by
-_hashlib; _weakref becomes a builtin module; xxsubtype goes away (it's only for
-testing/devel purposes)
-- fixup patches 3, 4, 6, 8, 102, 103, 105, 111 for the rebase
-- remove upstream patches: 7 (system expat), 106, 107, 108 (audioop reformat
-plus CVE-2010-1634 and CVE-2010-2089), 109 (CVE-2008-5983)
-- add machinery for rebuilding "configure" and friends, using the correct
-version of autoconf (patch 300)
-- patch the debug build's usage of COUNT_ALLOCS to be less verbose (patch 125)
-- "modulator" was removed upstream
-- drop "-b" from patch applications affecting .py files to avoid littering the
-installation tree
-
-* Thu Aug 19 2010 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.1.2-13
-- Turn on computed-gotos.
-- Fix for parallel make and graminit.c
-
-* Fri Jul 2 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-12
-- rebuild
-
-* Fri Jul 2 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-11
-- Fix an incompatibility between pyexpat and the system expat-2.0.1 that led to
-a segfault running test_pyexpat.py (patch 110; upstream issue 9054; rhbz#610312)
-
-* Fri Jun 4 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-10
-- ensure that the compiler is invoked with "-fwrapv" (rhbz#594819)
-- reformat whitespace in audioop.c (patch 106)
-- CVE-2010-1634: fix various integer overflow checks in the audioop
-module (patch 107)
-- CVE-2010-2089: further checks within the audioop module (patch 108)
-- CVE-2008-5983: the new PySys_SetArgvEx entry point from r81399 (patch 109)
-
-* Thu May 27 2010 Dan Hork <dan[at]danny.cz> - 3.1.2-9
-- reading the timestamp counter is available only on some arches (see Python/ceval.c)
-
-* Wed May 26 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-8
-- add flags for statvfs.f_flag to the constant list in posixmodule (i.e. "os")
-(patch 105)
-
-* Tue May 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-7
-- add configure-time support for COUNT_ALLOCS and CALL_PROFILE debug options
-(patch 104); enable them and the WITH_TSC option within the debug build
-
-* Mon May 24 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-6
-- build and install two different configurations of Python 3: debug and
-standard, packaging the debug build in a new "python3-debug" subpackage
-(patch 103)
-
-* Tue Apr 13 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-5
-- exclude test_http_cookies when running selftests, due to hang seen on
-http://koji.fedoraproject.org/koji/taskinfo?taskID=2088463 (cancelled after
-11 hours)
-- update python-gdb.py from v5 to py3k version submitted upstream
-
-* Wed Mar 31 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-4
-- update python-gdb.py from v4 to v5 (improving performance and stability,
-adding commands)
-
-* Thu Mar 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-3
-- update python-gdb.py from v3 to v4 (fixing infinite recursion on reference
-cycles and tracebacks on bytes 0x80-0xff in strings, adding handlers for sets
-and exceptions)
-
-* Wed Mar 24 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-2
-- refresh gdb hooks to v3 (reworking how they are packaged)
-
-* Sun Mar 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-1
-- update to 3.1.2: http://www.python.org/download/releases/3.1.2/
-- drop upstreamed patch 2 (.pyc permissions handling)
-- drop upstream patch 5 (fix for the test_tk and test_ttk_* selftests)
-- drop upstreamed patch 200 (path-fixing script)
-
-* Sat Mar 20 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-28
-- fix typo in libpython.stp (rhbz:575336)
-
-* Fri Mar 12 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-27
-- add pyfuntop.stp example (source 7)
-- convert usage of $$RPM_BUILD_ROOT to %%{buildroot} throughout, for
-consistency with python.spec
-
-* Mon Feb 15 2010 Thomas Spura <tomspur(a)fedoraproject.org> - 3.1.1-26
-- rebuild for new package of redhat-rpm-config (rhbz:564527)
-- use 'install -p' when running 'make install'
-
-* Fri Feb 12 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-25
-- split configure options into multiple lines for easy of editing
-- add systemtap static markers (wcohen, mjw, dmalcolm; patch 8), a systemtap
-tapset defining "python.function.entry" and "python.function.return" to make
-the markers easy to use (dmalcolm; source 5), and an example of using the
-tapset to the docs (dmalcolm; source 6) (rhbz:545179)
-
-* Mon Feb 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-24
-- move the -gdb.py file from %%{_libdir}/INSTSONAME-gdb.py to
-%%{_prefix}/lib/debug/%%{_libdir}/INSTSONAME.debug-gdb.py to avoid noise from
-ldconfig (bug 562980), and which should also ensure it becomes part of the
-debuginfo subpackage, rather than the libs subpackage
-- introduce %%{py_SOVERSION} and %%{py_INSTSONAME} to reflect the upstream
-configure script, and to avoid fragile scripts that try to figure this out
-dynamically (e.g. for the -gdb.py change)
-
-* Mon Feb 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-23
-- add gdb hooks for easier debugging (Source 4)
-
-* Thu Jan 28 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-22
-- update python-3.1.1-config.patch to remove downstream customization of build
-of pyexpat and elementtree modules
-- add patch adapted from upstream (patch 7) to add support for building against
-system expat; add --with-system-expat to "configure" invocation
-- remove embedded copies of expat and zlib from source tree during "prep"
-
-* Mon Jan 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-21
-- introduce %%{dynload_dir} macro
-- explicitly list all lib-dynload files, rather than dynamically gathering the
-payload into a temporary text file, so that we can be sure what we are
-shipping
-- introduce a macros.pybytecompile source file, to help with packaging python3
-modules (Source3; written by Toshio)
-- rename "2to3-3" to "python3-2to3" to better reflect python 3 module packaging
-plans
-
-* Mon Jan 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-20
-- change python-3.1.1-config.patch to remove our downstream change to curses
-configuration in Modules/Setup.dist, so that the curses modules are built using
-setup.py with the downstream default (linking against libncursesw.so, rather
-than libncurses.so), rather than within the Makefile; add a test to %%install
-to verify the dso files that the curses module is linked against the correct
-DSO (bug 539917; changes _cursesmodule.so -> _curses.so)
-
-* Fri Jan 22 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-19
-- add %%py3dir macro to macros.python3 (to be used during unified python 2/3
-builds for setting up the python3 copy of the source tree)
-
-* Wed Jan 20 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-18
-- move lib2to3 from -tools subpackage to main package (bug 556667)
-
-* Sun Jan 17 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-17
-- patch Makefile.pre.in to avoid building static library (patch 6, bug 556092)
-
-* Fri Jan 15 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-16
-- use the %%{_isa} macro to ensure that the python-devel dependency on python
-is for the correct multilib arch (#555943)
-- delete bundled copy of libffi to make sure we use the system one
-
-* Fri Jan 15 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-15
-- fix the URLs output by pydoc so they point at python.org's 3.1 build of the
-docs, rather than the 2.6 build
-
-* Wed Jan 13 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-14
-- replace references to /usr with %%{_prefix}; replace references to
-/usr/include with %%{_includedir} (Toshio)
-
-* Mon Jan 11 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-13
-- fix permission on find-provides-without-python-sonames.sh from 775 to 755
-
-* Mon Jan 11 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-12
-- remove build-time requirements on tix and tk, since we already have
-build-time requirements on the -devel subpackages for each of these (Thomas
-Spura)
-- replace usage of %%define with %%global (Thomas Spura)
-- remove forcing of CC=gcc as this old workaround for bug 109268 appears to
-longer be necessary
-- move various test files from the "tools"/"tkinter" subpackages to the "test"
-subpackage
-
-* Thu Jan 7 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-11
-- add %%check section (thanks to Thomas Spura)
-- update patch 4 to use correct shebang line
-- get rid of stray patch file from buildroot
-
-* Tue Nov 17 2009 Andrew McNabb <amcnabb(a)mcnabbs.org> - 3.1.1-10
-- switched a few instances of "find |xargs" to "find -exec" for consistency.
-- made the description of __os_install_post more accurate.
-
-* Wed Nov 4 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-9
-- add macros.python3 to the -devel subpackage, containing common macros for use
-when packaging python3 modules
-
-* Tue Nov 3 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-8
-- add a provides of "python(abi)" (see bug 532118)
-- fix issues identified by a.badger in package review (bug 526126, comment 39):
- - use "3" thoughout metadata, rather than "3.*"
- - remove conditional around "pkg-config openssl"
- - use standard cleanup of RPM_BUILD_ROOT
- - replace hardcoded references to /usr with _prefix macro
- - stop removing egg-info files
- - use /usr/bin/python3.1 rather than /use/bin/env python3.1 when fixing
-up shebang lines
- - stop attempting to remove no-longer-present .cvsignore files
- - move the post/postun sections above the "files" sections
-
-* Thu Oct 29 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-7
-- remove commented-away patch 51 (python-2.6-distutils_rpm.patch): the -O1
-flag is used by default in the upstream code
-- "Makefile" and the config-32/64.h file are needed by distutils/sysconfig.py
-_init_posix(), so we include them in the core package, along with their parent
-directories (bug 531901)
-
-* Tue Oct 27 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-6
-- reword description, based on suggestion by amcnabb
-- fix the test_email and test_imp selftests (patch 3 and patch 4 respectively)
-- fix the test_tk and test_ttk_* selftests (patch 5)
-- fix up the specfile's handling of shebang/perms to avoid corrupting
-test_httpservers.py (sed command suggested by amcnabb)
-
-* Thu Oct 22 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-5
-- fixup importlib/_bootstrap.py so that it correctly handles being unable to
-open .pyc files for writing (patch 2, upstream issue 7187)
-- actually apply the rpath patch (patch 1)
-
-* Thu Oct 22 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-4
-- update patch0's setup of the crypt module to link it against libcrypt
-- update patch0 to comment "datetimemodule" back out, so that it is built
-using setup.py (see Setup, option 3), thus linking it statically against
-timemodule.c and thus avoiding a run-time "undefined symbol:
-_PyTime_DoubleToTimet" failure on "import datetime"
-
-* Wed Oct 21 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-3
-- remove executable flag from various files that shouldn't have it
-- fix end-of-line encodings
-- fix a character encoding
-
-* Tue Oct 20 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-2
-- disable invocation of brp-python-bytecompile in postprocessing, since
-it would be with the wrong version of python (adapted from ivazquez'
-python3000 specfile)
-- use a custom implementation of __find_provides in order to filter out bogus
-provides lines for the various .so modules
-- fixup distutils/unixccompiler.py to remove standard library path from rpath
-(patch 1, was Patch0 in ivazquez' python3000 specfile)
-- split out libraries into a -libs subpackage
-- update summaries and descriptions, basing content on ivazquez' specfile
-- fixup executable permissions on .py, .xpm and .xbm files, based on work in
-ivazquez's specfile
-- get rid of DOS batch files
-- fixup permissions for shared libraries from non-standard 555 to standard 755
-- move /usr/bin/python*-config to the -devel subpackage
-- mark various directories as being documentation
-
-* Thu Sep 24 2009 Andrew McNabb <amcnabb(a)mcnabbs.org> 3.1.1-1
-- Initial package for Python 3.
-
diff --git a/python35.spec b/python35.spec
new file mode 100644
index 0000000..372bfc9
--- /dev/null
+++ b/python35.spec
@@ -0,0 +1,1569 @@
+# ======================================================
+# Conditionals and other variables controlling the build
+# ======================================================
+
+%global pybasever 3.5
+
+# pybasever without the dot:
+%global pyshortver 35
+
+%global pylibdir %{_libdir}/python%{pybasever}
+%global dynload_dir %{pylibdir}/lib-dynload
+
+# SOABI is defined in the upstream configure.in from Python-3.2a2 onwards,
+# for PEP 3149:
+# http://www.python.org/dev/peps/pep-3149/
+
+# ("configure.in" became "configure.ac" in Python 3.3 onwards, and in
+# backports)
+
+# ABIFLAGS, LDVERSION and SOABI are in the upstream Makefile
+# With Python 3.3, we lose the "u" suffix due to PEP 393
+%global ABIFLAGS_optimized m
+%global ABIFLAGS_debug dm
+
+%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
+%global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug}
+
+%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu}
+%global SOABI_debug cpython-%{pyshortver}%{ABIFLAGS_debug}-%{_arch}-linux%{_gnu}
+
+# All bytecode files are now in a __pycache__ subdirectory, with a name
+# reflecting the version of the bytecode (to permit sharing of python libraries
+# between different runtimes)
+# See http://www.python.org/dev/peps/pep-3147/
+# For example,
+# foo/bar.py
+# now has bytecode at:
+# foo/__pycache__/bar.cpython-35.pyc
+# foo/__pycache__/bar.cpython-35.pyo
+%global bytecode_suffixes .cpython-35*.py?
+
+# Python's configure script defines SOVERSION, and this is used in the Makefile
+# to determine INSTSONAME, the name of the libpython DSO:
+# LDLIBRARY='libpython$(VERSION).so'
+# INSTSONAME="$LDLIBRARY".$SOVERSION
+# We mirror this here in order to make it easier to add the -gdb.py hooks.
+# (if these get out of sync, the payload of the libs subpackage will fail
+# and halt the build)
+%global py_SOVERSION 1.0
+%global py_INSTSONAME_optimized libpython%{LDVERSION_optimized}.so.%{py_SOVERSION}
+%global py_INSTSONAME_debug libpython%{LDVERSION_debug}.so.%{py_SOVERSION}
+
+%global with_debug_build 1
+
+%global with_gdb_hooks 1
+
+%global with_systemtap 1
+
+# some arches don't have valgrind so we need to disable its support on them
+%ifnarch s390 %{mips}
+%global with_valgrind 1
+%else
+%global with_valgrind 0
+%endif
+
+%global with_gdbm 1
+
+# Change from yes to no to turn this off
+%global with_computed_gotos yes
+
+# Turn this to 0 to turn off the "check" phase:
+%global run_selftest_suite 1
+
+# We want to byte-compile the .py files within the packages using the new
+# python3 binary.
+#
+# Unfortunately, rpmbuild's infrastructure requires us to jump through some
+# hoops to avoid byte-compiling with the system python 2 version:
+# /usr/lib/rpm/redhat/macros sets up build policy that (amongst other things)
+# defines __os_install_post. In particular, "brp-python-bytecompile" is
+# invoked without an argument thus using the wrong version of python
+# (/usr/bin/python, rather than the freshly built python), thus leading to
+# numerous syntax errors, and incorrect magic numbers in the .pyc files. We
+# thus override __os_install_post to avoid invoking this script:
+%global __os_install_post /usr/lib/rpm/brp-compress \
+ %{!?__debug_package:/usr/lib/rpm/brp-strip %{__strip}} \
+ /usr/lib/rpm/brp-strip-static-archive %{__strip} \
+ /usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} \
+ /usr/lib/rpm/brp-python-hardlink
+# to remove the invocation of brp-python-bytecompile, whilst keeping the
+# invocation of brp-python-hardlink (since this should still work for python3
+# pyc/pyo files)
+
+
+# ==================
+# Top-level metadata
+# ==================
+Summary: Version 3 of the Python programming language aka Python 3000
+Name: python%{pyshortver}
+Version: %{pybasever}.1
+Release: 14%{?dist}
+License: Python
+Group: Development/Languages
+
+
+# =======================
+# Build-time requirements
+# =======================
+
+# (keep this list alphabetized)
+
+BuildRequires: autoconf
+BuildRequires: bluez-libs-devel
+BuildRequires: bzip2
+BuildRequires: bzip2-devel
+BuildRequires: db4-devel >= 4.7
+
+# expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME. We use
+# it (in pyexpat) in order to enable the fix in Python-3.2.3 for CVE-2012-0876:
+BuildRequires: expat-devel >= 2.1.0
+
+BuildRequires: findutils
+BuildRequires: gcc-c++
+%if %{with_gdbm}
+BuildRequires: gdbm-devel
+%endif
+BuildRequires: glibc-devel
+BuildRequires: gmp-devel
+BuildRequires: libffi-devel
+BuildRequires: libGL-devel
+BuildRequires: libX11-devel
+BuildRequires: ncurses-devel
+# workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig)
+BuildRequires: net-tools
+BuildRequires: openssl-devel
+BuildRequires: pkgconfig
+BuildRequires: readline-devel
+BuildRequires: sqlite-devel
+
+%if 0%{?with_systemtap}
+BuildRequires: systemtap-sdt-devel
+# (this introduces a dependency on "python", in that systemtap-sdt-devel's
+# /usr/bin/dtrace is a python 2 script)
+%global tapsetdir /usr/share/systemtap/tapset
+%endif # with_systemtap
+
+BuildRequires: tar
+BuildRequires: tcl-devel
+BuildRequires: tix-devel
+BuildRequires: tk-devel
+
+%if 0%{?with_valgrind}
+BuildRequires: valgrind-devel
+%endif
+
+BuildRequires: xz-devel
+BuildRequires: zlib-devel
+
+
+# =======================
+# Source code and patches
+# =======================
+
+Source: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
+
+# Supply an RPM macro "py_byte_compile" for the python3-devel subpackage
+# to enable specfiles to selectively byte-compile individual files and paths
+# with different Python runtimes as necessary:
+Source3: macros.pybytecompile%{pybasever}
+
+# Systemtap tapset to make it easier to use the systemtap static probes
+# (actually a template; LIBRARY_PATH will get fixed up during install)
+# Written by dmalcolm; not yet sent upstream
+Source5: libpython.stp
+
+# Example systemtap script using the tapset
+# Written by wcohen, mjw, dmalcolm; not yet sent upstream
+Source6: systemtap-example.stp
+
+# Another example systemtap script that uses the tapset
+# Written by dmalcolm; not yet sent upstream
+Source7: pyfuntop.stp
+
+# A simple script to check timestamps of bytecode files
+# Run in check section with Python that is currently being built
+# Written by bkabrda
+Source8: check-pyc-and-pyo-timestamps.py
+
+# A simple macro that enables packages to require system-python(abi) instead of python(abi)
+Source9: macros.systempython
+
+# Fixup distutils/unixccompiler.py to remove standard library path from rpath:
+# Was Patch0 in ivazquez' python3000 specfile:
+Patch1: Python-3.1.1-rpath.patch
+
+# 00055 #
+# Systemtap support: add statically-defined probe points
+# Patch sent upstream as http://bugs.python.org/issue14776
+# with some subsequent reworking to cope with LANG=C in an rpmbuild
+# (where sys.getfilesystemencoding() == 'ascii')
+Patch55: 00055-systemtap.patch
+
+Patch102: 00102-lib64.patch
+
+# 00104 #
+# Only used when "%{_lib}" == "lib64"
+# Another lib64 fix, for distutils/tests/test_install.py; not upstream:
+Patch104: 00104-lib64-fix-for-test_install.patch
+
+# 00111 #
+# Patch the Makefile.pre.in so that the generated Makefile doesn't try to build
+# a libpythonMAJOR.MINOR.a (bug 550692):
+# Downstream only: not appropriate for upstream
+Patch111: 00111-no-static-lib.patch
+
+# 00132 #
+# Add non-standard hooks to unittest for use in the "check" phase below, when
+# running selftests within the build:
+# @unittest._skipInRpmBuild(reason)
+# for tests that hang or fail intermittently within the build environment, and:
+# @unittest._expectedFailureInRpmBuild
+# for tests that always fail within the build environment
+#
+# The hooks only take effect if WITHIN_PYTHON_RPM_BUILD is set in the
+# environment, which we set manually in the appropriate portion of the "check"
+# phase below (and which potentially other python-* rpms could set, to reuse
+# these unittest hooks in their own "check" phases)
+Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch
+
+# 00133 #
+# 00133-skip-test_dl.patch is not relevant for python3: the "dl" module no
+# longer exists
+
+# 00137 #
+# Some tests within distutils fail when run in an rpmbuild:
+Patch137: 00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
+
+# 00143 #
+# Fix the --with-tsc option on ppc64, and rework it on 32-bit ppc to avoid
+# aliasing violations (rhbz#698726)
+# Sent upstream as http://bugs.python.org/issue12872
+Patch143: 00143-tsc-on-ppc.patch
+
+# 00146 #
+# Support OpenSSL FIPS mode (e.g. when OPENSSL_FORCE_FIPS_MODE=1 is set)
+# - handle failures from OpenSSL (e.g. on attempts to use MD5 in a
+# FIPS-enforcing environment)
+# - add a new "usedforsecurity" keyword argument to the various digest
+# algorithms in hashlib so that you can whitelist a callsite with
+# "usedforsecurity=False"
+# (sent upstream for python 3 as http://bugs.python.org/issue9216 ; see RHEL6
+# python patch 119)
+# - enforce usage of the _hashlib implementation: don't fall back to the _md5
+# and _sha* modules (leading to clearer error messages if fips selftests
+# fail)
+# - don't build the _md5 and _sha* modules; rely on the _hashlib implementation
+# of hashlib
+# (rhbz#563986)
+# Note: Up to Python 3.4.0.b1, upstream had their own implementation of what
+# they assumed would become sha3. This patch was adapted to give it the
+# usedforsecurity argument, even though it did nothing (OpenSSL didn't have
+# sha3 implementation at that time).In 3.4.0.b2, sha3 implementation was reverted
+# (see http://bugs.python.org/issue16113), but the alterations were left in the
+# patch, since they may be useful again if upstream decides to rerevert sha3
+# implementation and OpenSSL still doesn't support it. For now, they're harmless.
+Patch146: 00146-hashlib-fips.patch
+
+# 00155 #
+# Avoid allocating thunks in ctypes unless absolutely necessary, to avoid
+# generating SELinux denials on "import ctypes" and "import uuid" when
+# embedding Python within httpd (rhbz#814391)
+Patch155: 00155-avoid-ctypes-thunks.patch
+
+# 00157 #
+# Update uid/gid handling throughout the standard library: uid_t and gid_t are
+# unsigned 32-bit values, but existing code often passed them through C long
+# values, which are signed 32-bit values on 32-bit architectures, leading to
+# negative int objects for uid/gid values >= 2^31 on 32-bit architectures.
+#
+# Introduce _PyObject_FromUid/Gid to convert uid_t/gid_t values to python
+# objects, using int objects where the value will fit (long objects otherwise),
+# and _PyArg_ParseUid/Gid to convert int/long to uid_t/gid_t, with -1 allowed
+# as a special case (since this is given special meaning by the chown syscall)
+#
+# Update standard library to use this throughout for uid/gid values, so that
+# very large uid/gid values are round-trippable, and -1 remains usable.
+# (rhbz#697470)
+Patch157: 00157-uid-gid-overflows.patch
+
+# 00160 #
+# Python 3.3 added os.SEEK_DATA and os.SEEK_HOLE, which may be present in the
+# header files in the build chroot, but may not be supported in the running
+# kernel, hence we disable this test in an rpm build.
+# Adding these was upstream issue http://bugs.python.org/issue10142
+# Not yet sent upstream
+Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch
+
+# 00163 #
+# Some tests within test_socket fail intermittently when run inside Koji;
+# disable them using unittest._skipInRpmBuild
+# Not yet sent upstream
+Patch163: 00163-disable-parts-of-test_socket-in-rpm-build.patch
+
+# 00170 #
+# In debug builds, try to print repr() when a C-level assert fails in the
+# garbage collector (typically indicating a reference-counting error
+# somewhere else e.g in an extension module)
+# Backported to 2.7 from a patch I sent upstream for py3k
+# http://bugs.python.org/issue9263 (rhbz#614680)
+# hiding the proposed new macros/functions within gcmodule.c to avoid exposing
+# them within the extension API.
+# (rhbz#850013
+Patch170: 00170-gc-assertions.patch
+
+# 00178 #
+# Don't duplicate various FLAGS in sysconfig values
+# http://bugs.python.org/issue17679
+# Does not affect python2 AFAICS (different sysconfig values initialization)
+Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch
+
+# 00180 #
+# Enable building on ppc64p7
+# Not appropriate for upstream, Fedora-specific naming
+Patch180: 00180-python-add-support-for-ppc64p7.patch
+
+# 00184 #
+# Fix for https://bugzilla.redhat.com/show_bug.cgi?id=979696
+# Fixes build of ctypes against libffi with multilib wrapper
+# Python recognizes ffi.h only if it contains "#define LIBFFI_H",
+# but the wrapper doesn't contain that, which makes the build fail
+# We patch this by also accepting "#define ffi_wrapper_h"
+Patch184: 00184-ctypes-should-build-with-libffi-multilib-wrapper.patch
+
+# 00186 #
+# Fix for https://bugzilla.redhat.com/show_bug.cgi?id=1023607
+# Previously, this fixed a problem where some *.py files were not being
+# bytecompiled properly during build. This was result of py_compile.compile
+# raising exception when trying to convert test file with bad encoding, and
+# thus not continuing bytecompilation for other files.
+# This was fixed upstream, but the test hasn't been merged yet, so we keep it
+Patch186: 00186-dont-raise-from-py_compile.patch
+
+# 00188 #
+# Downstream only patch that should be removed when we compile all guaranteed
+# hashlib algorithms properly. The problem is this:
+# - during tests, test_hashlib is imported and executed before test_lib2to3
+# - if at least one hash function has failed, trying to import it triggers an
+# exception that is being caught and exception is logged:
+# http://hg.python.org/cpython/file/2de806c8b070/Lib/hashlib.py#l217
+# - logging the exception makes logging module run basicConfig
+# - when lib2to3 tests are run again, lib2to3 runs basicConfig again, which
+# doesn't do anything, because it was run previously
+# (logging.root.handlers != []), which means that the default setup
+# (most importantly logging level) is not overriden. That means that a test
+# relying on this will fail (test_filename_changing_on_output_single_dir)
+Patch188: 00188-fix-lib2to3-tests-when-hashlib-doesnt-compile-properly.patch
+
+# 00194 #
+# Tests requiring SIGHUP to work don't work in Koji
+# see rhbz#1088233
+Patch194: temporarily-disable-tests-requiring-SIGHUP.patch
+
+# 00196 #
+# Fix test_gdb failure on ppc64le
+Patch196: 00196-test-gdb-match-addr-before-builtin.patch
+
+# 00200 #
+# Fix for gettext plural form headers (lines that begin with "#")
+# Note: Backported from scl
+Patch200: 00200-gettext-plural-fix.patch
+
+# 00201 #
+# Fixes memory leak in gdbm module (rhbz#977308)
+# This was upstreamed as a part of bigger patch, but for our purposes
+# this is ok: http://bugs.python.org/issue18404
+# Note: Backported from scl
+Patch201: 00201-fix-memory-leak-in-gdbm.patch
+
+# 00203 #
+# test_threading fails in koji dues to it's handling of signals
+Patch203: 00203-disable-threading-test-koji.patch
+
+# 00205 #
+# LIBPL variable in makefile takes LIBPL from configure.ac
+# but the LIBPL variable defined there doesn't respect libdir macro
+Patch205: 00205-make-libpl-respect-lib64.patch
+
+# 00206 #
+# Remove hf flag from arm triplet which is used
+# by debian but fedora infra uses only eabi without hf
+Patch206: 00206-remove-hf-from-arm-triplet.patch
+
+# 00207 #
+# Avoid truncated _math.o files caused by parallel builds
+# modified version of https://bugs.python.org/issue24421
+# rhbz#1292461
+Patch207: 00207-math-once.patch
+
+# 00208 #
+# test_with_pip (test.test_venv.EnsurePipTest) fails on ppc64*
+# rhbz#1292467
+Patch208: 00208-disable-test_with_pip-on-ppc.patch
+
+# 00209 #
+# CVE-2016-5636: http://seclists.org/oss-sec/2016/q2/560
+# rhbz#1345859: https://bugzilla.redhat.com/show_bug.cgi?id=1345859
+# https://hg.python.org/cpython/rev/10dad6da1b28/
+# https://hg.python.org/cpython/rev/5533a9e02b21
+# Fix possible integer overflow and heap corruption in zipimporter.get_data()
+# FIXED UPSTREAM: https://bugs.python.org/issue26171
+Patch209: 00209-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
+
+# 00210 #
+# CVE-2016-0772 python: smtplib StartTLS stripping attack
+# rhbz#1303647: https://bugzilla.redhat.com/show_bug.cgi?id=1303647
+# rhbz#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
+# FIXED UPSTREAM: https://hg.python.org/cpython/rev/d590114c2394
+# Raise an error when STARTTLS fails
+Patch210: 00210-Raise-an-error-when-STARTTLS-fails.patch
+
+# 00211 #
+# Fix test breakage with version 2.2.0 of Expat
+# rhbz#1353918: https://bugzilla.redhat.com/show_bug.cgi?id=1353918
+# NOT YET FIXED UPSTREAM: http://bugs.python.org/issue27369
+Patch211: 00211-fix-test-pyexpat-failure.patch
+
+# 00242 #
+# Fix the triplet used on 64-bit MIPS
+# rhbz#1322526: https://bugzilla.redhat.com/show_bug.cgi?id=1322526
+# Upstream uses Debian-like style mips64-linux-gnuabi64
+# Fedora needs the default mips64-linux-gnu
+Patch242: 00242-fix-mips64-triplet.patch
+
+# (New patches go here ^^^)
+#
+# When adding new patches to "python" and "python3" in Fedora 17 onwards,
+# please try to keep the patch numbers in-sync between the two specfiles:
+#
+# - use the same patch number across both specfiles for conceptually-equivalent
+# fixes, ideally with the same name
+#
+# - when a patch is relevant to both specfiles, use the same introductory
+# comment in both specfiles where possible (to improve "diff" output when
+# comparing them)
+#
+# - when a patch is only relevant for one of the two specfiles, leave a gap
+# in the patch numbering in the other specfile, adding a comment when
+# omitting a patch, both in the manifest section here, and in the "prep"
+# phase below
+#
+# Hopefully this will make it easier to ensure that all relevant fixes are
+# applied to both versions.
+
+# add correct arch for ppc64/ppc64le
+# it should be ppc64le-linux-gnu/ppc64-linux-gnu instead powerpc64le-linux-gnu/powerpc64-linux-gnu
+Patch5001: python3-powerppc-arch.patch
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+
+# ======================================================
+# Additional metadata, and subpackages
+# ======================================================
+
+URL: http://www.python.org/
+
+# See notes in bug 532118:
+Provides: python(abi) = %{pybasever}
+
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+
+%description
+Python 3 is a new version of the language that is incompatible with the 2.x
+line of releases. The language is mostly the same, but many details, especially
+how built-in objects like dictionaries and strings work, have changed
+considerably, and a lot of deprecated features have finally been removed.
+
+%package libs
+Summary: Python 3 runtime libraries
+Group: Development/Libraries
+Requires: system-python-libs%{?_isa} = %{version}-%{release}
+
+# expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME. We use
+# this symbol (in pyexpat), so we must explicitly state this dependency to
+# prevent "import pyexpat" from failing with a linker error if someone hasn't
+# yet upgraded expat:
+Requires: expat >= 2.1.0
+Provides: python3-enum34 = 1.0.4-5%{?dist}
+Obsoletes: python3-enum34 < 1.0.4-5%{?dist}
+
+%description libs
+This package contains files used to embed Python 3 into applications.
+
+%package -n system-python
+Summary: System Python executable
+Group: Development/Libraries
+Requires: system-python-libs%{?_isa} = %{version}-%{release}
+Provides: system-python(abi) = %{pybasever}
+
+%description -n system-python
+System Python provides a binary interpreter which uses system-python-libs,
+a subset of standard Python library considered essential to run various tools,
+requiring Python, that consider themselves "system tools".
+
+%package -n system-python-libs
+Summary: System Python runtime libraries
+Group: Development/Libraries
+
+%define __requires_exclude ^(/usr/bin/python3.*|python\\(abi\\) = 3\\..*)$
+
+Requires: expat >= 2.1.0
+
+%description -n system-python-libs
+This package contains files used to embed System Python into applications.
+
+%package devel
+Summary: Libraries and header files needed for Python 3 development
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+BuildRequires: python-rpm-macros
+Requires: python-rpm-macros
+Requires: python3-rpm-macros
+Conflicts: %{name} < %{version}-%{release}
+
+%description devel
+This package contains libraries and header files used to build applications
+with and native libraries for Python 3
+
+%package tools
+Summary: A collection of tools included with Python 3
+Group: Development/Tools
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-tkinter = %{version}-%{release}
+
+%description tools
+This package contains several tools included with Python 3
+
+%package tkinter
+Summary: A GUI toolkit for Python 3
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+
+%description tkinter
+The Tkinter (Tk interface) program is an graphical user interface for
+the Python scripting language.
+
+%package test
+Summary: The test modules from the main python 3 package
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-tools = %{version}-%{release}
+
+%description test
+The test modules from the main %{name} package.
+These are in a separate package to save space, as they are almost never used
+in production.
+
+You might want to install the python3-test package if you're developing
+python 3 code that uses more than just unittest and/or test_support.py.
+
+%if 0%{?with_debug_build}
+%package debug
+Summary: Debug version of the Python 3 runtime
+Group: Applications/System
+
+# The debug build is an all-in-one package version of the regular build, and
+# shares the same .py/.pyc files and directories as the regular build. Hence
+# we depend on all of the subpackages of the regular build:
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
+Requires: %{name}-test%{?_isa} = %{version}-%{release}
+Requires: %{name}-tkinter%{?_isa} = %{version}-%{release}
+Requires: %{name}-tools%{?_isa} = %{version}-%{release}
+
+%description debug
+python3-debug provides a version of the Python 3 runtime with numerous debugging
+features enabled, aimed at advanced Python users, such as developers of Python
+extension modules.
+
+This version uses more memory and will be slower than the regular Python 3 build,
+but is useful for tracking down reference-counting issues, and other bugs.
+
+The bytecodes are unchanged, so that .pyc files are compatible between the two
+versions of Python 3, but the debugging features mean that C/C++ extension
+modules are ABI-incompatible with those built for the standard runtime.
+
+It shares installation directories with the standard Python 3 runtime, so that
+.py and .pyc files can be shared. All compiled extension modules gain a "_d"
+suffix ("foo_d.so" rather than "foo.so") so that each Python 3 implementation
+can load its own extensions.
+%endif # with_debug_build
+
+# ======================================================
+# The prep phase of the build:
+# ======================================================
+
+%prep
+%setup -q -n Python-%{version}%{?prerel}
+
+%if 0%{?with_systemtap}
+# Provide an example of usage of the tapset:
+cp -a %{SOURCE6} .
+cp -a %{SOURCE7} .
+%endif # with_systemtap
+
+# Ensure that we're using the system copy of various libraries, rather than
+# copies shipped by upstream in the tarball:
+# Remove embedded copy of expat:
+rm -r Modules/expat || exit 1
+
+# Remove embedded copy of libffi:
+for SUBDIR in darwin libffi libffi_arm_wince libffi_msvc libffi_osx ; do
+ rm -r Modules/_ctypes/$SUBDIR || exit 1 ;
+done
+
+# Remove embedded copy of zlib:
+rm -r Modules/zlib || exit 1
+
+# Don't build upstream Python's implementation of these crypto algorithms;
+# instead rely on _hashlib and OpenSSL.
+#
+# For example, in our builds hashlib.md5 is implemented within _hashlib via
+# OpenSSL (and thus respects FIPS mode), and does not fall back to _md5
+# TODO: there seems to be no OpenSSL support in Python for sha3 so far
+# when it is there, also remove _sha3/ dir
+for f in md5module.c sha1module.c sha256module.c sha512module.c; do
+ rm Modules/$f
+done
+
+#
+# Apply patches:
+#
+%patch1 -p1
+
+%if 0%{?with_systemtap}
+%patch55 -p1 -b .systemtap
+%endif
+
+%if "%{_lib}" == "lib64"
+%patch102 -p1
+%patch104 -p1
+%endif
+%patch111 -p1
+%patch132 -p1
+%patch137 -p1
+%patch143 -p1 -b .tsc-on-ppc
+%patch146 -p1
+%patch155 -p1
+%patch157 -p1
+%patch160 -p1
+%patch163 -p1
+%patch170 -p0
+%patch178 -p1
+%patch180 -p1
+%patch184 -p1
+%patch186 -p1
+%patch188 -p1
+
+%patch194 -p1
+%patch196 -p1
+%patch203 -p1
+%patch205 -p1
+%patch206 -p1
+%patch207 -p1
+%patch208 -p1
+%patch209 -p1
+%patch210 -p1
+%patch211 -p1
+%patch242 -p1
+
+# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
+# are many differences between 2.6 and the Python 3 library.
+#
+# Fix up the URLs within pydoc to point at the documentation for this
+# MAJOR.MINOR version:
+#
+sed --in-place \
+ --expression="s|http://docs.python.org/library|http://docs.python.org/%{pybasever}/libr..." \
+ Lib/pydoc.py || exit 1
+
+%patch5001 -p1
+
+# ======================================================
+# Configuring and building the code:
+# ======================================================
+
+%build
+topdir=$(pwd)
+export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
+export CXXFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
+export CPPFLAGS="`pkg-config --cflags-only-I libffi`"
+export OPT="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
+export LINKCC="gcc"
+export CFLAGS="$CFLAGS `pkg-config --cflags openssl`"
+export LDFLAGS="$RPM_LD_FLAGS `pkg-config --libs-only-L openssl`"
+
+
+# Define a function, for how to perform a "build" of python for a given
+# configuration:
+BuildPython() {
+ ConfName=$1
+ BinaryName=$2
+ SymlinkName=$3
+ ExtraConfigArgs=$4
+ PathFixWithThisBinary=$5
+ MoreCFlags=$6
+
+ ConfDir=build/$ConfName
+
+ echo STARTING: BUILD OF PYTHON FOR CONFIGURATION: $ConfName - %{_bindir}/$BinaryName
+ mkdir -p $ConfDir
+
+ pushd $ConfDir
+
+ # Use the freshly created "configure" script, but in the directory two above:
+ %global _configure $topdir/configure
+
+%configure \
+ --enable-ipv6 \
+ --enable-shared \
+ --with-computed-gotos=%{with_computed_gotos} \
+ --with-dbmliborder=gdbm:ndbm:bdb \
+ --with-system-expat \
+ --with-system-ffi \
+ --enable-loadable-sqlite-extensions \
+%if 0%{?with_systemtap}
+ --with-systemtap \
+%endif
+%if 0%{?with_valgrind}
+ --with-valgrind \
+%endif
+ $ExtraConfigArgs \
+ %{nil}
+
+ # Set EXTRA_CFLAGS to our CFLAGS (rather than overriding OPT, as we've done
+ # in the past).
+ # This should fix a problem with --with-valgrind where it adds
+ # -DDYNAMIC_ANNOTATIONS_ENABLED=1
+ # to OPT which must be passed to all compilation units in the build,
+ # otherwise leading to linker errors, e.g.
+ # missing symbol AnnotateRWLockDestroy
+ #
+ # Invoke the build:
+ make EXTRA_CFLAGS="$CFLAGS $MoreCFlags" %{?_smp_mflags}
+
+ popd
+ echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfDir
+}
+
+# Use "BuildPython" to support building with different configurations:
+
+%if 0%{?with_debug_build}
+BuildPython debug \
+ python-debug \
+ python%{pybasever}-debug \
+%ifarch %{ix86} x86_64 ppc %{power64}
+ "--with-pydebug --with-tsc --with-count-allocs --with-call-profile --without-ensurepip" \
+%else
+ "--with-pydebug --with-count-allocs --with-call-profile --without-ensurepip" \
+%endif
+ false \
+ -O0
+%endif # with_debug_build
+
+BuildPython optimized \
+ python \
+ python%{pybasever} \
+ "--without-ensurepip" \
+ true
+
+# ======================================================
+# Installing the built code:
+# ======================================================
+
+%install
+topdir=$(pwd)
+rm -fr %{buildroot}
+mkdir -p %{buildroot}%{_prefix} %{buildroot}%{_mandir}
+
+InstallPython() {
+
+ ConfName=$1
+ PyInstSoName=$2
+ MoreCFlags=$3
+
+ ConfDir=build/$ConfName
+
+ echo STARTING: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
+ mkdir -p $ConfDir
+
+ pushd $ConfDir
+
+make install DESTDIR=%{buildroot} INSTALL="install -p" EXTRA_CFLAGS="$MoreCFlags"
+
+ popd
+
+ # We install a collection of hooks for gdb that make it easier to debug
+ # executables linked against libpython3* (such as /usr/bin/python3 itself)
+ #
+ # These hooks are implemented in Python itself (though they are for the version
+ # of python that gdb is linked with, in this case Python 2.7)
+ #
+ # gdb-archer looks for them in the same path as the ELF file, with a -gdb.py suffix.
+ # We put them in the debuginfo package by installing them to e.g.:
+ # /usr/lib/debug/usr/lib/libpython3.2.so.1.0.debug-gdb.py
+ #
+ # See https://fedoraproject.org/wiki/Features/EasierPythonDebugging for more
+ # information
+ #
+ # Copy up the gdb hooks into place; the python file will be autoloaded by gdb
+ # when visiting libpython.so, provided that the python file is installed to the
+ # same path as the library (or its .debug file) plus a "-gdb.py" suffix, e.g:
+ # /usr/lib/debug/usr/lib64/libpython3.2.so.1.0.debug-gdb.py
+ # (note that the debug path is /usr/lib/debug for both 32/64 bit)
+ #
+ # Initially I tried:
+ # /usr/lib/libpython3.1.so.1.0-gdb.py
+ # but doing so generated noise when ldconfig was rerun (rhbz:562980)
+ #
+%if 0%{?with_gdb_hooks}
+ DirHoldingGdbPy=%{_prefix}/lib/debug/%{_libdir}
+ PathOfGdbPy=$DirHoldingGdbPy/$PyInstSoName.debug-gdb.py
+
+ mkdir -p %{buildroot}$DirHoldingGdbPy
+ cp Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy
+%endif # with_gdb_hooks
+
+ echo FINISHED: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
+}
+
+# Use "InstallPython" to support building with different configurations:
+
+# Install the "debug" build first, so that we can move some files aside
+%if 0%{?with_debug_build}
+InstallPython debug \
+ %{py_INSTSONAME_debug} \
+ -O0
+%endif # with_debug_build
+
+# Now the optimized build:
+InstallPython optimized \
+ %{py_INSTSONAME_optimized}
+
+install -d -m 0755 ${RPM_BUILD_ROOT}%{pylibdir}/site-packages/__pycache__
+
+mv ${RPM_BUILD_ROOT}%{_bindir}/2to3 ${RPM_BUILD_ROOT}%{_bindir}/python3-2to3
+
+# Development tools
+install -m755 -d ${RPM_BUILD_ROOT}%{pylibdir}/Tools
+install Tools/README ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
+cp -ar Tools/freeze ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
+cp -ar Tools/i18n ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
+cp -ar Tools/pynche ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
+cp -ar Tools/scripts ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
+
+# Documentation tools
+install -m755 -d %{buildroot}%{pylibdir}/Doc
+cp -ar Doc/tools %{buildroot}%{pylibdir}/Doc/
+
+# Demo scripts
+cp -ar Tools/demo %{buildroot}%{pylibdir}/Tools/
+
+# Fix for bug #136654
+rm -f %{buildroot}%{pylibdir}/email/test/data/audiotest.au %{buildroot}%{pylibdir}/test/audiotest.au
+
+%if "%{_lib}" == "lib64"
+install -d -m 0755 %{buildroot}/%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__
+%endif
+
+# Make python3-devel multilib-ready (bug #192747, #139911)
+%global _pyconfig32_h pyconfig-32.h
+%global _pyconfig64_h pyconfig-64.h
+
+%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64}
+%global _pyconfig_h %{_pyconfig64_h}
+%else
+%global _pyconfig_h %{_pyconfig32_h}
+%endif
+
+# ABIFLAGS, LDVERSION and SOABI are in the upstream Makefile
+%global ABIFLAGS_optimized m
+%global ABIFLAGS_debug dm
+
+%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
+%global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug}
+
+%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu}
+%global SOABI_debug cpython-%{pyshortver}%{ABIFLAGS_debug}-%{_arch}-linux%{_gnu}
+
+%if 0%{?with_debug_build}
+%global PyIncludeDirs python%{LDVERSION_optimized} python%{LDVERSION_debug}
+
+%else
+%global PyIncludeDirs python%{LDVERSION_optimized}
+%endif
+
+for PyIncludeDir in %{PyIncludeDirs} ; do
+ mv %{buildroot}%{_includedir}/$PyIncludeDir/pyconfig.h \
+ %{buildroot}%{_includedir}/$PyIncludeDir/%{_pyconfig_h}
+ cat > %{buildroot}%{_includedir}/$PyIncludeDir/pyconfig.h << EOF
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 32
+#include "%{_pyconfig32_h}"
+#elif __WORDSIZE == 64
+#include "%{_pyconfig64_h}"
+#else
+#error "Unknown word size"
+#endif
+EOF
+done
+
+# Fix for bug 201434: make sure distutils looks at the right pyconfig.h file
+# Similar for sysconfig: sysconfig.get_config_h_filename tries to locate
+# pyconfig.h so it can be parsed, and needs to do this at runtime in site.py
+# when python starts up (bug 653058)
+#
+# Split this out so it goes directly to the pyconfig-32.h/pyconfig-64.h
+# variants:
+sed -i -e "s/'pyconfig.h'/'%{_pyconfig_h}'/" \
+ %{buildroot}%{pylibdir}/distutils/sysconfig.py \
+ %{buildroot}%{pylibdir}/sysconfig.py
+
+# Switch all shebangs to refer to the specific Python version.
+LD_LIBRARY_PATH=./build/optimized ./build/optimized/python \
+ Tools/scripts/pathfix.py \
+ -i "%{_bindir}/python%{pybasever}" \
+ %{buildroot}
+
+# Remove shebang lines from .py files that aren't executable, and
+# remove executability from .py files that don't have a shebang line:
+find %{buildroot} -name \*.py \
+ \( \( \! -perm /u+x,g+x,o+x -exec sed -e '/^#!/Q 0' -e 'Q 1' {} \; \
+ -print -exec sed -i '1d' {} \; \) -o \( \
+ -perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
+ -exec chmod a-x {} \; \) \)
+
+# .xpm and .xbm files should not be executable:
+find %{buildroot} \
+ \( -name \*.xbm -o -name \*.xpm -o -name \*.xpm.1 \) \
+ -exec chmod a-x {} \;
+
+# Remove executable flag from files that shouldn't have it:
+chmod a-x \
+ %{buildroot}%{pylibdir}/distutils/tests/Setup.sample \
+ %{buildroot}%{pylibdir}/Tools/README
+
+# Get rid of DOS batch files:
+find %{buildroot} -name \*.bat -exec rm {} \;
+
+# Get rid of backup files:
+find %{buildroot}/ -name "*~" -exec rm -f {} \;
+find . -name "*~" -exec rm -f {} \;
+rm -f %{buildroot}%{pylibdir}/LICENSE.txt
+# Junk, no point in putting in -test sub-pkg
+rm -f ${RPM_BUILD_ROOT}/%{pylibdir}/idlelib/testcode.py*
+
+# Get rid of stray patch file from buildroot:
+rm -f %{buildroot}%{pylibdir}/test/test_imp.py.apply-our-changes-to-expected-shebang # from patch 4
+
+# Fix end-of-line encodings:
+find %{buildroot}/ -name \*.py -exec sed -i 's/\r//' {} \;
+
+# Fix an encoding:
+iconv -f iso8859-1 -t utf-8 %{buildroot}/%{pylibdir}/Demo/rpc/README > README.conv && mv -f README.conv %{buildroot}/%{pylibdir}/Demo/rpc/README
+
+# Note that
+# %{pylibdir}/Demo/distutils/test2to3/setup.py
+# is in iso-8859-1 encoding, and that this is deliberate; this is test data
+# for the 2to3 tool, and one of the functions of the 2to3 tool is to fixup
+# character encodings within python source code
+
+# Do bytecompilation with the newly installed interpreter.
+# This is similar to the script in macros.pybytecompile
+# compile *.pyo
+find %{buildroot} -type f -a -name "*.py" -print0 | \
+ LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
+ PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
+ xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2]) for f in sys.argv[1:]]' || :
+# compile *.pyc
+find %{buildroot} -type f -a -name "*.py" -print0 | \
+ LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
+ PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
+ xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2], optimize=0) for f in sys.argv[1:]]' || :
+
+# Fixup permissions for shared libraries from non-standard 555 to standard 755:
+find %{buildroot} \
+ -perm 555 -exec chmod 755 {} \;
+
+# Install macros for rpm:
+mkdir -p %{buildroot}/%{_rpmconfigdir}/macros.d/
+install -m 644 %{SOURCE3} %{buildroot}/%{_rpmconfigdir}/macros.d/
+install -m 644 %{SOURCE9} %{buildroot}/%{_rpmconfigdir}/macros.d/
+
+# Ensure that the curses module was linked against libncursesw.so, rather than
+# libncurses.so (bug 539917)
+ldd %{buildroot}/%{dynload_dir}/_curses*.so \
+ | grep curses \
+ | grep libncurses.so && (echo "_curses.so linked against libncurses.so" ; exit 1)
+
+# Ensure that the debug modules are linked against the debug libpython, and
+# likewise for the optimized modules and libpython:
+for Module in %{buildroot}/%{dynload_dir}/*.so ; do
+ case $Module in
+ *.%{SOABI_debug})
+ ldd $Module | grep %{py_INSTSONAME_optimized} &&
+ (echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exit 1)
+
+ ;;
+ *.%{SOABI_optimized})
+ ldd $Module | grep %{py_INSTSONAME_debug} &&
+ (echo Optimized module $Module linked against debug %{py_INSTSONAME_debug} ; exit 1)
+ ;;
+ esac
+done
+
+# Create "/usr/bin/python3-debug", a symlink to the python3 debug binary, to
+# avoid the user having to know the precise version and ABI flags. (see
+# e.g. rhbz#676748):
+%if 0%{?with_debug_build}
+ln -s \
+ %{_bindir}/python%{LDVERSION_debug} \
+ %{buildroot}%{_bindir}/python3-debug
+%endif
+
+#
+# Systemtap hooks:
+#
+%if 0%{?with_systemtap}
+# Install a tapset for this libpython into tapsetdir, fixing up the path to the
+# library:
+mkdir -p %{buildroot}%{tapsetdir}
+%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64}
+%global libpython_stp_optimized libpython%{pybasever}-64.stp
+%global libpython_stp_debug libpython%{pybasever}-debug-64.stp
+%else
+%global libpython_stp_optimized libpython%{pybasever}-32.stp
+%global libpython_stp_debug libpython%{pybasever}-debug-32.stp
+%endif
+
+sed \
+ -e "s|LIBRARY_PATH|%{_libdir}/%{py_INSTSONAME_optimized}|" \
+ %{_sourcedir}/libpython.stp \
+ > %{buildroot}%{tapsetdir}/%{libpython_stp_optimized}
+
+%if 0%{?with_debug_build}
+# In Python 3, python3 and python3-debug don't point to the same binary,
+# so we have to replace "python3" with "python3-debug" to get systemtap
+# working with debug build
+sed \
+ -e "s|LIBRARY_PATH|%{_libdir}/%{py_INSTSONAME_debug}|" \
+ -e 's|"python3"|"python3-debug"|' \
+ %{_sourcedir}/libpython.stp \
+ > %{buildroot}%{tapsetdir}/%{libpython_stp_debug}
+%endif # with_debug_build
+
+%endif # with_systemtap
+
+# Rename the script that differs on different arches to arch specific name
+mv %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-{,`uname -m`-}config
+echo -e '#!/bin/sh\nexec `dirname $0`/python%{LDVERSION_optimized}-`uname -m`-config "$@"' > \
+ %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
+echo '[ $? -eq 127 ] && echo "Could not find python%{LDVERSION_optimized}-`uname -m`-config. Look around to see available arches." >&2' >> \
+ %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
+ chmod +x %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
+
+# System Python: Copy the executable to libexec
+mkdir -p %{buildroot}%{_libexecdir}
+cp %{buildroot}%{_bindir}/python%{pybasever} %{buildroot}%{_libexecdir}/system-python
+
+# ======================================================
+# Running the upstream test suite
+# ======================================================
+
+%check
+
+# first of all, check timestamps of bytecode files
+find %{buildroot} -type f -a -name "*.py" -print0 | \
+ LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
+ PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
+ xargs -0 %{buildroot}%{_bindir}/python%{pybasever} %{SOURCE8}
+
+# For ppc64 we need a larger stack than default (rhbz#1292462)
+%ifarch %{power64}
+ ulimit -a
+ ulimit -s 16384
+%endif
+
+topdir=$(pwd)
+CheckPython() {
+ ConfName=$1
+ ConfDir=$(pwd)/build/$ConfName
+
+ echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
+
+ # Note that we're running the tests using the version of the code in the
+ # builddir, not in the buildroot.
+
+ # Run the upstream test suite, setting "WITHIN_PYTHON_RPM_BUILD" so that the
+ # our non-standard decorators take effect on the relevant tests:
+ # @unittest._skipInRpmBuild(reason)
+ # @unittest._expectedFailureInRpmBuild
+ # test_faulthandler.test_register_chain currently fails on ppc64le and
+ # aarch64, see upstream bug http://bugs.python.org/issue21131
+ WITHIN_PYTHON_RPM_BUILD= \
+ LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
+ --verbose --findleaks \
+ -x test_distutils \
+ %ifarch ppc64le aarch64
+ -x test_faulthandler \
+ %endif
+ %ifarch %{mips64}
+ -x test_ctypes \
+ %endif
+ %ifarch %{power64} s390 s390x armv7hl aarch64 %{mips}
+ -x test_gdb
+ %endif
+
+ echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
+
+}
+
+%if 0%{run_selftest_suite}
+
+# Check each of the configurations:
+%if 0%{?with_debug_build}
+CheckPython debug
+%endif # with_debug_build
+CheckPython optimized
+
+%endif # run_selftest_suite
+
+
+# ======================================================
+# Cleaning up
+# ======================================================
+
+%clean
+rm -fr %{buildroot}
+
+
+# ======================================================
+# Scriptlets
+# ======================================================
+
+%post libs -p /sbin/ldconfig
+
+%postun libs -p /sbin/ldconfig
+
+%post -n system-python-libs -p /sbin/ldconfig
+
+%postun -n system-python-libs -p /sbin/ldconfig
+
+
+
+%files
+%defattr(-, root, root)
+%doc LICENSE README
+%{_bindir}/pydoc*
+%{_bindir}/python3
+%{_bindir}/python%{pybasever}
+%{_bindir}/python%{pybasever}m
+%{_bindir}/pyvenv
+%{_bindir}/pyvenv-%{pybasever}
+%{_mandir}/*/*
+
+%files libs
+%defattr(-,root,root,-)
+%doc LICENSE README
+
+%{pylibdir}/lib2to3
+%exclude %{pylibdir}/lib2to3/tests
+
+%dir %{pylibdir}/unittest/
+%dir %{pylibdir}/unittest/__pycache__/
+%{pylibdir}/unittest/*.py
+%{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/asyncio/
+%dir %{pylibdir}/asyncio/__pycache__/
+%{pylibdir}/asyncio/*.py
+%{pylibdir}/asyncio/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/venv/
+%dir %{pylibdir}/venv/__pycache__/
+%{pylibdir}/venv/*.py
+%{pylibdir}/venv/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/venv/scripts
+
+%{pylibdir}/wsgiref
+%{pylibdir}/xmlrpc
+
+%dir %{pylibdir}/ensurepip/
+%dir %{pylibdir}/ensurepip/__pycache__/
+%{pylibdir}/ensurepip/*.py
+%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes}
+%exclude %{pylibdir}/ensurepip/_bundled
+
+%{pylibdir}/idlelib
+
+%dir %{pylibdir}/test/
+%dir %{pylibdir}/test/__pycache__/
+%dir %{pylibdir}/test/support/
+%dir %{pylibdir}/test/support/__pycache__/
+%{pylibdir}/test/__init__.py
+%{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
+%{pylibdir}/test/support/__init__.py
+%{pylibdir}/test/support/__pycache__/__init__%{bytecode_suffixes}
+
+%dir %{pylibdir}/concurrent/
+%dir %{pylibdir}/concurrent/__pycache__/
+%{pylibdir}/concurrent/*.py
+%{pylibdir}/concurrent/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/concurrent/futures/
+%dir %{pylibdir}/concurrent/futures/__pycache__/
+%{pylibdir}/concurrent/futures/*.py
+%{pylibdir}/concurrent/futures/__pycache__/*%{bytecode_suffixes}
+
+%{pylibdir}/pydoc_data
+
+##################################################################################
+
+%files -n system-python
+%defattr(-,root,root,-)
+%doc LICENSE README
+%{_libexecdir}/system-python
+
+%files -n system-python-libs
+%defattr(-,root,root,-)
+%doc LICENSE README
+%dir %{pylibdir}
+%dir %{dynload_dir}
+%{dynload_dir}/_bisect.%{SOABI_optimized}.so
+%{dynload_dir}/_bz2.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_cn.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_hk.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_iso2022.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_jp.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_kr.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_tw.%{SOABI_optimized}.so
+%{dynload_dir}/_crypt.%{SOABI_optimized}.so
+%{dynload_dir}/_csv.%{SOABI_optimized}.so
+%{dynload_dir}/_ctypes.%{SOABI_optimized}.so
+%{dynload_dir}/_curses.%{SOABI_optimized}.so
+%{dynload_dir}/_curses_panel.%{SOABI_optimized}.so
+%{dynload_dir}/_dbm.%{SOABI_optimized}.so
+%{dynload_dir}/_decimal.%{SOABI_optimized}.so
+%{dynload_dir}/_elementtree.%{SOABI_optimized}.so
+%if %{with_gdbm}
+%{dynload_dir}/_gdbm.%{SOABI_optimized}.so
+%endif
+%{dynload_dir}/_hashlib.%{SOABI_optimized}.so
+%{dynload_dir}/_heapq.%{SOABI_optimized}.so
+%{dynload_dir}/_json.%{SOABI_optimized}.so
+%{dynload_dir}/_lsprof.%{SOABI_optimized}.so
+%{dynload_dir}/_lzma.%{SOABI_optimized}.so
+%{dynload_dir}/_multibytecodec.%{SOABI_optimized}.so
+%{dynload_dir}/_multiprocessing.%{SOABI_optimized}.so
+%{dynload_dir}/_opcode.%{SOABI_optimized}.so
+%{dynload_dir}/_pickle.%{SOABI_optimized}.so
+%{dynload_dir}/_posixsubprocess.%{SOABI_optimized}.so
+%{dynload_dir}/_random.%{SOABI_optimized}.so
+%{dynload_dir}/_socket.%{SOABI_optimized}.so
+%{dynload_dir}/_sqlite3.%{SOABI_optimized}.so
+%{dynload_dir}/_ssl.%{SOABI_optimized}.so
+%{dynload_dir}/_struct.%{SOABI_optimized}.so
+%{dynload_dir}/array.%{SOABI_optimized}.so
+%{dynload_dir}/audioop.%{SOABI_optimized}.so
+%{dynload_dir}/binascii.%{SOABI_optimized}.so
+%{dynload_dir}/cmath.%{SOABI_optimized}.so
+%{dynload_dir}/_datetime.%{SOABI_optimized}.so
+%{dynload_dir}/fcntl.%{SOABI_optimized}.so
+%{dynload_dir}/grp.%{SOABI_optimized}.so
+%{dynload_dir}/math.%{SOABI_optimized}.so
+%{dynload_dir}/mmap.%{SOABI_optimized}.so
+%{dynload_dir}/nis.%{SOABI_optimized}.so
+%{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so
+%{dynload_dir}/parser.%{SOABI_optimized}.so
+%{dynload_dir}/pyexpat.%{SOABI_optimized}.so
+%{dynload_dir}/readline.%{SOABI_optimized}.so
+%{dynload_dir}/resource.%{SOABI_optimized}.so
+%{dynload_dir}/select.%{SOABI_optimized}.so
+%{dynload_dir}/spwd.%{SOABI_optimized}.so
+%{dynload_dir}/syslog.%{SOABI_optimized}.so
+%{dynload_dir}/termios.%{SOABI_optimized}.so
+#%{dynload_dir}/time.%{SOABI_optimized}.so
+%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so
+%{dynload_dir}/unicodedata.%{SOABI_optimized}.so
+%{dynload_dir}/xxlimited.%{SOABI_optimized}.so
+%{dynload_dir}/zlib.%{SOABI_optimized}.so
+
+%dir %{pylibdir}/site-packages/
+%dir %{pylibdir}/site-packages/__pycache__/
+%{pylibdir}/site-packages/README
+%{pylibdir}/*.py
+%dir %{pylibdir}/__pycache__/
+%{pylibdir}/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/collections/
+%dir %{pylibdir}/collections/__pycache__/
+%{pylibdir}/collections/*.py
+%{pylibdir}/collections/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/ctypes/
+%dir %{pylibdir}/ctypes/__pycache__/
+%{pylibdir}/ctypes/*.py
+%{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/ctypes/macholib
+
+%{pylibdir}/curses
+
+%dir %{pylibdir}/dbm/
+%dir %{pylibdir}/dbm/__pycache__/
+%{pylibdir}/dbm/*.py
+%{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/distutils/
+%dir %{pylibdir}/distutils/__pycache__/
+%{pylibdir}/distutils/*.py
+%{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/distutils/README
+%{pylibdir}/distutils/command
+
+
+%dir %{pylibdir}/email/
+%dir %{pylibdir}/email/__pycache__/
+%{pylibdir}/email/*.py
+%{pylibdir}/email/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/email/mime
+%doc %{pylibdir}/email/architecture.rst
+
+%{pylibdir}/encodings
+
+%{pylibdir}/html
+%{pylibdir}/http
+
+%dir %{pylibdir}/importlib/
+%dir %{pylibdir}/importlib/__pycache__/
+%{pylibdir}/importlib/*.py
+%{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/json/
+%dir %{pylibdir}/json/__pycache__/
+%{pylibdir}/json/*.py
+%{pylibdir}/json/__pycache__/*%{bytecode_suffixes}
+
+%{pylibdir}/logging
+%{pylibdir}/multiprocessing
+%{pylibdir}/plat-linux
+
+%dir %{pylibdir}/sqlite3/
+%dir %{pylibdir}/sqlite3/__pycache__/
+%{pylibdir}/sqlite3/*.py
+%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}
+
+%exclude %{pylibdir}/turtle.py
+%exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
+
+%{pylibdir}/urllib
+%{pylibdir}/xml
+
+%if "%{_lib}" == "lib64"
+%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}
+%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages
+%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages/__pycache__/
+%endif
+
+# "Makefile" and the config-32/64.h file are needed by
+# distutils/sysconfig.py:_init_posix(), so we include them in the core
+# package, along with their parent directories (bug 531901):
+%dir %{pylibdir}/config-%{LDVERSION_optimized}/
+%{pylibdir}/config-%{LDVERSION_optimized}/Makefile
+%dir %{_includedir}/python%{LDVERSION_optimized}/
+%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
+
+%{_libdir}/%{py_INSTSONAME_optimized}
+%{_libdir}/libpython3.so
+%if 0%{?with_systemtap}
+%dir %(dirname %{tapsetdir})
+%dir %{tapsetdir}
+%{tapsetdir}/%{libpython_stp_optimized}
+%doc systemtap-example.stp pyfuntop.stp
+%endif
+
+%files devel
+%defattr(-,root,root)
+%{pylibdir}/config-%{LDVERSION_optimized}/*
+%exclude %{pylibdir}/config-%{LDVERSION_optimized}/Makefile
+%{_includedir}/python%{LDVERSION_optimized}/*.h
+%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
+%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
+%{_bindir}/python3-config
+%{_bindir}/python%{pybasever}-config
+%{_bindir}/python%{LDVERSION_optimized}-config
+%{_bindir}/python%{LDVERSION_optimized}-*-config
+%{_libdir}/libpython%{LDVERSION_optimized}.so
+%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
+%{_libdir}/pkgconfig/python-%{pybasever}.pc
+%{_libdir}/pkgconfig/python3.pc
+%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
+%{_rpmconfigdir}/macros.d/macros.systempython
+
+%files tools
+%defattr(-,root,root,755)
+%{_bindir}/python3-2to3
+%{_bindir}/2to3-%{pybasever}
+%{_bindir}/idle*
+%{pylibdir}/Tools
+%doc %{pylibdir}/Doc
+
+%files tkinter
+%defattr(-,root,root,755)
+%{pylibdir}/tkinter
+%exclude %{pylibdir}/tkinter/test
+%{dynload_dir}/_tkinter.%{SOABI_optimized}.so
+%{pylibdir}/turtle.py
+%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
+%dir %{pylibdir}/turtledemo
+%{pylibdir}/turtledemo/*.py
+%{pylibdir}/turtledemo/*.cfg
+%dir %{pylibdir}/turtledemo/__pycache__/
+%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}
+
+%files test
+%defattr(-, root, root)
+%{pylibdir}/ctypes/test
+%{pylibdir}/distutils/tests
+%{pylibdir}/sqlite3/test
+%{pylibdir}/test
+%{dynload_dir}/_ctypes_test.%{SOABI_optimized}.so
+%{dynload_dir}/_testbuffer.%{SOABI_optimized}.so
+%{dynload_dir}/_testcapi.%{SOABI_optimized}.so
+%{dynload_dir}/_testimportmultiple.%{SOABI_optimized}.so
+%{pylibdir}/lib2to3/tests
+%{pylibdir}/tkinter/test
+%{pylibdir}/unittest/test
+
+
+# We don't bother splitting the debug build out into further subpackages:
+# if you need it, you're probably a developer.
+
+# Hence the manifest is the combination of analogous files in the manifests of
+# all of the other subpackages
+
+%if 0%{?with_debug_build}
+%files debug
+%defattr(-,root,root,-)
+
+# Analog of the core subpackage's files:
+%{_bindir}/python%{LDVERSION_debug}
+%{_bindir}/python3-debug
+
+# Analog of the -libs subpackage's files:
+# ...with debug builds of the built-in "extension" modules:
+%{dynload_dir}/_bisect.%{SOABI_debug}.so
+%{dynload_dir}/_bz2.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_cn.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_hk.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_iso2022.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_jp.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_kr.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_tw.%{SOABI_debug}.so
+%{dynload_dir}/_crypt.%{SOABI_debug}.so
+%{dynload_dir}/_csv.%{SOABI_debug}.so
+%{dynload_dir}/_ctypes.%{SOABI_debug}.so
+%{dynload_dir}/_curses.%{SOABI_debug}.so
+%{dynload_dir}/_curses_panel.%{SOABI_debug}.so
+%{dynload_dir}/_dbm.%{SOABI_debug}.so
+%{dynload_dir}/_decimal.%{SOABI_debug}.so
+%{dynload_dir}/_elementtree.%{SOABI_debug}.so
+%if %{with_gdbm}
+%{dynload_dir}/_gdbm.%{SOABI_debug}.so
+%endif
+%{dynload_dir}/_hashlib.%{SOABI_debug}.so
+%{dynload_dir}/_heapq.%{SOABI_debug}.so
+%{dynload_dir}/_json.%{SOABI_debug}.so
+%{dynload_dir}/_lsprof.%{SOABI_debug}.so
+%{dynload_dir}/_lzma.%{SOABI_debug}.so
+%{dynload_dir}/_multibytecodec.%{SOABI_debug}.so
+%{dynload_dir}/_multiprocessing.%{SOABI_debug}.so
+%{dynload_dir}/_opcode.%{SOABI_debug}.so
+%{dynload_dir}/_pickle.%{SOABI_debug}.so
+%{dynload_dir}/_posixsubprocess.%{SOABI_debug}.so
+%{dynload_dir}/_random.%{SOABI_debug}.so
+%{dynload_dir}/_socket.%{SOABI_debug}.so
+%{dynload_dir}/_sqlite3.%{SOABI_debug}.so
+%{dynload_dir}/_ssl.%{SOABI_debug}.so
+%{dynload_dir}/_struct.%{SOABI_debug}.so
+%{dynload_dir}/array.%{SOABI_debug}.so
+%{dynload_dir}/audioop.%{SOABI_debug}.so
+%{dynload_dir}/binascii.%{SOABI_debug}.so
+%{dynload_dir}/cmath.%{SOABI_debug}.so
+%{dynload_dir}/_datetime.%{SOABI_debug}.so
+%{dynload_dir}/fcntl.%{SOABI_debug}.so
+%{dynload_dir}/grp.%{SOABI_debug}.so
+%{dynload_dir}/math.%{SOABI_debug}.so
+%{dynload_dir}/mmap.%{SOABI_debug}.so
+%{dynload_dir}/nis.%{SOABI_debug}.so
+%{dynload_dir}/ossaudiodev.%{SOABI_debug}.so
+%{dynload_dir}/parser.%{SOABI_debug}.so
+%{dynload_dir}/pyexpat.%{SOABI_debug}.so
+%{dynload_dir}/readline.%{SOABI_debug}.so
+%{dynload_dir}/resource.%{SOABI_debug}.so
+%{dynload_dir}/select.%{SOABI_debug}.so
+%{dynload_dir}/spwd.%{SOABI_debug}.so
+%{dynload_dir}/syslog.%{SOABI_debug}.so
+%{dynload_dir}/termios.%{SOABI_debug}.so
+#%{dynload_dir}/time.%{SOABI_debug}.so
+%{dynload_dir}/_testmultiphase.%{SOABI_debug}.so
+%{dynload_dir}/unicodedata.%{SOABI_debug}.so
+%{dynload_dir}/zlib.%{SOABI_debug}.so
+
+# No need to split things out the "Makefile" and the config-32/64.h file as we
+# do for the regular build above (bug 531901), since they're all in one package
+# now; they're listed below, under "-devel":
+
+%{_libdir}/%{py_INSTSONAME_debug}
+%if 0%{?with_systemtap}
+%dir %(dirname %{tapsetdir})
+%dir %{tapsetdir}
+%{tapsetdir}/%{libpython_stp_debug}
+%endif
+
+# Analog of the -devel subpackage's files:
+%{pylibdir}/config-%{LDVERSION_debug}
+%{_includedir}/python%{LDVERSION_debug}
+%{_bindir}/python%{LDVERSION_debug}-config
+%{_libdir}/libpython%{LDVERSION_debug}.so
+%{_libdir}/libpython%{LDVERSION_debug}.so.1.0
+%{_libdir}/pkgconfig/python-%{LDVERSION_debug}.pc
+
+# Analog of the -tools subpackage's files:
+# None for now; we could build precanned versions that have the appropriate
+# shebang if needed
+
+# Analog of the tkinter subpackage's files:
+%{dynload_dir}/_tkinter.%{SOABI_debug}.so
+
+# Analog of the -test subpackage's files:
+%{dynload_dir}/_ctypes_test.%{SOABI_debug}.so
+%{dynload_dir}/_testbuffer.%{SOABI_debug}.so
+%{dynload_dir}/_testcapi.%{SOABI_debug}.so
+%{dynload_dir}/_testimportmultiple.%{SOABI_debug}.so
+
+%endif # with_debug_build
+
+# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from
+# ldconfig (rhbz:562980).
+#
+# The /usr/lib/rpm/redhat/macros defines %__debug_package to use
+# debugfiles.list, and it appears that everything below /usr/lib/debug and
+# (/usr/src/debug) gets added to this file (via LISTFILES) in
+# /usr/lib/rpm/find-debuginfo.sh
+#
+# Hence by installing it below /usr/lib/debug we ensure it is added to the
+# -debuginfo subpackage
+# (if it doesn't, then the rpmbuild ought to fail since the debug-gdb.py
+# payload file would be unpackaged)
+
+
+# ======================================================
+# Finally, the changelog:
+# ======================================================
+
+%changelog
+* Tue Aug 09 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-14
+- Imported from F25
commit 5bb421607c0273e0dbd4bb2784a0ff017349089c
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Aug 9 12:47:28 2016 +0200
No rewheel
diff --git a/python3.spec b/python3.spec
index 4794e45..d987343 100644
--- a/python3.spec
+++ b/python3.spec
@@ -14,7 +14,7 @@
# 4) python3-setuptools and python3-pip with with_rewheel set to 1
# 5) python3 with with_rewheel set to 1
-%global with_rewheel 1
+%global with_rewheel 0
%global pybasever 3.5
commit a8ffdf324afed3cdf43692cba3c815ceca6c19e2
Author: Miro Hronok <miro(a)hroncok.cz>
Date: Tue Aug 9 12:46:55 2016 +0200
Initial import of Fedora 25 package
diff --git a/.gitignore b/.gitignore
index e69de29..572419f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+Python-3.5.1.tar.xz
diff --git a/00055-systemtap.patch b/00055-systemtap.patch
new file mode 100644
index 0000000..0ab0387
--- /dev/null
+++ b/00055-systemtap.patch
@@ -0,0 +1,822 @@
+diff -up Python-3.3.0rc2/configure.ac.systemtap Python-3.3.0rc2/configure.ac
+--- Python-3.3.0rc2/configure.ac.systemtap 2012-09-09 05:11:14.000000000 -0400
++++ Python-3.3.0rc2/configure.ac 2012-09-10 09:17:21.114511781 -0400
+@@ -2678,6 +2678,23 @@ if test "$with_valgrind" != no; then
+ OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT"
+ fi
+
++# Check for systemtap support
++# On Linux, /usr/bin/dtrace is in fact a shim to SystemTap
++AC_MSG_CHECKING([for --with-systemtap])
++AC_ARG_WITH([systemtap],
++ AC_HELP_STRING([--with(out)-systemtap], [disable/enable SystemTap support]),,
++ with_systemtap=no)
++AC_MSG_RESULT([$with_systemtap])
++if test "$with_systemtap" != no; then
++ AC_DEFINE(WITH_SYSTEMTAP, 1,
++ [Define if you want to compile in SystemTap support])
++ SYSTEMTAPOBJS="Python/pysystemtap.o"
++ SYSTEMTAPDEPS="\$(srcdir)/Python/pysystemtap.h"
++fi
++
++AC_SUBST(SYSTEMTAPOBJS)
++AC_SUBST(SYSTEMTAPDEPS)
++
+ # -I${DLINCLDIR} is added to the compile rule for importdl.o
+ AC_SUBST(DLINCLDIR)
+ DLINCLDIR=.
+diff -up Python-3.3.0rc2/configure.systemtap Python-3.3.0rc2/configure
+--- Python-3.3.0rc2/configure.systemtap 2012-09-09 05:11:14.000000000 -0400
++++ Python-3.3.0rc2/configure 2012-09-10 09:17:21.116511780 -0400
+@@ -618,6 +618,8 @@ TRUE
+ MACHDEP_OBJS
+ DYNLOADFILE
+ DLINCLDIR
++SYSTEMTAPDEPS
++SYSTEMTAPOBJS
+ THREADOBJ
+ LDLAST
+ USE_THREAD_MODULE
+@@ -779,6 +781,7 @@ with_doc_strings
+ with_tsc
+ with_pymalloc
+ with_valgrind
++with_systemtap
+ with_fpectl
+ with_libm
+ with_libc
+@@ -1456,6 +1459,7 @@ Optional Packages:
+ --with(out)-tsc enable/disable timestamp counter profile
+ --with(out)-pymalloc disable/enable specialized mallocs
+ --with-valgrind Enable Valgrind support
++ --with(out)-systemtap disable/enable SystemTap support
+ --with-fpectl enable SIGFPE catching
+ --with-libm=STRING math library
+ --with-libc=STRING C library
+@@ -10065,6 +10069,31 @@ fi
+ OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT"
+ fi
+
++# Check for systemtap support
++# On Linux, /usr/bin/dtrace is in fact a shim to SystemTap
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-systemtap" >&5
++$as_echo_n "checking for --with-systemtap... " >&6; }
++
++# Check whether --with-systemtap was given.
++if test "${with_systemtap+set}" = set; then :
++ withval=$with_systemtap;
++else
++ with_systemtap=no
++fi
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_systemtap" >&5
++$as_echo "$with_systemtap" >&6; }
++if test "$with_systemtap" != no; then
++
++$as_echo "#define WITH_SYSTEMTAP 1" >>confdefs.h
++
++ SYSTEMTAPOBJS="Python/pysystemtap.o"
++ SYSTEMTAPDEPS="\$(srcdir)/Python/pysystemtap.h"
++fi
++
++
++
++
+ # -I${DLINCLDIR} is added to the compile rule for importdl.o
+
+ DLINCLDIR=.
+diff -up Python-3.3.0rc2/Doc/howto/index.rst.systemtap Python-3.3.0rc2/Doc/howto/index.rst
+--- Python-3.3.0rc2/Doc/howto/index.rst.systemtap 2012-09-09 05:10:51.000000000 -0400
++++ Python-3.3.0rc2/Doc/howto/index.rst 2012-09-10 09:17:21.117511779 -0400
+@@ -29,4 +29,5 @@ Currently, the HOWTOs are:
+ argparse.rst
+ ipaddress.rst
+ clinic.rst
++ instrumentation.rst
+
+diff -up Python-3.3.0rc2/Doc/howto/instrumentation.rst.systemtap Python-3.3.0rc2/Doc/howto/instrumentation.rst
+--- Python-3.3.0rc2/Doc/howto/instrumentation.rst.systemtap 2012-09-10 09:17:21.117511779 -0400
++++ Python-3.3.0rc2/Doc/howto/instrumentation.rst 2012-09-10 09:17:21.117511779 -0400
+@@ -0,0 +1,295 @@
++.. _instrumentation:
++
++====================================
++Instrumenting CPython with SystemTap
++====================================
++
++:author: David Malcolm <dmalcolm(a)redhat.com>
++
++DTrace and SystemTap are monitoring tools, each providing a way to inspect
++what the processes on a computer system are doing. They both use
++domain-specific languages allowing a user to write scripts which:
++
++ - filter which processes are to be observed
++ - gather data from the processes of interest
++ - generate reports on the data
++
++As of Python 3.3, CPython can be built with embedded "markers" that can be
++observed by a SystemTap script, making it easier to monitor what the CPython
++processes on a system are doing.
++
++.. Potentially this document could be expanded to also cover DTrace markers.
++ However, I'm not a DTrace expert.
++
++.. I'm using ".. code-block:: c" for SystemTap scripts, as "c" is syntactically
++ the closest match that Sphinx supports
++
++
++Enabling the static markers
++---------------------------
++
++In order to build CPython with the embedded markers for SystemTap, the
++SystemTap development tools must be installed.
++
++On a Fedora or Red Hat Enterprise Linux machine, this can be done via::
++
++ yum install systemtap-sdt-devel
++
++CPython must then be configured `--with-systemtap`::
++
++ checking for --with-systemtap... yes
++
++You can verify if the SystemTap static markers are present in the built
++binary by seeing if it contains a ".note.stapsdt" section.
++
++.. code-block:: bash
++
++ $ eu-readelf -S ./python | grep .note.stapsdt
++ [29] .note.stapsdt NOTE 0000000000000000 00308d78 000000b8 0 0 0 4
++
++If you've built python as a shared library (with --enable-shared), you need
++to look instead within the shared library. For example:
++
++.. code-block:: bash
++
++ $ eu-readelf -S libpython3.3dm.so.1.0 | grep .note.stapsdt
++ [28] .note.stapsdt NOTE 0000000000000000 00365b68 000000b8 0 0 0 4
++
++Earlier versions of SystemTap stored the markers in a ".probes" section.
++
++For the curious, you can see the metadata for the static markers using this
++invocation.
++
++.. code-block:: bash
++
++ $ eu-readelf -x .note.stapsdt ./python
++
++ Hex dump of section [29] '.note.stapsdt', 184 bytes at offset 0x308d78:
++ 0x00000000 08000000 45000000 03000000 73746170 ....E.......stap
++ 0x00000010 73647400 d4664b00 00000000 4fc36600 sdt..fK.....O.f.
++ 0x00000020 00000000 488d9000 00000000 70797468 ....H.......pyth
++ 0x00000030 6f6e0066 756e6374 696f6e5f 5f656e74 on.function__ent
++ 0x00000040 72790038 40257261 78203840 25726478 ry.8@%rax 8@%rdx
++ 0x00000050 202d3440 25656378 00000000 08000000 -4@%ecx........
++ 0x00000060 46000000 03000000 73746170 73647400 F.......stapsdt.
++ 0x00000070 0d674b00 00000000 4fc36600 00000000 .gK.....O.f.....
++ 0x00000080 4a8d9000 00000000 70797468 6f6e0066 J.......python.f
++ 0x00000090 756e6374 696f6e5f 5f726574 75726e00 unction__return.
++ 0x000000a0 38402572 61782038 40257264 78202d34 8@%rax 8@%rdx -4
++ 0x000000b0 40256563 78000000 @%ecx...
++
++and a sufficiently modern eu-readelf can print the metadata:
++
++.. code-block:: bash
++
++ $ eu-readelf -n ./python
++
++ Note section [ 1] '.note.gnu.build-id' of 36 bytes at offset 0x190:
++ Owner Data size Type
++ GNU 20 GNU_BUILD_ID
++ Build ID: a28f8db1b224530b0d38ad7b82a249cf7c3f18d6
++
++ Note section [27] '.note.stapsdt' of 184 bytes at offset 0x1ae884:
++ Owner Data size Type
++ stapsdt 70 Version: 3
++ PC: 0xe0d3a, Base: 0x14b150, Semaphore: 0x3ae882
++ Provider: python, Name: function__return, Args: '8@%rbx 8@%r13 -4@%eax'
++ stapsdt 69 Version: 3
++ PC: 0xe0f37, Base: 0x14b150, Semaphore: 0x3ae880
++ Provider: python, Name: function__entry, Args: '8@%rbx 8@%r13 -4@%eax'
++
++The above metadata contains information for SystemTap describing how it can
++patch strategically-placed machine code instructions to enable the tracing
++hooks used by a SystemTap script.
++
++
++Static markers
++--------------
++
++The low-level way to use the SystemTap integration is to use the static
++markers directly. This requires you to explicitly state the binary file
++containing them.
++
++For example, this script can be used to show the call/return hierarchy of a
++Python script:
++
++.. code-block:: c
++
++ probe process('python').mark("function__entry") {
++ filename = user_string($arg1);
++ funcname = user_string($arg2);
++ lineno = $arg3;
++
++ printf("%s => %s in %s:%d\\n",
++ thread_indent(1), funcname, filename, lineno);
++ }
++
++ probe process('python').mark("function__return") {
++ filename = user_string($arg1);
++ funcname = user_string($arg2);
++ lineno = $arg3;
++
++ printf("%s <= %s in %s:%d\\n",
++ thread_indent(-1), funcname, filename, lineno);
++ }
++
++It can be invoked like this:
++
++.. code-block:: bash
++
++ $ stap \
++ show-call-hierarchy.stp \
++ -c ./python test.py
++
++The output looks like this::
++
++ 11408 python(8274): => __contains__ in Lib/_abcoll.py:362
++ 11414 python(8274): => __getitem__ in Lib/os.py:425
++ 11418 python(8274): => encode in Lib/os.py:490
++ 11424 python(8274): <= encode in Lib/os.py:493
++ 11428 python(8274): <= __getitem__ in Lib/os.py:426
++ 11433 python(8274): <= __contains__ in Lib/_abcoll.py:366
++
++where the columns are:
++
++ - time in microseconds since start of script
++
++ - name of executable
++
++ - PID of process
++
++and the remainder indicates the call/return hierarchy as the script executes.
++
++For a `--enable-shared` build of CPython, the markers are contained within the
++libpython shared library, and the probe's dotted path needs to reflect this. For
++example, this line from the above example::
++
++ probe process('python').mark("function__entry") {
++
++should instead read::
++
++ probe process('python').library("libpython3.3dm.so.1.0").mark("function__entry") {
++
++(assuming a debug build of CPython 3.3)
++
++.. I'm reusing the "c:function" type for markers
++
++.. c:function:: function__entry(str filename, str funcname, int lineno)
++
++ This marker indicates that execution of a Python function has begun. It is
++ only triggered for pure-python (bytecode) functions.
++
++ The filename, function name, and line number are provided back to the
++ tracing script as positional arguments, which must be accessed using
++ `$arg1`, `$arg2`:
++
++ * `$arg1` : `(const char *)` filename, accessible using `user_string($arg1)`
++
++ * `$arg2` : `(const char *)` function name, accessible using
++ `user_string($arg2)`
++
++ * `$arg3` : `int` line number
++
++ * `$arg4` : `(PyFrameObject *)`, the frame being executed
++
++.. c:function:: function__return(str filename, str funcname, int lineno)
++
++ This marker is the converse of `function__entry`, and indicates that
++ execution of a Python function has ended (either via ``return``, or via an
++ exception). It is only triggered for pure-python (bytecode) functions.
++
++ The arguments are the same as for `function__entry`
++
++
++Tapsets
++-------
++
++The higher-level way to use the SystemTap integration is to use a "tapset":
++SystemTap's equivalent of a library, which hides some of the lower-level
++details of the static markers.
++
++Here is a tapset file, based on a non-shared build of CPython:
++
++.. code-block:: c
++
++ /*
++ Provide a higher-level wrapping around the function__entry and
++ function__return markers:
++ */
++ probe python.function.entry = process("python").mark("function__entry")
++ {
++ filename = user_string($arg1);
++ funcname = user_string($arg2);
++ lineno = $arg3;
++ frameptr = $arg4
++ }
++ probe python.function.return = process("python").mark("function__return")
++ {
++ filename = user_string($arg1);
++ funcname = user_string($arg2);
++ lineno = $arg3;
++ frameptr = $arg4
++ }
++
++If this file is installed in SystemTap's tapset directory (e.g.
++`/usr/share/systemtap/tapset`), then these additional probepoints become
++available:
++
++.. c:function:: python.function.entry(str filename, str funcname, int lineno, frameptr)
++
++ This probe point indicates that execution of a Python function has begun.
++ It is only triggered for pure-python (bytecode) functions.
++
++.. c:function:: python.function.return(str filename, str funcname, int lineno, frameptr)
++
++ This probe point is the converse of `python.function.return`, and indicates
++ that execution of a Python function has ended (either via ``return``, or
++ via an exception). It is only triggered for pure-python (bytecode) functions.
++
++
++Examples
++--------
++This SystemTap script uses the tapset above to more cleanly implement the
++example given above of tracing the Python function-call hierarchy, without
++needing to directly name the static markers:
++
++.. code-block:: c
++
++ probe python.function.entry
++ {
++ printf("%s => %s in %s:%d\n",
++ thread_indent(1), funcname, filename, lineno);
++ }
++
++ probe python.function.return
++ {
++ printf("%s <= %s in %s:%d\n",
++ thread_indent(-1), funcname, filename, lineno);
++ }
++
++
++The following script uses the tapset above to provide a top-like view of all
++running CPython code, showing the top 20 most frequently-entered bytecode
++frames, each second, across the whole system:
++
++.. code-block:: c
++
++ global fn_calls;
++
++ probe python.function.entry
++ {
++ fn_calls[pid(), filename, funcname, lineno] += 1;
++ }
++
++ probe timer.ms(1000) {
++ printf("\033[2J\033[1;1H") /* clear screen */
++ printf("%6s %80s %6s %30s %6s\n",
++ "PID", "FILENAME", "LINE", "FUNCTION", "CALLS")
++ foreach ([pid, filename, funcname, lineno] in fn_calls- limit 20) {
++ printf("%6d %80s %6d %30s %6d\n",
++ pid, filename, lineno, funcname,
++ fn_calls[pid, filename, funcname, lineno]);
++ }
++ delete fn_calls;
++ }
++
+diff -up Python-3.3.0rc2/Lib/test/test_systemtap.py.systemtap Python-3.3.0rc2/Lib/test/test_systemtap.py
+--- Python-3.3.0rc2/Lib/test/test_systemtap.py.systemtap 2012-09-10 09:17:21.117511779 -0400
++++ Python-3.3.0rc2/Lib/test/test_systemtap.py 2012-09-10 09:17:21.117511779 -0400
+@@ -0,0 +1,234 @@
++# Verify that systemtap static probes work
++#
++import subprocess
++import sys
++import sysconfig
++import os
++import unittest
++
++from test.support import run_unittest, TESTFN, unlink
++
++if '--with-systemtap' not in sysconfig.get_config_var('CONFIG_ARGS'):
++ raise unittest.SkipTest("Python was not configured --with-systemtap")
++
++try:
++ _, stap_version = subprocess.Popen(["stap", "-V"],
++ stdout=subprocess.PIPE,
++ stderr=subprocess.PIPE,
++ ).communicate()
++except OSError:
++ # This is what "no stap" looks like. There may, however, be other
++ # errors that manifest this way too.
++ raise unittest.SkipTest("Couldn't find stap on the path")
++
++def invoke_systemtap_script(script, cmd):
++ # Start a child process, probing with the given systemtap script
++ # (passed as stdin to the "stap" tool)
++ # The script should be a bytes instance
++ # Return (stdout, stderr) pair
++
++ p = subprocess.Popen(["stap", "-", '-vv', '-c', cmd],
++ stdin=subprocess.PIPE,
++ stdout=subprocess.PIPE,
++ stderr=subprocess.PIPE)
++ out, err = p.communicate(input=script)
++ return out, err
++
++# Verify that stap can run a simple "hello world"-style script
++# This can fail for various reasons:
++# - missing kernel headers
++# - permissions (a non-root user needs to be in the "stapdev" group)
++TRIVIAL_STAP_SCRIPT = b'probe begin { println("hello world") exit () }'
++
++out, err = invoke_systemtap_script(TRIVIAL_STAP_SCRIPT, 'true')
++if out != b'hello world\n':
++ raise unittest.SkipTest("Test systemtap script did not run; stderr was: %s" % err)
++
++# We don't expect stderr to be empty, since we're invoking stap with "-vv": stap
++# will (we hope) generate debugging output on stderr.
++
++def invoke_python_under_systemtap(script, pythoncode=None, pythonfile=None):
++ # Start a child python process, probing with the given systemtap script
++ # (passed as stdin to the "stap" tool)
++ # The script should be a bytes instance
++ # Return (stdout, stderr) pair
++
++ if pythonfile:
++ pythoncmd = '%s %s' % (sys.executable, pythonfile)
++ else:
++ pythoncmd = '%s -c %r' % (sys.executable, pythoncode)
++
++ # The process tree of a stap invocation of a command goes through
++ # something like this:
++ # stap ->fork/exec(staprun; exec stapio ->f/e(-c cmd); exec staprun -r)
++ # and this trip through setuid leads to LD_LIBRARY_PATH being dropped,
++ # which would lead to an --enable-shared build of python failing to be
++ # find its libpython, with an error like:
++ # error while loading shared libraries: libpython3.3dm.so.1.0: cannot
++ # open shared object file: No such file or directory
++ # Hence we need to jump through some hoops to expose LD_LIBRARY_PATH to
++ # the invoked python process:
++ LD_LIBRARY_PATH = os.environ.get('LD_LIBRARY_PATH', '')
++ if LD_LIBRARY_PATH:
++ pythoncmd = 'env LD_LIBRARY_PATH=%s ' % LD_LIBRARY_PATH + pythoncmd
++
++ return invoke_systemtap_script(script, pythoncmd)
++
++# When using the static markers, we need to supply the prefix of a systemtap
++# dotted probe point that containing the marker.
++# See http://sourceware.org/systemtap/langref/Probe_points.html
++#
++# We need to determine if this is a shared-library build
++#
++# Note that sysconfig can get this wrong; see:
++# http://bugs.python.org/issue14774
++#
++if '--enable-shared' in sysconfig.get_config_var('CONFIG_ARGS'):
++ # For a shared-library build, the markers are in library(INSTSONAME):
++ INSTSONAME = sysconfig.get_config_var('INSTSONAME')
++ probe_prefix = 'process("%s").library("%s")' % (sys.executable, INSTSONAME)
++else:
++ # For a non-shared-library build, we can simply use sys.executable:
++ probe_prefix = 'process("%s")' % sys.executable
++
++# The following script ought to generate lots of lines showing recursive
++# function entry and return, of the form:
++# 11408 python(8274): => __contains__ in Lib/_abcoll.py:362
++# 11414 python(8274): => __getitem__ in Lib/os.py:425
++# 11418 python(8274): => encode in Lib/os.py:490
++# 11424 python(8274): <= encode in Lib/os.py:493
++# 11428 python(8274): <= __getitem__ in Lib/os.py:426
++# 11433 python(8274): <= __contains__ in Lib/_abcoll.py:366
++# where the column are:
++# - time in microseconds since start of script
++# - name of executable
++# - PID of process
++# and the remainder indicates the call/return hierarchy
++
++hierarchy_script = ('''
++probe %s.mark("function__entry") {
++ filename = user_string($arg1);
++ funcname = user_string($arg2);
++ lineno = $arg3;
++
++ printf("%%s => %%s in %%s:%%d\\n", thread_indent(1), funcname, filename, lineno);
++}
++
++probe %s.mark("function__return") {
++ filename = user_string($arg1);
++ funcname = user_string($arg2);
++ lineno = $arg3;
++
++ printf("%%s <= %%s in %%s:%%d\\n", thread_indent(-1), funcname, filename, lineno);
++}
++''' % (probe_prefix, probe_prefix)).encode('utf-8')
++
++
++class ErrorDumper:
++ # A context manager that dumps extra information if an exception is raised,
++ # to help track down why the problem occurred
++ def __init__(self, out, err):
++ self.out = out
++ self.err = err
++
++ def __enter__(self):
++ pass
++
++ def __exit__(self, type_, value, traceback):
++ if type_:
++ # an exception is being raised:
++ print('stdout: %s' % out.decode())
++ print('stderr: %s' % err.decode())
++
++class SystemtapTests(unittest.TestCase):
++
++ def test_invoking_python(self):
++ # Ensure that we can invoke python under stap, with a trivial stap
++ # script:
++ out, err = invoke_python_under_systemtap(
++ b'probe begin { println("hello from stap") exit () }',
++ pythoncode="print('hello from python')")
++ with ErrorDumper(out, err):
++ self.assertIn(b'hello from stap', out)
++ self.assertIn(b'hello from python', out)
++
++ def test_function_entry(self):
++ # Ensure that the function_entry static marker works
++ out, err = invoke_python_under_systemtap(hierarchy_script)
++ # stdout ought to contain various lines showing recursive function
++ # entry and return (see above)
++
++ # Uncomment this for debugging purposes:
++ # print(out.decode('utf-8'))
++
++ # Executing the cmdline-supplied "pass":
++ # 0 python(8274): => <module> in <string>:1
++ # 5 python(8274): <= <module> in <string>:1
++ with ErrorDumper(out, err):
++ self.assertIn(b'=> <module> in <string>:1', out,
++ msg="stdout: %s\nstderr: %s\n" % (out, err))
++
++ def test_function_encoding(self):
++ # Ensure that function names containing non-Latin 1 code
++ # points are handled:
++ pythonfile = TESTFN
++ try:
++ unlink(pythonfile)
++ f = open(pythonfile, "wb")
++ f.write("""
++# Sample script with non-ASCII filename, for use by test_systemtap.py
++# Implicitly UTF-8
++
++def ():
++ '''Function with non-ASCII identifier; I believe this reads "mojibake"'''
++ print("hello world!")
++
++()
++""".encode('utf-8'))
++ f.close()
++
++ out, err = invoke_python_under_systemtap(hierarchy_script,
++ pythonfile=pythonfile)
++ out_utf8 = out.decode('utf-8')
++ with ErrorDumper(out, err):
++ self.assertIn('=> <module> in %s:5' % pythonfile, out_utf8)
++ self.assertIn(' => in %s:5' % pythonfile, out_utf8)
++ self.assertIn(' <= in %s:7' % pythonfile, out_utf8)
++ self.assertIn('<= <module> in %s:9' % pythonfile, out_utf8)
++ finally:
++ unlink(pythonfile)
++
++ @unittest.skipIf(sys.getfilesystemencoding() == 'ascii',
++ 'the test filename is not encodable with ASCII')
++ def test_filename_encoding(self):
++ # Ensure that scripts names containing non-Latin 1 code
++ # points are handled:
++ pythonfile = TESTFN + '_.py'
++ try:
++ unlink(pythonfile)
++ f = open(pythonfile, "wb")
++ f.write("""
++def foo():
++ '''Function with non-ASCII identifier; I believe this reads "mojibake"'''
++ print("hello world!")
++
++foo()
++""".encode('utf-8'))
++ f.close()
++
++ out, err = invoke_python_under_systemtap(hierarchy_script,
++ pythonfile=pythonfile)
++ out_utf8 = out.decode('utf-8')
++ with ErrorDumper(out, err):
++ self.assertIn('=> <module> in %s:2' % pythonfile, out_utf8)
++ self.assertIn(' => foo in %s:2' % pythonfile, out_utf8)
++ self.assertIn(' <= foo in %s:4' % pythonfile, out_utf8)
++ self.assertIn('<= <module> in %s:6' % pythonfile, out_utf8)
++ finally:
++ unlink(pythonfile)
++
++def test_main():
++ run_unittest(SystemtapTests)
++
++if __name__ == "__main__":
++ test_main()
+diff -up Python-3.3.0rc2/Makefile.pre.in.systemtap Python-3.3.0rc2/Makefile.pre.in
+--- Python-3.3.0rc2/Makefile.pre.in.systemtap 2012-09-09 05:11:05.000000000 -0400
++++ Python-3.3.0rc2/Makefile.pre.in 2012-09-10 09:19:51.195501518 -0400
+@@ -363,6 +363,7 @@ PYTHON_OBJS= \
+ Python/formatter_unicode.o \
+ Python/fileutils.o \
+ Python/$(DYNLOADFILE) \
++ @SYSTEMTAPOBJS@ \
+ $(LIBOBJS) \
+ $(MACHDEP_OBJS) \
+ $(THREADOBJ)
+@@ -713,7 +714,8 @@ Objects/setobject.o: $(srcdir)/Objects/s
+ $(OPCODETARGETS_H): $(OPCODETARGETGEN_FILES)
+ $(OPCODETARGETGEN) $(OPCODETARGETS_H)
+
+-Python/ceval.o: $(OPCODETARGETS_H) $(srcdir)/Python/ceval_gil.h
++Python/ceval.o: $(OPCODETARGETS_H) $(srcdir)/Python/ceval_gil.h \
++ $(srcdir)/Python/ceval_systemtap.h @SYSTEMTAPDEPS@
+
+ Python/frozen.o: Python/importlib.h Python/importlib_external.h
+
+@@ -724,6 +726,13 @@ Objects/typeobject.o: $(srcdir)/Objects/
+ Objects/typeslots.inc: $(srcdir)/Include/typeslots.h $(srcdir)/Objects/typeslots.py
+ $(PYTHON) $(srcdir)/Objects/typeslots.py < $(srcdir)/Include/typeslots.h > Objects/typeslots.inc
+
++# Only needed with --with-systemtap; not a public header:
++$(srcdir)/Python/pysystemtap.h: $(srcdir)/Python/pysystemtap.d
++ dtrace -o $@ $(DFLAGS) -C -h -s $(srcdir)/Python/pysystemtap.d
++
++Python/pysystemtap.o: $(srcdir)/Python/pysystemtap.d Python/ceval.o
++ dtrace -o $@ $(DFLAGS) -C -G -s $(srcdir)/Python/pysystemtap.d Python/ceval.o
++
+ ############################################################################
+ # Header files
+
+@@ -1345,6 +1354,7 @@ clean: pycremoval
+ -rm -f Lib/lib2to3/*Grammar*.pickle
+ -rm -f Programs/_testembed Programs/_freeze_importlib
+ -rm -rf build
++ -rm -f $(srcdir)/Python/pysystemtap.h
+
+ profile-removal:
+ find . -name '*.gc??' -exec rm -f {} ';'
+diff -up Python-3.3.0rc2/pyconfig.h.in.systemtap Python-3.3.0rc2/pyconfig.h.in
+--- Python-3.3.0rc2/pyconfig.h.in.systemtap 2012-09-09 05:11:14.000000000 -0400
++++ Python-3.3.0rc2/pyconfig.h.in 2012-09-10 09:17:21.120511781 -0400
+@@ -1306,6 +1306,9 @@
+ /* Define if you want to compile in Python-specific mallocs */
+ #undef WITH_PYMALLOC
+
++/* Define if you want to compile in SystemTap support */
++#undef WITH_SYSTEMTAP
++
+ /* Define if you want to compile in rudimentary thread support */
+ #undef WITH_THREAD
+
+diff -up Python-3.3.0rc2/Python/ceval.c.systemtap Python-3.3.0rc2/Python/ceval.c
+--- Python-3.3.0rc2/Python/ceval.c.systemtap 2012-09-09 05:11:12.000000000 -0400
++++ Python-3.3.0rc2/Python/ceval.c 2012-09-10 09:17:21.122511781 -0400
+@@ -18,6 +18,8 @@
+
+ #include <ctype.h>
+
++#include "ceval_systemtap.h"
++
+ #ifndef WITH_TSC
+
+ #define READ_TIMESTAMP(var)
+@@ -1160,6 +1162,10 @@ PyEval_EvalFrameEx(PyFrameObject *f, int
+ }
+ }
+
++ if (PYTHON_FUNCTION_ENTRY_ENABLED()) {
++ systemtap_function_entry(f);
++ }
++
+ co = f->f_code;
+ names = co->co_names;
+ consts = co->co_consts;
+@@ -3077,6 +3083,11 @@ fast_yield:
+
+ /* pop frame */
+ exit_eval_frame:
++
++ if (PYTHON_FUNCTION_RETURN_ENABLED()) {
++ systemtap_function_return(f);
++ }
++
+ Py_LeaveRecursiveCall();
+ f->f_executing = 0;
+ tstate->frame = f->f_back;
+diff -up Python-3.3.0rc2/Python/ceval_systemtap.h.systemtap Python-3.3.0rc2/Python/ceval_systemtap.h
+--- Python-3.3.0rc2/Python/ceval_systemtap.h.systemtap 2012-09-10 09:17:21.122511781 -0400
++++ Python-3.3.0rc2/Python/ceval_systemtap.h 2012-09-10 09:17:21.122511781 -0400
+@@ -0,0 +1,86 @@
++/*
++ Support for SystemTap static markers
++*/
++
++#ifdef WITH_SYSTEMTAP
++
++#include "pysystemtap.h"
++
++/*
++ A struct to hold all of the information gathered when one of the traceable
++ markers is triggered
++*/
++struct frame_marker_info
++{
++ PyObject *filename_obj;
++ PyObject *funcname_obj;
++ const char *filename;
++ const char *funcname;
++ int lineno;
++};
++
++static void
++get_frame_marker_info(PyFrameObject *f, struct frame_marker_info *fmi)
++{
++ PyObject *ptype;
++ PyObject *pvalue;
++ PyObject *ptraceback;
++
++ PyErr_Fetch(&ptype, &pvalue, &ptraceback);
++
++ fmi->filename_obj = PyUnicode_EncodeFSDefault(f->f_code->co_filename);
++ if (fmi->filename_obj) {
++ fmi->filename = PyBytes_AsString(fmi->filename_obj);
++ } else {
++ fmi->filename = NULL;
++ }
++
++ fmi->funcname_obj = PyUnicode_AsUTF8String(f->f_code->co_name);
++ if (fmi->funcname_obj) {
++ fmi->funcname = PyBytes_AsString(fmi->funcname_obj);
++ } else {
++ fmi->funcname = NULL;
++ }
++
++ fmi->lineno = PyCode_Addr2Line(f->f_code, f->f_lasti);
++
++ PyErr_Restore(ptype, pvalue, ptraceback);
++
++}
++
++static void
++release_frame_marker_info(struct frame_marker_info *fmi)
++{
++ Py_XDECREF(fmi->filename_obj);
++ Py_XDECREF(fmi->funcname_obj);
++}
++
++static void
++systemtap_function_entry(PyFrameObject *f)
++{
++ struct frame_marker_info fmi;
++ get_frame_marker_info(f, &fmi);
++ PYTHON_FUNCTION_ENTRY(fmi.filename, fmi.funcname, fmi.lineno, f);
++ release_frame_marker_info(&fmi);
++}
++
++static void
++systemtap_function_return(PyFrameObject *f)
++{
++ struct frame_marker_info fmi;
++ get_frame_marker_info(f, &fmi);
++ PYTHON_FUNCTION_RETURN(fmi.filename, fmi.funcname, fmi.lineno, f);
++ release_frame_marker_info(&fmi);
++}
++
++#else /* #ifdef WITH_SYSTEMTAP */
++
++/*
++ When configured --without-systemtap, everything compiles away to nothing:
++*/
++#define PYTHON_FUNCTION_ENTRY_ENABLED() 0
++#define PYTHON_FUNCTION_RETURN_ENABLED() 0
++#define systemtap_function_entry(f)
++#define systemtap_function_return(f)
++
++#endif
+diff -up Python-3.3.0rc2/Python/pysystemtap.d.systemtap Python-3.3.0rc2/Python/pysystemtap.d
+--- Python-3.3.0rc2/Python/pysystemtap.d.systemtap 2012-09-10 09:17:21.122511781 -0400
++++ Python-3.3.0rc2/Python/pysystemtap.d 2012-09-10 09:17:21.122511781 -0400
+@@ -0,0 +1,4 @@
++provider python {
++ probe function__entry(const char *, const char *, int, PyFrameObject *);
++ probe function__return(const char *, const char *, int, PyFrameObject *);
++};
diff --git a/00102-lib64.patch b/00102-lib64.patch
new file mode 100644
index 0000000..be67b9b
--- /dev/null
+++ b/00102-lib64.patch
@@ -0,0 +1,183 @@
+--- Python-3.4.0b1/Lib/distutils/command/install.py.lib64 2013-11-24 21:36:54.000000000 +0100
++++ Python-3.4.0b1/Lib/distutils/command/install.py 2013-11-27 11:10:43.821150774 +0100
+@@ -45,14 +45,14 @@ else:
+ INSTALL_SCHEMES = {
+ 'unix_prefix': {
+ 'purelib': '$base/lib/python$py_version_short/site-packages',
+- 'platlib': '$platbase/lib/python$py_version_short/site-packages',
++ 'platlib': '$platbase/lib64/python$py_version_short/site-packages',
+ 'headers': '$base/include/python$py_version_short$abiflags/$dist_name',
+ 'scripts': '$base/bin',
+ 'data' : '$base',
+ },
+ 'unix_home': {
+ 'purelib': '$base/lib/python',
+- 'platlib': '$base/lib/python',
++ 'platlib': '$base/lib64/python',
+ 'headers': '$base/include/python/$dist_name',
+ 'scripts': '$base/bin',
+ 'data' : '$base',
+--- Python-3.4.0b1/Lib/distutils/sysconfig.py.lib64 2013-11-24 21:36:54.000000000 +0100
++++ Python-3.4.0b1/Lib/distutils/sysconfig.py 2013-11-27 11:10:43.821150774 +0100
+@@ -141,8 +141,12 @@
+ prefix = plat_specific and EXEC_PREFIX or PREFIX
+
+ if os.name == "posix":
++ if plat_specific or standard_lib:
++ lib = "lib64"
++ else:
++ lib = "lib"
+ libpython = os.path.join(prefix,
+- "lib", "python" + get_python_version())
++ lib, "python" + get_python_version())
+ if standard_lib:
+ return libpython
+ else:
+--- Python-3.4.0b1/Lib/site.py.lib64 2013-11-24 21:36:54.000000000 +0100
++++ Python-3.4.0b1/Lib/site.py 2013-11-27 11:10:43.822150773 +0100
+@@ -304,11 +304,15 @@
+ seen.add(prefix)
+
+ if os.sep == '/':
++ sitepackages.append(os.path.join(prefix, "lib64",
++ "python" + sys.version[:3],
++ "site-packages"))
+ sitepackages.append(os.path.join(prefix, "lib",
+ "python" + sys.version[:3],
+ "site-packages"))
+ else:
+ sitepackages.append(prefix)
++ sitepackages.append(os.path.join(prefix, "lib64", "site-packages"))
+ sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
+ if sys.platform == "darwin":
+ # for framework builds *only* we add the standard Apple
+--- Python-3.4.0b1/Lib/sysconfig.py.lib64 2013-11-24 21:36:54.000000000 +0100
++++ Python-3.4.0b1/Lib/sysconfig.py 2013-11-27 11:10:43.822150773 +0100
+@@ -20,10 +20,10 @@
+
+ _INSTALL_SCHEMES = {
+ 'posix_prefix': {
+- 'stdlib': '{installed_base}/lib/python{py_version_short}',
+- 'platstdlib': '{platbase}/lib/python{py_version_short}',
++ 'stdlib': '{installed_base}/lib64/python{py_version_short}',
++ 'platstdlib': '{platbase}/lib64/python{py_version_short}',
+ 'purelib': '{base}/lib/python{py_version_short}/site-packages',
+- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
++ 'platlib': '{platbase}/lib64/python{py_version_short}/site-packages',
+ 'include':
+ '{installed_base}/include/python{py_version_short}{abiflags}',
+ 'platinclude':
+@@ -61,10 +61,10 @@
+ 'data': '{userbase}',
+ },
+ 'posix_user': {
+- 'stdlib': '{userbase}/lib/python{py_version_short}',
+- 'platstdlib': '{userbase}/lib/python{py_version_short}',
++ 'stdlib': '{userbase}/lib64/python{py_version_short}',
++ 'platstdlib': '{userbase}/lib64/python{py_version_short}',
+ 'purelib': '{userbase}/lib/python{py_version_short}/site-packages',
+- 'platlib': '{userbase}/lib/python{py_version_short}/site-packages',
++ 'platlib': '{userbase}/lib64/python{py_version_short}/site-packages',
+ 'include': '{userbase}/include/python{py_version_short}',
+ 'scripts': '{userbase}/bin',
+ 'data': '{userbase}',
+--- Python-3.4.0b1/Lib/test/test_site.py.lib64 2013-11-24 21:36:55.000000000 +0100
++++ Python-3.4.0b1/Lib/test/test_site.py 2013-11-27 11:10:43.822150773 +0100
+@@ -244,8 +244,8 @@
+ self.assertEqual(dirs[1], wanted)
+ elif os.sep == '/':
+ # OS X non-framwework builds, Linux, FreeBSD, etc
+- self.assertEqual(len(dirs), 1)
+- wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
++ self.assertEqual(len(dirs), 2)
++ wanted = os.path.join('xoxo', 'lib64', 'python' + sys.version[:3],
+ 'site-packages')
+ self.assertEqual(dirs[0], wanted)
+ else:
+--- Python-3.4.0b1/Makefile.pre.in.lib64 2013-11-27 11:10:43.814150786 +0100
++++ Python-3.4.0b1/Makefile.pre.in 2013-11-27 11:10:43.823150771 +0100
+@@ -115,7 +115,7 @@
+ MANDIR= @mandir@
+ INCLUDEDIR= @includedir@
+ CONFINCLUDEDIR= $(exec_prefix)/include
+-SCRIPTDIR= $(prefix)/lib
++SCRIPTDIR= $(prefix)/lib64
+ ABIFLAGS= @ABIFLAGS@
+
+ # Detailed destination directories
+--- Python-3.4.0b1/Modules/getpath.c.lib64 2013-11-24 21:36:56.000000000 +0100
++++ Python-3.4.0b1/Modules/getpath.c 2013-11-27 11:17:33.619449704 +0100
+@@ -122,8 +122,8 @@
+ #endif
+
+ #ifndef PYTHONPATH
+-#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
+- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
++#define PYTHONPATH PREFIX "/lib64/python" VERSION ":" \
++ EXEC_PREFIX "/lib64/python" VERSION "/lib-dynload"
+ #endif
+
+ #ifndef LANDMARK
+@@ -498,7 +498,7 @@
+ _pythonpath = Py_DecodeLocale(PYTHONPATH, NULL);
+ _prefix = Py_DecodeLocale(PREFIX, NULL);
+ _exec_prefix = Py_DecodeLocale(EXEC_PREFIX, NULL);
+- lib_python = Py_DecodeLocale("lib/python" VERSION, NULL);
++ lib_python = Py_DecodeLocale("lib64/python" VERSION, NULL);
+
+ if (!_pythonpath || !_prefix || !_exec_prefix || !lib_python) {
+ Py_FatalError(
+@@ -687,7 +687,7 @@
+ }
+ else
+ wcsncpy(zip_path, _prefix, MAXPATHLEN);
+- joinpath(zip_path, L"lib/python00.zip");
++ joinpath(zip_path, L"lib64/python00.zip");
+ bufsz = wcslen(zip_path); /* Replace "00" with version */
+ zip_path[bufsz - 6] = VERSION[0];
+ zip_path[bufsz - 5] = VERSION[2];
+@@ -699,7 +699,7 @@
+ fprintf(stderr,
+ "Could not find platform dependent libraries <exec_prefix>\n");
+ wcsncpy(exec_prefix, _exec_prefix, MAXPATHLEN);
+- joinpath(exec_prefix, L"lib/lib-dynload");
++ joinpath(exec_prefix, L"lib64/lib-dynload");
+ }
+ /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */
+
+--- Python-3.4.0b1/setup.py.lib64 2013-11-24 21:36:56.000000000 +0100
++++ Python-3.4.0b1/setup.py 2013-11-27 11:10:43.824150769 +0100
+@@ -441,7 +441,7 @@
+ # directories (i.e. '.' and 'Include') must be first. See issue
+ # 10520.
+ if not cross_compiling:
+- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
++ add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64')
+ add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
+ # only change this for cross builds for 3.3, issues on Mageia
+ if cross_compiling:
+@@ -718,11 +718,11 @@
+ elif curses_library:
+ readline_libs.append(curses_library)
+ elif self.compiler.find_library_file(lib_dirs +
+- ['/usr/lib/termcap'],
++ ['/usr/lib64/termcap'],
+ 'termcap'):
+ readline_libs.append('termcap')
+ exts.append( Extension('readline', ['readline.c'],
+- library_dirs=['/usr/lib/termcap'],
++ library_dirs=['/usr/lib64/termcap'],
+ extra_link_args=readline_extra_link_args,
+ libraries=readline_libs) )
+ else:
+@@ -759,8 +759,8 @@
+ if krb5_h:
+ ssl_incs += krb5_h
+ ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
+- ['/usr/local/ssl/lib',
+- '/usr/contrib/ssl/lib/'
++ ['/usr/local/ssl/lib64',
++ '/usr/contrib/ssl/lib64/'
+ ] )
+
+ if (ssl_incs is not None and
diff --git a/00104-lib64-fix-for-test_install.patch b/00104-lib64-fix-for-test_install.patch
new file mode 100644
index 0000000..7852bf6
--- /dev/null
+++ b/00104-lib64-fix-for-test_install.patch
@@ -0,0 +1,13 @@
+--- Python-2.7.2/Lib/distutils/tests/test_install.py.lib64 2011-09-08 17:51:57.851405376 -0400
++++ Python-2.7.2/Lib/distutils/tests/test_install.py 2011-09-08 18:40:46.754205096 -0400
+@@ -41,8 +41,9 @@ class InstallTestCase(support.TempdirMan
+ self.assertEqual(got, expected)
+
+ libdir = os.path.join(destination, "lib", "python")
++ platlibdir = os.path.join(destination, "lib64", "python")
+ check_path(cmd.install_lib, libdir)
+- check_path(cmd.install_platlib, libdir)
++ check_path(cmd.install_platlib, platlibdir)
+ check_path(cmd.install_purelib, libdir)
+ check_path(cmd.install_headers,
+ os.path.join(destination, "include", "python", "foopkg"))
diff --git a/00111-no-static-lib.patch b/00111-no-static-lib.patch
new file mode 100644
index 0000000..006bb90
--- /dev/null
+++ b/00111-no-static-lib.patch
@@ -0,0 +1,59 @@
+diff -up cpython-59223da36dec/Makefile.pre.in.no-static-lib cpython-59223da36dec/Makefile.pre.in
+--- cpython-59223da36dec/Makefile.pre.in.no-static-lib 2012-08-07 16:43:43.296466422 -0400
++++ cpython-59223da36dec/Makefile.pre.in 2012-08-07 16:44:13.299464371 -0400
+@@ -550,7 +550,7 @@ clinic: $(BUILDPYTHON)
+ $(RUNSHARED) $(PYTHON_FOR_BUILD) ./Tools/clinic/clinic.py --make
+
+ # Build the interpreter
+-$(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
++$(BUILDPYTHON): Programs/python.o $(LDLIBRARY) $(PY3LIBRARY)
+ $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
+
+ platform: $(BUILDPYTHON) pybuilddir.txt
+@@ -480,18 +480,6 @@ sharedmods: $(BUILDPYTHON) $(SYSCONFIGDA
+ _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
+ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
+
+-# Build static library
+-# avoid long command lines, same as LIBRARY_OBJS
+-$(LIBRARY): $(LIBRARY_OBJS)
+- -rm -f $@
+- $(AR) $(ARFLAGS) $@ Modules/getbuildinfo.o
+- $(AR) $(ARFLAGS) $@ $(PARSER_OBJS)
+- $(AR) $(ARFLAGS) $@ $(OBJECT_OBJS)
+- $(AR) $(ARFLAGS) $@ $(PYTHON_OBJS) Python/frozen.o
+- $(AR) $(ARFLAGS) $@ $(MODULE_OBJS) $(SIGNAL_OBJS)
+- $(AR) $(ARFLAGS) $@ $(MODOBJS)
+- $(RANLIB) $@
+-
+ libpython$(LDVERSION).so: $(LIBRARY_OBJS)
+ if test $(INSTSONAME) != $(LDLIBRARY); then \
+ $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
+@@ -674,7 +674,7 @@ Modules/Setup: $(srcdir)/Modules/Setup.d
+ echo "-----------------------------------------------"; \
+ fi
+
+-Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
++Programs/_testembed: Programs/_testembed.o $(LDLIBRARY) $(PY3LIBRARY)
+ $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
+
+ ############################################################################
+@@ -1354,18 +1354,6 @@ libainstall: all python-config
+ else true; \
+ fi; \
+ done
+- @if test -d $(LIBRARY); then :; else \
+- if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
+- if test "$(SHLIB_SUFFIX)" = .dll; then \
+- $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
+- else \
+- $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
+- $(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
+- fi; \
+- else \
+- echo Skip install of $(LIBRARY) - use make frameworkinstall; \
+- fi; \
+- fi
+ $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c
+ $(INSTALL_DATA) Programs/python.o $(DESTDIR)$(LIBPL)/python.o
+ $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
diff --git a/00132-add-rpmbuild-hooks-to-unittest.patch b/00132-add-rpmbuild-hooks-to-unittest.patch
new file mode 100644
index 0000000..77dc6ec
--- /dev/null
+++ b/00132-add-rpmbuild-hooks-to-unittest.patch
@@ -0,0 +1,46 @@
+diff -up Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest Python-3.2.2/Lib/unittest/case.py
+--- Python-3.2.2/Lib/unittest/case.py.add-rpmbuild-hooks-to-unittest 2011-09-03 12:16:44.000000000 -0400
++++ Python-3.2.2/Lib/unittest/case.py 2011-09-09 06:35:16.365568382 -0400
+@@ -3,6 +3,7 @@
+ import sys
+ import functools
+ import difflib
++import os
+ import logging
+ import pprint
+ import re
+@@ -101,5 +102,21 @@ def expectedFailure(func):
+ raise self.test_case.failureException(msg)
+
++# Non-standard/downstream-only hooks for handling issues with specific test
++# cases:
++
++def _skipInRpmBuild(reason):
++ """
++ Non-standard/downstream-only decorator for marking a specific unit test
++ to be skipped when run within the %check of an rpmbuild.
++
++ Specifically, this takes effect when WITHIN_PYTHON_RPM_BUILD is set within
++ the environment, and has no effect otherwise.
++ """
++ if 'WITHIN_PYTHON_RPM_BUILD' in os.environ:
++ return skip(reason)
++ else:
++ return _id
++
+ class _AssertRaisesBaseContext(_BaseTestCaseContext):
+
+ def __init__(self, expected, test_case, expected_regex=None):
+diff -up Python-3.2.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest Python-3.2.2/Lib/unittest/__init__.py
+--- Python-3.2.2/Lib/unittest/__init__.py.add-rpmbuild-hooks-to-unittest 2011-09-03 12:16:44.000000000 -0400
++++ Python-3.2.2/Lib/unittest/__init__.py 2011-09-09 06:35:16.366568382 -0400
+@@ -57,7 +57,8 @@ __unittest = True
+
+ from .result import TestResult
+ from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf,
+- skipUnless, expectedFailure)
++ skipUnless, expectedFailure,
++ _skipInRpmBuild)
+ from .suite import BaseTestSuite, TestSuite
+ from .loader import (TestLoader, defaultTestLoader, makeSuite, getTestCaseNames,
+ findTestCases)
diff --git a/00137-skip-distutils-tests-that-fail-in-rpmbuild.patch b/00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
new file mode 100644
index 0000000..0457093
--- /dev/null
+++ b/00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
@@ -0,0 +1,12 @@
+diff -up Python-3.2.2/Lib/distutils/tests/test_bdist_rpm.py.skip-distutils-tests-that-fail-in-rpmbuild Python-3.2.2/Lib/distutils/tests/test_bdist_rpm.py
+--- Python-3.2.2/Lib/distutils/tests/test_bdist_rpm.py.skip-distutils-tests-that-fail-in-rpmbuild 2011-09-03 12:16:40.000000000 -0400
++++ Python-3.2.2/Lib/distutils/tests/test_bdist_rpm.py 2011-09-10 05:04:56.328852558 -0400
+@@ -23,6 +23,7 @@ setup(name='foo', version='0.1', py_modu
+
+ """
+
++(a)unittest._skipInRpmBuild("don't try to nest one rpm build inside another rpm build")
+ class BuildRpmTestCase(support.TempdirManager,
+ support.EnvironGuard,
+ support.LoggingSilencer,
+diff -up Python-3.2.2/Lib/distutils/tests/test_build_ext.py.skip-distutils-tests-that-fail-in-rpmbuild Python-3.2.2/Lib/distutils/tests/test_build_ext.py
diff --git a/00143-tsc-on-ppc.patch b/00143-tsc-on-ppc.patch
new file mode 100644
index 0000000..7d3e876
--- /dev/null
+++ b/00143-tsc-on-ppc.patch
@@ -0,0 +1,58 @@
+diff -up Python-2.7.2/Python/ceval.c.tsc-on-ppc Python-2.7.2/Python/ceval.c
+--- Python-2.7.2/Python/ceval.c.tsc-on-ppc 2011-08-23 14:59:48.051300849 -0400
++++ Python-2.7.2/Python/ceval.c 2011-08-23 15:33:25.412162902 -0400
+@@ -37,24 +37,42 @@ typedef unsigned long long uint64;
+ */
+ #if defined(__ppc__) || defined (__powerpc__)
+
+-#define READ_TIMESTAMP(var) ppc_getcounter(&var)
++#if defined( __powerpc64__) || defined(__LP64__)
++/* 64-bit PowerPC */
++#define READ_TIMESTAMP(var) ppc64_getcounter(&var)
++static void
++ppc64_getcounter(uint64 *v)
++{
++ /* On 64-bit PowerPC we can read the 64-bit timebase directly into a
++ 64-bit register */
++ uint64 timebase;
++#ifdef _ARCH_PWR4
++ asm volatile ("mfspr %0,268" : "=r" (timebase));
++#else
++ asm volatile ("mftb %0" : "=r" (timebase));
++#endif
++ *v = timebase;
++}
++
++#else
++/* 32-bit PowerPC */
++#define READ_TIMESTAMP(var) ppc32_getcounter(&var)
+
+ static void
+-ppc_getcounter(uint64 *v)
++ppc32_getcounter(uint64 *v)
+ {
+- unsigned long tbu, tb, tbu2;
++ union { long long ll; long ii[2]; } u;
++ long tmp;
+
+ loop:
+- asm volatile ("mftbu %0" : "=r" (tbu) );
+- asm volatile ("mftb %0" : "=r" (tb) );
+- asm volatile ("mftbu %0" : "=r" (tbu2));
+- if (__builtin_expect(tbu != tbu2, 0)) goto loop;
+-
+- /* The slightly peculiar way of writing the next lines is
+- compiled better by GCC than any other way I tried. */
+- ((long*)(v))[0] = tbu;
+- ((long*)(v))[1] = tb;
++ asm volatile ("mftbu %0" : "=r" (u.ii[0]) );
++ asm volatile ("mftb %0" : "=r" (u.ii[1]) );
++ asm volatile ("mftbu %0" : "=r" (tmp));
++ if (__builtin_expect(u.ii[0] != tmp, 0)) goto loop;
++
++ *v = u.ll;
+ }
++#endif /* powerpc 32/64 bit */
+
+ #elif defined(__i386__)
+
diff --git a/00146-hashlib-fips.patch b/00146-hashlib-fips.patch
new file mode 100644
index 0000000..3d92c34
--- /dev/null
+++ b/00146-hashlib-fips.patch
@@ -0,0 +1,637 @@
+--- Python-3.4.0b1/Lib/hashlib.py.hashlib-fips 2013-11-24 21:36:54.000000000 +0100
++++ Python-3.4.0b1/Lib/hashlib.py 2013-11-27 11:45:17.073617547 +0100
+@@ -23,6 +23,16 @@
+ Choose your hash function wisely. Some have known collision weaknesses.
+ sha384 and sha512 will be slow on 32 bit platforms.
+
++If the underlying implementation supports "FIPS mode", and this is enabled, it
++may restrict the available hashes to only those that are compliant with FIPS
++regulations. For example, it may deny the use of MD5, on the grounds that this
++is not secure for uses such as authentication, system integrity checking, or
++digital signatures. If you need to use such a hash for non-security purposes
++(such as indexing into a data structure for speed), you can override the keyword
++argument "usedforsecurity" from True to False to signify that your code is not
++relying on the hash for security purposes, and this will allow the hash to be
++usable even in FIPS mode.
++
+ Hash objects have these methods:
+ - update(arg): Update the hash object with the bytes in arg. Repeated calls
+ are equivalent to a single call with the concatenation of all
+@@ -63,6 +73,19 @@
+ __all__ = __always_supported + ('new', 'algorithms_guaranteed',
+ 'algorithms_available', 'pbkdf2_hmac')
+
++import functools
++def __ignore_usedforsecurity(func):
++ """Used for sha3_* functions. Until OpenSSL implements them, we want
++ to use them from Python _sha3 module, but we want them to accept
++ usedforsecurity argument too."""
++ # TODO: remove this function when OpenSSL implements sha3
++ @functools.wraps(func)
++ def inner(*args, **kwargs):
++ if 'usedforsecurity' in kwargs:
++ kwargs.pop('usedforsecurity')
++ return func(*args, **kwargs)
++ return inner
++
+
+ __builtin_constructor_cache = {}
+
+@@ -108,34 +131,41 @@
+ f = getattr(_hashlib, 'openssl_' + name)
+ # Allow the C module to raise ValueError. The function will be
+ # defined but the hash not actually available thanks to OpenSSL.
+- f()
++ # We pass "usedforsecurity=False" to disable FIPS-based restrictions:
++ # at this stage we're merely seeing if the function is callable,
++ # rather than using it for actual work.
++ f(usedforsecurity=False)
+ # Use the C function directly (very fast)
+ return f
+ except (AttributeError, ValueError):
++ # TODO: We want to just raise here when OpenSSL implements sha3
++ # because we want to make sure that Fedora uses everything from OpenSSL
+ return __get_builtin_constructor(name)
+
+
+-def __py_new(name, data=b''):
+- """new(name, data=b'') - Return a new hashing object using the named algorithm;
+- optionally initialized with data (which must be bytes).
++def __py_new(name, data=b'', usedforsecurity=True):
++ """new(name, data=b'', usedforsecurity=True) - Return a new hashing object using
++ the named algorithm; optionally initialized with data (which must be bytes).
++ The 'usedforsecurity' keyword argument does nothing, and is for compatibilty
++ with the OpenSSL implementation
+ """
+ return __get_builtin_constructor(name)(data)
+
+
+-def __hash_new(name, data=b''):
+- """new(name, data=b'') - Return a new hashing object using the named algorithm;
+- optionally initialized with data (which must be bytes).
++def __hash_new(name, data=b'', usedforsecurity=True):
++ """new(name, data=b'', usedforsecurity=True) - Return a new hashing object using
++ the named algorithm; optionally initialized with data (which must be bytes).
++
++ Override 'usedforsecurity' to False when using for non-security purposes in
++ a FIPS environment
+ """
+ try:
+- return _hashlib.new(name, data)
++ return _hashlib.new(name, data, usedforsecurity)
+ except ValueError:
+- # If the _hashlib module (OpenSSL) doesn't support the named
+- # hash, try using our builtin implementations.
+- # This allows for SHA224/256 and SHA384/512 support even though
+- # the OpenSSL library prior to 0.9.8 doesn't provide them.
++ # TODO: We want to just raise here when OpenSSL implements sha3
++ # because we want to make sure that Fedora uses everything from OpenSSL
+ return __get_builtin_constructor(name)(data)
+
+-
+ try:
+ import _hashlib
+ new = __hash_new
+@@ -215,7 +245,10 @@
+ # try them all, some may not work due to the OpenSSL
+ # version not supporting that algorithm.
+ try:
+- globals()[__func_name] = __get_hash(__func_name)
++ func = __get_hash(__func_name)
++ if 'sha3_' in __func_name:
++ func = __ignore_usedforsecurity(func)
++ globals()[__func_name] = func
+ except ValueError:
+ import logging
+ logging.exception('code for hash %s was not found.', __func_name)
+@@ -223,3 +256,4 @@
+ # Cleanup locals()
+ del __always_supported, __func_name, __get_hash
+ del __py_new, __hash_new, __get_openssl_constructor
++del __ignore_usedforsecurity
+--- Python-3.4.0b1/Lib/test/test_hashlib.py 2013-11-27 11:55:42.769601363 +0100
++++ Python-3.4.0b1/Lib/test/test_hashlib.py 2013-11-28 09:33:03.929008508 +0100
+@@ -24,7 +24,22 @@
+ COMPILED_WITH_PYDEBUG = hasattr(sys, 'gettotalrefcount')
+
+ c_hashlib = import_fresh_module('hashlib', fresh=['_hashlib'])
+-py_hashlib = import_fresh_module('hashlib', blocked=['_hashlib'])
++# skipped on Fedora, since we always use OpenSSL implementation
++# py_hashlib = import_fresh_module('hashlib', blocked=['_hashlib'])
++
++def openssl_enforces_fips():
++ # Use the "openssl" command (if present) to try to determine if the local
++ # OpenSSL is configured to enforce FIPS
++ from subprocess import Popen, PIPE
++ try:
++ p = Popen(['openssl', 'md5'],
++ stdin=PIPE, stdout=PIPE, stderr=PIPE)
++ except OSError:
++ # "openssl" command not found
++ return False
++ stdout, stderr = p.communicate(input=b'abc')
++ return b'unknown cipher' in stderr
++OPENSSL_ENFORCES_FIPS = openssl_enforces_fips()
+
+ def hexstr(s):
+ assert isinstance(s, bytes), repr(s)
+@@ -34,6 +49,16 @@
+ r += h[(i >> 4) & 0xF] + h[i & 0xF]
+ return r
+
++# hashlib and _hashlib-based functions support a "usedforsecurity" keyword
++# argument, and FIPS mode requires that it be used overridden with a False
++# value for these selftests to work. Other cryptographic code within Python
++# doesn't support this keyword.
++# Modify a function to one in which "usedforsecurity=False" is added to the
++# keyword arguments:
++def suppress_fips(f):
++ def g(*args, **kwargs):
++ return f(*args, usedforsecurity=False, **kwargs)
++ return g
+
+ class HashLibTestCase(unittest.TestCase):
+ supported_hash_names = ( 'md5', 'MD5', 'sha1', 'SHA1',
+@@ -66,11 +91,11 @@
+ # For each algorithm, test the direct constructor and the use
+ # of hashlib.new given the algorithm name.
+ for algorithm, constructors in self.constructors_to_test.items():
+- constructors.add(getattr(hashlib, algorithm))
++ constructors.add(suppress_fips(getattr(hashlib, algorithm)))
+ def _test_algorithm_via_hashlib_new(data=None, _alg=algorithm):
+ if data is None:
+- return hashlib.new(_alg)
+- return hashlib.new(_alg, data)
++ return suppress_fips(hashlib.new)(_alg)
++ return suppress_fips(hashlib.new)(_alg, data)
+ constructors.add(_test_algorithm_via_hashlib_new)
+
+ _hashlib = self._conditional_import_module('_hashlib')
+@@ -82,26 +107,12 @@
+ for algorithm, constructors in self.constructors_to_test.items():
+ constructor = getattr(_hashlib, 'openssl_'+algorithm, None)
+ if constructor:
+- constructors.add(constructor)
++ constructors.add(suppress_fips(constructor))
+
+ def add_builtin_constructor(name):
+ constructor = getattr(hashlib, "__get_builtin_constructor")(name)
+ self.constructors_to_test[name].add(constructor)
+
+- _md5 = self._conditional_import_module('_md5')
+- if _md5:
+- add_builtin_constructor('md5')
+- _sha1 = self._conditional_import_module('_sha1')
+- if _sha1:
+- add_builtin_constructor('sha1')
+- _sha256 = self._conditional_import_module('_sha256')
+- if _sha256:
+- add_builtin_constructor('sha224')
+- add_builtin_constructor('sha256')
+- _sha512 = self._conditional_import_module('_sha512')
+- if _sha512:
+- add_builtin_constructor('sha384')
+- add_builtin_constructor('sha512')
+
+ super(HashLibTestCase, self).__init__(*args, **kwargs)
+
+@@ -157,9 +169,6 @@
+ else:
+ del sys.modules['_md5']
+ self.assertRaises(TypeError, get_builtin_constructor, 3)
+- constructor = get_builtin_constructor('md5')
+- self.assertIs(constructor, _md5.md5)
+- self.assertEqual(sorted(builtin_constructor_cache), ['MD5', 'md5'])
+
+ def test_hexdigest(self):
+ for cons in self.hash_constructors:
+@@ -558,6 +567,65 @@
+
+ self.assertEqual(expected_hash, hasher.hexdigest())
+
++ def test_issue9146(self):
++ # Ensure that various ways to use "MD5" from "hashlib" don't segfault:
++ m = hashlib.md5(usedforsecurity=False)
++ m.update(b'abc\n')
++ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
++
++ m = hashlib.new('md5', usedforsecurity=False)
++ m.update(b'abc\n')
++ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
++
++ m = hashlib.md5(b'abc\n', usedforsecurity=False)
++ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
++
++ m = hashlib.new('md5', b'abc\n', usedforsecurity=False)
++ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
++
++ @unittest.skipUnless(OPENSSL_ENFORCES_FIPS,
++ 'FIPS enforcement required for this test.')
++ def test_hashlib_fips_mode(self):
++ # Ensure that we raise a ValueError on vanilla attempts to use MD5
++ # in hashlib in a FIPS-enforced setting:
++ with self.assertRaisesRegexp(ValueError, '.*unknown cipher'):
++ m = hashlib.md5()
++
++ if not self._conditional_import_module('_md5'):
++ with self.assertRaisesRegexp(ValueError, '.*unknown cipher'):
++ m = hashlib.new('md5')
++
++ @unittest.skipUnless(OPENSSL_ENFORCES_FIPS,
++ 'FIPS enforcement required for this test.')
++ def test_hashopenssl_fips_mode(self):
++ # Verify the _hashlib module's handling of md5:
++ _hashlib = self._conditional_import_module('_hashlib')
++ if _hashlib:
++ assert hasattr(_hashlib, 'openssl_md5')
++
++ # Ensure that _hashlib raises a ValueError on vanilla attempts to
++ # use MD5 in a FIPS-enforced setting:
++ with self.assertRaisesRegexp(ValueError, '.*unknown cipher'):
++ m = _hashlib.openssl_md5()
++ with self.assertRaisesRegexp(ValueError, '.*unknown cipher'):
++ m = _hashlib.new('md5')
++
++ # Ensure that in such a setting we can whitelist a callsite with
++ # usedforsecurity=False and have it succeed:
++ m = _hashlib.openssl_md5(usedforsecurity=False)
++ m.update(b'abc\n')
++ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
++
++ m = _hashlib.new('md5', usedforsecurity=False)
++ m.update(b'abc\n')
++ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
++
++ m = _hashlib.openssl_md5(b'abc\n', usedforsecurity=False)
++ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
++
++ m = _hashlib.new('md5', b'abc\n', usedforsecurity=False)
++ self.assertEquals(m.hexdigest(), "0bee89b07a248e27c83fc3d5951213c1")
++
+
+ class KDFTests(unittest.TestCase):
+
+@@ -639,6 +707,7 @@
+ with self.assertRaisesRegex(ValueError, 'unsupported hash type'):
+ pbkdf2('unknown', b'pass', b'salt', 1)
+
++ @unittest.skip('skipped on Fedora, as we always use OpenSSL pbkdf2_hmac')
+ def test_pbkdf2_hmac_py(self):
+ self._test_pbkdf2_hmac(py_hashlib.pbkdf2_hmac)
+
+--- Python-3.4.0b1/Modules/_hashopenssl.c.hashlib-fips 2013-11-24 21:36:56.000000000 +0100
++++ Python-3.4.0b1/Modules/_hashopenssl.c 2013-11-27 12:01:57.443537463 +0100
+@@ -19,6 +19,8 @@
+
+
+ /* EVP is the preferred interface to hashing in OpenSSL */
++#include <openssl/ssl.h>
++#include <openssl/err.h>
+ #include <openssl/evp.h>
+ #include <openssl/hmac.h>
+ /* We use the object interface to discover what hashes OpenSSL supports. */
+@@ -48,11 +50,19 @@
+
+ static PyTypeObject EVPtype;
+
++/* Struct to hold all the cached information we need on a specific algorithm.
++ We have one of these per algorithm */
++typedef struct {
++ PyObject *name_obj;
++ EVP_MD_CTX ctxs[2];
++ /* ctx_ptrs will point to ctxs unless an error occurred, when it will
++ be NULL: */
++ EVP_MD_CTX *ctx_ptrs[2];
++ PyObject *error_msgs[2];
++} EVPCachedInfo;
+
+-#define DEFINE_CONSTS_FOR_NEW(Name) \
+- static PyObject *CONST_ ## Name ## _name_obj = NULL; \
+- static EVP_MD_CTX CONST_new_ ## Name ## _ctx; \
+- static EVP_MD_CTX *CONST_new_ ## Name ## _ctx_p = NULL;
++#define DEFINE_CONSTS_FOR_NEW(Name) \
++ static EVPCachedInfo cached_info_ ##Name;
+
+ DEFINE_CONSTS_FOR_NEW(md5)
+ DEFINE_CONSTS_FOR_NEW(sha1)
+@@ -97,6 +107,48 @@
+ }
+ }
+
++static void
++mc_ctx_init(EVP_MD_CTX *ctx, int usedforsecurity)
++{
++ EVP_MD_CTX_init(ctx);
++
++ /*
++ If the user has declared that this digest is being used in a
++ non-security role (e.g. indexing into a data structure), set
++ the exception flag for openssl to allow it
++ */
++ if (!usedforsecurity) {
++#ifdef EVP_MD_CTX_FLAG_NON_FIPS_ALLOW
++ EVP_MD_CTX_set_flags(ctx,
++ EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
++#endif
++ }
++}
++
++/* Get an error msg for the last error as a PyObject */
++static PyObject *
++error_msg_for_last_error(void)
++{
++ char *errstr;
++
++ errstr = ERR_error_string(ERR_peek_last_error(), NULL);
++ ERR_clear_error();
++
++ return PyUnicode_FromString(errstr); /* Can be NULL */
++}
++
++static void
++set_evp_exception(void)
++{
++ char *errstr;
++
++ errstr = ERR_error_string(ERR_peek_last_error(), NULL);
++ ERR_clear_error();
++
++ PyErr_SetString(PyExc_ValueError, errstr);
++}
++
++
+ /* Internal methods for a hash object */
+
+ static void
+@@ -281,15 +333,16 @@
+ static int
+ EVP_tp_init(EVPobject *self, PyObject *args, PyObject *kwds)
+ {
+- static char *kwlist[] = {"name", "string", NULL};
++ static char *kwlist[] = {"name", "string", "usedforsecurity", NULL};
+ PyObject *name_obj = NULL;
+ PyObject *data_obj = NULL;
++ int usedforsecurity = 1;
+ Py_buffer view;
+ char *nameStr;
+ const EVP_MD *digest;
+
+- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:HASH", kwlist,
+- &name_obj, &data_obj)) {
++ if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|Oi:HASH", kwlist,
++ &name_obj, &data_obj, &usedforsecurity)) {
+ return -1;
+ }
+
+@@ -310,7 +363,12 @@
+ PyBuffer_Release(&view);
+ return -1;
+ }
+- EVP_DigestInit(&self->ctx, digest);
++ mc_ctx_init(&self->ctx, usedforsecurity);
++ if (!EVP_DigestInit_ex(&self->ctx, digest, NULL)) {
++ set_evp_exception();
++ PyBuffer_Release(&view);
++ return -1;
++ }
+
+ self->name = name_obj;
+ Py_INCREF(self->name);
+@@ -394,7 +452,8 @@
+ static PyObject *
+ EVPnew(PyObject *name_obj,
+ const EVP_MD *digest, const EVP_MD_CTX *initial_ctx,
+- const unsigned char *cp, Py_ssize_t len)
++ const unsigned char *cp, Py_ssize_t len,
++ int usedforsecurity)
+ {
+ EVPobject *self;
+
+@@ -409,7 +468,12 @@
+ if (initial_ctx) {
+ EVP_MD_CTX_copy(&self->ctx, initial_ctx);
+ } else {
+- EVP_DigestInit(&self->ctx, digest);
++ mc_ctx_init(&self->ctx, usedforsecurity);
++ if (!EVP_DigestInit_ex(&self->ctx, digest, NULL)) {
++ set_evp_exception();
++ Py_DECREF(self);
++ return NULL;
++ }
+ }
+
+ if (cp && len) {
+@@ -433,21 +497,29 @@
+ An optional string argument may be provided and will be\n\
+ automatically hashed.\n\
+ \n\
+-The MD5 and SHA1 algorithms are always supported.\n");
++The MD5 and SHA1 algorithms are always supported.\n\
++\n\
++An optional \"usedforsecurity=True\" keyword argument is provided for use in\n\
++environments that enforce FIPS-based restrictions. Some implementations of\n\
++OpenSSL can be configured to prevent the usage of non-secure algorithms (such\n\
++as MD5). If you have a non-security use for these algorithms (e.g. a hash\n\
++table), you can override this argument by marking the callsite as\n\
++\"usedforsecurity=False\".");
+
+ static PyObject *
+ EVP_new(PyObject *self, PyObject *args, PyObject *kwdict)
+ {
+- static char *kwlist[] = {"name", "string", NULL};
++ static char *kwlist[] = {"name", "string", "usedforsecurity", NULL};
+ PyObject *name_obj = NULL;
+ PyObject *data_obj = NULL;
++ int usedforsecurity = 1;
+ Py_buffer view = { 0 };
+ PyObject *ret_obj;
+ char *name;
+ const EVP_MD *digest;
+
+- if (!PyArg_ParseTupleAndKeywords(args, kwdict, "O|O:new", kwlist,
+- &name_obj, &data_obj)) {
++ if (!PyArg_ParseTupleAndKeywords(args, kwdict, "O|Oi:new", kwlist,
++ &name_obj, &data_obj, &usedforsecurity)) {
+ return NULL;
+ }
+
+@@ -461,7 +533,8 @@
+
+ digest = EVP_get_digestbyname(name);
+
+- ret_obj = EVPnew(name_obj, digest, NULL, (unsigned char*)view.buf, view.len);
++ ret_obj = EVPnew(name_obj, digest, NULL, (unsigned char*)view.buf, view.len,
++ usedforsecurity);
+
+ if (data_obj)
+ PyBuffer_Release(&view);
+@@ -742,57 +815,115 @@
+
+
+ /*
+- * This macro generates constructor function definitions for specific
+- * hash algorithms. These constructors are much faster than calling
+- * the generic one passing it a python string and are noticably
+- * faster than calling a python new() wrapper. Thats important for
++ * This macro and function generates a family of constructor function
++ * definitions for specific hash algorithms. These constructors are much
++ * faster than calling the generic one passing it a python string and are
++ * noticably faster than calling a python new() wrapper. That's important for
+ * code that wants to make hashes of a bunch of small strings.
+ */
+ #define GEN_CONSTRUCTOR(NAME) \
+ static PyObject * \
+- EVP_new_ ## NAME (PyObject *self, PyObject *args) \
++ EVP_new_ ## NAME (PyObject *self, PyObject *args, PyObject *kwdict) \
+ { \
+- PyObject *data_obj = NULL; \
+- Py_buffer view = { 0 }; \
+- PyObject *ret_obj; \
+- \
+- if (!PyArg_ParseTuple(args, "|O:" #NAME , &data_obj)) { \
+- return NULL; \
+- } \
+- \
+- if (data_obj) \
+- GET_BUFFER_VIEW_OR_ERROUT(data_obj, &view); \
+- \
+- ret_obj = EVPnew( \
+- CONST_ ## NAME ## _name_obj, \
+- NULL, \
+- CONST_new_ ## NAME ## _ctx_p, \
+- (unsigned char*)view.buf, \
+- view.len); \
+- \
+- if (data_obj) \
+- PyBuffer_Release(&view); \
+- return ret_obj; \
++ return implement_specific_EVP_new(self, args, kwdict, \
++ "|Oi:" #NAME, \
++ &cached_info_ ## NAME ); \
++ }
++
++static PyObject *
++implement_specific_EVP_new(PyObject *self, PyObject *args, PyObject *kwdict,
++ const char *format,
++ EVPCachedInfo *cached_info)
++{
++ static char *kwlist[] = {"string", "usedforsecurity", NULL};
++ PyObject *data_obj = NULL;
++ Py_buffer view = { 0 };
++ int usedforsecurity = 1;
++ int idx;
++ PyObject *ret_obj = NULL;
++
++ assert(cached_info);
++
++ if (!PyArg_ParseTupleAndKeywords(args, kwdict, format, kwlist,
++ &data_obj, &usedforsecurity)) {
++ return NULL;
++ }
++
++ if (data_obj)
++ GET_BUFFER_VIEW_OR_ERROUT(data_obj, &view);
++
++ idx = usedforsecurity ? 1 : 0;
++
++ /*
++ * If an error occurred during creation of the global content, the ctx_ptr
++ * will be NULL, and the error_msg will hopefully be non-NULL:
++ */
++ if (cached_info->ctx_ptrs[idx]) {
++ /* We successfully initialized this context; copy it: */
++ ret_obj = EVPnew(cached_info->name_obj,
++ NULL,
++ cached_info->ctx_ptrs[idx],
++ (unsigned char*)view.buf, view.len,
++ usedforsecurity);
++ } else {
++ /* Some kind of error happened initializing the global context for
++ this (digest, usedforsecurity) pair.
++ Raise an exception with the saved error message: */
++ if (cached_info->error_msgs[idx]) {
++ PyErr_SetObject(PyExc_ValueError, cached_info->error_msgs[idx]);
++ } else {
++ PyErr_SetString(PyExc_ValueError, "Error initializing hash");
++ }
+ }
+
++ if (data_obj)
++ PyBuffer_Release(&view);
++
++ return ret_obj;
++}
++
+ /* a PyMethodDef structure for the constructor */
+ #define CONSTRUCTOR_METH_DEF(NAME) \
+- {"openssl_" #NAME, (PyCFunction)EVP_new_ ## NAME, METH_VARARGS, \
++ {"openssl_" #NAME, (PyCFunction)EVP_new_ ## NAME, \
++ METH_VARARGS|METH_KEYWORDS, \
+ PyDoc_STR("Returns a " #NAME \
+ " hash object; optionally initialized with a string") \
+ }
+
+-/* used in the init function to setup a constructor: initialize OpenSSL
+- constructor constants if they haven't been initialized already. */
+-#define INIT_CONSTRUCTOR_CONSTANTS(NAME) do { \
+- if (CONST_ ## NAME ## _name_obj == NULL) { \
+- CONST_ ## NAME ## _name_obj = PyUnicode_FromString(#NAME); \
+- if (EVP_get_digestbyname(#NAME)) { \
+- CONST_new_ ## NAME ## _ctx_p = &CONST_new_ ## NAME ## _ctx; \
+- EVP_DigestInit(CONST_new_ ## NAME ## _ctx_p, EVP_get_digestbyname(#NAME)); \
+- } \
+- } \
++/*
++ Macro/function pair to set up the constructors.
++
++ Try to initialize a context for each hash twice, once with
++ EVP_MD_CTX_FLAG_NON_FIPS_ALLOW and once without.
++
++ Any that have errors during initialization will end up with a NULL ctx_ptrs
++ entry, and err_msgs will be set (unless we're very low on memory)
++*/
++#define INIT_CONSTRUCTOR_CONSTANTS(NAME) do { \
++ init_constructor_constant(&cached_info_ ## NAME, #NAME); \
+ } while (0);
++static void
++init_constructor_constant(EVPCachedInfo *cached_info, const char *name)
++{
++ assert(cached_info);
++ cached_info->name_obj = PyUnicode_FromString(name);
++ if (EVP_get_digestbyname(name)) {
++ int i;
++ for (i=0; i<2; i++) {
++ mc_ctx_init(&cached_info->ctxs[i], i);
++ if (EVP_DigestInit_ex(&cached_info->ctxs[i],
++ EVP_get_digestbyname(name), NULL)) {
++ /* Success: */
++ cached_info->ctx_ptrs[i] = &cached_info->ctxs[i];
++ } else {
++ /* Failure: */
++ cached_info->ctx_ptrs[i] = NULL;
++ cached_info->error_msgs[i] = error_msg_for_last_error();
++ }
++ }
++ }
++}
++
+
+ GEN_CONSTRUCTOR(md5)
+ GEN_CONSTRUCTOR(sha1)
+@@ -843,13 +974,10 @@
+ {
+ PyObject *m, *openssl_md_meth_names;
+
+- OpenSSL_add_all_digests();
+- ERR_load_crypto_strings();
++ SSL_load_error_strings();
++ SSL_library_init();
+
+- /* TODO build EVP_functions openssl_* entries dynamically based
+- * on what hashes are supported rather than listing many
+- * but having some be unsupported. Only init appropriate
+- * constants. */
++ OpenSSL_add_all_digests();
+
+ Py_TYPE(&EVPtype) = &PyType_Type;
+ if (PyType_Ready(&EVPtype) < 0)
diff --git a/00155-avoid-ctypes-thunks.patch b/00155-avoid-ctypes-thunks.patch
new file mode 100644
index 0000000..f03890e
--- /dev/null
+++ b/00155-avoid-ctypes-thunks.patch
@@ -0,0 +1,15 @@
+diff -up Python-3.2.3/Lib/ctypes/__init__.py.rhbz814391 Python-3.2.3/Lib/ctypes/__init__.py
+--- Python-3.2.3/Lib/ctypes/__init__.py.rhbz814391 2012-04-20 15:12:49.017867692 -0400
++++ Python-3.2.3/Lib/ctypes/__init__.py 2012-04-20 15:15:09.501111408 -0400
+@@ -275,11 +275,6 @@ def _reset_cache():
+ # _SimpleCData.c_char_p_from_param
+ POINTER(c_char).from_param = c_char_p.from_param
+ _pointer_type_cache[None] = c_void_p
+- # XXX for whatever reasons, creating the first instance of a callback
+- # function is needed for the unittests on Win64 to succeed. This MAY
+- # be a compiler bug, since the problem occurs only when _ctypes is
+- # compiled with the MS SDK compiler. Or an uninitialized variable?
+- CFUNCTYPE(c_int)(lambda: None)
+
+ def create_unicode_buffer(init, size=None):
+ """create_unicode_buffer(aString) -> character array
diff --git a/00157-uid-gid-overflows.patch b/00157-uid-gid-overflows.patch
new file mode 100644
index 0000000..43bd394
--- /dev/null
+++ b/00157-uid-gid-overflows.patch
@@ -0,0 +1,62 @@
+--- Python-3.4.0b1/Lib/test/test_os.py.orig 2013-11-27 12:07:32.368411798 +0100
++++ Python-3.4.0b1/Lib/test/test_os.py 2013-11-27 12:12:11.220265174 +0100
+@@ -1319,30 +1319,36 @@
+ def test_setuid(self):
+ if os.getuid() != 0:
+ self.assertRaises(OSError, os.setuid, 0)
++ self.assertRaises(TypeError, os.setuid, 'not an int')
+ self.assertRaises(OverflowError, os.setuid, 1<<32)
+
+ @unittest.skipUnless(hasattr(os, 'setgid'), 'test needs os.setgid()')
+ def test_setgid(self):
+ if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
+ self.assertRaises(OSError, os.setgid, 0)
++ self.assertRaises(TypeError, os.setgid, 'not an int')
+ self.assertRaises(OverflowError, os.setgid, 1<<32)
+
+ @unittest.skipUnless(hasattr(os, 'seteuid'), 'test needs os.seteuid()')
+ def test_seteuid(self):
+ if os.getuid() != 0:
+ self.assertRaises(OSError, os.seteuid, 0)
++ self.assertRaises(TypeError, os.seteuid, 'not an int')
+ self.assertRaises(OverflowError, os.seteuid, 1<<32)
+
+ @unittest.skipUnless(hasattr(os, 'setegid'), 'test needs os.setegid()')
+ def test_setegid(self):
+ if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
+ self.assertRaises(OSError, os.setegid, 0)
++ self.assertRaises(TypeError, os.setegid, 'not an int')
+ self.assertRaises(OverflowError, os.setegid, 1<<32)
+
+ @unittest.skipUnless(hasattr(os, 'setreuid'), 'test needs os.setreuid()')
+ def test_setreuid(self):
+ if os.getuid() != 0:
+ self.assertRaises(OSError, os.setreuid, 0, 0)
++ self.assertRaises(TypeError, os.setreuid, 'not an int', 0)
++ self.assertRaises(TypeError, os.setreuid, 0, 'not an int')
+ self.assertRaises(OverflowError, os.setreuid, 1<<32, 0)
+ self.assertRaises(OverflowError, os.setreuid, 0, 1<<32)
+
+@@ -1358,6 +1364,8 @@
+ def test_setregid(self):
+ if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
+ self.assertRaises(OSError, os.setregid, 0, 0)
++ self.assertRaises(TypeError, os.setregid, 'not an int', 0)
++ self.assertRaises(TypeError, os.setregid, 0, 'not an int')
+ self.assertRaises(OverflowError, os.setregid, 1<<32, 0)
+ self.assertRaises(OverflowError, os.setregid, 0, 1<<32)
+
+--- Python-3.4.0b1/Lib/test/test_pwd.py.orig 2013-11-24 21:36:55.000000000 +0100
++++ Python-3.4.0b1/Lib/test/test_pwd.py 2013-11-27 12:07:32.369411798 +0100
+@@ -89,9 +89,9 @@
+ # In some cases, byuids isn't a complete list of all users in the
+ # system, so if we try to pick a value not in byuids (via a perturbing
+ # loop, say), pwd.getpwuid() might still be able to find data for that
+- # uid. Using sys.maxint may provoke the same problems, but hopefully
++ # uid. Using 2**32 - 2 may provoke the same problems, but hopefully
+ # it will be a more repeatable failure.
+- fakeuid = sys.maxsize
++ fakeuid = 2**32 - 2
+ self.assertNotIn(fakeuid, byuids)
+ self.assertRaises(KeyError, pwd.getpwuid, fakeuid)
+
diff --git a/00160-disable-test_fs_holes-in-rpm-build.patch b/00160-disable-test_fs_holes-in-rpm-build.patch
new file mode 100644
index 0000000..9fa91d5
--- /dev/null
+++ b/00160-disable-test_fs_holes-in-rpm-build.patch
@@ -0,0 +1,11 @@
+diff -up cpython-59223da36dec/Lib/test/test_posix.py.disable-test_fs_holes-in-rpm-build cpython-59223da36dec/Lib/test/test_posix.py
+--- cpython-59223da36dec/Lib/test/test_posix.py.disable-test_fs_holes-in-rpm-build 2012-08-07 17:15:59.000000000 -0400
++++ cpython-59223da36dec/Lib/test/test_posix.py 2012-08-07 17:16:53.528330330 -0400
+@@ -973,6 +973,7 @@ class PosixTester(unittest.TestCase):
+ posix.RTLD_GLOBAL
+ posix.RTLD_LOCAL
+
++ @unittest._skipInRpmBuild('running kernel may not match kernel in chroot')
+ @unittest.skipUnless(hasattr(os, 'SEEK_HOLE'),
+ "test needs an OS that reports file holes")
+ def test_fs_holes(self):
diff --git a/00163-disable-parts-of-test_socket-in-rpm-build.patch b/00163-disable-parts-of-test_socket-in-rpm-build.patch
new file mode 100644
index 0000000..0e28036
--- /dev/null
+++ b/00163-disable-parts-of-test_socket-in-rpm-build.patch
@@ -0,0 +1,11 @@
+diff -up Python-3.3.0b1/Lib/test/test_socket.py.disable-test_socket-in-rpm-builds Python-3.3.0b1/Lib/test/test_socket.py
+--- Python-3.3.0b1/Lib/test/test_socket.py.disable-test_socket-in-rpm-builds 2012-07-24 15:02:30.823355067 -0400
++++ Python-3.3.0b1/Lib/test/test_socket.py 2012-07-24 15:08:13.021354999 -0400
+@@ -2188,6 +2188,7 @@ class RecvmsgGenericStreamTests(RecvmsgG
+ # Tests which require a stream socket and can use either recvmsg()
+ # or recvmsg_into().
+
++ @unittest._skipInRpmBuild('fails intermittently when run within Koji')
+ def testRecvmsgEOF(self):
+ # Receive end-of-stream indicator (b"", peer socket closed).
+ msg, ancdata, flags, addr = self.doRecvmsg(self.serv_sock, 1024)
diff --git a/00170-gc-assertions.patch b/00170-gc-assertions.patch
new file mode 100644
index 0000000..9e34c21
--- /dev/null
+++ b/00170-gc-assertions.patch
@@ -0,0 +1,326 @@
+Index: Include/object.h
+===================================================================
+--- Include/object.h (revision 87911)
++++ Include/object.h (working copy)
+@@ -914,6 +914,49 @@
+ _PyObject_DebugTypeStats(FILE *out);
+ #endif /* ifndef Py_LIMITED_API */
+
++/*
++ Define a pair of assertion macros.
++
++ These work like the regular C assert(), in that they will abort the
++ process with a message on stderr if the given condition fails to hold,
++ but compile away to nothing if NDEBUG is defined.
++
++ However, before aborting, Python will also try to call _PyObject_Dump() on
++ the given object. This may be of use when investigating bugs in which a
++ particular object is corrupt (e.g. buggy a tp_visit method in an extension
++ module breaking the garbage collector), to help locate the broken objects.
++
++ The WITH_MSG variant allows you to supply an additional message that Python
++ will attempt to print to stderr, after the object dump.
++*/
++#ifdef NDEBUG
++/* No debugging: compile away the assertions: */
++#define PyObject_ASSERT_WITH_MSG(obj, expr, msg) ((void)0)
++#else
++/* With debugging: generate checks: */
++#define PyObject_ASSERT_WITH_MSG(obj, expr, msg) \
++ ((expr) \
++ ? (void)(0) \
++ : _PyObject_AssertFailed((obj), \
++ (msg), \
++ (__STRING(expr)), \
++ (__FILE__), \
++ (__LINE__), \
++ (__PRETTY_FUNCTION__)))
++#endif
++
++#define PyObject_ASSERT(obj, expr) \
++ PyObject_ASSERT_WITH_MSG(obj, expr, NULL)
++
++/*
++ Declare and define the entrypoint even when NDEBUG is defined, to avoid
++ causing compiler/linker errors when building extensions without NDEBUG
++ against a Python built with NDEBUG defined
++*/
++PyAPI_FUNC(void) _PyObject_AssertFailed(PyObject *, const char *,
++ const char *, const char *, int,
++ const char *);
++
+ #ifdef __cplusplus
+ }
+ #endif
+Index: Objects/object.c
+===================================================================
+--- Objects/object.c (revision 87911)
++++ Objects/object.c (working copy)
+@@ -1899,6 +1899,35 @@
+ }
+ }
+
++PyAPI_FUNC(void)
++_PyObject_AssertFailed(PyObject *obj, const char *msg, const char *expr,
++ const char *file, int line, const char *function)
++{
++ fprintf(stderr,
++ "%s:%d: %s: Assertion \"%s\" failed.\n",
++ file, line, function, expr);
++ if (msg) {
++ fprintf(stderr, "%s\n", msg);
++ }
++
++ fflush(stderr);
++
++ if (obj) {
++ /* This might succeed or fail, but we're about to abort, so at least
++ try to provide any extra info we can: */
++ _PyObject_Dump(obj);
++ }
++ else {
++ fprintf(stderr, "NULL object\n");
++ }
++
++ fflush(stdout);
++ fflush(stderr);
++
++ /* Terminate the process: */
++ abort();
++}
++
+ #ifndef Py_TRACE_REFS
+ /* For Py_LIMITED_API, we need an out-of-line version of _Py_Dealloc.
+ Define this here, so we can undefine the macro. */
+Index: Lib/test/test_gc.py
+===================================================================
+--- Lib/test/test_gc.py (revision 87911)
++++ Lib/test/test_gc.py (working copy)
+@@ -1,7 +1,7 @@
+ import unittest
+ from test.support import (verbose, refcount_test, run_unittest,
+ strip_python_stderr, cpython_only, start_threads,
+- temp_dir)
++ temp_dir, import_module)
+ from test.support.script_helper import assert_python_ok, make_script
+
+ import sys
+@@ -512,6 +512,48 @@
+ self.assertEqual(len(gc.garbage), 0)
+
+
++ def test_refcount_errors(self):
++ self.preclean()
++ # Verify the "handling" of objects with broken refcounts
++ import_module("ctypes") #skip if not supported
++
++ import subprocess
++ code = '''if 1:
++ a = []
++ b = [a]
++
++ # Simulate the refcount of "a" being too low (compared to the
++ # references held on it by live data), but keeping it above zero
++ # (to avoid deallocating it):
++ import ctypes
++ ctypes.pythonapi.Py_DecRef(ctypes.py_object(a))
++
++ # The garbage collector should now have a fatal error when it reaches
++ # the broken object:
++ import gc
++ gc.collect()
++ '''
++ p = subprocess.Popen([sys.executable, "-c", code],
++ stdout=subprocess.PIPE,
++ stderr=subprocess.PIPE)
++ stdout, stderr = p.communicate()
++ p.stdout.close()
++ p.stderr.close()
++ # Verify that stderr has a useful error message:
++ self.assertRegex(stderr,
++ b'Modules/gcmodule.c:[0-9]+: visit_decref: Assertion "\(\(gc\)->gc.gc_refs >> \(1\)\) != 0" failed.')
++ self.assertRegex(stderr,
++ b'refcount was too small')
++ self.assertRegex(stderr,
++ b'object : \[\]')
++ self.assertRegex(stderr,
++ b'type : list')
++ self.assertRegex(stderr,
++ b'refcount: 1')
++ self.assertRegex(stderr,
++ b'address : 0x[0-9a-f]+')
++
++
+ class GCTogglingTests(unittest.TestCase):
+ def setUp(self):
+ gc.enable()
+diff -up Modules/gcmodule.c.orig2 Modules/gcmodule.c
+--- Modules/gcmodule.c.orig2 2014-12-08 10:54:14.251742911 +0100
++++ Modules/gcmodule.c 2014-12-08 10:52:45.674771917 +0100
+@@ -341,7 +341,8 @@ update_refs(PyGC_Head *containers)
+ {
+ PyGC_Head *gc = containers->gc.gc_next;
+ for (; gc != containers; gc = gc->gc.gc_next) {
+- assert(_PyGCHead_REFS(gc) == GC_REACHABLE);
++ PyObject_ASSERT(FROM_GC(gc),
++ _PyGCHead_REFS(gc) == GC_REACHABLE);
+ _PyGCHead_SET_REFS(gc, Py_REFCNT(FROM_GC(gc)));
+ /* Python's cyclic gc should never see an incoming refcount
+ * of 0: if something decref'ed to 0, it should have been
+@@ -361,7 +362,8 @@ update_refs(PyGC_Head *containers)
+ * so serious that maybe this should be a release-build
+ * check instead of an assert?
+ */
+- assert(_PyGCHead_REFS(gc) != 0);
++ PyObject_ASSERT(FROM_GC(gc),
++ _PyGCHead_REFS(gc) != 0);
+ }
+ }
+
+@@ -376,7 +378,9 @@ visit_decref(PyObject *op, void *data)
+ * generation being collected, which can be recognized
+ * because only they have positive gc_refs.
+ */
+- assert(_PyGCHead_REFS(gc) != 0); /* else refcount was too small */
++ PyObject_ASSERT_WITH_MSG(FROM_GC(gc),
++ _PyGCHead_REFS(gc) != 0,
++ "refcount was too small"); /* else refcount was too small */
+ if (_PyGCHead_REFS(gc) > 0)
+ _PyGCHead_DECREF(gc);
+ }
+@@ -436,9 +440,10 @@ visit_reachable(PyObject *op, PyGC_Head
+ * If gc_refs == GC_UNTRACKED, it must be ignored.
+ */
+ else {
+- assert(gc_refs > 0
+- || gc_refs == GC_REACHABLE
+- || gc_refs == GC_UNTRACKED);
++ PyObject_ASSERT(FROM_GC(gc),
++ gc_refs > 0
++ || gc_refs == GC_REACHABLE
++ || gc_refs == GC_UNTRACKED);
+ }
+ }
+ return 0;
+@@ -480,7 +485,7 @@ move_unreachable(PyGC_Head *young, PyGC_
+ */
+ PyObject *op = FROM_GC(gc);
+ traverseproc traverse = Py_TYPE(op)->tp_traverse;
+- assert(_PyGCHead_REFS(gc) > 0);
++ PyObject_ASSERT(op, _PyGCHead_REFS(gc) > 0);
+ _PyGCHead_SET_REFS(gc, GC_REACHABLE);
+ (void) traverse(op,
+ (visitproc)visit_reachable,
+@@ -543,7 +548,7 @@ move_legacy_finalizers(PyGC_Head *unreac
+ for (gc = unreachable->gc.gc_next; gc != unreachable; gc = next) {
+ PyObject *op = FROM_GC(gc);
+
+- assert(IS_TENTATIVELY_UNREACHABLE(op));
++ PyObject_ASSERT(op, IS_TENTATIVELY_UNREACHABLE(op));
+ next = gc->gc.gc_next;
+
+ if (has_legacy_finalizer(op)) {
+@@ -619,7 +624,7 @@ handle_weakrefs(PyGC_Head *unreachable,
+ PyWeakReference **wrlist;
+
+ op = FROM_GC(gc);
+- assert(IS_TENTATIVELY_UNREACHABLE(op));
++ PyObject_ASSERT(op, IS_TENTATIVELY_UNREACHABLE(op));
+ next = gc->gc.gc_next;
+
+ if (! PyType_SUPPORTS_WEAKREFS(Py_TYPE(op)))
+@@ -640,9 +645,9 @@ handle_weakrefs(PyGC_Head *unreachable,
+ * the callback pointer intact. Obscure: it also
+ * changes *wrlist.
+ */
+- assert(wr->wr_object == op);
++ PyObject_ASSERT(wr->wr_object, wr->wr_object == op);
+ _PyWeakref_ClearRef(wr);
+- assert(wr->wr_object == Py_None);
++ PyObject_ASSERT(wr->wr_object, wr->wr_object == Py_None);
+ if (wr->wr_callback == NULL)
+ continue; /* no callback */
+
+@@ -676,7 +681,7 @@ handle_weakrefs(PyGC_Head *unreachable,
+ */
+ if (IS_TENTATIVELY_UNREACHABLE(wr))
+ continue;
+- assert(IS_REACHABLE(wr));
++ PyObject_ASSERT(op, IS_REACHABLE(wr));
+
+ /* Create a new reference so that wr can't go away
+ * before we can process it again.
+@@ -685,7 +690,8 @@ handle_weakrefs(PyGC_Head *unreachable,
+
+ /* Move wr to wrcb_to_call, for the next pass. */
+ wrasgc = AS_GC(wr);
+- assert(wrasgc != next); /* wrasgc is reachable, but
++ PyObject_ASSERT(op, wrasgc != next);
++ /* wrasgc is reachable, but
+ next isn't, so they can't
+ be the same */
+ gc_list_move(wrasgc, &wrcb_to_call);
+@@ -701,11 +707,11 @@ handle_weakrefs(PyGC_Head *unreachable,
+
+ gc = wrcb_to_call.gc.gc_next;
+ op = FROM_GC(gc);
+- assert(IS_REACHABLE(op));
+- assert(PyWeakref_Check(op));
++ PyObject_ASSERT(op, IS_REACHABLE(op));
++ PyObject_ASSERT(op, PyWeakref_Check(op));
+ wr = (PyWeakReference *)op;
+ callback = wr->wr_callback;
+- assert(callback != NULL);
++ PyObject_ASSERT(op, callback != NULL);
+
+ /* copy-paste of weakrefobject.c's handle_callback() */
+ temp = PyObject_CallFunctionObjArgs(callback, wr, NULL);
+@@ -822,12 +828,14 @@ check_garbage(PyGC_Head *collectable)
+ for (gc = collectable->gc.gc_next; gc != collectable;
+ gc = gc->gc.gc_next) {
+ _PyGCHead_SET_REFS(gc, Py_REFCNT(FROM_GC(gc)));
+- assert(_PyGCHead_REFS(gc) != 0);
++ PyObject_ASSERT(FROM_GC(gc),
++ _PyGCHead_REFS(gc) != 0);
+ }
+ subtract_refs(collectable);
+ for (gc = collectable->gc.gc_next; gc != collectable;
+ gc = gc->gc.gc_next) {
+- assert(_PyGCHead_REFS(gc) >= 0);
++ PyObject_ASSERT(FROM_GC(gc),
++ _PyGCHead_REFS(gc) >= 0);
+ if (_PyGCHead_REFS(gc) != 0)
+ return -1;
+ }
+diff -up Lib/test/test_gc.py.old Lib/test/test_gc.py
+--- Lib/test/test_gc.py.old 2014-12-10 11:19:33.503982288 +0100
++++ Lib/test/test_gc.py 2014-12-10 11:21:13.220021364 +0100
+@@ -49,6 +49,8 @@ class GC_Detector(object):
+ # gc collects it.
+ self.wr = weakref.ref(C1055820(666), it_happened)
+
++BUILD_WITH_NDEBUG = ('-DNDEBUG' in sysconfig.get_config_vars()['PY_CFLAGS'])
++
+ @with_tp_del
+ class Uncollectable(object):
+ """Create a reference cycle with multiple __del__ methods.
+@@ -854,6 +856,8 @@ class GCCallbackTests(unittest.TestCase)
+ self.assertEqual(len(gc.garbage), 0)
+
+
++ @unittest.skipIf(BUILD_WITH_NDEBUG,
++ 'built with -NDEBUG')
+ def test_refcount_errors(self):
+ self.preclean()
+ # Verify the "handling" of objects with broken refcounts
+diff -up Lib/test/test_gc.py.old Lib/test/test_gc.py
+--- Lib/test/test_gc.py.old 2014-12-10 12:50:58.252121318 +0100
++++ Lib/test/test_gc.py 2014-12-10 12:51:08.594266653 +0100
+@@ -4,6 +4,7 @@ from test.support import (verbose, refco
+ from test.support.script_helper import assert_python_ok, make_script
+
+ import sys
++import sysconfig
+ import time
+ import gc
+ import weakref
diff --git a/00178-dont-duplicate-flags-in-sysconfig.patch b/00178-dont-duplicate-flags-in-sysconfig.patch
new file mode 100644
index 0000000..fc49b30
--- /dev/null
+++ b/00178-dont-duplicate-flags-in-sysconfig.patch
@@ -0,0 +1,30 @@
+diff -r 39b9b05c3085 Lib/distutils/sysconfig.py
+--- a/Lib/distutils/sysconfig.py Wed Apr 10 00:27:23 2013 +0200
++++ b/Lib/distutils/sysconfig.py Wed Apr 10 10:14:18 2013 +0200
+@@ -362,7 +362,10 @@
+ done[n] = item = ""
+ if found:
+ after = value[m.end():]
+- value = value[:m.start()] + item + after
++ value = value[:m.start()]
++ if item.strip() not in value:
++ value += item
++ value += after
+ if "$" in after:
+ notdone[name] = value
+ else:
+diff -r 39b9b05c3085 Lib/sysconfig.py
+--- a/Lib/sysconfig.py Wed Apr 10 00:27:23 2013 +0200
++++ b/Lib/sysconfig.py Wed Apr 10 10:14:18 2013 +0200
+@@ -296,7 +296,10 @@
+
+ if found:
+ after = value[m.end():]
+- value = value[:m.start()] + item + after
++ value = value[:m.start()]
++ if item.strip() not in value:
++ value += item
++ value += after
+ if "$" in after:
+ notdone[name] = value
+ else:
diff --git a/00180-python-add-support-for-ppc64p7.patch b/00180-python-add-support-for-ppc64p7.patch
new file mode 100644
index 0000000..022944a
--- /dev/null
+++ b/00180-python-add-support-for-ppc64p7.patch
@@ -0,0 +1,12 @@
+diff -r de35eae9048a config.sub
+--- a/config.sub Wed Apr 24 23:33:20 2013 +0200
++++ b/config.sub Thu Apr 25 08:51:00 2013 +0200
+@@ -1008,7 +1008,7 @@
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
diff --git a/00184-ctypes-should-build-with-libffi-multilib-wrapper.patch b/00184-ctypes-should-build-with-libffi-multilib-wrapper.patch
new file mode 100644
index 0000000..e224fc6
--- /dev/null
+++ b/00184-ctypes-should-build-with-libffi-multilib-wrapper.patch
@@ -0,0 +1,12 @@
+--- Python-3.3.2/setup.py.orig 2013-07-01 15:23:24.377711044 +0200
++++ Python-3.3.2/setup.py 2013-07-01 15:23:34.094676496 +0200
+@@ -1882,7 +1882,8 @@
+ if not line:
+ ffi_inc = None
+ break
+- if line.startswith('#define LIBFFI_H'):
++ if line.startswith('#define LIBFFI_H') or \
++ line.startswith('#define ffi_wrapper_h'):
+ break
+ ffi_lib = None
+ if ffi_inc is not None:
diff --git a/00186-dont-raise-from-py_compile.patch b/00186-dont-raise-from-py_compile.patch
new file mode 100644
index 0000000..25c4a9d
--- /dev/null
+++ b/00186-dont-raise-from-py_compile.patch
@@ -0,0 +1,14 @@
+diff -r 7fa3e824a4ee Lib/test/test_py_compile.py
+--- a/Lib/test/test_py_compile.py Tue Oct 29 22:25:06 2013 -0400
++++ b/Lib/test/test_py_compile.py Wed Oct 30 11:08:31 2013 +0100
+@@ -54,6 +54,10 @@
+ self.assertTrue(os.path.exists(self.pyc_path))
+ self.assertFalse(os.path.exists(self.cache_path))
+
++ def test_bad_coding(self):
++ bad_coding = os.path.join(os.path.dirname(__file__), 'bad_coding2.py')
++ self.assertIsNone(py_compile.compile(bad_coding, doraise=False))
++
+ def test_relative_path(self):
+ py_compile.compile(os.path.relpath(self.source_path),
+ os.path.relpath(self.pyc_path))
diff --git a/00188-fix-lib2to3-tests-when-hashlib-doesnt-compile-properly.patch b/00188-fix-lib2to3-tests-when-hashlib-doesnt-compile-properly.patch
new file mode 100644
index 0000000..90af30d
--- /dev/null
+++ b/00188-fix-lib2to3-tests-when-hashlib-doesnt-compile-properly.patch
@@ -0,0 +1,11 @@
+diff -r 28c04e954bb6 Lib/lib2to3/main.py
+--- a/Lib/lib2to3/main.py Tue Oct 29 22:25:55 2013 -0400
++++ b/Lib/lib2to3/main.py Wed Nov 06 14:33:07 2013 +0100
+@@ -213,6 +213,7 @@
+
+ # Set up logging handler
+ level = logging.DEBUG if options.verbose else logging.INFO
++ logging.root.handlers = []
+ logging.basicConfig(format='%(name)s: %(message)s', level=level)
+ logger = logging.getLogger('lib2to3.main')
+
diff --git a/00189-add-rewheel-module.patch b/00189-add-rewheel-module.patch
new file mode 100644
index 0000000..5d514be
--- /dev/null
+++ b/00189-add-rewheel-module.patch
@@ -0,0 +1,232 @@
+diff -Nur Python-3.4.1/Lib/ensurepip/__init__.py Python-3.4.1-rewheel/Lib/ensurepip/__init__.py
+--- Python-3.4.1/Lib/ensurepip/__init__.py 2014-08-21 10:49:30.792695824 +0200
++++ Python-3.4.1-rewheel/Lib/ensurepip/__init__.py 2014-08-21 10:10:41.958341726 +0200
+@@ -1,8 +1,10 @@
+ import os
+ import os.path
+ import pkgutil
++import shutil
+ import sys
+ import tempfile
++from ensurepip import rewheel
+
+
+ __all__ = ["version", "bootstrap"]
+@@ -38,6 +40,8 @@
+
+ # Install the bundled software
+ import pip
++ if args[0] in ["install", "list", "wheel"]:
++ args.append('--pre')
+ pip.main(args)
+
+
+@@ -87,20 +91,39 @@
+ # omit pip and easy_install
+ os.environ["ENSUREPIP_OPTIONS"] = "install"
+
++ whls = []
++ rewheel_dir = None
++ # try to see if we have system-wide versions of _PROJECTS
++ dep_records = rewheel.find_system_records([p[0] for p in _PROJECTS])
++ # TODO: check if system-wide versions are the newest ones
++ # if --upgrade is used?
++ if all(dep_records):
++ # if we have all _PROJECTS installed system-wide, we'll recreate
++ # wheels from them and install those
++ rewheel_dir = tempfile.TemporaryDirectory()
++ for dr in dep_records:
++ new_whl = rewheel.rewheel_from_record(dr, rewheel_dir.name)
++ whls.append(os.path.join(rewheel_dir.name, new_whl))
++ else:
++ # if we don't have all the _PROJECTS installed system-wide,
++ # let's just fall back to bundled wheels
++ for project, version in _PROJECTS:
++ whl = os.path.join(
++ os.path.dirname(__file__),
++ "_bundled",
++ "{}-{}-py2.py3-none-any.whl".format(project, version)
++ )
++ whls.append(whl)
++
+ with tempfile.TemporaryDirectory() as tmpdir:
+ # Put our bundled wheels into a temporary directory and construct the
+ # additional paths that need added to sys.path
+ additional_paths = []
+- for project, version in _PROJECTS:
+- wheel_name = "{}-{}-py2.py3-none-any.whl".format(project, version)
+- whl = pkgutil.get_data(
+- "ensurepip",
+- "_bundled/{}".format(wheel_name),
+- )
+- with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
+- fp.write(whl)
+-
+- additional_paths.append(os.path.join(tmpdir, wheel_name))
++ for whl in whls:
++ shutil.copy(whl, tmpdir)
++ additional_paths.append(os.path.join(tmpdir, os.path.basename(whl)))
++ if rewheel_dir:
++ rewheel_dir.cleanup()
+
+ # Construct the arguments to be passed to the pip command
+ args = ["install", "--no-index", "--find-links", tmpdir]
+diff -Nur Python-3.4.1/Lib/ensurepip/rewheel/__init__.py Python-3.4.1-rewheel/Lib/ensurepip/rewheel/__init__.py
+--- Python-3.4.1/Lib/ensurepip/rewheel/__init__.py 1970-01-01 01:00:00.000000000 +0100
++++ Python-3.4.1-rewheel/Lib/ensurepip/rewheel/__init__.py 2014-08-21 10:11:22.560320121 +0200
+@@ -0,0 +1,143 @@
++import argparse
++import codecs
++import csv
++import email.parser
++import os
++import io
++import re
++import site
++import subprocess
++import sys
++import zipfile
++
++def run():
++ parser = argparse.ArgumentParser(description='Recreate wheel of package with given RECORD.')
++ parser.add_argument('record_path',
++ help='Path to RECORD file')
++ parser.add_argument('-o', '--output-dir',
++ help='Dir where to place the wheel, defaults to current working dir.',
++ dest='outdir',
++ default=os.path.curdir)
++
++ ns = parser.parse_args()
++ retcode = 0
++ try:
++ print(rewheel_from_record(**vars(ns)))
++ except BaseException as e:
++ print('Failed: {}'.format(e))
++ retcode = 1
++ sys.exit(1)
++
++def find_system_records(projects):
++ """Return list of paths to RECORD files for system-installed projects.
++
++ If a project is not installed, the resulting list contains None instead
++ of a path to its RECORD
++ """
++ records = []
++ # get system site-packages dirs
++ sys_sitepack = site.getsitepackages([sys.base_prefix, sys.base_exec_prefix])
++ sys_sitepack = [sp for sp in sys_sitepack if os.path.exists(sp)]
++ # try to find all projects in all system site-packages
++ for project in projects:
++ path = None
++ for sp in sys_sitepack:
++ dist_info_re = os.path.join(sp, project) + '-[^\{0}]+\.dist-info'.format(os.sep)
++ candidates = [os.path.join(sp, p) for p in os.listdir(sp)]
++ # filter out candidate dirs based on the above regexp
++ filtered = [c for c in candidates if re.match(dist_info_re, c)]
++ # if we have 0 or 2 or more dirs, something is wrong...
++ if len(filtered) == 1:
++ path = filtered[0]
++ if path is not None:
++ records.append(os.path.join(path, 'RECORD'))
++ else:
++ records.append(None)
++ return records
++
++def rewheel_from_record(record_path, outdir):
++ """Recreates a whee of package with given record_path and returns path
++ to the newly created wheel."""
++ site_dir = os.path.dirname(os.path.dirname(record_path))
++ record_relpath = record_path[len(site_dir):].strip(os.path.sep)
++ to_write, to_omit = get_records_to_pack(site_dir, record_relpath)
++ new_wheel_name = get_wheel_name(record_path)
++ new_wheel_path = os.path.join(outdir, new_wheel_name + '.whl')
++
++ new_wheel = zipfile.ZipFile(new_wheel_path, mode='w', compression=zipfile.ZIP_DEFLATED)
++ # we need to write a new record with just the files that we will write,
++ # e.g. not binaries and *.pyc/*.pyo files
++ new_record = io.StringIO()
++ writer = csv.writer(new_record)
++
++ # handle files that we can write straight away
++ for f, sha_hash, size in to_write:
++ new_wheel.write(os.path.join(site_dir, f), arcname=f)
++ writer.writerow([f, sha_hash,size])
++
++ # rewrite the old wheel file with a new computed one
++ writer.writerow([record_relpath, '', ''])
++ new_wheel.writestr(record_relpath, new_record.getvalue())
++
++ new_wheel.close()
++
++ return new_wheel.filename
++
++def get_wheel_name(record_path):
++ """Return proper name of the wheel, without .whl."""
++
++ wheel_info_path = os.path.join(os.path.dirname(record_path), 'WHEEL')
++ with codecs.open(wheel_info_path, encoding='utf-8') as wheel_info_file:
++ wheel_info = email.parser.Parser().parsestr(wheel_info_file.read())
++
++ metadata_path = os.path.join(os.path.dirname(record_path), 'METADATA')
++ with codecs.open(metadata_path, encoding='utf-8') as metadata_file:
++ metadata = email.parser.Parser().parsestr(metadata_file.read())
++
++ # construct name parts according to wheel spec
++ distribution = metadata.get('Name')
++ version = metadata.get('Version')
++ build_tag = '' # nothing for now
++ lang_tag = []
++ for t in wheel_info.get_all('Tag'):
++ lang_tag.append(t.split('-')[0])
++ lang_tag = '.'.join(lang_tag)
++ abi_tag, plat_tag = wheel_info.get('Tag').split('-')[1:3]
++ # leave out build tag, if it is empty
++ to_join = filter(None, [distribution, version, build_tag, lang_tag, abi_tag, plat_tag])
++ return '-'.join(list(to_join))
++
++def get_records_to_pack(site_dir, record_relpath):
++ """Accepts path of sitedir and path of RECORD file relative to it.
++ Returns two lists:
++ - list of files that can be written to new RECORD straight away
++ - list of files that shouldn't be written or need some processing
++ (pyc and pyo files, scripts)
++ """
++ record_file_path = os.path.join(site_dir, record_relpath)
++ with codecs.open(record_file_path, encoding='utf-8') as record_file:
++ record_contents = record_file.read()
++ # temporary fix for https://github.com/pypa/pip/issues/1376
++ # we need to ignore files under ".data" directory
++ data_dir = os.path.dirname(record_relpath).strip(os.path.sep)
++ data_dir = data_dir[:-len('dist-info')] + 'data'
++
++ to_write = []
++ to_omit = []
++ for l in record_contents.splitlines():
++ spl = l.split(',')
++ if len(spl) == 3:
++ # new record will omit (or write differently):
++ # - abs paths, paths with ".." (entry points),
++ # - pyc+pyo files
++ # - the old RECORD file
++ # TODO: is there any better way to recognize an entry point?
++ if os.path.isabs(spl[0]) or spl[0].startswith('..') or \
++ spl[0].endswith('.pyc') or spl[0].endswith('.pyo') or \
++ spl[0] == record_relpath or spl[0].startswith(data_dir):
++ to_omit.append(spl)
++ else:
++ to_write.append(spl)
++ else:
++ pass # bad RECORD or empty line
++ return to_write, to_omit
+diff -Nur Python-3.4.1/Makefile.pre.in Python-3.4.1-rewheel/Makefile.pre.in
+--- Python-3.4.1/Makefile.pre.in 2014-08-21 10:49:31.512695040 +0200
++++ Python-3.4.1-rewheel/Makefile.pre.in 2014-08-21 10:10:41.961341722 +0200
+@@ -1145,7 +1145,7 @@
+ test/test_asyncio \
+ collections concurrent concurrent/futures encodings \
+ email email/mime test/test_email test/test_email/data \
+- ensurepip ensurepip/_bundled \
++ ensurepip ensurepip/_bundled ensurepip/rewheel \
+ html json test/test_json http dbm xmlrpc \
+ sqlite3 sqlite3/test \
+ logging csv wsgiref urllib \
diff --git a/00196-test-gdb-match-addr-before-builtin.patch b/00196-test-gdb-match-addr-before-builtin.patch
new file mode 100644
index 0000000..dc40c82
--- /dev/null
+++ b/00196-test-gdb-match-addr-before-builtin.patch
@@ -0,0 +1,30 @@
+Subject: python3.test gdb match addr before builtin
+From: Michel Normand <normand(a)linux.vnet.ibm.com>
+
+For ppc64le archi and python3... and gdb... versions
+the test_gdb.py need a change of re.match to handle address before the builtin_id word.
+Of course there is no error if this substring is not present.
+===
+...
+#0 0x00003fffb7dd0898 in builtin_id (self=<module at remote 0x3fffb7901440>, v=<unknown at remote 0x3fffb7f68910>) at /builddir/build/BUILD/Python-3.3.2/Python/bltinmodule.c:966
+....xxxxxxxxxxxxxxxxxxxxxx <= added regexp
+===
+
+Signed-off-by: Michel Normand <normand(a)linux.vnet.ibm.com>
+---
+ Lib/test/test_gdb.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: Python-3.3.2/Lib/test/test_gdb.py
+===================================================================
+--- Python-3.3.2.orig/Lib/test/test_gdb.py
++++ Python-3.3.2/Lib/test/test_gdb.py
+@@ -230,7 +230,7 @@ class DebuggerTests(unittest.TestCase):
+ # gdb can insert additional '\n' and space characters in various places
+ # in its output, depending on the width of the terminal it's connected
+ # to (using its "wrap_here" function)
+- m = re.match('.*#0\s+builtin_id\s+\(self\=.*,\s+v=\s*(.*?)\)\s+at\s+\S*Python/bltinmodule.c.*',
++ m = re.match('.*#0\s+(?: 0x[0-9a-f]+\s+in\s+)?builtin_id\s+\(self\=.*,\s+v=\s*(.*?)\)\s+at\s+\S*Python/bltinmodule.c.*',
+ gdb_output, re.DOTALL)
+ if not m:
+ self.fail('Unexpected gdb output: %r\n%s' % (gdb_output, gdb_output))
diff --git a/00200-gettext-plural-fix.patch b/00200-gettext-plural-fix.patch
new file mode 100644
index 0000000..93b817b
--- /dev/null
+++ b/00200-gettext-plural-fix.patch
@@ -0,0 +1,12 @@
+diff -up Python-2.5.1/Lib/gettext.py.plural Python-2.5.1/Lib/gettext.py
+--- Python-2.5.1/Lib/gettext.py.plural 2007-09-10 11:38:57.000000000 -0400
++++ Python-2.5.1/Lib/gettext.py 2007-09-10 11:39:00.000000000 -0400
+@@ -299,6 +299,8 @@ class GNUTranslations(NullTranslations):
+ item = b_item.decode().strip()
+ if not item:
+ continue
++ if item.startswith("#"):
++ continue
+ if ':' in item:
+ k, v = item.split(':', 1)
+ k = k.strip().lower()
diff --git a/00201-fix-memory-leak-in-gdbm.patch b/00201-fix-memory-leak-in-gdbm.patch
new file mode 100644
index 0000000..48839d5
--- /dev/null
+++ b/00201-fix-memory-leak-in-gdbm.patch
@@ -0,0 +1,10 @@
+--- Modules/_gdbmmodule.c.orig 2013-07-08 14:54:27.803790151 +0200
++++ Modules/_gdbmmodule.c 2013-07-08 14:55:25.006672443 +0200
+@@ -106,6 +106,7 @@
+ if(okey.dsize) free(okey.dptr);
+ okey=key;
+ }
++ if(okey.dsize) free(okey.dptr);
+ dp->di_size = size;
+ }
+ return dp->di_size;
diff --git a/00203-disable-threading-test-koji.patch b/00203-disable-threading-test-koji.patch
new file mode 100644
index 0000000..70010fb
--- /dev/null
+++ b/00203-disable-threading-test-koji.patch
@@ -0,0 +1,11 @@
+diff -up Python-3.4.3/Lib/test/test_threading.py.mstuchli Python-3.4.3/Lib/test/test_threading.py
+--- Python-3.4.3/Lib/test/test_threading.py.mstuchli 2015-03-10 10:00:42.917355215 +0100
++++ Python-3.4.3/Lib/test/test_threading.py 2015-03-10 10:00:47.735373842 +0100
+@@ -988,6 +988,7 @@ class ThreadingExceptionTests(BaseTestCa
+ self.assertIn("ZeroDivisionError", err)
+ self.assertNotIn("Unhandled exception", err)
+
++ @unittest.skip('Fails in Koji due to mishandled signals')
+ def test_print_exception_stderr_is_none_1(self):
+ script = r"""if True:
+ import sys
diff --git a/00205-make-libpl-respect-lib64.patch b/00205-make-libpl-respect-lib64.patch
new file mode 100644
index 0000000..4a6703b
--- /dev/null
+++ b/00205-make-libpl-respect-lib64.patch
@@ -0,0 +1,12 @@
+diff -up Python-3.5.0/Makefile.pre.in.lib Python-3.5.0/Makefile.pre.in
+--- Python-3.5.0/Makefile.pre.in.lib 2015-09-21 15:39:47.928286620 +0200
++++ Python-3.5.0/Makefile.pre.in 2015-09-21 15:42:58.004042762 +0200
+@@ -1340,7 +1340,7 @@ inclinstall:
+
+ # Install the library and miscellaneous stuff needed for extending/embedding
+ # This goes into $(exec_prefix)
+-LIBPL= @LIBPL@
++LIBPL= $(LIBDEST)/config-$(LDVERSION)
+
+ # pkgconfig directory
+ LIBPC= $(LIBDIR)/pkgconfig
diff --git a/00206-remove-hf-from-arm-triplet.patch b/00206-remove-hf-from-arm-triplet.patch
new file mode 100644
index 0000000..c5f309c
--- /dev/null
+++ b/00206-remove-hf-from-arm-triplet.patch
@@ -0,0 +1,15 @@
+diff -up Python-3.5.0/configure.ac.eabi Python-3.5.0/configure.ac
+--- Python-3.5.0/configure.eabi 2015-09-23 13:52:20.756909744 +0200
++++ Python-3.5.0/configure 2015-09-23 13:52:46.859163629 +0200
+@@ -762,9 +762,9 @@ cat >> conftest.c <<EOF
+ alpha-linux-gnu
+ # elif defined(__ARM_EABI__) && defined(__ARM_PCS_VFP)
+ # if defined(__ARMEL__)
+- arm-linux-gnueabihf
++ arm-linux-gnueabi
+ # else
+- armeb-linux-gnueabihf
++ armeb-linux-gnueabi
+ # endif
+ # elif defined(__ARM_EABI__) && !defined(__ARM_PCS_VFP)
+ # if defined(__ARMEL__)
diff --git a/00207-math-once.patch b/00207-math-once.patch
new file mode 100644
index 0000000..572ed59
--- /dev/null
+++ b/00207-math-once.patch
@@ -0,0 +1,56 @@
+--- Python-3.5.1/Makefile.pre.in.kh 2015-12-17 05:51:08.466546157 -0500
++++ Python-3.5.1/Makefile.pre.in 2015-12-17 05:52:26.207761635 -0500
+@@ -587,11 +587,15 @@ pybuilddir.txt: $(BUILDPYTHON)
+ exit 1 ; \
+ fi
+
++# This is shared by the math and cmath modules
++Modules/_math.o: Modules/_math.c Modules/_math.h
++ $(CC) -c $(CCSHARED) $(PY_CORE_CFLAGS) -o $@ $<
++
+ # Build the shared modules
+ # Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for
+ # -s, --silent or --quiet is always the first char.
+ # Under BSD make, MAKEFLAGS might be " -s -v x=y".
+-sharedmods: $(BUILDPYTHON) pybuilddir.txt
++sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
+ @case "$$MAKEFLAGS" in \
+ *\ -s*|s*) quiet="-q";; \
+ *) quiet="";; \
+--- Python-3.5.1/Misc/NEWS.kh 2015-12-17 05:53:40.898929946 -0500
++++ Python-3.5.1/Misc/NEWS 2015-12-17 05:54:28.599676136 -0500
+@@ -464,6 +464,10 @@ Build
+ - Issue #24986: It is now possible to build Python on Windows without errors
+ when external libraries are not available.
+
++- Issue #24421: Compile Modules/_math.c once, before building extensions.
++ Previously it could fail to compile properly if the math and cmath builds
++ were concurrent.
++
+ Windows
+ -------
+
+--- Python-3.5.1/setup.py.kh 2015-12-17 06:38:30.950955607 -0500
++++ Python-3.5.1/setup.py 2015-12-17 06:42:32.074722493 -0500
+@@ -582,13 +582,17 @@ class PyBuildExt(build_ext):
+
+ # array objects
+ exts.append( Extension('array', ['arraymodule.c']) )
++
++ shared_math = 'Modules/_math.o'
+ # complex math library functions
+- exts.append( Extension('cmath', ['cmathmodule.c', '_math.c'],
+- depends=['_math.h'],
++ exts.append( Extension('cmath', ['cmathmodule.c'],
++ extra_objects=[shared_math],
++ depends=['_math.h', shared_math],
+ libraries=math_libs) )
+ # math library functions, e.g. sin()
+- exts.append( Extension('math', ['mathmodule.c', '_math.c'],
+- depends=['_math.h'],
++ exts.append( Extension('math', ['mathmodule.c'],
++ extra_objects=[shared_math],
++ depends=['_math.h', shared_math],
+ libraries=math_libs) )
+
+ # time libraries: librt may be needed for clock_gettime()
diff --git a/00208-disable-test_with_pip-on-ppc.patch b/00208-disable-test_with_pip-on-ppc.patch
new file mode 100644
index 0000000..00b98ae
--- /dev/null
+++ b/00208-disable-test_with_pip-on-ppc.patch
@@ -0,0 +1,11 @@
+diff -up Python-3.5.1/Lib/test/test_venv.py.1292467 Python-3.5.1/Lib/test/test_venv.py
+--- Python-3.5.1/Lib/test/test_venv.py.1292467 2015-12-21 13:37:44.740190595 +0100
++++ Python-3.5.1/Lib/test/test_venv.py 2015-12-21 13:40:25.707911828 +0100
+@@ -319,6 +319,7 @@ class EnsurePipTest(BaseTest):
+
+ # Requesting pip fails without SSL (http://bugs.python.org/issue19744)
+ @unittest.skipIf(ssl is None, ensurepip._MISSING_SSL_MESSAGE)
++ @unittest.skip('rhbz#1292467')
+ def test_with_pip(self):
+ rmtree(self.env_dir)
+ with EnvironmentVarGuard() as envvars:
diff --git a/00209-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch b/00209-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
new file mode 100644
index 0000000..e2c8581
--- /dev/null
+++ b/00209-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
@@ -0,0 +1,39 @@
+From 531dfa4bcfe55d5cd1524425944b07c5b02bddf9 Mon Sep 17 00:00:00 2001
+From: Charalampos Stratakis <cstratak(a)redhat.com>
+Date: Fri, 8 Jul 2016 17:16:41 +0200
+Subject: [PATCH] CVE-2016-5636 fix
+
+---
+ Modules/zipimport.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/Modules/zipimport.c b/Modules/zipimport.c
+index 06abb31..4d0d1de 100644
+--- a/Modules/zipimport.c
++++ b/Modules/zipimport.c
+@@ -1076,6 +1076,10 @@ get_data(PyObject *archive, PyObject *toc_entry)
+ &date, &crc)) {
+ return NULL;
+ }
++ if (data_size < 0) {
++ PyErr_Format(ZipImportError, "negative data size");
++ return NULL;
++ }
+
+ fp = _Py_fopen_obj(archive, "rb");
+ if (!fp)
+@@ -1112,6 +1116,11 @@ get_data(PyObject *archive, PyObject *toc_entry)
+ }
+ file_offset += l; /* Start of file data */
+
++ if (data_size > LONG_MAX - 1) {
++ fclose(fp);
++ PyErr_NoMemory();
++ return NULL;
++ }
+ bytes_size = compress == 0 ? data_size : data_size + 1;
+ if (bytes_size == 0)
+ bytes_size++;
+--
+2.7.4
+
diff --git a/00210-Raise-an-error-when-STARTTLS-fails.patch b/00210-Raise-an-error-when-STARTTLS-fails.patch
new file mode 100644
index 0000000..9083e61
--- /dev/null
+++ b/00210-Raise-an-error-when-STARTTLS-fails.patch
@@ -0,0 +1,35 @@
+From 761db274ca898f8a92348ed5979d3d3c1b0d634a Mon Sep 17 00:00:00 2001
+From: Tomas Orsava <torsava(a)redhat.com>
+Date: Fri, 17 Jun 2016 16:08:11 +0200
+Subject: [PATCH] Raise an error when STARTTLS fails
+
+CVE-2016-0772 python: smtplib StartTLS stripping attack
+rhbz#1303647: https://bugzilla.redhat.com/show_bug.cgi?id=1303647
+rhbz#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
+
+Based on an upstream change by Benjamin Peterson <benjamin(a)python.org>
+- in changeset 101887:d590114c2394 3.4
+- https://hg.python.org/cpython/rev/d590114c2394
+---
+ Lib/smtplib.py | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/Lib/smtplib.py b/Lib/smtplib.py
+index 4756973..dfbf5f9 100755
+--- a/Lib/smtplib.py
++++ b/Lib/smtplib.py
+@@ -773,6 +773,11 @@ class SMTP:
+ self.ehlo_resp = None
+ self.esmtp_features = {}
+ self.does_esmtp = 0
++ else:
++ # RFC 3207:
++ # 501 Syntax error (no parameters allowed)
++ # 454 TLS not available due to temporary reason
++ raise SMTPResponseException(resp, reply)
+ return (resp, reply)
+
+ def sendmail(self, from_addr, to_addrs, msg, mail_options=[],
+--
+2.5.5
+
diff --git a/00211-fix-test-pyexpat-failure.patch b/00211-fix-test-pyexpat-failure.patch
new file mode 100644
index 0000000..7b40280
--- /dev/null
+++ b/00211-fix-test-pyexpat-failure.patch
@@ -0,0 +1,17 @@
+diff -r 682a8e36dd18 Lib/test/test_pyexpat.py
+--- a/Lib/test/test_pyexpat.py Tue Jul 05 17:08:52 2016 +0300
++++ b/Lib/test/test_pyexpat.py Thu Jul 07 17:04:35 2016 +0800
+@@ -656,11 +656,9 @@
+ # \xc2\x85 is UTF-8 encoded U+0085 (NEXT LINE)
+ xml = b"<?xml version\xc2\x85='1.0'?>\r\n"
+ parser = expat.ParserCreate()
+- try:
++ err_pattern = r'XML declaration not well-formed: line 1, column \d+'
++ with self.assertRaisesRegex(expat.ExpatError, err_pattern):
+ parser.Parse(xml, True)
+- self.fail()
+- except expat.ExpatError as e:
+- self.assertEqual(str(e), 'XML declaration not well-formed: line 1, column 14')
+
+ class ErrorMessageTest(unittest.TestCase):
+ def test_codes(self):
diff --git a/00242-fix-mips64-triplet.patch b/00242-fix-mips64-triplet.patch
new file mode 100644
index 0000000..91bf6af
--- /dev/null
+++ b/00242-fix-mips64-triplet.patch
@@ -0,0 +1,42 @@
+diff -urp Python-3.5.0/configure p/configure
+--- Python-3.5.0/configure 2016-02-25 16:12:12.615184011 +0000
++++ p/configure 2016-02-25 16:13:01.293412517 +0000
+@@ -5133,7 +5133,7 @@ cat >> conftest.c <<EOF
+ # elif _MIPS_SIM == _ABIN32
+ mips64el-linux-gnuabin32
+ # elif _MIPS_SIM == _ABI64
+- mips64el-linux-gnuabi64
++ mips64el-linux-gnu
+ # else
+ # error unknown platform triplet
+ # endif
+@@ -5143,7 +5143,7 @@ cat >> conftest.c <<EOF
+ # elif _MIPS_SIM == _ABIN32
+ mips64-linux-gnuabin32
+ # elif _MIPS_SIM == _ABI64
+- mips64-linux-gnuabi64
++ mips64-linux-gnu
+ # else
+ # error unknown platform triplet
+ # endif
+diff -urp Python-3.5.0/configure.ac p/configure.ac
+--- Python-3.5.0/configure.ac 2016-02-25 16:12:11.663159985 +0000
++++ p/configure.ac 2016-02-25 16:13:18.814854710 +0000
+@@ -784,7 +784,7 @@ cat >> conftest.c <<EOF
+ # elif _MIPS_SIM == _ABIN32
+ mips64el-linux-gnuabin32
+ # elif _MIPS_SIM == _ABI64
+- mips64el-linux-gnuabi64
++ mips64el-linux-gnu
+ # else
+ # error unknown platform triplet
+ # endif
+@@ -794,7 +794,7 @@ cat >> conftest.c <<EOF
+ # elif _MIPS_SIM == _ABIN32
+ mips64-linux-gnuabin32
+ # elif _MIPS_SIM == _ABI64
+- mips64-linux-gnuabi64
++ mips64-linux-gnu
+ # else
+ # error unknown platform triplet
+ # endif
diff --git a/Python-3.1.1-rpath.patch b/Python-3.1.1-rpath.patch
new file mode 100644
index 0000000..1493af2
--- /dev/null
+++ b/Python-3.1.1-rpath.patch
@@ -0,0 +1,20 @@
+diff -up Python-3.1.1/Lib/distutils/unixccompiler.py.rpath Python-3.1.1/Lib/distutils/unixccompiler.py
+--- Python-3.1.1/Lib/distutils/unixccompiler.py.rpath 2009-09-04 17:29:34.000000000 -0400
++++ Python-3.1.1/Lib/distutils/unixccompiler.py 2009-09-04 17:49:54.000000000 -0400
+@@ -141,6 +141,16 @@ class UnixCCompiler(CCompiler):
+ if sys.platform == "cygwin":
+ exe_extension = ".exe"
+
++ def _fix_lib_args(self, libraries, library_dirs, runtime_library_dirs):
++ """Remove standard library path from rpath"""
++ libraries, library_dirs, runtime_library_dirs = super(
++ self.__class__, self)._fix_lib_args(libraries, library_dirs,
++ runtime_library_dirs)
++ libdir = sysconfig.get_config_var('LIBDIR')
++ if runtime_library_dirs and (libdir in runtime_library_dirs):
++ runtime_library_dirs.remove(libdir)
++ return libraries, library_dirs, runtime_library_dirs
++
+ def preprocess(self, source, output_file=None, macros=None,
+ include_dirs=None, extra_preargs=None, extra_postargs=None):
+ fixed_args = self._fix_compile_args(None, macros, include_dirs)
diff --git a/check-pyc-and-pyo-timestamps.py b/check-pyc-and-pyo-timestamps.py
new file mode 100644
index 0000000..aab0cc1
--- /dev/null
+++ b/check-pyc-and-pyo-timestamps.py
@@ -0,0 +1,59 @@
+"""Checks if all *.pyc and *.pyo files have later mtime than their *.py files."""
+
+import imp
+import os
+import sys
+
+# list of test and other files that we expect not to have bytecode
+not_compiled = [
+ 'test/bad_coding.py',
+ 'test/bad_coding2.py',
+ 'test/badsyntax_3131.py',
+ 'test/badsyntax_future3.py',
+ 'test/badsyntax_future4.py',
+ 'test/badsyntax_future5.py',
+ 'test/badsyntax_future6.py',
+ 'test/badsyntax_future7.py',
+ 'test/badsyntax_future8.py',
+ 'test/badsyntax_future9.py',
+ 'test/badsyntax_future10.py',
+ 'test/badsyntax_async1.py',
+ 'test/badsyntax_async2.py',
+ 'test/badsyntax_async3.py',
+ 'test/badsyntax_async4.py',
+ 'test/badsyntax_async5.py',
+ 'test/badsyntax_async6.py',
+ 'test/badsyntax_async7.py',
+ 'test/badsyntax_async8.py',
+ 'test/badsyntax_async9.py',
+ 'test/badsyntax_pep3120.py',
+ 'lib2to3/tests/data/bom.py',
+ 'lib2to3/tests/data/crlf.py',
+ 'lib2to3/tests/data/different_encoding.py',
+ 'lib2to3/tests/data/false_encoding.py',
+ 'lib2to3/tests/data/py2_test_grammar.py',
+ '.debug-gdb.py',
+]
+failed = 0
+
+def bytecode_expected(source):
+ for f in not_compiled:
+ if source.endswith(f):
+ return False
+ return True
+
+compiled = filter(lambda f: bytecode_expected(f), sys.argv[1:])
+for f in compiled:
+ # check both pyo and pyc
+ to_check = map(lambda b: imp.cache_from_source(f, b), (True, False))
+ f_mtime = os.path.getmtime(f)
+ for c in to_check:
+ c_mtime = os.path.getmtime(c)
+ if c_mtime < f_mtime:
+ sys.stderr.write('Failed bytecompilation timestamps check: ')
+ sys.stderr.write('Bytecode file {} is older than source file {}.\n'.format(c, f))
+ failed += 1
+
+if failed:
+ sys.stderr.write('\n{} files failed bytecompilation timestamps check.\n'.format(failed))
+ sys.exit(1)
diff --git a/libpython.stp b/libpython.stp
new file mode 100644
index 0000000..f41da80
--- /dev/null
+++ b/libpython.stp
@@ -0,0 +1,17 @@
+/* Systemtap tapset to make it easier to trace Python */
+
+/*
+ Define python.function.entry/return:
+*/
+probe python.function.entry = process("python3").library("LIBRARY_PATH").mark("function__entry")
+{
+ filename = user_string($arg1);
+ funcname = user_string($arg2);
+ lineno = $arg3;
+}
+probe python.function.return = process("python3").library("LIBRARY_PATH").mark("function__return")
+{
+ filename = user_string($arg1);
+ funcname = user_string($arg2);
+ lineno = $arg3;
+}
diff --git a/macros.pybytecompile3.5 b/macros.pybytecompile3.5
new file mode 100644
index 0000000..a8b79b2
--- /dev/null
+++ b/macros.pybytecompile3.5
@@ -0,0 +1,12 @@
+# Note that the path could itself be a python file, or a directory
+
+# Python's compile_all module only works on directories, and requires a max
+# recursion depth
+
+%py_byte_compile()\
+python_binary="%1"\
+bytecode_compilation_path="%2"\
+find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
+\
+find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
+%{nil}
diff --git a/macros.systempython b/macros.systempython
new file mode 100644
index 0000000..b7d1e91
--- /dev/null
+++ b/macros.systempython
@@ -0,0 +1,4 @@
+%system_python_abi %{expand: \
+%global __requires_exclude ^python\\\\(abi\\\\) = 3\\\\..$
+Requires: system-python(abi) = %{python3_version}
+}
diff --git a/pyfuntop.stp b/pyfuntop.stp
new file mode 100644
index 0000000..f235a23
--- /dev/null
+++ b/pyfuntop.stp
@@ -0,0 +1,21 @@
+#!/usr/bin/stap
+
+global fn_calls;
+
+probe python.function.entry
+{
+ fn_calls[pid(), filename, funcname, lineno] += 1;
+}
+
+probe timer.ms(1000) {
+ printf("\033[2J\033[1;1H") /* clear screen */
+ printf("%6s %80s %6s %30s %6s\n",
+ "PID", "FILENAME", "LINE", "FUNCTION", "CALLS")
+ foreach ([pid, filename, funcname, lineno] in fn_calls- limit 20) {
+ printf("%6d %80s %6d %30s %6d\n",
+ pid, filename, lineno, funcname,
+ fn_calls[pid, filename, funcname, lineno]);
+ }
+
+ delete fn_calls;
+}
diff --git a/python3-powerppc-arch.patch b/python3-powerppc-arch.patch
new file mode 100644
index 0000000..10f0201
--- /dev/null
+++ b/python3-powerppc-arch.patch
@@ -0,0 +1,30 @@
+diff -up Python-3.5.0/configure.ac.than Python-3.5.0/configure.ac
+--- Python-3.5.0/configure.ac.than 2015-11-13 11:51:32.039560172 -0500
++++ Python-3.5.0/configure.ac 2015-11-13 11:52:11.670168157 -0500
+@@ -804,9 +804,9 @@ cat >> conftest.c <<EOF
+ powerpc-linux-gnuspe
+ # elif defined(__powerpc64__)
+ # if defined(__LITTLE_ENDIAN__)
+- powerpc64le-linux-gnu
++ ppc64le-linux-gnu
+ # else
+- powerpc64-linux-gnu
++ ppc64-linux-gnu
+ # endif
+ # elif defined(__powerpc__)
+ powerpc-linux-gnu
+diff -up Python-3.5.0/configure.than Python-3.5.0/configure
+--- Python-3.5.0/configure.than 2015-11-13 12:13:19.039658399 -0500
++++ Python-3.5.0/configure 2015-11-13 12:13:35.199906857 -0500
+@@ -5153,9 +5153,9 @@ cat >> conftest.c <<EOF
+ powerpc-linux-gnuspe
+ # elif defined(__powerpc64__)
+ # if defined(__LITTLE_ENDIAN__)
+- powerpc64le-linux-gnu
++ ppc64le-linux-gnu
+ # else
+- powerpc64-linux-gnu
++ ppc64-linux-gnu
+ # endif
+ # elif defined(__powerpc__)
+ powerpc-linux-gnu
diff --git a/python3.spec b/python3.spec
new file mode 100644
index 0000000..4794e45
--- /dev/null
+++ b/python3.spec
@@ -0,0 +1,2390 @@
+# ======================================================
+# Conditionals and other variables controlling the build
+# ======================================================
+
+# NOTES ON BOOTSTRAPING PYTHON 3.4:
+#
+# Due to dependency cycle between Python, pip, setuptools and
+# wheel caused by the rewheel patch, one has to build in the
+# following order:
+#
+# 1) python3 with with_rewheel set to 0
+# 2) python3-setuptools and python3-pip with with_rewheel set to 0
+# 3) python3-wheel
+# 4) python3-setuptools and python3-pip with with_rewheel set to 1
+# 5) python3 with with_rewheel set to 1
+
+%global with_rewheel 1
+
+%global pybasever 3.5
+
+# pybasever without the dot:
+%global pyshortver 35
+
+%global pylibdir %{_libdir}/python%{pybasever}
+%global dynload_dir %{pylibdir}/lib-dynload
+
+# SOABI is defined in the upstream configure.in from Python-3.2a2 onwards,
+# for PEP 3149:
+# http://www.python.org/dev/peps/pep-3149/
+
+# ("configure.in" became "configure.ac" in Python 3.3 onwards, and in
+# backports)
+
+# ABIFLAGS, LDVERSION and SOABI are in the upstream Makefile
+# With Python 3.3, we lose the "u" suffix due to PEP 393
+%global ABIFLAGS_optimized m
+%global ABIFLAGS_debug dm
+
+%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
+%global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug}
+
+%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu}
+%global SOABI_debug cpython-%{pyshortver}%{ABIFLAGS_debug}-%{_arch}-linux%{_gnu}
+
+# All bytecode files are now in a __pycache__ subdirectory, with a name
+# reflecting the version of the bytecode (to permit sharing of python libraries
+# between different runtimes)
+# See http://www.python.org/dev/peps/pep-3147/
+# For example,
+# foo/bar.py
+# now has bytecode at:
+# foo/__pycache__/bar.cpython-35.pyc
+# foo/__pycache__/bar.cpython-35.pyo
+%global bytecode_suffixes .cpython-35*.py?
+
+# Python's configure script defines SOVERSION, and this is used in the Makefile
+# to determine INSTSONAME, the name of the libpython DSO:
+# LDLIBRARY='libpython$(VERSION).so'
+# INSTSONAME="$LDLIBRARY".$SOVERSION
+# We mirror this here in order to make it easier to add the -gdb.py hooks.
+# (if these get out of sync, the payload of the libs subpackage will fail
+# and halt the build)
+%global py_SOVERSION 1.0
+%global py_INSTSONAME_optimized libpython%{LDVERSION_optimized}.so.%{py_SOVERSION}
+%global py_INSTSONAME_debug libpython%{LDVERSION_debug}.so.%{py_SOVERSION}
+
+%global with_debug_build 1
+
+%global with_gdb_hooks 1
+
+%global with_systemtap 1
+
+# some arches don't have valgrind so we need to disable its support on them
+%ifnarch s390 %{mips}
+%global with_valgrind 1
+%else
+%global with_valgrind 0
+%endif
+
+%global with_gdbm 1
+
+# Change from yes to no to turn this off
+%global with_computed_gotos yes
+
+# Turn this to 0 to turn off the "check" phase:
+%global run_selftest_suite 1
+
+# We want to byte-compile the .py files within the packages using the new
+# python3 binary.
+#
+# Unfortunately, rpmbuild's infrastructure requires us to jump through some
+# hoops to avoid byte-compiling with the system python 2 version:
+# /usr/lib/rpm/redhat/macros sets up build policy that (amongst other things)
+# defines __os_install_post. In particular, "brp-python-bytecompile" is
+# invoked without an argument thus using the wrong version of python
+# (/usr/bin/python, rather than the freshly built python), thus leading to
+# numerous syntax errors, and incorrect magic numbers in the .pyc files. We
+# thus override __os_install_post to avoid invoking this script:
+%global __os_install_post /usr/lib/rpm/brp-compress \
+ %{!?__debug_package:/usr/lib/rpm/brp-strip %{__strip}} \
+ /usr/lib/rpm/brp-strip-static-archive %{__strip} \
+ /usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump} \
+ /usr/lib/rpm/brp-python-hardlink
+# to remove the invocation of brp-python-bytecompile, whilst keeping the
+# invocation of brp-python-hardlink (since this should still work for python3
+# pyc/pyo files)
+
+
+# ==================
+# Top-level metadata
+# ==================
+Summary: Version 3 of the Python programming language aka Python 3000
+Name: python3
+Version: %{pybasever}.1
+Release: 14%{?dist}
+License: Python
+Group: Development/Languages
+
+
+# =======================
+# Build-time requirements
+# =======================
+
+# (keep this list alphabetized)
+
+BuildRequires: autoconf
+BuildRequires: bluez-libs-devel
+BuildRequires: bzip2
+BuildRequires: bzip2-devel
+BuildRequires: db4-devel >= 4.7
+
+# expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME. We use
+# it (in pyexpat) in order to enable the fix in Python-3.2.3 for CVE-2012-0876:
+BuildRequires: expat-devel >= 2.1.0
+
+BuildRequires: findutils
+BuildRequires: gcc-c++
+%if %{with_gdbm}
+BuildRequires: gdbm-devel
+%endif
+BuildRequires: glibc-devel
+BuildRequires: gmp-devel
+BuildRequires: libffi-devel
+BuildRequires: libGL-devel
+BuildRequires: libX11-devel
+BuildRequires: ncurses-devel
+# workaround http://bugs.python.org/issue19804 (test_uuid requires ifconfig)
+BuildRequires: net-tools
+BuildRequires: openssl-devel
+BuildRequires: pkgconfig
+BuildRequires: readline-devel
+BuildRequires: sqlite-devel
+
+%if 0%{?with_systemtap}
+BuildRequires: systemtap-sdt-devel
+# (this introduces a dependency on "python", in that systemtap-sdt-devel's
+# /usr/bin/dtrace is a python 2 script)
+%global tapsetdir /usr/share/systemtap/tapset
+%endif # with_systemtap
+
+BuildRequires: tar
+BuildRequires: tcl-devel
+BuildRequires: tix-devel
+BuildRequires: tk-devel
+
+%if 0%{?with_valgrind}
+BuildRequires: valgrind-devel
+%endif
+
+BuildRequires: xz-devel
+BuildRequires: zlib-devel
+
+%if 0%{?with_rewheel}
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%endif
+
+
+# =======================
+# Source code and patches
+# =======================
+
+Source: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
+
+# Supply an RPM macro "py_byte_compile" for the python3-devel subpackage
+# to enable specfiles to selectively byte-compile individual files and paths
+# with different Python runtimes as necessary:
+Source3: macros.pybytecompile%{pybasever}
+
+# Systemtap tapset to make it easier to use the systemtap static probes
+# (actually a template; LIBRARY_PATH will get fixed up during install)
+# Written by dmalcolm; not yet sent upstream
+Source5: libpython.stp
+
+# Example systemtap script using the tapset
+# Written by wcohen, mjw, dmalcolm; not yet sent upstream
+Source6: systemtap-example.stp
+
+# Another example systemtap script that uses the tapset
+# Written by dmalcolm; not yet sent upstream
+Source7: pyfuntop.stp
+
+# A simple script to check timestamps of bytecode files
+# Run in check section with Python that is currently being built
+# Written by bkabrda
+Source8: check-pyc-and-pyo-timestamps.py
+
+# A simple macro that enables packages to require system-python(abi) instead of python(abi)
+Source9: macros.systempython
+
+# Fixup distutils/unixccompiler.py to remove standard library path from rpath:
+# Was Patch0 in ivazquez' python3000 specfile:
+Patch1: Python-3.1.1-rpath.patch
+
+# 00055 #
+# Systemtap support: add statically-defined probe points
+# Patch sent upstream as http://bugs.python.org/issue14776
+# with some subsequent reworking to cope with LANG=C in an rpmbuild
+# (where sys.getfilesystemencoding() == 'ascii')
+Patch55: 00055-systemtap.patch
+
+Patch102: 00102-lib64.patch
+
+# 00104 #
+# Only used when "%{_lib}" == "lib64"
+# Another lib64 fix, for distutils/tests/test_install.py; not upstream:
+Patch104: 00104-lib64-fix-for-test_install.patch
+
+# 00111 #
+# Patch the Makefile.pre.in so that the generated Makefile doesn't try to build
+# a libpythonMAJOR.MINOR.a (bug 550692):
+# Downstream only: not appropriate for upstream
+Patch111: 00111-no-static-lib.patch
+
+# 00132 #
+# Add non-standard hooks to unittest for use in the "check" phase below, when
+# running selftests within the build:
+# @unittest._skipInRpmBuild(reason)
+# for tests that hang or fail intermittently within the build environment, and:
+# @unittest._expectedFailureInRpmBuild
+# for tests that always fail within the build environment
+#
+# The hooks only take effect if WITHIN_PYTHON_RPM_BUILD is set in the
+# environment, which we set manually in the appropriate portion of the "check"
+# phase below (and which potentially other python-* rpms could set, to reuse
+# these unittest hooks in their own "check" phases)
+Patch132: 00132-add-rpmbuild-hooks-to-unittest.patch
+
+# 00133 #
+# 00133-skip-test_dl.patch is not relevant for python3: the "dl" module no
+# longer exists
+
+# 00137 #
+# Some tests within distutils fail when run in an rpmbuild:
+Patch137: 00137-skip-distutils-tests-that-fail-in-rpmbuild.patch
+
+# 00143 #
+# Fix the --with-tsc option on ppc64, and rework it on 32-bit ppc to avoid
+# aliasing violations (rhbz#698726)
+# Sent upstream as http://bugs.python.org/issue12872
+Patch143: 00143-tsc-on-ppc.patch
+
+# 00146 #
+# Support OpenSSL FIPS mode (e.g. when OPENSSL_FORCE_FIPS_MODE=1 is set)
+# - handle failures from OpenSSL (e.g. on attempts to use MD5 in a
+# FIPS-enforcing environment)
+# - add a new "usedforsecurity" keyword argument to the various digest
+# algorithms in hashlib so that you can whitelist a callsite with
+# "usedforsecurity=False"
+# (sent upstream for python 3 as http://bugs.python.org/issue9216 ; see RHEL6
+# python patch 119)
+# - enforce usage of the _hashlib implementation: don't fall back to the _md5
+# and _sha* modules (leading to clearer error messages if fips selftests
+# fail)
+# - don't build the _md5 and _sha* modules; rely on the _hashlib implementation
+# of hashlib
+# (rhbz#563986)
+# Note: Up to Python 3.4.0.b1, upstream had their own implementation of what
+# they assumed would become sha3. This patch was adapted to give it the
+# usedforsecurity argument, even though it did nothing (OpenSSL didn't have
+# sha3 implementation at that time).In 3.4.0.b2, sha3 implementation was reverted
+# (see http://bugs.python.org/issue16113), but the alterations were left in the
+# patch, since they may be useful again if upstream decides to rerevert sha3
+# implementation and OpenSSL still doesn't support it. For now, they're harmless.
+Patch146: 00146-hashlib-fips.patch
+
+# 00155 #
+# Avoid allocating thunks in ctypes unless absolutely necessary, to avoid
+# generating SELinux denials on "import ctypes" and "import uuid" when
+# embedding Python within httpd (rhbz#814391)
+Patch155: 00155-avoid-ctypes-thunks.patch
+
+# 00157 #
+# Update uid/gid handling throughout the standard library: uid_t and gid_t are
+# unsigned 32-bit values, but existing code often passed them through C long
+# values, which are signed 32-bit values on 32-bit architectures, leading to
+# negative int objects for uid/gid values >= 2^31 on 32-bit architectures.
+#
+# Introduce _PyObject_FromUid/Gid to convert uid_t/gid_t values to python
+# objects, using int objects where the value will fit (long objects otherwise),
+# and _PyArg_ParseUid/Gid to convert int/long to uid_t/gid_t, with -1 allowed
+# as a special case (since this is given special meaning by the chown syscall)
+#
+# Update standard library to use this throughout for uid/gid values, so that
+# very large uid/gid values are round-trippable, and -1 remains usable.
+# (rhbz#697470)
+Patch157: 00157-uid-gid-overflows.patch
+
+# 00160 #
+# Python 3.3 added os.SEEK_DATA and os.SEEK_HOLE, which may be present in the
+# header files in the build chroot, but may not be supported in the running
+# kernel, hence we disable this test in an rpm build.
+# Adding these was upstream issue http://bugs.python.org/issue10142
+# Not yet sent upstream
+Patch160: 00160-disable-test_fs_holes-in-rpm-build.patch
+
+# 00163 #
+# Some tests within test_socket fail intermittently when run inside Koji;
+# disable them using unittest._skipInRpmBuild
+# Not yet sent upstream
+Patch163: 00163-disable-parts-of-test_socket-in-rpm-build.patch
+
+# 00170 #
+# In debug builds, try to print repr() when a C-level assert fails in the
+# garbage collector (typically indicating a reference-counting error
+# somewhere else e.g in an extension module)
+# Backported to 2.7 from a patch I sent upstream for py3k
+# http://bugs.python.org/issue9263 (rhbz#614680)
+# hiding the proposed new macros/functions within gcmodule.c to avoid exposing
+# them within the extension API.
+# (rhbz#850013
+Patch170: 00170-gc-assertions.patch
+
+# 00178 #
+# Don't duplicate various FLAGS in sysconfig values
+# http://bugs.python.org/issue17679
+# Does not affect python2 AFAICS (different sysconfig values initialization)
+Patch178: 00178-dont-duplicate-flags-in-sysconfig.patch
+
+# 00180 #
+# Enable building on ppc64p7
+# Not appropriate for upstream, Fedora-specific naming
+Patch180: 00180-python-add-support-for-ppc64p7.patch
+
+# 00184 #
+# Fix for https://bugzilla.redhat.com/show_bug.cgi?id=979696
+# Fixes build of ctypes against libffi with multilib wrapper
+# Python recognizes ffi.h only if it contains "#define LIBFFI_H",
+# but the wrapper doesn't contain that, which makes the build fail
+# We patch this by also accepting "#define ffi_wrapper_h"
+Patch184: 00184-ctypes-should-build-with-libffi-multilib-wrapper.patch
+
+# 00186 #
+# Fix for https://bugzilla.redhat.com/show_bug.cgi?id=1023607
+# Previously, this fixed a problem where some *.py files were not being
+# bytecompiled properly during build. This was result of py_compile.compile
+# raising exception when trying to convert test file with bad encoding, and
+# thus not continuing bytecompilation for other files.
+# This was fixed upstream, but the test hasn't been merged yet, so we keep it
+Patch186: 00186-dont-raise-from-py_compile.patch
+
+# 00188 #
+# Downstream only patch that should be removed when we compile all guaranteed
+# hashlib algorithms properly. The problem is this:
+# - during tests, test_hashlib is imported and executed before test_lib2to3
+# - if at least one hash function has failed, trying to import it triggers an
+# exception that is being caught and exception is logged:
+# http://hg.python.org/cpython/file/2de806c8b070/Lib/hashlib.py#l217
+# - logging the exception makes logging module run basicConfig
+# - when lib2to3 tests are run again, lib2to3 runs basicConfig again, which
+# doesn't do anything, because it was run previously
+# (logging.root.handlers != []), which means that the default setup
+# (most importantly logging level) is not overriden. That means that a test
+# relying on this will fail (test_filename_changing_on_output_single_dir)
+Patch188: 00188-fix-lib2to3-tests-when-hashlib-doesnt-compile-properly.patch
+
+# 00189 #
+# Add the rewheel module, allowing to recreate wheels from already installed
+# ones
+# https://github.com/bkabrda/rewheel
+%if 0%{with_rewheel}
+Patch189: 00189-add-rewheel-module.patch
+%endif
+
+# 00194 #
+# Tests requiring SIGHUP to work don't work in Koji
+# see rhbz#1088233
+Patch194: temporarily-disable-tests-requiring-SIGHUP.patch
+
+# 00196 #
+# Fix test_gdb failure on ppc64le
+Patch196: 00196-test-gdb-match-addr-before-builtin.patch
+
+# 00200 #
+# Fix for gettext plural form headers (lines that begin with "#")
+# Note: Backported from scl
+Patch200: 00200-gettext-plural-fix.patch
+
+# 00201 #
+# Fixes memory leak in gdbm module (rhbz#977308)
+# This was upstreamed as a part of bigger patch, but for our purposes
+# this is ok: http://bugs.python.org/issue18404
+# Note: Backported from scl
+Patch201: 00201-fix-memory-leak-in-gdbm.patch
+
+# 00203 #
+# test_threading fails in koji dues to it's handling of signals
+Patch203: 00203-disable-threading-test-koji.patch
+
+# 00205 #
+# LIBPL variable in makefile takes LIBPL from configure.ac
+# but the LIBPL variable defined there doesn't respect libdir macro
+Patch205: 00205-make-libpl-respect-lib64.patch
+
+# 00206 #
+# Remove hf flag from arm triplet which is used
+# by debian but fedora infra uses only eabi without hf
+Patch206: 00206-remove-hf-from-arm-triplet.patch
+
+# 00207 #
+# Avoid truncated _math.o files caused by parallel builds
+# modified version of https://bugs.python.org/issue24421
+# rhbz#1292461
+Patch207: 00207-math-once.patch
+
+# 00208 #
+# test_with_pip (test.test_venv.EnsurePipTest) fails on ppc64*
+# rhbz#1292467
+Patch208: 00208-disable-test_with_pip-on-ppc.patch
+
+# 00209 #
+# CVE-2016-5636: http://seclists.org/oss-sec/2016/q2/560
+# rhbz#1345859: https://bugzilla.redhat.com/show_bug.cgi?id=1345859
+# https://hg.python.org/cpython/rev/10dad6da1b28/
+# https://hg.python.org/cpython/rev/5533a9e02b21
+# Fix possible integer overflow and heap corruption in zipimporter.get_data()
+# FIXED UPSTREAM: https://bugs.python.org/issue26171
+Patch209: 00209-CVE-2016-5636-buffer-overflow-in-zipimport-module-fix.patch
+
+# 00210 #
+# CVE-2016-0772 python: smtplib StartTLS stripping attack
+# rhbz#1303647: https://bugzilla.redhat.com/show_bug.cgi?id=1303647
+# rhbz#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
+# FIXED UPSTREAM: https://hg.python.org/cpython/rev/d590114c2394
+# Raise an error when STARTTLS fails
+Patch210: 00210-Raise-an-error-when-STARTTLS-fails.patch
+
+# 00211 #
+# Fix test breakage with version 2.2.0 of Expat
+# rhbz#1353918: https://bugzilla.redhat.com/show_bug.cgi?id=1353918
+# NOT YET FIXED UPSTREAM: http://bugs.python.org/issue27369
+Patch211: 00211-fix-test-pyexpat-failure.patch
+
+# 00242 #
+# Fix the triplet used on 64-bit MIPS
+# rhbz#1322526: https://bugzilla.redhat.com/show_bug.cgi?id=1322526
+# Upstream uses Debian-like style mips64-linux-gnuabi64
+# Fedora needs the default mips64-linux-gnu
+Patch242: 00242-fix-mips64-triplet.patch
+
+# (New patches go here ^^^)
+#
+# When adding new patches to "python" and "python3" in Fedora 17 onwards,
+# please try to keep the patch numbers in-sync between the two specfiles:
+#
+# - use the same patch number across both specfiles for conceptually-equivalent
+# fixes, ideally with the same name
+#
+# - when a patch is relevant to both specfiles, use the same introductory
+# comment in both specfiles where possible (to improve "diff" output when
+# comparing them)
+#
+# - when a patch is only relevant for one of the two specfiles, leave a gap
+# in the patch numbering in the other specfile, adding a comment when
+# omitting a patch, both in the manifest section here, and in the "prep"
+# phase below
+#
+# Hopefully this will make it easier to ensure that all relevant fixes are
+# applied to both versions.
+
+# add correct arch for ppc64/ppc64le
+# it should be ppc64le-linux-gnu/ppc64-linux-gnu instead powerpc64le-linux-gnu/powerpc64-linux-gnu
+Patch5001: python3-powerppc-arch.patch
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+
+# ======================================================
+# Additional metadata, and subpackages
+# ======================================================
+
+URL: http://www.python.org/
+
+# See notes in bug 532118:
+Provides: python(abi) = %{pybasever}
+
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+
+%if 0%{with_rewheel}
+Requires: python3-setuptools
+Requires: python3-pip
+%endif
+
+%description
+Python 3 is a new version of the language that is incompatible with the 2.x
+line of releases. The language is mostly the same, but many details, especially
+how built-in objects like dictionaries and strings work, have changed
+considerably, and a lot of deprecated features have finally been removed.
+
+%package libs
+Summary: Python 3 runtime libraries
+Group: Development/Libraries
+Requires: system-python-libs%{?_isa} = %{version}-%{release}
+
+# expat 2.1.0 added the symbol XML_SetHashSalt without bumping SONAME. We use
+# this symbol (in pyexpat), so we must explicitly state this dependency to
+# prevent "import pyexpat" from failing with a linker error if someone hasn't
+# yet upgraded expat:
+Requires: expat >= 2.1.0
+Provides: python3-enum34 = 1.0.4-5%{?dist}
+Obsoletes: python3-enum34 < 1.0.4-5%{?dist}
+
+%description libs
+This package contains files used to embed Python 3 into applications.
+
+%package -n system-python
+Summary: System Python executable
+Group: Development/Libraries
+Requires: system-python-libs%{?_isa} = %{version}-%{release}
+Provides: system-python(abi) = %{pybasever}
+
+%description -n system-python
+System Python provides a binary interpreter which uses system-python-libs,
+a subset of standard Python library considered essential to run various tools,
+requiring Python, that consider themselves "system tools".
+
+%package -n system-python-libs
+Summary: System Python runtime libraries
+Group: Development/Libraries
+
+%define __requires_exclude ^(/usr/bin/python3.*|python\\(abi\\) = 3\\..*)$
+
+Requires: expat >= 2.1.0
+
+%description -n system-python-libs
+This package contains files used to embed System Python into applications.
+
+%package devel
+Summary: Libraries and header files needed for Python 3 development
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+BuildRequires: python-rpm-macros
+Requires: python-rpm-macros
+Requires: python3-rpm-macros
+Conflicts: %{name} < %{version}-%{release}
+
+%description devel
+This package contains libraries and header files used to build applications
+with and native libraries for Python 3
+
+%package tools
+Summary: A collection of tools included with Python 3
+Group: Development/Tools
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-tkinter = %{version}-%{release}
+
+%description tools
+This package contains several tools included with Python 3
+
+%package tkinter
+Summary: A GUI toolkit for Python 3
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+
+%description tkinter
+The Tkinter (Tk interface) program is an graphical user interface for
+the Python scripting language.
+
+%package test
+Summary: The test modules from the main python 3 package
+Group: Development/Languages
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-tools = %{version}-%{release}
+
+%description test
+The test modules from the main %{name} package.
+These are in a separate package to save space, as they are almost never used
+in production.
+
+You might want to install the python3-test package if you're developing
+python 3 code that uses more than just unittest and/or test_support.py.
+
+%if 0%{?with_debug_build}
+%package debug
+Summary: Debug version of the Python 3 runtime
+Group: Applications/System
+
+# The debug build is an all-in-one package version of the regular build, and
+# shares the same .py/.pyc files and directories as the regular build. Hence
+# we depend on all of the subpackages of the regular build:
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
+Requires: %{name}-test%{?_isa} = %{version}-%{release}
+Requires: %{name}-tkinter%{?_isa} = %{version}-%{release}
+Requires: %{name}-tools%{?_isa} = %{version}-%{release}
+
+%description debug
+python3-debug provides a version of the Python 3 runtime with numerous debugging
+features enabled, aimed at advanced Python users, such as developers of Python
+extension modules.
+
+This version uses more memory and will be slower than the regular Python 3 build,
+but is useful for tracking down reference-counting issues, and other bugs.
+
+The bytecodes are unchanged, so that .pyc files are compatible between the two
+versions of Python 3, but the debugging features mean that C/C++ extension
+modules are ABI-incompatible with those built for the standard runtime.
+
+It shares installation directories with the standard Python 3 runtime, so that
+.py and .pyc files can be shared. All compiled extension modules gain a "_d"
+suffix ("foo_d.so" rather than "foo.so") so that each Python 3 implementation
+can load its own extensions.
+%endif # with_debug_build
+
+# ======================================================
+# The prep phase of the build:
+# ======================================================
+
+%prep
+%setup -q -n Python-%{version}%{?prerel}
+
+%if 0%{?with_systemtap}
+# Provide an example of usage of the tapset:
+cp -a %{SOURCE6} .
+cp -a %{SOURCE7} .
+%endif # with_systemtap
+
+# Ensure that we're using the system copy of various libraries, rather than
+# copies shipped by upstream in the tarball:
+# Remove embedded copy of expat:
+rm -r Modules/expat || exit 1
+
+# Remove embedded copy of libffi:
+for SUBDIR in darwin libffi libffi_arm_wince libffi_msvc libffi_osx ; do
+ rm -r Modules/_ctypes/$SUBDIR || exit 1 ;
+done
+
+# Remove embedded copy of zlib:
+rm -r Modules/zlib || exit 1
+
+# Don't build upstream Python's implementation of these crypto algorithms;
+# instead rely on _hashlib and OpenSSL.
+#
+# For example, in our builds hashlib.md5 is implemented within _hashlib via
+# OpenSSL (and thus respects FIPS mode), and does not fall back to _md5
+# TODO: there seems to be no OpenSSL support in Python for sha3 so far
+# when it is there, also remove _sha3/ dir
+for f in md5module.c sha1module.c sha256module.c sha512module.c; do
+ rm Modules/$f
+done
+
+%if 0%{with_rewheel}
+%global pip_version 7.1.0
+sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/ensurepip/__init__.py
+%endif
+
+#
+# Apply patches:
+#
+%patch1 -p1
+
+%if 0%{?with_systemtap}
+%patch55 -p1 -b .systemtap
+%endif
+
+%if "%{_lib}" == "lib64"
+%patch102 -p1
+%patch104 -p1
+%endif
+%patch111 -p1
+%patch132 -p1
+%patch137 -p1
+%patch143 -p1 -b .tsc-on-ppc
+%patch146 -p1
+%patch155 -p1
+%patch157 -p1
+%patch160 -p1
+%patch163 -p1
+%patch170 -p0
+%patch178 -p1
+%patch180 -p1
+%patch184 -p1
+%patch186 -p1
+%patch188 -p1
+
+%if 0%{with_rewheel}
+%patch189 -p1
+%endif
+
+%patch194 -p1
+%patch196 -p1
+%patch203 -p1
+%patch205 -p1
+%patch206 -p1
+%patch207 -p1
+%patch208 -p1
+%patch209 -p1
+%patch210 -p1
+%patch211 -p1
+%patch242 -p1
+
+# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
+# are many differences between 2.6 and the Python 3 library.
+#
+# Fix up the URLs within pydoc to point at the documentation for this
+# MAJOR.MINOR version:
+#
+sed --in-place \
+ --expression="s|http://docs.python.org/library|http://docs.python.org/%{pybasever}/libr..." \
+ Lib/pydoc.py || exit 1
+
+%patch5001 -p1
+
+# ======================================================
+# Configuring and building the code:
+# ======================================================
+
+%build
+topdir=$(pwd)
+export CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
+export CXXFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
+export CPPFLAGS="`pkg-config --cflags-only-I libffi`"
+export OPT="$RPM_OPT_FLAGS -D_GNU_SOURCE -fPIC -fwrapv"
+export LINKCC="gcc"
+export CFLAGS="$CFLAGS `pkg-config --cflags openssl`"
+export LDFLAGS="$RPM_LD_FLAGS `pkg-config --libs-only-L openssl`"
+
+
+# Define a function, for how to perform a "build" of python for a given
+# configuration:
+BuildPython() {
+ ConfName=$1
+ BinaryName=$2
+ SymlinkName=$3
+ ExtraConfigArgs=$4
+ PathFixWithThisBinary=$5
+ MoreCFlags=$6
+
+ ConfDir=build/$ConfName
+
+ echo STARTING: BUILD OF PYTHON FOR CONFIGURATION: $ConfName - %{_bindir}/$BinaryName
+ mkdir -p $ConfDir
+
+ pushd $ConfDir
+
+ # Use the freshly created "configure" script, but in the directory two above:
+ %global _configure $topdir/configure
+
+%configure \
+ --enable-ipv6 \
+ --enable-shared \
+ --with-computed-gotos=%{with_computed_gotos} \
+ --with-dbmliborder=gdbm:ndbm:bdb \
+ --with-system-expat \
+ --with-system-ffi \
+ --enable-loadable-sqlite-extensions \
+%if 0%{?with_systemtap}
+ --with-systemtap \
+%endif
+%if 0%{?with_valgrind}
+ --with-valgrind \
+%endif
+ $ExtraConfigArgs \
+ %{nil}
+
+ # Set EXTRA_CFLAGS to our CFLAGS (rather than overriding OPT, as we've done
+ # in the past).
+ # This should fix a problem with --with-valgrind where it adds
+ # -DDYNAMIC_ANNOTATIONS_ENABLED=1
+ # to OPT which must be passed to all compilation units in the build,
+ # otherwise leading to linker errors, e.g.
+ # missing symbol AnnotateRWLockDestroy
+ #
+ # Invoke the build:
+ make EXTRA_CFLAGS="$CFLAGS $MoreCFlags" %{?_smp_mflags}
+
+ popd
+ echo FINISHED: BUILD OF PYTHON FOR CONFIGURATION: $ConfDir
+}
+
+# Use "BuildPython" to support building with different configurations:
+
+%if 0%{?with_debug_build}
+BuildPython debug \
+ python-debug \
+ python%{pybasever}-debug \
+%ifarch %{ix86} x86_64 ppc %{power64}
+ "--with-pydebug --with-tsc --with-count-allocs --with-call-profile --without-ensurepip" \
+%else
+ "--with-pydebug --with-count-allocs --with-call-profile --without-ensurepip" \
+%endif
+ false \
+ -O0
+%endif # with_debug_build
+
+BuildPython optimized \
+ python \
+ python%{pybasever} \
+ "--without-ensurepip" \
+ true
+
+# ======================================================
+# Installing the built code:
+# ======================================================
+
+%install
+topdir=$(pwd)
+rm -fr %{buildroot}
+mkdir -p %{buildroot}%{_prefix} %{buildroot}%{_mandir}
+
+InstallPython() {
+
+ ConfName=$1
+ PyInstSoName=$2
+ MoreCFlags=$3
+
+ ConfDir=build/$ConfName
+
+ echo STARTING: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
+ mkdir -p $ConfDir
+
+ pushd $ConfDir
+
+make install DESTDIR=%{buildroot} INSTALL="install -p" EXTRA_CFLAGS="$MoreCFlags"
+
+ popd
+
+ # We install a collection of hooks for gdb that make it easier to debug
+ # executables linked against libpython3* (such as /usr/bin/python3 itself)
+ #
+ # These hooks are implemented in Python itself (though they are for the version
+ # of python that gdb is linked with, in this case Python 2.7)
+ #
+ # gdb-archer looks for them in the same path as the ELF file, with a -gdb.py suffix.
+ # We put them in the debuginfo package by installing them to e.g.:
+ # /usr/lib/debug/usr/lib/libpython3.2.so.1.0.debug-gdb.py
+ #
+ # See https://fedoraproject.org/wiki/Features/EasierPythonDebugging for more
+ # information
+ #
+ # Copy up the gdb hooks into place; the python file will be autoloaded by gdb
+ # when visiting libpython.so, provided that the python file is installed to the
+ # same path as the library (or its .debug file) plus a "-gdb.py" suffix, e.g:
+ # /usr/lib/debug/usr/lib64/libpython3.2.so.1.0.debug-gdb.py
+ # (note that the debug path is /usr/lib/debug for both 32/64 bit)
+ #
+ # Initially I tried:
+ # /usr/lib/libpython3.1.so.1.0-gdb.py
+ # but doing so generated noise when ldconfig was rerun (rhbz:562980)
+ #
+%if 0%{?with_gdb_hooks}
+ DirHoldingGdbPy=%{_prefix}/lib/debug/%{_libdir}
+ PathOfGdbPy=$DirHoldingGdbPy/$PyInstSoName.debug-gdb.py
+
+ mkdir -p %{buildroot}$DirHoldingGdbPy
+ cp Tools/gdb/libpython.py %{buildroot}$PathOfGdbPy
+%endif # with_gdb_hooks
+
+ echo FINISHED: INSTALL OF PYTHON FOR CONFIGURATION: $ConfName
+}
+
+# Use "InstallPython" to support building with different configurations:
+
+# Install the "debug" build first, so that we can move some files aside
+%if 0%{?with_debug_build}
+InstallPython debug \
+ %{py_INSTSONAME_debug} \
+ -O0
+%endif # with_debug_build
+
+# Now the optimized build:
+InstallPython optimized \
+ %{py_INSTSONAME_optimized}
+
+install -d -m 0755 ${RPM_BUILD_ROOT}%{pylibdir}/site-packages/__pycache__
+
+mv ${RPM_BUILD_ROOT}%{_bindir}/2to3 ${RPM_BUILD_ROOT}%{_bindir}/python3-2to3
+
+# Development tools
+install -m755 -d ${RPM_BUILD_ROOT}%{pylibdir}/Tools
+install Tools/README ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
+cp -ar Tools/freeze ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
+cp -ar Tools/i18n ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
+cp -ar Tools/pynche ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
+cp -ar Tools/scripts ${RPM_BUILD_ROOT}%{pylibdir}/Tools/
+
+# Documentation tools
+install -m755 -d %{buildroot}%{pylibdir}/Doc
+cp -ar Doc/tools %{buildroot}%{pylibdir}/Doc/
+
+# Demo scripts
+cp -ar Tools/demo %{buildroot}%{pylibdir}/Tools/
+
+# Fix for bug #136654
+rm -f %{buildroot}%{pylibdir}/email/test/data/audiotest.au %{buildroot}%{pylibdir}/test/audiotest.au
+
+%if "%{_lib}" == "lib64"
+install -d -m 0755 %{buildroot}/%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__
+%endif
+
+# Make python3-devel multilib-ready (bug #192747, #139911)
+%global _pyconfig32_h pyconfig-32.h
+%global _pyconfig64_h pyconfig-64.h
+
+%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64}
+%global _pyconfig_h %{_pyconfig64_h}
+%else
+%global _pyconfig_h %{_pyconfig32_h}
+%endif
+
+# ABIFLAGS, LDVERSION and SOABI are in the upstream Makefile
+%global ABIFLAGS_optimized m
+%global ABIFLAGS_debug dm
+
+%global LDVERSION_optimized %{pybasever}%{ABIFLAGS_optimized}
+%global LDVERSION_debug %{pybasever}%{ABIFLAGS_debug}
+
+%global SOABI_optimized cpython-%{pyshortver}%{ABIFLAGS_optimized}-%{_arch}-linux%{_gnu}
+%global SOABI_debug cpython-%{pyshortver}%{ABIFLAGS_debug}-%{_arch}-linux%{_gnu}
+
+%if 0%{?with_debug_build}
+%global PyIncludeDirs python%{LDVERSION_optimized} python%{LDVERSION_debug}
+
+%else
+%global PyIncludeDirs python%{LDVERSION_optimized}
+%endif
+
+for PyIncludeDir in %{PyIncludeDirs} ; do
+ mv %{buildroot}%{_includedir}/$PyIncludeDir/pyconfig.h \
+ %{buildroot}%{_includedir}/$PyIncludeDir/%{_pyconfig_h}
+ cat > %{buildroot}%{_includedir}/$PyIncludeDir/pyconfig.h << EOF
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 32
+#include "%{_pyconfig32_h}"
+#elif __WORDSIZE == 64
+#include "%{_pyconfig64_h}"
+#else
+#error "Unknown word size"
+#endif
+EOF
+done
+
+# Fix for bug 201434: make sure distutils looks at the right pyconfig.h file
+# Similar for sysconfig: sysconfig.get_config_h_filename tries to locate
+# pyconfig.h so it can be parsed, and needs to do this at runtime in site.py
+# when python starts up (bug 653058)
+#
+# Split this out so it goes directly to the pyconfig-32.h/pyconfig-64.h
+# variants:
+sed -i -e "s/'pyconfig.h'/'%{_pyconfig_h}'/" \
+ %{buildroot}%{pylibdir}/distutils/sysconfig.py \
+ %{buildroot}%{pylibdir}/sysconfig.py
+
+# Switch all shebangs to refer to the specific Python version.
+LD_LIBRARY_PATH=./build/optimized ./build/optimized/python \
+ Tools/scripts/pathfix.py \
+ -i "%{_bindir}/python%{pybasever}" \
+ %{buildroot}
+
+# Remove shebang lines from .py files that aren't executable, and
+# remove executability from .py files that don't have a shebang line:
+find %{buildroot} -name \*.py \
+ \( \( \! -perm /u+x,g+x,o+x -exec sed -e '/^#!/Q 0' -e 'Q 1' {} \; \
+ -print -exec sed -i '1d' {} \; \) -o \( \
+ -perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
+ -exec chmod a-x {} \; \) \)
+
+# .xpm and .xbm files should not be executable:
+find %{buildroot} \
+ \( -name \*.xbm -o -name \*.xpm -o -name \*.xpm.1 \) \
+ -exec chmod a-x {} \;
+
+# Remove executable flag from files that shouldn't have it:
+chmod a-x \
+ %{buildroot}%{pylibdir}/distutils/tests/Setup.sample \
+ %{buildroot}%{pylibdir}/Tools/README
+
+# Get rid of DOS batch files:
+find %{buildroot} -name \*.bat -exec rm {} \;
+
+# Get rid of backup files:
+find %{buildroot}/ -name "*~" -exec rm -f {} \;
+find . -name "*~" -exec rm -f {} \;
+rm -f %{buildroot}%{pylibdir}/LICENSE.txt
+# Junk, no point in putting in -test sub-pkg
+rm -f ${RPM_BUILD_ROOT}/%{pylibdir}/idlelib/testcode.py*
+
+# Get rid of stray patch file from buildroot:
+rm -f %{buildroot}%{pylibdir}/test/test_imp.py.apply-our-changes-to-expected-shebang # from patch 4
+
+# Fix end-of-line encodings:
+find %{buildroot}/ -name \*.py -exec sed -i 's/\r//' {} \;
+
+# Fix an encoding:
+iconv -f iso8859-1 -t utf-8 %{buildroot}/%{pylibdir}/Demo/rpc/README > README.conv && mv -f README.conv %{buildroot}/%{pylibdir}/Demo/rpc/README
+
+# Note that
+# %{pylibdir}/Demo/distutils/test2to3/setup.py
+# is in iso-8859-1 encoding, and that this is deliberate; this is test data
+# for the 2to3 tool, and one of the functions of the 2to3 tool is to fixup
+# character encodings within python source code
+
+# Do bytecompilation with the newly installed interpreter.
+# This is similar to the script in macros.pybytecompile
+# compile *.pyo
+find %{buildroot} -type f -a -name "*.py" -print0 | \
+ LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
+ PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
+ xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2]) for f in sys.argv[1:]]' || :
+# compile *.pyc
+find %{buildroot} -type f -a -name "*.py" -print0 | \
+ LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
+ PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
+ xargs -0 %{buildroot}%{_bindir}/python%{pybasever} -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("%{buildroot}")[2], optimize=0) for f in sys.argv[1:]]' || :
+
+# Fixup permissions for shared libraries from non-standard 555 to standard 755:
+find %{buildroot} \
+ -perm 555 -exec chmod 755 {} \;
+
+# Install macros for rpm:
+mkdir -p %{buildroot}/%{_rpmconfigdir}/macros.d/
+install -m 644 %{SOURCE3} %{buildroot}/%{_rpmconfigdir}/macros.d/
+install -m 644 %{SOURCE9} %{buildroot}/%{_rpmconfigdir}/macros.d/
+
+# Ensure that the curses module was linked against libncursesw.so, rather than
+# libncurses.so (bug 539917)
+ldd %{buildroot}/%{dynload_dir}/_curses*.so \
+ | grep curses \
+ | grep libncurses.so && (echo "_curses.so linked against libncurses.so" ; exit 1)
+
+# Ensure that the debug modules are linked against the debug libpython, and
+# likewise for the optimized modules and libpython:
+for Module in %{buildroot}/%{dynload_dir}/*.so ; do
+ case $Module in
+ *.%{SOABI_debug})
+ ldd $Module | grep %{py_INSTSONAME_optimized} &&
+ (echo Debug module $Module linked against optimized %{py_INSTSONAME_optimized} ; exit 1)
+
+ ;;
+ *.%{SOABI_optimized})
+ ldd $Module | grep %{py_INSTSONAME_debug} &&
+ (echo Optimized module $Module linked against debug %{py_INSTSONAME_debug} ; exit 1)
+ ;;
+ esac
+done
+
+# Create "/usr/bin/python3-debug", a symlink to the python3 debug binary, to
+# avoid the user having to know the precise version and ABI flags. (see
+# e.g. rhbz#676748):
+%if 0%{?with_debug_build}
+ln -s \
+ %{_bindir}/python%{LDVERSION_debug} \
+ %{buildroot}%{_bindir}/python3-debug
+%endif
+
+#
+# Systemtap hooks:
+#
+%if 0%{?with_systemtap}
+# Install a tapset for this libpython into tapsetdir, fixing up the path to the
+# library:
+mkdir -p %{buildroot}%{tapsetdir}
+%ifarch %{power64} s390x x86_64 ia64 alpha sparc64 aarch64 %{mips64}
+%global libpython_stp_optimized libpython%{pybasever}-64.stp
+%global libpython_stp_debug libpython%{pybasever}-debug-64.stp
+%else
+%global libpython_stp_optimized libpython%{pybasever}-32.stp
+%global libpython_stp_debug libpython%{pybasever}-debug-32.stp
+%endif
+
+sed \
+ -e "s|LIBRARY_PATH|%{_libdir}/%{py_INSTSONAME_optimized}|" \
+ %{_sourcedir}/libpython.stp \
+ > %{buildroot}%{tapsetdir}/%{libpython_stp_optimized}
+
+%if 0%{?with_debug_build}
+# In Python 3, python3 and python3-debug don't point to the same binary,
+# so we have to replace "python3" with "python3-debug" to get systemtap
+# working with debug build
+sed \
+ -e "s|LIBRARY_PATH|%{_libdir}/%{py_INSTSONAME_debug}|" \
+ -e 's|"python3"|"python3-debug"|' \
+ %{_sourcedir}/libpython.stp \
+ > %{buildroot}%{tapsetdir}/%{libpython_stp_debug}
+%endif # with_debug_build
+
+%endif # with_systemtap
+
+# Rename the script that differs on different arches to arch specific name
+mv %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-{,`uname -m`-}config
+echo -e '#!/bin/sh\nexec `dirname $0`/python%{LDVERSION_optimized}-`uname -m`-config "$@"' > \
+ %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
+echo '[ $? -eq 127 ] && echo "Could not find python%{LDVERSION_optimized}-`uname -m`-config. Look around to see available arches." >&2' >> \
+ %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
+ chmod +x %{buildroot}%{_bindir}/python%{LDVERSION_optimized}-config
+
+# System Python: Copy the executable to libexec
+mkdir -p %{buildroot}%{_libexecdir}
+cp %{buildroot}%{_bindir}/python%{pybasever} %{buildroot}%{_libexecdir}/system-python
+
+# ======================================================
+# Running the upstream test suite
+# ======================================================
+
+%check
+
+# first of all, check timestamps of bytecode files
+find %{buildroot} -type f -a -name "*.py" -print0 | \
+ LD_LIBRARY_PATH="%{buildroot}%{dynload_dir}/:%{buildroot}%{_libdir}" \
+ PYTHONPATH="%{buildroot}%{_libdir}/python%{pybasever} %{buildroot}%{_libdir}/python%{pybasever}/site-packages" \
+ xargs -0 %{buildroot}%{_bindir}/python%{pybasever} %{SOURCE8}
+
+# For ppc64 we need a larger stack than default (rhbz#1292462)
+%ifarch %{power64}
+ ulimit -a
+ ulimit -s 16384
+%endif
+
+topdir=$(pwd)
+CheckPython() {
+ ConfName=$1
+ ConfDir=$(pwd)/build/$ConfName
+
+ echo STARTING: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
+
+ # Note that we're running the tests using the version of the code in the
+ # builddir, not in the buildroot.
+
+ # Run the upstream test suite, setting "WITHIN_PYTHON_RPM_BUILD" so that the
+ # our non-standard decorators take effect on the relevant tests:
+ # @unittest._skipInRpmBuild(reason)
+ # @unittest._expectedFailureInRpmBuild
+ # test_faulthandler.test_register_chain currently fails on ppc64le and
+ # aarch64, see upstream bug http://bugs.python.org/issue21131
+ WITHIN_PYTHON_RPM_BUILD= \
+ LD_LIBRARY_PATH=$ConfDir $ConfDir/python -m test.regrtest \
+ --verbose --findleaks \
+ -x test_distutils \
+ %ifarch ppc64le aarch64
+ -x test_faulthandler \
+ %endif
+ %ifarch %{mips64}
+ -x test_ctypes \
+ %endif
+ %ifarch %{power64} s390 s390x armv7hl aarch64 %{mips}
+ -x test_gdb
+ %endif
+
+ echo FINISHED: CHECKING OF PYTHON FOR CONFIGURATION: $ConfName
+
+}
+
+%if 0%{run_selftest_suite}
+
+# Check each of the configurations:
+%if 0%{?with_debug_build}
+CheckPython debug
+%endif # with_debug_build
+CheckPython optimized
+
+%endif # run_selftest_suite
+
+
+# ======================================================
+# Cleaning up
+# ======================================================
+
+%clean
+rm -fr %{buildroot}
+
+
+# ======================================================
+# Scriptlets
+# ======================================================
+
+%post libs -p /sbin/ldconfig
+
+%postun libs -p /sbin/ldconfig
+
+%post -n system-python-libs -p /sbin/ldconfig
+
+%postun -n system-python-libs -p /sbin/ldconfig
+
+
+
+%files
+%defattr(-, root, root)
+%doc LICENSE README
+%{_bindir}/pydoc*
+%{_bindir}/python3
+%{_bindir}/python%{pybasever}
+%{_bindir}/python%{pybasever}m
+%{_bindir}/pyvenv
+%{_bindir}/pyvenv-%{pybasever}
+%{_mandir}/*/*
+
+%files libs
+%defattr(-,root,root,-)
+%doc LICENSE README
+
+%{pylibdir}/lib2to3
+%exclude %{pylibdir}/lib2to3/tests
+
+%dir %{pylibdir}/unittest/
+%dir %{pylibdir}/unittest/__pycache__/
+%{pylibdir}/unittest/*.py
+%{pylibdir}/unittest/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/asyncio/
+%dir %{pylibdir}/asyncio/__pycache__/
+%{pylibdir}/asyncio/*.py
+%{pylibdir}/asyncio/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/venv/
+%dir %{pylibdir}/venv/__pycache__/
+%{pylibdir}/venv/*.py
+%{pylibdir}/venv/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/venv/scripts
+
+%{pylibdir}/wsgiref
+%{pylibdir}/xmlrpc
+
+%dir %{pylibdir}/ensurepip/
+%dir %{pylibdir}/ensurepip/__pycache__/
+%{pylibdir}/ensurepip/*.py
+%{pylibdir}/ensurepip/__pycache__/*%{bytecode_suffixes}
+%exclude %{pylibdir}/ensurepip/_bundled
+
+%if 0%{?with_rewheel}
+%dir %{pylibdir}/ensurepip/rewheel/
+%dir %{pylibdir}/ensurepip/rewheel/__pycache__/
+%{pylibdir}/ensurepip/rewheel/*.py
+%{pylibdir}/ensurepip/rewheel/__pycache__/*%{bytecode_suffixes}
+%endif
+
+%{pylibdir}/idlelib
+
+%dir %{pylibdir}/test/
+%dir %{pylibdir}/test/__pycache__/
+%dir %{pylibdir}/test/support/
+%dir %{pylibdir}/test/support/__pycache__/
+%{pylibdir}/test/__init__.py
+%{pylibdir}/test/__pycache__/__init__%{bytecode_suffixes}
+%{pylibdir}/test/support/__init__.py
+%{pylibdir}/test/support/__pycache__/__init__%{bytecode_suffixes}
+
+%dir %{pylibdir}/concurrent/
+%dir %{pylibdir}/concurrent/__pycache__/
+%{pylibdir}/concurrent/*.py
+%{pylibdir}/concurrent/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/concurrent/futures/
+%dir %{pylibdir}/concurrent/futures/__pycache__/
+%{pylibdir}/concurrent/futures/*.py
+%{pylibdir}/concurrent/futures/__pycache__/*%{bytecode_suffixes}
+
+%{pylibdir}/pydoc_data
+
+##################################################################################
+
+%files -n system-python
+%defattr(-,root,root,-)
+%doc LICENSE README
+%{_libexecdir}/system-python
+
+%files -n system-python-libs
+%defattr(-,root,root,-)
+%doc LICENSE README
+%dir %{pylibdir}
+%dir %{dynload_dir}
+%{dynload_dir}/_bisect.%{SOABI_optimized}.so
+%{dynload_dir}/_bz2.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_cn.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_hk.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_iso2022.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_jp.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_kr.%{SOABI_optimized}.so
+%{dynload_dir}/_codecs_tw.%{SOABI_optimized}.so
+%{dynload_dir}/_crypt.%{SOABI_optimized}.so
+%{dynload_dir}/_csv.%{SOABI_optimized}.so
+%{dynload_dir}/_ctypes.%{SOABI_optimized}.so
+%{dynload_dir}/_curses.%{SOABI_optimized}.so
+%{dynload_dir}/_curses_panel.%{SOABI_optimized}.so
+%{dynload_dir}/_dbm.%{SOABI_optimized}.so
+%{dynload_dir}/_decimal.%{SOABI_optimized}.so
+%{dynload_dir}/_elementtree.%{SOABI_optimized}.so
+%if %{with_gdbm}
+%{dynload_dir}/_gdbm.%{SOABI_optimized}.so
+%endif
+%{dynload_dir}/_hashlib.%{SOABI_optimized}.so
+%{dynload_dir}/_heapq.%{SOABI_optimized}.so
+%{dynload_dir}/_json.%{SOABI_optimized}.so
+%{dynload_dir}/_lsprof.%{SOABI_optimized}.so
+%{dynload_dir}/_lzma.%{SOABI_optimized}.so
+%{dynload_dir}/_multibytecodec.%{SOABI_optimized}.so
+%{dynload_dir}/_multiprocessing.%{SOABI_optimized}.so
+%{dynload_dir}/_opcode.%{SOABI_optimized}.so
+%{dynload_dir}/_pickle.%{SOABI_optimized}.so
+%{dynload_dir}/_posixsubprocess.%{SOABI_optimized}.so
+%{dynload_dir}/_random.%{SOABI_optimized}.so
+%{dynload_dir}/_socket.%{SOABI_optimized}.so
+%{dynload_dir}/_sqlite3.%{SOABI_optimized}.so
+%{dynload_dir}/_ssl.%{SOABI_optimized}.so
+%{dynload_dir}/_struct.%{SOABI_optimized}.so
+%{dynload_dir}/array.%{SOABI_optimized}.so
+%{dynload_dir}/audioop.%{SOABI_optimized}.so
+%{dynload_dir}/binascii.%{SOABI_optimized}.so
+%{dynload_dir}/cmath.%{SOABI_optimized}.so
+%{dynload_dir}/_datetime.%{SOABI_optimized}.so
+%{dynload_dir}/fcntl.%{SOABI_optimized}.so
+%{dynload_dir}/grp.%{SOABI_optimized}.so
+%{dynload_dir}/math.%{SOABI_optimized}.so
+%{dynload_dir}/mmap.%{SOABI_optimized}.so
+%{dynload_dir}/nis.%{SOABI_optimized}.so
+%{dynload_dir}/ossaudiodev.%{SOABI_optimized}.so
+%{dynload_dir}/parser.%{SOABI_optimized}.so
+%{dynload_dir}/pyexpat.%{SOABI_optimized}.so
+%{dynload_dir}/readline.%{SOABI_optimized}.so
+%{dynload_dir}/resource.%{SOABI_optimized}.so
+%{dynload_dir}/select.%{SOABI_optimized}.so
+%{dynload_dir}/spwd.%{SOABI_optimized}.so
+%{dynload_dir}/syslog.%{SOABI_optimized}.so
+%{dynload_dir}/termios.%{SOABI_optimized}.so
+#%{dynload_dir}/time.%{SOABI_optimized}.so
+%{dynload_dir}/_testmultiphase.%{SOABI_optimized}.so
+%{dynload_dir}/unicodedata.%{SOABI_optimized}.so
+%{dynload_dir}/xxlimited.%{SOABI_optimized}.so
+%{dynload_dir}/zlib.%{SOABI_optimized}.so
+
+%dir %{pylibdir}/site-packages/
+%dir %{pylibdir}/site-packages/__pycache__/
+%{pylibdir}/site-packages/README
+%{pylibdir}/*.py
+%dir %{pylibdir}/__pycache__/
+%{pylibdir}/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/collections/
+%dir %{pylibdir}/collections/__pycache__/
+%{pylibdir}/collections/*.py
+%{pylibdir}/collections/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/ctypes/
+%dir %{pylibdir}/ctypes/__pycache__/
+%{pylibdir}/ctypes/*.py
+%{pylibdir}/ctypes/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/ctypes/macholib
+
+%{pylibdir}/curses
+
+%dir %{pylibdir}/dbm/
+%dir %{pylibdir}/dbm/__pycache__/
+%{pylibdir}/dbm/*.py
+%{pylibdir}/dbm/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/distutils/
+%dir %{pylibdir}/distutils/__pycache__/
+%{pylibdir}/distutils/*.py
+%{pylibdir}/distutils/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/distutils/README
+%{pylibdir}/distutils/command
+
+
+%dir %{pylibdir}/email/
+%dir %{pylibdir}/email/__pycache__/
+%{pylibdir}/email/*.py
+%{pylibdir}/email/__pycache__/*%{bytecode_suffixes}
+%{pylibdir}/email/mime
+%doc %{pylibdir}/email/architecture.rst
+
+%{pylibdir}/encodings
+
+%{pylibdir}/html
+%{pylibdir}/http
+
+%dir %{pylibdir}/importlib/
+%dir %{pylibdir}/importlib/__pycache__/
+%{pylibdir}/importlib/*.py
+%{pylibdir}/importlib/__pycache__/*%{bytecode_suffixes}
+
+%dir %{pylibdir}/json/
+%dir %{pylibdir}/json/__pycache__/
+%{pylibdir}/json/*.py
+%{pylibdir}/json/__pycache__/*%{bytecode_suffixes}
+
+%{pylibdir}/logging
+%{pylibdir}/multiprocessing
+%{pylibdir}/plat-linux
+
+%dir %{pylibdir}/sqlite3/
+%dir %{pylibdir}/sqlite3/__pycache__/
+%{pylibdir}/sqlite3/*.py
+%{pylibdir}/sqlite3/__pycache__/*%{bytecode_suffixes}
+
+%exclude %{pylibdir}/turtle.py
+%exclude %{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
+
+%{pylibdir}/urllib
+%{pylibdir}/xml
+
+%if "%{_lib}" == "lib64"
+%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}
+%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages
+%attr(0755,root,root) %dir %{_prefix}/lib/python%{pybasever}/site-packages/__pycache__/
+%endif
+
+# "Makefile" and the config-32/64.h file are needed by
+# distutils/sysconfig.py:_init_posix(), so we include them in the core
+# package, along with their parent directories (bug 531901):
+%dir %{pylibdir}/config-%{LDVERSION_optimized}/
+%{pylibdir}/config-%{LDVERSION_optimized}/Makefile
+%dir %{_includedir}/python%{LDVERSION_optimized}/
+%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
+
+%{_libdir}/%{py_INSTSONAME_optimized}
+%{_libdir}/libpython3.so
+%if 0%{?with_systemtap}
+%dir %(dirname %{tapsetdir})
+%dir %{tapsetdir}
+%{tapsetdir}/%{libpython_stp_optimized}
+%doc systemtap-example.stp pyfuntop.stp
+%endif
+
+%files devel
+%defattr(-,root,root)
+%{pylibdir}/config-%{LDVERSION_optimized}/*
+%exclude %{pylibdir}/config-%{LDVERSION_optimized}/Makefile
+%{_includedir}/python%{LDVERSION_optimized}/*.h
+%exclude %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
+%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
+%{_bindir}/python3-config
+%{_bindir}/python%{pybasever}-config
+%{_bindir}/python%{LDVERSION_optimized}-config
+%{_bindir}/python%{LDVERSION_optimized}-*-config
+%{_libdir}/libpython%{LDVERSION_optimized}.so
+%{_libdir}/pkgconfig/python-%{LDVERSION_optimized}.pc
+%{_libdir}/pkgconfig/python-%{pybasever}.pc
+%{_libdir}/pkgconfig/python3.pc
+%{_rpmconfigdir}/macros.d/macros.pybytecompile%{pybasever}
+%{_rpmconfigdir}/macros.d/macros.systempython
+
+%files tools
+%defattr(-,root,root,755)
+%{_bindir}/python3-2to3
+%{_bindir}/2to3-%{pybasever}
+%{_bindir}/idle*
+%{pylibdir}/Tools
+%doc %{pylibdir}/Doc
+
+%files tkinter
+%defattr(-,root,root,755)
+%{pylibdir}/tkinter
+%exclude %{pylibdir}/tkinter/test
+%{dynload_dir}/_tkinter.%{SOABI_optimized}.so
+%{pylibdir}/turtle.py
+%{pylibdir}/__pycache__/turtle*%{bytecode_suffixes}
+%dir %{pylibdir}/turtledemo
+%{pylibdir}/turtledemo/*.py
+%{pylibdir}/turtledemo/*.cfg
+%dir %{pylibdir}/turtledemo/__pycache__/
+%{pylibdir}/turtledemo/__pycache__/*%{bytecode_suffixes}
+
+%files test
+%defattr(-, root, root)
+%{pylibdir}/ctypes/test
+%{pylibdir}/distutils/tests
+%{pylibdir}/sqlite3/test
+%{pylibdir}/test
+%{dynload_dir}/_ctypes_test.%{SOABI_optimized}.so
+%{dynload_dir}/_testbuffer.%{SOABI_optimized}.so
+%{dynload_dir}/_testcapi.%{SOABI_optimized}.so
+%{dynload_dir}/_testimportmultiple.%{SOABI_optimized}.so
+%{pylibdir}/lib2to3/tests
+%{pylibdir}/tkinter/test
+%{pylibdir}/unittest/test
+
+
+# We don't bother splitting the debug build out into further subpackages:
+# if you need it, you're probably a developer.
+
+# Hence the manifest is the combination of analogous files in the manifests of
+# all of the other subpackages
+
+%if 0%{?with_debug_build}
+%files debug
+%defattr(-,root,root,-)
+
+# Analog of the core subpackage's files:
+%{_bindir}/python%{LDVERSION_debug}
+%{_bindir}/python3-debug
+
+# Analog of the -libs subpackage's files:
+# ...with debug builds of the built-in "extension" modules:
+%{dynload_dir}/_bisect.%{SOABI_debug}.so
+%{dynload_dir}/_bz2.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_cn.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_hk.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_iso2022.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_jp.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_kr.%{SOABI_debug}.so
+%{dynload_dir}/_codecs_tw.%{SOABI_debug}.so
+%{dynload_dir}/_crypt.%{SOABI_debug}.so
+%{dynload_dir}/_csv.%{SOABI_debug}.so
+%{dynload_dir}/_ctypes.%{SOABI_debug}.so
+%{dynload_dir}/_curses.%{SOABI_debug}.so
+%{dynload_dir}/_curses_panel.%{SOABI_debug}.so
+%{dynload_dir}/_dbm.%{SOABI_debug}.so
+%{dynload_dir}/_decimal.%{SOABI_debug}.so
+%{dynload_dir}/_elementtree.%{SOABI_debug}.so
+%if %{with_gdbm}
+%{dynload_dir}/_gdbm.%{SOABI_debug}.so
+%endif
+%{dynload_dir}/_hashlib.%{SOABI_debug}.so
+%{dynload_dir}/_heapq.%{SOABI_debug}.so
+%{dynload_dir}/_json.%{SOABI_debug}.so
+%{dynload_dir}/_lsprof.%{SOABI_debug}.so
+%{dynload_dir}/_lzma.%{SOABI_debug}.so
+%{dynload_dir}/_multibytecodec.%{SOABI_debug}.so
+%{dynload_dir}/_multiprocessing.%{SOABI_debug}.so
+%{dynload_dir}/_opcode.%{SOABI_debug}.so
+%{dynload_dir}/_pickle.%{SOABI_debug}.so
+%{dynload_dir}/_posixsubprocess.%{SOABI_debug}.so
+%{dynload_dir}/_random.%{SOABI_debug}.so
+%{dynload_dir}/_socket.%{SOABI_debug}.so
+%{dynload_dir}/_sqlite3.%{SOABI_debug}.so
+%{dynload_dir}/_ssl.%{SOABI_debug}.so
+%{dynload_dir}/_struct.%{SOABI_debug}.so
+%{dynload_dir}/array.%{SOABI_debug}.so
+%{dynload_dir}/audioop.%{SOABI_debug}.so
+%{dynload_dir}/binascii.%{SOABI_debug}.so
+%{dynload_dir}/cmath.%{SOABI_debug}.so
+%{dynload_dir}/_datetime.%{SOABI_debug}.so
+%{dynload_dir}/fcntl.%{SOABI_debug}.so
+%{dynload_dir}/grp.%{SOABI_debug}.so
+%{dynload_dir}/math.%{SOABI_debug}.so
+%{dynload_dir}/mmap.%{SOABI_debug}.so
+%{dynload_dir}/nis.%{SOABI_debug}.so
+%{dynload_dir}/ossaudiodev.%{SOABI_debug}.so
+%{dynload_dir}/parser.%{SOABI_debug}.so
+%{dynload_dir}/pyexpat.%{SOABI_debug}.so
+%{dynload_dir}/readline.%{SOABI_debug}.so
+%{dynload_dir}/resource.%{SOABI_debug}.so
+%{dynload_dir}/select.%{SOABI_debug}.so
+%{dynload_dir}/spwd.%{SOABI_debug}.so
+%{dynload_dir}/syslog.%{SOABI_debug}.so
+%{dynload_dir}/termios.%{SOABI_debug}.so
+#%{dynload_dir}/time.%{SOABI_debug}.so
+%{dynload_dir}/_testmultiphase.%{SOABI_debug}.so
+%{dynload_dir}/unicodedata.%{SOABI_debug}.so
+%{dynload_dir}/zlib.%{SOABI_debug}.so
+
+# No need to split things out the "Makefile" and the config-32/64.h file as we
+# do for the regular build above (bug 531901), since they're all in one package
+# now; they're listed below, under "-devel":
+
+%{_libdir}/%{py_INSTSONAME_debug}
+%if 0%{?with_systemtap}
+%dir %(dirname %{tapsetdir})
+%dir %{tapsetdir}
+%{tapsetdir}/%{libpython_stp_debug}
+%endif
+
+# Analog of the -devel subpackage's files:
+%{pylibdir}/config-%{LDVERSION_debug}
+%{_includedir}/python%{LDVERSION_debug}
+%{_bindir}/python%{LDVERSION_debug}-config
+%{_libdir}/libpython%{LDVERSION_debug}.so
+%{_libdir}/libpython%{LDVERSION_debug}.so.1.0
+%{_libdir}/pkgconfig/python-%{LDVERSION_debug}.pc
+
+# Analog of the -tools subpackage's files:
+# None for now; we could build precanned versions that have the appropriate
+# shebang if needed
+
+# Analog of the tkinter subpackage's files:
+%{dynload_dir}/_tkinter.%{SOABI_debug}.so
+
+# Analog of the -test subpackage's files:
+%{dynload_dir}/_ctypes_test.%{SOABI_debug}.so
+%{dynload_dir}/_testbuffer.%{SOABI_debug}.so
+%{dynload_dir}/_testcapi.%{SOABI_debug}.so
+%{dynload_dir}/_testimportmultiple.%{SOABI_debug}.so
+
+%endif # with_debug_build
+
+# We put the debug-gdb.py file inside /usr/lib/debug to avoid noise from
+# ldconfig (rhbz:562980).
+#
+# The /usr/lib/rpm/redhat/macros defines %__debug_package to use
+# debugfiles.list, and it appears that everything below /usr/lib/debug and
+# (/usr/src/debug) gets added to this file (via LISTFILES) in
+# /usr/lib/rpm/find-debuginfo.sh
+#
+# Hence by installing it below /usr/lib/debug we ensure it is added to the
+# -debuginfo subpackage
+# (if it doesn't, then the rpmbuild ought to fail since the debug-gdb.py
+# payload file would be unpackaged)
+
+
+# ======================================================
+# Finally, the changelog:
+# ======================================================
+
+%changelog
+* Mon Aug 01 2016 Michal Toman <mtoman(a)fedoraproject.org> - 3.5.1-14
+- Build properly on MIPS
+
+* Tue Jul 19 2016 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.5.1-13
+- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_...
+
+* Fri Jul 08 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-12
+- Refactor patch for properly fixing CVE-2016-5636
+
+* Fri Jul 08 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-11
+- Fix test_pyexpat failure with Expat version of 2.2.0
+
+* Fri Jul 08 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-10
+- Move xml module to system-python-libs
+
+* Thu Jun 16 2016 Tomas Orsava <torsava(a)redhat.com> - 3.5.1-9
+- Fix for: CVE-2016-0772 python: smtplib StartTLS stripping attack
+- Raise an error when STARTTLS fails
+- rhbz#1303647: https://bugzilla.redhat.com/show_bug.cgi?id=1303647
+- rhbz#1346345: https://bugzilla.redhat.com/show_bug.cgi?id=1346345
+- Fixed upstream: https://hg.python.org/cpython/rev/d590114c2394
+
+* Mon Jun 13 2016 Charalampos Stratakis <cstratak(a)redhat.com> - 3.5.1-8
+- Added patch for fixing possible integer overflow and heap corruption in zipimporter.get_data()
+
+* Fri Mar 04 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-7
+- Move distutils to system-python-libs
+
+* Wed Feb 24 2016 Robert Kuska <rkuska(a)redhat.com> - 3.5.1-6
+- Provide python3-enum34
+
+* Fri Feb 19 2016 Miro Hronok <mhroncok(a)redhat.com> - 3.5.1-5
+- Provide System Python packages and macros
+
+* Thu Feb 04 2016 Fedora Release Engineering <releng(a)fedoraproject.org> - 3.5.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Wed Jan 13 2016 Orion Poplwski <orion(a)cora.nwra.com> - 3.5.1-2
+- Drop python3 macros, require python/python3-rpm-macros
+
+* Mon Dec 14 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.1-1
+- Update to 3.5.1
+- Removed patch 199 and 207 (upstream)
+
+* Sun Nov 15 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-5
+- Remove versioned libpython from devel package
+
+* Fri Nov 13 2015 Than Ngo <than(a)redhat.com> 3.5.0-4
+- add correct arch for ppc64/ppc64le to fix build failure
+
+* Wed Nov 11 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-3
+- Hide the private _Py_atomic_xxx symbols from public header
+
+* Wed Oct 14 2015 Robert Kuska <rkuska(a)redhat.com> - 3.5.0-2
+- Rebuild with wheel set to 1
+
+* Tue Sep 15 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.5.0-1
+- Update to 3.5.0
+
+* Mon Jun 29 2015 Thomas Spura <tomspur(a)fedoraproject.org> - 3.4.3-4
+- python3-devel: Require python-macros for version independant macros such as
+ python_provide. See fpc#281 and fpc#534.
+
+* Thu Jun 18 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Wed Jun 17 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-4
+- Use 1024bit DH key in test_ssl
+- Use -O0 when compiling -debug build
+- Update pip version variable to the version we actually ship
+
+* Wed Jun 17 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-3
+- Make relocating Python by changing _prefix actually work
+Resolves: rhbz#1231801
+
+* Mon May 4 2015 Peter Robinson <pbrobinson(a)fedoraproject.org> 3.4.3-2
+- Disable test_gdb on aarch64 (rhbz#1196181), it joins all other non x86 arches
+
+* Thu Mar 12 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.3-1
+- Updated to 3.4.3
+- BuildPython now accepts additional build options
+- Temporarily disabled test_gdb on arm (rhbz#1196181)
+
+* Wed Feb 25 2015 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.2-7
+- Fixed undefined behaviour in faulthandler which caused test to hang on x86_64
+ (http://bugs.python.org/issue23433)
+
+* Sat Feb 21 2015 Till Maas <opensource(a)till.name> - 3.4.2-6
+- Rebuilt for Fedora 23 Change
+ https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-...
+
+* Tue Feb 17 2015 Ville Skytt <ville.skytta(a)iki.fi> - 3.4.2-5
+- Own systemtap dirs (#710733)
+
+* Mon Jan 12 2015 Dan Hork <dan[at]danny.cz> - 3.4.2-4
+- build with valgrind on ppc64le
+- disable test_gdb on s390(x) until rhbz#1181034 is resolved
+
+* Tue Dec 16 2014 Robert Kuska <rkuska(a)redhat.com> - 3.4.2-3
+- New patches: 170 (gc asserts), 200 (gettext headers),
+ 201 (gdbm memory leak)
+
+* Thu Dec 11 2014 Robert Kuska <rkuska(a)redhat.com> - 3.4.2-2
+- OpenSSL disabled SSLv3 in SSLv23 method
+
+* Thu Nov 13 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.2-1
+- Update to 3.4.2
+- Refreshed patches: 156 (gdb autoload)
+- Removed: 195 (Werror declaration), 197 (CVE-2014-4650)
+
+* Mon Nov 03 2014 Slavek Kabrda <bkabrda(a)redhat.com> - 3.4.1-16
+- Fix CVE-2014-4650 - CGIHTTPServer URL handling
+Resolves: rhbz#1113529
+
+* Sun Sep 07 2014 Karsten Hopp <karsten(a)redhat.com> 3.4.1-15
+- exclude test_gdb on ppc* (rhbz#1132488)
+
+* Thu Aug 21 2014 Slavek Kabrda <bkabrda(a)redhat.com> - 3.4.1-14
+- Update rewheel patch with fix from https://github.com/bkabrda/rewheel/pull/1
+
+* Sun Aug 17 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.1-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sun Jun 8 2014 Peter Robinson <pbrobinson(a)fedoraproject.org> 3.4.1-12
+- aarch64 has valgrind, just list those that don't support it
+
+* Sun Jun 08 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.4.1-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Wed Jun 04 2014 Karsten Hopp <karsten(a)redhat.com> 3.4.1-10
+- bump release and rebuild to link with the correct tcl/tk libs on ppcle
+
+* Tue Jun 03 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-9
+- Change paths to bundled projects in rewheel patch
+
+* Fri May 30 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-8
+- In config script, use uname -m to write the arch
+
+* Thu May 29 2014 Dan Hork <dan[at]danny.cz> - 3.4.1-7
+- update the arch list where valgrind exists - %%power64 includes also
+ ppc64le which is not supported yet
+
+* Thu May 29 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-6
+- Forward arguments to the arch specific config script
+Resolves: rhbz#1102683
+
+* Wed May 28 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-5
+- Rename python3.Xm-config script to arch specific.
+Resolves: rhbz#1091815
+
+* Tue May 27 2014 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.1-4
+- Use python3-*, not python-* runtime requires on setuptools and pip
+- rebuild for tcl-8.6
+
+* Tue May 27 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-3
+- Update the rewheel module
+
+* Mon May 26 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.1-2
+- Fix multilib dependencies.
+Resolves: rhbz#1091815
+
+* Sun May 25 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.1-1
+- Update to Python 3.4.1
+
+* Sun May 25 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-8
+- Fix test_gdb failure on ppc64le
+Resolves: rhbz#1095355
+
+* Thu May 22 2014 Miro Hronok <mhroncok(a)redhat.com> - 3.4.0-7
+- Add macro %%python3_version_nodots
+
+* Sun May 18 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-6
+- Disable test_faulthandler, test_gdb on aarch64
+Resolves: rhbz#1045193
+
+* Fri May 16 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-5
+- Don't add Werror=declaration-after-statement for extension
+ modules through setup.py (PyBT#21121)
+
+* Mon May 12 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-4
+- Add setuptools and pip to Requires
+
+* Tue Apr 29 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-3
+- Point __os_install_post to correct brp-* files
+
+* Tue Apr 15 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-2
+- Temporarily disable tests requiring SIGHUP (rhbz#1088233)
+
+* Tue Apr 15 2014 Matej Stuchlik <mstuchli(a)redhat.com> - 3.4.0-1
+- Update to Python 3.4 final
+- Add patch adding the rewheel module
+- Merge patches from master
+
+* Wed Jan 08 2014 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.b2
+- Update to Python 3.4 beta 2.
+- Refreshed patches: 55 (systemtap), 146 (hashlib-fips), 154 (test_gdb noise)
+- Dropped patches: 114 (statvfs constants), 177 (platform unicode)
+
+* Mon Nov 25 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.b1
+- Update to Python 3.4 beta 1.
+- Refreshed patches: 102 (lib64), 111 (no static lib), 125 (less verbose COUNT
+ALLOCS), 141 (fix COUNT_ALLOCS in test_module), 146 (hashlib fips),
+157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port)
+- Removed patch 00187 (remove pthread atfork; upstreamed)
+
+* Mon Nov 04 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.4.0-0.1.a4
+- Update to Python 3.4 alpha 4.
+- Refreshed patches: 55 (systemtap), 102 (lib64), 111 (no static lib),
+114 (statvfs flags), 132 (unittest rpmbuild hooks), 134 (fix COUNT_ALLOCS in
+test_sys), 143 (tsc on ppc64), 146 (hashlib fips), 153 (test gdb noise),
+157 (UID+GID overflows), 173 (ENOPROTOOPT in bind_port), 186 (dont raise
+from py_compile)
+- Removed patches: 129 (test_subprocess nonreadable dir - no longer fails in
+Koji), 142 (the mock issue that caused this is fixed)
+- Added patch 187 (remove thread atfork) - will be in next version
+- Refreshed script for checking pyc and pyo timestamps with new ignored files.
+- The fips patch is disabled for now until upstream makes a final decision
+what to do with sha3 implementation for 3.4.0.
+
+* Wed Oct 30 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-7
+- Bytecompile all *.py files properly during build (rhbz#1023607)
+
+* Fri Aug 23 2013 Matej Stuchlik <mstuchli(a)redhat.com> - 3.3.2-6
+- Added fix for CVE-2013-4238 (rhbz#996399)
+
+* Fri Jul 26 2013 Dennis Gilmore <dennis(a)ausil.us> - 3.3.2-5
+- fix up indentation in arm patch
+
+* Fri Jul 26 2013 Dennis Gilmore <dennis(a)ausil.us> - 3.3.2-4
+- disable a test that fails on arm
+- enable valgrind support on arm arches
+
+* Tue Jul 02 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-3
+- Fix build with libffi containing multilib wrapper for ffi.h (rhbz#979696).
+
+* Mon May 20 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-2
+- Add patch for CVE-2013-2099 (rhbz#963261).
+
+* Thu May 16 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.2-1
+- Updated to Python 3.3.2.
+- Refreshed patches: 153 (gdb test noise)
+- Dropped patches: 175 (configure -Wformat, fixed upstream), 182 (gdb
+test threads)
+- Synced patch numbers with python.spec.
+
+* Thu May 9 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.1-4
+- fix test.test_gdb.PyBtTests.test_threads on ppc64 (patch 181; rhbz#960010)
+
+* Thu May 02 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-3
+- Add patch that enables building on ppc64p7 (replace the sed, so that
+we get consistent with python2 spec and it's more obvious that we're doing it.
+
+* Wed Apr 24 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-2
+- Add fix for gdb tests failing on arm, rhbz#951802.
+
+* Tue Apr 09 2013 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.3.1-1
+- Updated to Python 3.3.1.
+- Refreshed patches: 55 (systemtap), 111 (no static lib), 146 (hashlib fips),
+153 (fix test_gdb noise), 157 (uid, gid overflow - fixed upstream, just
+keeping few more downstream tests)
+- Removed patches: 3 (audiotest.au made it to upstream tarball)
+- Removed workaround for http://bugs.python.org/issue14774, discussed in
+http://bugs.python.org/issue15298 and fixed in revision 24d52d3060e8.
+
+* Mon Mar 25 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-10
+- fix gcc 4.8 incompatibility (rhbz#927358); regenerate autotool intermediates
+
+* Mon Mar 25 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-9
+- renumber patches to keep them in sync with python.spec
+
+* Fri Mar 15 2013 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.3.0-8
+- Fix error in platform.platform() when non-ascii byte strings are decoded to
+ unicode (rhbz#922149)
+
+* Thu Mar 14 2013 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.3.0-7
+- Fix up shared library extension (rhbz#889784)
+
+* Thu Mar 07 2013 Karsten Hopp <karsten(a)redhat.com> 3.3.0-6
+- add ppc64p7 build target, optimized for Power7
+
+* Mon Mar 4 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-5
+- add workaround for ENOPROTOOPT seen running selftests in Koji
+(rhbz#913732)
+
+* Mon Mar 4 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-4
+- remove config flag from /etc/rpm/macros.{python3|pybytecompile}
+
+* Mon Feb 11 2013 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-3
+- add aarch64 (rhbz#909783)
+
+* Thu Nov 29 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-2
+- add BR on bluez-libs-devel (rhbz#879720)
+
+* Sat Sep 29 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-1
+- 3.3.0rc3 -> 3.3.0; drop alphatag
+
+* Mon Sep 24 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.6.rc3
+- 3.3.0rc2 -> 3.3.0rc3
+
+* Mon Sep 10 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.5.rc2
+- 3.3.0rc1 -> 3.3.0rc2; refresh patch 55
+
+* Mon Aug 27 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.4.rc1
+- 3.3.0b2 -> 3.3.0rc1; refresh patches 3, 55
+
+* Mon Aug 13 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.3.b2
+- 3.3b1 -> 3.3b2; drop upstreamed patch 152; refresh patches 3, 102, 111,
+134, 153, 160; regenenerate autotools patch; rework systemtap patch to work
+correctly when LANG=C (patch 55); importlib.test was moved to
+test.test_importlib upstream
+
+* Mon Aug 13 2012 Karsten Hopp <karsten(a)redhat.com> 3.3.0-0.2.b1
+- disable some failing checks on PPC* (rhbz#846849)
+
+* Fri Aug 3 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.1.b1
+- 3.2 -> 3.3: https://fedoraproject.org/wiki/Features/Python_3.3
+- 3.3.0b1: refresh patches 3, 55, 102, 111, 113, 114, 134, 157; drop upstream
+patch 147; regenenerate autotools patch; drop "--with-wide-unicode" from
+configure (PEP 393); "plat-linux2" -> "plat-linux" (upstream issue 12326);
+"bz2" -> "_bz2" and "crypt" -> "_crypt"; egg-info files are no longer shipped
+for stdlib (upstream issues 10645 and 12218); email/test moved to
+test/test_email; add /usr/bin/pyvenv[-3.3] and venv module (PEP 405); add
+_decimal and _lzma modules; make collections modules explicit in payload again
+(upstream issue 11085); add _testbuffer module to tests subpackage (added in
+upstream commit 3f9b3b6f7ff0); fix test failures (patches 160 and 161);
+workaround erroneously shared _sysconfigdata.py upstream issue #14774; fix
+distutils.sysconfig traceback (patch 162); add BuildRequires: xz-devel (for
+_lzma module); skip some tests within test_socket (patch 163)
+
+* Sat Jul 21 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.2.3-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Fri Jul 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.3.0-0.1.b1
+
+* Fri Jun 22 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-10
+- use macro for power64 (rhbz#834653)
+
+* Mon Jun 18 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-9
+- fix missing include in uid/gid handling patch (patch 157; rhbz#830405)
+
+* Wed May 30 2012 Bohuslav Kabrda <bkabrda(a)redhat.com> - 3.2.3-8
+- fix tapset for debug build
+
+* Tue May 15 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-7
+- update uid/gid handling to avoid int overflows seen with uid/gid
+values >= 2^31 on 32-bit architectures (patch 157; rhbz#697470)
+
+* Fri May 4 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-6
+- renumber autotools patch from 300 to 5000
+- specfile cleanups
+
+* Mon Apr 30 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-5
+- fix test_gdb.py (patch 156; rhbz#817072)
+
+* Fri Apr 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-4
+- avoid allocating thunks in ctypes unless absolutely necessary, to avoid
+generating SELinux denials on "import ctypes" and "import uuid" when embedding
+Python within httpd (patch 155; rhbz#814391)
+
+* Fri Apr 20 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-3
+- add explicit version requirements on expat to avoid linkage problems with
+XML_SetHashSalt
+
+* Thu Apr 12 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-2
+- fix test_gdb (patch 153)
+
+* Wed Apr 11 2012 David Malcolm <dmalcolm(a)redhat.com> - 3.2.3-1
+- 3.2.3; refresh patch 102 (lib64); drop upstream patches 148 (gdbm magic
+values), 149 (__pycache__ fix); add patch 152 (test_gdb regex)
+
+* Thu Feb 9 2012 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2.2-13
+- use newly installed python for byte compiling (now for real)
+
+* Sun Feb 5 2012 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2.2-12
+- use newly installed python for byte compiling (#787498)
+
+* Wed Jan 4 2012 Ville Skytt <ville.skytta(a)iki.fi> - 3.2.2-11
+- Build with $RPM_LD_FLAGS (#756863).
+- Use xz-compressed source tarball.
+
+* Wed Dec 07 2011 Karsten Hopp <karsten(a)redhat.com> 3.2.2-10
+- disable rAssertAlmostEqual in test_cmath on PPC (#750811)
+
+* Mon Oct 17 2011 Rex Dieter <rdieter(a)fedoraproject.org> - 3.2.2-9
+- python3-devel missing autogenerated pkgconfig() provides (#746751)
+
+* Mon Oct 10 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-8
+- cherrypick fix for distutils not using __pycache__ when byte-compiling
+files (rhbz#722578)
+
+* Fri Sep 30 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-7
+- re-enable gdbm (patch 148; rhbz#742242)
+
+* Fri Sep 16 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-6
+- add a sys._debugmallocstats() function (patch 147)
+
+* Wed Sep 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-5
+- support OpenSSL FIPS mode in _hashlib and hashlib; don't build the _md5 and
+_sha* modules, relying on _hashlib in hashlib (rhbz#563986; patch 146)
+
+* Tue Sep 13 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-4
+- disable gdbm module to prepare for gdbm soname bump
+
+* Mon Sep 12 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-3
+- renumber and rename patches for consistency with python.spec (8 to 55, 106
+to 104, 6 to 111, 104 to 113, 105 to 114, 125, 131, 130 to 143)
+
+* Sat Sep 10 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-2
+- rewrite of "check", introducing downstream-only hooks for skipping specific
+cases in an rpmbuild (patch 132), and fixing/skipping failing tests in a more
+fine-grained manner than before; (patches 106, 133-142 sparsely, moving
+patches for consistency with python.spec: 128 to 134, 126 to 135, 127 to 141)
+
+* Tue Sep 6 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.2-1
+- 3.2.2
+
+* Thu Sep 1 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-7
+- run selftests with "--verbose"
+- disable parts of test_io on ppc (rhbz#732998)
+
+* Wed Aug 31 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-6
+- use "--findleaks --verbose3" when running test suite
+
+* Tue Aug 23 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-5
+- re-enable and fix the --with-tsc option on ppc64, and rework it on 32-bit
+ppc to avoid aliasing violations (patch 130; rhbz#698726)
+
+* Tue Aug 23 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-4
+- don't use --with-tsc on ppc64 debug builds (rhbz#698726)
+
+* Thu Aug 18 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-3
+- add %%python3_version to the rpm macros (rhbz#719082)
+
+* Mon Jul 11 2011 Dennis Gilmore <dennis(a)ausil.us> - 3.2.1-2
+- disable some tests on sparc arches
+
+* Mon Jul 11 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2.1-1
+- 3.2.1; refresh lib64 patch (102), subprocess unit test patch (129), disabling
+of static library build (due to Modules/_testembed; patch 6), autotool
+intermediates (patch 300)
+
+* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-5
+- use the gdb hooks from the upstream tarball, rather than keeping our own copy
+
+* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-4
+- don't run test_openpty and test_pty in %%check
+
+* Fri Jul 8 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-3
+- cleanup of BuildRequires; add comment headings to specfile sections
+
+* Tue Apr 19 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-2
+- fix the libpython.stp systemtap tapset (rhbz#697730)
+
+* Mon Feb 21 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-1
+- 3.2
+- drop alphatag
+- regenerate autotool patch
+
+* Mon Feb 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.13.rc3
+- add a /usr/bin/python3-debug symlink within the debug subpackage
+
+* Mon Feb 14 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.12.rc3
+- 3.2rc3
+- regenerate autotool patch
+
+* Wed Feb 09 2011 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 3.2-0.11.rc2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Mon Jan 31 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.10.rc2
+- 3.2rc2
+
+* Mon Jan 17 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.9.rc1
+- 3.2rc1
+- rework patch 6 (static lib removal)
+- remove upstreamed patch 130 (ppc debug build)
+- regenerate patch 300 (autotool intermediates)
+- updated packaging to reflect upstream rewrite of "Demo" (issue 7962)
+- added libpython3.so and 2to3-3.2
+
+* Wed Jan 5 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.8.b2
+- set EXTRA_CFLAGS to our CFLAGS, rather than overriding OPT, fixing a linker
+error with dynamic annotations (when configured using --with-valgrind)
+- fix the ppc build of the debug configuration (patch 130; rhbz#661510)
+
+* Tue Jan 4 2011 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.7.b2
+- add --with-valgrind to configuration (on architectures that support this)
+
+* Wed Dec 29 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.6.b2
+- work around test_subprocess failure seen in koji (patch 129)
+
+* Tue Dec 28 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.5.b2
+- 3.2b2
+- rework patch 3 (removal of mimeaudio tests), patch 6 (no static libs),
+patch 8 (systemtap), patch 102 (lib64)
+- remove patch 4 (rendered redundant by upstream r85537), patch 103 (PEP 3149),
+patch 110 (upstreamed expat fix), patch 111 (parallel build fix for grammar
+fixed upstream)
+- regenerate patch 300 (autotool intermediates)
+- workaround COUNT_ALLOCS weakref issues in test suite (patch 126, patch 127,
+patch 128)
+- stop using runtest.sh in %%check (dropped by upstream), replacing with
+regrtest; fixup list of failing tests
+- introduce "pyshortver", "SOABI_optimized" and "SOABI_debug" macros
+- rework manifests of shared libraries to use "SOABI_" macros, reflecting
+PEP 3149
+- drop itertools, operator and _collections modules from the manifests as py3k
+commit r84058 moved these inside libpython; json/tests moved to test/json_tests
+- move turtle code into the tkinter subpackage
+
+* Wed Nov 17 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.5.a1
+- fix sysconfig to not rely on the -devel subpackage (rhbz#653058)
+
+* Thu Sep 9 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.4.a1
+- move most of the content of the core package to the libs subpackage, given
+that the libs aren't meaningfully usable without the standard libraries
+
+* Wed Sep 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.3.a1
+- Move test.support to core package (rhbz#596258)
+- Add various missing __pycache__ directories to payload
+
+* Sun Aug 22 2010 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.2-0.2.a1
+- Add __pycache__ directory for site-packages
+
+* Sun Aug 22 2010 Thomas Spura <tomspur(a)fedoraproject.org> - 3.2-0.1.a1
+- on 64bit "stdlib" was still "/usr/lib/python*" (modify *lib64.patch)
+- make find-provides-without-python-sonames.sh 64bit aware
+
+* Sat Aug 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.2-0.0.a1
+- 3.2a1; add alphatag
+- rework %%files in the light of PEP 3147 (__pycache__)
+- drop our configuration patch to Setup.dist (patch 0): setup.py should do a
+better job of things, and the %%files explicitly lists our modules (r82746
+appears to break the old way of doing things). This leads to various modules
+changing from "foomodule.so" to "foo.so". It also leads to the optimized build
+dropping the _sha1, _sha256 and _sha512 modules, but these are provided by
+_hashlib; _weakref becomes a builtin module; xxsubtype goes away (it's only for
+testing/devel purposes)
+- fixup patches 3, 4, 6, 8, 102, 103, 105, 111 for the rebase
+- remove upstream patches: 7 (system expat), 106, 107, 108 (audioop reformat
+plus CVE-2010-1634 and CVE-2010-2089), 109 (CVE-2008-5983)
+- add machinery for rebuilding "configure" and friends, using the correct
+version of autoconf (patch 300)
+- patch the debug build's usage of COUNT_ALLOCS to be less verbose (patch 125)
+- "modulator" was removed upstream
+- drop "-b" from patch applications affecting .py files to avoid littering the
+installation tree
+
+* Thu Aug 19 2010 Toshio Kuratomi <toshio(a)fedoraproject.org> - 3.1.2-13
+- Turn on computed-gotos.
+- Fix for parallel make and graminit.c
+
+* Fri Jul 2 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-12
+- rebuild
+
+* Fri Jul 2 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-11
+- Fix an incompatibility between pyexpat and the system expat-2.0.1 that led to
+a segfault running test_pyexpat.py (patch 110; upstream issue 9054; rhbz#610312)
+
+* Fri Jun 4 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-10
+- ensure that the compiler is invoked with "-fwrapv" (rhbz#594819)
+- reformat whitespace in audioop.c (patch 106)
+- CVE-2010-1634: fix various integer overflow checks in the audioop
+module (patch 107)
+- CVE-2010-2089: further checks within the audioop module (patch 108)
+- CVE-2008-5983: the new PySys_SetArgvEx entry point from r81399 (patch 109)
+
+* Thu May 27 2010 Dan Hork <dan[at]danny.cz> - 3.1.2-9
+- reading the timestamp counter is available only on some arches (see Python/ceval.c)
+
+* Wed May 26 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-8
+- add flags for statvfs.f_flag to the constant list in posixmodule (i.e. "os")
+(patch 105)
+
+* Tue May 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-7
+- add configure-time support for COUNT_ALLOCS and CALL_PROFILE debug options
+(patch 104); enable them and the WITH_TSC option within the debug build
+
+* Mon May 24 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-6
+- build and install two different configurations of Python 3: debug and
+standard, packaging the debug build in a new "python3-debug" subpackage
+(patch 103)
+
+* Tue Apr 13 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-5
+- exclude test_http_cookies when running selftests, due to hang seen on
+http://koji.fedoraproject.org/koji/taskinfo?taskID=2088463 (cancelled after
+11 hours)
+- update python-gdb.py from v5 to py3k version submitted upstream
+
+* Wed Mar 31 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-4
+- update python-gdb.py from v4 to v5 (improving performance and stability,
+adding commands)
+
+* Thu Mar 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-3
+- update python-gdb.py from v3 to v4 (fixing infinite recursion on reference
+cycles and tracebacks on bytes 0x80-0xff in strings, adding handlers for sets
+and exceptions)
+
+* Wed Mar 24 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-2
+- refresh gdb hooks to v3 (reworking how they are packaged)
+
+* Sun Mar 21 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.2-1
+- update to 3.1.2: http://www.python.org/download/releases/3.1.2/
+- drop upstreamed patch 2 (.pyc permissions handling)
+- drop upstream patch 5 (fix for the test_tk and test_ttk_* selftests)
+- drop upstreamed patch 200 (path-fixing script)
+
+* Sat Mar 20 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-28
+- fix typo in libpython.stp (rhbz:575336)
+
+* Fri Mar 12 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-27
+- add pyfuntop.stp example (source 7)
+- convert usage of $$RPM_BUILD_ROOT to %%{buildroot} throughout, for
+consistency with python.spec
+
+* Mon Feb 15 2010 Thomas Spura <tomspur(a)fedoraproject.org> - 3.1.1-26
+- rebuild for new package of redhat-rpm-config (rhbz:564527)
+- use 'install -p' when running 'make install'
+
+* Fri Feb 12 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-25
+- split configure options into multiple lines for easy of editing
+- add systemtap static markers (wcohen, mjw, dmalcolm; patch 8), a systemtap
+tapset defining "python.function.entry" and "python.function.return" to make
+the markers easy to use (dmalcolm; source 5), and an example of using the
+tapset to the docs (dmalcolm; source 6) (rhbz:545179)
+
+* Mon Feb 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-24
+- move the -gdb.py file from %%{_libdir}/INSTSONAME-gdb.py to
+%%{_prefix}/lib/debug/%%{_libdir}/INSTSONAME.debug-gdb.py to avoid noise from
+ldconfig (bug 562980), and which should also ensure it becomes part of the
+debuginfo subpackage, rather than the libs subpackage
+- introduce %%{py_SOVERSION} and %%{py_INSTSONAME} to reflect the upstream
+configure script, and to avoid fragile scripts that try to figure this out
+dynamically (e.g. for the -gdb.py change)
+
+* Mon Feb 8 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-23
+- add gdb hooks for easier debugging (Source 4)
+
+* Thu Jan 28 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-22
+- update python-3.1.1-config.patch to remove downstream customization of build
+of pyexpat and elementtree modules
+- add patch adapted from upstream (patch 7) to add support for building against
+system expat; add --with-system-expat to "configure" invocation
+- remove embedded copies of expat and zlib from source tree during "prep"
+
+* Mon Jan 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-21
+- introduce %%{dynload_dir} macro
+- explicitly list all lib-dynload files, rather than dynamically gathering the
+payload into a temporary text file, so that we can be sure what we are
+shipping
+- introduce a macros.pybytecompile source file, to help with packaging python3
+modules (Source3; written by Toshio)
+- rename "2to3-3" to "python3-2to3" to better reflect python 3 module packaging
+plans
+
+* Mon Jan 25 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-20
+- change python-3.1.1-config.patch to remove our downstream change to curses
+configuration in Modules/Setup.dist, so that the curses modules are built using
+setup.py with the downstream default (linking against libncursesw.so, rather
+than libncurses.so), rather than within the Makefile; add a test to %%install
+to verify the dso files that the curses module is linked against the correct
+DSO (bug 539917; changes _cursesmodule.so -> _curses.so)
+
+* Fri Jan 22 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-19
+- add %%py3dir macro to macros.python3 (to be used during unified python 2/3
+builds for setting up the python3 copy of the source tree)
+
+* Wed Jan 20 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-18
+- move lib2to3 from -tools subpackage to main package (bug 556667)
+
+* Sun Jan 17 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-17
+- patch Makefile.pre.in to avoid building static library (patch 6, bug 556092)
+
+* Fri Jan 15 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-16
+- use the %%{_isa} macro to ensure that the python-devel dependency on python
+is for the correct multilib arch (#555943)
+- delete bundled copy of libffi to make sure we use the system one
+
+* Fri Jan 15 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-15
+- fix the URLs output by pydoc so they point at python.org's 3.1 build of the
+docs, rather than the 2.6 build
+
+* Wed Jan 13 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-14
+- replace references to /usr with %%{_prefix}; replace references to
+/usr/include with %%{_includedir} (Toshio)
+
+* Mon Jan 11 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-13
+- fix permission on find-provides-without-python-sonames.sh from 775 to 755
+
+* Mon Jan 11 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-12
+- remove build-time requirements on tix and tk, since we already have
+build-time requirements on the -devel subpackages for each of these (Thomas
+Spura)
+- replace usage of %%define with %%global (Thomas Spura)
+- remove forcing of CC=gcc as this old workaround for bug 109268 appears to
+longer be necessary
+- move various test files from the "tools"/"tkinter" subpackages to the "test"
+subpackage
+
+* Thu Jan 7 2010 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-11
+- add %%check section (thanks to Thomas Spura)
+- update patch 4 to use correct shebang line
+- get rid of stray patch file from buildroot
+
+* Tue Nov 17 2009 Andrew McNabb <amcnabb(a)mcnabbs.org> - 3.1.1-10
+- switched a few instances of "find |xargs" to "find -exec" for consistency.
+- made the description of __os_install_post more accurate.
+
+* Wed Nov 4 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-9
+- add macros.python3 to the -devel subpackage, containing common macros for use
+when packaging python3 modules
+
+* Tue Nov 3 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-8
+- add a provides of "python(abi)" (see bug 532118)
+- fix issues identified by a.badger in package review (bug 526126, comment 39):
+ - use "3" thoughout metadata, rather than "3.*"
+ - remove conditional around "pkg-config openssl"
+ - use standard cleanup of RPM_BUILD_ROOT
+ - replace hardcoded references to /usr with _prefix macro
+ - stop removing egg-info files
+ - use /usr/bin/python3.1 rather than /use/bin/env python3.1 when fixing
+up shebang lines
+ - stop attempting to remove no-longer-present .cvsignore files
+ - move the post/postun sections above the "files" sections
+
+* Thu Oct 29 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-7
+- remove commented-away patch 51 (python-2.6-distutils_rpm.patch): the -O1
+flag is used by default in the upstream code
+- "Makefile" and the config-32/64.h file are needed by distutils/sysconfig.py
+_init_posix(), so we include them in the core package, along with their parent
+directories (bug 531901)
+
+* Tue Oct 27 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-6
+- reword description, based on suggestion by amcnabb
+- fix the test_email and test_imp selftests (patch 3 and patch 4 respectively)
+- fix the test_tk and test_ttk_* selftests (patch 5)
+- fix up the specfile's handling of shebang/perms to avoid corrupting
+test_httpservers.py (sed command suggested by amcnabb)
+
+* Thu Oct 22 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-5
+- fixup importlib/_bootstrap.py so that it correctly handles being unable to
+open .pyc files for writing (patch 2, upstream issue 7187)
+- actually apply the rpath patch (patch 1)
+
+* Thu Oct 22 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-4
+- update patch0's setup of the crypt module to link it against libcrypt
+- update patch0 to comment "datetimemodule" back out, so that it is built
+using setup.py (see Setup, option 3), thus linking it statically against
+timemodule.c and thus avoiding a run-time "undefined symbol:
+_PyTime_DoubleToTimet" failure on "import datetime"
+
+* Wed Oct 21 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-3
+- remove executable flag from various files that shouldn't have it
+- fix end-of-line encodings
+- fix a character encoding
+
+* Tue Oct 20 2009 David Malcolm <dmalcolm(a)redhat.com> - 3.1.1-2
+- disable invocation of brp-python-bytecompile in postprocessing, since
+it would be with the wrong version of python (adapted from ivazquez'
+python3000 specfile)
+- use a custom implementation of __find_provides in order to filter out bogus
+provides lines for the various .so modules
+- fixup distutils/unixccompiler.py to remove standard library path from rpath
+(patch 1, was Patch0 in ivazquez' python3000 specfile)
+- split out libraries into a -libs subpackage
+- update summaries and descriptions, basing content on ivazquez' specfile
+- fixup executable permissions on .py, .xpm and .xbm files, based on work in
+ivazquez's specfile
+- get rid of DOS batch files
+- fixup permissions for shared libraries from non-standard 555 to standard 755
+- move /usr/bin/python*-config to the -devel subpackage
+- mark various directories as being documentation
+
+* Thu Sep 24 2009 Andrew McNabb <amcnabb(a)mcnabbs.org> 3.1.1-1
+- Initial package for Python 3.
+
diff --git a/systemtap-example.stp b/systemtap-example.stp
new file mode 100644
index 0000000..164333a
--- /dev/null
+++ b/systemtap-example.stp
@@ -0,0 +1,19 @@
+/*
+ Example usage of the Python systemtap tapset to show a nested view of all
+ Python function calls (and returns) across the whole system.
+
+ Run this using
+ stap systemtap-example.stp
+ to instrument all Python processes on the system, or (for example) using
+ stap systemtap-example.stp -c COMMAND
+ to instrument a specific program (implemented in Python)
+*/
+probe python.function.entry
+{
+ printf("%s => %s in %s:%d\n", thread_indent(1), funcname, filename, lineno);
+}
+
+probe python.function.return
+{
+ printf("%s <= %s in %s:%d\n", thread_indent(-1), funcname, filename, lineno);
+}
diff --git a/temporarily-disable-tests-requiring-SIGHUP.patch b/temporarily-disable-tests-requiring-SIGHUP.patch
new file mode 100644
index 0000000..30ceb94
--- /dev/null
+++ b/temporarily-disable-tests-requiring-SIGHUP.patch
@@ -0,0 +1,25 @@
+diff -up Python-3.4.0/Lib/test/test_asyncio/test_events.py.orig Python-3.4.0/Lib/test/test_asyncio/test_events.py
+--- Python-3.4.0/Lib/test/test_asyncio/test_events.py.orig 2014-04-15 13:18:49.696215288 +0200
++++ Python-3.4.0/Lib/test/test_asyncio/test_events.py 2014-04-15 13:18:56.104258453 +0200
+@@ -1528,7 +1528,7 @@ class SubprocessTestsMixin:
+ self.check_terminated(proto.returncode)
+ transp.close()
+
+- @unittest.skipIf(sys.platform == 'win32', "Don't have SIGHUP")
++ @unittest.skipIf(True, "Temporarily skipped (rhbz#1088233)")
+ def test_subprocess_send_signal(self):
+ prog = os.path.join(os.path.dirname(__file__), 'echo.py')
+
+
+diff -up Python-3.4.0/Lib/test/test_asyncio/test_subprocess.py.orig Python-3.4.0/Lib/test/test_asyncio/test_subprocess.py
+--- Python-3.4.0/Lib/test/test_asyncio/test_subprocess.py.orig 2014-04-17 12:03:32.777827520 +0200
++++ Python-3.4.0/Lib/test/test_asyncio/test_subprocess.py 2014-04-17 12:04:37.614210481 +0200
+@@ -108,7 +108,7 @@ class SubprocessMixin:
+ else:
+ self.assertEqual(-signal.SIGTERM, returncode)
+
+- @unittest.skipIf(sys.platform == 'win32', "Don't have SIGHUP")
++ @unittest.skipIf(True, "Temporarily skipped (rhbz#1088233)")
+ def test_send_signal(self):
+ code = 'import time; print("sleeping", flush=True); time.sleep(3600)'
+ args = [sys.executable, '-c', code]
commit 19403823a3f76bd743a25fd0fabc6ebd82cb966c
Author: Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org>
Date: Thu Sep 15 15:17:09 2016 +0000
Initial setup of the repo
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/sources b/sources
new file mode 100644
index 0000000..e69de29
3 years, 12 months
Architecture specific change in rpms/kf5-libksieve.git
by githook-noreply@fedoraproject.org
The package rpms/kf5-libksieve.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/kf5-libksieve.git/commit/?id=b1c9....
Change:
-ExclusiveArch: x86_64 %{arm}
Thanks.
Full change:
============
commit b1c925d894d355465939fb20f95877ea57e080d5
Author: Troy Dawson <tdawson(a)redhat.com>
Date: Wed May 6 09:20:38 2020 -0700
libcal now in aarch64 for rhel8, ExclusiveArch can be handled by qt5_qtwebengine_arches
diff --git a/kf5-libksieve.spec b/kf5-libksieve.spec
index 7ceb0cc..cda3387 100644
--- a/kf5-libksieve.spec
+++ b/kf5-libksieve.spec
@@ -16,13 +16,8 @@ URL: http://cgit.kde.org/%{framework}.git
%endif
Source0: http://download.kde.org/%{stable}/release-service/%{version}/src/%{framew...
-# libical (and thus kcalendarcore) not on all arches for RHEL8.
-%if 0%{?rhel} == 8
-ExclusiveArch: x86_64 %{arm}
-%else
# handled by qt5-srpm-macros, which defines %%qt5_qtwebengine_arches
%{?qt5_qtwebengine_arches:ExclusiveArch: %{qt5_qtwebengine_arches}}
-%endif
BuildRequires: cmake(Qt5Network)
BuildRequires: cmake(Qt5Test)
3 years, 12 months
Architecture specific change in rpms/kf5-libgravatar.git
by githook-noreply@fedoraproject.org
The package rpms/kf5-libgravatar.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/kf5-libgravatar.git/commit/?id=19....
Change:
-ExclusiveArch: x86_64 %{arm}
Thanks.
Full change:
============
commit 19c878596a4d6b5dba4073ebe616e707227d1246
Author: Troy Dawson <tdawson(a)redhat.com>
Date: Wed May 6 09:18:18 2020 -0700
libcal now in aarch64 for rhel8, ExclusiveArch can be handled by qt5_qtwebengine_arches
diff --git a/kf5-libgravatar.spec b/kf5-libgravatar.spec
index ebbfd49..a981cc2 100644
--- a/kf5-libgravatar.spec
+++ b/kf5-libgravatar.spec
@@ -16,13 +16,8 @@ URL: http://cgit.kde.org/%{framework}.git
%endif
Source0: http://download.kde.org/%{stable}/release-service/%{version}/src/%{framew...
-# libical (and thus kcalendarcore) not on all arches for RHEL8.
-%if 0%{?rhel} == 8
-ExclusiveArch: x86_64 %{arm}
-%else
# handled by qt5-srpm-macros, which defines %%qt5_qtwebengine_arches
%{?qt5_qtwebengine_arches:ExclusiveArch: %{qt5_qtwebengine_arches}}
-%endif
BuildRequires: cmake(Qt5Widgets)
BuildRequires: cmake(Qt5Network)
3 years, 12 months
[Report] Packages Restricting Arches
by root
Package that edited their arches constraints (3)
=============================================
- kf5-akonadi-search
was ExclusiveArch: x86_64 ppc64le %{arm}
is ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kalarmcal
was ExclusiveArch: x86_64 ppc64le %{arm}
is ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-ktnef
was ExclusiveArch: x86_64 ppc64le %{arm}
is ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
Package no longer excluding arches (5)
==================================
- kf5-akonadi-calendar
- kf5-libkdepim
- kf5-mailimporter
- kf5-pimcommon
- nodejs-yarn
List of packages currently excluding arches (2781)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- algobox
ExclusiveArch: %{qt5_qtwebengine_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GPRbuild_arches}
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-trusted-firmware
ExclusiveArch: aarch64
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- banshee
ExclusiveArch: %{mono_arches}
- banshee-community-extensions
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x
- bareftp
ExclusiveArch: %{mono_arches}
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64
- bwa
ExclusiveArch: x86_64
- calamares
ExclusiveArch: %{ix86} x86_64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- carto
ExclusiveArch: %{nodejs_arches} noarch
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- ceph
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- cpu-x
ExclusiveArch: i686 x86_64
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- cri-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64 ppc64le
ExclusiveArch: x86_64 ppc64le
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- discord-irc
ExclusiveArch: %{nodejs_arches} noarch
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- docco
ExclusiveArch: %{nodejs_arches} noarch
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dolphin-emu
ExclusiveArch: x86_64 aarch64
- dotnet-build-reference-packages
ExclusiveArch: x86_64
- dotnet3.1
ExclusiveArch: x86_64
- doublecmd
ExclusiveArch: %{ix86} x86_64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- e3
ExclusiveArch: %{ix86} x86_64
- edac-utils
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- edb
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elasticdump
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- embree
ExclusiveArch: x86_64
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- eric
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fes
ExclusiveArch: %{ix86} x86_64
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %{GPRbuild_arches}
- fpc
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 ppc64le
- frescobaldi
ExclusiveArch: %{qt5_qtwebengine_arches}
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fst
ExclusiveArch: i686
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x %{power64}
- ga
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- glibc32
ExclusiveArch: x86_64
- glibd
ExclusiveArch: %{ldc_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-bindings
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-db
ExclusiveArch: %{GPRbuild_arches}
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: %{efi}
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-rpm-macros
ExclusiveArch: %{golang_arches} %{gccgo_arches}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- goverlay
ExclusiveArch: %{fpc_arches}
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{nodejs_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- hcc
ExclusiveArch: x86_64 aarch64
- hedgewars
ExclusiveArch: %{fpc_arches}
- heketi
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- hip
ExclusiveArch: x86_64
- hsakmt
ExclusiveArch: x86_64 aarch64
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- i3status-rs
ExclusiveArch: %{rust_arches}
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-gmmlib
ExclusiveArch: x86_64 i686
- intel-mediasdk
ExclusiveArch: x86_64
- intel-undervolt
ExclusiveArch: i386 x86_64
- ioport
ExclusiveArch: %{ix86} x86_64
- ipmctl
ExclusiveArch: x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: %{arm} %{ix86} x86_64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iyfct
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- jake
ExclusiveArch: %{nodejs_arches} noarch
- jasmine-node
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- josm
ExclusiveArch: %{ix86} x86_64
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le
- kf5-akonadi-search
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-audiocd-kio
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kalarmcal
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kblog
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarcore
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarutils
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kitinerary
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kmailtransport
ExclusiveArch: x86_64 %{arm}
- kf5-ktnef
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-libgravatar
ExclusiveArch: x86_64 %{arm}
- kf5-libkdcraw
ExclusiveArch: x86_64 ppc64le %{arm}
- kf5-libksieve
ExclusiveArch: x86_64 %{arm}
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- kiwix-desktop
ExclusiveArch: %{qt5_qtwebengine_arches}
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- knotes
ExclusiveArch: x86_64 %{arm}
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kosmtik
ExclusiveArch: %{nodejs_arches} noarch
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- lazarus
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libdfp
ExclusiveArch: ppc ppc64 ppc64le s390 s390x
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} s390x %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lightdm
ExclusiveArch: x86_64 ppc64le
- lodash
ExclusiveArch: %{nodejs_arches} noarch
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 s390x ppc64le
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- mantle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mbpfan
ExclusiveArch: x86_64
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} %{ix86} x86_64
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mirrorlist-server
ExclusiveArch: %{rust_arches}
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mnemosyne
ExclusiveArch: noarch %{qt5_qtwebengine_arches}
- mocha
ExclusiveArch: %{nodejs_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mozilla-iot-gateway
ExclusiveArch: %{nodejs_arches} noarch
- mozilla-iot-gateway-addon-node
ExclusiveArch: %{nodejs_arches} noarch
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nacl-binutils
ExclusiveArch: x86_64
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- node-gyp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-abbrev
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-dynamic-import
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn-jsx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-agentkeepalive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ain2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-align-text
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgcyan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bggreen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgmagenta
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgwhite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgyellow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-black
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-blue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bold
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-cyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-dim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-escapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-gray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-green
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-grey
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-hidden
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-inverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-italic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-magenta
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-red
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-reset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-strikethrough
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-styles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-underline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-white
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-wrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-yellow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansicolors
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansistyles
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-archy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-are-we-there-yet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-argparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-argsparser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-union
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-buffer-from-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-differ
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-find
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-find-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-foreach
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-ify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-union
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-unique
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arraybuffer-dot-slice
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arraybuffer-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arrify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ascii-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ascli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-asn1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assert-plus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assertion-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assume
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-async-arrays
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-limiter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-queue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-some
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asynckit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-atob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-auto-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-autoresolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws-sign2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-code-frame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-functions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-generators
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-runtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-babylon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backoff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-balanced-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-arraybuffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64id
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-batch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bcrypt
ExclusiveArch: %{nodejs_arches}
- nodejs-bcryptjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-benchmark
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-than-before
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bignumber-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bind-obj-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bindings
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bit-mask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bluebird
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-body-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boolbase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-brace-expansion
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-braces
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-browser-stdout
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buf-compare
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-crc32
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bufferutil
ExclusiveArch: %{nodejs_arches}
- nodejs-builtin-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-builtins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bundle-dependencies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-burrito
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-busboy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-byline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cache-base
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-call-delayed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-matcher
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-me-maybe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-callback-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsites
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-carrier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caseless
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-center-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-as-promised
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-connect-middleware
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-json-schema
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-spies-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-chardet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-charenc
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-check-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-check-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cheerio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-child-process-close
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chmodr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chownr
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chroma-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chrono
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ci-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-circular-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cjson
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-class-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clean-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clean-yaml-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clear-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-spinner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cliui
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-closure-compiler
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-co-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-with-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-code-point-at
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-coffee-coverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-collection-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-collections
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-color-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colour
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-columnify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-combined-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commander
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-common-path-prefix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commondir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-commonmark
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compare-versions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-config-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-connect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-connect-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-dot-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-group
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-constantinople
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-angular
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-atom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-ember
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-eslint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-express
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jquery
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jscs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-jshint
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-preset-loader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-writer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-jar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookie-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookie-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cookiejar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-copy-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-core-assert
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-core-util-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-couch-login
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-coveralls
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-crc
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cross-spawn-async
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crypt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cryptiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csrf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-select
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-tree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-css-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csscomb-core
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cssom
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csurf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-generate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-spectrum
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ctype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-currently-unhandled
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cycle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cyclist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-d
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dargs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dateformat
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-death
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-debug-fabulous
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debuglog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-decamelize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decamelize-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decimal-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dedent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-eql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deep-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-default-require-extensions
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-default-resolution
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defence
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defence-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-define-properties
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-defined
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-del
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-delete
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dep-graph
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deprecated
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-newline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detective
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dirty-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-discord-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-doctrine
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dryice
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-duration
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ebnf-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-editor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ee-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-emojione
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-empty-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-end-of-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-client
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-engine-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-ex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-abstract
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es-to-primitive
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es5-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es5-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-iterator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escallmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-html
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-regexp-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-string-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escodegen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escope
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espower-location-detector
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-fb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-esprima-harmony-jscs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-espurify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esrecurse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse-fb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estree-walker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-esutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eventemitter2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-everything-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-exit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-brackets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-tilde
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expect-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-express-session
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extend-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extended-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-eyes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fake
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fast-levenshtein
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fastfall
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-faucet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-faye-websocket
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-entry-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filelist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fileset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-find-cache-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-find-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-findup-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-first-chunk-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flagged-respawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flat-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-in
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-for-own
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-foreach
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-foreground-child
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forever-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-form-data
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-formatio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-formidable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-freetree
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fresh
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-dot-notify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-cached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fs-ext
ExclusiveArch: %{nodejs_arches}
- nodejs-fs-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-vacuum
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-ignore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fstream-npm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gauge
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gaze
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gdal
ExclusiveArch: %{nodejs_arches}
- nodejs-generate-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generate-object-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-getobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-git-remote-origin-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-git-tails
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gitconfiglocal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-username-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-expand
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-parent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-global-modules
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-global-prefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globby
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globule
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glogg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gnode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-graceful-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-graceful-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-cli
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-compare-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-clean
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-concat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-csslint
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-internal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-contrib-uglify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-watch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-git-authors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-init
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-known-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-legacy-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-lib-contrib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gzip-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-handlebars
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-har-validator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-flag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-symbols
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-unicode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hash_file
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hawk
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-highlight-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hoek
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-homedir-polyfill
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hook-std
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hooker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hsluv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-htmlparser2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-errors
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-http-signature
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-humanize-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-i18n-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-i2c
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv
ExclusiveArch: %{nodejs_arches}
- nodejs-iconv-lite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-image-size
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-immutable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-import-local
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imul
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imurmurhash
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-indent-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inflight
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-info-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-inherits
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inherits1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ini
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-int64-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-intercept-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-interpret
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-invert-kv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ip
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ipaddr-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-irc-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-formatting
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-upd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irregular-plurals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrayish
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-builtin-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-callable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-data-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-date-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-dotfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-equal-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-extendable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-finite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-fullwidth-code-point
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-generator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-my-json-valid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-negated-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-number
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-number-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-odd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-path-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-in-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-inside
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-plain-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-plain-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-primitive
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-registered
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-relative
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-typedarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-valid-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-valid-instance
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-windows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-isexe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-iso8601
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-coverage
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-hook
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-report
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-source-maps
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-reports
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-growl-reporter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jasmine-reporters
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jest-mock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jison-lex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joose
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-namespace-depended
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-joosex-simplerequest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-string-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-js-tokens
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-yaml
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jscoverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-localizer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json-parse-helpfulerror
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonm
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer-dot-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonselect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jwt-simple
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keypress
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-klaw
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-kuler2gpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lazystream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lcov-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-leaflet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-formbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leaflet-hash
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leche
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-left-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-less
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-less-plugin-clean-css
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-libpq
ExclusiveArch: %{nodejs_arches}
- nodejs-libxmljs
ExclusiveArch: %{nodejs_arches}
- nodejs-line-numbers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-reader
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linkify-it
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-load-grunt-tasks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-locate-character
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-locate-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lockfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-log-driver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-ok
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-long
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loophole
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ltx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-magic-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-make-arrow-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-generator-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-make-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makeerror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik
ExclusiveArch: %{nodejs_arches}
- nodejs-mapnik-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mapnik-vector-tile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-markdown
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-markdown-it-testgen
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-matched
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-max-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-maxmin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mbtiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-md5
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-hex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-o-matic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mdn-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mdurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-media-typer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoizee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-merge-descriptors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-micromatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-millstone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mime-db
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mimeparse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minimalistic-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minipass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-bin
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mock-git
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-module-not-found-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-monocle
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-morgan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-muffin
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multimatch
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multiparty
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-multipipe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-murmur-32
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mustache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mutate-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mute-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nan0
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nan1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nanomsg
ExclusiveArch: %{nodejs_arches}
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ncp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-needle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-negative-zero
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-netmask
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ng-classify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-expat
ExclusiveArch: %{nodejs_arches}
ExclusiveArch: %{ix86} x86_64 %{arm}
- nodejs-node-int64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-static
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-stringprep
ExclusiveArch: %{nodejs_arches}
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nomnom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-noncharacters
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt-usage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-noptify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-normalize-git-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-cache-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-install-checks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-npm-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-user-validate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npmlog
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-numeral
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-assign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-entries
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-dot-pick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-observable-to-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-obuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-okay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-finished
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-headers
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-once
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-only-shallow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-opal-runtime
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opener
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-option-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optionator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-opts
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-orchestrator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ordered-read-streams
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-os-homedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-locale
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-tmpdir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-osenv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-output-file-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-own-or
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-own-or-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-finally
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-locate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-try
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-packet-reader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pad-left
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-paperboy
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parallel-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parse-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-passwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parsejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseqs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-oauth2-client-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-strategy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-dirname
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-exists
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-extra
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-inside
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-key
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pause
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pedding
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-connection-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-cursor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-escape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-int8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-native
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-numeric
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-packet-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pg-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pgpass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pinkie-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkg-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pkg-up
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkginfo
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-platform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-plur
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-posix-character-classes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-bytea
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-date
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-postgres-interval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-precond
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prelude-ls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-preserve
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-bytes
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-hrtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pretty-time
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prism-media
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-process-nextick-args
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proclaim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promises-aplus-tests
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prompt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promzard
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-propget
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proto-list
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-proxyquire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pubcontrol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pumpify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-q
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-q-io
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-qs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qtdatastream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-queue-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-quick-lru
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qunit-extras
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rainbowsocks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-random-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-random-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-randomatic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-range-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-raw-body
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-all-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-read-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-json-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-package-json
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-pkg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readable-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-readdir-enhanced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdir-scoped-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rechoir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-redent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reduce-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-remove-trailing-separator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repeat-element
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeat-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeating
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-request
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-cs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-require-directory
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-main-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-relative
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-uncached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-yaml
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-requirejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-cwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-pkg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-response-time
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resumer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ret
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-retry
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-revalidator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rewire
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rhea
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-right-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rimraf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rndm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup-plugin-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-commonjs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-node-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-pluginutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ronn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-runforcover
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safe-json-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sax
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-secure-random
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-select-hose
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sentiment
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sequencify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serialize-error
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serve-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-server-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-blocking
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-getter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-set-immediate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-immediate-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-setimmediate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-setprototypeof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sha
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shallow-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-command
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs-nodecli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-should-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-format
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-http
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-should-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-showdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sigmund
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-asyncify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-fmt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-single-line-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon-chai
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sinon-restore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slash
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sliced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-snapdragon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture-set
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snekfetch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snockets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-socket-dot-io-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sorted-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-fixtures
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sparkles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-spawn-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spawn-wrap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-speedometer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sqlite3
ExclusiveArch: %{nodejs_arches}
- nodejs-srs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ssri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-utils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-static-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-static-favicon
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-statuses
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-combiner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-consume
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-counter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-pair
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-replace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-shift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-spigot
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamtest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-repeat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-trim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string-width
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string_decoder
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringmap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringstream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-ansi
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-bom-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-color
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-eof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strong-log-transformer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-success-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-superagent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-supertest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-supports-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-suspend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-mocha-reporter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-out
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tap-spec
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar-pack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-write
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tempfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temporary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-cordovajs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testswarm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-thenify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thenify-all
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-through2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thunkify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tildify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tilelive-mapnik
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tiletype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-diff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-stamp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-timekeeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timers-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tiny-lr-fork
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tippex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-absolute-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-object-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-regex-range
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-toidentifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-touch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tough-cookie
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tracejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-transformers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-traverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-treeify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tressa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-trim-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim-off-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trivial-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-try-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-try-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tryor
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tsame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tslib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tv4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-check
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-type-detect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-name
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uc-dot-micro
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uglify-to-browserify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid-number
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uid-safe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ultron
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-umask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unc-path-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore-dot-logger
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unicode-length
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unique-filename
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-slug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uri-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-url2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-use
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-user-home
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-deprecate
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utilities
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-utils-merge
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uuid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vali-date
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-validate-npm-package-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vasync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vhost
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vlq
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vow-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vows
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-walkdir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walker
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ware
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-warning-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-watchit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-watershed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wbuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wcwidth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-websocket-driver
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-which
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-win-spawn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-window-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-winston
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-with
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wolfy87-eventemitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-woothee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wordwrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrap-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wrap-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrappy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-write-file-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ws
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xdg-basedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xml2js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlbuilder
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest-ssl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xtend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-y18n
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yallist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yapool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yargs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yargs-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zap
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zeropad
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zipfile
ExclusiveArch: %{nodejs_arches}
- nodejs-zlib-browserify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zlibjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64 ppc64le
- nwchem
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-seccomp-bpf-hook
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- ocitools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- oidn
ExclusiveArch: x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onedrive
ExclusiveArch: %{ldc_arches}
- opae
ExclusiveArch: x86_64
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- oshinko-cli
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- paflib
ExclusiveArch: ppc %{power64}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- peripety
ExclusiveArch: %{rust_arches}
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: i686 x86_64 ia64 aarch64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- pmdk-convert
ExclusiveArch: x86_64
- pmemkv
ExclusiveArch: x86_64
- pocl
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- publican-jboss
ExclusiveArch: i686 x86_64
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-javabridge
ExclusiveArch: i686 x86_64
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- reactfx
ExclusiveArch: %{ix86} x86_64 noarch
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- reg
ExclusiveArch: x86_64
- renderdoc
ExclusiveArch: %{ix86} x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rocminfo
ExclusiveArch: x86_64 aarch64
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rr
ExclusiveArch: %{ix86} x86_64
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-connect
ExclusiveArch: %{rust_arches}
- rust-actix-files
ExclusiveArch: %{rust_arches}
- rust-actix-http
ExclusiveArch: %{rust_arches}
- rust-actix-macros
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-rt
ExclusiveArch: %{rust_arches}
- rust-actix-server
ExclusiveArch: %{rust_arches}
- rust-actix-server-config
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-testing
ExclusiveArch: %{rust_arches}
- rust-actix-threadpool
ExclusiveArch: %{rust_arches}
- rust-actix-tls
ExclusiveArch: %{rust_arches}
- rust-actix-utils
ExclusiveArch: %{rust_arches}
- rust-actix-web
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aes
ExclusiveArch: %{rust_arches}
- rust-aes-soft
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-ahash
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-alloc-no-stdlib
ExclusiveArch: %{rust_arches}
- rust-alloc-stdlib
ExclusiveArch: %{rust_arches}
- rust-alphanumeric-sort
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-anyhow
ExclusiveArch: %{rust_arches}
- rust-anymap
ExclusiveArch: %{rust_arches}
- rust-aom-sys
ExclusiveArch: %{rust_arches}
- rust-app_dirs
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-arbitrary
ExclusiveArch: %{rust_arches}
- rust-arc-swap
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-array-init
ExclusiveArch: %{rust_arches}
- rust-arraydeque
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-askalono
ExclusiveArch: %{rust_arches}
- rust-askalono-cli
ExclusiveArch: %{rust_arches}
- rust-assert-json-diff
ExclusiveArch: %{rust_arches}
- rust-assert_cmd
ExclusiveArch: %{rust_arches}
- rust-assert_fs
ExclusiveArch: %{rust_arches}
- rust-assert_matches
ExclusiveArch: %{rust_arches}
- rust-async-attributes
ExclusiveArch: %{rust_arches}
- rust-async-task
ExclusiveArch: %{rust_arches}
- rust-async-trait
ExclusiveArch: %{rust_arches}
- rust-atk
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atom
ExclusiveArch: %{rust_arches}
- rust-atomicwrites
ExclusiveArch: %{rust_arches}
- rust-attohttpc
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-average
ExclusiveArch: %{rust_arches}
- rust-awc
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-base64-0.10
ExclusiveArch: %{rust_arches}
- rust-base64-0.11
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-battery
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-better-panic
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bindgen
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitmaps
ExclusiveArch: %{rust_arches}
- rust-bitstream-io
ExclusiveArch: %{rust_arches}
- rust-blake2
ExclusiveArch: %{rust_arches}
- rust-blobby
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-cipher-trait
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-bodhi
ExclusiveArch: %{rust_arches}
- rust-bodhi-cli
ExclusiveArch: %{rust_arches}
- rust-box_drawing
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-brotli
ExclusiveArch: %{rust_arches}
- rust-brotli-decompressor
ExclusiveArch: %{rust_arches}
- rust-brotli-sys
ExclusiveArch: %{rust_arches}
- rust-brotli2
ExclusiveArch: %{rust_arches}
- rust-bstr
ExclusiveArch: %{rust_arches}
- rust-buf_redux
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-byte-tools
ExclusiveArch: %{rust_arches}
- rust-byte-unit
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-bytemuck
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-bytes0.4
ExclusiveArch: %{rust_arches}
- rust-bytesize
ExclusiveArch: %{rust_arches}
- rust-bytestring
ExclusiveArch: %{rust_arches}
- rust-c2-chacha
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-caps
ExclusiveArch: %{rust_arches}
- rust-cargo
ExclusiveArch: %{rust_arches}
- rust-cargo-bloat
ExclusiveArch: %{rust_arches}
- rust-cargo-c
ExclusiveArch: %{rust_arches}
- rust-cargo-husky
ExclusiveArch: %{rust_arches}
- rust-cargo-platform
ExclusiveArch: %{rust_arches}
- rust-cargo_metadata
ExclusiveArch: %{rust_arches}
- rust-cassowary
ExclusiveArch: %{rust_arches}
- rust-cast
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-chainerror
ExclusiveArch: %{rust_arches}
- rust-charset
ExclusiveArch: %{rust_arches}
- rust-chbs
ExclusiveArch: %{rust_arches}
- rust-checked_int_cast
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-chrono-tz
ExclusiveArch: %{rust_arches}
- rust-chunked_transfer
ExclusiveArch: %{rust_arches}
- rust-clang-sys
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-color_quant
ExclusiveArch: %{rust_arches}
- rust-colored
ExclusiveArch: %{rust_arches}
- rust-colored_json
ExclusiveArch: %{rust_arches}
- rust-compiletest_rs
ExclusiveArch: %{rust_arches}
- rust-comrak
ExclusiveArch: %{rust_arches}
- rust-config
ExclusiveArch: %{rust_arches}
- rust-console
ExclusiveArch: %{rust_arches}
- rust-console0.9
ExclusiveArch: %{rust_arches}
- rust-const-random
ExclusiveArch: %{rust_arches}
- rust-const-random-macro
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-conv
ExclusiveArch: %{rust_arches}
- rust-cookie
ExclusiveArch: %{rust_arches}
- rust-cookie_store
ExclusiveArch: %{rust_arches}
- rust-copyless
ExclusiveArch: %{rust_arches}
- rust-coreos-installer
ExclusiveArch: %{rust_arches}
- rust-cpio
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crc32fast
ExclusiveArch: %{rust_arches}
- rust-criterion
ExclusiveArch: %{rust_arches}
- rust-criterion-plot
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crossterm
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-csv
ExclusiveArch: %{rust_arches}
- rust-csv-core
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-darling
ExclusiveArch: %{rust_arches}
- rust-darling_core
ExclusiveArch: %{rust_arches}
- rust-darling_macro
ExclusiveArch: %{rust_arches}
- rust-dashmap
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus0.2
ExclusiveArch: %{rust_arches}
- rust-dbus0.6
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-delta_e
ExclusiveArch: %{rust_arches}
- rust-derive_builder
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-deunicode
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dissimilar
ExclusiveArch: %{rust_arches}
- rust-dns-parser
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-dua-cli
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-dutree
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-elasticlunr-rs
ExclusiveArch: %{rust_arches}
- rust-encode_unicode
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-encoding_rs_io
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-env_logger0.5
ExclusiveArch: %{rust_arches}
- rust-env_logger0.6
ExclusiveArch: %{rust_arches}
- rust-envsubst
ExclusiveArch: %{rust_arches}
- rust-erased-serde
ExclusiveArch: %{rust_arches}
- rust-err-derive
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-escargot
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-extend
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-fail
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure-tools
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fake-simd
ExclusiveArch: %{rust_arches}
- rust-fake_clock
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fedora
ExclusiveArch: %{rust_arches}
- rust-fedora-coreos-pinger
ExclusiveArch: %{rust_arches}
- rust-fedora-update-feedback
ExclusiveArch: %{rust_arches}
- rust-fern
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-filesize
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-findshlibs
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-float-ord
ExclusiveArch: %{rust_arches}
- rust-flume
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-fragile
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
ExclusiveArch: %{rust_arches}
- rust-fuse
ExclusiveArch: %{rust_arches}
- rust-futf
ExclusiveArch: %{rust_arches}
- rust-futures
ExclusiveArch: %{rust_arches}
- rust-futures-channel
ExclusiveArch: %{rust_arches}
- rust-futures-core
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-futures-executor
ExclusiveArch: %{rust_arches}
- rust-futures-io
ExclusiveArch: %{rust_arches}
- rust-futures-macro
ExclusiveArch: %{rust_arches}
- rust-futures-sink
ExclusiveArch: %{rust_arches}
- rust-futures-task
ExclusiveArch: %{rust_arches}
- rust-futures-timer
ExclusiveArch: %{rust_arches}
- rust-futures-util
ExclusiveArch: %{rust_arches}
- rust-futures0.1
ExclusiveArch: %{rust_arches}
- rust-fuzzy-matcher
ExclusiveArch: %{rust_arches}
- rust-fxhash
ExclusiveArch: %{rust_arches}
- rust-gcsf
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-generic-array
ExclusiveArch: %{rust_arches}
- rust-getch
ExclusiveArch: %{rust_arches}
- rust-gethostname
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git-delta
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-globwalk
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-google-drive3-fork
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-grep-cli
ExclusiveArch: %{rust_arches}
- rust-grep-matcher
ExclusiveArch: %{rust_arches}
- rust-grep-pcre2
ExclusiveArch: %{rust_arches}
- rust-grep-printer
ExclusiveArch: %{rust_arches}
- rust-grep-regex
ExclusiveArch: %{rust_arches}
- rust-grep-searcher
ExclusiveArch: %{rust_arches}
- rust-groupable
ExclusiveArch: %{rust_arches}
- rust-gspell
ExclusiveArch: %{rust_arches}
- rust-gspell-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video-sys
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-h2
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-headers-derive
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-hex-literal
ExclusiveArch: %{rust_arches}
- rust-hex-literal-impl
ExclusiveArch: %{rust_arches}
- rust-hexyl
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-html2pango
ExclusiveArch: %{rust_arches}
- rust-html5ever
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-http-body
ExclusiveArch: %{rust_arches}
- rust-http0.1
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-humantime1
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-hyper-native-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-staticfile
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyper0.10
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-i3ipc
ExclusiveArch: %{rust_arches}
- rust-id_tree
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-im-rc
ExclusiveArch: %{rust_arches}
- rust-image
ExclusiveArch: %{rust_arches}
- rust-imgref
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-indicatif
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnet
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
ExclusiveArch: %{rust_arches}
- rust-iron
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-iter-read
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itertools-num
ExclusiveArch: %{rust_arches}
- rust-itertools0.8
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-ivf
ExclusiveArch: %{rust_arches}
- rust-jetscii
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jql
ExclusiveArch: %{rust_arches}
- rust-json
ExclusiveArch: %{rust_arches}
- rust-jwalk
ExclusiveArch: %{rust_arches}
- rust-kstring
ExclusiveArch: %{rust_arches}
- rust-kv-log-macro
ExclusiveArch: %{rust_arches}
- rust-lab
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-letter-avatar
ExclusiveArch: %{rust_arches}
- rust-lexical-core
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libm
ExclusiveArch: %{rust_arches}
- rust-libmount
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libpulse-binding
ExclusiveArch: %{rust_arches}
- rust-libpulse-sys
ExclusiveArch: %{rust_arches}
- rust-libslirp-sys
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-line-wrap
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-linkify
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-liquid
ExclusiveArch: %{rust_arches}
- rust-liquid-core
ExclusiveArch: %{rust_arches}
- rust-liquid-derive
ExclusiveArch: %{rust_arches}
- rust-liquid-lib
ExclusiveArch: %{rust_arches}
- rust-listenfd
ExclusiveArch: %{rust_arches}
- rust-lmdb
ExclusiveArch: %{rust_arches}
- rust-lmdb-sys
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-locale_config
ExclusiveArch: %{rust_arches}
- rust-lock_api
ExclusiveArch: %{rust_arches}
- rust-lockfree
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lru_time_cache
ExclusiveArch: %{rust_arches}
- rust-lscolors
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-lzw
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-maildir
ExclusiveArch: %{rust_arches}
- rust-mailparse
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-markup5ever_rcdom
ExclusiveArch: %{rust_arches}
- rust-match_cfg
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
ExclusiveArch: %{rust_arches}
- rust-maxminddb
ExclusiveArch: %{rust_arches}
- rust-maybe-uninit
ExclusiveArch: %{rust_arches}
- rust-md-5
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-mdl
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memmap2
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-mime-sniffer
ExclusiveArch: %{rust_arches}
- rust-mime0.2
ExclusiveArch: %{rust_arches}
- rust-mime_guess
ExclusiveArch: %{rust_arches}
- rust-mime_guess1
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mio0.6
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-multipart
ExclusiveArch: %{rust_arches}
- rust-mustache
ExclusiveArch: %{rust_arches}
- rust-nalgebra
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-native-tls
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-netmap_sys
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nickel
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nix0.14
ExclusiveArch: %{rust_arches}
- rust-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-nom4
ExclusiveArch: %{rust_arches}
- rust-noop_proc_macro
ExclusiveArch: %{rust_arches}
- rust-normalize-line-endings
ExclusiveArch: %{rust_arches}
- rust-notify
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-derive
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-once_cell
ExclusiveArch: %{rust_arches}
- rust-onig
ExclusiveArch: %{rust_arches}
- rust-onig_sys
ExclusiveArch: %{rust_arches}
- rust-oorandom
ExclusiveArch: %{rust_arches}
- rust-opaque-debug
ExclusiveArch: %{rust_arches}
- rust-open
ExclusiveArch: %{rust_arches}
- rust-opener
ExclusiveArch: %{rust_arches}
- rust-openssh-keys
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-os_info
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-owned-alloc
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches}
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-pangocairo
ExclusiveArch: %{rust_arches}
- rust-pangocairo-sys
ExclusiveArch: %{rust_arches}
- rust-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-parse-zoneinfo
ExclusiveArch: %{rust_arches}
- rust-partial-io
ExclusiveArch: %{rust_arches}
- rust-paste
ExclusiveArch: %{rust_arches}
- rust-paste-impl
ExclusiveArch: %{rust_arches}
- rust-path-slash
ExclusiveArch: %{rust_arches}
- rust-pathdiff
ExclusiveArch: %{rust_arches}
- rust-pbr
ExclusiveArch: %{rust_arches}
- rust-pcap
ExclusiveArch: %{rust_arches}
- rust-pcre2
ExclusiveArch: %{rust_arches}
- rust-pcre2-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-peg
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-percent-encoding1
ExclusiveArch: %{rust_arches}
- rust-permutate
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-pest
ExclusiveArch: %{rust_arches}
- rust-pest_derive
ExclusiveArch: %{rust_arches}
- rust-pest_generator
ExclusiveArch: %{rust_arches}
- rust-pest_meta
ExclusiveArch: %{rust_arches}
- rust-petgraph
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf0.7
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_codegen0.7
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_generator0.7
ExclusiveArch: %{rust_arches}
- rust-phf_macros
ExclusiveArch: %{rust_arches}
- rust-phf_macros0.7
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-phf_shared0.7
ExclusiveArch: %{rust_arches}
- rust-pico-args
ExclusiveArch: %{rust_arches}
- rust-pin-project
ExclusiveArch: %{rust_arches}
- rust-pin-project-internal
ExclusiveArch: %{rust_arches}
- rust-pin-project-lite
ExclusiveArch: %{rust_arches}
- rust-pin-utils
ExclusiveArch: %{rust_arches}
- rust-pipe
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-platform-dirs
ExclusiveArch: %{rust_arches}
- rust-platforms
ExclusiveArch: %{rust_arches}
- rust-plist
ExclusiveArch: %{rust_arches}
- rust-plugin
ExclusiveArch: %{rust_arches}
- rust-pnet_base
ExclusiveArch: %{rust_arches}
- rust-pnet_datalink
ExclusiveArch: %{rust_arches}
- rust-pnet_sys
ExclusiveArch: %{rust_arches}
- rust-png
ExclusiveArch: %{rust_arches}
- rust-ppv-lite86
ExclusiveArch: %{rust_arches}
- rust-precomputed-hash
ExclusiveArch: %{rust_arches}
- rust-predicates
ExclusiveArch: %{rust_arches}
- rust-predicates-core
ExclusiveArch: %{rust_arches}
- rust-predicates-tree
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error-attr
ExclusiveArch: %{rust_arches}
- rust-proc-macro-hack
ExclusiveArch: %{rust_arches}
- rust-proc-macro-nested
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-proc-quote
ExclusiveArch: %{rust_arches}
- rust-proc-quote-impl
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-process_path
ExclusiveArch: %{rust_arches}
- rust-procfs
ExclusiveArch: %{rust_arches}
- rust-procs
ExclusiveArch: %{rust_arches}
- rust-progress-streams
ExclusiveArch: %{rust_arches}
- rust-prometheus
ExclusiveArch: %{rust_arches}
- rust-proptest
ExclusiveArch: %{rust_arches}
- rust-proptest-derive
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen
ExclusiveArch: %{rust_arches}
- rust-protoc
ExclusiveArch: %{rust_arches}
- rust-protoc-rust
ExclusiveArch: %{rust_arches}
- rust-psm
ExclusiveArch: %{rust_arches}
- rust-psutil
ExclusiveArch: %{rust_arches}
- rust-publicsuffix
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickcheck_macros
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-quote0.3
ExclusiveArch: %{rust_arches}
- rust-quote0.6
ExclusiveArch: %{rust_arches}
- rust-quoted_printable
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rand0.4
ExclusiveArch: %{rust_arches}
- rust-rand0.5
ExclusiveArch: %{rust_arches}
- rust-rand0.6
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_core
ExclusiveArch: %{rust_arches}
- rust-rand_core0.3
ExclusiveArch: %{rust_arches}
- rust-rand_core0.4
ExclusiveArch: %{rust_arches}
- rust-rand_distr
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-random-fast-rng
ExclusiveArch: %{rust_arches}
- rust-random-trait
ExclusiveArch: %{rust_arches}
- rust-randomize
ExclusiveArch: %{rust_arches}
- rust-rav1e
ExclusiveArch: %{rust_arches}
- rust-rawpointer
ExclusiveArch: %{rust_arches}
- rust-rawslice
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-readwrite
ExclusiveArch: %{rust_arches}
- rust-recycler
ExclusiveArch: %{rust_arches}
- rust-ref-cast
ExclusiveArch: %{rust_arches}
- rust-ref-cast-impl
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-automata
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-region
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-reqwest
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-restson
ExclusiveArch: %{rust_arches}
- rust-retry
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rle-decode-fast
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmp-serde
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-rust-ini
ExclusiveArch: %{rust_arches}
- rust-rust-stemmers
ExclusiveArch: %{rust_arches}
- rust-rust_decimal
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_normal_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_proc_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_sys
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-hash
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustio
ExclusiveArch: %{rust_arches}
- rust-rustversion
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-rustyline
ExclusiveArch: %{rust_arches}
- rust-rustyline-derive
ExclusiveArch: %{rust_arches}
- rust-ryu
ExclusiveArch: %{rust_arches}
- rust-safe-transmute
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-sass-rs
ExclusiveArch: %{rust_arches}
- rust-sass-sys
ExclusiveArch: %{rust_arches}
- rust-scan_fmt
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.7
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde-big-array
ExclusiveArch: %{rust_arches}
- rust-serde-pickle
ExclusiveArch: %{rust_arches}
- rust-serde-xml-rs
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_repr
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_url_params
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_with_macros
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shell-words
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal-hook
ExclusiveArch: %{rust_arches}
- rust-signal-hook-registry
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simd_helpers
ExclusiveArch: %{rust_arches}
- rust-simple_logger
ExclusiveArch: %{rust_arches}
- rust-simplelog
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-size
ExclusiveArch: %{rust_arches}
- rust-sized-chunks
ExclusiveArch: %{rust_arches}
- rust-skeptic
ExclusiveArch: %{rust_arches}
- rust-skim
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slice-deque
ExclusiveArch: %{rust_arches}
- rust-slog
ExclusiveArch: %{rust_arches}
- rust-slog-async
ExclusiveArch: %{rust_arches}
- rust-slog-scope
ExclusiveArch: %{rust_arches}
- rust-slog-term
ExclusiveArch: %{rust_arches}
- rust-slotmap
ExclusiveArch: %{rust_arches}
- rust-slug
ExclusiveArch: %{rust_arches}
- rust-sluice
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-smart-default
ExclusiveArch: %{rust_arches}
- rust-snafu
ExclusiveArch: %{rust_arches}
- rust-snafu-derive
ExclusiveArch: %{rust_arches}
- rust-snowflake
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-sourceview
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-stacker
ExclusiveArch: %{rust_arches}
- rust-standback
ExclusiveArch: %{rust_arches}
- rust-starship
ExclusiveArch: %{rust_arches}
- rust-starship_module_config_derive
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-stb_truetype
ExclusiveArch: %{rust_arches}
- rust-stream-cipher
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-string
ExclusiveArch: %{rust_arches}
- rust-string_cache
ExclusiveArch: %{rust_arches}
- rust-string_cache_codegen
ExclusiveArch: %{rust_arches}
- rust-string_cache_shared
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strip-ansi-escapes
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-structopt-derive0.2
ExclusiveArch: %{rust_arches}
- rust-structopt0.2
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin-sys
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-syn-mid
ExclusiveArch: %{rust_arches}
- rust-syn0.15
ExclusiveArch: %{rust_arches}
- rust-synom
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-syntect
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-sysinfo
ExclusiveArch: %{rust_arches}
- rust-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-target-lexicon
ExclusiveArch: %{rust_arches}
- rust-tealdeer
ExclusiveArch: %{rust_arches}
- rust-teloxide
ExclusiveArch: %{rust_arches}
- rust-teloxide-macros
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-terminal_size
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-tester
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-thiserror
ExclusiveArch: %{rust_arches}
- rust-thiserror-impl
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-scoped
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-time-macros
ExclusiveArch: %{rust_arches}
- rust-time-macros-impl
ExclusiveArch: %{rust_arches}
- rust-time0.1
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-timerfd
ExclusiveArch: %{rust_arches}
- rust-tiny_http
ExclusiveArch: %{rust_arches}
- rust-tinytemplate
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-codec
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-current-thread
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-io-pool
ExclusiveArch: %{rust_arches}
- rust-tokio-macros
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-sync
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-test
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-tls0.2
ExclusiveArch: %{rust_arches}
- rust-tokio-tungstenite
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-tokio-uds
ExclusiveArch: %{rust_arches}
- rust-tokio-util
ExclusiveArch: %{rust_arches}
- rust-tokio0.1
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-tower-layer
ExclusiveArch: %{rust_arches}
- rust-tower-service
ExclusiveArch: %{rust_arches}
- rust-tower-test
ExclusiveArch: %{rust_arches}
- rust-tower-util
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-treebitmap
ExclusiveArch: %{rust_arches}
- rust-treeline
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver
ExclusiveArch: %{rust_arches}
- rust-try-lock
ExclusiveArch: %{rust_arches}
- rust-try_from
ExclusiveArch: %{rust_arches}
- rust-try_or
ExclusiveArch: %{rust_arches}
- rust-trybuild
ExclusiveArch: %{rust_arches}
- rust-tui
ExclusiveArch: %{rust_arches}
- rust-tui-react
ExclusiveArch: %{rust_arches}
- rust-tuikit
ExclusiveArch: %{rust_arches}
- rust-tungstenite
ExclusiveArch: %{rust_arches}
- rust-twoway
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unchecked-index
ExclusiveArch: %{rust_arches}
- rust-unescape
ExclusiveArch: %{rust_arches}
- rust-unic-char-property
ExclusiveArch: %{rust_arches}
- rust-unic-char-range
ExclusiveArch: %{rust_arches}
- rust-unic-common
ExclusiveArch: %{rust_arches}
- rust-unic-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-category
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-common
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-version
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicase1
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unicode-xid0.1
ExclusiveArch: %{rust_arches}
- rust-unicode_categories
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-unix_socket
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-uom
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-url1
ExclusiveArch: %{rust_arches}
- rust-url_serde
ExclusiveArch: %{rust_arches}
- rust-urlencoding
ExclusiveArch: %{rust_arches}
- rust-urlshortener
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf-8
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-uuid0.7
ExclusiveArch: %{rust_arches}
- rust-v_escape
ExclusiveArch: %{rust_arches}
- rust-v_escape_derive
ExclusiveArch: %{rust_arches}
- rust-v_htmlescape
ExclusiveArch: %{rust_arches}
- rust-varlink
ExclusiveArch: %{rust_arches}
- rust-varlink-cli
ExclusiveArch: %{rust_arches}
- rust-varlink_generator
ExclusiveArch: %{rust_arches}
- rust-varlink_parser
ExclusiveArch: %{rust_arches}
- rust-varlink_stdinterfaces
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-vergen
ExclusiveArch: %{rust_arches}
- rust-version-compare
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-vmw_backdoor
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-want
ExclusiveArch: %{rust_arches}
- rust-warp
ExclusiveArch: %{rust_arches}
- rust-websocket
ExclusiveArch: %{rust_arches}
- rust-websocket-base
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-x11
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xdg
ExclusiveArch: %{rust_arches}
- rust-xkbcommon
ExclusiveArch: %{rust_arches}
- rust-xml-rs
ExclusiveArch: %{rust_arches}
- rust-xml5ever
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-y4m
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-ybaas
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-yup-oauth2
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- rust-zstd
ExclusiveArch: %{rust_arches}
- rust-zstd-safe
ExclusiveArch: %{rust_arches}
- rust-zstd-sys
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- sagemath
ExclusiveArch: aarch64 %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seamonkey
ExclusiveArch: x86_64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- soup-sharp
ExclusiveArch: %{mono_arches}
- source-to-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- springlobby
ExclusiveArch: %{ix86} x86_64
- squeekboard
ExclusiveArch: %{rust_arches}
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratis-cli
ExclusiveArch: %{rust_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supercollider
ExclusiveArch: %{qt5_qtwebengine_arches}
- supermin
ExclusiveArch: x86_64
- svt-av1
ExclusiveArch: x86_64
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- termy-qt
ExclusiveArch: %{ix86} x86_64
- ternimal
ExclusiveArch: %{rust_arches}
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- toolbox
ExclusiveArch: aarch64 %{arm} ppc64le s390x x86_64
- torbrowser-launcher
ExclusiveArch: %{ix86} x86_64
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- ursa-major
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vapoursynth
ExclusiveArch: %{ix86} x86_64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virt-p2v
ExclusiveArch: x86_64
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- vmem
ExclusiveArch: x86_64
- vmemcache
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- wine-dxvk
ExclusiveArch: %{ix86} x86_64
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xe-guest-utilities-latest
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- yarnpkg
ExclusiveArch: %{nodejs_arches} noarch
- ycssmin
ExclusiveArch: %{nodejs_arches} noarch
- ytop
ExclusiveArch: %{rust_arches}
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zola
ExclusiveArch: %{rust_arches}
3 years, 12 months
Architecture specific change in rpms/ngspice.git
by githook-noreply@fedoraproject.org
The package rpms/ngspice.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/ngspice.git/commit/?id=43fa62d918....
Change:
-%ifarch x86_64 sparc64 ppc64 amd64
Thanks.
Full change:
============
commit cd4963627aae9ca56ace98712d470ade3ca9b0cc
Author: Mamoru TASAKA <mtasaka(a)fedoraproject.org>
Date: Wed May 6 10:39:10 2020 +0900
fix source entry
diff --git a/ngspice.spec b/ngspice.spec
index 0263392..852e729 100644
--- a/ngspice.spec
+++ b/ngspice.spec
@@ -14,6 +14,7 @@
%endif
%global mainver 32.2
+%global docver 32
%undefine prever
%global prerpmver %(echo "%{?prever}" | sed -e 's|-||g')
@@ -52,7 +53,7 @@ Source0: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{ve
%if 0%{?usegitbare} >= 1
Source0: ngspice-%{tarballdate}T%{tarballtime}.tar.gz
%endif
-Source1: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{versi...
+Source1: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{versi...
Source2: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{versi...
Source10: create-ngspice-git-bare-tarball.sh
commit e3cd1b234b9508cdc474a4c0b713ecad16a56ab3
Author: Mamoru TASAKA <mtasaka(a)fedoraproject.org>
Date: Wed May 6 10:33:53 2020 +0900
32.2 tagged
diff --git a/.gitignore b/.gitignore
index 6d2cee0..15aa479 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,4 @@ ngspice-rework-20.cvs20100719.tar.bz2
/ngspice-31-manual.pdf
/ngspice-20200505T2059.tar.gz
/ngspice-32-manual.pdf
+/ngspice-20200506T0950.tar.gz
diff --git a/ngspice-32-gcc10-nocommon.patch b/ngspice-32-gcc10-nocommon.patch
deleted file mode 100644
index 50d74e3..0000000
--- a/ngspice-32-gcc10-nocommon.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- ngspice-32/src/xspice/icm/dlmain.h.gcc10 2020-05-03 16:35:31.000000000 +0900
-+++ ngspice-32/src/xspice/icm/dlmain.h 2020-05-05 15:22:20.263239365 +0900
-@@ -5,6 +5,6 @@
- #include "ngspice/mifproto.h"
- #include "ngspice/dllitf.h"
-
--struct coreInfo_t *coreitf;
-+extern struct coreInfo_t *coreitf;
-
- #endif /* dlmain.h */
-diff --git a/src/ngsconvert.c b/src/ngsconvert.c
-index f8a7a5176..6e09b9033 100644
---- a/src/ngsconvert.c
-+++ b/src/ngsconvert.c
-@@ -24,7 +24,6 @@ FILE *cp_err = NULL;
- FILE *cp_curin = NULL;
- FILE *cp_curout = NULL;
- FILE *cp_curerr = NULL;
--int cp_maxhistlength;
- bool cp_debug = FALSE;
- char cp_chars[128];
- bool cp_nocc = TRUE;
diff --git a/ngspice.spec b/ngspice.spec
index d66bd0e..0263392 100644
--- a/ngspice.spec
+++ b/ngspice.spec
@@ -13,26 +13,27 @@
%global userelease 1
%endif
-%global mainver 32
+%global mainver 32.2
%undefine prever
%global prerpmver %(echo "%{?prever}" | sed -e 's|-||g')
%global mainrel 1
%if 0%{?usegitbare} >= 1
-%global gitcommit bbe81ca8f86a8648aa698c2b95fafcd4ba98b73f
-%global gitdate 20200405
+%global gitcommit 5c3e2b6526b22015ddec692450f5c5077efa1d80
+%global gitdate 20200505
%global shortcommit %(c=%{gitcommit}; echo ${c:0:7})
-%global tarballdate 20200505
-%global tarballtime 2059
+%global tarballdate 20200506
+%global tarballtime 0950
%endif
%if 0%{?userelease} >= 1
%global fedorarel %{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}}
%endif
%if 0%{?usegitbare} >= 1
-%global fedorarel %{?prever:0.}%{mainrel}.D%{gitdate}git%{shortcommit}
+#%global fedorarel %{?prever:0.}%{mainrel}.D%{gitdate}git%{shortcommit}
+%global fedorarel %{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}}
%endif
%undefine _changelog_trimtime
@@ -59,7 +60,6 @@ Source10: create-ngspice-git-bare-tarball.sh
# Link libspice.so with -lBLT or -lBLIlite, depending on whether in tk mode or
# not (bug 1047056, debian bug 737279)
Patch0: ngspice-26-blt-linkage-workaround.patch
-Patch11: ngspice-32-gcc10-nocommon.patch
BuildRequires: gcc
@@ -163,8 +163,6 @@ cat %{SOURCE2} | gzip -dc | tar xof -
%patch0 -p2 -b .link
git commit -m "Link libspice.so with -lBLT or -lBLIlite, depending on whether in tk mode or not" -a
-%patch11 -p1 -b .nocommon
-git commit -m "Fix for gcc10 -fno-common" -a
# make sure the examples are UTF-8...
for nonUTF8 in \
@@ -399,7 +397,10 @@ cd tests
%{_includedir}/ngspice/
%changelog
-* Tue May 5 2020 Mamoru TASAKA <mtasaka(a)fedoraproject.org> - 32-1.D20200405gitbbe81ca
+* Wed May 6 2020 Mamoru TASAKA <mtasaka(a)fedoraproject.org> - 32.2-1
+- 32.2 tagged
+
+* Tue May 5 2020 Mamoru TASAKA <mtasaka(a)fedoraproject.org> - 32-1.D20200505gitbbe81ca
- Update to 32
- Use upstream git to use some upstream fixes since release
diff --git a/sources b/sources
index 7a5916f..09df0fe 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (ngspice-20200505T2059.tar.gz) = f3c10dd1afb9df4b3a7af2f4712b22fdeb7e29224ac48f00c817e606a32452c9c46fb63981182675894f8fbc9154d0e1d1bb77f3946620091547504e082b7618
+SHA512 (ngspice-20200506T0950.tar.gz) = 610450a0f32421efd7cef9c238dc4274cf6024ec527e5a070e673e43011a57251c4ef419b429cf15247d781f0bcd065c1b1ff01691952ef572046a3e6ddeb70f
SHA512 (ngspice-32-manual.pdf) = 1e4902bda97e8d26b0e38a6ce4e0fc25af7ae505308cba88da281323229a0cd39907581373e9fc59140ce9a0259a8411bb581d8cae94f18eb74283e774a9b93f
SHA512 (ng_adms_va.tar.gz) = fc47f1f1c73ec72b0e36d1b03869ddec64ea8777d404c059f362a4a7bdad164a3267a7b022fc6ddf8d3c5a0188493b1586754dfcb7cd39e42a2733a9f2a9dac6
commit 43fa62d918fa0a8eda1824c821699b8fa7fc2d41
Author: Mamoru TASAKA <mtasaka(a)fedoraproject.org>
Date: Wed May 6 01:44:10 2020 +0900
Update to 32
Use upstream git to use some upstream fixes since release
diff --git a/.gitignore b/.gitignore
index d9077ea..6d2cee0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,5 @@ ngspice-rework-20.cvs20100719.tar.bz2
/ngspice-30-manual.pdf
/ngspice-31.tar.gz
/ngspice-31-manual.pdf
+/ngspice-20200505T2059.tar.gz
+/ngspice-32-manual.pdf
diff --git a/create-ngspice-git-bare-tarball.sh b/create-ngspice-git-bare-tarball.sh
new file mode 100644
index 0000000..93333e8
--- /dev/null
+++ b/create-ngspice-git-bare-tarball.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+set -x
+set -e
+
+REPONAME=ngspice
+GITURL=https://git.code.sf.net/p/ngspice/${REPONAME}.git
+
+DATE=$(date '+%Y%m%d')
+TIME=$(date '+%H%M')
+
+TARNAME=${REPONAME}-${DATE}T${TIME}.tar.gz
+
+PWDDIR=$(pwd)
+TMPDIR=$(mktemp -d /var/tmp/ngspice-XXXXXX)
+pushd $TMPDIR
+
+git clone --mirror $GITURL
+
+cd ./${REPONAME}.git
+git log | head -n 5
+cd ..
+
+tar czf ${TARNAME} ${REPONAME}.git/
+
+cp -p ${TARNAME} $PWDDIR
+popd
+rm -rf $TMPDIR
diff --git a/ngspice-32-gcc10-nocommon.patch b/ngspice-32-gcc10-nocommon.patch
new file mode 100644
index 0000000..50d74e3
--- /dev/null
+++ b/ngspice-32-gcc10-nocommon.patch
@@ -0,0 +1,22 @@
+--- ngspice-32/src/xspice/icm/dlmain.h.gcc10 2020-05-03 16:35:31.000000000 +0900
++++ ngspice-32/src/xspice/icm/dlmain.h 2020-05-05 15:22:20.263239365 +0900
+@@ -5,6 +5,6 @@
+ #include "ngspice/mifproto.h"
+ #include "ngspice/dllitf.h"
+
+-struct coreInfo_t *coreitf;
++extern struct coreInfo_t *coreitf;
+
+ #endif /* dlmain.h */
+diff --git a/src/ngsconvert.c b/src/ngsconvert.c
+index f8a7a5176..6e09b9033 100644
+--- a/src/ngsconvert.c
++++ b/src/ngsconvert.c
+@@ -24,7 +24,6 @@ FILE *cp_err = NULL;
+ FILE *cp_curin = NULL;
+ FILE *cp_curout = NULL;
+ FILE *cp_curerr = NULL;
+-int cp_maxhistlength;
+ bool cp_debug = FALSE;
+ char cp_chars[128];
+ bool cp_nocc = TRUE;
diff --git a/ngspice.spec b/ngspice.spec
index 3b5036a..d66bd0e 100644
--- a/ngspice.spec
+++ b/ngspice.spec
@@ -5,40 +5,61 @@
# - Provides tclspice capabilities
# Chitlesh Goorah
-#
-## To download development trunk
-#
-# cvs -d:pserver:anonymous@ngspice.cvs.sourceforge.net:/cvsroot/ngspice login
-# cvs -z3 -d:pserver:anonymous@ngspice.cvs.sourceforge.net:/cvsroot/ngspice export -DNOW ngspice
-# tar cjf ~/rpmbuild/SOURCES/ngspice-rework-23.`date '+%Y%m%d'`cvs.tar.bz2 ngspice
+%global userelease 0
+%global usegitbare 1
+
+%if 0%{?usegitbare} < 1
+# force
+%global userelease 1
+%endif
+
+%global mainver 32
+%undefine prever
+%global prerpmver %(echo "%{?prever}" | sed -e 's|-||g')
-# Toggle the following declaration when using version controlled snapshots
-%global devel 0
+%global mainrel 1
+
+%if 0%{?usegitbare} >= 1
+%global gitcommit bbe81ca8f86a8648aa698c2b95fafcd4ba98b73f
+%global gitdate 20200405
+%global shortcommit %(c=%{gitcommit}; echo ${c:0:7})
+
+%global tarballdate 20200505
+%global tarballtime 2059
+%endif
+
+%if 0%{?userelease} >= 1
+%global fedorarel %{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}}
+%endif
+%if 0%{?usegitbare} >= 1
+%global fedorarel %{?prever:0.}%{mainrel}.D%{gitdate}git%{shortcommit}
+%endif
%undefine _changelog_trimtime
Name: ngspice
-Version: 31
-%if %{?devel}
-%global snap .20111129cvs
-%endif
-Release: 4%{?snap}%{?dist}.respin2
+Version: %{mainver}
+Release: %{fedorarel}%{?dist}
Summary: A mixed level/signal circuit simulator
License: BSD
URL: http://ngspice.sourceforge.net
-%if %{?devel}
-Source0: ngspice-rework-%{version}%{snap}.tar.bz2
-%else
+%if 0%{?userelease} >= 1
Source0: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{versi...
+%endif
+%if 0%{?usegitbare} >= 1
+Source0: ngspice-%{tarballdate}T%{tarballtime}.tar.gz
+%endif
Source1: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{versi...
Source2: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{versi...
-%endif
+Source10: create-ngspice-git-bare-tarball.sh
+
# Link libspice.so with -lBLT or -lBLIlite, depending on whether in tk mode or
# not (bug 1047056, debian bug 737279)
Patch0: ngspice-26-blt-linkage-workaround.patch
+Patch11: ngspice-32-gcc10-nocommon.patch
BuildRequires: gcc
@@ -49,18 +70,23 @@ BuildRequires: libICE-devel
BuildRequires: libXaw-devel
BuildRequires: libGL-devel
BuildRequires: libXt-devel
+# From ngspice 32
+BuildRequires: fontconfig-devel
+BuildRequires: freetype-devel
+BuildRequires: libXft-devel
+BuildRequires: libXrender-devel
BuildRequires: automake
BuildRequires: libtool
-%if %{?devel}
-BuildRequires: lyx
-%endif
BuildRequires: bison
BuildRequires: byacc
BuildRequires: flex
+
BuildRequires: ImageMagick
BuildRequires: mot-adms
+BuildRequires: git
+
Obsoletes: ngspice-doc < 20-4.cvs20100619
Provides: ngspice-doc = %{version}-%{release}
@@ -114,13 +140,31 @@ developing applications that use libngspice.
%prep
-%if %{?devel}
-%setup -q -n ngspice
-cd ng-spice-rework
-%else
-%setup -q -a 2
+%if 0%{?userelease} >= 1
+%setup -q
+git init
+git config user.name "%{name} maintainer"
+git config user.email "%{name}-owner(a)fedoraproject.org"
+git add .
+git commit -m "base" -a
+%endif
+
+%if 0%{?usegitbare} >= 1
+%setup -q -c -T -a 0
+git clone ./%{name}.git/
+cd %{name}
+git config user.name "%{name} maintainer"
+git config user.email "%{name}-owner(a)fedoraproject.org"
+
+git checkout -b %{name}-%{version}-fedora %{gitcommit}
%endif
+
+cat %{SOURCE2} | gzip -dc | tar xof -
+
%patch0 -p2 -b .link
+git commit -m "Link libspice.so with -lBLT or -lBLIlite, depending on whether in tk mode or not" -a
+%patch11 -p1 -b .nocommon
+git commit -m "Fix for gcc10 -fno-common" -a
# make sure the examples are UTF-8...
for nonUTF8 in \
@@ -133,6 +177,7 @@ do
%{_bindir}/iconv -f ISO-8859-1 -t utf-8 $nonUTF8 > $nonUTF8.conv
%{__mv} -f $nonUTF8.conv $nonUTF8
done
+git commit -m "Change files to UTF8" -a
# rpmlint warnings
find examples/ -type f -name ".cvsignore" -exec rm -rf {} ';'
@@ -140,11 +185,7 @@ find src/ -type f -name "*.c" -exec chmod -x {} ';'
find src/ -type f -name "*.h" -exec chmod -x {} ';'
find src/ -type f -name "*.l" -exec chmod -x {} ';'
find src/ -type f -name "*.y" -exec chmod -x {} ';'
-
-%ifarch x86_64 sparc64 ppc64 amd64
-sed -i "s|@XSPICEINIT@ codemodel @prefix@/@libname@|@XSPICEINIT@ codemodel %{_libdir}|" \
- src/spinit.in
-%endif
+git commit -m "Fix permission" -a || :
# Fix Tclspice's examples
sed -i \
@@ -156,26 +197,23 @@ sed -i \
sed -i \
's|spice::codemodel ../../src/xspice/icm/spice2poly|spice::codemodel %{_libdir}/tclspice/spice2poly|' \
examples/tclspice/tcl-testbench*/tcl-testbench*.sh
+git commit -m "Fix Tclspice's examples" -a
# Fixed minor CVS build
sed -i \
"s|AM_CPPFLAGS =|AM_CPPFLAGS = -I\$(top_srcdir)/src/maths/ni |" \
src/spicelib/analysis/Makefile.am
+git commit -m "Fix include path" -a
export ACLOCAL_FLAGS=-Im4
./autogen.sh --adms
+git commit -m "Execute autogen" -a || :
chmod +x configure
%build
-%if %{?devel}
-# ---- Manual ----------------------------------------------------------------
-cd ng-spice-manuals
-autoreconf -Wno-portability --install
-%configure ; make
-cd ..
-
-cd ng-spice-rework
+%if 0%{?usegitbare} >= 1
+cd %{name}
%endif
# ---- Tclspice ----------------------------------------------------------------
@@ -191,12 +229,6 @@ cd tclspice
sed -i \
's|\#define NGSPICEDATADIR "\`echo \$dprefix/share/ngspice\`"|\#define NGSPICEDATADIR "\`echo %{_libdir}/tclspice\`"|' \
configure*
-# fix ng-spice-manuals directory location
-%if %{?devel}
-sed -i \
- 's|../ng-spice-manuals|../../ng-spice-manuals|g' \
- manual/Makefile.am
-%endif
# direct access to Tcl_Interp->result deprecated in tcl8.6,
# remaining usage cannot be replaced by Tcl_SetResult
@@ -227,7 +259,7 @@ export CPPFLAGS=-DUSE_INTERP_RESULT
--enable-oldapps \
%{nil}
-%{__make}
+%{__make} -k
# Once install to the temp dir
rm -rf $(pwd)/../INST-TCLSPICE
%{__make} INSTALL="install -p" install DESTDIR=$(pwd)/../INST-TCLSPICE
@@ -257,8 +289,8 @@ do
%{nil}
%{__make} clean
-%{__make}
-# %{?_smp_mflags}
+# No parallel make
+%{__make} -k
# Once install to the temp dir
rm -rf $(pwd)/INST-NGSPICE-${opt}
%{__make} INSTALL="install -p" install DESTDIR=$(pwd)/INST-NGSPICE-${opt}
@@ -267,8 +299,9 @@ find $(pwd)/INST-NGSPICE-${opt} -type f | sort
done
%install
-%if %{?devel}
-cd ng-spice-rework
+%if 0%{?usegitbare} >= 1
+cp -p %{name}/COPYING .
+cd %{name}
%endif
# ---- Tclspice ----------------------------------------------------------------
@@ -279,7 +312,10 @@ rm -rf ./%{_datadir}/ngspice/include/
# see bug 1311869
rm -f ./%{_datadir}/ngspice/scripts/spinit
# binary differ
-mv .%{_bindir}/cmpp{,-tclspice}
+# for --short-circuit
+if [ -f .%{_bindir}/cmpp ] ; then
+ mv .%{_bindir}/cmpp{,-tclspice}
+fi
popd
# Install
@@ -307,11 +343,7 @@ cp -pr ./src/spicelib/devices/adms/ %{buildroot}%{_datadir}/%{name}
# Ensuring that all docs are under %%{_pkgdocdir}
mkdir -p %{buildroot}%{_pkgdocdir}
cp -pr examples/ %{buildroot}%{_pkgdocdir}
-%if %{?devel}
-cp -p ../ng-spice-manuals/manual.pdf %{buildroot}%{_pkgdocdir}/%{name}-%{version}.pdf
-%else
install -cpm 0644 %{SOURCE1} %{buildroot}%{_pkgdocdir}/%{name}-%{version}.pdf
-%endif
cp -a \
Stuarts_Poly_Notes \
@@ -332,11 +364,10 @@ chmod +x %{buildroot}%{_libdir}/ngspice/*.cm
chmod +x %{buildroot}%{_libdir}/tclspice/ngspice/*.cm
%check
-%if %{?devel}
-cd ng-spice-rework/tests
-%else
-cd tests
+%if 0%{?usegitbare} >= 1
+cd %{name}
%endif
+cd tests
#make check
%files
@@ -368,6 +399,10 @@ cd tests
%{_includedir}/ngspice/
%changelog
+* Tue May 5 2020 Mamoru TASAKA <mtasaka(a)fedoraproject.org> - 32-1.D20200405gitbbe81ca
+- Update to 32
+- Use upstream git to use some upstream fixes since release
+
* Wed Jan 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 31-4.respin2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
diff --git a/sources b/sources
index aeffb6c..7a5916f 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (ngspice-31.tar.gz) = 95d61fe4acdba8b4d8c22eeb2cff5e49976d324e93fdcf6b88b73d59a679bc9a6e7d2b39c3523dface52a2653533830c627259be8171794f1f363a573add1cef
+SHA512 (ngspice-20200505T2059.tar.gz) = f3c10dd1afb9df4b3a7af2f4712b22fdeb7e29224ac48f00c817e606a32452c9c46fb63981182675894f8fbc9154d0e1d1bb77f3946620091547504e082b7618
+SHA512 (ngspice-32-manual.pdf) = 1e4902bda97e8d26b0e38a6ce4e0fc25af7ae505308cba88da281323229a0cd39907581373e9fc59140ce9a0259a8411bb581d8cae94f18eb74283e774a9b93f
SHA512 (ng_adms_va.tar.gz) = fc47f1f1c73ec72b0e36d1b03869ddec64ea8777d404c059f362a4a7bdad164a3267a7b022fc6ddf8d3c5a0188493b1586754dfcb7cd39e42a2733a9f2a9dac6
-SHA512 (ngspice-31-manual.pdf) = 3322df92791718979a275f2640f82c3417f394a76d27ebf06b46f29a40a1ee3ef57c65a75a7ba67e697b55bd435f81e9ee61c78532f991a2dd6844b4f325eb55
commit 3927f163bf8f51479a0b8312340928b3507d07df
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Wed Jan 29 14:59:13 2020 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/ngspice.spec b/ngspice.spec
index 1da28d3..3b5036a 100644
--- a/ngspice.spec
+++ b/ngspice.spec
@@ -22,7 +22,7 @@ Version: 31
%if %{?devel}
%global snap .20111129cvs
%endif
-Release: 3%{?snap}%{?dist}.respin2
+Release: 4%{?snap}%{?dist}.respin2
Summary: A mixed level/signal circuit simulator
License: BSD
@@ -368,6 +368,9 @@ cd tests
%{_includedir}/ngspice/
%changelog
+* Wed Jan 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 31-4.respin2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
* Mon Oct 7 2019 Mamoru TASAKA <mtasaka(a)fedoraproject.org> - 31-3.respin2
- 31 tarball again respun
3 years, 12 months
Architecture specific change in rpms/ngspice.git
by githook-noreply@fedoraproject.org
The package rpms/ngspice.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/ngspice.git/commit/?id=43fa62d918....
Change:
-%ifarch x86_64 sparc64 ppc64 amd64
Thanks.
Full change:
============
commit cd4963627aae9ca56ace98712d470ade3ca9b0cc
Author: Mamoru TASAKA <mtasaka(a)fedoraproject.org>
Date: Wed May 6 10:39:10 2020 +0900
fix source entry
diff --git a/ngspice.spec b/ngspice.spec
index 0263392..852e729 100644
--- a/ngspice.spec
+++ b/ngspice.spec
@@ -14,6 +14,7 @@
%endif
%global mainver 32.2
+%global docver 32
%undefine prever
%global prerpmver %(echo "%{?prever}" | sed -e 's|-||g')
@@ -52,7 +53,7 @@ Source0: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{ve
%if 0%{?usegitbare} >= 1
Source0: ngspice-%{tarballdate}T%{tarballtime}.tar.gz
%endif
-Source1: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{versi...
+Source1: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{versi...
Source2: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{versi...
Source10: create-ngspice-git-bare-tarball.sh
commit e3cd1b234b9508cdc474a4c0b713ecad16a56ab3
Author: Mamoru TASAKA <mtasaka(a)fedoraproject.org>
Date: Wed May 6 10:33:53 2020 +0900
32.2 tagged
diff --git a/.gitignore b/.gitignore
index 6d2cee0..15aa479 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,4 @@ ngspice-rework-20.cvs20100719.tar.bz2
/ngspice-31-manual.pdf
/ngspice-20200505T2059.tar.gz
/ngspice-32-manual.pdf
+/ngspice-20200506T0950.tar.gz
diff --git a/ngspice-32-gcc10-nocommon.patch b/ngspice-32-gcc10-nocommon.patch
deleted file mode 100644
index 50d74e3..0000000
--- a/ngspice-32-gcc10-nocommon.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- ngspice-32/src/xspice/icm/dlmain.h.gcc10 2020-05-03 16:35:31.000000000 +0900
-+++ ngspice-32/src/xspice/icm/dlmain.h 2020-05-05 15:22:20.263239365 +0900
-@@ -5,6 +5,6 @@
- #include "ngspice/mifproto.h"
- #include "ngspice/dllitf.h"
-
--struct coreInfo_t *coreitf;
-+extern struct coreInfo_t *coreitf;
-
- #endif /* dlmain.h */
-diff --git a/src/ngsconvert.c b/src/ngsconvert.c
-index f8a7a5176..6e09b9033 100644
---- a/src/ngsconvert.c
-+++ b/src/ngsconvert.c
-@@ -24,7 +24,6 @@ FILE *cp_err = NULL;
- FILE *cp_curin = NULL;
- FILE *cp_curout = NULL;
- FILE *cp_curerr = NULL;
--int cp_maxhistlength;
- bool cp_debug = FALSE;
- char cp_chars[128];
- bool cp_nocc = TRUE;
diff --git a/ngspice.spec b/ngspice.spec
index d66bd0e..0263392 100644
--- a/ngspice.spec
+++ b/ngspice.spec
@@ -13,26 +13,27 @@
%global userelease 1
%endif
-%global mainver 32
+%global mainver 32.2
%undefine prever
%global prerpmver %(echo "%{?prever}" | sed -e 's|-||g')
%global mainrel 1
%if 0%{?usegitbare} >= 1
-%global gitcommit bbe81ca8f86a8648aa698c2b95fafcd4ba98b73f
-%global gitdate 20200405
+%global gitcommit 5c3e2b6526b22015ddec692450f5c5077efa1d80
+%global gitdate 20200505
%global shortcommit %(c=%{gitcommit}; echo ${c:0:7})
-%global tarballdate 20200505
-%global tarballtime 2059
+%global tarballdate 20200506
+%global tarballtime 0950
%endif
%if 0%{?userelease} >= 1
%global fedorarel %{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}}
%endif
%if 0%{?usegitbare} >= 1
-%global fedorarel %{?prever:0.}%{mainrel}.D%{gitdate}git%{shortcommit}
+#%global fedorarel %{?prever:0.}%{mainrel}.D%{gitdate}git%{shortcommit}
+%global fedorarel %{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}}
%endif
%undefine _changelog_trimtime
@@ -59,7 +60,6 @@ Source10: create-ngspice-git-bare-tarball.sh
# Link libspice.so with -lBLT or -lBLIlite, depending on whether in tk mode or
# not (bug 1047056, debian bug 737279)
Patch0: ngspice-26-blt-linkage-workaround.patch
-Patch11: ngspice-32-gcc10-nocommon.patch
BuildRequires: gcc
@@ -163,8 +163,6 @@ cat %{SOURCE2} | gzip -dc | tar xof -
%patch0 -p2 -b .link
git commit -m "Link libspice.so with -lBLT or -lBLIlite, depending on whether in tk mode or not" -a
-%patch11 -p1 -b .nocommon
-git commit -m "Fix for gcc10 -fno-common" -a
# make sure the examples are UTF-8...
for nonUTF8 in \
@@ -399,7 +397,10 @@ cd tests
%{_includedir}/ngspice/
%changelog
-* Tue May 5 2020 Mamoru TASAKA <mtasaka(a)fedoraproject.org> - 32-1.D20200405gitbbe81ca
+* Wed May 6 2020 Mamoru TASAKA <mtasaka(a)fedoraproject.org> - 32.2-1
+- 32.2 tagged
+
+* Tue May 5 2020 Mamoru TASAKA <mtasaka(a)fedoraproject.org> - 32-1.D20200505gitbbe81ca
- Update to 32
- Use upstream git to use some upstream fixes since release
diff --git a/sources b/sources
index 7a5916f..09df0fe 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (ngspice-20200505T2059.tar.gz) = f3c10dd1afb9df4b3a7af2f4712b22fdeb7e29224ac48f00c817e606a32452c9c46fb63981182675894f8fbc9154d0e1d1bb77f3946620091547504e082b7618
+SHA512 (ngspice-20200506T0950.tar.gz) = 610450a0f32421efd7cef9c238dc4274cf6024ec527e5a070e673e43011a57251c4ef419b429cf15247d781f0bcd065c1b1ff01691952ef572046a3e6ddeb70f
SHA512 (ngspice-32-manual.pdf) = 1e4902bda97e8d26b0e38a6ce4e0fc25af7ae505308cba88da281323229a0cd39907581373e9fc59140ce9a0259a8411bb581d8cae94f18eb74283e774a9b93f
SHA512 (ng_adms_va.tar.gz) = fc47f1f1c73ec72b0e36d1b03869ddec64ea8777d404c059f362a4a7bdad164a3267a7b022fc6ddf8d3c5a0188493b1586754dfcb7cd39e42a2733a9f2a9dac6
commit 43fa62d918fa0a8eda1824c821699b8fa7fc2d41
Author: Mamoru TASAKA <mtasaka(a)fedoraproject.org>
Date: Wed May 6 01:44:10 2020 +0900
Update to 32
Use upstream git to use some upstream fixes since release
diff --git a/.gitignore b/.gitignore
index d9077ea..6d2cee0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,5 @@ ngspice-rework-20.cvs20100719.tar.bz2
/ngspice-30-manual.pdf
/ngspice-31.tar.gz
/ngspice-31-manual.pdf
+/ngspice-20200505T2059.tar.gz
+/ngspice-32-manual.pdf
diff --git a/create-ngspice-git-bare-tarball.sh b/create-ngspice-git-bare-tarball.sh
new file mode 100644
index 0000000..93333e8
--- /dev/null
+++ b/create-ngspice-git-bare-tarball.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+set -x
+set -e
+
+REPONAME=ngspice
+GITURL=https://git.code.sf.net/p/ngspice/${REPONAME}.git
+
+DATE=$(date '+%Y%m%d')
+TIME=$(date '+%H%M')
+
+TARNAME=${REPONAME}-${DATE}T${TIME}.tar.gz
+
+PWDDIR=$(pwd)
+TMPDIR=$(mktemp -d /var/tmp/ngspice-XXXXXX)
+pushd $TMPDIR
+
+git clone --mirror $GITURL
+
+cd ./${REPONAME}.git
+git log | head -n 5
+cd ..
+
+tar czf ${TARNAME} ${REPONAME}.git/
+
+cp -p ${TARNAME} $PWDDIR
+popd
+rm -rf $TMPDIR
diff --git a/ngspice-32-gcc10-nocommon.patch b/ngspice-32-gcc10-nocommon.patch
new file mode 100644
index 0000000..50d74e3
--- /dev/null
+++ b/ngspice-32-gcc10-nocommon.patch
@@ -0,0 +1,22 @@
+--- ngspice-32/src/xspice/icm/dlmain.h.gcc10 2020-05-03 16:35:31.000000000 +0900
++++ ngspice-32/src/xspice/icm/dlmain.h 2020-05-05 15:22:20.263239365 +0900
+@@ -5,6 +5,6 @@
+ #include "ngspice/mifproto.h"
+ #include "ngspice/dllitf.h"
+
+-struct coreInfo_t *coreitf;
++extern struct coreInfo_t *coreitf;
+
+ #endif /* dlmain.h */
+diff --git a/src/ngsconvert.c b/src/ngsconvert.c
+index f8a7a5176..6e09b9033 100644
+--- a/src/ngsconvert.c
++++ b/src/ngsconvert.c
+@@ -24,7 +24,6 @@ FILE *cp_err = NULL;
+ FILE *cp_curin = NULL;
+ FILE *cp_curout = NULL;
+ FILE *cp_curerr = NULL;
+-int cp_maxhistlength;
+ bool cp_debug = FALSE;
+ char cp_chars[128];
+ bool cp_nocc = TRUE;
diff --git a/ngspice.spec b/ngspice.spec
index 3b5036a..d66bd0e 100644
--- a/ngspice.spec
+++ b/ngspice.spec
@@ -5,40 +5,61 @@
# - Provides tclspice capabilities
# Chitlesh Goorah
-#
-## To download development trunk
-#
-# cvs -d:pserver:anonymous@ngspice.cvs.sourceforge.net:/cvsroot/ngspice login
-# cvs -z3 -d:pserver:anonymous@ngspice.cvs.sourceforge.net:/cvsroot/ngspice export -DNOW ngspice
-# tar cjf ~/rpmbuild/SOURCES/ngspice-rework-23.`date '+%Y%m%d'`cvs.tar.bz2 ngspice
+%global userelease 0
+%global usegitbare 1
+
+%if 0%{?usegitbare} < 1
+# force
+%global userelease 1
+%endif
+
+%global mainver 32
+%undefine prever
+%global prerpmver %(echo "%{?prever}" | sed -e 's|-||g')
-# Toggle the following declaration when using version controlled snapshots
-%global devel 0
+%global mainrel 1
+
+%if 0%{?usegitbare} >= 1
+%global gitcommit bbe81ca8f86a8648aa698c2b95fafcd4ba98b73f
+%global gitdate 20200405
+%global shortcommit %(c=%{gitcommit}; echo ${c:0:7})
+
+%global tarballdate 20200505
+%global tarballtime 2059
+%endif
+
+%if 0%{?userelease} >= 1
+%global fedorarel %{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}}
+%endif
+%if 0%{?usegitbare} >= 1
+%global fedorarel %{?prever:0.}%{mainrel}.D%{gitdate}git%{shortcommit}
+%endif
%undefine _changelog_trimtime
Name: ngspice
-Version: 31
-%if %{?devel}
-%global snap .20111129cvs
-%endif
-Release: 4%{?snap}%{?dist}.respin2
+Version: %{mainver}
+Release: %{fedorarel}%{?dist}
Summary: A mixed level/signal circuit simulator
License: BSD
URL: http://ngspice.sourceforge.net
-%if %{?devel}
-Source0: ngspice-rework-%{version}%{snap}.tar.bz2
-%else
+%if 0%{?userelease} >= 1
Source0: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{versi...
+%endif
+%if 0%{?usegitbare} >= 1
+Source0: ngspice-%{tarballdate}T%{tarballtime}.tar.gz
+%endif
Source1: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{versi...
Source2: https://downloads.sourceforge.net/project/ngspice/ng-spice-rework/%{versi...
-%endif
+Source10: create-ngspice-git-bare-tarball.sh
+
# Link libspice.so with -lBLT or -lBLIlite, depending on whether in tk mode or
# not (bug 1047056, debian bug 737279)
Patch0: ngspice-26-blt-linkage-workaround.patch
+Patch11: ngspice-32-gcc10-nocommon.patch
BuildRequires: gcc
@@ -49,18 +70,23 @@ BuildRequires: libICE-devel
BuildRequires: libXaw-devel
BuildRequires: libGL-devel
BuildRequires: libXt-devel
+# From ngspice 32
+BuildRequires: fontconfig-devel
+BuildRequires: freetype-devel
+BuildRequires: libXft-devel
+BuildRequires: libXrender-devel
BuildRequires: automake
BuildRequires: libtool
-%if %{?devel}
-BuildRequires: lyx
-%endif
BuildRequires: bison
BuildRequires: byacc
BuildRequires: flex
+
BuildRequires: ImageMagick
BuildRequires: mot-adms
+BuildRequires: git
+
Obsoletes: ngspice-doc < 20-4.cvs20100619
Provides: ngspice-doc = %{version}-%{release}
@@ -114,13 +140,31 @@ developing applications that use libngspice.
%prep
-%if %{?devel}
-%setup -q -n ngspice
-cd ng-spice-rework
-%else
-%setup -q -a 2
+%if 0%{?userelease} >= 1
+%setup -q
+git init
+git config user.name "%{name} maintainer"
+git config user.email "%{name}-owner(a)fedoraproject.org"
+git add .
+git commit -m "base" -a
+%endif
+
+%if 0%{?usegitbare} >= 1
+%setup -q -c -T -a 0
+git clone ./%{name}.git/
+cd %{name}
+git config user.name "%{name} maintainer"
+git config user.email "%{name}-owner(a)fedoraproject.org"
+
+git checkout -b %{name}-%{version}-fedora %{gitcommit}
%endif
+
+cat %{SOURCE2} | gzip -dc | tar xof -
+
%patch0 -p2 -b .link
+git commit -m "Link libspice.so with -lBLT or -lBLIlite, depending on whether in tk mode or not" -a
+%patch11 -p1 -b .nocommon
+git commit -m "Fix for gcc10 -fno-common" -a
# make sure the examples are UTF-8...
for nonUTF8 in \
@@ -133,6 +177,7 @@ do
%{_bindir}/iconv -f ISO-8859-1 -t utf-8 $nonUTF8 > $nonUTF8.conv
%{__mv} -f $nonUTF8.conv $nonUTF8
done
+git commit -m "Change files to UTF8" -a
# rpmlint warnings
find examples/ -type f -name ".cvsignore" -exec rm -rf {} ';'
@@ -140,11 +185,7 @@ find src/ -type f -name "*.c" -exec chmod -x {} ';'
find src/ -type f -name "*.h" -exec chmod -x {} ';'
find src/ -type f -name "*.l" -exec chmod -x {} ';'
find src/ -type f -name "*.y" -exec chmod -x {} ';'
-
-%ifarch x86_64 sparc64 ppc64 amd64
-sed -i "s|@XSPICEINIT@ codemodel @prefix@/@libname@|@XSPICEINIT@ codemodel %{_libdir}|" \
- src/spinit.in
-%endif
+git commit -m "Fix permission" -a || :
# Fix Tclspice's examples
sed -i \
@@ -156,26 +197,23 @@ sed -i \
sed -i \
's|spice::codemodel ../../src/xspice/icm/spice2poly|spice::codemodel %{_libdir}/tclspice/spice2poly|' \
examples/tclspice/tcl-testbench*/tcl-testbench*.sh
+git commit -m "Fix Tclspice's examples" -a
# Fixed minor CVS build
sed -i \
"s|AM_CPPFLAGS =|AM_CPPFLAGS = -I\$(top_srcdir)/src/maths/ni |" \
src/spicelib/analysis/Makefile.am
+git commit -m "Fix include path" -a
export ACLOCAL_FLAGS=-Im4
./autogen.sh --adms
+git commit -m "Execute autogen" -a || :
chmod +x configure
%build
-%if %{?devel}
-# ---- Manual ----------------------------------------------------------------
-cd ng-spice-manuals
-autoreconf -Wno-portability --install
-%configure ; make
-cd ..
-
-cd ng-spice-rework
+%if 0%{?usegitbare} >= 1
+cd %{name}
%endif
# ---- Tclspice ----------------------------------------------------------------
@@ -191,12 +229,6 @@ cd tclspice
sed -i \
's|\#define NGSPICEDATADIR "\`echo \$dprefix/share/ngspice\`"|\#define NGSPICEDATADIR "\`echo %{_libdir}/tclspice\`"|' \
configure*
-# fix ng-spice-manuals directory location
-%if %{?devel}
-sed -i \
- 's|../ng-spice-manuals|../../ng-spice-manuals|g' \
- manual/Makefile.am
-%endif
# direct access to Tcl_Interp->result deprecated in tcl8.6,
# remaining usage cannot be replaced by Tcl_SetResult
@@ -227,7 +259,7 @@ export CPPFLAGS=-DUSE_INTERP_RESULT
--enable-oldapps \
%{nil}
-%{__make}
+%{__make} -k
# Once install to the temp dir
rm -rf $(pwd)/../INST-TCLSPICE
%{__make} INSTALL="install -p" install DESTDIR=$(pwd)/../INST-TCLSPICE
@@ -257,8 +289,8 @@ do
%{nil}
%{__make} clean
-%{__make}
-# %{?_smp_mflags}
+# No parallel make
+%{__make} -k
# Once install to the temp dir
rm -rf $(pwd)/INST-NGSPICE-${opt}
%{__make} INSTALL="install -p" install DESTDIR=$(pwd)/INST-NGSPICE-${opt}
@@ -267,8 +299,9 @@ find $(pwd)/INST-NGSPICE-${opt} -type f | sort
done
%install
-%if %{?devel}
-cd ng-spice-rework
+%if 0%{?usegitbare} >= 1
+cp -p %{name}/COPYING .
+cd %{name}
%endif
# ---- Tclspice ----------------------------------------------------------------
@@ -279,7 +312,10 @@ rm -rf ./%{_datadir}/ngspice/include/
# see bug 1311869
rm -f ./%{_datadir}/ngspice/scripts/spinit
# binary differ
-mv .%{_bindir}/cmpp{,-tclspice}
+# for --short-circuit
+if [ -f .%{_bindir}/cmpp ] ; then
+ mv .%{_bindir}/cmpp{,-tclspice}
+fi
popd
# Install
@@ -307,11 +343,7 @@ cp -pr ./src/spicelib/devices/adms/ %{buildroot}%{_datadir}/%{name}
# Ensuring that all docs are under %%{_pkgdocdir}
mkdir -p %{buildroot}%{_pkgdocdir}
cp -pr examples/ %{buildroot}%{_pkgdocdir}
-%if %{?devel}
-cp -p ../ng-spice-manuals/manual.pdf %{buildroot}%{_pkgdocdir}/%{name}-%{version}.pdf
-%else
install -cpm 0644 %{SOURCE1} %{buildroot}%{_pkgdocdir}/%{name}-%{version}.pdf
-%endif
cp -a \
Stuarts_Poly_Notes \
@@ -332,11 +364,10 @@ chmod +x %{buildroot}%{_libdir}/ngspice/*.cm
chmod +x %{buildroot}%{_libdir}/tclspice/ngspice/*.cm
%check
-%if %{?devel}
-cd ng-spice-rework/tests
-%else
-cd tests
+%if 0%{?usegitbare} >= 1
+cd %{name}
%endif
+cd tests
#make check
%files
@@ -368,6 +399,10 @@ cd tests
%{_includedir}/ngspice/
%changelog
+* Tue May 5 2020 Mamoru TASAKA <mtasaka(a)fedoraproject.org> - 32-1.D20200405gitbbe81ca
+- Update to 32
+- Use upstream git to use some upstream fixes since release
+
* Wed Jan 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 31-4.respin2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
diff --git a/sources b/sources
index aeffb6c..7a5916f 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (ngspice-31.tar.gz) = 95d61fe4acdba8b4d8c22eeb2cff5e49976d324e93fdcf6b88b73d59a679bc9a6e7d2b39c3523dface52a2653533830c627259be8171794f1f363a573add1cef
+SHA512 (ngspice-20200505T2059.tar.gz) = f3c10dd1afb9df4b3a7af2f4712b22fdeb7e29224ac48f00c817e606a32452c9c46fb63981182675894f8fbc9154d0e1d1bb77f3946620091547504e082b7618
+SHA512 (ngspice-32-manual.pdf) = 1e4902bda97e8d26b0e38a6ce4e0fc25af7ae505308cba88da281323229a0cd39907581373e9fc59140ce9a0259a8411bb581d8cae94f18eb74283e774a9b93f
SHA512 (ng_adms_va.tar.gz) = fc47f1f1c73ec72b0e36d1b03869ddec64ea8777d404c059f362a4a7bdad164a3267a7b022fc6ddf8d3c5a0188493b1586754dfcb7cd39e42a2733a9f2a9dac6
-SHA512 (ngspice-31-manual.pdf) = 3322df92791718979a275f2640f82c3417f394a76d27ebf06b46f29a40a1ee3ef57c65a75a7ba67e697b55bd435f81e9ee61c78532f991a2dd6844b4f325eb55
3 years, 12 months
Architecture specific change in rpms/kf5-mailimporter.git
by githook-noreply@fedoraproject.org
The package rpms/kf5-mailimporter.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/kf5-mailimporter.git/commit/?id=4....
Change:
-ExclusiveArch: x86_64 %{arm}
Thanks.
Full change:
============
commit 400e5fcf7c398e182fec5e82060564213b6a58e3
Author: Troy Dawson <tdawson(a)redhat.com>
Date: Tue May 5 14:27:32 2020 -0700
libcal now in aarch64 for rhel8, ExclusiveArch can be handled by qt5_qtwebengine_arches
diff --git a/kf5-mailimporter.spec b/kf5-mailimporter.spec
index 6e77c15..0414f9d 100644
--- a/kf5-mailimporter.spec
+++ b/kf5-mailimporter.spec
@@ -16,13 +16,8 @@ URL: http://cgit.kde.org/%{framework}.git
%endif
Source0: http://download.kde.org/%{stable}/release-service/%{version}/src/%{framew...
-# libical (and thus kcalendarcore) not on all arches for RHEL8.
-%if 0%{?rhel} == 8
-ExclusiveArch: x86_64 %{arm}
-%else
# handled by qt5-srpm-macros, which defines %%qt5_qtwebengine_arches
%{?qt5_qtwebengine_arches:ExclusiveArch: %{qt5_qtwebengine_arches}}
-%endif
BuildRequires: cmake(Qt5Network)
BuildRequires: cmake(Qt5Test)
4 years
Architecture specific change in rpms/kf5-libkdepim.git
by githook-noreply@fedoraproject.org
The package rpms/kf5-libkdepim.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/kf5-libkdepim.git/commit/?id=afbb....
Change:
-ExclusiveArch: x86_64 %{arm}
Thanks.
Full change:
============
commit afbbc5aa2bf9b0dbd554b322fb03e64cc2e831ca
Author: Troy Dawson <tdawson(a)redhat.com>
Date: Tue May 5 12:55:29 2020 -0700
libcal now in aarch64 for rhel8, ExclusiveArch can be handled by qt5_qtwebengine_arches
diff --git a/kf5-libkdepim.spec b/kf5-libkdepim.spec
index 443ac92..668a44e 100644
--- a/kf5-libkdepim.spec
+++ b/kf5-libkdepim.spec
@@ -16,13 +16,8 @@ URL: http://cgit.kde.org/%{framework}.git
%endif
Source0: http://download.kde.org/%{stable}/release-service/%{version}/src/%{framew...
-# libical (and thus kcalendarcore) not on all arches for RHEL8.
-%if 0%{?rhel} == 8
-ExclusiveArch: x86_64 %{arm}
-%else
# handled by qt5-srpm-macros, which defines %%qt5_qtwebengine_arches
%{?qt5_qtwebengine_arches:ExclusiveArch: %{qt5_qtwebengine_arches}}
-%endif
BuildRequires: boost-devel
%global kf5_ver 5.23
4 years
Architecture specific change in rpms/kf5-akonadi-calendar.git
by githook-noreply@fedoraproject.org
The package rpms/kf5-akonadi-calendar.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/kf5-akonadi-calendar.git/commit/?....
Change:
-ExclusiveArch: x86_64 aarch64 %{arm}
Thanks.
Full change:
============
commit 3fafc87072167298e630b943d21157f48ca315f0
Author: Troy Dawson <tdawson(a)redhat.com>
Date: Tue May 5 12:52:15 2020 -0700
libcal missing from rhel8 can now be handled by qt5_qtwebengine_arches
diff --git a/kf5-akonadi-calendar.spec b/kf5-akonadi-calendar.spec
index 424c8e7..e6174b7 100644
--- a/kf5-akonadi-calendar.spec
+++ b/kf5-akonadi-calendar.spec
@@ -23,13 +23,8 @@ URL: https://cgit.kde.org/%{framework}.git
%endif
Source0: http://download.kde.org/%{stable}/release-service/%{version}/src/%{framew...
-# libical (and thus kcalendarcore) not on all arches for RHEL8.
-%if 0%{?rhel} == 8
-ExclusiveArch: x86_64 aarch64 %{arm}
-%else
# handled by qt5-srpm-macros, which defines %%qt5_qtwebengine_arches
%{?qt5_qtwebengine_arches:ExclusiveArch: %{qt5_qtwebengine_arches}}
-%endif
BuildRequires: cyrus-sasl-devel
BuildRequires: extra-cmake-modules
4 years