summaryrefslogtreecommitdiff
path: root/Python
diff options
context:
space:
mode:
Diffstat (limited to 'Python')
-rw-r--r--Python/Python-ast.c51
-rw-r--r--Python/_warnings.c41
-rw-r--r--Python/ast.c10
-rw-r--r--Python/bltinmodule.c105
-rw-r--r--Python/ceval.c330
-rw-r--r--Python/clinic/_warnings.c.h38
-rw-r--r--Python/clinic/bltinmodule.c.h124
-rw-r--r--Python/clinic/import.c.h22
-rw-r--r--Python/codecs.c27
-rw-r--r--Python/compile.c72
-rw-r--r--Python/errors.c18
-rw-r--r--Python/getargs.c523
-rw-r--r--Python/import.c18
-rw-r--r--Python/importdl.c2
-rw-r--r--Python/importlib.h274
-rw-r--r--Python/importlib_external.h684
-rw-r--r--Python/marshal.c4
-rw-r--r--Python/modsupport.c154
-rw-r--r--Python/opcode_targets.h4
-rw-r--r--Python/pylifecycle.c6
-rw-r--r--Python/pythonrun.c6
-rw-r--r--Python/structmember.c2
-rw-r--r--Python/sysmodule.c76
23 files changed, 1452 insertions, 1139 deletions
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index e0607ba9ae..dcf24f0df3 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -504,6 +504,9 @@ static char *withitem_fields[]={
};
+_Py_IDENTIFIER(_fields);
+_Py_IDENTIFIER(_attributes);
+
typedef struct {
PyObject_HEAD
PyObject *dict;
@@ -532,7 +535,6 @@ ast_clear(AST_object *self)
static int
ast_type_init(PyObject *self, PyObject *args, PyObject *kw)
{
- _Py_IDENTIFIER(_fields);
Py_ssize_t i, numfields = 0;
int res = -1;
PyObject *key, *value, *fields;
@@ -657,6 +659,8 @@ static PyTypeObject AST_type = {
static PyTypeObject* make_type(char *type, PyTypeObject* base, char**fields, int num_fields)
{
+ _Py_IDENTIFIER(__module__);
+ _Py_IDENTIFIER(_ast);
PyObject *fnames, *result;
int i;
fnames = PyTuple_New(num_fields);
@@ -669,8 +673,11 @@ static PyTypeObject* make_type(char *type, PyTypeObject* base, char**fields, int
}
PyTuple_SET_ITEM(fnames, i, field);
}
- result = PyObject_CallFunction((PyObject*)&PyType_Type, "s(O){sOss}",
- type, base, "_fields", fnames, "__module__", "_ast");
+ result = PyObject_CallFunction((PyObject*)&PyType_Type, "s(O){OOOO}",
+ type, base,
+ _PyUnicode_FromId(&PyId__fields), fnames,
+ _PyUnicode_FromId(&PyId___module__),
+ _PyUnicode_FromId(&PyId__ast));
Py_DECREF(fnames);
return (PyTypeObject*)result;
}
@@ -678,7 +685,6 @@ static PyTypeObject* make_type(char *type, PyTypeObject* base, char**fields, int
static int add_attributes(PyTypeObject* type, char**attrs, int num_fields)
{
int i, result;
- _Py_IDENTIFIER(_attributes);
PyObject *s, *l = PyTuple_New(num_fields);
if (!l)
return 0;
@@ -824,8 +830,8 @@ static int add_ast_fields(void)
d = AST_type.tp_dict;
empty_tuple = PyTuple_New(0);
if (!empty_tuple ||
- PyDict_SetItemString(d, "_fields", empty_tuple) < 0 ||
- PyDict_SetItemString(d, "_attributes", empty_tuple) < 0) {
+ _PyDict_SetItemId(d, &PyId__fields, empty_tuple) < 0 ||
+ _PyDict_SetItemId(d, &PyId__attributes, empty_tuple) < 0) {
Py_XDECREF(empty_tuple);
return -1;
}
@@ -2583,8 +2589,7 @@ ast2obj_mod(void* _o)
mod_ty o = (mod_ty)_o;
PyObject *result = NULL, *value = NULL;
if (!o) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
switch (o->kind) {
@@ -2638,8 +2643,7 @@ ast2obj_stmt(void* _o)
stmt_ty o = (stmt_ty)_o;
PyObject *result = NULL, *value = NULL;
if (!o) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
switch (o->kind) {
@@ -3063,8 +3067,7 @@ ast2obj_expr(void* _o)
expr_ty o = (expr_ty)_o;
PyObject *result = NULL, *value = NULL;
if (!o) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
switch (o->kind) {
@@ -3526,8 +3529,7 @@ ast2obj_slice(void* _o)
slice_ty o = (slice_ty)_o;
PyObject *result = NULL, *value = NULL;
if (!o) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
switch (o->kind) {
@@ -3705,8 +3707,7 @@ ast2obj_comprehension(void* _o)
comprehension_ty o = (comprehension_ty)_o;
PyObject *result = NULL, *value = NULL;
if (!o) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
result = PyType_GenericNew(comprehension_type, NULL, NULL);
@@ -3744,8 +3745,7 @@ ast2obj_excepthandler(void* _o)
excepthandler_ty o = (excepthandler_ty)_o;
PyObject *result = NULL, *value = NULL;
if (!o) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
switch (o->kind) {
@@ -3792,8 +3792,7 @@ ast2obj_arguments(void* _o)
arguments_ty o = (arguments_ty)_o;
PyObject *result = NULL, *value = NULL;
if (!o) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
result = PyType_GenericNew(arguments_type, NULL, NULL);
@@ -3841,8 +3840,7 @@ ast2obj_arg(void* _o)
arg_ty o = (arg_ty)_o;
PyObject *result = NULL, *value = NULL;
if (!o) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
result = PyType_GenericNew(arg_type, NULL, NULL);
@@ -3880,8 +3878,7 @@ ast2obj_keyword(void* _o)
keyword_ty o = (keyword_ty)_o;
PyObject *result = NULL, *value = NULL;
if (!o) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
result = PyType_GenericNew(keyword_type, NULL, NULL);
@@ -3909,8 +3906,7 @@ ast2obj_alias(void* _o)
alias_ty o = (alias_ty)_o;
PyObject *result = NULL, *value = NULL;
if (!o) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
result = PyType_GenericNew(alias_type, NULL, NULL);
@@ -3938,8 +3934,7 @@ ast2obj_withitem(void* _o)
withitem_ty o = (withitem_ty)_o;
PyObject *result = NULL, *value = NULL;
if (!o) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
result = PyType_GenericNew(withitem_type, NULL, NULL);
diff --git a/Python/_warnings.c b/Python/_warnings.c
index 6cfae77f12..67f4c6bbe0 100644
--- a/Python/_warnings.c
+++ b/Python/_warnings.c
@@ -1,5 +1,6 @@
#include "Python.h"
#include "frameobject.h"
+#include "clinic/_warnings.c.h"
#define MODULE_NAME "_warnings"
@@ -26,7 +27,7 @@ check_matched(PyObject *obj, PyObject *arg)
if (obj == Py_None)
return 1;
- result = _PyObject_CallMethodId(obj, &PyId_match, "O", arg);
+ result = _PyObject_CallMethodIdObjArgs(obj, &PyId_match, arg, NULL);
if (result == NULL)
return -1;
@@ -476,7 +477,7 @@ warn_explicit(PyObject *category, PyObject *message,
}
else {
text = message;
- message = PyObject_CallFunction(category, "O", message);
+ message = PyObject_CallFunctionObjArgs(category, message, NULL);
if (message == NULL)
goto cleanup;
}
@@ -485,6 +486,10 @@ warn_explicit(PyObject *category, PyObject *message,
if (lineno_obj == NULL)
goto cleanup;
+ if (source == Py_None) {
+ source = NULL;
+ }
+
/* Create key. */
key = PyTuple_Pack(3, text, category, lineno_obj);
if (key == NULL)
@@ -805,22 +810,26 @@ do_warn(PyObject *message, PyObject *category, Py_ssize_t stack_level,
return res;
}
-static PyObject *
-warnings_warn(PyObject *self, PyObject *args, PyObject *kwds)
-{
- static char *kw_list[] = {"message", "category", "stacklevel",
- "source", NULL};
- PyObject *message, *category = NULL, *source = NULL;
- Py_ssize_t stack_level = 1;
+/*[clinic input]
+warn as warnings_warn
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|OnO:warn", kw_list,
- &message, &category, &stack_level, &source))
- return NULL;
+ message: object
+ category: object = None
+ stacklevel: Py_ssize_t = 1
+ source: object = None
+Issue a warning, or maybe ignore it or raise an exception.
+[clinic start generated code]*/
+
+static PyObject *
+warnings_warn_impl(PyObject *module, PyObject *message, PyObject *category,
+ Py_ssize_t stacklevel, PyObject *source)
+/*[clinic end generated code: output=31ed5ab7d8d760b2 input=bfdf5cf99f6c4edd]*/
+{
category = get_category(message, category);
if (category == NULL)
return NULL;
- return do_warn(message, category, stack_level, source);
+ return do_warn(message, category, stacklevel, source);
}
static PyObject *
@@ -1098,15 +1107,11 @@ exit:
}
-PyDoc_STRVAR(warn_doc,
-"Issue a warning, or maybe ignore it or raise an exception.");
-
PyDoc_STRVAR(warn_explicit_doc,
"Low-level inferface to warnings functionality.");
static PyMethodDef warnings_functions[] = {
- {"warn", (PyCFunction)warnings_warn, METH_VARARGS | METH_KEYWORDS,
- warn_doc},
+ WARNINGS_WARN_METHODDEF
{"warn_explicit", (PyCFunction)warnings_warn_explicit,
METH_VARARGS | METH_KEYWORDS, warn_explicit_doc},
{"_filters_mutated", (PyCFunction)warnings_filters_mutated, METH_NOARGS,
diff --git a/Python/ast.c b/Python/ast.c
index 217ea14bf3..5c5738f6ed 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -1411,11 +1411,6 @@ ast_for_arguments(struct compiling *c, const node *n)
if (!kwdefaults && nkwonlyargs)
return NULL;
- if (nposargs + nkwonlyargs > 255) {
- ast_error(c, n, "more than 255 arguments");
- return NULL;
- }
-
/* tfpdef: NAME [':' test]
vfpdef: NAME
*/
@@ -2738,11 +2733,6 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func)
return NULL;
}
- if (nargs + nkeywords + ngens > 255) {
- ast_error(c, n, "more than 255 arguments");
- return NULL;
- }
-
args = _Py_asdl_seq_new(nargs + ngens, c->c_arena);
if (!args)
return NULL;
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index ef5a34cae9..763c2a2bb8 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -52,51 +52,45 @@ _Py_IDENTIFIER(stderr);
/* AC: cannot convert yet, waiting for *args support */
static PyObject *
-builtin___build_class__(PyObject *self, PyObject *args, PyObject *kwds)
+builtin___build_class__(PyObject *self, PyObject **args, Py_ssize_t nargs,
+ PyObject *kwnames)
{
PyObject *func, *name, *bases, *mkw, *meta, *winner, *prep, *ns;
PyObject *cls = NULL, *cell = NULL;
- Py_ssize_t nargs;
int isclass = 0; /* initialize to prevent gcc warning */
- assert(args != NULL);
- if (!PyTuple_Check(args)) {
- PyErr_SetString(PyExc_TypeError,
- "__build_class__: args is not a tuple");
- return NULL;
- }
- nargs = PyTuple_GET_SIZE(args);
if (nargs < 2) {
PyErr_SetString(PyExc_TypeError,
"__build_class__: not enough arguments");
return NULL;
}
- func = PyTuple_GET_ITEM(args, 0); /* Better be callable */
+ func = args[0]; /* Better be callable */
if (!PyFunction_Check(func)) {
PyErr_SetString(PyExc_TypeError,
"__build_class__: func must be a function");
return NULL;
}
- name = PyTuple_GET_ITEM(args, 1);
+ name = args[1];
if (!PyUnicode_Check(name)) {
PyErr_SetString(PyExc_TypeError,
"__build_class__: name is not a string");
return NULL;
}
- bases = PyTuple_GetSlice(args, 2, nargs);
+ bases = _PyStack_AsTupleSlice(args, nargs, 2, nargs);
if (bases == NULL)
return NULL;
- if (kwds == NULL) {
+ if (kwnames == NULL) {
meta = NULL;
mkw = NULL;
}
else {
- mkw = PyDict_Copy(kwds); /* Don't modify kwds passed in! */
+ mkw = _PyStack_AsDict(args + nargs, kwnames);
if (mkw == NULL) {
Py_DECREF(bases);
return NULL;
}
+
meta = _PyDict_GetItemId(mkw, &PyId_metaclass);
if (meta != NULL) {
Py_INCREF(meta);
@@ -999,14 +993,19 @@ builtin_exec_impl(PyObject *module, PyObject *source, PyObject *globals,
/* AC: cannot convert yet, as needs PEP 457 group support in inspect */
static PyObject *
-builtin_getattr(PyObject *self, PyObject *args)
+builtin_getattr(PyObject *self, PyObject **args, Py_ssize_t nargs,
+ PyObject *kwnames)
{
PyObject *v, *result, *dflt = NULL;
PyObject *name;
- if (!PyArg_UnpackTuple(args, "getattr", 2, 3, &v, &name, &dflt))
+ if (!_PyArg_UnpackStack(args, nargs, "getattr", 2, 3, &v, &name, &dflt))
return NULL;
+ if (!_PyArg_NoStackKeywords("getattr", kwnames)) {
+ return NULL;
+ }
+
if (!PyUnicode_Check(name)) {
PyErr_SetString(PyExc_TypeError,
"getattr(): attribute name must be string");
@@ -1186,7 +1185,7 @@ map_traverse(mapobject *lz, visitproc visit, void *arg)
static PyObject *
map_next(mapobject *lz)
{
- PyObject *small_stack[5];
+ PyObject *small_stack[_PY_FASTCALL_SMALL_STACK];
PyObject **stack;
Py_ssize_t niters, nargs, i;
PyObject *result = NULL;
@@ -1304,13 +1303,19 @@ PyTypeObject PyMap_Type = {
/* AC: cannot convert yet, as needs PEP 457 group support in inspect */
static PyObject *
-builtin_next(PyObject *self, PyObject *args)
+builtin_next(PyObject *self, PyObject **args, Py_ssize_t nargs,
+ PyObject *kwnames)
{
PyObject *it, *res;
PyObject *def = NULL;
- if (!PyArg_UnpackTuple(args, "next", 1, 2, &it, &def))
+ if (!_PyArg_UnpackStack(args, nargs, "next", 1, 2, &it, &def))
+ return NULL;
+
+ if (!_PyArg_NoStackKeywords("next", kwnames)) {
return NULL;
+ }
+
if (!PyIter_Check(it)) {
PyErr_Format(PyExc_TypeError,
"'%.200s' object is not an iterator",
@@ -1364,8 +1369,7 @@ builtin_setattr_impl(PyObject *module, PyObject *obj, PyObject *name,
{
if (PyObject_SetAttr(obj, name, value) != 0)
return NULL;
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
@@ -1387,8 +1391,7 @@ builtin_delattr_impl(PyObject *module, PyObject *obj, PyObject *name)
{
if (PyObject_SetAttr(obj, name, (PyObject *)NULL) != 0)
return NULL;
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
@@ -1742,18 +1745,19 @@ builtin_pow_impl(PyObject *module, PyObject *x, PyObject *y, PyObject *z)
/* AC: cannot convert yet, waiting for *args support */
static PyObject *
-builtin_print(PyObject *self, PyObject *args, PyObject *kwds)
+builtin_print(PyObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
- static char *kwlist[] = {"sep", "end", "file", "flush", 0};
- static PyObject *dummy_args;
+ static const char * const _keywords[] = {"sep", "end", "file", "flush", 0};
+ static struct _PyArg_Parser _parser = {"|OOOO:print", _keywords, 0};
PyObject *sep = NULL, *end = NULL, *file = NULL, *flush = NULL;
int i, err;
- if (dummy_args == NULL && !(dummy_args = PyTuple_New(0)))
- return NULL;
- if (!PyArg_ParseTupleAndKeywords(dummy_args, kwds, "|OOOO:print",
- kwlist, &sep, &end, &file, &flush))
+ if (kwnames != NULL &&
+ !_PyArg_ParseStackAndKeywords(args + nargs, 0, kwnames, &_parser,
+ &sep, &end, &file, &flush)) {
return NULL;
+ }
+
if (file == NULL || file == Py_None) {
file = _PySys_GetObjectId(&PyId_stdout);
if (file == NULL) {
@@ -1785,7 +1789,7 @@ builtin_print(PyObject *self, PyObject *args, PyObject *kwds)
return NULL;
}
- for (i = 0; i < PyTuple_Size(args); i++) {
+ for (i = 0; i < nargs; i++) {
if (i > 0) {
if (sep == NULL)
err = PyFile_WriteString(" ", file);
@@ -1795,8 +1799,7 @@ builtin_print(PyObject *self, PyObject *args, PyObject *kwds)
if (err)
return NULL;
}
- err = PyFile_WriteObject(PyTuple_GetItem(args, i), file,
- Py_PRINT_RAW);
+ err = PyFile_WriteObject(args[i], file, Py_PRINT_RAW);
if (err)
return NULL;
}
@@ -1923,7 +1926,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
char *s = NULL;
PyObject *stdin_encoding = NULL, *stdin_errors = NULL;
PyObject *stdout_encoding = NULL, *stdout_errors = NULL;
- char *stdin_encoding_str, *stdin_errors_str;
+ const char *stdin_encoding_str, *stdin_errors_str;
PyObject *result;
size_t len;
@@ -1944,7 +1947,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
Py_DECREF(tmp);
if (prompt != NULL) {
/* We have a prompt, encode it as stdout would */
- char *stdout_encoding_str, *stdout_errors_str;
+ const char *stdout_encoding_str, *stdout_errors_str;
PyObject *stringpo;
stdout_encoding = _PyObject_GetAttrId(fout, &PyId_encoding);
stdout_errors = _PyObject_GetAttrId(fout, &PyId_errors);
@@ -2074,7 +2077,7 @@ builtin_round(PyObject *self, PyObject *args, PyObject *kwds)
}
if (ndigits == NULL || ndigits == Py_None)
- result = PyObject_CallFunctionObjArgs(round, NULL);
+ result = _PyObject_CallNoArg(round);
else
result = PyObject_CallFunctionObjArgs(round, ndigits, NULL);
Py_DECREF(round);
@@ -2116,20 +2119,16 @@ PyDoc_STRVAR(builtin_sorted__doc__,
"reverse flag can be set to request the result in descending order.");
#define BUILTIN_SORTED_METHODDEF \
- {"sorted", (PyCFunction)builtin_sorted, METH_VARARGS|METH_KEYWORDS, builtin_sorted__doc__},
+ {"sorted", (PyCFunction)builtin_sorted, METH_FASTCALL, builtin_sorted__doc__},
static PyObject *
-builtin_sorted(PyObject *self, PyObject *args, PyObject *kwds)
+builtin_sorted(PyObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
- PyObject *newlist, *v, *seq, *keyfunc=NULL, **newargs;
- PyObject *callable;
- static char *kwlist[] = {"", "key", "reverse", 0};
- int reverse;
- Py_ssize_t nargs;
+ PyObject *newlist, *v, *seq, *callable;
- /* args 1-3 should match listsort in Objects/listobject.c */
- if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|Oi:sorted",
- kwlist, &seq, &keyfunc, &reverse))
+ /* Keyword arguments are passed through list.sort() which will check
+ them. */
+ if (!_PyArg_UnpackStack(args, nargs, "sorted", 1, 1, &seq))
return NULL;
newlist = PySequence_List(seq);
@@ -2142,10 +2141,8 @@ builtin_sorted(PyObject *self, PyObject *args, PyObject *kwds)
return NULL;
}
- assert(PyTuple_GET_SIZE(args) >= 1);
- newargs = &PyTuple_GET_ITEM(args, 1);
- nargs = PyTuple_GET_SIZE(args) - 1;
- v = _PyObject_FastCallDict(callable, newargs, nargs, kwds);
+ assert(nargs >= 1);
+ v = _PyObject_FastCallKeywords(callable, args + 1, nargs - 1, kwnames);
Py_DECREF(callable);
if (v == NULL) {
Py_DECREF(newlist);
@@ -2613,7 +2610,7 @@ PyTypeObject PyZip_Type = {
static PyMethodDef builtin_methods[] = {
{"__build_class__", (PyCFunction)builtin___build_class__,
- METH_VARARGS | METH_KEYWORDS, build_class_doc},
+ METH_FASTCALL, build_class_doc},
{"__import__", (PyCFunction)builtin___import__, METH_VARARGS | METH_KEYWORDS, import_doc},
BUILTIN_ABS_METHODDEF
BUILTIN_ALL_METHODDEF
@@ -2629,7 +2626,7 @@ static PyMethodDef builtin_methods[] = {
BUILTIN_EVAL_METHODDEF
BUILTIN_EXEC_METHODDEF
BUILTIN_FORMAT_METHODDEF
- {"getattr", builtin_getattr, METH_VARARGS, getattr_doc},
+ {"getattr", (PyCFunction)builtin_getattr, METH_FASTCALL, getattr_doc},
BUILTIN_GLOBALS_METHODDEF
BUILTIN_HASATTR_METHODDEF
BUILTIN_HASH_METHODDEF
@@ -2643,11 +2640,11 @@ static PyMethodDef builtin_methods[] = {
BUILTIN_LOCALS_METHODDEF
{"max", (PyCFunction)builtin_max, METH_VARARGS | METH_KEYWORDS, max_doc},
{"min", (PyCFunction)builtin_min, METH_VARARGS | METH_KEYWORDS, min_doc},
- {"next", (PyCFunction)builtin_next, METH_VARARGS, next_doc},
+ {"next", (PyCFunction)builtin_next, METH_FASTCALL, next_doc},
BUILTIN_OCT_METHODDEF
BUILTIN_ORD_METHODDEF
BUILTIN_POW_METHODDEF
- {"print", (PyCFunction)builtin_print, METH_VARARGS | METH_KEYWORDS, print_doc},
+ {"print", (PyCFunction)builtin_print, METH_FASTCALL, print_doc},
BUILTIN_REPR_METHODDEF
{"round", (PyCFunction)builtin_round, METH_VARARGS | METH_KEYWORDS, round_doc},
BUILTIN_SETATTR_METHODDEF
diff --git a/Python/ceval.c b/Python/ceval.c
index d5172b9631..58007793bb 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -30,10 +30,13 @@
#define CHECKEXC 1 /* Double-check exception checking */
#endif
+/* Private API for the LOAD_METHOD opcode. */
+extern int _PyObject_GetMethod(PyObject *, PyObject *, PyObject **);
+
typedef PyObject *(*callproc)(PyObject *, PyObject *, PyObject *);
/* Forward declarations */
-static PyObject * call_function(PyObject ***, Py_ssize_t, PyObject *);
+Py_LOCAL_INLINE(PyObject *) call_function(PyObject ***, Py_ssize_t, PyObject *);
static PyObject * fast_function(PyObject *, PyObject **, Py_ssize_t, PyObject *);
static PyObject * do_call_core(PyObject *, PyObject *, PyObject *);
@@ -83,63 +86,6 @@ static long dxp[256];
#endif
#endif
-/* Function call profile */
-#ifdef CALL_PROFILE
-#define PCALL_NUM 11
-static int pcall[PCALL_NUM];
-
-#define PCALL_ALL 0
-#define PCALL_FUNCTION 1
-#define PCALL_FAST_FUNCTION 2
-#define PCALL_FASTER_FUNCTION 3
-#define PCALL_METHOD 4
-#define PCALL_BOUND_METHOD 5
-#define PCALL_CFUNCTION 6
-#define PCALL_TYPE 7
-#define PCALL_GENERATOR 8
-#define PCALL_OTHER 9
-#define PCALL_POP 10
-
-/* Notes about the statistics
-
- PCALL_FAST stats
-
- FAST_FUNCTION means no argument tuple needs to be created.
- FASTER_FUNCTION means that the fast-path frame setup code is used.
-
- If there is a method call where the call can be optimized by changing
- the argument tuple and calling the function directly, it gets recorded
- twice.
-
- As a result, the relationship among the statistics appears to be
- PCALL_ALL == PCALL_FUNCTION + PCALL_METHOD - PCALL_BOUND_METHOD +
- PCALL_CFUNCTION + PCALL_TYPE + PCALL_GENERATOR + PCALL_OTHER
- PCALL_FUNCTION > PCALL_FAST_FUNCTION > PCALL_FASTER_FUNCTION
- PCALL_METHOD > PCALL_BOUND_METHOD
-*/
-
-#define PCALL(POS) pcall[POS]++
-
-PyObject *
-PyEval_GetCallStats(PyObject *self)
-{
- return Py_BuildValue("iiiiiiiiiii",
- pcall[0], pcall[1], pcall[2], pcall[3],
- pcall[4], pcall[5], pcall[6], pcall[7],
- pcall[8], pcall[9], pcall[10]);
-}
-#else
-#define PCALL(O)
-
-PyObject *
-PyEval_GetCallStats(PyObject *self)
-{
- Py_INCREF(Py_None);
- return Py_None;
-}
-#endif
-
-
#ifdef WITH_THREAD
#define GIL_REQUEST _Py_atomic_load_relaxed(&gil_drop_request)
#else
@@ -718,7 +664,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
return tstate->interp->eval_frame(f, throwflag);
}
-PyObject *
+PyObject* _Py_HOT_FUNCTION
_PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
{
#ifdef DXPAIRS
@@ -1100,7 +1046,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
#ifdef Py_DEBUG
/* PyEval_EvalFrameEx() must not be called with an exception set,
- because it may clear it (directly or indirectly) and so the
+ because it can clear it (directly or indirectly) and so the
caller loses its exception */
assert(!PyErr_Occurred());
#endif
@@ -1424,6 +1370,12 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
PyObject *right = POP();
PyObject *left = TOP();
PyObject *sum;
+ /* NOTE(haypo): Please don't try to micro-optimize int+int on
+ CPython using bytecode, it is simply worthless.
+ See http://bugs.python.org/issue21955 and
+ http://bugs.python.org/issue10044 for the discussion. In short,
+ no patch shown any impact on a realistic benchmark, only a minor
+ speedup on microbenchmarks. */
if (PyUnicode_CheckExact(left) &&
PyUnicode_CheckExact(right)) {
sum = unicode_concatenate(left, right, f, next_instr);
@@ -1538,7 +1490,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
TARGET(SET_ADD) {
PyObject *v = POP();
- PyObject *set = stack_pointer[-oparg];
+ PyObject *set = PEEK(oparg);
int err;
err = PySet_Add(set, v);
Py_DECREF(v);
@@ -2400,8 +2352,10 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
TARGET(DELETE_DEREF) {
PyObject *cell = freevars[oparg];
- if (PyCell_GET(cell) != NULL) {
- PyCell_Set(cell, NULL);
+ PyObject *oldobj = PyCell_GET(cell);
+ if (oldobj != NULL) {
+ PyCell_SET(cell, NULL);
+ Py_DECREF(oldobj);
DISPATCH();
}
format_exc_unbound(co, oparg);
@@ -2798,7 +2752,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
PyObject *map;
int err;
STACKADJ(-2);
- map = stack_pointer[-oparg]; /* dict */
+ map = PEEK(oparg); /* dict */
assert(PyDict_CheckExact(map));
err = PyDict_SetItem(map, key, value); /* map[key] = value */
Py_DECREF(value);
@@ -3111,7 +3065,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
Py_DECREF(mgr);
if (enter == NULL)
goto error;
- res = PyObject_CallFunctionObjArgs(enter, NULL);
+ res = _PyObject_CallNoArg(enter);
Py_DECREF(enter);
if (res == NULL)
goto error;
@@ -3145,7 +3099,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
}
SET_TOP(exit);
Py_DECREF(mgr);
- res = PyObject_CallFunctionObjArgs(enter, NULL);
+ res = _PyObject_CallNoArg(enter);
Py_DECREF(enter);
if (res == NULL)
goto error;
@@ -3184,8 +3138,12 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
gotos should still be resumed.)
*/
+ PyObject* stack[3];
PyObject *exit_func;
- PyObject *exc = TOP(), *val = Py_None, *tb = Py_None, *res;
+ PyObject *exc, *val, *tb, *res;
+
+ val = tb = Py_None;
+ exc = TOP();
if (exc == Py_None) {
(void)POP();
exit_func = TOP();
@@ -3229,8 +3187,11 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
assert(block->b_type == EXCEPT_HANDLER);
block->b_level--;
}
- /* XXX Not the fastest way to call it... */
- res = PyObject_CallFunctionObjArgs(exit_func, exc, val, tb, NULL);
+
+ stack[0] = exc;
+ stack[1] = val;
+ stack[2] = tb;
+ res = _PyObject_FastCall(exit_func, stack, 3);
Py_DECREF(exit_func);
if (res == NULL)
goto error;
@@ -3267,10 +3228,95 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
DISPATCH();
}
+ TARGET(LOAD_METHOD) {
+ /* Designed to work in tamdem with CALL_METHOD. */
+ PyObject *name = GETITEM(names, oparg);
+ PyObject *obj = TOP();
+ PyObject *meth = NULL;
+
+ int meth_found = _PyObject_GetMethod(obj, name, &meth);
+
+ if (meth == NULL) {
+ /* Most likely attribute wasn't found. */
+ goto error;
+ }
+
+ if (meth_found) {
+ /* We can bypass temporary bound method object.
+ meth is unbound method and obj is self.
+
+ meth | self | arg1 | ... | argN
+ */
+ SET_TOP(meth);
+ PUSH(obj); // self
+ }
+ else {
+ /* meth is not an unbound method (but a regular attr, or
+ something was returned by a descriptor protocol). Set
+ the second element of the stack to NULL, to signal
+ CALL_METHOD that it's not a method call.
+
+ NULL | meth | arg1 | ... | argN
+ */
+ SET_TOP(NULL);
+ Py_DECREF(obj);
+ PUSH(meth);
+ }
+ DISPATCH();
+ }
+
+ TARGET(CALL_METHOD) {
+ /* Designed to work in tamdem with LOAD_METHOD. */
+ PyObject **sp, *res, *meth;
+
+ sp = stack_pointer;
+
+ meth = PEEK(oparg + 2);
+ if (meth == NULL) {
+ /* `meth` is NULL when LOAD_METHOD thinks that it's not
+ a method call.
+
+ Stack layout:
+
+ ... | NULL | callable | arg1 | ... | argN
+ ^- TOP()
+ ^- (-oparg)
+ ^- (-oparg-1)
+ ^- (-oparg-2)
+
+ `callable` will be POPed by call_funtion.
+ NULL will will be POPed manually later.
+ */
+ res = call_function(&sp, oparg, NULL);
+ stack_pointer = sp;
+ (void)POP(); /* POP the NULL. */
+ }
+ else {
+ /* This is a method call. Stack layout:
+
+ ... | method | self | arg1 | ... | argN
+ ^- TOP()
+ ^- (-oparg)
+ ^- (-oparg-1)
+ ^- (-oparg-2)
+
+ `self` and `method` will be POPed by call_function.
+ We'll be passing `oparg + 1` to call_function, to
+ make it accept the `self` as a first argument.
+ */
+ res = call_function(&sp, oparg + 1, NULL);
+ stack_pointer = sp;
+ }
+
+ PUSH(res);
+ if (res == NULL)
+ goto error;
+ DISPATCH();
+ }
+
PREDICTED(CALL_FUNCTION);
TARGET(CALL_FUNCTION) {
PyObject **sp, *res;
- PCALL(PCALL_ALL);
sp = stack_pointer;
res = call_function(&sp, oparg, NULL);
stack_pointer = sp;
@@ -3286,7 +3332,6 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
names = POP();
assert(PyTuple_CheckExact(names) && PyTuple_GET_SIZE(names) <= oparg);
- PCALL(PCALL_ALL);
sp = stack_pointer;
res = call_function(&sp, oparg, names);
stack_pointer = sp;
@@ -3301,7 +3346,6 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
TARGET(CALL_FUNCTION_EX) {
PyObject *func, *callargs, *kwargs = NULL, *result;
- PCALL(PCALL_ALL);
if (oparg & 0x01) {
kwargs = POP();
if (!PyDict_CheckExact(kwargs)) {
@@ -3879,7 +3923,7 @@ _PyEval_EvalCodeWithName(PyObject *_co, PyObject *globals, PyObject *locals,
/* Create the frame */
tstate = PyThreadState_GET();
assert(tstate != NULL);
- f = PyFrame_New(tstate, co, globals, locals);
+ f = _PyFrame_New_NoTrack(tstate, co, globals, locals);
if (f == NULL) {
return NULL;
}
@@ -3965,7 +4009,8 @@ _PyEval_EvalCodeWithName(PyObject *_co, PyObject *globals, PyObject *locals,
}
}
- if (j >= total_args && kwdict == NULL) {
+ assert(j >= total_args);
+ if (kwdict == NULL) {
PyErr_Format(PyExc_TypeError,
"%U() got an unexpected keyword argument '%S'",
co->co_name, keyword);
@@ -4048,7 +4093,7 @@ _PyEval_EvalCodeWithName(PyObject *_co, PyObject *globals, PyObject *locals,
vars into frame. */
for (i = 0; i < PyTuple_GET_SIZE(co->co_cellvars); ++i) {
PyObject *c;
- int arg;
+ Py_ssize_t arg;
/* Possibly account for the cell variable being an argument. */
if (co->co_cell2arg != NULL &&
(arg = co->co_cell2arg[i]) != CO_CELL_NOT_AN_ARG) {
@@ -4091,8 +4136,6 @@ _PyEval_EvalCodeWithName(PyObject *_co, PyObject *globals, PyObject *locals,
* when the generator is resumed. */
Py_CLEAR(f->f_back);
- PCALL(PCALL_GENERATOR);
-
/* Create a new generator that owns the ready to run frame
* and return that as the value. */
if (is_coro) {
@@ -4102,8 +4145,11 @@ _PyEval_EvalCodeWithName(PyObject *_co, PyObject *globals, PyObject *locals,
} else {
gen = PyGen_NewWithQualName(f, name, qualname);
}
- if (gen == NULL)
+ if (gen == NULL) {
return NULL;
+ }
+
+ _PyObject_GC_TRACK(f);
if (is_coro && coro_wrapper != NULL) {
PyObject *wrapped;
@@ -4126,9 +4172,15 @@ fail: /* Jump here from prelude on failure */
so recursion_depth must be boosted for the duration.
*/
assert(tstate != NULL);
- ++tstate->recursion_depth;
- Py_DECREF(f);
- --tstate->recursion_depth;
+ if (Py_REFCNT(f) > 1) {
+ Py_DECREF(f);
+ _PyObject_GC_TRACK(f);
+ }
+ else {
+ ++tstate->recursion_depth;
+ Py_DECREF(f);
+ --tstate->recursion_depth;
+ }
return retval;
}
@@ -4245,7 +4297,7 @@ do_raise(PyObject *exc, PyObject *cause)
if (PyExceptionClass_Check(exc)) {
type = exc;
- value = PyObject_CallObject(exc, NULL);
+ value = _PyObject_CallNoArg(exc);
if (value == NULL)
goto raise_error;
if (!PyExceptionInstance_Check(value)) {
@@ -4270,10 +4322,13 @@ do_raise(PyObject *exc, PyObject *cause)
goto raise_error;
}
+ assert(type != NULL);
+ assert(value != NULL);
+
if (cause) {
PyObject *fixed_cause;
if (PyExceptionClass_Check(cause)) {
- fixed_cause = PyObject_CallObject(cause, NULL);
+ fixed_cause = _PyObject_CallNoArg(cause);
if (fixed_cause == NULL)
goto raise_error;
Py_DECREF(cause);
@@ -4296,8 +4351,8 @@ do_raise(PyObject *exc, PyObject *cause)
PyErr_SetObject(type, value);
/* PyErr_SetObject incref's its arguments */
- Py_XDECREF(value);
- Py_XDECREF(type);
+ Py_DECREF(value);
+ Py_DECREF(type);
return 0;
raise_error:
@@ -4681,7 +4736,8 @@ PyEval_MergeCompilerFlags(PyCompilerFlags *cf)
The arg must be a tuple or NULL. The kw must be a dict or NULL. */
PyObject *
-PyEval_CallObjectWithKeywords(PyObject *func, PyObject *args, PyObject *kwargs)
+PyEval_CallObjectWithKeywords(PyObject *callable,
+ PyObject *args, PyObject *kwargs)
{
#ifdef Py_DEBUG
/* PyEval_CallObjectWithKeywords() must not be called with an exception
@@ -4691,7 +4747,7 @@ PyEval_CallObjectWithKeywords(PyObject *func, PyObject *args, PyObject *kwargs)
#endif
if (args == NULL) {
- return _PyObject_FastCallDict(func, NULL, 0, kwargs);
+ return _PyObject_FastCallDict(callable, NULL, 0, kwargs);
}
if (!PyTuple_Check(args)) {
@@ -4706,7 +4762,7 @@ PyEval_CallObjectWithKeywords(PyObject *func, PyObject *args, PyObject *kwargs)
return NULL;
}
- return PyObject_Call(func, args, kwargs);
+ return PyObject_Call(callable, args, kwargs);
}
const char *
@@ -4766,7 +4822,9 @@ if (tstate->use_tracing && tstate->c_profilefunc) { \
x = call; \
}
-static PyObject *
+/* Issue #29227: Inline call_function() into _PyEval_EvalFrameDefault()
+ to reduce the stack consumption. */
+Py_LOCAL_INLINE(PyObject *) _Py_HOT_FUNCTION
call_function(PyObject ***pp_stack, Py_ssize_t oparg, PyObject *kwnames)
{
PyObject **pfunc = (*pp_stack) - oparg - 1;
@@ -4774,44 +4832,44 @@ call_function(PyObject ***pp_stack, Py_ssize_t oparg, PyObject *kwnames)
PyObject *x, *w;
Py_ssize_t nkwargs = (kwnames == NULL) ? 0 : PyTuple_GET_SIZE(kwnames);
Py_ssize_t nargs = oparg - nkwargs;
- PyObject **stack;
+ PyObject **stack = (*pp_stack) - nargs - nkwargs;
/* Always dispatch PyCFunction first, because these are
presumed to be the most frequent callable object.
*/
if (PyCFunction_Check(func)) {
PyThreadState *tstate = PyThreadState_GET();
-
- PCALL(PCALL_CFUNCTION);
-
- stack = (*pp_stack) - nargs - nkwargs;
C_TRACE(x, _PyCFunction_FastCallKeywords(func, stack, nargs, kwnames));
}
+ else if (Py_TYPE(func) == &PyMethodDescr_Type) {
+ PyThreadState *tstate = PyThreadState_GET();
+ C_TRACE(x, _PyMethodDescr_FastCallKeywords(func, stack, nargs, kwnames));
+ }
else {
if (PyMethod_Check(func) && PyMethod_GET_SELF(func) != NULL) {
- /* optimize access to bound methods */
+ /* Optimize access to bound methods. Reuse the Python stack
+ to pass 'self' as the first argument, replace 'func'
+ with 'self'. It avoids the creation of a new temporary tuple
+ for arguments (to replace func with self) when the method uses
+ FASTCALL. */
PyObject *self = PyMethod_GET_SELF(func);
- PCALL(PCALL_METHOD);
- PCALL(PCALL_BOUND_METHOD);
Py_INCREF(self);
func = PyMethod_GET_FUNCTION(func);
Py_INCREF(func);
Py_SETREF(*pfunc, self);
nargs++;
+ stack--;
}
else {
Py_INCREF(func);
}
- stack = (*pp_stack) - nargs - nkwargs;
-
if (PyFunction_Check(func)) {
x = fast_function(func, stack, nargs, kwnames);
}
else {
x = _PyObject_FastCallKeywords(func, stack, nargs, kwnames);
}
-
Py_DECREF(func);
}
@@ -4824,7 +4882,6 @@ call_function(PyObject ***pp_stack, Py_ssize_t oparg, PyObject *kwnames)
while ((*pp_stack) > pfunc) {
w = EXT_POP(*pp_stack);
Py_DECREF(w);
- PCALL(PCALL_POP);
}
return x;
@@ -4839,7 +4896,7 @@ call_function(PyObject ***pp_stack, Py_ssize_t oparg, PyObject *kwnames)
done before evaluating the frame.
*/
-static PyObject*
+static PyObject* _Py_HOT_FUNCTION
_PyFunction_FastCall(PyCodeObject *co, PyObject **args, Py_ssize_t nargs,
PyObject *globals)
{
@@ -4849,14 +4906,13 @@ _PyFunction_FastCall(PyCodeObject *co, PyObject **args, Py_ssize_t nargs,
Py_ssize_t i;
PyObject *result;
- PCALL(PCALL_FASTER_FUNCTION);
assert(globals != NULL);
/* XXX Perhaps we should create a specialized
- PyFrame_New() that doesn't take locals, but does
+ _PyFrame_New_NoTrack() that doesn't take locals, but does
take builtins without sanity checking them.
*/
assert(tstate != NULL);
- f = PyFrame_New(tstate, co, globals, NULL);
+ f = _PyFrame_New_NoTrack(tstate, co, globals, NULL);
if (f == NULL) {
return NULL;
}
@@ -4869,10 +4925,15 @@ _PyFunction_FastCall(PyCodeObject *co, PyObject **args, Py_ssize_t nargs,
}
result = PyEval_EvalFrameEx(f,0);
- ++tstate->recursion_depth;
- Py_DECREF(f);
- --tstate->recursion_depth;
-
+ if (Py_REFCNT(f) > 1) {
+ Py_DECREF(f);
+ _PyObject_GC_TRACK(f);
+ }
+ else {
+ ++tstate->recursion_depth;
+ Py_DECREF(f);
+ --tstate->recursion_depth;
+ }
return result;
}
@@ -4895,9 +4956,6 @@ fast_function(PyObject *func, PyObject **stack,
/* kwnames must only contains str strings, no subclass, and all keys must
be unique */
- PCALL(PCALL_FUNCTION);
- PCALL(PCALL_FAST_FUNCTION);
-
if (co->co_kwonlyargcount == 0 && nkwargs == 0 &&
co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE))
{
@@ -4960,11 +5018,8 @@ _PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs,
assert(nargs == 0 || args != NULL);
assert(kwargs == NULL || PyDict_Check(kwargs));
- PCALL(PCALL_FUNCTION);
- PCALL(PCALL_FAST_FUNCTION);
-
if (co->co_kwonlyargcount == 0 &&
- (kwargs == NULL || PyDict_Size(kwargs) == 0) &&
+ (kwargs == NULL || PyDict_GET_SIZE(kwargs) == 0) &&
co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE))
{
/* Fast paths */
@@ -4980,10 +5035,12 @@ _PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs,
}
}
- if (kwargs != NULL) {
+ nk = (kwargs != NULL) ? PyDict_GET_SIZE(kwargs) : 0;
+ if (nk != 0) {
Py_ssize_t pos, i;
- nk = PyDict_Size(kwargs);
+ /* Issue #29318: Caller and callee functions must not share the
+ dictionary: kwargs must be copied. */
kwtuple = PyTuple_New(2 * nk);
if (kwtuple == NULL) {
return NULL;
@@ -4992,6 +5049,9 @@ _PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs,
k = &PyTuple_GET_ITEM(kwtuple, 0);
pos = i = 0;
while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
+ /* We must hold strong references because keyword arguments can be
+ indirectly modified while the function is called:
+ see issue #2016 and test_extcall */
Py_INCREF(k[i]);
Py_INCREF(k[i+1]);
i += 2;
@@ -5001,7 +5061,6 @@ _PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs,
else {
kwtuple = NULL;
k = NULL;
- nk = 0;
}
kwdefs = PyFunction_GET_KW_DEFAULTS(func);
@@ -5030,23 +5089,6 @@ _PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs,
static PyObject *
do_call_core(PyObject *func, PyObject *callargs, PyObject *kwdict)
{
-#ifdef CALL_PROFILE
- /* At this point, we have to look at the type of func to
- update the call stats properly. Do it here so as to avoid
- exposing the call stats machinery outside ceval.c
- */
- if (PyFunction_Check(func))
- PCALL(PCALL_FUNCTION);
- else if (PyMethod_Check(func))
- PCALL(PCALL_METHOD);
- else if (PyType_Check(func))
- PCALL(PCALL_TYPE);
- else if (PyCFunction_Check(func))
- PCALL(PCALL_CFUNCTION);
- else
- PCALL(PCALL_OTHER);
-#endif
-
if (PyCFunction_Check(func)) {
PyObject *result;
PyThreadState *tstate = PyThreadState_GET();
@@ -5345,8 +5387,10 @@ unicode_concatenate(PyObject *v, PyObject *w,
PyObject **freevars = (f->f_localsplus +
f->f_code->co_nlocals);
PyObject *c = freevars[oparg];
- if (PyCell_GET(c) == v)
- PyCell_Set(c, NULL);
+ if (PyCell_GET(c) == v) {
+ PyCell_SET(c, NULL);
+ Py_DECREF(v);
+ }
break;
}
case STORE_NAME:
@@ -5430,8 +5474,8 @@ _PyEval_RequestCodeExtraIndex(freefunc free)
static void
dtrace_function_entry(PyFrameObject *f)
{
- char* filename;
- char* funcname;
+ const char *filename;
+ const char *funcname;
int lineno;
filename = PyUnicode_AsUTF8(f->f_code->co_filename);
@@ -5444,8 +5488,8 @@ dtrace_function_entry(PyFrameObject *f)
static void
dtrace_function_return(PyFrameObject *f)
{
- char* filename;
- char* funcname;
+ const char *filename;
+ const char *funcname;
int lineno;
filename = PyUnicode_AsUTF8(f->f_code->co_filename);
@@ -5461,7 +5505,7 @@ maybe_dtrace_line(PyFrameObject *frame,
int *instr_lb, int *instr_ub, int *instr_prev)
{
int line = frame->f_lineno;
- char *co_filename, *co_name;
+ const char *co_filename, *co_name;
/* If the last instruction executed isn't in the current
instruction window, reset the window.
diff --git a/Python/clinic/_warnings.c.h b/Python/clinic/_warnings.c.h
new file mode 100644
index 0000000000..550c73f952
--- /dev/null
+++ b/Python/clinic/_warnings.c.h
@@ -0,0 +1,38 @@
+/*[clinic input]
+preserve
+[clinic start generated code]*/
+
+PyDoc_STRVAR(warnings_warn__doc__,
+"warn($module, /, message, category=None, stacklevel=1, source=None)\n"
+"--\n"
+"\n"
+"Issue a warning, or maybe ignore it or raise an exception.");
+
+#define WARNINGS_WARN_METHODDEF \
+ {"warn", (PyCFunction)warnings_warn, METH_FASTCALL, warnings_warn__doc__},
+
+static PyObject *
+warnings_warn_impl(PyObject *module, PyObject *message, PyObject *category,
+ Py_ssize_t stacklevel, PyObject *source);
+
+static PyObject *
+warnings_warn(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
+{
+ PyObject *return_value = NULL;
+ static const char * const _keywords[] = {"message", "category", "stacklevel", "source", NULL};
+ static _PyArg_Parser _parser = {"O|OnO:warn", _keywords, 0};
+ PyObject *message;
+ PyObject *category = Py_None;
+ Py_ssize_t stacklevel = 1;
+ PyObject *source = Py_None;
+
+ if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
+ &message, &category, &stacklevel, &source)) {
+ goto exit;
+ }
+ return_value = warnings_warn_impl(module, message, category, stacklevel, source);
+
+exit:
+ return return_value;
+}
+/*[clinic end generated code: output=acadf1788059034c input=a9049054013a1b77]*/
diff --git a/Python/clinic/bltinmodule.c.h b/Python/clinic/bltinmodule.c.h
index c88deef33f..b52bde2612 100644
--- a/Python/clinic/bltinmodule.c.h
+++ b/Python/clinic/bltinmodule.c.h
@@ -80,22 +80,26 @@ PyDoc_STRVAR(builtin_format__doc__,
"format_spec defaults to the empty string");
#define BUILTIN_FORMAT_METHODDEF \
- {"format", (PyCFunction)builtin_format, METH_VARARGS, builtin_format__doc__},
+ {"format", (PyCFunction)builtin_format, METH_FASTCALL, builtin_format__doc__},
static PyObject *
builtin_format_impl(PyObject *module, PyObject *value, PyObject *format_spec);
static PyObject *
-builtin_format(PyObject *module, PyObject *args)
+builtin_format(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyObject *value;
PyObject *format_spec = NULL;
- if (!PyArg_ParseTuple(args, "O|U:format",
+ if (!_PyArg_ParseStack(args, nargs, "O|U:format",
&value, &format_spec)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("format", kwnames)) {
+ goto exit;
+ }
return_value = builtin_format_impl(module, value, format_spec);
exit:
@@ -168,7 +172,7 @@ builtin_compile(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *k
int dont_inherit = 0;
int optimize = -1;
- if (!_PyArg_ParseStack(args, nargs, kwnames, &_parser,
+ if (!_PyArg_ParseStackAndKeywords(args, nargs, kwnames, &_parser,
&source, PyUnicode_FSDecoder, &filename, &mode, &flags, &dont_inherit, &optimize)) {
goto exit;
}
@@ -185,23 +189,27 @@ PyDoc_STRVAR(builtin_divmod__doc__,
"Return the tuple (x//y, x%y). Invariant: div*y + mod == x.");
#define BUILTIN_DIVMOD_METHODDEF \
- {"divmod", (PyCFunction)builtin_divmod, METH_VARARGS, builtin_divmod__doc__},
+ {"divmod", (PyCFunction)builtin_divmod, METH_FASTCALL, builtin_divmod__doc__},
static PyObject *
builtin_divmod_impl(PyObject *module, PyObject *x, PyObject *y);
static PyObject *
-builtin_divmod(PyObject *module, PyObject *args)
+builtin_divmod(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyObject *x;
PyObject *y;
- if (!PyArg_UnpackTuple(args, "divmod",
+ if (!_PyArg_UnpackStack(args, nargs, "divmod",
2, 2,
&x, &y)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("divmod", kwnames)) {
+ goto exit;
+ }
return_value = builtin_divmod_impl(module, x, y);
exit:
@@ -221,25 +229,29 @@ PyDoc_STRVAR(builtin_eval__doc__,
"If only globals is given, locals defaults to it.");
#define BUILTIN_EVAL_METHODDEF \
- {"eval", (PyCFunction)builtin_eval, METH_VARARGS, builtin_eval__doc__},
+ {"eval", (PyCFunction)builtin_eval, METH_FASTCALL, builtin_eval__doc__},
static PyObject *
builtin_eval_impl(PyObject *module, PyObject *source, PyObject *globals,
PyObject *locals);
static PyObject *
-builtin_eval(PyObject *module, PyObject *args)
+builtin_eval(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyObject *source;
PyObject *globals = Py_None;
PyObject *locals = Py_None;
- if (!PyArg_UnpackTuple(args, "eval",
+ if (!_PyArg_UnpackStack(args, nargs, "eval",
1, 3,
&source, &globals, &locals)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("eval", kwnames)) {
+ goto exit;
+ }
return_value = builtin_eval_impl(module, source, globals, locals);
exit:
@@ -259,25 +271,29 @@ PyDoc_STRVAR(builtin_exec__doc__,
"If only globals is given, locals defaults to it.");
#define BUILTIN_EXEC_METHODDEF \
- {"exec", (PyCFunction)builtin_exec, METH_VARARGS, builtin_exec__doc__},
+ {"exec", (PyCFunction)builtin_exec, METH_FASTCALL, builtin_exec__doc__},
static PyObject *
builtin_exec_impl(PyObject *module, PyObject *source, PyObject *globals,
PyObject *locals);
static PyObject *
-builtin_exec(PyObject *module, PyObject *args)
+builtin_exec(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyObject *source;
PyObject *globals = Py_None;
PyObject *locals = Py_None;
- if (!PyArg_UnpackTuple(args, "exec",
+ if (!_PyArg_UnpackStack(args, nargs, "exec",
1, 3,
&source, &globals, &locals)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("exec", kwnames)) {
+ goto exit;
+ }
return_value = builtin_exec_impl(module, source, globals, locals);
exit:
@@ -314,23 +330,27 @@ PyDoc_STRVAR(builtin_hasattr__doc__,
"This is done by calling getattr(obj, name) and catching AttributeError.");
#define BUILTIN_HASATTR_METHODDEF \
- {"hasattr", (PyCFunction)builtin_hasattr, METH_VARARGS, builtin_hasattr__doc__},
+ {"hasattr", (PyCFunction)builtin_hasattr, METH_FASTCALL, builtin_hasattr__doc__},
static PyObject *
builtin_hasattr_impl(PyObject *module, PyObject *obj, PyObject *name);
static PyObject *
-builtin_hasattr(PyObject *module, PyObject *args)
+builtin_hasattr(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyObject *obj;
PyObject *name;
- if (!PyArg_UnpackTuple(args, "hasattr",
+ if (!_PyArg_UnpackStack(args, nargs, "hasattr",
2, 2,
&obj, &name)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("hasattr", kwnames)) {
+ goto exit;
+ }
return_value = builtin_hasattr_impl(module, obj, name);
exit:
@@ -358,25 +378,29 @@ PyDoc_STRVAR(builtin_setattr__doc__,
"setattr(x, \'y\', v) is equivalent to ``x.y = v\'\'");
#define BUILTIN_SETATTR_METHODDEF \
- {"setattr", (PyCFunction)builtin_setattr, METH_VARARGS, builtin_setattr__doc__},
+ {"setattr", (PyCFunction)builtin_setattr, METH_FASTCALL, builtin_setattr__doc__},
static PyObject *
builtin_setattr_impl(PyObject *module, PyObject *obj, PyObject *name,
PyObject *value);
static PyObject *
-builtin_setattr(PyObject *module, PyObject *args)
+builtin_setattr(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyObject *obj;
PyObject *name;
PyObject *value;
- if (!PyArg_UnpackTuple(args, "setattr",
+ if (!_PyArg_UnpackStack(args, nargs, "setattr",
3, 3,
&obj, &name, &value)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("setattr", kwnames)) {
+ goto exit;
+ }
return_value = builtin_setattr_impl(module, obj, name, value);
exit:
@@ -392,23 +416,27 @@ PyDoc_STRVAR(builtin_delattr__doc__,
"delattr(x, \'y\') is equivalent to ``del x.y\'\'");
#define BUILTIN_DELATTR_METHODDEF \
- {"delattr", (PyCFunction)builtin_delattr, METH_VARARGS, builtin_delattr__doc__},
+ {"delattr", (PyCFunction)builtin_delattr, METH_FASTCALL, builtin_delattr__doc__},
static PyObject *
builtin_delattr_impl(PyObject *module, PyObject *obj, PyObject *name);
static PyObject *
-builtin_delattr(PyObject *module, PyObject *args)
+builtin_delattr(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyObject *obj;
PyObject *name;
- if (!PyArg_UnpackTuple(args, "delattr",
+ if (!_PyArg_UnpackStack(args, nargs, "delattr",
2, 2,
&obj, &name)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("delattr", kwnames)) {
+ goto exit;
+ }
return_value = builtin_delattr_impl(module, obj, name);
exit:
@@ -501,24 +529,28 @@ PyDoc_STRVAR(builtin_pow__doc__,
"invoked using the three argument form.");
#define BUILTIN_POW_METHODDEF \
- {"pow", (PyCFunction)builtin_pow, METH_VARARGS, builtin_pow__doc__},
+ {"pow", (PyCFunction)builtin_pow, METH_FASTCALL, builtin_pow__doc__},
static PyObject *
builtin_pow_impl(PyObject *module, PyObject *x, PyObject *y, PyObject *z);
static PyObject *
-builtin_pow(PyObject *module, PyObject *args)
+builtin_pow(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyObject *x;
PyObject *y;
PyObject *z = Py_None;
- if (!PyArg_UnpackTuple(args, "pow",
+ if (!_PyArg_UnpackStack(args, nargs, "pow",
2, 3,
&x, &y, &z)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("pow", kwnames)) {
+ goto exit;
+ }
return_value = builtin_pow_impl(module, x, y, z);
exit:
@@ -538,22 +570,26 @@ PyDoc_STRVAR(builtin_input__doc__,
"On *nix systems, readline is used if available.");
#define BUILTIN_INPUT_METHODDEF \
- {"input", (PyCFunction)builtin_input, METH_VARARGS, builtin_input__doc__},
+ {"input", (PyCFunction)builtin_input, METH_FASTCALL, builtin_input__doc__},
static PyObject *
builtin_input_impl(PyObject *module, PyObject *prompt);
static PyObject *
-builtin_input(PyObject *module, PyObject *args)
+builtin_input(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyObject *prompt = NULL;
- if (!PyArg_UnpackTuple(args, "input",
+ if (!_PyArg_UnpackStack(args, nargs, "input",
0, 1,
&prompt)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("input", kwnames)) {
+ goto exit;
+ }
return_value = builtin_input_impl(module, prompt);
exit:
@@ -582,23 +618,27 @@ PyDoc_STRVAR(builtin_sum__doc__,
"reject non-numeric types.");
#define BUILTIN_SUM_METHODDEF \
- {"sum", (PyCFunction)builtin_sum, METH_VARARGS, builtin_sum__doc__},
+ {"sum", (PyCFunction)builtin_sum, METH_FASTCALL, builtin_sum__doc__},
static PyObject *
builtin_sum_impl(PyObject *module, PyObject *iterable, PyObject *start);
static PyObject *
-builtin_sum(PyObject *module, PyObject *args)
+builtin_sum(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyObject *iterable;
PyObject *start = NULL;
- if (!PyArg_UnpackTuple(args, "sum",
+ if (!_PyArg_UnpackStack(args, nargs, "sum",
1, 2,
&iterable, &start)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("sum", kwnames)) {
+ goto exit;
+ }
return_value = builtin_sum_impl(module, iterable, start);
exit:
@@ -616,24 +656,28 @@ PyDoc_STRVAR(builtin_isinstance__doc__,
"or ...`` etc.");
#define BUILTIN_ISINSTANCE_METHODDEF \
- {"isinstance", (PyCFunction)builtin_isinstance, METH_VARARGS, builtin_isinstance__doc__},
+ {"isinstance", (PyCFunction)builtin_isinstance, METH_FASTCALL, builtin_isinstance__doc__},
static PyObject *
builtin_isinstance_impl(PyObject *module, PyObject *obj,
PyObject *class_or_tuple);
static PyObject *
-builtin_isinstance(PyObject *module, PyObject *args)
+builtin_isinstance(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyObject *obj;
PyObject *class_or_tuple;
- if (!PyArg_UnpackTuple(args, "isinstance",
+ if (!_PyArg_UnpackStack(args, nargs, "isinstance",
2, 2,
&obj, &class_or_tuple)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("isinstance", kwnames)) {
+ goto exit;
+ }
return_value = builtin_isinstance_impl(module, obj, class_or_tuple);
exit:
@@ -651,27 +695,31 @@ PyDoc_STRVAR(builtin_issubclass__doc__,
"or ...`` etc.");
#define BUILTIN_ISSUBCLASS_METHODDEF \
- {"issubclass", (PyCFunction)builtin_issubclass, METH_VARARGS, builtin_issubclass__doc__},
+ {"issubclass", (PyCFunction)builtin_issubclass, METH_FASTCALL, builtin_issubclass__doc__},
static PyObject *
builtin_issubclass_impl(PyObject *module, PyObject *cls,
PyObject *class_or_tuple);
static PyObject *
-builtin_issubclass(PyObject *module, PyObject *args)
+builtin_issubclass(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyObject *cls;
PyObject *class_or_tuple;
- if (!PyArg_UnpackTuple(args, "issubclass",
+ if (!_PyArg_UnpackStack(args, nargs, "issubclass",
2, 2,
&cls, &class_or_tuple)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("issubclass", kwnames)) {
+ goto exit;
+ }
return_value = builtin_issubclass_impl(module, cls, class_or_tuple);
exit:
return return_value;
}
-/*[clinic end generated code: output=63483deb75805f7c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3234725ef4d8bbf1 input=a9049054013a1b77]*/
diff --git a/Python/clinic/import.c.h b/Python/clinic/import.c.h
index b3460b061d..0165b7c4e1 100644
--- a/Python/clinic/import.c.h
+++ b/Python/clinic/import.c.h
@@ -75,23 +75,27 @@ PyDoc_STRVAR(_imp__fix_co_filename__doc__,
" File path to use.");
#define _IMP__FIX_CO_FILENAME_METHODDEF \
- {"_fix_co_filename", (PyCFunction)_imp__fix_co_filename, METH_VARARGS, _imp__fix_co_filename__doc__},
+ {"_fix_co_filename", (PyCFunction)_imp__fix_co_filename, METH_FASTCALL, _imp__fix_co_filename__doc__},
static PyObject *
_imp__fix_co_filename_impl(PyObject *module, PyCodeObject *code,
PyObject *path);
static PyObject *
-_imp__fix_co_filename(PyObject *module, PyObject *args)
+_imp__fix_co_filename(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyCodeObject *code;
PyObject *path;
- if (!PyArg_ParseTuple(args, "O!U:_fix_co_filename",
+ if (!_PyArg_ParseStack(args, nargs, "O!U:_fix_co_filename",
&PyCode_Type, &code, &path)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("_fix_co_filename", kwnames)) {
+ goto exit;
+ }
return_value = _imp__fix_co_filename_impl(module, code, path);
exit:
@@ -269,23 +273,27 @@ PyDoc_STRVAR(_imp_create_dynamic__doc__,
"Create an extension module.");
#define _IMP_CREATE_DYNAMIC_METHODDEF \
- {"create_dynamic", (PyCFunction)_imp_create_dynamic, METH_VARARGS, _imp_create_dynamic__doc__},
+ {"create_dynamic", (PyCFunction)_imp_create_dynamic, METH_FASTCALL, _imp_create_dynamic__doc__},
static PyObject *
_imp_create_dynamic_impl(PyObject *module, PyObject *spec, PyObject *file);
static PyObject *
-_imp_create_dynamic(PyObject *module, PyObject *args)
+_imp_create_dynamic(PyObject *module, PyObject **args, Py_ssize_t nargs, PyObject *kwnames)
{
PyObject *return_value = NULL;
PyObject *spec;
PyObject *file = NULL;
- if (!PyArg_UnpackTuple(args, "create_dynamic",
+ if (!_PyArg_UnpackStack(args, nargs, "create_dynamic",
1, 2,
&spec, &file)) {
goto exit;
}
+
+ if (!_PyArg_NoStackKeywords("create_dynamic", kwnames)) {
+ goto exit;
+ }
return_value = _imp_create_dynamic_impl(module, spec, file);
exit:
@@ -361,4 +369,4 @@ exit:
#ifndef _IMP_EXEC_DYNAMIC_METHODDEF
#define _IMP_EXEC_DYNAMIC_METHODDEF
#endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */
-/*[clinic end generated code: output=d24d7f73702a907f input=a9049054013a1b77]*/
+/*[clinic end generated code: output=c1d0e65d04114958 input=a9049054013a1b77]*/
diff --git a/Python/codecs.c b/Python/codecs.c
index fe57d0dc42..688a40bd6f 100644
--- a/Python/codecs.c
+++ b/Python/codecs.c
@@ -284,7 +284,7 @@ PyObject *codec_makeincrementalcodec(PyObject *codec_info,
if (errors)
ret = PyObject_CallFunction(inccodec, "s", errors);
else
- ret = PyObject_CallFunction(inccodec, NULL);
+ ret = _PyObject_CallNoArg(inccodec);
Py_DECREF(inccodec);
return ret;
}
@@ -322,7 +322,7 @@ PyObject *codec_getstreamcodec(const char *encoding,
if (errors != NULL)
streamcodec = PyObject_CallFunction(codeccls, "Os", stream, errors);
else
- streamcodec = PyObject_CallFunction(codeccls, "O", stream);
+ streamcodec = PyObject_CallFunctionObjArgs(codeccls, stream, NULL);
Py_DECREF(codecs);
return streamcodec;
}
@@ -867,17 +867,14 @@ PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc)
Py_UCS4 c;
if (PyObject_TypeCheck(exc, (PyTypeObject *)PyExc_UnicodeDecodeError)) {
- unsigned char *p;
+ const unsigned char *p;
if (PyUnicodeDecodeError_GetStart(exc, &start))
return NULL;
if (PyUnicodeDecodeError_GetEnd(exc, &end))
return NULL;
if (!(object = PyUnicodeDecodeError_GetObject(exc)))
return NULL;
- if (!(p = (unsigned char*)PyBytes_AsString(object))) {
- Py_DECREF(object);
- return NULL;
- }
+ p = (const unsigned char*)PyBytes_AS_STRING(object);
res = PyUnicode_New(4 * (end - start), 127);
if (res == NULL) {
Py_DECREF(object);
@@ -1134,7 +1131,7 @@ PyCodec_SurrogatePassErrors(PyObject *exc)
PyObject *restuple;
PyObject *object;
PyObject *encode;
- char *encoding;
+ const char *encoding;
int code;
int bytelength;
Py_ssize_t i;
@@ -1220,7 +1217,7 @@ PyCodec_SurrogatePassErrors(PyObject *exc)
return restuple;
}
else if (PyObject_TypeCheck(exc, (PyTypeObject *)PyExc_UnicodeDecodeError)) {
- unsigned char *p;
+ const unsigned char *p;
Py_UCS4 ch = 0;
if (PyUnicodeDecodeError_GetStart(exc, &start))
return NULL;
@@ -1228,10 +1225,7 @@ PyCodec_SurrogatePassErrors(PyObject *exc)
return NULL;
if (!(object = PyUnicodeDecodeError_GetObject(exc)))
return NULL;
- if (!(p = (unsigned char*)PyBytes_AsString(object))) {
- Py_DECREF(object);
- return NULL;
- }
+ p = (const unsigned char*)PyBytes_AS_STRING(object);
if (!(encode = PyUnicodeDecodeError_GetEncoding(exc))) {
Py_DECREF(object);
return NULL;
@@ -1338,7 +1332,7 @@ PyCodec_SurrogateEscapeErrors(PyObject *exc)
}
else if (PyObject_TypeCheck(exc, (PyTypeObject *)PyExc_UnicodeDecodeError)) {
PyObject *str;
- unsigned char *p;
+ const unsigned char *p;
Py_UCS2 ch[4]; /* decode up to 4 bad bytes. */
int consumed = 0;
if (PyUnicodeDecodeError_GetStart(exc, &start))
@@ -1347,10 +1341,7 @@ PyCodec_SurrogateEscapeErrors(PyObject *exc)
return NULL;
if (!(object = PyUnicodeDecodeError_GetObject(exc)))
return NULL;
- if (!(p = (unsigned char*)PyBytes_AsString(object))) {
- Py_DECREF(object);
- return NULL;
- }
+ p = (const unsigned char*)PyBytes_AS_STRING(object);
while (consumed < 4 && consumed < end-start) {
/* Refuse to escape ASCII bytes. */
if (p[start+consumed] < 128)
diff --git a/Python/compile.c b/Python/compile.c
index 0e16075852..17fef31482 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -564,7 +564,7 @@ compiler_enter_scope(struct compiler *c, identifier name,
PyObject *tuple, *name, *zero;
int res;
assert(u->u_scope_type == COMPILER_SCOPE_CLASS);
- assert(PyDict_Size(u->u_cellvars) == 0);
+ assert(PyDict_GET_SIZE(u->u_cellvars) == 0);
name = _PyUnicode_FromId(&PyId___class__);
if (!name) {
compiler_unit_free(u);
@@ -591,7 +591,7 @@ compiler_enter_scope(struct compiler *c, identifier name,
}
u->u_freevars = dictbytype(u->u_ste->ste_symbols, FREE, DEF_FREE_CLASS,
- PyDict_Size(u->u_cellvars));
+ PyDict_GET_SIZE(u->u_cellvars));
if (!u->u_freevars) {
compiler_unit_free(u);
return 0;
@@ -1040,6 +1040,8 @@ PyCompile_OpcodeStackEffect(int opcode, int oparg)
return -oparg;
case CALL_FUNCTION:
return -oparg;
+ case CALL_METHOD:
+ return -oparg-1;
case CALL_FUNCTION_KW:
return -oparg-1;
case CALL_FUNCTION_EX:
@@ -1078,6 +1080,8 @@ PyCompile_OpcodeStackEffect(int opcode, int oparg)
/* If there's a fmt_spec on the stack, we go from 2->1,
else 1->1. */
return (oparg & FVS_MASK) == FVS_HAVE_SPEC ? -1 : 0;
+ case LOAD_METHOD:
+ return 1;
default:
return PY_INVALID_STACK_EFFECT;
}
@@ -1124,7 +1128,7 @@ compiler_add_o(struct compiler *c, PyObject *dict, PyObject *o)
Py_DECREF(t);
return -1;
}
- arg = PyDict_Size(dict);
+ arg = PyDict_GET_SIZE(dict);
v = PyLong_FromSsize_t(arg);
if (!v) {
Py_DECREF(t);
@@ -1995,7 +1999,7 @@ compiler_class(struct compiler *c, stmt_ty s)
}
else {
/* No methods referenced __class__, so just return None */
- assert(PyDict_Size(c->u->u_cellvars) == 0);
+ assert(PyDict_GET_SIZE(c->u->u_cellvars) == 0);
ADDOP_O(c, LOAD_CONST, Py_None, consts);
}
ADDOP_IN_SCOPE(c, RETURN_VALUE);
@@ -3348,11 +3352,8 @@ compiler_dict(struct compiler *c, expr_ty e)
/* If there is more than one dict, they need to be merged into a new
* dict. If there is one dict and it's an unpacking, then it needs
* to be copied into a new dict." */
- while (containers > 1 || is_unpacking) {
- int oparg = containers < 255 ? containers : 255;
- ADDOP_I(c, BUILD_MAP_UNPACK, oparg);
- containers -= (oparg - 1);
- is_unpacking = 0;
+ if (containers > 1 || is_unpacking) {
+ ADDOP_I(c, BUILD_MAP_UNPACK, containers);
}
return 1;
}
@@ -3403,8 +3404,41 @@ compiler_compare(struct compiler *c, expr_ty e)
}
static int
+maybe_optimize_method_call(struct compiler *c, expr_ty e)
+{
+ Py_ssize_t argsl, i;
+ expr_ty meth = e->v.Call.func;
+ asdl_seq *args = e->v.Call.args;
+
+ /* Check that the call node is an attribute access, and that
+ the call doesn't have keyword parameters. */
+ if (meth->kind != Attribute_kind || meth->v.Attribute.ctx != Load ||
+ asdl_seq_LEN(e->v.Call.keywords))
+ return -1;
+
+ /* Check that there are no *varargs types of arguments. */
+ argsl = asdl_seq_LEN(args);
+ for (i = 0; i < argsl; i++) {
+ expr_ty elt = asdl_seq_GET(args, i);
+ if (elt->kind == Starred_kind) {
+ return -1;
+ }
+ }
+
+ /* Alright, we can optimize the code. */
+ VISIT(c, expr, meth->v.Attribute.value);
+ ADDOP_NAME(c, LOAD_METHOD, meth->v.Attribute.attr, names);
+ VISIT_SEQ(c, expr, e->v.Call.args);
+ ADDOP_I(c, CALL_METHOD, asdl_seq_LEN(e->v.Call.args));
+ return 1;
+}
+
+static int
compiler_call(struct compiler *c, expr_ty e)
{
+ if (maybe_optimize_method_call(c, e) > 0)
+ return 1;
+
VISIT(c, expr, e->v.Call.func);
return compiler_call_helper(c, 0,
e->v.Call.args,
@@ -4044,7 +4078,7 @@ compiler_visit_keyword(struct compiler *c, keyword_ty k)
static int
expr_constant(struct compiler *c, expr_ty e)
{
- char *id;
+ const char *id;
switch (e->kind) {
case Ellipsis_kind:
return 1;
@@ -5145,7 +5179,7 @@ static PyObject *
dict_keys_inorder(PyObject *dict, Py_ssize_t offset)
{
PyObject *tuple, *k, *v;
- Py_ssize_t i, pos = 0, size = PyDict_Size(dict);
+ Py_ssize_t i, pos = 0, size = PyDict_GET_SIZE(dict);
tuple = PyTuple_New(size);
if (tuple == NULL)
@@ -5169,7 +5203,6 @@ compute_code_flags(struct compiler *c)
{
PySTEntryObject *ste = c->u->u_ste;
int flags = 0;
- Py_ssize_t n;
if (ste->ste_type == FunctionBlock) {
flags |= CO_NEWLOCALS | CO_OPTIMIZED;
if (ste->ste_nested)
@@ -5189,16 +5222,9 @@ compute_code_flags(struct compiler *c)
/* (Only) inherit compilerflags in PyCF_MASK */
flags |= (c->c_flags->cf_flags & PyCF_MASK);
- n = PyDict_Size(c->u->u_freevars);
- if (n < 0)
- return -1;
- if (n == 0) {
- n = PyDict_Size(c->u->u_cellvars);
- if (n < 0)
- return -1;
- if (n == 0) {
- flags |= CO_NOFREE;
- }
+ if (!PyDict_GET_SIZE(c->u->u_freevars) &&
+ !PyDict_GET_SIZE(c->u->u_cellvars)) {
+ flags |= CO_NOFREE;
}
return flags;
@@ -5239,7 +5265,7 @@ makecode(struct compiler *c, struct assembler *a)
if (!freevars)
goto error;
- nlocals = PyDict_Size(c->u->u_varnames);
+ nlocals = PyDict_GET_SIZE(c->u->u_varnames);
assert(nlocals < INT_MAX);
nlocals_int = Py_SAFE_DOWNCAST(nlocals, Py_ssize_t, int);
diff --git a/Python/errors.c b/Python/errors.c
index 6095843815..3785e6981c 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -62,7 +62,7 @@ _PyErr_CreateException(PyObject *exception, PyObject *value)
return PyObject_Call(exception, value, NULL);
}
else {
- return _PyObject_CallArg1(exception, value);
+ return PyObject_CallFunctionObjArgs(exception, value, NULL);
}
}
@@ -158,10 +158,10 @@ PyErr_SetString(PyObject *exception, const char *string)
}
-PyObject *
+PyObject* _Py_HOT_FUNCTION
PyErr_Occurred(void)
{
- PyThreadState *tstate = _PyThreadState_UncheckedGet();
+ PyThreadState *tstate = PyThreadState_GET();
return tstate == NULL ? NULL : tstate->curexc_type;
}
@@ -582,9 +582,7 @@ PyErr_SetFromErrnoWithFilename(PyObject *exc, const char *filename)
PyObject *
PyErr_SetFromErrnoWithUnicodeFilename(PyObject *exc, const Py_UNICODE *filename)
{
- PyObject *name = filename ?
- PyUnicode_FromUnicode(filename, wcslen(filename)) :
- NULL;
+ PyObject *name = filename ? PyUnicode_FromWideChar(filename, -1) : NULL;
PyObject *result = PyErr_SetFromErrnoWithFilenameObjects(exc, name, NULL);
Py_XDECREF(name);
return result;
@@ -691,9 +689,7 @@ PyObject *PyErr_SetExcFromWindowsErrWithUnicodeFilename(
int ierr,
const Py_UNICODE *filename)
{
- PyObject *name = filename ?
- PyUnicode_FromUnicode(filename, wcslen(filename)) :
- NULL;
+ PyObject *name = filename ? PyUnicode_FromWideChar(filename, -1) : NULL;
PyObject *ret = PyErr_SetExcFromWindowsErrWithFilenameObjects(exc,
ierr,
name,
@@ -729,9 +725,7 @@ PyObject *PyErr_SetFromWindowsErrWithUnicodeFilename(
int ierr,
const Py_UNICODE *filename)
{
- PyObject *name = filename ?
- PyUnicode_FromUnicode(filename, wcslen(filename)) :
- NULL;
+ PyObject *name = filename ? PyUnicode_FromWideChar(filename, -1) : NULL;
PyObject *result = PyErr_SetExcFromWindowsErrWithFilenameObjects(
PyExc_OSError,
ierr, name, NULL);
diff --git a/Python/getargs.c b/Python/getargs.c
index 616c6eb107..952a662ecf 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -26,7 +26,9 @@ int _PyArg_VaParseTupleAndKeywordsFast(PyObject *, PyObject *,
#ifdef HAVE_DECLSPEC_DLL
/* Export functions */
PyAPI_FUNC(int) _PyArg_Parse_SizeT(PyObject *, const char *, ...);
-PyAPI_FUNC(int) _PyArg_ParseStack_SizeT(PyObject **args, Py_ssize_t nargs, PyObject *kwnames,
+PyAPI_FUNC(int) _PyArg_ParseStack_SizeT(PyObject **args, Py_ssize_t nargs,
+ const char *format, ...);
+PyAPI_FUNC(int) _PyArg_ParseStackAndKeywords_SizeT(PyObject **args, Py_ssize_t nargs, PyObject *kwnames,
struct _PyArg_Parser *parser, ...);
PyAPI_FUNC(int) _PyArg_ParseTuple_SizeT(PyObject *, const char *, ...);
PyAPI_FUNC(int) _PyArg_ParseTupleAndKeywords_SizeT(PyObject *, PyObject *,
@@ -66,6 +68,8 @@ typedef struct {
#define STATIC_FREELIST_ENTRIES 8
/* Forward */
+static int vgetargs1_impl(PyObject *args, PyObject **stack, Py_ssize_t nargs,
+ const char *format, va_list *p_va, int flags);
static int vgetargs1(PyObject *, const char *, va_list *, int);
static void seterror(Py_ssize_t, const char *, int *, const char *, const char *);
static const char *convertitem(PyObject *, const char **, va_list *, int, int *,
@@ -74,7 +78,7 @@ static const char *converttuple(PyObject *, const char **, va_list *, int,
int *, char *, size_t, int, freelist_t *);
static const char *convertsimple(PyObject *, const char **, va_list *, int,
char *, size_t, freelist_t *);
-static Py_ssize_t convertbuffer(PyObject *, void **p, const char **);
+static Py_ssize_t convertbuffer(PyObject *, const void **p, const char **);
static int getbuffer(PyObject *, Py_buffer *, const char**);
static int vgetargskeywords(PyObject *, PyObject *,
@@ -138,6 +142,31 @@ _PyArg_ParseTuple_SizeT(PyObject *args, const char *format, ...)
int
+_PyArg_ParseStack(PyObject **args, Py_ssize_t nargs, const char *format, ...)
+{
+ int retval;
+ va_list va;
+
+ va_start(va, format);
+ retval = vgetargs1_impl(NULL, args, nargs, format, &va, 0);
+ va_end(va);
+ return retval;
+}
+
+int
+_PyArg_ParseStack_SizeT(PyObject **args, Py_ssize_t nargs, const char *format, ...)
+{
+ int retval;
+ va_list va;
+
+ va_start(va, format);
+ retval = vgetargs1_impl(NULL, args, nargs, format, &va, FLAG_SIZE_T);
+ va_end(va);
+ return retval;
+}
+
+
+int
PyArg_VaParse(PyObject *args, const char *format, va_list va)
{
va_list lva;
@@ -220,7 +249,8 @@ cleanreturn(int retval, freelist_t *freelist)
static int
-vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
+vgetargs1_impl(PyObject *compat_args, PyObject **stack, Py_ssize_t nargs, const char *format,
+ va_list *p_va, int flags)
{
char msgbuf[256];
int levels[32];
@@ -231,17 +261,18 @@ vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
int level = 0;
int endfmt = 0;
const char *formatsave = format;
- Py_ssize_t i, len;
+ Py_ssize_t i;
const char *msg;
int compat = flags & FLAG_COMPAT;
freelistentry_t static_entries[STATIC_FREELIST_ENTRIES];
freelist_t freelist;
+ assert(nargs == 0 || stack != NULL);
+
freelist.entries = static_entries;
freelist.first_available = 0;
freelist.entries_malloced = 0;
- assert(compat || (args != (PyObject*)NULL));
flags = flags & ~FLAG_COMPAT;
while (endfmt == 0) {
@@ -305,7 +336,7 @@ vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
if (compat) {
if (max == 0) {
- if (args == NULL)
+ if (compat_args == NULL)
return 1;
PyErr_Format(PyExc_TypeError,
"%.200s%s takes no arguments",
@@ -314,14 +345,14 @@ vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
return cleanreturn(0, &freelist);
}
else if (min == 1 && max == 1) {
- if (args == NULL) {
+ if (compat_args == NULL) {
PyErr_Format(PyExc_TypeError,
"%.200s%s takes at least one argument",
fname==NULL ? "function" : fname,
fname==NULL ? "" : "()");
return cleanreturn(0, &freelist);
}
- msg = convertitem(args, &format, p_va, flags, levels,
+ msg = convertitem(compat_args, &format, p_va, flags, levels,
msgbuf, sizeof(msgbuf), &freelist);
if (msg == NULL)
return cleanreturn(1, &freelist);
@@ -335,34 +366,26 @@ vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
}
}
- if (!PyTuple_Check(args)) {
- PyErr_SetString(PyExc_SystemError,
- "new style getargs format but argument is not a tuple");
- return cleanreturn(0, &freelist);
- }
-
- len = PyTuple_GET_SIZE(args);
-
- if (len < min || max < len) {
+ if (nargs < min || max < nargs) {
if (message == NULL)
PyErr_Format(PyExc_TypeError,
"%.150s%s takes %s %d argument%s (%ld given)",
fname==NULL ? "function" : fname,
fname==NULL ? "" : "()",
min==max ? "exactly"
- : len < min ? "at least" : "at most",
- len < min ? min : max,
- (len < min ? min : max) == 1 ? "" : "s",
- Py_SAFE_DOWNCAST(len, Py_ssize_t, long));
+ : nargs < min ? "at least" : "at most",
+ nargs < min ? min : max,
+ (nargs < min ? min : max) == 1 ? "" : "s",
+ Py_SAFE_DOWNCAST(nargs, Py_ssize_t, long));
else
PyErr_SetString(PyExc_TypeError, message);
return cleanreturn(0, &freelist);
}
- for (i = 0; i < len; i++) {
+ for (i = 0; i < nargs; i++) {
if (*format == '|')
format++;
- msg = convertitem(PyTuple_GET_ITEM(args, i), &format, p_va,
+ msg = convertitem(stack[i], &format, p_va,
flags, levels, msgbuf,
sizeof(msgbuf), &freelist);
if (msg) {
@@ -382,6 +405,31 @@ vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
return cleanreturn(1, &freelist);
}
+static int
+vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
+{
+ PyObject **stack;
+ Py_ssize_t nargs;
+
+ if (!(flags & FLAG_COMPAT)) {
+ assert(args != NULL);
+
+ if (!PyTuple_Check(args)) {
+ PyErr_SetString(PyExc_SystemError,
+ "new style getargs format but argument is not a tuple");
+ return 0;
+ }
+
+ stack = &PyTuple_GET_ITEM(args, 0);
+ nargs = PyTuple_GET_SIZE(args);
+ }
+ else {
+ stack = NULL;
+ nargs = 0;
+ }
+
+ return vgetargs1_impl(args, stack, nargs, format, p_va, flags);
+}
static void
@@ -625,7 +673,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
const char *format = *p_format;
char c = *format++;
- char *sarg;
+ const char *sarg;
switch (c) {
@@ -897,7 +945,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
}
break;
}
- count = convertbuffer(arg, p, &buf);
+ count = convertbuffer(arg, (const void **)p, &buf);
if (count < 0)
return converterr(buf, arg, msgbuf, bufsize);
if (*format == '#') {
@@ -928,7 +976,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
if (sarg == NULL)
return converterr(CONV_UNICODE,
arg, msgbuf, bufsize);
- PyBuffer_FillInfo(p, arg, sarg, len, 1, 0);
+ PyBuffer_FillInfo(p, arg, (void *)sarg, len, 1, 0);
}
else { /* any bytes-like object */
const char *buf;
@@ -943,7 +991,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
format++;
} else if (*format == '#') { /* a string or read-only bytes-like object */
/* "s#" or "z#" */
- void **p = (void **)va_arg(*p_va, char **);
+ const void **p = (const void **)va_arg(*p_va, const char **);
FETCH_SIZE;
if (c == 'z' && arg == Py_None) {
@@ -970,7 +1018,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
format++;
} else {
/* "s" or "z" */
- char **p = va_arg(*p_va, char **);
+ const char **p = va_arg(*p_va, const char **);
Py_ssize_t len;
sarg = NULL;
@@ -1027,7 +1075,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
*p = PyUnicode_AsUnicodeAndSize(arg, &len);
if (*p == NULL)
RETURN_ERR_OCCURRED;
- if (Py_UNICODE_strlen(*p) != (size_t)len) {
+ if (wcslen(*p) != (size_t)len) {
PyErr_SetString(PyExc_ValueError, "embedded null character");
RETURN_ERR_OCCURRED;
}
@@ -1074,9 +1122,14 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
(PyBytes_Check(arg) || PyByteArray_Check(arg))) {
s = arg;
Py_INCREF(s);
- if (PyObject_AsCharBuffer(s, &ptr, &size) < 0)
- return converterr("(AsCharBuffer failed)",
- arg, msgbuf, bufsize);
+ if (PyBytes_Check(arg)) {
+ size = PyBytes_GET_SIZE(s);
+ ptr = PyBytes_AS_STRING(s);
+ }
+ else {
+ size = PyByteArray_GET_SIZE(s);
+ ptr = PyByteArray_AS_STRING(s);
+ }
}
else if (PyUnicode_Check(arg)) {
/* Encode object; use default error handling */
@@ -1300,7 +1353,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
}
static Py_ssize_t
-convertbuffer(PyObject *arg, void **p, const char **errmsg)
+convertbuffer(PyObject *arg, const void **p, const char **errmsg)
{
PyBufferProcs *pb = Py_TYPE(arg)->tp_as_buffer;
Py_ssize_t count;
@@ -1448,14 +1501,6 @@ _PyArg_ParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords,
int retval;
va_list va;
- if ((args == NULL || !PyTuple_Check(args)) ||
- (keywords != NULL && !PyDict_Check(keywords)) ||
- parser == NULL)
- {
- PyErr_BadInternalCall();
- return 0;
- }
-
va_start(va, parser);
retval = vgetargskeywordsfast(args, keywords, parser, &va, 0);
va_end(va);
@@ -1469,14 +1514,6 @@ _PyArg_ParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject *keywords,
int retval;
va_list va;
- if ((args == NULL || !PyTuple_Check(args)) ||
- (keywords != NULL && !PyDict_Check(keywords)) ||
- parser == NULL)
- {
- PyErr_BadInternalCall();
- return 0;
- }
-
va_start(va, parser);
retval = vgetargskeywordsfast(args, keywords, parser, &va, FLAG_SIZE_T);
va_end(va);
@@ -1484,19 +1521,12 @@ _PyArg_ParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject *keywords,
}
int
-_PyArg_ParseStack(PyObject **args, Py_ssize_t nargs, PyObject *kwnames,
+_PyArg_ParseStackAndKeywords(PyObject **args, Py_ssize_t nargs, PyObject *kwnames,
struct _PyArg_Parser *parser, ...)
{
int retval;
va_list va;
- if ((kwnames != NULL && !PyTuple_Check(kwnames)) ||
- parser == NULL)
- {
- PyErr_BadInternalCall();
- return 0;
- }
-
va_start(va, parser);
retval = vgetargskeywordsfast_impl(args, nargs, NULL, kwnames, parser, &va, 0);
va_end(va);
@@ -1504,19 +1534,12 @@ _PyArg_ParseStack(PyObject **args, Py_ssize_t nargs, PyObject *kwnames,
}
int
-_PyArg_ParseStack_SizeT(PyObject **args, Py_ssize_t nargs, PyObject *kwnames,
+_PyArg_ParseStackAndKeywords_SizeT(PyObject **args, Py_ssize_t nargs, PyObject *kwnames,
struct _PyArg_Parser *parser, ...)
{
int retval;
va_list va;
- if ((kwnames != NULL && !PyTuple_Check(kwnames)) ||
- parser == NULL)
- {
- PyErr_BadInternalCall();
- return 0;
- }
-
va_start(va, parser);
retval = vgetargskeywordsfast_impl(args, nargs, NULL, kwnames, parser, &va, FLAG_SIZE_T);
va_end(va);
@@ -1531,14 +1554,6 @@ _PyArg_VaParseTupleAndKeywordsFast(PyObject *args, PyObject *keywords,
int retval;
va_list lva;
- if ((args == NULL || !PyTuple_Check(args)) ||
- (keywords != NULL && !PyDict_Check(keywords)) ||
- parser == NULL)
- {
- PyErr_BadInternalCall();
- return 0;
- }
-
va_copy(lva, va);
retval = vgetargskeywordsfast(args, keywords, parser, &lva, 0);
@@ -1553,14 +1568,6 @@ _PyArg_VaParseTupleAndKeywordsFast_SizeT(PyObject *args, PyObject *keywords,
int retval;
va_list lva;
- if ((args == NULL || !PyTuple_Check(args)) ||
- (keywords != NULL && !PyDict_Check(keywords)) ||
- parser == NULL)
- {
- PyErr_BadInternalCall();
- return 0;
- }
-
va_copy(lva, va);
retval = vgetargskeywordsfast(args, keywords, parser, &lva, FLAG_SIZE_T);
@@ -1586,17 +1593,17 @@ PyArg_ValidateKeywordArguments(PyObject *kwargs)
#define IS_END_OF_FORMAT(c) (c == '\0' || c == ';' || c == ':')
static int
-vgetargskeywords(PyObject *args, PyObject *keywords, const char *format,
+vgetargskeywords(PyObject *args, PyObject *kwargs, const char *format,
char **kwlist, va_list *p_va, int flags)
{
char msgbuf[512];
int levels[32];
- const char *fname, *msg, *custom_msg, *keyword;
+ const char *fname, *msg, *custom_msg;
int min = INT_MAX;
int max = INT_MAX;
int i, pos, len;
int skip = 0;
- Py_ssize_t nargs, nkeywords;
+ Py_ssize_t nargs, nkwargs;
PyObject *current_arg;
freelistentry_t static_entries[STATIC_FREELIST_ENTRIES];
freelist_t freelist;
@@ -1606,7 +1613,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, const char *format,
freelist.entries_malloced = 0;
assert(args != NULL && PyTuple_Check(args));
- assert(keywords == NULL || PyDict_Check(keywords));
+ assert(kwargs == NULL || PyDict_Check(kwargs));
assert(format != NULL);
assert(kwlist != NULL);
assert(p_va != NULL);
@@ -1645,21 +1652,20 @@ vgetargskeywords(PyObject *args, PyObject *keywords, const char *format,
}
nargs = PyTuple_GET_SIZE(args);
- nkeywords = (keywords == NULL) ? 0 : PyDict_Size(keywords);
- if (nargs + nkeywords > len) {
+ nkwargs = (kwargs == NULL) ? 0 : PyDict_GET_SIZE(kwargs);
+ if (nargs + nkwargs > len) {
PyErr_Format(PyExc_TypeError,
"%s%s takes at most %d argument%s (%zd given)",
(fname == NULL) ? "function" : fname,
(fname == NULL) ? "" : "()",
len,
(len == 1) ? "" : "s",
- nargs + nkeywords);
+ nargs + nkwargs);
return cleanreturn(0, &freelist);
}
/* convert tuple args and keyword args in same loop, using kwlist to drive process */
for (i = 0; i < len; i++) {
- keyword = kwlist[i];
if (*format == '|') {
if (min != INT_MAX) {
PyErr_SetString(PyExc_SystemError,
@@ -1713,26 +1719,17 @@ vgetargskeywords(PyObject *args, PyObject *keywords, const char *format,
return cleanreturn(0, &freelist);
}
if (!skip) {
- current_arg = NULL;
- if (nkeywords && i >= pos) {
- current_arg = PyDict_GetItemString(keywords, keyword);
- if (!current_arg && PyErr_Occurred()) {
- return cleanreturn(0, &freelist);
- }
+ if (i < nargs) {
+ current_arg = PyTuple_GET_ITEM(args, i);
}
- if (current_arg) {
- --nkeywords;
- if (i < nargs) {
- /* arg present in tuple and in dict */
- PyErr_Format(PyExc_TypeError,
- "Argument given by name ('%s') "
- "and position (%d)",
- keyword, i+1);
- return cleanreturn(0, &freelist);
- }
+ else if (nkwargs && i >= pos) {
+ current_arg = PyDict_GetItemString(kwargs, kwlist[i]);
+ if (current_arg)
+ --nkwargs;
+ }
+ else {
+ current_arg = NULL;
}
- else if (i < nargs)
- current_arg = PyTuple_GET_ITEM(args, i);
if (current_arg) {
msg = convertitem(current_arg, &format, p_va, flags,
@@ -1756,8 +1753,8 @@ vgetargskeywords(PyObject *args, PyObject *keywords, const char *format,
}
else {
PyErr_Format(PyExc_TypeError, "Required argument "
- "'%s' (pos %d) not found",
- keyword, i+1);
+ "'%s' (pos %d) not found",
+ kwlist[i], i+1);
return cleanreturn(0, &freelist);
}
}
@@ -1765,7 +1762,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, const char *format,
* fulfilled and no keyword args left, with no further
* validation. XXX Maybe skip this in debug build ?
*/
- if (!nkeywords && !skip) {
+ if (!nkwargs && !skip) {
return cleanreturn(1, &freelist);
}
}
@@ -1796,19 +1793,32 @@ vgetargskeywords(PyObject *args, PyObject *keywords, const char *format,
return cleanreturn(0, &freelist);
}
- /* make sure there are no extraneous keyword arguments */
- if (nkeywords > 0) {
- PyObject *key, *value;
- Py_ssize_t pos = 0;
- while (PyDict_Next(keywords, &pos, &key, &value)) {
+ if (nkwargs > 0) {
+ PyObject *key;
+ Py_ssize_t j;
+ /* make sure there are no arguments given by name and position */
+ for (i = pos; i < nargs; i++) {
+ current_arg = PyDict_GetItemString(kwargs, kwlist[i]);
+ if (current_arg) {
+ /* arg present in tuple and in dict */
+ PyErr_Format(PyExc_TypeError,
+ "Argument given by name ('%s') "
+ "and position (%d)",
+ kwlist[i], i+1);
+ return cleanreturn(0, &freelist);
+ }
+ }
+ /* make sure there are no extraneous keyword arguments */
+ j = 0;
+ while (PyDict_Next(kwargs, &j, &key, NULL)) {
int match = 0;
if (!PyUnicode_Check(key)) {
PyErr_SetString(PyExc_TypeError,
"keywords must be strings");
return cleanreturn(0, &freelist);
}
- for (i = 0; i < len; i++) {
- if (*kwlist[i] && _PyUnicode_EqualToASCIIString(key, kwlist[i])) {
+ for (i = pos; i < len; i++) {
+ if (_PyUnicode_EqualToASCIIString(key, kwlist[i])) {
match = 1;
break;
}
@@ -1956,10 +1966,13 @@ parser_clear(struct _PyArg_Parser *parser)
}
static PyObject*
-find_keyword(PyObject *kwnames, PyObject **kwstack, PyObject *key)
+find_keyword(PyObject *kwargs, PyObject *kwnames, PyObject **kwstack, PyObject *key)
{
Py_ssize_t i, nkwargs;
+ if (kwargs != NULL) {
+ return PyDict_GetItem(kwargs, key);
+ }
nkwargs = PyTuple_GET_SIZE(kwnames);
for (i=0; i < nkwargs; i++) {
PyObject *kwname = PyTuple_GET_ITEM(kwnames, i);
@@ -1971,7 +1984,7 @@ find_keyword(PyObject *kwnames, PyObject **kwstack, PyObject *key)
}
if (!PyUnicode_Check(kwname)) {
/* ignore non-string keyword keys:
- an error will be raised above */
+ an error will be raised below */
continue;
}
if (_PyUnicode_EQ(kwname, key)) {
@@ -1983,7 +1996,7 @@ find_keyword(PyObject *kwnames, PyObject **kwstack, PyObject *key)
static int
vgetargskeywordsfast_impl(PyObject **args, Py_ssize_t nargs,
- PyObject *keywords, PyObject *kwnames,
+ PyObject *kwargs, PyObject *kwnames,
struct _PyArg_Parser *parser,
va_list *p_va, int flags)
{
@@ -1994,7 +2007,7 @@ vgetargskeywordsfast_impl(PyObject **args, Py_ssize_t nargs,
const char *msg;
PyObject *keyword;
int i, pos, len;
- Py_ssize_t nkeywords;
+ Py_ssize_t nkwargs;
PyObject *current_arg;
freelistentry_t static_entries[STATIC_FREELIST_ENTRIES];
freelist_t freelist;
@@ -2004,13 +2017,20 @@ vgetargskeywordsfast_impl(PyObject **args, Py_ssize_t nargs,
freelist.first_available = 0;
freelist.entries_malloced = 0;
- assert(keywords == NULL || PyDict_Check(keywords));
- assert(kwnames == NULL || PyTuple_Check(kwnames));
- assert((keywords != NULL || kwnames != NULL)
- || (keywords == NULL && kwnames == NULL));
- assert(parser != NULL);
+ assert(kwargs == NULL || PyDict_Check(kwargs));
+ assert(kwargs == NULL || kwnames == NULL);
assert(p_va != NULL);
+ if (parser == NULL) {
+ PyErr_BadInternalCall();
+ return 0;
+ }
+
+ if (kwnames != NULL && !PyTuple_Check(kwnames)) {
+ PyErr_BadInternalCall();
+ return 0;
+ }
+
if (!parser_init(parser)) {
return 0;
}
@@ -2028,24 +2048,24 @@ vgetargskeywordsfast_impl(PyObject **args, Py_ssize_t nargs,
freelist.entries_malloced = 1;
}
- if (keywords != NULL) {
- nkeywords = PyDict_Size(keywords);
+ if (kwargs != NULL) {
+ nkwargs = PyDict_GET_SIZE(kwargs);
}
else if (kwnames != NULL) {
- nkeywords = PyTuple_GET_SIZE(kwnames);
+ nkwargs = PyTuple_GET_SIZE(kwnames);
kwstack = args + nargs;
}
else {
- nkeywords = 0;
+ nkwargs = 0;
}
- if (nargs + nkeywords > len) {
+ if (nargs + nkwargs > len) {
PyErr_Format(PyExc_TypeError,
"%s%s takes at most %d argument%s (%zd given)",
(parser->fname == NULL) ? "function" : parser->fname,
(parser->fname == NULL) ? "" : "()",
len,
(len == 1) ? "" : "s",
- nargs + nkeywords);
+ nargs + nkwargs);
return cleanreturn(0, &freelist);
}
if (parser->max < nargs) {
@@ -2059,7 +2079,6 @@ vgetargskeywordsfast_impl(PyObject **args, Py_ssize_t nargs,
format = parser->format;
/* convert tuple args and keyword args in same loop, using kwtuple to drive process */
for (i = 0; i < len; i++) {
- keyword = (i >= pos) ? PyTuple_GET_ITEM(kwtuple, i - pos) : NULL;
if (*format == '|') {
format++;
}
@@ -2068,31 +2087,17 @@ vgetargskeywordsfast_impl(PyObject **args, Py_ssize_t nargs,
}
assert(!IS_END_OF_FORMAT(*format));
- current_arg = NULL;
- if (nkeywords && i >= pos) {
- if (keywords != NULL) {
- current_arg = PyDict_GetItem(keywords, keyword);
- if (!current_arg && PyErr_Occurred()) {
- return cleanreturn(0, &freelist);
- }
- }
- else {
- current_arg = find_keyword(kwnames, kwstack, keyword);
- }
+ if (i < nargs) {
+ current_arg = args[i];
}
- if (current_arg) {
- --nkeywords;
- if (i < nargs) {
- /* arg present in tuple and in dict */
- PyErr_Format(PyExc_TypeError,
- "Argument given by name ('%U') "
- "and position (%d)",
- keyword, i+1);
- return cleanreturn(0, &freelist);
- }
+ else if (nkwargs && i >= pos) {
+ keyword = PyTuple_GET_ITEM(kwtuple, i - pos);
+ current_arg = find_keyword(kwargs, kwnames, kwstack, keyword);
+ if (current_arg)
+ --nkwargs;
}
- else if (i < nargs) {
- current_arg = args[i];
+ else {
+ current_arg = NULL;
}
if (current_arg) {
@@ -2108,13 +2113,15 @@ vgetargskeywordsfast_impl(PyObject **args, Py_ssize_t nargs,
if (i < parser->min) {
/* Less arguments than required */
if (i < pos) {
+ Py_ssize_t min = Py_MIN(pos, parser->min);
PyErr_Format(PyExc_TypeError,
"Function takes %s %d positional arguments"
" (%d given)",
- (Py_MIN(pos, parser->min) < parser->max) ? "at least" : "exactly",
- Py_MIN(pos, parser->min), nargs);
+ min < parser->max ? "at least" : "exactly",
+ min, nargs);
}
else {
+ keyword = PyTuple_GET_ITEM(kwtuple, i - pos);
PyErr_Format(PyExc_TypeError, "Required argument "
"'%U' (pos %d) not found",
keyword, i+1);
@@ -2125,7 +2132,7 @@ vgetargskeywordsfast_impl(PyObject **args, Py_ssize_t nargs,
* fulfilled and no keyword args left, with no further
* validation. XXX Maybe skip this in debug build ?
*/
- if (!nkeywords) {
+ if (!nkwargs) {
return cleanreturn(1, &freelist);
}
@@ -2137,54 +2144,50 @@ vgetargskeywordsfast_impl(PyObject **args, Py_ssize_t nargs,
assert(IS_END_OF_FORMAT(*format) || (*format == '|') || (*format == '$'));
- /* make sure there are no extraneous keyword arguments */
- if (nkeywords > 0) {
- if (keywords != NULL) {
- PyObject *key, *value;
- Py_ssize_t pos = 0;
- while (PyDict_Next(keywords, &pos, &key, &value)) {
- int match;
- if (!PyUnicode_Check(key)) {
- PyErr_SetString(PyExc_TypeError,
- "keywords must be strings");
- return cleanreturn(0, &freelist);
- }
- match = PySequence_Contains(kwtuple, key);
- if (match <= 0) {
- if (!match) {
- PyErr_Format(PyExc_TypeError,
- "'%U' is an invalid keyword "
- "argument for this function",
- key);
- }
- return cleanreturn(0, &freelist);
- }
+ if (nkwargs > 0) {
+ Py_ssize_t j;
+ /* make sure there are no arguments given by name and position */
+ for (i = pos; i < nargs; i++) {
+ keyword = PyTuple_GET_ITEM(kwtuple, i - pos);
+ current_arg = find_keyword(kwargs, kwnames, kwstack, keyword);
+ if (current_arg) {
+ /* arg present in tuple and in dict */
+ PyErr_Format(PyExc_TypeError,
+ "Argument given by name ('%U') "
+ "and position (%d)",
+ keyword, i+1);
+ return cleanreturn(0, &freelist);
}
}
- else {
- Py_ssize_t j, nkwargs;
-
- nkwargs = PyTuple_GET_SIZE(kwnames);
- for (j=0; j < nkwargs; j++) {
- PyObject *key = PyTuple_GET_ITEM(kwnames, j);
- int match;
-
- if (!PyUnicode_Check(key)) {
- PyErr_SetString(PyExc_TypeError,
- "keywords must be strings");
- return cleanreturn(0, &freelist);
- }
+ /* make sure there are no extraneous keyword arguments */
+ j = 0;
+ while (1) {
+ int match;
+ if (kwargs != NULL) {
+ if (!PyDict_Next(kwargs, &j, &keyword, NULL))
+ break;
+ }
+ else {
+ if (j >= PyTuple_GET_SIZE(kwnames))
+ break;
+ keyword = PyTuple_GET_ITEM(kwnames, j);
+ j++;
+ }
- match = PySequence_Contains(kwtuple, key);
- if (match <= 0) {
- if (!match) {
- PyErr_Format(PyExc_TypeError,
- "'%U' is an invalid keyword "
- "argument for this function",
- key);
- }
- return cleanreturn(0, &freelist);
+ if (!PyUnicode_Check(keyword)) {
+ PyErr_SetString(PyExc_TypeError,
+ "keywords must be strings");
+ return cleanreturn(0, &freelist);
+ }
+ match = PySequence_Contains(kwtuple, keyword);
+ if (match <= 0) {
+ if (!match) {
+ PyErr_Format(PyExc_TypeError,
+ "'%U' is an invalid keyword "
+ "argument for this function",
+ keyword);
}
+ return cleanreturn(0, &freelist);
}
}
}
@@ -2199,7 +2202,13 @@ vgetargskeywordsfast(PyObject *args, PyObject *keywords,
PyObject **stack;
Py_ssize_t nargs;
- assert(args != NULL && PyTuple_Check(args));
+ if (args == NULL
+ || !PyTuple_Check(args)
+ || (keywords != NULL && !PyDict_Check(keywords)))
+ {
+ PyErr_BadInternalCall();
+ return 0;
+ }
stack = &PyTuple_GET_ITEM(args, 0);
nargs = PyTuple_GET_SIZE(args);
@@ -2342,63 +2351,98 @@ err:
}
-int
-PyArg_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, ...)
+static int
+unpack_stack(PyObject **args, Py_ssize_t nargs, const char *name,
+ Py_ssize_t min, Py_ssize_t max, va_list vargs)
{
- Py_ssize_t i, l;
+ Py_ssize_t i;
PyObject **o;
- va_list vargs;
assert(min >= 0);
assert(min <= max);
- if (!PyTuple_Check(args)) {
- PyErr_SetString(PyExc_SystemError,
- "PyArg_UnpackTuple() argument list is not a tuple");
- return 0;
- }
- l = PyTuple_GET_SIZE(args);
- if (l < min) {
+
+ if (nargs < min) {
if (name != NULL)
PyErr_Format(
PyExc_TypeError,
"%s expected %s%zd arguments, got %zd",
- name, (min == max ? "" : "at least "), min, l);
+ name, (min == max ? "" : "at least "), min, nargs);
else
PyErr_Format(
PyExc_TypeError,
"unpacked tuple should have %s%zd elements,"
" but has %zd",
- (min == max ? "" : "at least "), min, l);
+ (min == max ? "" : "at least "), min, nargs);
return 0;
}
- if (l == 0)
+
+ if (nargs == 0) {
return 1;
- if (l > max) {
+ }
+
+ if (nargs > max) {
if (name != NULL)
PyErr_Format(
PyExc_TypeError,
"%s expected %s%zd arguments, got %zd",
- name, (min == max ? "" : "at most "), max, l);
+ name, (min == max ? "" : "at most "), max, nargs);
else
PyErr_Format(
PyExc_TypeError,
"unpacked tuple should have %s%zd elements,"
" but has %zd",
- (min == max ? "" : "at most "), max, l);
+ (min == max ? "" : "at most "), max, nargs);
return 0;
}
+ for (i = 0; i < nargs; i++) {
+ o = va_arg(vargs, PyObject **);
+ *o = args[i];
+ }
+ return 1;
+}
+
+int
+PyArg_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, ...)
+{
+ PyObject **stack;
+ Py_ssize_t nargs;
+ int retval;
+ va_list vargs;
+
+ if (!PyTuple_Check(args)) {
+ PyErr_SetString(PyExc_SystemError,
+ "PyArg_UnpackTuple() argument list is not a tuple");
+ return 0;
+ }
+ stack = &PyTuple_GET_ITEM(args, 0);
+ nargs = PyTuple_GET_SIZE(args);
+
#ifdef HAVE_STDARG_PROTOTYPES
va_start(vargs, max);
#else
va_start(vargs);
#endif
- for (i = 0; i < l; i++) {
- o = va_arg(vargs, PyObject **);
- *o = PyTuple_GET_ITEM(args, i);
- }
+ retval = unpack_stack(stack, nargs, name, min, max, vargs);
va_end(vargs);
- return 1;
+ return retval;
+}
+
+int
+_PyArg_UnpackStack(PyObject **args, Py_ssize_t nargs, const char *name,
+ Py_ssize_t min, Py_ssize_t max, ...)
+{
+ int retval;
+ va_list vargs;
+
+#ifdef HAVE_STDARG_PROTOTYPES
+ va_start(vargs, max);
+#else
+ va_start(vargs);
+#endif
+ retval = unpack_stack(args, nargs, name, min, max, vargs);
+ va_end(vargs);
+ return retval;
}
@@ -2408,16 +2452,35 @@ PyArg_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t m
* not empty, returns 1 otherwise
*/
int
-_PyArg_NoKeywords(const char *funcname, PyObject *kw)
+_PyArg_NoKeywords(const char *funcname, PyObject *kwargs)
{
- if (kw == NULL)
+ if (kwargs == NULL) {
return 1;
- if (!PyDict_CheckExact(kw)) {
+ }
+ if (!PyDict_CheckExact(kwargs)) {
PyErr_BadInternalCall();
return 0;
}
- if (PyDict_Size(kw) == 0)
+ if (PyDict_GET_SIZE(kwargs) == 0) {
return 1;
+ }
+
+ PyErr_Format(PyExc_TypeError, "%s does not take keyword arguments",
+ funcname);
+ return 0;
+}
+
+
+int
+_PyArg_NoStackKeywords(const char *funcname, PyObject *kwnames)
+{
+ if (kwnames == NULL) {
+ return 1;
+ }
+ assert(PyTuple_CheckExact(kwnames));
+ if (PyTuple_GET_SIZE(kwnames) == 0) {
+ return 1;
+ }
PyErr_Format(PyExc_TypeError, "%s does not take keyword arguments",
funcname);
diff --git a/Python/import.c b/Python/import.c
index cd865a5423..53c0f4defb 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -260,8 +260,7 @@ _imp_acquire_lock_impl(PyObject *module)
#ifdef WITH_THREAD
_PyImport_AcquireLock();
#endif
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/*[clinic input]
@@ -283,8 +282,7 @@ _imp_release_lock_impl(PyObject *module)
return NULL;
}
#endif
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
void
@@ -1035,7 +1033,7 @@ _imp_create_builtin(PyObject *module, PyObject *spec)
{
struct _inittab *p;
PyObject *name;
- char *namestr;
+ const char *namestr;
PyObject *mod;
name = PyObject_GetAttrString(spec, "name");
@@ -1705,7 +1703,7 @@ PyImport_ReloadModule(PyObject *m)
Py_INCREF(imp);
}
- reloaded_module = _PyObject_CallMethodId(imp, &PyId_reload, "O", m);
+ reloaded_module = _PyObject_CallMethodIdObjArgs(imp, &PyId_reload, m, NULL);
Py_DECREF(imp);
return reloaded_module;
}
@@ -1853,8 +1851,7 @@ _imp_init_frozen_impl(PyObject *module, PyObject *name)
if (ret < 0)
return NULL;
if (ret == 0) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
m = PyImport_AddModuleObject(name);
Py_XINCREF(m);
@@ -2045,11 +2042,6 @@ _imp_exec_builtin_impl(PyObject *module, PyObject *mod)
return exec_builtin_or_dynamic(mod);
}
-/*[clinic input]
-dump buffer
-[clinic start generated code]*/
-/*[clinic end generated code: output=da39a3ee5e6b4b0d input=524ce2e021e4eba6]*/
-
PyDoc_STRVAR(doc_imp,
"(Extremely) low-level import machinery bits as used by importlib and imp.");
diff --git a/Python/importdl.c b/Python/importdl.c
index f56fa94cc4..d8656b9433 100644
--- a/Python/importdl.c
+++ b/Python/importdl.c
@@ -94,7 +94,7 @@ _PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *fp)
#endif
PyObject *name_unicode = NULL, *name = NULL, *path = NULL, *m = NULL;
const char *name_buf, *hook_prefix;
- char *oldcontext;
+ const char *oldcontext;
dl_funcptr exportfunc;
PyModuleDef *def;
PyObject *(*p0)(void);
diff --git a/Python/importlib.h b/Python/importlib.h
index 195fbfd13b..0c1537e6b7 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
@@ -56,7 +56,7 @@ const unsigned char _Py_M__importlib[] = {
67,0,0,0,115,60,0,0,0,120,40,100,6,68,0,93,
32,125,2,116,0,124,1,124,2,131,2,114,6,116,1,124,
0,124,2,116,2,124,1,124,2,131,2,131,3,1,0,113,
- 6,87,0,124,0,106,3,106,4,124,1,106,3,131,1,1,
+ 6,87,0,124,0,106,3,160,4,124,1,106,3,161,1,1,
0,100,5,83,0,41,7,122,47,83,105,109,112,108,101,32,
115,117,98,115,116,105,116,117,116,101,32,102,111,114,32,102,
117,110,99,116,111,111,108,115,46,117,112,100,97,116,101,95,
@@ -105,8 +105,8 @@ const unsigned char _Py_M__importlib[] = {
32,32,116,97,107,101,32,108,111,99,107,115,32,66,32,116,
104,101,110,32,65,41,46,10,32,32,32,32,99,2,0,0,
0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,0,
- 0,115,48,0,0,0,116,0,106,1,131,0,124,0,95,2,
- 116,0,106,1,131,0,124,0,95,3,124,1,124,0,95,4,
+ 0,115,48,0,0,0,116,0,160,1,161,0,124,0,95,2,
+ 116,0,160,1,161,0,124,0,95,3,124,1,124,0,95,4,
100,0,124,0,95,5,100,1,124,0,95,6,100,1,124,0,
95,7,100,0,83,0,41,2,78,233,0,0,0,0,41,8,
218,7,95,116,104,114,101,97,100,90,13,97,108,108,111,99,
@@ -119,9 +119,9 @@ const unsigned char _Py_M__importlib[] = {
0,0,1,10,1,10,1,6,1,6,1,6,1,122,20,95,
77,111,100,117,108,101,76,111,99,107,46,95,95,105,110,105,
116,95,95,99,1,0,0,0,0,0,0,0,4,0,0,0,
- 2,0,0,0,67,0,0,0,115,64,0,0,0,116,0,106,
- 1,131,0,125,1,124,0,106,2,125,2,120,44,116,3,106,
- 4,124,2,131,1,125,3,124,3,100,0,107,8,114,38,100,
+ 3,0,0,0,67,0,0,0,115,64,0,0,0,116,0,160,
+ 1,161,0,125,1,124,0,106,2,125,2,120,44,116,3,160,
+ 4,124,2,161,1,125,3,124,3,100,0,107,8,114,38,100,
1,83,0,124,3,106,2,125,2,124,2,124,1,107,2,114,
16,100,2,83,0,113,16,87,0,100,0,83,0,41,3,78,
70,84,41,5,114,20,0,0,0,218,9,103,101,116,95,105,
@@ -134,16 +134,16 @@ const unsigned char _Py_M__importlib[] = {
1,8,1,4,1,6,1,8,1,122,24,95,77,111,100,117,
108,101,76,111,99,107,46,104,97,115,95,100,101,97,100,108,
111,99,107,99,1,0,0,0,0,0,0,0,2,0,0,0,
- 16,0,0,0,67,0,0,0,115,168,0,0,0,116,0,106,
- 1,131,0,125,1,124,0,116,2,124,1,60,0,122,138,120,
+ 16,0,0,0,67,0,0,0,115,168,0,0,0,116,0,160,
+ 1,161,0,125,1,124,0,116,2,124,1,60,0,122,138,120,
132,124,0,106,3,143,96,1,0,124,0,106,4,100,1,107,
2,115,48,124,0,106,5,124,1,107,2,114,72,124,1,124,
0,95,5,124,0,4,0,106,4,100,2,55,0,2,0,95,
- 4,100,3,83,0,124,0,106,6,131,0,114,92,116,7,100,
- 4,124,0,22,0,131,1,130,1,124,0,106,8,106,9,100,
- 5,131,1,114,118,124,0,4,0,106,10,100,2,55,0,2,
+ 4,100,3,83,0,124,0,160,6,161,0,114,92,116,7,100,
+ 4,124,0,22,0,131,1,130,1,124,0,106,8,160,9,100,
+ 5,161,1,114,118,124,0,4,0,106,10,100,2,55,0,2,
0,95,10,87,0,100,6,81,0,82,0,88,0,124,0,106,
- 8,106,9,131,0,1,0,124,0,106,8,106,11,131,0,1,
+ 8,160,9,161,0,1,0,124,0,106,8,160,11,161,0,1,
0,113,20,87,0,87,0,100,6,116,2,124,1,61,0,88,
0,100,6,83,0,41,7,122,185,10,32,32,32,32,32,32,
32,32,65,99,113,117,105,114,101,32,116,104,101,32,109,111,
@@ -171,13 +171,13 @@ const unsigned char _Py_M__importlib[] = {
1,24,2,10,1,18,2,122,19,95,77,111,100,117,108,101,
76,111,99,107,46,97,99,113,117,105,114,101,99,1,0,0,
0,0,0,0,0,2,0,0,0,10,0,0,0,67,0,0,
- 0,115,122,0,0,0,116,0,106,1,131,0,125,1,124,0,
+ 0,115,122,0,0,0,116,0,160,1,161,0,125,1,124,0,
106,2,143,98,1,0,124,0,106,3,124,1,107,3,114,34,
116,4,100,1,131,1,130,1,124,0,106,5,100,2,107,4,
115,48,116,6,130,1,124,0,4,0,106,5,100,3,56,0,
2,0,95,5,124,0,106,5,100,2,107,2,114,108,100,0,
124,0,95,3,124,0,106,7,114,108,124,0,4,0,106,7,
- 100,3,56,0,2,0,95,7,124,0,106,8,106,9,131,0,
+ 100,3,56,0,2,0,95,7,124,0,106,8,160,9,161,0,
1,0,87,0,100,0,81,0,82,0,88,0,100,0,83,0,
41,4,78,122,31,99,97,110,110,111,116,32,114,101,108,101,
97,115,101,32,117,110,45,97,99,113,117,105,114,101,100,32,
@@ -192,9 +192,9 @@ const unsigned char _Py_M__importlib[] = {
1,8,1,8,1,10,1,8,1,14,1,14,1,10,1,6,
1,6,1,14,1,122,19,95,77,111,100,117,108,101,76,111,
99,107,46,114,101,108,101,97,115,101,99,1,0,0,0,0,
- 0,0,0,1,0,0,0,4,0,0,0,67,0,0,0,115,
- 18,0,0,0,100,1,106,0,124,0,106,1,116,2,124,0,
- 131,1,131,2,83,0,41,2,78,122,23,95,77,111,100,117,
+ 0,0,0,1,0,0,0,5,0,0,0,67,0,0,0,115,
+ 18,0,0,0,100,1,160,0,124,0,106,1,116,2,124,0,
+ 131,1,161,2,83,0,41,2,78,122,23,95,77,111,100,117,
108,101,76,111,99,107,40,123,33,114,125,41,32,97,116,32,
123,125,41,3,218,6,102,111,114,109,97,116,114,15,0,0,
0,218,2,105,100,41,1,114,26,0,0,0,114,10,0,0,
@@ -247,9 +247,9 @@ const unsigned char _Py_M__importlib[] = {
0,114,35,0,0,0,131,0,0,0,115,6,0,0,0,0,
1,10,1,8,1,122,24,95,68,117,109,109,121,77,111,100,
117,108,101,76,111,99,107,46,114,101,108,101,97,115,101,99,
- 1,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,
- 67,0,0,0,115,18,0,0,0,100,1,106,0,124,0,106,
- 1,116,2,124,0,131,1,131,2,83,0,41,2,78,122,28,
+ 1,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,
+ 67,0,0,0,115,18,0,0,0,100,1,160,0,124,0,106,
+ 1,116,2,124,0,131,1,161,2,83,0,41,2,78,122,28,
95,68,117,109,109,121,77,111,100,117,108,101,76,111,99,107,
40,123,33,114,125,41,32,97,116,32,123,125,41,3,114,38,
0,0,0,114,15,0,0,0,114,39,0,0,0,41,1,114,
@@ -277,10 +277,10 @@ const unsigned char _Py_M__importlib[] = {
4,0,0,0,0,1,6,1,122,27,95,77,111,100,117,108,
101,76,111,99,107,77,97,110,97,103,101,114,46,95,95,105,
110,105,116,95,95,99,1,0,0,0,0,0,0,0,1,0,
- 0,0,10,0,0,0,67,0,0,0,115,42,0,0,0,122,
+ 0,0,11,0,0,0,67,0,0,0,115,42,0,0,0,122,
16,116,0,124,0,106,1,131,1,124,0,95,2,87,0,100,
- 0,116,3,106,4,131,0,1,0,88,0,124,0,106,2,106,
- 5,131,0,1,0,100,0,83,0,41,1,78,41,6,218,16,
+ 0,116,3,160,4,161,0,1,0,88,0,124,0,106,2,160,
+ 5,161,0,1,0,100,0,83,0,41,1,78,41,6,218,16,
95,103,101,116,95,109,111,100,117,108,101,95,108,111,99,107,
114,43,0,0,0,114,44,0,0,0,218,4,95,105,109,112,
218,12,114,101,108,101,97,115,101,95,108,111,99,107,114,34,
@@ -290,8 +290,8 @@ const unsigned char _Py_M__importlib[] = {
1,16,2,10,1,122,28,95,77,111,100,117,108,101,76,111,
99,107,77,97,110,97,103,101,114,46,95,95,101,110,116,101,
114,95,95,99,1,0,0,0,0,0,0,0,3,0,0,0,
- 1,0,0,0,79,0,0,0,115,14,0,0,0,124,0,106,
- 0,106,1,131,0,1,0,100,0,83,0,41,1,78,41,2,
+ 2,0,0,0,79,0,0,0,115,14,0,0,0,124,0,106,
+ 0,160,1,161,0,1,0,100,0,83,0,41,1,78,41,2,
114,44,0,0,0,114,35,0,0,0,41,3,114,26,0,0,
0,218,4,97,114,103,115,90,6,107,119,97,114,103,115,114,
10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,8,
@@ -303,14 +303,14 @@ const unsigned char _Py_M__importlib[] = {
0,114,10,0,0,0,114,10,0,0,0,114,10,0,0,0,
114,11,0,0,0,114,42,0,0,0,140,0,0,0,115,6,
0,0,0,8,2,8,4,8,7,114,42,0,0,0,99,1,
- 0,0,0,0,0,0,0,3,0,0,0,11,0,0,0,3,
+ 0,0,0,0,0,0,0,3,0,0,0,12,0,0,0,3,
0,0,0,115,106,0,0,0,100,1,125,1,121,14,116,0,
136,0,25,0,131,0,125,1,87,0,110,20,4,0,116,1,
107,10,114,38,1,0,1,0,1,0,89,0,110,2,88,0,
124,1,100,1,107,8,114,102,116,2,100,1,107,8,114,66,
116,3,136,0,131,1,125,1,110,8,116,4,136,0,131,1,
125,1,135,0,102,1,100,2,100,3,132,8,125,2,116,5,
- 106,6,124,1,124,2,131,2,116,0,136,0,60,0,124,1,
+ 160,6,124,1,124,2,161,2,116,0,136,0,60,0,124,1,
83,0,41,4,122,109,71,101,116,32,111,114,32,99,114,101,
97,116,101,32,116,104,101,32,109,111,100,117,108,101,32,108,
111,99,107,32,102,111,114,32,97,32,103,105,118,101,110,32,
@@ -335,10 +335,10 @@ const unsigned char _Py_M__importlib[] = {
4,1,2,1,14,1,14,1,6,1,8,1,8,1,10,2,
8,1,12,2,16,1,114,45,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,62,0,0,0,116,0,124,0,131,1,125,1,116,1,106,
- 2,131,0,1,0,121,12,124,1,106,3,131,0,1,0,87,
+ 115,62,0,0,0,116,0,124,0,131,1,125,1,116,1,160,
+ 2,161,0,1,0,121,12,124,1,160,3,161,0,1,0,87,
0,110,20,4,0,116,4,107,10,114,48,1,0,1,0,1,
- 0,89,0,110,10,88,0,124,1,106,5,131,0,1,0,100,
+ 0,89,0,110,10,88,0,124,1,160,5,161,0,1,0,100,
1,83,0,41,2,97,21,1,0,0,82,101,108,101,97,115,
101,32,116,104,101,32,103,108,111,98,97,108,32,105,109,112,
111,114,116,32,108,111,99,107,44,32,97,110,100,32,97,99,
@@ -393,8 +393,8 @@ const unsigned char _Py_M__importlib[] = {
58,0,0,0,114,33,0,0,0,41,1,218,9,118,101,114,
98,111,115,105,116,121,99,1,0,0,0,1,0,0,0,3,
0,0,0,5,0,0,0,71,0,0,0,115,54,0,0,0,
- 116,0,106,1,106,2,124,1,107,5,114,50,124,0,106,3,
- 100,6,131,1,115,30,100,3,124,0,23,0,125,0,116,4,
+ 116,0,106,1,106,2,124,1,107,5,114,50,124,0,160,3,
+ 100,6,161,1,115,30,100,3,124,0,23,0,125,0,116,4,
124,0,106,5,124,2,142,0,116,0,106,6,100,4,141,2,
1,0,100,5,83,0,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,
@@ -420,7 +420,7 @@ const unsigned char _Py_M__importlib[] = {
117,105,108,116,45,105,110,46,99,2,0,0,0,0,0,0,
0,2,0,0,0,4,0,0,0,19,0,0,0,115,38,0,
0,0,124,1,116,0,106,1,107,7,114,28,116,2,100,1,
- 106,3,124,1,131,1,124,1,100,2,141,2,130,1,136,0,
+ 160,3,124,1,161,1,124,1,100,2,141,2,130,1,136,0,
124,0,124,1,131,2,83,0,41,3,78,122,29,123,33,114,
125,32,105,115,32,110,111,116,32,97,32,98,117,105,108,116,
45,105,110,32,109,111,100,117,108,101,41,1,114,15,0,0,
@@ -448,8 +448,8 @@ const unsigned char _Py_M__importlib[] = {
97,109,101,100,32,109,111,100,117,108,101,32,105,115,32,102,
114,111,122,101,110,46,99,2,0,0,0,0,0,0,0,2,
0,0,0,4,0,0,0,19,0,0,0,115,38,0,0,0,
- 116,0,106,1,124,1,131,1,115,28,116,2,100,1,106,3,
- 124,1,131,1,124,1,100,2,141,2,130,1,136,0,124,0,
+ 116,0,160,1,124,1,161,1,115,28,116,2,100,1,160,3,
+ 124,1,161,1,124,1,100,2,141,2,130,1,136,0,124,0,
124,1,131,2,83,0,41,3,78,122,27,123,33,114,125,32,
105,115,32,110,111,116,32,97,32,102,114,111,122,101,110,32,
109,111,100,117,108,101,41,1,114,15,0,0,0,41,4,114,
@@ -489,10 +489,10 @@ const unsigned char _Py_M__importlib[] = {
114,11,0,0,0,218,17,95,108,111,97,100,95,109,111,100,
117,108,101,95,115,104,105,109,239,0,0,0,115,12,0,0,
0,0,6,10,1,10,1,10,1,10,1,10,2,114,84,0,
- 0,0,99,1,0,0,0,0,0,0,0,5,0,0,0,35,
+ 0,0,99,1,0,0,0,0,0,0,0,5,0,0,0,36,
0,0,0,67,0,0,0,115,216,0,0,0,116,0,124,0,
100,1,100,0,131,3,125,1,116,1,124,1,100,2,131,2,
- 114,54,121,10,124,1,106,2,124,0,131,1,83,0,4,0,
+ 114,54,121,10,124,1,160,2,124,0,161,1,83,0,4,0,
116,3,107,10,114,52,1,0,1,0,1,0,89,0,110,2,
88,0,121,10,124,0,106,4,125,2,87,0,110,20,4,0,
116,5,107,10,114,84,1,0,1,0,1,0,89,0,110,18,
@@ -501,9 +501,9 @@ const unsigned char _Py_M__importlib[] = {
116,5,107,10,114,136,1,0,1,0,1,0,100,3,125,3,
89,0,110,2,88,0,121,10,124,0,106,8,125,4,87,0,
110,50,4,0,116,5,107,10,114,198,1,0,1,0,1,0,
- 124,1,100,0,107,8,114,182,100,4,106,9,124,3,131,1,
- 83,0,100,5,106,9,124,3,124,1,131,2,83,0,89,0,
- 110,14,88,0,100,6,106,9,124,3,124,4,131,2,83,0,
+ 124,1,100,0,107,8,114,182,100,4,160,9,124,3,161,1,
+ 83,0,100,5,160,9,124,3,124,1,161,2,83,0,89,0,
+ 110,14,88,0,100,6,160,9,124,3,124,4,161,2,83,0,
100,0,83,0,41,7,78,218,10,95,95,108,111,97,100,101,
114,95,95,218,11,109,111,100,117,108,101,95,114,101,112,114,
250,1,63,122,13,60,109,111,100,117,108,101,32,123,33,114,
@@ -702,14 +702,14 @@ const unsigned char _Py_M__importlib[] = {
27,0,0,0,99,1,0,0,115,14,0,0,0,0,2,6,
1,6,1,6,1,6,1,14,3,6,1,122,19,77,111,100,
117,108,101,83,112,101,99,46,95,95,105,110,105,116,95,95,
- 99,1,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
- 0,67,0,0,0,115,102,0,0,0,100,1,106,0,124,0,
- 106,1,131,1,100,2,106,0,124,0,106,2,131,1,103,2,
- 125,1,124,0,106,3,100,0,107,9,114,52,124,1,106,4,
- 100,3,106,0,124,0,106,3,131,1,131,1,1,0,124,0,
- 106,5,100,0,107,9,114,80,124,1,106,4,100,4,106,0,
- 124,0,106,5,131,1,131,1,1,0,100,5,106,0,124,0,
- 106,6,106,7,100,6,106,8,124,1,131,1,131,2,83,0,
+ 99,1,0,0,0,0,0,0,0,2,0,0,0,6,0,0,
+ 0,67,0,0,0,115,102,0,0,0,100,1,160,0,124,0,
+ 106,1,161,1,100,2,160,0,124,0,106,2,161,1,103,2,
+ 125,1,124,0,106,3,100,0,107,9,114,52,124,1,160,4,
+ 100,3,160,0,124,0,106,3,161,1,161,1,1,0,124,0,
+ 106,5,100,0,107,9,114,80,124,1,160,4,100,4,160,0,
+ 124,0,106,5,161,1,161,1,1,0,100,5,160,0,124,0,
+ 106,6,106,7,100,6,160,8,124,1,161,1,161,2,83,0,
41,7,78,122,9,110,97,109,101,61,123,33,114,125,122,11,
108,111,97,100,101,114,61,123,33,114,125,122,11,111,114,105,
103,105,110,61,123,33,114,125,122,29,115,117,98,109,111,100,
@@ -741,11 +741,11 @@ const unsigned char _Py_M__importlib[] = {
0,0,0,0,1,6,1,2,1,12,1,12,1,12,1,10,
1,12,1,12,1,14,1,122,17,77,111,100,117,108,101,83,
112,101,99,46,95,95,101,113,95,95,99,1,0,0,0,0,
- 0,0,0,1,0,0,0,2,0,0,0,67,0,0,0,115,
+ 0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,115,
58,0,0,0,124,0,106,0,100,0,107,8,114,52,124,0,
106,1,100,0,107,9,114,52,124,0,106,2,114,52,116,3,
- 100,0,107,8,114,38,116,4,130,1,116,3,106,5,124,0,
- 106,1,131,1,124,0,95,0,124,0,106,0,83,0,41,1,
+ 100,0,107,8,114,38,116,4,130,1,116,3,160,5,124,0,
+ 106,1,161,1,124,0,95,0,124,0,106,0,83,0,41,1,
78,41,6,114,108,0,0,0,114,103,0,0,0,114,107,0,
0,0,218,19,95,98,111,111,116,115,116,114,97,112,95,101,
120,116,101,114,110,97,108,218,19,78,111,116,73,109,112,108,
@@ -761,9 +761,9 @@ const unsigned char _Py_M__importlib[] = {
0,114,112,0,0,0,114,10,0,0,0,114,10,0,0,0,
114,11,0,0,0,114,112,0,0,0,142,1,0,0,115,2,
0,0,0,0,2,99,1,0,0,0,0,0,0,0,1,0,
- 0,0,2,0,0,0,67,0,0,0,115,36,0,0,0,124,
- 0,106,0,100,1,107,8,114,26,124,0,106,1,106,2,100,
- 2,131,1,100,3,25,0,83,0,124,0,106,1,83,0,100,
+ 0,0,3,0,0,0,67,0,0,0,115,36,0,0,0,124,
+ 0,106,0,100,1,107,8,114,26,124,0,106,1,160,2,100,
+ 2,161,1,100,3,25,0,83,0,124,0,106,1,83,0,100,
1,83,0,41,4,122,32,84,104,101,32,110,97,109,101,32,
111,102,32,116,104,101,32,109,111,100,117,108,101,39,115,32,
112,97,114,101,110,116,46,78,218,1,46,114,19,0,0,0,
@@ -801,8 +801,8 @@ const unsigned char _Py_M__importlib[] = {
48,124,4,124,0,124,1,100,3,141,2,83,0,124,3,114,
56,103,0,110,2,100,2,125,5,124,4,124,0,124,1,124,
5,100,4,141,3,83,0,124,3,100,2,107,8,114,138,116,
- 0,124,1,100,5,131,2,114,134,121,14,124,1,106,4,124,
- 0,131,1,125,3,87,0,113,138,4,0,116,5,107,10,114,
+ 0,124,1,100,5,131,2,114,134,121,14,124,1,160,4,124,
+ 0,161,1,125,3,87,0,113,138,4,0,116,5,107,10,114,
130,1,0,1,0,1,0,100,2,125,3,89,0,113,138,88,
0,110,4,100,6,125,3,116,6,124,0,124,1,124,2,124,
3,100,7,141,4,83,0,41,8,122,53,82,101,116,117,114,
@@ -869,7 +869,7 @@ const unsigned char _Py_M__importlib[] = {
124,1,100,2,100,0,131,3,100,0,107,8,114,166,124,0,
106,4,125,3,124,3,100,0,107,8,114,134,124,0,106,5,
100,0,107,9,114,134,116,6,100,0,107,8,114,110,116,7,
- 130,1,116,6,106,8,125,4,124,4,106,9,124,4,131,1,
+ 130,1,116,6,106,8,125,4,124,4,160,9,124,4,161,1,
125,3,124,0,106,5,124,3,95,10,121,10,124,3,124,1,
95,11,87,0,110,20,4,0,116,3,107,10,114,164,1,0,
1,0,1,0,89,0,110,2,88,0,124,2,115,186,116,0,
@@ -915,7 +915,7 @@ const unsigned char _Py_M__importlib[] = {
6,1,114,133,0,0,0,99,1,0,0,0,0,0,0,0,
2,0,0,0,3,0,0,0,67,0,0,0,115,82,0,0,
0,100,1,125,1,116,0,124,0,106,1,100,2,131,2,114,
- 30,124,0,106,1,106,2,124,0,131,1,125,1,110,20,116,
+ 30,124,0,106,1,160,2,124,0,161,1,125,1,110,20,116,
0,124,0,106,1,100,3,131,2,114,50,116,3,100,4,131,
1,130,1,124,1,100,1,107,8,114,68,116,4,124,0,106,
5,131,1,125,1,116,6,124,0,124,1,131,2,1,0,124,
@@ -936,14 +936,14 @@ const unsigned char _Py_M__importlib[] = {
95,115,112,101,99,41,2,0,0,115,18,0,0,0,0,3,
4,1,12,3,14,1,12,1,8,2,8,1,10,1,10,1,
114,136,0,0,0,99,1,0,0,0,0,0,0,0,2,0,
- 0,0,3,0,0,0,67,0,0,0,115,106,0,0,0,124,
+ 0,0,4,0,0,0,67,0,0,0,115,106,0,0,0,124,
0,106,0,100,1,107,8,114,14,100,2,110,4,124,0,106,
0,125,1,124,0,106,1,100,1,107,8,114,66,124,0,106,
- 2,100,1,107,8,114,50,100,3,106,3,124,1,131,1,83,
- 0,100,4,106,3,124,1,124,0,106,2,131,2,83,0,110,
- 36,124,0,106,4,114,86,100,5,106,3,124,1,124,0,106,
- 1,131,2,83,0,100,6,106,3,124,0,106,0,124,0,106,
- 1,131,2,83,0,100,1,83,0,41,7,122,38,82,101,116,
+ 2,100,1,107,8,114,50,100,3,160,3,124,1,161,1,83,
+ 0,100,4,160,3,124,1,124,0,106,2,161,2,83,0,110,
+ 36,124,0,106,4,114,86,100,5,160,3,124,1,124,0,106,
+ 1,161,2,83,0,100,6,160,3,124,0,106,0,124,0,106,
+ 1,161,2,83,0,100,1,83,0,41,7,122,38,82,101,116,
117,114,110,32,116,104,101,32,114,101,112,114,32,116,111,32,
117,115,101,32,102,111,114,32,116,104,101,32,109,111,100,117,
108,101,46,78,114,87,0,0,0,122,13,60,109,111,100,117,
@@ -959,17 +959,17 @@ const unsigned char _Py_M__importlib[] = {
3,20,1,10,1,10,1,10,2,16,2,6,1,14,2,114,
91,0,0,0,99,2,0,0,0,0,0,0,0,4,0,0,
0,12,0,0,0,67,0,0,0,115,186,0,0,0,124,0,
- 106,0,125,2,116,1,106,2,131,0,1,0,116,3,124,2,
- 131,1,143,148,1,0,116,4,106,5,106,6,124,2,131,1,
- 124,1,107,9,114,62,100,1,106,7,124,2,131,1,125,3,
+ 106,0,125,2,116,1,160,2,161,0,1,0,116,3,124,2,
+ 131,1,143,148,1,0,116,4,106,5,160,6,124,2,161,1,
+ 124,1,107,9,114,62,100,1,160,7,124,2,161,1,125,3,
116,8,124,3,124,2,100,2,141,2,130,1,124,0,106,9,
100,3,107,8,114,114,124,0,106,10,100,3,107,8,114,96,
116,8,100,4,124,0,106,0,100,2,141,2,130,1,116,11,
124,0,124,1,100,5,100,6,141,3,1,0,124,1,83,0,
116,11,124,0,124,1,100,5,100,6,141,3,1,0,116,12,
- 124,0,106,9,100,7,131,2,115,154,124,0,106,9,106,13,
- 124,2,131,1,1,0,110,12,124,0,106,9,106,14,124,1,
- 131,1,1,0,87,0,100,3,81,0,82,0,88,0,116,4,
+ 124,0,106,9,100,7,131,2,115,154,124,0,106,9,160,13,
+ 124,2,161,1,1,0,110,12,124,0,106,9,160,14,124,1,
+ 161,1,1,0,87,0,100,3,81,0,82,0,88,0,116,4,
106,5,124,2,25,0,83,0,41,8,122,70,69,120,101,99,
117,116,101,32,116,104,101,32,115,112,101,99,39,115,32,115,
112,101,99,105,102,105,101,100,32,109,111,100,117,108,101,32,
@@ -992,14 +992,14 @@ const unsigned char _Py_M__importlib[] = {
16,1,10,1,12,1,10,1,10,1,14,2,14,1,4,1,
14,1,12,4,14,2,22,1,114,80,0,0,0,99,1,0,
0,0,0,0,0,0,2,0,0,0,27,0,0,0,67,0,
- 0,0,115,206,0,0,0,124,0,106,0,106,1,124,0,106,
- 2,131,1,1,0,116,3,106,4,124,0,106,2,25,0,125,
+ 0,0,115,206,0,0,0,124,0,106,0,160,1,124,0,106,
+ 2,161,1,1,0,116,3,106,4,124,0,106,2,25,0,125,
1,116,5,124,1,100,1,100,0,131,3,100,0,107,8,114,
76,121,12,124,0,106,0,124,1,95,6,87,0,110,20,4,
0,116,7,107,10,114,74,1,0,1,0,1,0,89,0,110,
2,88,0,116,5,124,1,100,2,100,0,131,3,100,0,107,
8,114,154,121,40,124,1,106,8,124,1,95,9,116,10,124,
- 1,100,3,131,2,115,130,124,0,106,2,106,11,100,4,131,
+ 1,100,3,131,2,115,130,124,0,106,2,160,11,100,4,161,
1,100,5,25,0,124,1,95,9,87,0,110,20,4,0,116,
7,107,10,114,152,1,0,1,0,1,0,89,0,110,2,88,
0,116,5,124,1,100,6,100,0,131,3,100,0,107,8,114,
@@ -1025,7 +1025,7 @@ const unsigned char _Py_M__importlib[] = {
0,131,1,125,1,116,4,124,1,131,1,143,54,1,0,124,
0,106,0,100,0,107,8,114,84,124,0,106,5,100,0,107,
8,114,96,116,6,100,2,124,0,106,7,100,3,141,2,130,
- 1,110,12,124,0,106,0,106,8,124,1,131,1,1,0,87,
+ 1,110,12,124,0,106,0,160,8,124,1,161,1,1,0,87,
0,100,0,81,0,82,0,88,0,116,9,106,10,124,0,106,
7,25,0,83,0,41,4,78,114,135,0,0,0,122,14,109,
105,115,115,105,110,103,32,108,111,97,100,101,114,41,1,114,
@@ -1039,7 +1039,7 @@ const unsigned char _Py_M__importlib[] = {
0,0,2,10,2,12,1,8,2,8,1,10,1,10,1,10,
1,16,3,22,5,114,141,0,0,0,99,1,0,0,0,0,
0,0,0,1,0,0,0,9,0,0,0,67,0,0,0,115,
- 38,0,0,0,116,0,106,1,131,0,1,0,116,2,124,0,
+ 38,0,0,0,116,0,160,1,161,0,1,0,116,2,124,0,
106,3,131,1,143,10,1,0,116,4,124,0,131,1,83,0,
81,0,82,0,88,0,100,1,83,0,41,2,122,191,82,101,
116,117,114,110,32,97,32,110,101,119,32,109,111,100,117,108,
@@ -1079,9 +1079,9 @@ const unsigned char _Py_M__importlib[] = {
105,100,32,116,104,101,32,110,101,101,100,32,116,111,10,32,
32,32,32,105,110,115,116,97,110,116,105,97,116,101,32,116,
104,101,32,99,108,97,115,115,46,10,10,32,32,32,32,99,
- 1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,
- 67,0,0,0,115,12,0,0,0,100,1,106,0,124,0,106,
- 1,131,1,83,0,41,2,122,115,82,101,116,117,114,110,32,
+ 1,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,
+ 67,0,0,0,115,12,0,0,0,100,1,160,0,124,0,106,
+ 1,161,1,83,0,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,
@@ -1097,8 +1097,8 @@ const unsigned char _Py_M__importlib[] = {
110,73,109,112,111,114,116,101,114,46,109,111,100,117,108,101,
95,114,101,112,114,78,99,4,0,0,0,0,0,0,0,4,
0,0,0,5,0,0,0,67,0,0,0,115,44,0,0,0,
- 124,2,100,0,107,9,114,12,100,0,83,0,116,0,106,1,
- 124,1,131,1,114,36,116,2,124,1,124,0,100,1,100,2,
+ 124,2,100,0,107,9,114,12,100,0,83,0,116,0,160,1,
+ 124,1,161,1,114,36,116,2,124,1,124,0,100,1,100,2,
141,3,83,0,100,0,83,0,100,0,83,0,41,3,78,122,
8,98,117,105,108,116,45,105,110,41,1,114,103,0,0,0,
41,3,114,46,0,0,0,90,10,105,115,95,98,117,105,108,
@@ -1109,8 +1109,8 @@ const unsigned char _Py_M__importlib[] = {
115,10,0,0,0,0,2,8,1,4,1,10,1,14,2,122,
25,66,117,105,108,116,105,110,73,109,112,111,114,116,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,
- 30,0,0,0,124,0,106,0,124,1,124,2,131,2,125,3,
+ 0,0,0,4,0,0,0,4,0,0,0,67,0,0,0,115,
+ 30,0,0,0,124,0,160,0,124,1,124,2,161,2,125,3,
124,3,100,1,107,9,114,26,124,3,106,1,83,0,100,1,
83,0,41,2,122,175,70,105,110,100,32,116,104,101,32,98,
117,105,108,116,45,105,110,32,109,111,100,117,108,101,46,10,
@@ -1132,7 +1132,7 @@ const unsigned char _Py_M__importlib[] = {
101,114,46,102,105,110,100,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,46,0,0,0,124,1,106,0,116,1,106,2,
- 107,7,114,34,116,3,100,1,106,4,124,1,106,0,131,1,
+ 107,7,114,34,116,3,100,1,160,4,124,1,106,0,161,1,
124,1,106,0,100,2,141,2,130,1,116,5,116,6,106,7,
124,1,131,2,83,0,41,3,122,24,67,114,101,97,116,101,
32,97,32,98,117,105,108,116,45,105,110,32,109,111,100,117,
@@ -1221,8 +1221,8 @@ const unsigned char _Py_M__importlib[] = {
116,104,101,32,110,101,101,100,32,116,111,10,32,32,32,32,
105,110,115,116,97,110,116,105,97,116,101,32,116,104,101,32,
99,108,97,115,115,46,10,10,32,32,32,32,99,1,0,0,
- 0,0,0,0,0,1,0,0,0,2,0,0,0,67,0,0,
- 0,115,12,0,0,0,100,1,106,0,124,0,106,1,131,1,
+ 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
+ 0,115,12,0,0,0,100,1,160,0,124,0,106,1,161,1,
83,0,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,
@@ -1238,7 +1238,7 @@ const unsigned char _Py_M__importlib[] = {
7,122,26,70,114,111,122,101,110,73,109,112,111,114,116,101,
114,46,109,111,100,117,108,101,95,114,101,112,114,78,99,4,
0,0,0,0,0,0,0,4,0,0,0,5,0,0,0,67,
- 0,0,0,115,32,0,0,0,116,0,106,1,124,1,131,1,
+ 0,0,0,115,32,0,0,0,116,0,160,1,124,1,161,1,
114,24,116,2,124,1,124,0,100,1,100,2,141,3,83,0,
100,0,83,0,100,0,83,0,41,3,78,90,6,102,114,111,
122,101,110,41,1,114,103,0,0,0,41,3,114,46,0,0,
@@ -1248,8 +1248,8 @@ const unsigned char _Py_M__importlib[] = {
114,146,0,0,0,3,3,0,0,115,6,0,0,0,0,2,
10,1,14,2,122,24,70,114,111,122,101,110,73,109,112,111,
114,116,101,114,46,102,105,110,100,95,115,112,101,99,99,3,
- 0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,67,
- 0,0,0,115,18,0,0,0,116,0,106,1,124,1,131,1,
+ 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,
+ 0,0,0,115,18,0,0,0,116,0,160,1,124,1,161,1,
114,14,124,0,83,0,100,1,83,0,41,2,122,93,70,105,
110,100,32,97,32,102,114,111,122,101,110,32,109,111,100,117,
108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,105,
@@ -1274,8 +1274,8 @@ const unsigned char _Py_M__importlib[] = {
99,114,101,97,116,101,95,109,111,100,117,108,101,99,1,0,
0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,0,
0,0,115,64,0,0,0,124,0,106,0,106,1,125,1,116,
- 2,106,3,124,1,131,1,115,36,116,4,100,1,106,5,124,
- 1,131,1,124,1,100,2,141,2,130,1,116,6,116,2,106,
+ 2,160,3,124,1,161,1,115,36,116,4,100,1,160,5,124,
+ 1,161,1,124,1,100,2,141,2,130,1,116,6,116,2,106,
7,124,1,131,2,125,2,116,8,124,2,124,0,106,9,131,
2,1,0,100,0,83,0,41,3,78,122,27,123,33,114,125,
32,105,115,32,110,111,116,32,97,32,102,114,111,122,101,110,
@@ -1303,8 +1303,8 @@ const unsigned char _Py_M__importlib[] = {
0,114,138,0,0,0,32,3,0,0,115,2,0,0,0,0,
7,122,26,70,114,111,122,101,110,73,109,112,111,114,116,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,2,0,0,0,67,0,
- 0,0,115,10,0,0,0,116,0,106,1,124,1,131,1,83,
+ 0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,0,
+ 0,0,115,10,0,0,0,116,0,160,1,124,1,161,1,83,
0,41,1,122,45,82,101,116,117,114,110,32,116,104,101,32,
99,111,100,101,32,111,98,106,101,99,116,32,102,111,114,32,
116,104,101,32,102,114,111,122,101,110,32,109,111,100,117,108,
@@ -1324,8 +1324,8 @@ const unsigned char _Py_M__importlib[] = {
47,3,0,0,115,2,0,0,0,0,4,122,25,70,114,111,
122,101,110,73,109,112,111,114,116,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,2,0,0,0,67,0,0,0,115,10,0,0,0,
- 116,0,106,1,124,1,131,1,83,0,41,1,122,46,82,101,
+ 0,0,0,3,0,0,0,67,0,0,0,115,10,0,0,0,
+ 116,0,160,1,124,1,161,1,83,0,41,1,122,46,82,101,
116,117,114,110,32,84,114,117,101,32,105,102,32,116,104,101,
32,102,114,111,122,101,110,32,109,111,100,117,108,101,32,105,
115,32,97,32,112,97,99,107,97,103,101,46,41,2,114,46,
@@ -1352,8 +1352,8 @@ const unsigned char _Py_M__importlib[] = {
111,99,107,67,111,110,116,101,120,116,122,36,67,111,110,116,
101,120,116,32,109,97,110,97,103,101,114,32,102,111,114,32,
116,104,101,32,105,109,112,111,114,116,32,108,111,99,107,46,
- 99,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,
- 0,67,0,0,0,115,12,0,0,0,116,0,106,1,131,0,
+ 99,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,
+ 0,67,0,0,0,115,12,0,0,0,116,0,160,1,161,0,
1,0,100,1,83,0,41,2,122,24,65,99,113,117,105,114,
101,32,116,104,101,32,105,109,112,111,114,116,32,108,111,99,
107,46,78,41,2,114,46,0,0,0,114,137,0,0,0,41,
@@ -1362,8 +1362,8 @@ const unsigned char _Py_M__importlib[] = {
0,0,0,0,2,122,28,95,73,109,112,111,114,116,76,111,
99,107,67,111,110,116,101,120,116,46,95,95,101,110,116,101,
114,95,95,99,4,0,0,0,0,0,0,0,4,0,0,0,
- 1,0,0,0,67,0,0,0,115,12,0,0,0,116,0,106,
- 1,131,0,1,0,100,1,83,0,41,2,122,60,82,101,108,
+ 2,0,0,0,67,0,0,0,115,12,0,0,0,116,0,160,
+ 1,161,0,1,0,100,1,83,0,41,2,122,60,82,101,108,
101,97,115,101,32,116,104,101,32,105,109,112,111,114,116,32,
108,111,99,107,32,114,101,103,97,114,100,108,101,115,115,32,
111,102,32,97,110,121,32,114,97,105,115,101,100,32,101,120,
@@ -1380,11 +1380,11 @@ const unsigned char _Py_M__importlib[] = {
0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
0,0,114,157,0,0,0,62,3,0,0,115,6,0,0,0,
8,2,4,2,8,4,114,157,0,0,0,99,3,0,0,0,
- 0,0,0,0,5,0,0,0,4,0,0,0,67,0,0,0,
- 115,64,0,0,0,124,1,106,0,100,1,124,2,100,2,24,
- 0,131,2,125,3,116,1,124,3,131,1,124,2,107,0,114,
+ 0,0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,
+ 115,64,0,0,0,124,1,160,0,100,1,124,2,100,2,24,
+ 0,161,2,125,3,116,1,124,3,131,1,124,2,107,0,114,
36,116,2,100,3,131,1,130,1,124,3,100,4,25,0,125,
- 4,124,0,114,60,100,5,106,3,124,4,124,0,131,2,83,
+ 4,124,0,114,60,100,5,160,3,124,4,124,0,161,2,83,
0,124,4,83,0,41,6,122,50,82,101,115,111,108,118,101,
32,97,32,114,101,108,97,116,105,118,101,32,109,111,100,117,
108,101,32,110,97,109,101,32,116,111,32,97,110,32,97,98,
@@ -1401,9 +1401,9 @@ const unsigned char _Py_M__importlib[] = {
0,0,114,11,0,0,0,218,13,95,114,101,115,111,108,118,
101,95,110,97,109,101,75,3,0,0,115,10,0,0,0,0,
2,16,1,12,1,8,1,8,1,114,163,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,34,0,0,0,124,0,106,0,124,1,124,2,
- 131,2,125,3,124,3,100,0,107,8,114,24,100,0,83,0,
+ 0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,
+ 0,0,0,115,34,0,0,0,124,0,160,0,124,1,124,2,
+ 161,2,125,3,124,3,100,0,107,8,114,24,100,0,83,0,
116,1,124,1,124,3,131,2,83,0,41,1,78,41,2,114,
147,0,0,0,114,78,0,0,0,41,4,218,6,102,105,110,
100,101,114,114,15,0,0,0,114,144,0,0,0,114,93,0,
@@ -1414,7 +1414,7 @@ const unsigned char _Py_M__importlib[] = {
0,0,0,10,0,0,0,27,0,0,0,67,0,0,0,115,
242,0,0,0,116,0,106,1,125,3,124,3,100,1,107,8,
114,22,116,2,100,2,131,1,130,1,124,3,115,38,116,3,
- 106,4,100,3,116,5,131,2,1,0,124,0,116,0,106,6,
+ 160,4,100,3,116,5,161,2,1,0,124,0,116,0,106,6,
107,6,125,4,120,188,124,3,68,0,93,176,125,5,116,7,
131,0,143,72,1,0,121,10,124,5,106,8,125,6,87,0,
110,42,4,0,116,9,107,10,114,118,1,0,1,0,1,0,
@@ -1449,15 +1449,15 @@ const unsigned char _Py_M__importlib[] = {
10,1,8,1,2,1,10,1,14,1,12,1,8,1,8,2,
22,1,8,2,16,1,10,1,2,1,10,1,14,4,6,2,
8,1,4,2,6,2,8,2,114,170,0,0,0,99,3,0,
- 0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,
+ 0,0,0,0,0,0,4,0,0,0,5,0,0,0,67,0,
0,0,115,140,0,0,0,116,0,124,0,116,1,131,2,115,
- 28,116,2,100,1,106,3,116,4,124,0,131,1,131,1,131,
+ 28,116,2,100,1,160,3,116,4,124,0,131,1,161,1,131,
1,130,1,124,2,100,2,107,0,114,44,116,5,100,3,131,
1,130,1,124,2,100,2,107,4,114,114,116,0,124,1,116,
1,131,2,115,72,116,2,100,4,131,1,130,1,110,42,124,
1,115,86,116,6,100,5,131,1,130,1,110,28,124,1,116,
- 7,106,8,107,7,114,114,100,6,125,3,116,9,124,3,106,
- 3,124,1,131,1,131,1,130,1,124,0,12,0,114,136,124,
+ 7,106,8,107,7,114,114,100,6,125,3,116,9,124,3,160,
+ 3,124,1,161,1,131,1,130,1,124,0,12,0,114,136,124,
2,100,2,107,2,114,136,116,5,100,7,131,1,130,1,100,
8,83,0,41,9,122,28,86,101,114,105,102,121,32,97,114,
103,117,109,101,110,116,115,32,97,114,101,32,34,115,97,110,
@@ -1488,20 +1488,20 @@ const unsigned char _Py_M__importlib[] = {
1,10,2,10,1,4,2,14,1,14,1,114,175,0,0,0,
122,16,78,111,32,109,111,100,117,108,101,32,110,97,109,101,
100,32,122,4,123,33,114,125,99,2,0,0,0,0,0,0,
- 0,8,0,0,0,12,0,0,0,67,0,0,0,115,220,0,
- 0,0,100,0,125,2,124,0,106,0,100,1,131,1,100,2,
+ 0,8,0,0,0,13,0,0,0,67,0,0,0,115,220,0,
+ 0,0,100,0,125,2,124,0,160,0,100,1,161,1,100,2,
25,0,125,3,124,3,114,134,124,3,116,1,106,2,107,7,
114,42,116,3,124,1,124,3,131,2,1,0,124,0,116,1,
106,2,107,6,114,62,116,1,106,2,124,0,25,0,83,0,
116,1,106,2,124,3,25,0,125,4,121,10,124,4,106,4,
125,2,87,0,110,50,4,0,116,5,107,10,114,132,1,0,
- 1,0,1,0,116,6,100,3,23,0,106,7,124,0,124,3,
- 131,2,125,5,116,8,124,5,124,0,100,4,141,2,100,0,
+ 1,0,1,0,116,6,100,3,23,0,160,7,124,0,124,3,
+ 161,2,125,5,116,8,124,5,124,0,100,4,141,2,100,0,
130,2,89,0,110,2,88,0,116,9,124,0,124,2,131,2,
- 125,6,124,6,100,0,107,8,114,172,116,8,116,6,106,7,
- 124,0,131,1,124,0,100,4,141,2,130,1,110,8,116,10,
+ 125,6,124,6,100,0,107,8,114,172,116,8,116,6,160,7,
+ 124,0,161,1,124,0,100,4,141,2,130,1,110,8,116,10,
124,6,131,1,125,7,124,3,114,216,116,1,106,2,124,3,
- 25,0,125,4,116,11,124,4,124,0,106,0,100,1,131,1,
+ 25,0,125,4,116,11,124,4,124,0,160,0,100,1,161,1,
100,5,25,0,124,7,131,3,1,0,124,7,83,0,41,6,
78,114,117,0,0,0,114,19,0,0,0,122,23,59,32,123,
33,114,125,32,105,115,32,110,111,116,32,97,32,112,97,99,
@@ -1536,11 +1536,11 @@ const unsigned char _Py_M__importlib[] = {
0,0,0,0,0,5,0,0,0,4,0,0,0,67,0,0,
0,115,120,0,0,0,116,0,124,0,124,1,124,2,131,3,
1,0,124,2,100,1,107,4,114,32,116,1,124,0,124,1,
- 124,2,131,3,125,0,116,2,106,3,131,0,1,0,124,0,
+ 124,2,131,3,125,0,116,2,160,3,161,0,1,0,124,0,
116,4,106,5,107,7,114,60,116,6,124,0,116,7,131,2,
83,0,116,4,106,5,124,0,25,0,125,3,124,3,100,2,
- 107,8,114,108,116,2,106,8,131,0,1,0,100,3,106,9,
- 124,0,131,1,125,4,116,10,124,4,124,0,100,4,141,2,
+ 107,8,114,108,116,2,160,8,161,0,1,0,100,3,160,9,
+ 124,0,161,1,125,4,116,10,124,4,124,0,100,4,141,2,
130,1,116,11,124,0,131,1,1,0,124,3,83,0,41,5,
97,50,1,0,0,73,109,112,111,114,116,32,97,110,100,32,
114,101,116,117,114,110,32,116,104,101,32,109,111,100,117,108,
@@ -1578,10 +1578,10 @@ const unsigned char _Py_M__importlib[] = {
0,0,0,0,0,0,6,0,0,0,17,0,0,0,67,0,
0,0,115,164,0,0,0,116,0,124,0,100,1,131,2,114,
160,100,2,124,1,107,6,114,58,116,1,124,1,131,1,125,
- 1,124,1,106,2,100,2,131,1,1,0,116,0,124,0,100,
- 3,131,2,114,58,124,1,106,3,124,0,106,4,131,1,1,
+ 1,124,1,160,2,100,2,161,1,1,0,116,0,124,0,100,
+ 3,131,2,114,58,124,1,160,3,124,0,106,4,161,1,1,
0,120,100,124,1,68,0,93,92,125,3,116,0,124,0,124,
- 3,131,2,115,64,100,4,106,5,124,0,106,6,124,3,131,
+ 3,131,2,115,64,100,4,160,5,124,0,106,6,124,3,161,
2,125,4,121,14,116,7,124,2,124,4,131,2,1,0,87,
0,113,64,4,0,116,8,107,10,114,154,1,0,125,5,1,
0,122,20,124,5,106,9,124,4,107,2,114,136,119,64,130,
@@ -1616,15 +1616,15 @@ const unsigned char _Py_M__importlib[] = {
1,10,1,10,1,14,1,2,1,14,1,16,4,10,1,2,
1,24,1,114,189,0,0,0,99,1,0,0,0,0,0,0,
0,3,0,0,0,6,0,0,0,67,0,0,0,115,146,0,
- 0,0,124,0,106,0,100,1,131,1,125,1,124,0,106,0,
- 100,2,131,1,125,2,124,1,100,3,107,9,114,82,124,2,
+ 0,0,124,0,160,0,100,1,161,1,125,1,124,0,160,0,
+ 100,2,161,1,125,2,124,1,100,3,107,9,114,82,124,2,
100,3,107,9,114,78,124,1,124,2,106,1,107,3,114,78,
116,2,106,3,100,4,124,1,155,2,100,5,124,2,106,1,
155,2,100,6,157,5,116,4,100,7,100,8,141,3,1,0,
124,1,83,0,124,2,100,3,107,9,114,96,124,2,106,1,
83,0,116,2,106,3,100,9,116,4,100,7,100,8,141,3,
1,0,124,0,100,10,25,0,125,1,100,11,124,0,107,7,
- 114,142,124,1,106,5,100,12,131,1,100,13,25,0,125,1,
+ 114,142,124,1,160,5,100,12,161,1,100,13,25,0,125,1,
124,1,83,0,41,14,122,167,67,97,108,99,117,108,97,116,
101,32,119,104,97,116,32,95,95,112,97,99,107,97,103,101,
95,95,32,115,104,111,117,108,100,32,98,101,46,10,10,32,
@@ -1661,9 +1661,9 @@ const unsigned char _Py_M__importlib[] = {
131,1,125,5,110,36,124,1,100,2,107,9,114,30,124,1,
110,2,105,0,125,6,116,1,124,6,131,1,125,7,116,0,
124,0,124,7,124,4,131,3,125,5,124,3,115,150,124,4,
- 100,1,107,2,114,84,116,0,124,0,106,2,100,3,131,1,
+ 100,1,107,2,114,84,116,0,124,0,160,2,100,3,161,1,
100,1,25,0,131,1,83,0,124,0,115,92,124,5,83,0,
- 116,3,124,0,131,1,116,3,124,0,106,2,100,3,131,1,
+ 116,3,124,0,131,1,116,3,124,0,160,2,100,3,161,1,
100,1,25,0,131,1,24,0,125,8,116,4,106,5,124,5,
106,6,100,2,116,3,124,5,106,6,131,1,124,8,24,0,
133,2,25,0,25,0,83,0,110,12,116,7,124,5,124,3,
@@ -1710,8 +1710,8 @@ const unsigned char _Py_M__importlib[] = {
0,0,0,11,8,1,10,2,16,1,8,1,12,1,4,3,
8,1,18,1,4,1,4,4,26,3,32,2,114,196,0,0,
0,99,1,0,0,0,0,0,0,0,2,0,0,0,3,0,
- 0,0,67,0,0,0,115,38,0,0,0,116,0,106,1,124,
- 0,131,1,125,1,124,1,100,0,107,8,114,30,116,2,100,
+ 0,0,67,0,0,0,115,38,0,0,0,116,0,160,1,124,
+ 0,161,1,125,1,124,1,100,0,107,8,114,30,116,2,100,
1,124,0,23,0,131,1,130,1,116,3,124,1,131,1,83,
0,41,2,78,122,25,110,111,32,98,117,105,108,116,45,105,
110,32,109,111,100,117,108,101,32,110,97,109,101,100,32,41,
@@ -1723,10 +1723,10 @@ const unsigned char _Py_M__importlib[] = {
1,8,1,12,1,114,197,0,0,0,99,2,0,0,0,0,
0,0,0,12,0,0,0,12,0,0,0,67,0,0,0,115,
244,0,0,0,124,1,97,0,124,0,97,1,116,2,116,1,
- 131,1,125,2,120,86,116,1,106,3,106,4,131,0,68,0,
+ 131,1,125,2,120,86,116,1,106,3,160,4,161,0,68,0,
93,72,92,2,125,3,125,4,116,5,124,4,124,2,131,2,
114,28,124,3,116,1,106,6,107,6,114,62,116,7,125,5,
- 110,18,116,0,106,8,124,3,131,1,114,28,116,9,125,5,
+ 110,18,116,0,160,8,124,3,161,1,114,28,116,9,125,5,
110,2,113,28,116,10,124,4,124,5,131,2,125,6,116,11,
124,6,124,4,131,2,1,0,113,28,87,0,116,1,106,3,
116,12,25,0,125,7,120,54,100,5,68,0,93,46,125,8,
@@ -1774,12 +1774,12 @@ const unsigned char _Py_M__importlib[] = {
1,10,1,10,1,6,1,10,1,6,2,2,1,10,1,14,
3,10,1,10,1,10,1,10,2,10,1,16,3,2,1,12,
1,14,2,10,1,12,3,8,1,114,201,0,0,0,99,2,
- 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,
+ 0,0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,
0,0,0,115,66,0,0,0,116,0,124,0,124,1,131,2,
- 1,0,116,1,106,2,106,3,116,4,131,1,1,0,116,1,
- 106,2,106,3,116,5,131,1,1,0,100,1,100,2,108,6,
- 125,2,124,2,97,7,124,2,106,8,116,1,106,9,116,10,
- 25,0,131,1,1,0,100,2,83,0,41,3,122,50,73,110,
+ 1,0,116,1,106,2,160,3,116,4,161,1,1,0,116,1,
+ 106,2,160,3,116,5,161,1,1,0,100,1,100,2,108,6,
+ 125,2,124,2,97,7,124,2,160,8,116,1,106,9,116,10,
+ 25,0,161,1,1,0,100,2,83,0,41,3,122,50,73,110,
115,116,97,108,108,32,105,109,112,111,114,116,108,105,98,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,
diff --git a/Python/importlib_external.h b/Python/importlib_external.h
index 2f40978fb7..c1beb70d4b 100644
--- a/Python/importlib_external.h
+++ b/Python/importlib_external.h
@@ -8,9 +8,9 @@ const unsigned char _Py_M__importlib_external[] = {
100,13,132,0,90,8,100,14,100,15,132,0,90,9,100,16,
100,17,132,0,90,10,100,18,100,19,132,0,90,11,100,20,
100,21,132,0,90,12,100,93,100,23,100,24,132,1,90,13,
- 101,14,101,13,106,15,131,1,90,16,100,25,106,17,100,26,
- 100,27,131,2,100,28,23,0,90,18,101,19,106,20,101,18,
- 100,27,131,2,90,21,100,29,90,22,100,30,90,23,100,31,
+ 101,14,101,13,106,15,131,1,90,16,100,25,160,17,100,26,
+ 100,27,161,2,100,28,23,0,90,18,101,19,160,20,101,18,
+ 100,27,161,2,90,21,100,29,90,22,100,30,90,23,100,31,
103,1,90,24,100,32,103,1,90,25,101,25,4,0,90,26,
90,27,100,94,100,33,100,34,156,1,100,35,100,36,132,3,
90,28,100,37,100,38,132,0,90,29,100,39,100,40,132,0,
@@ -58,8 +58,8 @@ const unsigned char _Py_M__importlib_external[] = {
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,60,0,0,0,116,0,106,1,106,2,116,3,131,1,
- 114,48,116,0,106,1,106,2,116,4,131,1,114,30,100,1,
+ 0,115,60,0,0,0,116,0,106,1,160,2,116,3,161,1,
+ 114,48,116,0,106,1,160,2,116,4,161,1,114,30,100,1,
137,0,110,4,100,2,137,0,135,0,102,1,100,3,100,4,
132,8,125,0,110,8,100,5,100,4,132,0,125,0,124,0,
83,0,41,6,78,90,12,80,89,84,72,79,78,67,65,83,
@@ -97,9 +97,9 @@ const unsigned char _Py_M__importlib_external[] = {
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,12,1,12,1,6,
2,4,2,14,4,8,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,0,0,0,0,1,0,0,0,4,0,0,0,67,0,0,
0,115,20,0,0,0,116,0,124,0,131,1,100,1,64,0,
- 106,1,100,2,100,3,131,2,83,0,41,4,122,42,67,111,
+ 160,1,100,2,100,3,161,2,83,0,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,
@@ -108,9 +108,9 @@ const unsigned char _Py_M__importlib_external[] = {
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,12,0,0,0,116,0,106,1,124,0,100,1,
- 131,2,83,0,41,2,122,47,67,111,110,118,101,114,116,32,
+ 0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,67,
+ 0,0,0,115,12,0,0,0,116,0,160,1,124,0,100,1,
+ 161,2,83,0,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,
@@ -119,14 +119,14 @@ const unsigned char _Py_M__importlib_external[] = {
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,20,0,0,0,116,0,
- 106,1,100,1,100,2,132,0,124,0,68,0,131,1,131,1,
+ 0,4,0,0,0,71,0,0,0,115,20,0,0,0,116,0,
+ 160,1,100,1,100,2,132,0,124,0,68,0,131,1,161,1,
83,0,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,26,0,0,0,103,
- 0,124,0,93,18,125,1,124,1,114,4,124,1,106,0,116,
- 1,131,1,145,2,113,4,83,0,114,4,0,0,0,41,2,
+ 0,0,5,0,0,0,83,0,0,0,115,26,0,0,0,103,
+ 0,124,0,93,18,125,1,124,1,114,4,124,1,160,0,116,
+ 1,161,1,145,2,113,4,83,0,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,
@@ -141,7 +141,7 @@ const unsigned char _Py_M__importlib_external[] = {
2,10,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,96,0,
0,0,116,0,116,1,131,1,100,1,107,2,114,36,124,0,
- 106,2,116,3,131,1,92,3,125,1,125,2,125,3,124,1,
+ 160,2,116,3,161,1,92,3,125,1,125,2,125,3,124,1,
124,3,102,2,83,0,120,50,116,4,124,0,131,1,68,0,
93,38,125,4,124,4,116,1,107,6,114,46,124,0,106,5,
124,4,100,1,100,2,141,2,92,2,125,1,125,3,124,1,
@@ -158,8 +158,8 @@ const unsigned char _Py_M__importlib_external[] = {
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,12,1,16,1,
8,1,14,1,8,1,18,1,12,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,10,0,0,0,116,0,106,1,124,0,131,
+ 1,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,
+ 67,0,0,0,115,10,0,0,0,116,0,160,1,124,0,161,
1,83,0,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,
@@ -197,7 +197,7 @@ const unsigned char _Py_M__importlib_external[] = {
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,22,0,0,0,124,0,115,12,116,0,106,1,131,0,
+ 0,115,22,0,0,0,124,0,115,12,116,0,160,1,161,0,
125,0,116,2,124,0,100,1,131,2,83,0,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,
@@ -207,15 +207,15 @@ const unsigned char _Py_M__importlib_external[] = {
112,97,116,104,95,105,115,100,105,114,99,0,0,0,115,6,
0,0,0,0,2,4,1,8,1,114,48,0,0,0,233,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,162,0,0,0,100,1,106,
- 0,124,0,116,1,124,0,131,1,131,2,125,3,116,2,106,
+ 17,0,0,0,67,0,0,0,115,162,0,0,0,100,1,160,
+ 0,124,0,116,1,124,0,131,1,161,2,125,3,116,2,160,
3,124,3,116,2,106,4,116,2,106,5,66,0,116,2,106,
- 6,66,0,124,2,100,2,64,0,131,3,125,4,121,50,116,
- 7,106,8,124,4,100,3,131,2,143,16,125,5,124,5,106,
- 9,124,1,131,1,1,0,87,0,100,4,81,0,82,0,88,
- 0,116,2,106,10,124,3,124,0,131,2,1,0,87,0,110,
+ 6,66,0,124,2,100,2,64,0,161,3,125,4,121,50,116,
+ 7,160,8,124,4,100,3,161,2,143,16,125,5,124,5,160,
+ 9,124,1,161,1,1,0,87,0,100,4,81,0,82,0,88,
+ 0,116,2,160,10,124,3,124,0,161,2,1,0,87,0,110,
58,4,0,116,11,107,10,114,156,1,0,1,0,1,0,121,
- 14,116,2,106,12,124,3,131,1,1,0,87,0,110,20,4,
+ 14,116,2,160,12,124,3,161,1,1,0,87,0,110,20,4,
0,116,11,107,10,114,148,1,0,1,0,1,0,89,0,110,
2,88,0,130,0,89,0,110,2,88,0,100,4,83,0,41,
5,122,162,66,101,115,116,45,101,102,102,111,114,116,32,102,
@@ -242,26 +242,26 @@ const unsigned char _Py_M__importlib_external[] = {
101,95,97,116,111,109,105,99,106,0,0,0,115,26,0,0,
0,0,5,16,1,6,1,26,1,2,3,14,1,20,1,16,
1,14,1,2,1,14,1,14,1,6,1,114,58,0,0,0,
- 105,51,13,0,0,233,2,0,0,0,114,15,0,0,0,115,
+ 105,62,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,41,1,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,244,0,0,0,124,
- 1,100,1,107,9,114,52,116,0,106,1,100,2,116,2,131,
+ 1,100,1,107,9,114,52,116,0,160,1,100,2,116,2,161,
2,1,0,124,2,100,1,107,9,114,40,100,3,125,3,116,
3,124,3,131,1,130,1,124,1,114,48,100,4,110,2,100,
- 5,125,2,116,4,106,5,124,0,131,1,125,0,116,6,124,
- 0,131,1,92,2,125,4,125,5,124,5,106,7,100,6,131,
+ 5,125,2,116,4,160,5,124,0,161,1,125,0,116,6,124,
+ 0,131,1,92,2,125,4,125,5,124,5,160,7,100,6,161,
1,92,3,125,6,125,7,125,8,116,8,106,9,106,10,125,
9,124,9,100,1,107,8,114,114,116,11,100,7,131,1,130,
- 1,100,4,106,12,124,6,114,126,124,6,110,2,124,8,124,
- 7,124,9,103,3,131,1,125,10,124,2,100,1,107,8,114,
+ 1,100,4,160,12,124,6,114,126,124,6,110,2,124,8,124,
+ 7,124,9,103,3,161,1,125,10,124,2,100,1,107,8,114,
172,116,8,106,13,106,14,100,8,107,2,114,164,100,4,125,
2,110,8,116,8,106,13,106,14,125,2,116,15,124,2,131,
- 1,125,2,124,2,100,4,107,3,114,224,124,2,106,16,131,
- 0,115,210,116,17,100,9,106,18,124,2,131,1,131,1,130,
- 1,100,10,106,18,124,10,116,19,124,2,131,3,125,10,116,
+ 1,125,2,124,2,100,4,107,3,114,224,124,2,160,16,161,
+ 0,115,210,116,17,100,9,160,18,124,2,161,1,131,1,130,
+ 1,100,10,160,18,124,10,116,19,124,2,161,3,125,10,116,
20,124,4,116,21,124,10,116,22,100,8,25,0,23,0,131,
3,83,0,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,
@@ -346,25 +346,25 @@ const unsigned char _Py_M__importlib_external[] = {
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,7,1,0,0,115,48,0,0,0,0,18,8,
+ 117,114,99,101,8,1,0,0,115,48,0,0,0,0,18,8,
1,6,1,6,1,8,1,4,1,8,1,12,1,10,1,12,
1,16,1,8,1,8,1,8,1,24,1,8,1,12,1,6,
2,8,1,8,1,8,1,8,1,14,1,14,1,114,83,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,230,0,0,0,116,0,106,1,
106,2,100,1,107,8,114,20,116,3,100,2,131,1,130,1,
- 116,4,106,5,124,0,131,1,125,0,116,6,124,0,131,1,
+ 116,4,160,5,124,0,161,1,125,0,116,6,124,0,131,1,
92,2,125,1,125,2,116,6,124,1,131,1,92,2,125,1,
- 125,3,124,3,116,7,107,3,114,78,116,8,100,3,106,9,
- 116,7,124,0,131,2,131,1,130,1,124,2,106,10,100,4,
- 131,1,125,4,124,4,100,11,107,7,114,112,116,8,100,7,
- 106,9,124,2,131,1,131,1,130,1,110,86,124,4,100,6,
- 107,2,114,198,124,2,106,11,100,4,100,5,131,2,100,12,
- 25,0,125,5,124,5,106,12,116,13,131,1,115,160,116,8,
- 100,8,106,9,116,13,131,1,131,1,130,1,124,5,116,14,
- 116,13,131,1,100,1,133,2,25,0,125,6,124,6,106,15,
- 131,0,115,198,116,8,100,9,106,9,124,5,131,1,131,1,
- 130,1,124,2,106,16,100,4,131,1,100,10,25,0,125,7,
+ 125,3,124,3,116,7,107,3,114,78,116,8,100,3,160,9,
+ 116,7,124,0,161,2,131,1,130,1,124,2,160,10,100,4,
+ 161,1,125,4,124,4,100,11,107,7,114,112,116,8,100,7,
+ 160,9,124,2,161,1,131,1,130,1,110,86,124,4,100,6,
+ 107,2,114,198,124,2,160,11,100,4,100,5,161,2,100,12,
+ 25,0,125,5,124,5,160,12,116,13,161,1,115,160,116,8,
+ 100,8,160,9,116,13,161,1,131,1,130,1,124,5,116,14,
+ 116,13,131,1,100,1,133,2,25,0,125,6,124,6,160,15,
+ 161,0,115,198,116,8,100,9,160,9,124,5,161,1,131,1,
+ 130,1,124,2,160,16,100,4,161,1,100,10,25,0,125,7,
116,17,124,1,124,7,116,18,100,10,25,0,23,0,131,2,
83,0,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,
@@ -420,15 +420,15 @@ const unsigned char _Py_M__importlib_external[] = {
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,52,1,0,0,115,46,0,
+ 114,111,109,95,99,97,99,104,101,53,1,0,0,115,46,0,
0,0,0,9,12,1,8,1,10,1,12,1,12,1,8,1,
6,1,10,1,10,1,8,1,6,1,10,1,8,1,16,1,
10,1,6,1,8,1,16,1,8,1,6,1,8,1,14,1,
114,89,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,128,0,0,0,116,
0,124,0,131,1,100,1,107,2,114,16,100,2,83,0,124,
- 0,106,1,100,3,131,1,92,3,125,1,125,2,125,3,124,
- 1,12,0,115,58,124,3,106,2,131,0,100,7,100,8,133,
+ 0,160,1,100,3,161,1,92,3,125,1,125,2,125,3,124,
+ 1,12,0,115,58,124,3,160,2,161,0,100,7,100,8,133,
2,25,0,100,6,107,3,114,62,124,0,83,0,121,12,116,
3,124,0,131,1,125,4,87,0,110,36,4,0,116,4,116,
5,102,2,107,10,114,110,1,0,1,0,1,0,124,0,100,
@@ -456,20 +456,20 @@ const unsigned char _Py_M__importlib_external[] = {
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,86,1,0,0,115,20,0,0,0,0,7,12,1,4,1,
+ 101,87,1,0,0,115,20,0,0,0,0,7,12,1,4,1,
16,1,26,1,4,1,2,1,12,1,18,1,18,1,114,95,
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,72,0,0,0,124,0,106,
- 0,116,1,116,2,131,1,131,1,114,46,121,8,116,3,124,
+ 11,0,0,0,67,0,0,0,115,72,0,0,0,124,0,160,
+ 0,116,1,116,2,131,1,161,1,114,46,121,8,116,3,124,
0,131,1,83,0,4,0,116,4,107,10,114,42,1,0,1,
- 0,1,0,89,0,113,68,88,0,110,22,124,0,106,0,116,
- 1,116,5,131,1,131,1,114,64,124,0,83,0,100,0,83,
+ 0,1,0,89,0,113,68,88,0,110,22,124,0,160,0,116,
+ 1,116,5,131,1,161,1,114,64,124,0,83,0,100,0,83,
0,100,0,83,0,41,1,78,41,6,218,8,101,110,100,115,
119,105,116,104,218,5,116,117,112,108,101,114,88,0,0,0,
114,83,0,0,0,114,70,0,0,0,114,78,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,105,1,0,0,115,16,0,0,0,
+ 95,99,97,99,104,101,100,106,1,0,0,115,16,0,0,0,
0,1,14,1,2,1,8,1,14,1,8,1,14,1,4,2,
114,99,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,52,0,0,0,121,
@@ -483,7 +483,7 @@ const unsigned char _Py_M__importlib_external[] = {
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,117,1,0,0,
+ 218,10,95,99,97,108,99,95,109,111,100,101,118,1,0,0,
115,12,0,0,0,0,2,2,1,14,1,14,1,10,3,8,
1,114,101,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,68,0,0,0,
@@ -521,7 +521,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,103,115,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,137,1,0,0,115,12,0,0,0,0,1,8,
+ 112,112,101,114,138,1,0,0,115,12,0,0,0,0,1,8,
1,8,1,10,1,4,1,18,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,
@@ -529,8 +529,8 @@ const unsigned char _Py_M__importlib_external[] = {
7,0,0,0,83,0,0,0,115,60,0,0,0,120,40,100,
5,68,0,93,32,125,2,116,0,124,1,124,2,131,2,114,
6,116,1,124,0,124,2,116,2,124,1,124,2,131,2,131,
- 3,1,0,113,6,87,0,124,0,106,3,106,4,124,1,106,
- 3,131,1,1,0,100,0,83,0,41,6,78,218,10,95,95,
+ 3,1,0,113,6,87,0,124,0,106,3,160,4,124,1,106,
+ 3,161,1,1,0,100,0,83,0,41,6,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,4,114,108,0,0,0,
@@ -540,7 +540,7 @@ const unsigned char _Py_M__importlib_external[] = {
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,55,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,148,1,0,0,115,8,0,0,0,0,1,
+ 95,119,114,97,112,149,1,0,0,115,8,0,0,0,0,1,
10,1,10,1,22,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,1,78,41,3,218,10,95,98,111,111,116,115,116,
@@ -548,13 +548,13 @@ const unsigned char _Py_M__importlib_external[] = {
114,111,114,41,3,114,106,0,0,0,114,107,0,0,0,114,
117,0,0,0,114,4,0,0,0,41,1,114,106,0,0,0,
114,6,0,0,0,218,11,95,99,104,101,99,107,95,110,97,
- 109,101,129,1,0,0,115,14,0,0,0,0,8,14,7,2,
+ 109,101,130,1,0,0,115,14,0,0,0,0,8,14,7,2,
1,10,1,14,2,14,5,10,1,114,120,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,60,0,0,0,124,0,106,0,124,1,131,1,
+ 0,0,0,0,0,0,0,5,0,0,0,6,0,0,0,67,
+ 0,0,0,115,60,0,0,0,124,0,160,0,124,1,161,1,
92,2,125,2,125,3,124,2,100,1,107,8,114,56,116,1,
- 124,3,131,1,114,56,100,2,125,4,116,2,106,3,124,4,
- 106,4,124,3,100,3,25,0,131,1,116,5,131,2,1,0,
+ 124,3,131,1,114,56,100,2,125,4,116,2,160,3,124,4,
+ 160,4,124,3,100,3,25,0,161,1,116,5,161,2,1,0,
124,2,83,0,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,
@@ -576,7 +576,7 @@ const unsigned char _Py_M__importlib_external[] = {
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,157,1,0,0,115,10,0,0,0,0,10,14,1,
+ 104,105,109,158,1,0,0,115,10,0,0,0,0,10,14,1,
16,1,4,1,22,1,114,127,0,0,0,99,4,0,0,0,
0,0,0,0,11,0,0,0,22,0,0,0,67,0,0,0,
115,136,1,0,0,105,0,125,4,124,2,100,1,107,9,114,
@@ -584,25 +584,25 @@ const unsigned char _Py_M__importlib_external[] = {
3,100,1,107,9,114,42,124,3,124,4,100,4,60,0,124,
0,100,1,100,5,133,2,25,0,125,5,124,0,100,5,100,
6,133,2,25,0,125,6,124,0,100,6,100,7,133,2,25,
- 0,125,7,124,5,116,0,107,3,114,124,100,8,106,1,124,
- 2,124,5,131,2,125,8,116,2,106,3,100,9,124,8,131,
+ 0,125,7,124,5,116,0,107,3,114,124,100,8,160,1,124,
+ 2,124,5,161,2,125,8,116,2,160,3,100,9,124,8,161,
2,1,0,116,4,124,8,102,1,124,4,142,1,130,1,110,
- 86,116,5,124,6,131,1,100,5,107,3,114,168,100,10,106,
- 1,124,2,131,1,125,8,116,2,106,3,100,9,124,8,131,
+ 86,116,5,124,6,131,1,100,5,107,3,114,168,100,10,160,
+ 1,124,2,161,1,125,8,116,2,160,3,100,9,124,8,161,
2,1,0,116,6,124,8,131,1,130,1,110,42,116,5,124,
- 7,131,1,100,5,107,3,114,210,100,11,106,1,124,2,131,
- 1,125,8,116,2,106,3,100,9,124,8,131,2,1,0,116,
+ 7,131,1,100,5,107,3,114,210,100,11,160,1,124,2,161,
+ 1,125,8,116,2,160,3,100,9,124,8,161,2,1,0,116,
6,124,8,131,1,130,1,124,1,100,1,107,9,144,1,114,
124,121,16,116,7,124,1,100,12,25,0,131,1,125,9,87,
0,110,22,4,0,116,8,107,10,144,1,114,2,1,0,1,
0,1,0,89,0,110,50,88,0,116,9,124,6,131,1,124,
- 9,107,3,144,1,114,52,100,13,106,1,124,2,131,1,125,
- 8,116,2,106,3,100,9,124,8,131,2,1,0,116,4,124,
+ 9,107,3,144,1,114,52,100,13,160,1,124,2,161,1,125,
+ 8,116,2,160,3,100,9,124,8,161,2,1,0,116,4,124,
8,102,1,124,4,142,1,130,1,121,16,124,1,100,14,25,
0,100,15,64,0,125,10,87,0,110,22,4,0,116,8,107,
10,144,1,114,90,1,0,1,0,1,0,89,0,110,34,88,
0,116,9,124,7,131,1,124,10,107,3,144,1,114,124,116,
- 4,100,13,106,1,124,2,131,1,102,1,124,4,142,1,130,
+ 4,100,13,160,1,124,2,161,1,102,1,124,4,142,1,130,
1,124,0,100,7,100,1,133,2,25,0,83,0,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,
@@ -656,18 +656,18 @@ const unsigned char _Py_M__importlib_external[] = {
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,174,1,0,0,115,76,0,0,0,0,11,
+ 101,97,100,101,114,175,1,0,0,115,76,0,0,0,0,11,
4,1,8,1,10,3,4,1,8,1,8,1,12,1,12,1,
12,1,8,1,12,1,12,1,14,1,12,1,10,1,12,1,
10,1,12,1,10,1,12,1,8,1,10,1,2,1,16,1,
16,1,6,2,14,1,10,1,12,1,12,1,2,1,16,1,
16,1,6,2,14,1,12,1,6,1,114,139,0,0,0,99,
4,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,
- 67,0,0,0,115,80,0,0,0,116,0,106,1,124,0,131,
- 1,125,4,116,2,124,4,116,3,131,2,114,56,116,4,106,
- 5,100,1,124,2,131,2,1,0,124,3,100,2,107,9,114,
- 52,116,6,106,7,124,4,124,3,131,2,1,0,124,4,83,
- 0,116,8,100,3,106,9,124,2,131,1,124,1,124,2,100,
+ 67,0,0,0,115,80,0,0,0,116,0,160,1,124,0,161,
+ 1,125,4,116,2,124,4,116,3,131,2,114,56,116,4,160,
+ 5,100,1,124,2,161,2,1,0,124,3,100,2,107,9,114,
+ 52,116,6,160,7,124,4,124,3,161,2,1,0,124,4,83,
+ 0,116,8,100,3,160,9,124,2,161,1,124,1,124,2,100,
4,141,3,130,1,100,2,83,0,41,5,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,
@@ -685,14 +685,14 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,114,102,0,0,0,114,93,0,0,0,114,94,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,229,1,0,0,115,16,
+ 101,95,98,121,116,101,99,111,100,101,230,1,0,0,115,16,
0,0,0,0,2,10,1,10,1,12,1,8,1,12,1,4,
2,10,1,114,145,0,0,0,114,62,0,0,0,99,3,0,
- 0,0,0,0,0,0,4,0,0,0,3,0,0,0,67,0,
+ 0,0,0,0,0,0,4,0,0,0,5,0,0,0,67,0,
0,0,115,56,0,0,0,116,0,116,1,131,1,125,3,124,
- 3,106,2,116,3,124,1,131,1,131,1,1,0,124,3,106,
- 2,116,3,124,2,131,1,131,1,1,0,124,3,106,2,116,
- 4,106,5,124,0,131,1,131,1,1,0,124,3,83,0,41,
+ 3,160,2,116,3,124,1,131,1,161,1,1,0,124,3,160,
+ 2,116,3,124,2,131,1,161,1,1,0,124,3,160,2,116,
+ 4,160,5,124,0,161,1,161,1,1,0,124,3,83,0,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,
@@ -704,14 +704,14 @@ const unsigned char _Py_M__importlib_external[] = {
114,144,0,0,0,114,130,0,0,0,114,138,0,0,0,114,
56,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,241,1,0,0,115,10,0,0,0,0,
+ 116,101,99,111,100,101,242,1,0,0,115,10,0,0,0,0,
3,8,1,14,1,14,1,16,1,114,148,0,0,0,99,1,
- 0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,67,
+ 0,0,0,0,0,0,0,5,0,0,0,6,0,0,0,67,
0,0,0,115,62,0,0,0,100,1,100,2,108,0,125,1,
- 116,1,106,2,124,0,131,1,106,3,125,2,124,1,106,4,
- 124,2,131,1,125,3,116,1,106,5,100,2,100,3,131,2,
- 125,4,124,4,106,6,124,0,106,6,124,3,100,1,25,0,
- 131,1,131,1,83,0,41,4,122,121,68,101,99,111,100,101,
+ 116,1,160,2,124,0,161,1,106,3,125,2,124,1,160,4,
+ 124,2,161,1,125,3,116,1,160,5,100,2,100,3,161,2,
+ 125,4,124,4,160,6,124,0,160,6,124,3,100,1,25,0,
+ 161,1,161,1,83,0,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,
@@ -731,29 +731,29 @@ const unsigned char _Py_M__importlib_external[] = {
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,251,1,0,0,115,10,0,0,0,
+ 95,115,111,117,114,99,101,252,1,0,0,115,10,0,0,0,
0,5,8,1,12,1,10,1,12,1,114,153,0,0,0,41,
2,114,124,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,18,1,0,0,124,1,100,1,
107,8,114,60,100,2,125,1,116,0,124,2,100,3,131,2,
- 114,70,121,14,124,2,106,1,124,0,131,1,125,1,87,0,
+ 114,70,121,14,124,2,160,1,124,0,161,1,125,1,87,0,
113,70,4,0,116,2,107,10,114,56,1,0,1,0,1,0,
- 89,0,113,70,88,0,110,10,116,3,106,4,124,1,131,1,
+ 89,0,113,70,88,0,110,10,116,3,160,4,124,1,161,1,
125,1,116,5,106,6,124,0,124,2,124,1,100,4,141,3,
125,4,100,5,124,4,95,7,124,2,100,1,107,8,114,156,
120,54,116,8,131,0,68,0,93,40,92,2,125,5,125,6,
- 124,1,106,9,116,10,124,6,131,1,131,1,114,108,124,5,
+ 124,1,160,9,116,10,124,6,131,1,161,1,114,108,124,5,
124,0,124,1,131,2,125,2,124,2,124,4,95,11,80,0,
113,108,87,0,100,1,83,0,124,3,116,12,107,8,114,222,
- 116,0,124,2,100,6,131,2,114,228,121,14,124,2,106,13,
- 124,0,131,1,125,7,87,0,110,20,4,0,116,2,107,10,
+ 116,0,124,2,100,6,131,2,114,228,121,14,124,2,160,13,
+ 124,0,161,1,125,7,87,0,110,20,4,0,116,2,107,10,
114,208,1,0,1,0,1,0,89,0,113,228,88,0,124,7,
114,228,103,0,124,4,95,14,110,6,124,3,124,4,95,14,
124,4,106,14,103,0,107,2,144,1,114,14,124,1,144,1,
114,14,116,15,124,1,131,1,100,7,25,0,125,8,124,4,
- 106,14,106,16,124,8,131,1,1,0,124,4,83,0,41,8,
+ 106,14,160,16,124,8,161,1,1,0,124,4,83,0,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,
@@ -793,7 +793,7 @@ const unsigned char _Py_M__importlib_external[] = {
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,
- 12,2,0,0,115,62,0,0,0,0,12,8,4,4,1,10,
+ 13,2,0,0,115,62,0,0,0,0,12,8,4,4,1,10,
2,2,1,14,1,14,1,8,2,10,8,16,1,6,3,8,
1,16,1,14,1,10,1,6,1,6,2,4,3,8,2,10,
1,2,1,14,1,14,1,6,2,4,1,8,2,6,1,12,
@@ -819,27 +819,27 @@ const unsigned char _Py_M__importlib_external[] = {
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,50,0,0,0,121,14,116,0,106,1,
- 116,0,106,2,124,1,131,2,83,0,4,0,116,3,107,10,
- 114,44,1,0,1,0,1,0,116,0,106,1,116,0,106,4,
- 124,1,131,2,83,0,88,0,100,0,83,0,41,1,78,41,
+ 0,67,0,0,0,115,50,0,0,0,121,14,116,0,160,1,
+ 116,0,106,2,124,1,161,2,83,0,4,0,116,3,107,10,
+ 114,44,1,0,1,0,1,0,116,0,160,1,116,0,106,4,
+ 124,1,161,2,83,0,88,0,100,0,83,0,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,92,2,0,0,115,8,
+ 110,95,114,101,103,105,115,116,114,121,93,2,0,0,115,8,
0,0,0,0,2,2,1,14,1,14,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,
+ 121,99,2,0,0,0,0,0,0,0,6,0,0,0,17,0,
0,0,67,0,0,0,115,112,0,0,0,124,0,106,0,114,
14,124,0,106,1,125,2,110,6,124,0,106,2,125,2,124,
2,106,3,124,1,100,1,116,4,106,5,100,0,100,2,133,
- 2,25,0,22,0,100,3,141,2,125,3,121,38,124,0,106,
- 6,124,3,131,1,143,18,125,4,116,7,106,8,124,4,100,
- 4,131,2,125,5,87,0,100,0,81,0,82,0,88,0,87,
+ 2,25,0,22,0,100,3,141,2,125,3,121,38,124,0,160,
+ 6,124,3,161,1,143,18,125,4,116,7,160,8,124,4,100,
+ 4,161,2,125,5,87,0,100,0,81,0,82,0,88,0,87,
0,110,20,4,0,116,9,107,10,114,106,1,0,1,0,1,
0,100,0,83,0,88,0,124,5,83,0,41,5,78,122,5,
37,100,46,37,100,114,59,0,0,0,41,2,114,123,0,0,
@@ -855,18 +855,18 @@ const unsigned char _Py_M__importlib_external[] = {
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,99,2,0,0,115,22,0,0,0,
+ 101,103,105,115,116,114,121,100,2,0,0,115,22,0,0,0,
0,2,6,1,8,2,6,1,6,1,22,1,2,1,12,1,
26,1,14,1,6,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,120,0,0,0,124,0,106,0,124,1,131,
+ 67,0,0,0,115,120,0,0,0,124,0,160,0,124,1,161,
1,125,4,124,4,100,0,107,8,114,22,100,0,83,0,121,
12,116,1,124,4,131,1,1,0,87,0,110,20,4,0,116,
2,107,10,114,54,1,0,1,0,1,0,100,0,83,0,88,
0,120,58,116,3,131,0,68,0,93,48,92,2,125,5,125,
- 6,124,4,106,4,116,5,124,6,131,1,131,1,114,64,116,
+ 6,124,4,160,4,116,5,124,6,131,1,161,1,114,64,116,
6,106,7,124,1,124,5,124,1,124,4,131,2,124,4,100,
1,141,3,125,7,124,7,83,0,113,64,87,0,100,0,83,
0,41,2,78,41,1,114,156,0,0,0,41,8,114,175,0,
@@ -877,13 +877,13 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,218,6,116,97,114,103,101,116,114,174,0,0,0,
114,124,0,0,0,114,164,0,0,0,114,162,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,114,2,0,0,115,26,0,
+ 102,105,110,100,95,115,112,101,99,115,2,0,0,115,26,0,
0,0,0,2,10,1,8,1,4,1,2,1,12,1,14,1,
6,1,16,1,14,1,6,1,8,1,8,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,34,0,0,0,124,0,106,0,124,1,124,2,131,
+ 0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,
+ 0,0,115,34,0,0,0,124,0,160,0,124,1,124,2,161,
2,125,3,124,3,100,1,107,9,114,26,124,3,106,1,83,
0,100,1,83,0,100,1,83,0,41,2,122,108,70,105,110,
100,32,109,111,100,117,108,101,32,110,97,109,101,100,32,105,
@@ -896,7 +896,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,114,124,0,0,0,41,4,114,168,0,0,0,114,123,0,
0,0,114,37,0,0,0,114,162,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,130,2,0,0,115,8,0,0,
+ 100,95,109,111,100,117,108,101,131,2,0,0,115,8,0,0,
0,0,7,12,1,8,1,6,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,2,78,78,
@@ -906,7 +906,7 @@ const unsigned char _Py_M__importlib_external[] = {
101,116,104,111,100,114,169,0,0,0,114,175,0,0,0,114,
178,0,0,0,114,179,0,0,0,114,4,0,0,0,114,4,
0,0,0,114,4,0,0,0,114,6,0,0,0,114,166,0,
- 0,0,80,2,0,0,115,20,0,0,0,8,2,4,3,4,
+ 0,0,81,2,0,0,115,20,0,0,0,8,2,4,3,4,
3,4,2,4,2,12,7,12,15,2,1,12,15,2,1,114,
166,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,48,0,0,0,101,0,
@@ -920,10 +920,10 @@ const unsigned char _Py_M__importlib_external[] = {
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,64,0,0,0,116,0,
- 124,0,106,1,124,1,131,1,131,1,100,1,25,0,125,2,
- 124,2,106,2,100,2,100,1,131,2,100,3,25,0,125,3,
- 124,1,106,3,100,2,131,1,100,4,25,0,125,4,124,3,
+ 0,4,0,0,0,67,0,0,0,115,64,0,0,0,116,0,
+ 124,0,160,1,124,1,161,1,131,1,100,1,25,0,125,2,
+ 124,2,160,2,100,2,100,1,161,2,100,3,25,0,125,3,
+ 124,1,160,3,100,2,161,1,100,4,25,0,125,4,124,3,
100,5,107,2,111,62,124,4,100,5,107,3,83,0,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,
@@ -941,7 +941,7 @@ const unsigned char _Py_M__importlib_external[] = {
98,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,157,0,
- 0,0,149,2,0,0,115,8,0,0,0,0,3,18,1,16,
+ 0,0,150,2,0,0,115,8,0,0,0,0,3,18,1,16,
1,14,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,
@@ -951,14 +951,14 @@ const unsigned char _Py_M__importlib_external[] = {
99,114,101,97,116,105,111,110,46,78,114,4,0,0,0,41,
2,114,104,0,0,0,114,162,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,157,2,0,0,115,0,0,
+ 116,101,95,109,111,100,117,108,101,158,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,56,0,0,0,124,0,106,0,124,1,106,
- 1,131,1,125,2,124,2,100,1,107,8,114,36,116,2,100,
- 2,106,3,124,1,106,1,131,1,131,1,130,1,116,4,106,
- 5,116,6,124,2,124,1,106,7,131,3,1,0,100,1,83,
+ 2,0,0,0,0,0,0,0,3,0,0,0,5,0,0,0,
+ 67,0,0,0,115,56,0,0,0,124,0,160,0,124,1,106,
+ 1,161,1,125,2,124,2,100,1,107,8,114,36,116,2,100,
+ 2,160,3,124,1,106,1,161,1,131,1,130,1,116,4,160,
+ 5,116,6,124,2,124,1,106,7,161,3,1,0,100,1,83,
0,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,
@@ -971,25 +971,25 @@ const unsigned char _Py_M__importlib_external[] = {
114,115,0,0,0,41,3,114,104,0,0,0,218,6,109,111,
100,117,108,101,114,144,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,160,2,0,0,115,10,0,0,0,0,2,
+ 111,100,117,108,101,161,2,0,0,115,10,0,0,0,0,2,
12,1,8,1,6,1,10,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,12,0,0,0,116,0,106,
- 1,124,0,124,1,131,2,83,0,41,1,122,26,84,104,105,
+ 4,0,0,0,67,0,0,0,115,12,0,0,0,116,0,160,
+ 1,124,0,124,1,161,2,83,0,41,1,122,26,84,104,105,
115,32,109,111,100,117,108,101,32,105,115,32,100,101,112,114,
101,99,97,116,101,100,46,41,2,114,118,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,104,0,0,0,114,123,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,168,2,0,0,115,2,0,
+ 97,100,95,109,111,100,117,108,101,169,2,0,0,115,2,0,
0,0,0,2,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,109,0,0,0,114,108,0,0,0,114,110,0,0,
0,114,111,0,0,0,114,157,0,0,0,114,183,0,0,0,
114,188,0,0,0,114,190,0,0,0,114,4,0,0,0,114,
4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,181,
- 0,0,0,144,2,0,0,115,10,0,0,0,8,3,4,2,
+ 0,0,0,145,2,0,0,115,10,0,0,0,8,3,4,2,
8,8,8,3,8,8,114,181,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,74,0,0,0,101,0,90,1,100,0,90,2,100,1,100,
@@ -1014,12 +1014,12 @@ const unsigned char _Py_M__importlib_external[] = {
32,32,32,32,32,32,32,78,41,1,218,7,73,79,69,114,
114,111,114,41,2,114,104,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,175,2,0,0,115,2,
+ 112,97,116,104,95,109,116,105,109,101,176,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,14,0,0,0,100,1,124,0,106,0,124,1,
- 131,1,105,1,83,0,41,2,97,170,1,0,0,79,112,116,
+ 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,67,
+ 0,0,0,115,14,0,0,0,100,1,124,0,160,0,124,1,
+ 161,1,105,1,83,0,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,
@@ -1049,12 +1049,12 @@ const unsigned char _Py_M__importlib_external[] = {
32,32,32,32,32,32,32,114,130,0,0,0,41,1,114,193,
0,0,0,41,2,114,104,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,183,2,0,0,115,2,
+ 112,97,116,104,95,115,116,97,116,115,184,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,12,0,0,0,124,0,106,0,124,2,124,3,
- 131,2,83,0,41,1,122,228,79,112,116,105,111,110,97,108,
+ 0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,
+ 0,0,0,115,12,0,0,0,124,0,160,0,124,2,124,3,
+ 161,2,83,0,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,
@@ -1073,7 +1073,7 @@ const unsigned char _Py_M__importlib_external[] = {
94,0,0,0,90,10,99,97,99,104,101,95,112,97,116,104,
114,56,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,196,2,0,0,115,2,0,0,0,0,8,
+ 101,99,111,100,101,197,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,
@@ -1090,11 +1090,11 @@ const unsigned char _Py_M__importlib_external[] = {
32,32,32,32,32,32,78,114,4,0,0,0,41,3,114,104,
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,195,0,0,
- 0,206,2,0,0,115,0,0,0,0,122,21,83,111,117,114,
+ 0,207,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,82,0,0,0,124,0,106,0,124,
- 1,131,1,125,2,121,14,124,0,106,1,124,2,131,1,125,
+ 0,0,67,0,0,0,115,82,0,0,0,124,0,160,0,124,
+ 1,161,1,125,2,121,14,124,0,160,1,124,2,161,1,125,
3,87,0,110,48,4,0,116,2,107,10,114,72,1,0,125,
4,1,0,122,20,116,3,100,1,124,1,100,2,141,2,124,
4,130,2,87,0,89,0,100,3,100,3,125,4,126,4,88,
@@ -1110,7 +1110,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,114,153,0,0,0,41,5,114,104,0,0,0,114,123,0,
0,0,114,37,0,0,0,114,151,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,213,2,0,0,
+ 218,10,103,101,116,95,115,111,117,114,99,101,214,2,0,0,
115,14,0,0,0,0,2,10,1,2,1,14,1,16,1,4,
1,28,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,114,31,0,0,
@@ -1132,31 +1132,31 @@ const unsigned char _Py_M__importlib_external[] = {
112,105,108,101,41,4,114,104,0,0,0,114,56,0,0,0,
114,37,0,0,0,114,200,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,223,2,0,0,115,4,0,
+ 101,95,116,111,95,99,111,100,101,224,2,0,0,115,4,0,
0,0,0,5,12,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,94,1,0,0,124,0,106,
- 0,124,1,131,1,125,2,100,1,125,3,121,12,116,1,124,
+ 43,0,0,0,67,0,0,0,115,94,1,0,0,124,0,160,
+ 0,124,1,161,1,125,2,100,1,125,3,121,12,116,1,124,
2,131,1,125,4,87,0,110,24,4,0,116,2,107,10,114,
50,1,0,1,0,1,0,100,1,125,4,89,0,110,162,88,
- 0,121,14,124,0,106,3,124,2,131,1,125,5,87,0,110,
+ 0,121,14,124,0,160,3,124,2,161,1,125,5,87,0,110,
20,4,0,116,4,107,10,114,86,1,0,1,0,1,0,89,
0,110,126,88,0,116,5,124,5,100,2,25,0,131,1,125,
- 3,121,14,124,0,106,6,124,4,131,1,125,6,87,0,110,
+ 3,121,14,124,0,160,6,124,4,161,1,125,6,87,0,110,
20,4,0,116,7,107,10,114,134,1,0,1,0,1,0,89,
0,110,78,88,0,121,20,116,8,124,6,124,5,124,1,124,
4,100,3,141,4,125,7,87,0,110,24,4,0,116,9,116,
10,102,2,107,10,114,180,1,0,1,0,1,0,89,0,110,
- 32,88,0,116,11,106,12,100,4,124,4,124,2,131,3,1,
+ 32,88,0,116,11,160,12,100,4,124,4,124,2,161,3,1,
0,116,13,124,7,124,1,124,4,124,2,100,5,141,4,83,
- 0,124,0,106,6,124,2,131,1,125,8,124,0,106,14,124,
- 8,124,2,131,2,125,9,116,11,106,12,100,6,124,2,131,
+ 0,124,0,160,6,124,2,161,1,125,8,124,0,160,14,124,
+ 8,124,2,161,2,125,9,116,11,160,12,100,6,124,2,161,
2,1,0,116,15,106,16,12,0,144,1,114,90,124,4,100,
1,107,9,144,1,114,90,124,3,100,1,107,9,144,1,114,
90,116,17,124,9,124,3,116,18,124,8,131,1,131,3,125,
- 6,121,30,124,0,106,19,124,2,124,4,124,6,131,3,1,
- 0,116,11,106,12,100,7,124,4,131,2,1,0,87,0,110,
+ 6,121,30,124,0,160,19,124,2,124,4,124,6,161,3,1,
+ 0,116,11,160,12,100,7,124,4,161,2,1,0,87,0,110,
22,4,0,116,2,107,10,144,1,114,88,1,0,1,0,1,
0,89,0,110,2,88,0,124,9,83,0,41,8,122,190,67,
111,110,99,114,101,116,101,32,105,109,112,108,101,109,101,110,
@@ -1189,7 +1189,7 @@ const unsigned char _Py_M__importlib_external[] = {
10,98,121,116,101,115,95,100,97,116,97,114,151,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,184,0,0,
- 0,231,2,0,0,115,78,0,0,0,0,7,10,1,4,1,
+ 0,232,2,0,0,115,78,0,0,0,0,7,10,1,4,1,
2,1,12,1,14,1,10,2,2,1,14,1,14,1,6,2,
12,1,2,1,14,1,14,1,6,2,2,1,4,1,4,1,
12,1,18,1,6,2,8,1,6,1,6,1,2,1,8,1,
@@ -1201,7 +1201,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,196,0,0,0,114,195,0,0,0,114,199,0,0,0,114,
203,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,191,0,
- 0,0,173,2,0,0,115,14,0,0,0,8,2,8,8,8,
+ 0,0,174,2,0,0,115,14,0,0,0,8,2,8,8,8,
13,8,10,8,7,8,10,14,8,114,191,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,80,0,0,0,101,0,90,1,100,0,90,2,
@@ -1227,7 +1227,7 @@ const unsigned char _Py_M__importlib_external[] = {
32,102,105,110,100,101,114,46,78,41,2,114,102,0,0,0,
114,37,0,0,0,41,3,114,104,0,0,0,114,123,0,0,
0,114,37,0,0,0,114,4,0,0,0,114,4,0,0,0,
- 114,6,0,0,0,114,182,0,0,0,32,3,0,0,115,4,
+ 114,6,0,0,0,114,182,0,0,0,33,3,0,0,115,4,
0,0,0,0,3,6,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,
@@ -1236,7 +1236,7 @@ const unsigned char _Py_M__importlib_external[] = {
78,41,2,218,9,95,95,99,108,97,115,115,95,95,114,115,
0,0,0,41,2,114,104,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,38,3,0,0,115,4,0,0,
+ 218,6,95,95,101,113,95,95,39,3,0,0,115,4,0,0,
0,0,1,12,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,20,0,
@@ -1244,12 +1244,12 @@ const unsigned char _Py_M__importlib_external[] = {
131,1,65,0,83,0,41,1,78,41,3,218,4,104,97,115,
104,114,102,0,0,0,114,37,0,0,0,41,1,114,104,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,42,3,0,0,115,
+ 0,218,8,95,95,104,97,115,104,95,95,43,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,16,0,0,0,116,0,116,1,124,0,131,2,106,2,124,
- 1,131,1,83,0,41,1,122,100,76,111,97,100,32,97,32,
+ 115,16,0,0,0,116,0,116,1,124,0,131,2,160,2,124,
+ 1,161,1,83,0,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,
@@ -1259,7 +1259,7 @@ const unsigned char _Py_M__importlib_external[] = {
5,115,117,112,101,114,114,207,0,0,0,114,190,0,0,0,
41,2,114,104,0,0,0,114,123,0,0,0,41,1,114,208,
0,0,0,114,4,0,0,0,114,6,0,0,0,114,190,0,
- 0,0,45,3,0,0,115,2,0,0,0,0,10,122,22,70,
+ 0,0,46,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,6,0,0,0,124,
@@ -1269,19 +1269,19 @@ const unsigned char _Py_M__importlib_external[] = {
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,104,0,0,
0,114,123,0,0,0,114,4,0,0,0,114,4,0,0,0,
- 114,6,0,0,0,114,155,0,0,0,57,3,0,0,115,2,
+ 114,6,0,0,0,114,155,0,0,0,58,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,32,0,0,0,116,0,106,1,124,1,100,1,
- 131,2,143,10,125,2,124,2,106,2,131,0,83,0,81,0,
+ 0,0,0,115,32,0,0,0,116,0,160,1,124,1,100,1,
+ 161,2,143,10,125,2,124,2,160,2,161,0,83,0,81,0,
82,0,88,0,100,2,83,0,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,52,0,0,0,114,53,
0,0,0,90,4,114,101,97,100,41,3,114,104,0,0,0,
114,37,0,0,0,114,57,0,0,0,114,4,0,0,0,114,
- 4,0,0,0,114,6,0,0,0,114,197,0,0,0,62,3,
+ 4,0,0,0,114,6,0,0,0,114,197,0,0,0,63,3,
0,0,115,4,0,0,0,0,2,14,1,122,19,70,105,108,
101,76,111,97,100,101,114,46,103,101,116,95,100,97,116,97,
41,12,114,109,0,0,0,114,108,0,0,0,114,110,0,0,
@@ -1290,7 +1290,7 @@ const unsigned char _Py_M__importlib_external[] = {
155,0,0,0,114,197,0,0,0,90,13,95,95,99,108,97,
115,115,99,101,108,108,95,95,114,4,0,0,0,114,4,0,
0,0,41,1,114,208,0,0,0,114,6,0,0,0,114,207,
- 0,0,0,27,3,0,0,115,14,0,0,0,8,3,4,2,
+ 0,0,0,28,3,0,0,115,14,0,0,0,8,3,4,2,
8,6,8,4,8,3,16,12,12,5,114,207,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,46,0,0,0,101,0,90,1,100,0,90,
@@ -1311,7 +1311,7 @@ const unsigned char _Py_M__importlib_external[] = {
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,104,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,114,194,0,0,0,72,3,0,0,115,
+ 0,114,6,0,0,0,114,194,0,0,0,73,3,0,0,115,
4,0,0,0,0,2,8,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,
@@ -1321,27 +1321,27 @@ const unsigned char _Py_M__importlib_external[] = {
111,100,101,41,2,114,101,0,0,0,114,195,0,0,0,41,
5,114,104,0,0,0,114,94,0,0,0,114,93,0,0,0,
114,56,0,0,0,114,44,0,0,0,114,4,0,0,0,114,
- 4,0,0,0,114,6,0,0,0,114,196,0,0,0,77,3,
+ 4,0,0,0,114,6,0,0,0,114,196,0,0,0,78,3,
0,0,115,4,0,0,0,0,2,8,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,105,182,1,
0,0,41,1,114,217,0,0,0,99,3,0,0,0,1,0,
- 0,0,9,0,0,0,17,0,0,0,67,0,0,0,115,250,
+ 0,0,9,0,0,0,18,0,0,0,67,0,0,0,115,250,
0,0,0,116,0,124,1,131,1,92,2,125,4,125,5,103,
0,125,6,120,40,124,4,114,56,116,1,124,4,131,1,12,
0,114,56,116,0,124,4,131,1,92,2,125,4,125,7,124,
- 6,106,2,124,7,131,1,1,0,113,18,87,0,120,108,116,
+ 6,160,2,124,7,161,1,1,0,113,18,87,0,120,108,116,
3,124,6,131,1,68,0,93,96,125,7,116,4,124,4,124,
- 7,131,2,125,4,121,14,116,5,106,6,124,4,131,1,1,
+ 7,131,2,125,4,121,14,116,5,160,6,124,4,161,1,1,
0,87,0,113,68,4,0,116,7,107,10,114,118,1,0,1,
0,1,0,119,68,89,0,113,68,4,0,116,8,107,10,114,
- 162,1,0,125,8,1,0,122,18,116,9,106,10,100,1,124,
- 4,124,8,131,3,1,0,100,2,83,0,100,2,125,8,126,
+ 162,1,0,125,8,1,0,122,18,116,9,160,10,100,1,124,
+ 4,124,8,161,3,1,0,100,2,83,0,100,2,125,8,126,
8,88,0,113,68,88,0,113,68,87,0,121,28,116,11,124,
- 1,124,2,124,3,131,3,1,0,116,9,106,10,100,3,124,
- 1,131,2,1,0,87,0,110,48,4,0,116,8,107,10,114,
- 244,1,0,125,8,1,0,122,20,116,9,106,10,100,1,124,
- 1,124,8,131,3,1,0,87,0,89,0,100,2,100,2,125,
+ 1,124,2,124,3,131,3,1,0,116,9,160,10,100,3,124,
+ 1,161,2,1,0,87,0,110,48,4,0,116,8,107,10,114,
+ 244,1,0,125,8,1,0,122,20,116,9,160,10,100,1,124,
+ 1,124,8,161,3,1,0,87,0,89,0,100,2,100,2,125,
8,126,8,88,0,110,2,88,0,100,2,83,0,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,
@@ -1356,7 +1356,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,56,0,0,0,114,217,0,0,0,218,6,112,97,114,101,
110,116,114,98,0,0,0,114,29,0,0,0,114,25,0,0,
0,114,198,0,0,0,114,4,0,0,0,114,4,0,0,0,
- 114,6,0,0,0,114,195,0,0,0,82,3,0,0,115,42,
+ 114,6,0,0,0,114,195,0,0,0,83,3,0,0,115,42,
0,0,0,0,2,12,1,4,2,16,1,12,1,14,2,14,
1,10,1,2,1,14,1,14,2,6,1,16,3,6,1,8,
1,20,1,2,1,12,1,16,1,16,2,8,1,122,25,83,
@@ -1365,7 +1365,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,108,0,0,0,114,110,0,0,0,114,111,0,0,0,114,
194,0,0,0,114,196,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,215,0,0,0,68,3,0,0,115,8,0,0,0,
+ 0,0,114,215,0,0,0,69,3,0,0,115,8,0,0,0,
8,2,4,2,8,5,8,5,114,215,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,32,0,0,0,101,0,90,1,100,0,90,2,100,
@@ -1376,8 +1376,8 @@ const unsigned char _Py_M__importlib_external[] = {
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,5,0,0,0,67,
- 0,0,0,115,48,0,0,0,124,0,106,0,124,1,131,1,
- 125,2,124,0,106,1,124,2,131,1,125,3,116,2,124,3,
+ 0,0,0,115,48,0,0,0,124,0,160,0,124,1,161,1,
+ 125,2,124,0,160,1,124,2,161,1,125,3,116,2,124,3,
124,1,124,2,100,1,141,3,125,4,116,3,124,4,124,1,
124,2,100,2,141,3,83,0,41,3,78,41,2,114,102,0,
0,0,114,37,0,0,0,41,2,114,102,0,0,0,114,93,
@@ -1385,7 +1385,7 @@ const unsigned char _Py_M__importlib_external[] = {
139,0,0,0,114,145,0,0,0,41,5,114,104,0,0,0,
114,123,0,0,0,114,37,0,0,0,114,56,0,0,0,114,
206,0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,
- 0,0,0,114,184,0,0,0,117,3,0,0,115,8,0,0,
+ 0,0,0,114,184,0,0,0,118,3,0,0,115,8,0,0,
0,0,1,10,1,10,1,14,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,
@@ -1395,13 +1395,13 @@ const unsigned char _Py_M__importlib_external[] = {
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,104,0,0,0,114,123,
0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
- 0,0,114,199,0,0,0,123,3,0,0,115,2,0,0,0,
+ 0,0,114,199,0,0,0,124,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,109,0,0,0,114,108,0,0,0,
114,110,0,0,0,114,111,0,0,0,114,184,0,0,0,114,
199,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,113,3,0,
+ 0,0,0,114,6,0,0,0,114,220,0,0,0,114,3,0,
0,115,6,0,0,0,8,2,4,2,8,6,114,220,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,92,0,0,0,101,0,90,1,100,
@@ -1423,7 +1423,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,95,1,100,0,83,0,41,1,78,41,2,114,102,0,0,
0,114,37,0,0,0,41,3,114,104,0,0,0,114,102,0,
0,0,114,37,0,0,0,114,4,0,0,0,114,4,0,0,
- 0,114,6,0,0,0,114,182,0,0,0,140,3,0,0,115,
+ 0,114,6,0,0,0,114,182,0,0,0,141,3,0,0,115,
4,0,0,0,0,1,6,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,
@@ -1432,7 +1432,7 @@ const unsigned char _Py_M__importlib_external[] = {
124,1,106,1,107,2,83,0,41,1,78,41,2,114,208,0,
0,0,114,115,0,0,0,41,2,114,104,0,0,0,114,209,
0,0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,
- 0,0,114,210,0,0,0,144,3,0,0,115,4,0,0,0,
+ 0,0,114,210,0,0,0,145,3,0,0,115,4,0,0,0,
0,1,12,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,
@@ -1440,13 +1440,13 @@ const unsigned char _Py_M__importlib_external[] = {
131,1,116,0,124,0,106,2,131,1,65,0,83,0,41,1,
78,41,3,114,211,0,0,0,114,102,0,0,0,114,37,0,
0,0,41,1,114,104,0,0,0,114,4,0,0,0,114,4,
- 0,0,0,114,6,0,0,0,114,212,0,0,0,148,3,0,
+ 0,0,0,114,6,0,0,0,114,212,0,0,0,149,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,36,0,0,0,
- 116,0,106,1,116,2,106,3,124,1,131,2,125,2,116,0,
- 106,4,100,1,124,1,106,5,124,0,106,6,131,3,1,0,
+ 0,0,0,5,0,0,0,67,0,0,0,115,36,0,0,0,
+ 116,0,160,1,116,2,106,3,124,1,161,2,125,2,116,0,
+ 160,4,100,1,124,1,106,5,124,0,106,6,161,3,1,0,
124,2,83,0,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,
@@ -1457,14 +1457,14 @@ const unsigned char _Py_M__importlib_external[] = {
100,121,110,97,109,105,99,114,133,0,0,0,114,102,0,0,
0,114,37,0,0,0,41,3,114,104,0,0,0,114,162,0,
0,0,114,187,0,0,0,114,4,0,0,0,114,4,0,0,
- 0,114,6,0,0,0,114,183,0,0,0,151,3,0,0,115,
+ 0,114,6,0,0,0,114,183,0,0,0,152,3,0,0,115,
10,0,0,0,0,2,4,1,10,1,6,1,12,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,36,0,0,0,116,0,106,1,116,
- 2,106,3,124,1,131,2,1,0,116,0,106,4,100,1,124,
- 0,106,5,124,0,106,6,131,3,1,0,100,2,83,0,41,
+ 101,99,2,0,0,0,0,0,0,0,2,0,0,0,5,0,
+ 0,0,67,0,0,0,115,36,0,0,0,116,0,160,1,116,
+ 2,106,3,124,1,161,2,1,0,116,0,160,4,100,1,124,
+ 0,106,5,124,0,106,6,161,3,1,0,100,2,83,0,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,
@@ -1474,7 +1474,7 @@ const unsigned char _Py_M__importlib_external[] = {
120,101,99,95,100,121,110,97,109,105,99,114,133,0,0,0,
114,102,0,0,0,114,37,0,0,0,41,2,114,104,0,0,
0,114,187,0,0,0,114,4,0,0,0,114,4,0,0,0,
- 114,6,0,0,0,114,188,0,0,0,159,3,0,0,115,6,
+ 114,6,0,0,0,114,188,0,0,0,160,3,0,0,115,6,
0,0,0,0,2,14,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,
@@ -1492,7 +1492,7 @@ const unsigned char _Py_M__importlib_external[] = {
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,168,3,0,0,115,2,0,0,0,4,1,122,
+ 120,112,114,62,169,3,0,0,115,2,0,0,0,4,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,
@@ -1500,7 +1500,7 @@ const unsigned char _Py_M__importlib_external[] = {
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,104,0,0,0,114,123,
0,0,0,114,4,0,0,0,41,1,114,223,0,0,0,114,
- 6,0,0,0,114,157,0,0,0,165,3,0,0,115,6,0,
+ 6,0,0,0,114,157,0,0,0,166,3,0,0,115,6,0,
0,0,0,2,14,1,12,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,
@@ -1511,7 +1511,7 @@ const unsigned char _Py_M__importlib_external[] = {
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,104,0,0,0,114,123,0,0,0,114,4,0,0,0,
- 114,4,0,0,0,114,6,0,0,0,114,184,0,0,0,171,
+ 114,4,0,0,0,114,6,0,0,0,114,184,0,0,0,172,
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,
@@ -1522,7 +1522,7 @@ const unsigned char _Py_M__importlib_external[] = {
110,111,32,115,111,117,114,99,101,32,99,111,100,101,46,78,
114,4,0,0,0,41,2,114,104,0,0,0,114,123,0,0,
0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
- 114,199,0,0,0,175,3,0,0,115,2,0,0,0,0,2,
+ 114,199,0,0,0,176,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,
@@ -1533,7 +1533,7 @@ const unsigned char _Py_M__importlib_external[] = {
98,121,32,116,104,101,32,102,105,110,100,101,114,46,41,1,
114,37,0,0,0,41,2,114,104,0,0,0,114,123,0,0,
0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
- 114,155,0,0,0,179,3,0,0,115,2,0,0,0,0,3,
+ 114,155,0,0,0,180,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,109,0,0,0,114,108,0,0,0,114,
@@ -1542,7 +1542,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,114,157,0,0,0,114,184,0,0,0,114,199,0,0,
0,114,120,0,0,0,114,155,0,0,0,114,4,0,0,0,
114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,
- 221,0,0,0,132,3,0,0,115,20,0,0,0,8,6,4,
+ 221,0,0,0,133,3,0,0,115,20,0,0,0,8,6,4,
2,8,4,8,4,8,3,8,8,8,6,8,6,8,4,8,
4,114,221,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,96,0,0,0,
@@ -1572,9 +1572,9 @@ const unsigned char _Py_M__importlib_external[] = {
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,0,0,0,0,4,0,0,0,3,0,0,0,67,0,
0,0,115,36,0,0,0,124,1,124,0,95,0,124,2,124,
- 0,95,1,116,2,124,0,106,3,131,0,131,1,124,0,95,
+ 0,95,1,116,2,124,0,160,3,161,0,131,1,124,0,95,
4,124,3,124,0,95,5,100,0,83,0,41,1,78,41,6,
218,5,95,110,97,109,101,218,5,95,112,97,116,104,114,97,
0,0,0,218,16,95,103,101,116,95,112,97,114,101,110,116,
@@ -1583,12 +1583,12 @@ const unsigned char _Py_M__importlib_external[] = {
102,105,110,100,101,114,41,4,114,104,0,0,0,114,102,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,182,0,0,0,192,3,0,0,115,8,0,0,
+ 0,0,0,114,182,0,0,0,193,3,0,0,115,8,0,0,
0,0,1,6,1,6,1,14,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,38,0,0,0,124,0,106,0,
- 106,1,100,1,131,1,92,3,125,1,125,2,125,3,124,2,
+ 160,1,100,1,161,1,92,3,125,1,125,2,125,3,124,2,
100,2,107,2,114,30,100,6,83,0,124,1,100,5,102,2,
83,0,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,
@@ -1601,12 +1601,12 @@ const unsigned char _Py_M__importlib_external[] = {
0,114,219,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,198,3,0,0,115,8,0,0,0,
+ 104,95,110,97,109,101,115,199,3,0,0,115,8,0,0,0,
0,2,18,1,8,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,28,0,0,0,124,0,106,0,131,0,
+ 0,67,0,0,0,115,28,0,0,0,124,0,160,0,161,0,
92,2,125,1,125,2,116,1,116,2,106,3,124,1,25,0,
124,2,131,2,83,0,41,1,78,41,4,114,235,0,0,0,
114,114,0,0,0,114,8,0,0,0,218,7,109,111,100,117,
@@ -1614,13 +1614,13 @@ const unsigned char _Py_M__importlib_external[] = {
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,230,0,
- 0,0,208,3,0,0,115,4,0,0,0,0,1,12,1,122,
+ 0,0,209,3,0,0,115,4,0,0,0,0,1,12,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,80,0,0,0,116,0,124,0,106,1,
- 131,0,131,1,125,1,124,1,124,0,106,2,107,3,114,74,
- 124,0,106,3,124,0,106,4,124,1,131,2,125,2,124,2,
+ 99,1,0,0,0,0,0,0,0,3,0,0,0,4,0,0,
+ 0,67,0,0,0,115,80,0,0,0,116,0,124,0,160,1,
+ 161,0,131,1,125,1,124,1,124,0,106,2,107,3,114,74,
+ 124,0,160,3,124,0,106,4,124,1,161,2,125,2,124,2,
100,0,107,9,114,68,124,2,106,5,100,0,107,8,114,68,
124,2,106,6,114,68,124,2,106,6,124,0,95,7,124,1,
124,0,95,2,124,0,106,7,83,0,41,1,78,41,8,114,
@@ -1629,16 +1629,16 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,114,229,0,0,0,41,3,114,104,0,0,0,90,11,
112,97,114,101,110,116,95,112,97,116,104,114,162,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,212,3,0,
+ 12,95,114,101,99,97,108,99,117,108,97,116,101,213,3,0,
0,115,16,0,0,0,0,2,12,1,10,1,14,3,18,1,
6,1,8,1,6,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,12,0,0,0,116,0,124,
- 0,106,1,131,0,131,1,83,0,41,1,78,41,2,218,4,
+ 3,0,0,0,67,0,0,0,115,12,0,0,0,116,0,124,
+ 0,160,1,161,0,131,1,83,0,41,1,78,41,2,218,4,
105,116,101,114,114,237,0,0,0,41,1,114,104,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,225,3,0,0,115,2,0,
+ 8,95,95,105,116,101,114,95,95,226,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,3,0,
0,0,0,0,0,0,3,0,0,0,3,0,0,0,67,0,
@@ -1646,40 +1646,40 @@ const unsigned char _Py_M__importlib_external[] = {
0,100,0,83,0,41,1,78,41,1,114,229,0,0,0,41,
3,114,104,0,0,0,218,5,105,110,100,101,120,114,37,0,
0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
- 0,218,11,95,95,115,101,116,105,116,101,109,95,95,228,3,
+ 0,218,11,95,95,115,101,116,105,116,101,109,95,95,229,3,
0,0,115,2,0,0,0,0,1,122,26,95,78,97,109,101,
115,112,97,99,101,80,97,116,104,46,95,95,115,101,116,105,
116,101,109,95,95,99,1,0,0,0,0,0,0,0,1,0,
- 0,0,2,0,0,0,67,0,0,0,115,12,0,0,0,116,
- 0,124,0,106,1,131,0,131,1,83,0,41,1,78,41,2,
+ 0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,116,
+ 0,124,0,160,1,161,0,131,1,83,0,41,1,78,41,2,
114,33,0,0,0,114,237,0,0,0,41,1,114,104,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,231,3,0,0,115,2,0,
+ 218,7,95,95,108,101,110,95,95,232,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,12,0,0,0,100,1,106,0,124,0,106,1,131,1,
+ 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
+ 0,115,12,0,0,0,100,1,160,0,124,0,106,1,161,1,
83,0,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,50,0,
0,0,114,229,0,0,0,41,1,114,104,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,234,3,0,0,115,2,0,0,0,
+ 95,114,101,112,114,95,95,235,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,12,0,0,0,124,1,124,0,106,0,131,0,107,6,83,
+ 0,0,0,0,2,0,0,0,3,0,0,0,67,0,0,0,
+ 115,12,0,0,0,124,1,124,0,160,0,161,0,107,6,83,
0,41,1,78,41,1,114,237,0,0,0,41,2,114,104,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,237,3,0,0,115,2,0,0,0,0,1,
+ 105,110,115,95,95,238,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,16,0,0,0,124,0,106,0,106,1,124,1,131,
+ 0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,0,
+ 0,0,115,16,0,0,0,124,0,106,0,160,1,124,1,161,
1,1,0,100,0,83,0,41,1,78,41,2,114,229,0,0,
0,114,161,0,0,0,41,2,114,104,0,0,0,114,244,0,
0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
- 0,114,161,0,0,0,240,3,0,0,115,2,0,0,0,0,
+ 0,114,161,0,0,0,241,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,14,114,109,0,0,0,
114,108,0,0,0,114,110,0,0,0,114,111,0,0,0,114,
@@ -1687,7 +1687,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,114,239,0,0,0,114,241,0,0,0,114,242,0,
0,0,114,243,0,0,0,114,245,0,0,0,114,161,0,0,
0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,0,
- 114,6,0,0,0,114,227,0,0,0,185,3,0,0,115,22,
+ 114,6,0,0,0,114,227,0,0,0,186,3,0,0,115,22,
0,0,0,8,5,4,2,8,6,8,10,8,4,8,13,8,
3,8,3,8,3,8,3,8,3,114,227,0,0,0,99,0,
0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,64,
@@ -1704,11 +1704,11 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,114,229,0,0,0,41,4,114,104,0,0,0,114,102,
0,0,0,114,37,0,0,0,114,233,0,0,0,114,4,0,
0,0,114,4,0,0,0,114,6,0,0,0,114,182,0,0,
- 0,246,3,0,0,115,2,0,0,0,0,1,122,25,95,78,
+ 0,247,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,12,0,0,
- 0,100,1,106,0,124,1,106,1,131,1,83,0,41,2,122,
+ 2,0,0,0,3,0,0,0,67,0,0,0,115,12,0,0,
+ 0,100,1,160,0,124,1,106,1,161,1,83,0,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,
@@ -1721,21 +1721,21 @@ const unsigned char _Py_M__importlib_external[] = {
2,114,50,0,0,0,114,109,0,0,0,41,2,114,168,0,
0,0,114,187,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,249,3,0,0,115,2,0,0,0,0,7,122,28,
+ 101,112,114,250,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,83,0,41,2,78,84,114,4,
0,0,0,41,2,114,104,0,0,0,114,123,0,0,0,114,
4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,157,
- 0,0,0,2,4,0,0,115,2,0,0,0,0,1,122,27,
+ 0,0,0,3,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,83,0,41,2,78,114,32,0,0,
0,114,4,0,0,0,41,2,114,104,0,0,0,114,123,0,
0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
- 0,114,199,0,0,0,5,4,0,0,115,2,0,0,0,0,
+ 0,114,199,0,0,0,6,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,
@@ -1744,7 +1744,7 @@ const unsigned char _Py_M__importlib_external[] = {
122,8,60,115,116,114,105,110,103,62,114,186,0,0,0,84,
41,1,114,201,0,0,0,41,1,114,202,0,0,0,41,2,
114,104,0,0,0,114,123,0,0,0,114,4,0,0,0,114,
- 4,0,0,0,114,6,0,0,0,114,184,0,0,0,8,4,
+ 4,0,0,0,114,6,0,0,0,114,184,0,0,0,9,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,
@@ -1754,19 +1754,19 @@ const unsigned char _Py_M__importlib_external[] = {
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,104,0,0,0,114,162,0,
0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
- 0,114,183,0,0,0,11,4,0,0,115,0,0,0,0,122,
+ 0,114,183,0,0,0,12,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,83,0,41,1,78,
114,4,0,0,0,41,2,114,104,0,0,0,114,187,0,0,
0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,
- 114,188,0,0,0,14,4,0,0,115,2,0,0,0,0,1,
+ 114,188,0,0,0,15,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,26,0,0,0,116,0,106,1,100,1,124,0,
- 106,2,131,2,1,0,116,0,106,3,124,0,124,1,131,2,
+ 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,67,
+ 0,0,0,115,26,0,0,0,116,0,160,1,100,1,124,0,
+ 106,2,161,2,1,0,116,0,160,3,124,0,124,1,161,2,
83,0,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,
@@ -1779,7 +1779,7 @@ const unsigned char _Py_M__importlib_external[] = {
41,4,114,118,0,0,0,114,133,0,0,0,114,229,0,0,
0,114,189,0,0,0,41,2,114,104,0,0,0,114,123,0,
0,0,114,4,0,0,0,114,4,0,0,0,114,6,0,0,
- 0,114,190,0,0,0,17,4,0,0,115,6,0,0,0,0,
+ 0,114,190,0,0,0,18,4,0,0,115,6,0,0,0,0,
7,6,1,8,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,109,0,0,0,114,108,0,0,0,
@@ -1787,7 +1787,7 @@ const unsigned char _Py_M__importlib_external[] = {
247,0,0,0,114,157,0,0,0,114,199,0,0,0,114,184,
0,0,0,114,183,0,0,0,114,188,0,0,0,114,190,0,
0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,
- 0,114,6,0,0,0,114,246,0,0,0,245,3,0,0,115,
+ 0,114,6,0,0,0,114,246,0,0,0,246,3,0,0,115,
16,0,0,0,8,1,8,3,12,9,8,3,8,3,8,3,
8,3,8,3,114,246,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,
@@ -1804,9 +1804,9 @@ const unsigned char _Py_M__importlib_external[] = {
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,42,0,0,0,120,36,116,0,106,1,106,2,131,0,68,
+ 115,42,0,0,0,120,36,116,0,106,1,160,2,161,0,68,
0,93,22,125,1,116,3,124,1,100,1,131,2,114,12,124,
- 1,106,4,131,0,1,0,113,12,87,0,100,2,83,0,41,
+ 1,160,4,161,0,1,0,113,12,87,0,100,2,83,0,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,
@@ -1821,13 +1821,13 @@ const unsigned char _Py_M__importlib_external[] = {
218,6,118,97,108,117,101,115,114,112,0,0,0,114,249,0,
0,0,41,2,114,168,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,249,0,0,0,35,4,0,0,115,6,0,0,0,0,4,
+ 114,249,0,0,0,36,4,0,0,115,6,0,0,0,0,4,
16,1,10,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,86,0,0,0,116,0,106,1,
100,1,107,9,114,30,116,0,106,1,12,0,114,30,116,2,
- 106,3,100,2,116,4,131,2,1,0,120,50,116,0,106,1,
+ 160,3,100,2,116,4,161,2,1,0,120,50,116,0,106,1,
68,0,93,36,125,2,121,8,124,2,124,1,131,1,83,0,
4,0,116,5,107,10,114,72,1,0,1,0,1,0,119,38,
89,0,113,38,88,0,113,38,87,0,100,1,83,0,100,1,
@@ -1841,16 +1841,16 @@ const unsigned char _Py_M__importlib_external[] = {
114,103,0,0,0,41,3,114,168,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,43,4,0,0,115,16,0,0,0,0,3,18,1,
+ 111,107,115,44,4,0,0,115,16,0,0,0,0,3,18,1,
12,1,12,1,2,1,8,1,14,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,102,0,0,0,124,1,
- 100,1,107,2,114,42,121,12,116,0,106,1,131,0,125,1,
+ 100,1,107,2,114,42,121,12,116,0,160,1,161,0,125,1,
87,0,110,20,4,0,116,2,107,10,114,40,1,0,1,0,
1,0,100,2,83,0,88,0,121,14,116,3,106,4,124,1,
25,0,125,2,87,0,110,40,4,0,116,5,107,10,114,96,
- 1,0,1,0,1,0,124,0,106,6,124,1,131,1,125,2,
+ 1,0,1,0,1,0,124,0,160,6,124,1,161,1,125,2,
124,2,116,3,106,4,124,1,60,0,89,0,110,2,88,0,
124,2,83,0,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,
@@ -1872,17 +1872,17 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,41,3,114,168,0,0,0,114,37,0,0,0,114,
252,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,56,4,0,0,115,22,0,
+ 116,101,114,95,99,97,99,104,101,57,4,0,0,115,22,0,
0,0,0,8,8,1,2,1,12,1,14,3,6,1,2,1,
14,1,14,1,10,1,16,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,82,
- 0,0,0,116,0,124,2,100,1,131,2,114,26,124,2,106,
- 1,124,1,131,1,92,2,125,3,125,4,110,14,124,2,106,
- 2,124,1,131,1,125,3,103,0,125,4,124,3,100,0,107,
- 9,114,60,116,3,106,4,124,1,124,3,131,2,83,0,116,
- 3,106,5,124,1,100,0,131,2,125,5,124,4,124,5,95,
+ 0,0,6,0,0,0,4,0,0,0,67,0,0,0,115,82,
+ 0,0,0,116,0,124,2,100,1,131,2,114,26,124,2,160,
+ 1,124,1,161,1,92,2,125,3,125,4,110,14,124,2,160,
+ 2,124,1,161,1,125,3,103,0,125,4,124,3,100,0,107,
+ 9,114,60,116,3,160,4,124,1,124,3,161,2,83,0,116,
+ 3,160,5,124,1,100,0,161,2,125,5,124,4,124,5,95,
6,124,5,83,0,41,2,78,114,121,0,0,0,41,7,114,
112,0,0,0,114,121,0,0,0,114,179,0,0,0,114,118,
0,0,0,114,176,0,0,0,114,158,0,0,0,114,154,0,
@@ -1890,21 +1890,21 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,114,124,0,0,0,114,125,0,0,0,114,162,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,78,4,0,0,115,18,0,0,0,0,4,10,1,
+ 112,101,99,79,4,0,0,115,18,0,0,0,0,4,10,1,
16,2,10,1,4,1,8,1,12,1,12,1,6,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,170,0,0,0,103,0,125,4,120,160,124,2,68,0,
93,130,125,5,116,0,124,5,116,1,116,2,102,2,131,2,
- 115,30,113,10,124,0,106,3,124,5,131,1,125,6,124,6,
+ 115,30,113,10,124,0,160,3,124,5,161,1,125,6,124,6,
100,1,107,9,114,10,116,4,124,6,100,2,131,2,114,72,
- 124,6,106,5,124,1,124,3,131,2,125,7,110,12,124,0,
- 106,6,124,1,124,6,131,2,125,7,124,7,100,1,107,8,
+ 124,6,160,5,124,1,124,3,161,2,125,7,110,12,124,0,
+ 160,6,124,1,124,6,161,2,125,7,124,7,100,1,107,8,
114,94,113,10,124,7,106,7,100,1,107,9,114,108,124,7,
83,0,124,7,106,8,125,8,124,8,100,1,107,8,114,130,
- 116,9,100,3,131,1,130,1,124,4,106,10,124,8,131,1,
- 1,0,113,10,87,0,116,11,106,12,124,1,100,1,131,2,
+ 116,9,100,3,131,1,130,1,124,4,160,10,124,8,161,1,
+ 1,0,113,10,87,0,116,11,160,12,124,1,100,1,161,2,
125,7,124,4,124,7,95,8,124,7,83,0,100,1,83,0,
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,
@@ -1921,15 +1921,15 @@ const unsigned char _Py_M__importlib_external[] = {
112,97,99,101,95,112,97,116,104,90,5,101,110,116,114,121,
114,252,0,0,0,114,162,0,0,0,114,125,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,93,4,0,0,115,40,0,
+ 95,103,101,116,95,115,112,101,99,94,4,0,0,115,40,0,
0,0,0,5,4,1,10,1,14,1,2,1,10,1,8,1,
10,1,14,2,12,1,8,1,2,1,10,1,4,1,6,1,
8,1,8,5,14,2,12,1,6,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,
+ 99,4,0,0,0,0,0,0,0,6,0,0,0,5,0,0,
0,67,0,0,0,115,100,0,0,0,124,2,100,1,107,8,
- 114,14,116,0,106,1,125,2,124,0,106,2,124,1,124,2,
- 124,3,131,3,125,4,124,4,100,1,107,8,114,40,100,1,
+ 114,14,116,0,106,1,125,2,124,0,160,2,124,1,124,2,
+ 124,3,161,3,125,4,124,4,100,1,107,8,114,40,100,1,
83,0,124,4,106,3,100,1,107,8,114,92,124,4,106,4,
125,5,124,5,114,86,100,2,124,4,95,5,116,6,124,1,
124,5,124,0,106,2,131,3,124,4,95,4,124,4,83,0,
@@ -1949,12 +1949,12 @@ const unsigned char _Py_M__importlib_external[] = {
41,6,114,168,0,0,0,114,123,0,0,0,114,37,0,0,
0,114,177,0,0,0,114,162,0,0,0,114,3,1,0,0,
114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,
- 178,0,0,0,125,4,0,0,115,26,0,0,0,0,6,8,
+ 178,0,0,0,126,4,0,0,115,26,0,0,0,0,6,8,
1,6,1,14,1,8,1,4,1,10,1,6,1,4,3,6,
1,16,1,4,2,6,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,30,0,0,0,124,0,106,0,124,1,124,2,131,
+ 0,0,0,0,0,0,4,0,0,0,4,0,0,0,67,0,
+ 0,0,115,30,0,0,0,124,0,160,0,124,1,124,2,161,
2,125,3,124,3,100,1,107,8,114,24,100,1,83,0,124,
3,106,1,83,0,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,
@@ -1970,7 +1970,7 @@ const unsigned char _Py_M__importlib_external[] = {
32,32,32,78,41,2,114,178,0,0,0,114,124,0,0,0,
41,4,114,168,0,0,0,114,123,0,0,0,114,37,0,0,
0,114,162,0,0,0,114,4,0,0,0,114,4,0,0,0,
- 114,6,0,0,0,114,179,0,0,0,149,4,0,0,115,8,
+ 114,6,0,0,0,114,179,0,0,0,150,4,0,0,115,8,
0,0,0,0,8,12,1,8,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,1,78,41,2,78,78,41,1,78,41,12,114,
@@ -1979,7 +1979,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,114,0,1,0,0,114,1,1,0,0,114,4,1,0,
0,114,178,0,0,0,114,179,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,31,4,0,0,115,22,0,0,0,8,2,4,
+ 248,0,0,0,32,4,0,0,115,22,0,0,0,8,2,4,
2,12,8,12,13,12,22,12,15,2,1,12,31,2,1,12,
23,2,1,114,248,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,90,0,
@@ -2001,10 +2001,10 @@ const unsigned char _Py_M__importlib_external[] = {
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,88,0,
+ 0,5,0,0,0,6,0,0,0,7,0,0,0,115,88,0,
0,0,103,0,125,3,120,40,124,2,68,0,93,32,92,2,
- 137,0,125,4,124,3,106,0,135,0,102,1,100,1,100,2,
- 132,8,124,4,68,0,131,1,131,1,1,0,113,10,87,0,
+ 137,0,125,4,124,3,160,0,135,0,102,1,100,1,100,2,
+ 132,8,124,4,68,0,131,1,161,1,1,0,113,10,87,0,
124,3,124,0,95,1,124,1,112,58,100,3,124,0,95,2,
100,6,124,0,95,3,116,4,131,0,124,0,95,5,116,4,
131,0,124,0,95,6,100,5,83,0,41,7,122,154,73,110,
@@ -2023,7 +2023,7 @@ const unsigned char _Py_M__importlib_external[] = {
1,0,113,2,100,0,83,0,41,1,78,114,4,0,0,0,
41,2,114,24,0,0,0,114,222,0,0,0,41,1,114,124,
0,0,0,114,4,0,0,0,114,6,0,0,0,114,224,0,
- 0,0,178,4,0,0,115,2,0,0,0,4,0,122,38,70,
+ 0,0,179,4,0,0,115,2,0,0,0,4,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,61,0,0,0,114,31,0,0,0,78,
@@ -2035,7 +2035,7 @@ const unsigned char _Py_M__importlib_external[] = {
5,114,104,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,164,0,0,0,114,4,0,0,0,41,1,
- 114,124,0,0,0,114,6,0,0,0,114,182,0,0,0,172,
+ 114,124,0,0,0,114,6,0,0,0,114,182,0,0,0,173,
4,0,0,115,16,0,0,0,0,4,4,1,14,1,28,1,
6,2,10,1,6,1,8,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,
@@ -2046,11 +2046,11 @@ const unsigned char _Py_M__importlib_external[] = {
105,109,101,46,114,31,0,0,0,78,114,91,0,0,0,41,
1,114,7,1,0,0,41,1,114,104,0,0,0,114,4,0,
0,0,114,4,0,0,0,114,6,0,0,0,114,249,0,0,
- 0,186,4,0,0,115,2,0,0,0,0,2,122,28,70,105,
+ 0,187,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,
- 42,0,0,0,124,0,106,0,124,1,131,1,125,2,124,2,
+ 0,0,0,3,0,0,0,3,0,0,0,67,0,0,0,115,
+ 42,0,0,0,124,0,160,0,124,1,161,1,125,2,124,2,
100,1,107,8,114,26,100,1,103,0,102,2,83,0,124,2,
106,1,124,2,106,2,112,38,103,0,102,2,83,0,41,2,
122,197,84,114,121,32,116,111,32,102,105,110,100,32,97,32,
@@ -2068,7 +2068,7 @@ const unsigned char _Py_M__importlib_external[] = {
32,32,32,32,32,32,32,78,41,3,114,178,0,0,0,114,
124,0,0,0,114,154,0,0,0,41,3,114,104,0,0,0,
114,123,0,0,0,114,162,0,0,0,114,4,0,0,0,114,
- 4,0,0,0,114,6,0,0,0,114,121,0,0,0,192,4,
+ 4,0,0,0,114,6,0,0,0,114,121,0,0,0,193,4,
0,0,115,8,0,0,0,0,7,10,1,8,1,8,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,
@@ -2079,32 +2079,32 @@ const unsigned char _Py_M__importlib_external[] = {
0,41,7,114,104,0,0,0,114,163,0,0,0,114,123,0,
0,0,114,37,0,0,0,90,4,115,109,115,108,114,177,0,
0,0,114,124,0,0,0,114,4,0,0,0,114,4,0,0,
- 0,114,6,0,0,0,114,4,1,0,0,204,4,0,0,115,
+ 0,114,6,0,0,0,114,4,1,0,0,205,4,0,0,115,
6,0,0,0,0,1,10,1,8,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,
+ 78,99,3,0,0,0,0,0,0,0,14,0,0,0,16,0,
0,0,67,0,0,0,115,98,1,0,0,100,1,125,3,124,
- 1,106,0,100,2,131,1,100,3,25,0,125,4,121,24,116,
- 1,124,0,106,2,112,34,116,3,106,4,131,0,131,1,106,
+ 1,160,0,100,2,161,1,100,3,25,0,125,4,121,24,116,
+ 1,124,0,106,2,112,34,116,3,160,4,161,0,131,1,106,
5,125,5,87,0,110,24,4,0,116,6,107,10,114,66,1,
0,1,0,1,0,100,10,125,5,89,0,110,2,88,0,124,
- 5,124,0,106,7,107,3,114,92,124,0,106,8,131,0,1,
+ 5,124,0,106,7,107,3,114,92,124,0,160,8,161,0,1,
0,124,5,124,0,95,7,116,9,131,0,114,114,124,0,106,
- 10,125,6,124,4,106,11,131,0,125,7,110,10,124,0,106,
+ 10,125,6,124,4,160,11,161,0,125,7,110,10,124,0,106,
12,125,6,124,4,125,7,124,7,124,6,107,6,114,218,116,
13,124,0,106,2,124,4,131,2,125,8,120,72,124,0,106,
14,68,0,93,54,92,2,125,9,125,10,100,5,124,9,23,
0,125,11,116,13,124,8,124,11,131,2,125,12,116,15,124,
- 12,131,1,114,152,124,0,106,16,124,10,124,1,124,12,124,
- 8,103,1,124,2,131,5,83,0,113,152,87,0,116,17,124,
+ 12,131,1,114,152,124,0,160,16,124,10,124,1,124,12,124,
+ 8,103,1,124,2,161,5,83,0,113,152,87,0,116,17,124,
8,131,1,125,3,120,88,124,0,106,14,68,0,93,78,92,
2,125,9,125,10,116,13,124,0,106,2,124,4,124,9,23,
0,131,2,125,12,116,18,106,19,100,6,124,12,100,3,100,
7,141,3,1,0,124,7,124,9,23,0,124,6,107,6,114,
- 226,116,15,124,12,131,1,114,226,124,0,106,16,124,10,124,
- 1,124,12,100,8,124,2,131,5,83,0,113,226,87,0,124,
- 3,144,1,114,94,116,18,106,19,100,9,124,8,131,2,1,
- 0,116,18,106,20,124,1,100,8,131,2,125,13,124,8,103,
+ 226,116,15,124,12,131,1,114,226,124,0,160,16,124,10,124,
+ 1,124,12,100,8,124,2,161,5,83,0,113,226,87,0,124,
+ 3,144,1,114,94,116,18,160,19,100,9,124,8,161,2,1,
+ 0,116,18,160,20,124,1,100,8,161,2,125,13,124,8,103,
1,124,13,95,21,124,13,83,0,100,8,83,0,41,11,122,
111,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,
@@ -2134,25 +2134,25 @@ const unsigned char _Py_M__importlib_external[] = {
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,162,0,0,0,
114,4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,
- 178,0,0,0,209,4,0,0,115,70,0,0,0,0,5,4,
+ 178,0,0,0,210,4,0,0,115,70,0,0,0,0,5,4,
1,14,1,2,1,24,1,14,1,10,1,10,1,8,1,6,
2,6,1,6,1,10,2,6,1,4,2,8,1,12,1,16,
1,8,1,10,1,8,1,24,4,8,2,16,1,16,1,16,
1,12,1,8,1,10,1,12,1,6,1,12,1,12,1,8,
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,194,
- 0,0,0,124,0,106,0,125,1,121,22,116,1,106,2,124,
- 1,112,22,116,1,106,3,131,0,131,1,125,2,87,0,110,
+ 0,0,9,0,0,0,14,0,0,0,67,0,0,0,115,194,
+ 0,0,0,124,0,106,0,125,1,121,22,116,1,160,2,124,
+ 1,112,22,116,1,160,3,161,0,161,1,125,2,87,0,110,
30,4,0,116,4,116,5,116,6,102,3,107,10,114,58,1,
0,1,0,1,0,103,0,125,2,89,0,110,2,88,0,116,
- 7,106,8,106,9,100,1,131,1,115,84,116,10,124,2,131,
+ 7,106,8,160,9,100,1,161,1,115,84,116,10,124,2,131,
1,124,0,95,11,110,78,116,10,131,0,125,3,120,64,124,
- 2,68,0,93,56,125,4,124,4,106,12,100,2,131,1,92,
- 3,125,5,125,6,125,7,124,6,114,138,100,3,106,13,124,
- 5,124,7,106,14,131,0,131,2,125,8,110,4,124,5,125,
- 8,124,3,106,15,124,8,131,1,1,0,113,96,87,0,124,
- 3,124,0,95,11,116,7,106,8,106,9,116,16,131,1,114,
+ 2,68,0,93,56,125,4,124,4,160,12,100,2,161,1,92,
+ 3,125,5,125,6,125,7,124,6,114,138,100,3,160,13,124,
+ 5,124,7,160,14,161,0,161,2,125,8,110,4,124,5,125,
+ 8,124,3,160,15,124,8,161,1,1,0,113,96,87,0,124,
+ 3,124,0,95,11,116,7,106,8,160,9,116,16,161,1,114,
190,100,4,100,5,132,0,124,2,68,0,131,1,124,0,95,
17,100,6,83,0,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,
@@ -2160,12 +2160,12 @@ const unsigned char _Py_M__importlib_external[] = {
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,61,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,0,0,0,0,2,0,0,0,4,0,0,0,83,
0,0,0,115,20,0,0,0,104,0,124,0,93,12,125,1,
- 124,1,106,0,131,0,146,2,113,4,83,0,114,4,0,0,
+ 124,1,160,0,161,0,146,2,113,4,83,0,114,4,0,0,
0,41,1,114,92,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,30,5,0,
+ 0,0,250,9,60,115,101,116,99,111,109,112,62,31,5,0,
0,115,2,0,0,0,6,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,
@@ -2182,7 +2182,7 @@ const unsigned char _Py_M__importlib_external[] = {
102,105,120,95,99,111,110,116,101,110,116,115,114,244,0,0,
0,114,102,0,0,0,114,234,0,0,0,114,222,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,12,1,0,0,1,5,
+ 4,0,0,0,114,6,0,0,0,114,12,1,0,0,2,5,
0,0,115,34,0,0,0,0,2,6,1,2,1,22,1,20,
3,10,3,12,1,12,7,6,1,10,1,16,1,4,1,18,
2,4,1,14,1,6,1,12,1,122,22,70,105,108,101,70,
@@ -2220,7 +2220,7 @@ const unsigned char _Py_M__importlib_external[] = {
0,0,0,114,103,0,0,0,41,1,114,37,0,0,0,41,
2,114,168,0,0,0,114,11,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,42,
+ 95,102,111,114,95,70,105,108,101,70,105,110,100,101,114,43,
5,0,0,115,6,0,0,0,0,2,8,1,12,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,
@@ -2228,16 +2228,16 @@ const unsigned char _Py_M__importlib_external[] = {
70,105,110,100,101,114,114,4,0,0,0,41,3,114,168,0,
0,0,114,11,1,0,0,114,17,1,0,0,114,4,0,0,
0,41,2,114,168,0,0,0,114,11,1,0,0,114,6,0,
- 0,0,218,9,112,97,116,104,95,104,111,111,107,32,5,0,
+ 0,0,218,9,112,97,116,104,95,104,111,111,107,33,5,0,
0,115,4,0,0,0,0,10,14,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,12,0,0,0,100,1,106,0,124,0,
- 106,1,131,1,83,0,41,2,78,122,16,70,105,108,101,70,
+ 99,1,0,0,0,0,0,0,0,1,0,0,0,3,0,0,
+ 0,67,0,0,0,115,12,0,0,0,100,1,160,0,124,0,
+ 106,1,161,1,83,0,41,2,78,122,16,70,105,108,101,70,
105,110,100,101,114,40,123,33,114,125,41,41,2,114,50,0,
0,0,114,37,0,0,0,41,1,114,104,0,0,0,114,4,
0,0,0,114,4,0,0,0,114,6,0,0,0,114,243,0,
- 0,0,50,5,0,0,115,2,0,0,0,0,1,122,19,70,
+ 0,0,51,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,1,78,41,15,114,109,0,0,0,114,108,0,0,
0,114,110,0,0,0,114,111,0,0,0,114,182,0,0,0,
@@ -2245,12 +2245,12 @@ const unsigned char _Py_M__importlib_external[] = {
121,0,0,0,114,4,1,0,0,114,178,0,0,0,114,12,
1,0,0,114,180,0,0,0,114,18,1,0,0,114,243,0,
0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,
- 0,114,6,0,0,0,114,5,1,0,0,163,4,0,0,115,
+ 0,114,6,0,0,0,114,5,1,0,0,164,4,0,0,115,
20,0,0,0,8,7,4,2,8,14,8,4,4,2,8,12,
8,5,10,48,8,31,12,18,114,5,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,146,0,0,0,124,0,106,0,100,1,131,1,125,
- 4,124,0,106,0,100,2,131,1,125,5,124,4,115,66,124,
+ 0,0,115,146,0,0,0,124,0,160,0,100,1,161,1,125,
+ 4,124,0,160,0,100,2,161,1,125,5,124,4,115,66,124,
5,114,36,124,5,106,1,125,4,110,30,124,2,124,3,107,
2,114,56,116,2,124,1,124,2,131,2,125,4,110,10,116,
3,124,1,124,2,131,2,125,4,124,5,115,84,116,4,124,
@@ -2268,12 +2268,12 @@ const unsigned char _Py_M__importlib_external[] = {
90,8,112,97,116,104,110,97,109,101,90,9,99,112,97,116,
104,110,97,109,101,114,124,0,0,0,114,162,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,56,5,
+ 95,102,105,120,95,117,112,95,109,111,100,117,108,101,57,5,
0,0,115,34,0,0,0,0,2,10,1,10,1,4,1,4,
1,8,1,8,1,12,2,10,1,4,1,14,1,2,1,8,
1,8,1,8,1,12,1,14,2,114,23,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,38,0,0,0,116,0,116,1,106,2,131,0,
+ 0,0,0,115,38,0,0,0,116,0,116,1,160,2,161,0,
102,2,125,0,116,3,116,4,102,2,125,1,116,5,116,6,
102,2,125,2,124,0,124,1,124,2,103,3,83,0,41,1,
122,95,82,101,116,117,114,110,115,32,97,32,108,105,115,116,
@@ -2288,13 +2288,13 @@ const unsigned char _Py_M__importlib_external[] = {
114,78,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,159,0,0,0,79,5,0,0,115,8,0,
+ 6,0,0,0,114,159,0,0,0,80,5,0,0,115,8,0,
0,0,0,5,12,1,8,1,8,1,114,159,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,188,1,0,0,124,0,97,0,116,0,106,
1,97,1,116,0,106,2,97,2,116,1,106,3,116,4,25,
0,125,1,120,56,100,26,68,0,93,48,125,2,124,2,116,
- 1,106,3,107,7,114,58,116,0,106,5,124,2,131,1,125,
+ 1,106,3,107,7,114,58,116,0,160,5,124,2,161,1,125,
3,110,10,116,1,106,3,124,2,25,0,125,3,116,6,124,
1,124,2,124,3,131,3,1,0,113,32,87,0,100,5,100,
6,103,1,102,2,100,7,100,8,100,6,103,2,102,2,102,
@@ -2302,22 +2302,22 @@ const unsigned char _Py_M__importlib_external[] = {
6,116,7,100,9,100,10,132,0,124,6,68,0,131,1,131,
1,115,142,116,8,130,1,124,6,100,11,25,0,125,7,124,
5,116,1,106,3,107,6,114,174,116,1,106,3,124,5,25,
- 0,125,8,80,0,113,112,121,16,116,0,106,5,124,5,131,
+ 0,125,8,80,0,113,112,121,16,116,0,160,5,124,5,161,
1,125,8,80,0,87,0,113,112,4,0,116,9,107,10,114,
212,1,0,1,0,1,0,119,112,89,0,113,112,88,0,113,
112,87,0,116,9,100,12,131,1,130,1,116,6,124,1,100,
13,124,8,131,3,1,0,116,6,124,1,100,14,124,7,131,
- 3,1,0,116,6,124,1,100,15,100,16,106,10,124,6,131,
- 1,131,3,1,0,121,14,116,0,106,5,100,17,131,1,125,
+ 3,1,0,116,6,124,1,100,15,100,16,160,10,124,6,161,
+ 1,131,3,1,0,121,14,116,0,160,5,100,17,161,1,125,
9,87,0,110,26,4,0,116,9,107,10,144,1,114,52,1,
0,1,0,1,0,100,18,125,9,89,0,110,2,88,0,116,
- 6,124,1,100,17,124,9,131,3,1,0,116,0,106,5,100,
- 19,131,1,125,10,116,6,124,1,100,19,124,10,131,3,1,
- 0,124,5,100,7,107,2,144,1,114,120,116,0,106,5,100,
- 20,131,1,125,11,116,6,124,1,100,21,124,11,131,3,1,
+ 6,124,1,100,17,124,9,131,3,1,0,116,0,160,5,100,
+ 19,161,1,125,10,116,6,124,1,100,19,124,10,131,3,1,
+ 0,124,5,100,7,107,2,144,1,114,120,116,0,160,5,100,
+ 20,161,1,125,11,116,6,124,1,100,21,124,11,131,3,1,
0,116,6,124,1,100,22,116,11,131,0,131,3,1,0,116,
- 12,106,13,116,2,106,14,131,0,131,1,1,0,124,5,100,
- 7,107,2,144,1,114,184,116,15,106,16,100,23,131,1,1,
+ 12,160,13,116,2,160,14,161,0,161,1,1,0,124,5,100,
+ 7,107,2,144,1,114,184,116,15,160,16,100,23,161,1,1,
0,100,24,116,12,107,6,144,1,114,184,100,25,116,17,95,
18,100,18,83,0,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,
@@ -2341,7 +2341,7 @@ const unsigned char _Py_M__importlib_external[] = {
100,1,83,0,41,2,114,31,0,0,0,78,41,1,114,33,
0,0,0,41,2,114,24,0,0,0,114,81,0,0,0,114,
4,0,0,0,114,4,0,0,0,114,6,0,0,0,114,224,
- 0,0,0,115,5,0,0,115,2,0,0,0,4,0,122,25,
+ 0,0,0,116,5,0,0,115,2,0,0,0,4,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,62,0,0,0,122,30,
105,109,112,111,114,116,108,105,98,32,114,101,113,117,105,114,
@@ -2370,17 +2370,17 @@ const unsigned char _Py_M__importlib_external[] = {
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,90,5,0,0,115,82,
+ 0,0,218,6,95,115,101,116,117,112,91,5,0,0,115,82,
0,0,0,0,8,4,1,6,1,6,3,10,1,10,1,10,
1,12,2,10,1,16,3,22,1,14,2,22,1,8,1,10,
1,10,1,4,2,2,1,10,1,6,1,14,1,12,2,8,
1,12,1,12,1,18,3,2,1,14,1,16,2,10,1,12,
3,10,1,12,3,10,1,10,1,12,3,14,1,14,1,10,
1,10,1,10,1,114,31,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,
+ 0,0,0,2,0,0,0,4,0,0,0,67,0,0,0,115,
50,0,0,0,116,0,124,0,131,1,1,0,116,1,131,0,
- 125,1,116,2,106,3,106,4,116,5,106,6,124,1,142,0,
- 103,1,131,1,1,0,116,2,106,7,106,8,116,9,131,1,
+ 125,1,116,2,106,3,160,4,116,5,106,6,124,1,142,0,
+ 103,1,161,1,1,0,116,2,106,7,160,8,116,9,161,1,
1,0,100,1,83,0,41,2,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,
@@ -2391,7 +2391,7 @@ const unsigned char _Py_M__importlib_external[] = {
114,30,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,158,5,0,0,115,8,0,0,0,0,2,8,1,6,1,
+ 108,159,5,0,0,115,8,0,0,0,0,2,8,1,6,1,
20,1,114,33,1,0,0,41,1,114,0,0,0,0,41,2,
114,1,0,0,0,114,2,0,0,0,41,1,114,49,0,0,
0,41,1,78,41,3,78,78,78,41,3,78,78,78,41,2,
@@ -2424,7 +2424,7 @@ const unsigned char _Py_M__importlib_external[] = {
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,108,0,0,0,
4,16,4,1,4,1,2,1,6,3,8,17,8,5,8,5,
- 8,6,8,12,8,10,8,9,8,5,8,7,10,22,10,123,
+ 8,6,8,12,8,10,8,9,8,5,8,7,10,22,10,124,
16,1,12,2,4,1,4,2,6,2,6,2,8,2,16,45,
8,34,8,19,8,12,8,12,8,28,8,17,10,55,10,12,
10,10,8,14,6,3,4,1,14,67,14,64,14,29,16,110,
diff --git a/Python/marshal.c b/Python/marshal.c
index 87a4b240a4..d71d3c2b9d 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -1274,7 +1274,7 @@ r_object(RFILE *p)
if (n == 0 && type == TYPE_FROZENSET) {
/* call frozenset() to get the empty frozenset singleton */
- v = PyObject_CallFunction((PyObject*)&PyFrozenSet_Type, NULL);
+ v = _PyObject_CallNoArg((PyObject*)&PyFrozenSet_Type);
if (v == NULL)
break;
R_REF(v);
@@ -1649,7 +1649,7 @@ marshal_dump(PyObject *self, PyObject *args)
s = PyMarshal_WriteObjectToString(x, version);
if (s == NULL)
return NULL;
- res = _PyObject_CallMethodId(f, &PyId_write, "O", s);
+ res = _PyObject_CallMethodIdObjArgs(f, &PyId_write, s, NULL);
Py_DECREF(s);
return res;
}
diff --git a/Python/modsupport.c b/Python/modsupport.c
index aabee8fa59..e9e025bdb2 100644
--- a/Python/modsupport.c
+++ b/Python/modsupport.c
@@ -7,16 +7,17 @@
typedef double va_double;
static PyObject *va_build_value(const char *, va_list, int);
+static PyObject **va_build_stack(PyObject **small_stack, Py_ssize_t small_stack_len, const char *, va_list, int, Py_ssize_t*);
/* Package context -- the full module name for package imports */
-char *_Py_PackageContext = NULL;
+const char *_Py_PackageContext = NULL;
/* Helper for mkvalue() to scan the length of a format */
-static int
-countformat(const char *format, int endchar)
+static Py_ssize_t
+countformat(const char *format, char endchar)
{
- int count = 0;
+ Py_ssize_t count = 0;
int level = 0;
while (level > 0 || *format != endchar) {
switch (*format) {
@@ -28,8 +29,9 @@ countformat(const char *format, int endchar)
case '(':
case '[':
case '{':
- if (level == 0)
+ if (level == 0) {
count++;
+ }
level++;
break;
case ')':
@@ -45,8 +47,9 @@ countformat(const char *format, int endchar)
case '\t':
break;
default:
- if (level == 0)
+ if (level == 0) {
count++;
+ }
}
format++;
}
@@ -57,17 +60,18 @@ countformat(const char *format, int endchar)
/* Generic function to create a value -- the inverse of getargs() */
/* After an original idea and first implementation by Steven Miale */
-static PyObject *do_mktuple(const char**, va_list *, int, int, int);
-static PyObject *do_mklist(const char**, va_list *, int, int, int);
-static PyObject *do_mkdict(const char**, va_list *, int, int, int);
+static PyObject *do_mktuple(const char**, va_list *, char, Py_ssize_t, int);
+static int do_mkstack(PyObject **, const char**, va_list *, char, Py_ssize_t, int);
+static PyObject *do_mklist(const char**, va_list *, char, Py_ssize_t, int);
+static PyObject *do_mkdict(const char**, va_list *, char, Py_ssize_t, int);
static PyObject *do_mkvalue(const char**, va_list *, int);
static void
-do_ignore(const char **p_format, va_list *p_va, int endchar, int n, int flags)
+do_ignore(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n, int flags)
{
PyObject *v;
- int i;
+ Py_ssize_t i;
assert(PyErr_Occurred());
v = PyTuple_New(n);
for (i = 0; i < n; i++) {
@@ -91,15 +95,16 @@ do_ignore(const char **p_format, va_list *p_va, int endchar, int n, int flags)
"Unmatched paren in format");
return;
}
- if (endchar)
+ if (endchar) {
++*p_format;
+ }
}
static PyObject *
-do_mkdict(const char **p_format, va_list *p_va, int endchar, int n, int flags)
+do_mkdict(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n, int flags)
{
PyObject *d;
- int i;
+ Py_ssize_t i;
if (n < 0)
return NULL;
if (n % 2) {
@@ -146,10 +151,10 @@ do_mkdict(const char **p_format, va_list *p_va, int endchar, int n, int flags)
}
static PyObject *
-do_mklist(const char **p_format, va_list *p_va, int endchar, int n, int flags)
+do_mklist(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n, int flags)
{
PyObject *v;
- int i;
+ Py_ssize_t i;
if (n < 0)
return NULL;
/* Note that we can't bail immediately on error as this will leak
@@ -179,11 +184,48 @@ do_mklist(const char **p_format, va_list *p_va, int endchar, int n, int flags)
return v;
}
+static int
+do_mkstack(PyObject **stack, const char **p_format, va_list *p_va,
+ char endchar, Py_ssize_t n, int flags)
+{
+ Py_ssize_t i;
+
+ if (n < 0) {
+ return -1;
+ }
+ /* Note that we can't bail immediately on error as this will leak
+ refcounts on any 'N' arguments. */
+ for (i = 0; i < n; i++) {
+ PyObject *w = do_mkvalue(p_format, p_va, flags);
+ if (w == NULL) {
+ do_ignore(p_format, p_va, endchar, n - i - 1, flags);
+ goto error;
+ }
+ stack[i] = w;
+ }
+ if (**p_format != endchar) {
+ PyErr_SetString(PyExc_SystemError,
+ "Unmatched paren in format");
+ goto error;
+ }
+ if (endchar) {
+ ++*p_format;
+ }
+ return 0;
+
+error:
+ n = i;
+ for (i=0; i < n; i++) {
+ Py_DECREF(stack[i]);
+ }
+ return -1;
+}
+
static PyObject *
-do_mktuple(const char **p_format, va_list *p_va, int endchar, int n, int flags)
+do_mktuple(const char **p_format, va_list *p_va, char endchar, Py_ssize_t n, int flags)
{
PyObject *v;
- int i;
+ Py_ssize_t i;
if (n < 0)
return NULL;
/* Note that we can't bail immediately on error as this will leak
@@ -286,8 +328,8 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags)
}
else {
if (n < 0)
- n = Py_UNICODE_strlen(u);
- v = PyUnicode_FromUnicode(u, n);
+ n = wcslen(u);
+ v = PyUnicode_FromWideChar(u, n);
}
return v;
}
@@ -465,15 +507,14 @@ static PyObject *
va_build_value(const char *format, va_list va, int flags)
{
const char *f = format;
- int n = countformat(f, '\0');
+ Py_ssize_t n = countformat(f, '\0');
va_list lva;
PyObject *retval;
if (n < 0)
return NULL;
if (n == 0) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
va_copy(lva, va);
if (n == 1) {
@@ -485,9 +526,68 @@ va_build_value(const char *format, va_list va, int flags)
return retval;
}
+PyObject **
+_Py_VaBuildStack(PyObject **small_stack, Py_ssize_t small_stack_len,
+ const char *format, va_list va, Py_ssize_t *p_nargs)
+{
+ return va_build_stack(small_stack, small_stack_len, format, va, 0, p_nargs);
+}
+
+PyObject **
+_Py_VaBuildStack_SizeT(PyObject **small_stack, Py_ssize_t small_stack_len,
+ const char *format, va_list va, Py_ssize_t *p_nargs)
+{
+ return va_build_stack(small_stack, small_stack_len, format, va, FLAG_SIZE_T, p_nargs);
+}
+
+static PyObject **
+va_build_stack(PyObject **small_stack, Py_ssize_t small_stack_len,
+ const char *format, va_list va, int flags, Py_ssize_t *p_nargs)
+{
+ const char *f;
+ Py_ssize_t n;
+ va_list lva;
+ PyObject **stack;
+ int res;
+
+ n = countformat(format, '\0');
+ if (n < 0) {
+ *p_nargs = 0;
+ return NULL;
+ }
+
+ if (n == 0) {
+ *p_nargs = 0;
+ return small_stack;
+ }
+
+ if (n <= small_stack_len) {
+ stack = small_stack;
+ }
+ else {
+ stack = PyMem_Malloc(n * sizeof(stack[0]));
+ if (stack == NULL) {
+ PyErr_NoMemory();
+ return NULL;
+ }
+ }
+
+ va_copy(lva, va);
+ f = format;
+ res = do_mkstack(stack, &f, &lva, '\0', n, flags);
+ va_end(lva);
+
+ if (res < 0) {
+ return NULL;
+ }
+
+ *p_nargs = n;
+ return stack;
+}
+
PyObject *
-PyEval_CallFunction(PyObject *obj, const char *format, ...)
+PyEval_CallFunction(PyObject *callable, const char *format, ...)
{
va_list vargs;
PyObject *args;
@@ -501,7 +601,7 @@ PyEval_CallFunction(PyObject *obj, const char *format, ...)
if (args == NULL)
return NULL;
- res = PyEval_CallObject(obj, args);
+ res = PyEval_CallObject(callable, args);
Py_DECREF(args);
return res;
@@ -509,14 +609,14 @@ PyEval_CallFunction(PyObject *obj, const char *format, ...)
PyObject *
-PyEval_CallMethod(PyObject *obj, const char *methodname, const char *format, ...)
+PyEval_CallMethod(PyObject *obj, const char *name, const char *format, ...)
{
va_list vargs;
PyObject *meth;
PyObject *args;
PyObject *res;
- meth = PyObject_GetAttrString(obj, methodname);
+ meth = PyObject_GetAttrString(obj, name);
if (meth == NULL)
return NULL;
diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h
index 72d24080d8..567f8723a6 100644
--- a/Python/opcode_targets.h
+++ b/Python/opcode_targets.h
@@ -159,8 +159,8 @@ static void *opcode_targets[256] = {
&&TARGET_BUILD_STRING,
&&TARGET_BUILD_TUPLE_UNPACK_WITH_CALL,
&&_unknown_opcode,
- &&_unknown_opcode,
- &&_unknown_opcode,
+ &&TARGET_LOAD_METHOD,
+ &&TARGET_CALL_METHOD,
&&_unknown_opcode,
&&_unknown_opcode,
&&_unknown_opcode,
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index a4f7f823bc..06030c330a 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -193,7 +193,8 @@ add_flag(int flag, const char *envs)
static char*
get_codec_name(const char *encoding)
{
- char *name_utf8, *name_str;
+ const char *name_utf8;
+ char *name_str;
PyObject *codec, *name = NULL;
codec = _PyCodec_Lookup(encoding);
@@ -1284,8 +1285,7 @@ initstdio(void)
when import.c tries to write to stderr in verbose mode. */
encoding_attr = PyObject_GetAttrString(std, "encoding");
if (encoding_attr != NULL) {
- const char * std_encoding;
- std_encoding = PyUnicode_AsUTF8(encoding_attr);
+ const char *std_encoding = PyUnicode_AsUTF8(encoding_attr);
if (std_encoding != NULL) {
PyObject *codec_info = _PyCodec_Lookup(std_encoding);
Py_XDECREF(codec_info);
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 8befa546a9..5bddbad1c8 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -154,7 +154,7 @@ PyRun_InteractiveOneObject(FILE *fp, PyObject *filename, PyCompilerFlags *flags)
PyObject *m, *d, *v, *w, *oenc = NULL, *mod_name;
mod_ty mod;
PyArena *arena;
- char *ps1 = "", *ps2 = "", *enc = NULL;
+ const char *ps1 = "", *ps2 = "", *enc = NULL;
int errcode = 0;
_Py_IDENTIFIER(encoding);
_Py_IDENTIFIER(__main__);
@@ -511,8 +511,8 @@ PyErr_Print(void)
static void
print_error_text(PyObject *f, int offset, PyObject *text_obj)
{
- char *text;
- char *nl;
+ const char *text;
+ const char *nl;
text = PyUnicode_AsUTF8(text_obj);
if (text == NULL)
diff --git a/Python/structmember.c b/Python/structmember.c
index be2737d405..e653d0277c 100644
--- a/Python/structmember.c
+++ b/Python/structmember.c
@@ -249,7 +249,7 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v)
Py_XDECREF(oldv);
break;
case T_CHAR: {
- char *string;
+ const char *string;
Py_ssize_t len;
string = PyUnicode_AsUTF8AndSize(v, &len);
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 52034ff7fb..81520ea84f 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -108,7 +108,7 @@ sys_displayhook_unencodable(PyObject *outf, PyObject *o)
{
PyObject *stdout_encoding = NULL;
PyObject *encoded, *escaped_str, *repr_str, *buffer, *result;
- char *stdout_encoding_str;
+ const char *stdout_encoding_str;
int ret;
stdout_encoding = _PyObject_GetAttrId(outf, &PyId_encoding);
@@ -130,7 +130,7 @@ sys_displayhook_unencodable(PyObject *outf, PyObject *o)
buffer = _PyObject_GetAttrId(outf, &PyId_buffer);
if (buffer) {
- result = _PyObject_CallMethodId(buffer, &PyId_write, "(O)", encoded);
+ result = _PyObject_CallMethodIdObjArgs(buffer, &PyId_write, encoded, NULL);
Py_DECREF(buffer);
Py_DECREF(encoded);
if (result == NULL)
@@ -179,8 +179,7 @@ sys_displayhook(PyObject *self, PyObject *o)
/* After printing, also assign to '_' */
/* Before, set '_' to None to avoid recursion */
if (o == Py_None) {
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
if (_PyObject_SetAttrId(builtins, &PyId__, Py_None) != 0)
return NULL;
@@ -211,8 +210,7 @@ sys_displayhook(PyObject *self, PyObject *o)
return NULL;
if (_PyObject_SetAttrId(builtins, &PyId__, o) != 0)
return NULL;
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
PyDoc_STRVAR(displayhook_doc,
@@ -228,8 +226,7 @@ sys_excepthook(PyObject* self, PyObject* args)
if (!PyArg_UnpackTuple(args, "excepthook", 3, 3, &exc, &value, &tb))
return NULL;
PyErr_Display(exc, value, tb);
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
PyDoc_STRVAR(excepthook_doc,
@@ -461,8 +458,7 @@ sys_settrace(PyObject *self, PyObject *args)
PyEval_SetTrace(NULL, NULL);
else
PyEval_SetTrace(trace_trampoline, args);
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
PyDoc_STRVAR(settrace_doc,
@@ -500,8 +496,7 @@ sys_setprofile(PyObject *self, PyObject *args)
PyEval_SetProfile(NULL, NULL);
else
PyEval_SetProfile(profile_trampoline, args);
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
PyDoc_STRVAR(setprofile_doc,
@@ -542,8 +537,7 @@ sys_setcheckinterval(PyObject *self, PyObject *args)
return NULL;
if (!PyArg_ParseTuple(args, "i:setcheckinterval", &_check_interval))
return NULL;
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
PyDoc_STRVAR(setcheckinterval_doc,
@@ -581,8 +575,7 @@ sys_setswitchinterval(PyObject *self, PyObject *args)
return NULL;
}
_PyEval_SetSwitchInterval((unsigned long) (1e6 * d));
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
PyDoc_STRVAR(setswitchinterval_doc,
@@ -644,8 +637,7 @@ sys_setrecursionlimit(PyObject *self, PyObject *args)
}
Py_SetRecursionLimit(new_limit);
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
static PyObject *
@@ -1032,8 +1024,7 @@ sys_setdlopenflags(PyObject *self, PyObject *args)
if (!tstate)
return NULL;
tstate->interp->dlopenflags = new_val;
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
PyDoc_STRVAR(setdlopenflags_doc,
@@ -1074,8 +1065,7 @@ sys_mdebug(PyObject *self, PyObject *args)
if (!PyArg_ParseTuple(args, "i:mdebug", &flag))
return NULL;
mallopt(M_DEBUG, flag);
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
#endif /* USE_MALLOPT */
@@ -1098,7 +1088,7 @@ _PySys_GetSizeOf(PyObject *o)
Py_TYPE(o)->tp_name);
}
else {
- res = PyObject_CallFunctionObjArgs(method, NULL);
+ res = _PyObject_CallNoArg(method);
Py_DECREF(method);
}
@@ -1287,6 +1277,19 @@ a 11-tuple where the entries in the tuple are counts of:\n\
10. Number of stack pops performed by call_function()"
);
+static PyObject *
+sys_callstats(PyObject *self)
+{
+ if (PyErr_WarnEx(PyExc_DeprecationWarning,
+ "sys.callstats() has been deprecated in Python 3.7 "
+ "and will be removed in the future", 1) < 0) {
+ return NULL;
+ }
+
+ Py_RETURN_NONE;
+}
+
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -1350,9 +1353,23 @@ PyDoc_STRVAR(is_finalizing_doc,
Return True if Python is exiting.");
+#ifdef ANDROID_API_LEVEL
+PyDoc_STRVAR(getandroidapilevel_doc,
+"getandroidapilevel()\n\
+\n\
+Return the build time API version of Android as an integer.");
+
+static PyObject *
+sys_getandroidapilevel(PyObject *self)
+{
+ return PyLong_FromLong(ANDROID_API_LEVEL);
+}
+#endif /* ANDROID_API_LEVEL */
+
+
static PyMethodDef sys_methods[] = {
/* Might as well keep this in alphabetic order */
- {"callstats", (PyCFunction)PyEval_GetCallStats, METH_NOARGS,
+ {"callstats", (PyCFunction)sys_callstats, METH_NOARGS,
callstats_doc},
{"_clear_type_cache", sys_clear_type_cache, METH_NOARGS,
sys_clear_type_cache__doc__},
@@ -1434,6 +1451,10 @@ static PyMethodDef sys_methods[] = {
METH_VARARGS | METH_KEYWORDS, set_asyncgen_hooks_doc},
{"get_asyncgen_hooks", sys_get_asyncgen_hooks, METH_NOARGS,
get_asyncgen_hooks_doc},
+#ifdef ANDROID_API_LEVEL
+ {"getandroidapilevel", (PyCFunction)sys_getandroidapilevel, METH_NOARGS,
+ getandroidapilevel_doc},
+#endif
{NULL, NULL} /* sentinel */
};
@@ -1547,8 +1568,9 @@ error:
Py_XDECREF(name);
Py_XDECREF(value);
/* No return value, therefore clear error state if possible */
- if (_PyThreadState_UncheckedGet())
+ if (_PyThreadState_UncheckedGet()) {
PyErr_Clear();
+ }
}
PyObject *
@@ -2293,7 +2315,7 @@ sys_pyfile_write_unicode(PyObject *unicode, PyObject *file)
if (writer == NULL)
goto error;
- result = _PyObject_CallArg1(writer, unicode);
+ result = PyObject_CallFunctionObjArgs(writer, unicode, NULL);
if (result == NULL) {
goto error;
} else {
@@ -2403,7 +2425,7 @@ sys_format(_Py_Identifier *key, FILE *fp, const char *format, va_list va)
{
PyObject *file, *message;
PyObject *error_type, *error_value, *error_traceback;
- char *utf8;
+ const char *utf8;
PyErr_Fetch(&error_type, &error_value, &error_traceback);
file = _PySys_GetObjectId(key);