diff --git a/Doc/data/python3.14.abi b/Doc/data/python3.14.abi
index 486c54565c45ae..f180757e352053 100644
--- a/Doc/data/python3.14.abi
+++ b/Doc/data/python3.14.abi
@@ -1816,7 +1816,7 @@
-
+
@@ -1902,13 +1902,22 @@
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
@@ -1958,27 +1967,27 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -1990,15 +1999,15 @@
-
+
-
-
+
+
-
+
@@ -2010,14 +2019,14 @@
-
-
+
+
-
+
@@ -2054,9 +2063,9 @@
-
-
-
+
+
+
@@ -2066,51 +2075,51 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
@@ -2120,18 +2129,18 @@
-
+
-
+
-
-
-
-
+
+
+
+
@@ -2141,11 +2150,11 @@
-
+
-
+
@@ -2188,15 +2197,15 @@
-
-
-
+
+
+
-
-
+
+
@@ -2217,38 +2226,38 @@
-
-
+
+
-
+
-
+
-
-
-
-
-
+
+
-
+
-
+
+
-
-
-
+
+
+
+
+
-
+
-
+
@@ -2256,12 +2265,12 @@
-
+
-
+
@@ -2270,8 +2279,8 @@
+
-
@@ -2280,16 +2289,16 @@
-
+
-
+
-
-
-
+
+
+
-
+
@@ -2306,92 +2315,92 @@
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
@@ -2399,58 +2408,58 @@
-
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -2458,22 +2467,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2485,155 +2494,155 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
-
+
@@ -2653,68 +2662,68 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
@@ -2730,85 +2739,85 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
@@ -2820,117 +2829,117 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2947,8 +2956,8 @@
-
-
+
+
@@ -2976,24 +2985,24 @@
-
+
-
+
-
+
-
-
+
+
@@ -3003,37 +3012,37 @@
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -3058,19 +3067,19 @@
-
-
+
+
-
-
+
+
-
+
@@ -3080,108 +3089,108 @@
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
@@ -3209,7 +3218,7 @@
-
+
@@ -3227,15 +3236,15 @@
-
+
-
+
-
+
@@ -3252,12 +3261,12 @@
-
+
-
+
-
-
+
+
@@ -3269,29 +3278,29 @@
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -3304,183 +3313,183 @@
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
@@ -3488,7 +3497,7 @@
-
+
@@ -3496,7 +3505,7 @@
-
+
@@ -3504,41 +3513,41 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -3557,33 +3566,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
@@ -3591,62 +3600,62 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
-
-
-
-
+
+
+
-
+
+
+
+
-
+
-
+
-
+
@@ -3670,28 +3679,28 @@
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
@@ -3702,26 +3711,26 @@
-
+
-
-
+
+
-
+
-
-
+
+
-
+
@@ -3730,113 +3739,113 @@
-
-
+
+
-
+
-
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -3845,7 +3854,7 @@
-
+
@@ -3854,16 +3863,16 @@
-
-
+
+
-
+
-
-
+
+
@@ -3898,58 +3907,58 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
@@ -3964,7 +3973,7 @@
-
+
@@ -3982,19 +3991,19 @@
-
+
-
+
-
+
-
+
@@ -4010,8 +4019,8 @@
-
-
+
+
@@ -4022,8 +4031,8 @@
-
-
+
+
@@ -4042,14 +4051,14 @@
-
+
-
+
@@ -4059,18 +4068,18 @@
-
+
-
+
-
+
@@ -4089,12 +4098,12 @@
-
+
-
+
-
+
@@ -4185,45 +4194,45 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
@@ -4231,32 +4240,32 @@
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4267,44 +4276,44 @@
-
+
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -4312,7 +4321,7 @@
-
+
@@ -4323,7 +4332,7 @@
-
+
@@ -4351,7 +4360,7 @@
-
+
@@ -4364,38 +4373,38 @@
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
@@ -4419,29 +4428,29 @@
-
+
-
+
-
+
-
+
-
+
@@ -4471,7 +4480,7 @@
-
+
@@ -4482,7 +4491,7 @@
-
+
@@ -4526,7 +4535,7 @@
-
+
@@ -4555,47 +4564,47 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
@@ -4608,30 +4617,30 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
@@ -4946,7 +4955,7 @@
-
+
@@ -5015,7 +5024,7 @@
-
+
@@ -5025,18 +5034,18 @@
-
-
+
+
-
-
-
+
+
+
-
-
+
+
@@ -5066,7 +5075,7 @@
-
+
@@ -5074,18 +5083,18 @@
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -5132,31 +5141,31 @@
-
+
-
+
-
+
-
+
-
+
@@ -5224,8 +5233,8 @@
-
-
+
+
@@ -5241,7 +5250,7 @@
-
+
@@ -5252,7 +5261,7 @@
-
+
@@ -5263,30 +5272,30 @@
-
+
-
+
-
-
+
+
-
+
-
+
-
+
@@ -5304,8 +5313,8 @@
-
-
+
+
@@ -5332,7 +5341,7 @@
-
+
@@ -5344,14 +5353,14 @@
-
+
-
-
+
+
-
+
@@ -5402,16 +5411,16 @@
-
-
+
+
-
+
-
+
-
+
@@ -5428,7 +5437,7 @@
-
+
@@ -5442,65 +5451,65 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -5520,13 +5529,13 @@
-
+
-
-
-
-
+
+
+
+
@@ -5536,26 +5545,26 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -5570,28 +5579,28 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
@@ -5604,7 +5613,7 @@
-
+
@@ -5651,55 +5660,55 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
@@ -5707,61 +5716,61 @@
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5771,18 +5780,18 @@
-
+
-
+
-
+
@@ -5801,14 +5810,14 @@
-
+
-
+
@@ -5874,7 +5883,7 @@
-
+
@@ -5893,7 +5902,7 @@
-
+
@@ -5903,20 +5912,20 @@
-
+
-
+
-
+
-
+
-
+
@@ -5927,7 +5936,7 @@
-
+
@@ -5935,15 +5944,15 @@
-
+
-
+
-
+
@@ -5953,32 +5962,32 @@
-
+
-
+
-
-
+
+
-
+
-
+
-
+
@@ -6000,8 +6009,8 @@
-
-
+
+
@@ -6009,7 +6018,7 @@
-
+
@@ -6027,7 +6036,7 @@
-
+
@@ -6056,24 +6065,24 @@
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -6084,42 +6093,42 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6139,7 +6148,7 @@
-
+
@@ -6150,7 +6159,7 @@
-
+
@@ -6161,12 +6170,12 @@
-
+
-
+
@@ -6175,7 +6184,7 @@
-
+
@@ -6189,119 +6198,119 @@
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
-
+
@@ -6311,33 +6320,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
@@ -6345,18 +6354,18 @@
-
-
+
+
-
+
-
+
@@ -6396,12 +6405,12 @@
-
-
-
+
+
+
-
+
@@ -6409,7 +6418,7 @@
-
+
@@ -6433,7 +6442,7 @@
-
+
@@ -6453,144 +6462,144 @@
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -6635,7 +6644,7 @@
-
+
@@ -6659,16 +6668,16 @@
-
+
-
+
-
+
-
+
@@ -6677,15 +6686,15 @@
-
+
-
+
-
-
-
+
+
+
@@ -6693,26 +6702,26 @@
-
+
-
-
+
+
-
+
-
+
-
+
@@ -6724,38 +6733,38 @@
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -6767,13 +6776,13 @@
-
-
+
+
-
-
+
+
@@ -6781,148 +6790,148 @@
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
@@ -6931,9 +6940,9 @@
-
+
-
+
@@ -6961,7 +6970,7 @@
-
+
@@ -6979,28 +6988,28 @@
-
+
-
+
-
+
-
+
-
-
+
+
@@ -7018,41 +7027,41 @@
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -7061,29 +7070,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
@@ -7096,16 +7105,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -7113,10 +7122,10 @@
-
+
-
+
@@ -7134,207 +7143,207 @@
-
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
@@ -7362,22 +7371,22 @@
-
+
-
+
-
+
-
+
-
+
@@ -7396,7 +7405,7 @@
-
+
@@ -7411,7 +7420,7 @@
-
+
@@ -7491,7 +7500,7 @@
-
+
@@ -7656,10 +7665,10 @@
-
+
-
+
@@ -7672,15 +7681,15 @@
-
+
-
+
-
+
@@ -7716,15 +7725,15 @@
-
+
-
+
-
+
-
+
@@ -7732,7 +7741,7 @@
-
+
@@ -7771,38 +7780,38 @@
-
+
-
+
-
+
-
-
+
+
-
+
-
-
-
-
+
+
+
+
-
+
-
+
@@ -7811,37 +7820,32 @@
-
-
-
-
-
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -7851,7 +7855,7 @@
-
+
@@ -7870,43 +7874,43 @@
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
@@ -7915,38 +7919,38 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -7986,11 +7990,15 @@
-
+
+
+
+
+
+
+
-
-
@@ -8006,21 +8014,21 @@
-
-
+
+
-
+
-
-
+
+
-
+
@@ -8029,7 +8037,7 @@
-
+
@@ -8053,93 +8061,93 @@
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
@@ -8153,8 +8161,8 @@
-
-
+
+
@@ -8184,8 +8192,8 @@
-
-
+
+
@@ -8216,34 +8224,34 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
@@ -8252,6 +8260,11 @@
+
+
+
+
+
@@ -8269,16 +8282,16 @@
-
+
-
-
-
+
+
+
-
+
@@ -8290,30 +8303,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8325,80 +8338,80 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
+
@@ -8409,27 +8422,27 @@
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
@@ -8437,17 +8450,17 @@
-
+
-
+
-
+
@@ -8455,24 +8468,24 @@
-
+
-
+
-
-
+
+
-
+
@@ -8487,22 +8500,22 @@
-
+
-
+
-
+
-
+
-
+
@@ -8511,13 +8524,13 @@
-
+
-
+
-
+
@@ -8526,10 +8539,10 @@
-
+
-
+
@@ -8541,12 +8554,12 @@
-
+
-
+
@@ -8560,8 +8573,8 @@
-
-
+
+
@@ -8577,41 +8590,36 @@
-
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
-
-
-
@@ -8656,21 +8664,21 @@
-
-
+
+
-
+
-
+
-
+
-
+
@@ -8679,13 +8687,13 @@
-
+
-
+
@@ -8693,56 +8701,56 @@
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -8754,7 +8762,7 @@
-
+
@@ -8792,7 +8800,7 @@
-
+
@@ -8802,26 +8810,26 @@
-
+
-
+
-
+
-
+
@@ -8841,76 +8849,76 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -8918,6 +8926,11 @@
+
+
+
+
+
@@ -8944,7 +8957,7 @@
-
+
@@ -8952,7 +8965,7 @@
-
+
@@ -8990,7 +9003,7 @@
-
+
@@ -9003,20 +9016,20 @@
-
-
+
+
-
+
-
+
@@ -9026,20 +9039,20 @@
-
+
-
-
+
+
-
+
-
+
@@ -9060,7 +9073,7 @@
-
+
@@ -9078,7 +9091,7 @@
-
+
@@ -9095,27 +9108,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9128,12 +9141,12 @@
-
+
-
+
-
+
@@ -9144,7 +9157,7 @@
-
+
@@ -9160,11 +9173,11 @@
-
+
-
-
+
+
@@ -9178,19 +9191,19 @@
-
+
-
-
+
+
-
+
-
+
@@ -9222,7 +9235,7 @@
-
+
@@ -9248,7 +9261,7 @@
-
+
@@ -9260,7 +9273,7 @@
-
+
@@ -9272,15 +9285,15 @@
-
+
-
+
-
+
@@ -9289,7 +9302,7 @@
-
+
@@ -9300,47 +9313,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9372,17 +9385,17 @@
-
-
+
+
-
+
-
-
+
+
@@ -9390,18 +9403,18 @@
-
+
-
+
-
+
@@ -9416,7 +9429,7 @@
-
+
@@ -9429,8 +9442,8 @@
-
-
+
+
@@ -9454,19 +9467,19 @@
-
+
-
+
-
+
@@ -9491,10 +9504,10 @@
-
+
-
+
@@ -9502,7 +9515,7 @@
-
+
@@ -9535,7 +9548,7 @@
-
+
@@ -9550,7 +9563,7 @@
-
+
@@ -9592,17 +9605,17 @@
-
+
-
+
-
+
@@ -9636,15 +9649,15 @@
-
+
-
+
-
+
@@ -9674,17 +9687,17 @@
-
-
+
+
-
-
+
+
-
+
-
+
@@ -9697,7 +9710,7 @@
-
+
@@ -9705,58 +9718,58 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9799,7 +9812,7 @@
-
+
@@ -9820,7 +9833,7 @@
-
+
@@ -9841,16 +9854,16 @@
-
+
-
+
-
+
-
+
@@ -10008,7 +10021,7 @@
-
+
@@ -10027,36 +10040,36 @@
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
@@ -10103,7 +10116,7 @@
-
+
@@ -10111,7 +10124,7 @@
-
+
@@ -10119,7 +10132,7 @@
-
+
@@ -10127,7 +10140,7 @@
-
+
@@ -10135,7 +10148,7 @@
-
+
@@ -10143,7 +10156,7 @@
-
+
@@ -10151,7 +10164,7 @@
-
+
@@ -10159,7 +10172,7 @@
-
+
@@ -10167,7 +10180,7 @@
-
+
@@ -10175,7 +10188,7 @@
-
+
@@ -10183,7 +10196,7 @@
-
+
@@ -10191,7 +10204,7 @@
-
+
@@ -10199,7 +10212,7 @@
-
+
@@ -10207,13 +10220,13 @@
-
+
-
+
@@ -10221,7 +10234,7 @@
-
+
@@ -10244,52 +10257,52 @@
-
-
+
+
-
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
+
+
@@ -10298,26 +10311,26 @@
-
+
-
+
-
+
-
+
-
+
@@ -10327,136 +10340,136 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
-
-
-
+
+
+
+
+
@@ -10464,11 +10477,11 @@
-
+
-
+
@@ -10483,17 +10496,17 @@
-
+
-
-
+
+
-
+
-
-
+
+
@@ -10516,14 +10529,14 @@
-
+
-
+
@@ -10533,7 +10546,7 @@
-
+
@@ -10553,34 +10566,34 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
-
+
@@ -10595,7 +10608,7 @@
-
+
@@ -10613,45 +10626,45 @@
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
@@ -10676,11 +10689,11 @@
-
+
-
+
@@ -10691,17 +10704,17 @@
-
+
-
+
-
+
-
+
@@ -10746,8 +10759,8 @@
-
-
+
+
@@ -10761,12 +10774,12 @@
-
+
-
+
-
-
+
+
@@ -10785,7 +10798,7 @@
-
+
@@ -10793,7 +10806,7 @@
-
+
@@ -10826,10 +10839,10 @@
-
+
-
+
@@ -10838,7 +10851,7 @@
-
+
@@ -10856,7 +10869,7 @@
-
+
@@ -10864,7 +10877,7 @@
-
+
@@ -10876,47 +10889,47 @@
-
+
-
+
-
+
-
-
+
+
-
-
+
+
+
-
-
+
+
+
-
-
-
+
-
+
-
+
-
+
-
-
+
+
@@ -10948,18 +10961,18 @@
-
+
-
+
-
-
-
+
+
+
@@ -10972,178 +10985,178 @@
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
@@ -11151,24 +11164,24 @@
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -11176,9 +11189,9 @@
-
+
-
+
@@ -11192,7 +11205,7 @@
-
+
@@ -11217,15 +11230,15 @@
-
+
-
+
-
+
@@ -11233,29 +11246,29 @@
-
+
-
+
-
+
-
+
-
+
-
-
+
+
@@ -11275,18 +11288,18 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
@@ -11309,25 +11322,25 @@
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
@@ -11346,74 +11359,74 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
@@ -11430,30 +11443,30 @@
-
+
-
+
-
-
+
+
-
+
-
+
@@ -11469,7 +11482,7 @@
-
+
@@ -11477,7 +11490,7 @@
-
+
@@ -11538,12 +11551,12 @@
-
+
-
+
@@ -11561,7 +11574,7 @@
-
+
@@ -11581,14 +11594,14 @@
-
+
-
+
@@ -11606,14 +11619,14 @@
-
+
-
+
@@ -11690,7 +11703,7 @@
-
+
@@ -11706,7 +11719,7 @@
-
+
@@ -11714,7 +11727,7 @@
-
+
@@ -11750,12 +11763,12 @@
-
+
-
+
@@ -11788,92 +11801,92 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
@@ -11889,7 +11902,7 @@
-
+
@@ -11898,7 +11911,7 @@
-
+
@@ -11907,14 +11920,14 @@
-
+
-
-
-
+
+
+
@@ -11930,7 +11943,7 @@
-
+
@@ -11948,32 +11961,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -11981,7 +11994,7 @@
-
+
@@ -11993,10 +12006,10 @@
-
+
-
+
@@ -12014,7 +12027,7 @@
-
+
@@ -12026,7 +12039,7 @@
-
+
@@ -12038,7 +12051,7 @@
-
+
@@ -12050,7 +12063,7 @@
-
+
@@ -12062,7 +12075,7 @@
-
+
@@ -12074,7 +12087,7 @@
-
+
@@ -12086,7 +12099,7 @@
-
+
@@ -12098,7 +12111,7 @@
-
+
@@ -12106,7 +12119,7 @@
-
+
@@ -12161,7 +12174,7 @@
-
+
@@ -12482,7 +12495,7 @@
-
+
@@ -12561,7 +12574,7 @@
-
+
@@ -12666,7 +12679,7 @@
-
+
@@ -12691,7 +12704,7 @@
-
+
@@ -12746,7 +12759,7 @@
-
+
@@ -12766,27 +12779,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -13051,7 +13064,7 @@
-
+
@@ -13084,7 +13097,7 @@
-
+
@@ -13096,16 +13109,16 @@
-
-
+
+
-
+
-
+
@@ -13157,75 +13170,75 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -13237,12 +13250,12 @@
-
+
-
+
@@ -13320,7 +13333,7 @@
-
+
@@ -13329,7 +13342,7 @@
-
+
@@ -13337,7 +13350,7 @@
-
+
@@ -13358,7 +13371,7 @@
-
+
@@ -13948,26 +13961,26 @@
-
+
-
+
-
+
-
+
@@ -14030,7 +14043,7 @@
-
+
@@ -14048,15 +14061,15 @@
-
+
-
+
-
+
@@ -14071,19 +14084,19 @@
-
+
-
+
-
+
@@ -14263,7 +14276,7 @@
-
+
@@ -14374,7 +14387,7 @@
-
+
@@ -14384,7 +14397,7 @@
-
+
@@ -14423,7 +14436,7 @@
-
+
@@ -14436,7 +14449,7 @@
-
+
@@ -14444,15 +14457,15 @@
-
+
-
-
-
+
+
+
@@ -14460,72 +14473,72 @@
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -14543,99 +14556,99 @@
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -14644,10 +14657,10 @@
-
+
-
+
@@ -14659,22 +14672,22 @@
-
+
-
+
-
+
-
-
+
+
-
+
@@ -14689,7 +14702,7 @@
-
+
@@ -14698,9 +14711,9 @@
-
+
-
+
@@ -14715,130 +14728,130 @@
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
@@ -14857,7 +14870,7 @@
-
+
@@ -14865,13 +14878,13 @@
-
+
-
-
+
+
-
+
@@ -14916,7 +14929,7 @@
-
+
@@ -14940,16 +14953,16 @@
-
+
-
+
-
+
-
+
@@ -14958,36 +14971,36 @@
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -14995,7 +15008,7 @@
-
+
@@ -15011,7 +15024,7 @@
-
+
@@ -15024,7 +15037,7 @@
-
+
@@ -15072,15 +15085,15 @@
-
+
-
+
-
+
@@ -15088,7 +15101,7 @@
-
+
@@ -15102,7 +15115,7 @@
-
+
@@ -15186,19 +15199,19 @@
-
+
-
+
-
+
-
+
@@ -15255,13 +15268,13 @@
-
+
-
+
-
+
@@ -15285,16 +15298,16 @@
-
+
-
+
-
+
-
+
@@ -15303,40 +15316,40 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -15348,17 +15361,17 @@
-
+
-
+
-
+
-
+
@@ -15367,7 +15380,7 @@
-
+
@@ -15375,7 +15388,7 @@
-
+
@@ -15411,7 +15424,7 @@
-
+
@@ -15443,7 +15456,7 @@
-
+
@@ -15467,7 +15480,7 @@
-
+
@@ -15539,13 +15552,13 @@
-
+
-
+
@@ -15597,7 +15610,7 @@
-
+
@@ -15660,10 +15673,10 @@
-
+
-
+
@@ -15678,13 +15691,13 @@
-
+
-
+
-
+
@@ -15714,7 +15727,7 @@
-
+
@@ -15726,7 +15739,7 @@
-
+
@@ -15735,24 +15748,24 @@
-
+
-
+
-
+
-
+
-
+
@@ -15760,7 +15773,7 @@
-
+
@@ -15772,7 +15785,7 @@
-
+
@@ -15793,14 +15806,14 @@
-
+
-
+
-
+
@@ -15822,7 +15835,7 @@
-
+
@@ -15834,7 +15847,7 @@
-
+
@@ -15846,22 +15859,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -15891,7 +15904,7 @@
-
+
@@ -15909,7 +15922,7 @@
-
+
@@ -15930,7 +15943,7 @@
-
+
@@ -15945,28 +15958,28 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -15977,34 +15990,37 @@
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -16013,28 +16029,28 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -16042,19 +16058,19 @@
-
+
-
+
-
+
-
+
-
+
@@ -16066,7 +16082,7 @@
-
+
@@ -16086,7 +16102,7 @@
-
+
@@ -16114,7 +16130,7 @@
-
+
@@ -16123,20 +16139,20 @@
-
+
-
+
-
+
@@ -16153,7 +16169,7 @@
-
+
@@ -16169,7 +16185,7 @@
-
+
@@ -16181,7 +16197,7 @@
-
+
@@ -16193,7 +16209,7 @@
-
+
@@ -16205,7 +16221,7 @@
-
+
@@ -16213,7 +16229,7 @@
-
+
@@ -17389,7 +17405,7 @@
-
+
@@ -17398,7 +17414,7 @@
-
+
@@ -17498,10 +17514,10 @@
-
+
-
+
@@ -17563,322 +17579,322 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -17919,7 +17935,7 @@
-
+
@@ -17933,10 +17949,10 @@
-
+
-
+
@@ -17953,7 +17969,7 @@
-
+
@@ -17973,27 +17989,27 @@
-
+
-
+
-
+
-
+
-
+
@@ -18066,7 +18082,7 @@
-
+
@@ -18095,10 +18111,10 @@
-
+
-
+
@@ -20663,7 +20679,7 @@
-
+
@@ -20671,7 +20687,7 @@
-
+
@@ -20699,10 +20715,10 @@
-
+
-
+
@@ -20763,7 +20779,7 @@
-
+
@@ -20796,13 +20812,13 @@
-
+
-
+
@@ -20810,7 +20826,7 @@
-
+
@@ -20835,7 +20851,7 @@
-
+
@@ -20849,10 +20865,10 @@
-
+
-
+
@@ -20886,7 +20902,7 @@
-
+
@@ -20903,7 +20919,7 @@
-
+
@@ -20918,7 +20934,7 @@
-
+
@@ -20932,10 +20948,10 @@
-
+
-
+
@@ -20952,10 +20968,10 @@
-
+
-
+
@@ -20981,7 +20997,7 @@
-
+
@@ -21084,7 +21100,7 @@
-
+
@@ -21114,13 +21130,13 @@
-
+
-
+
-
+
@@ -21129,24 +21145,24 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -21181,7 +21197,7 @@
-
+
@@ -21194,7 +21210,7 @@
-
+
@@ -21202,7 +21218,7 @@
-
+
@@ -21210,7 +21226,7 @@
-
+
@@ -21231,7 +21247,7 @@
-
+
@@ -21271,7 +21287,7 @@
-
+
@@ -21322,7 +21338,7 @@
-
+
@@ -21340,7 +21356,7 @@
-
+
@@ -21367,13 +21383,13 @@
-
+
-
+
@@ -21384,7 +21400,7 @@
-
+
@@ -21412,7 +21428,7 @@
-
+
@@ -21467,15 +21483,15 @@
-
+
-
+
-
+
@@ -21487,7 +21503,7 @@
-
+
@@ -21499,22 +21515,22 @@
-
+
-
+
-
+
-
+
@@ -21529,13 +21545,13 @@
-
+
-
+
@@ -21556,7 +21572,7 @@
-
+
@@ -21610,10 +21626,10 @@
-
+
-
+
@@ -21655,13 +21671,13 @@
-
+
-
+
-
+
@@ -21714,16 +21730,16 @@
-
+
-
+
-
+
@@ -21732,12 +21748,12 @@
-
+
-
+
@@ -21752,22 +21768,22 @@
-
+
-
+
-
+
-
+
-
+
@@ -21783,7 +21799,7 @@
-
+
@@ -21801,7 +21817,7 @@
-
+
@@ -21810,7 +21826,7 @@
-
+
@@ -21826,8 +21842,8 @@
-
-
+
+
@@ -21865,7 +21881,7 @@
-
+
@@ -21997,13 +22013,13 @@
-
+
-
+
@@ -22015,10 +22031,10 @@
-
+
-
+
@@ -22029,15 +22045,15 @@
-
+
-
+
-
+
@@ -22054,7 +22070,7 @@
-
+
@@ -22101,7 +22117,7 @@
-
+
@@ -22145,7 +22161,7 @@
-
+
@@ -22192,10 +22208,10 @@
-
+
-
+
@@ -22215,7 +22231,7 @@
-
+
@@ -22227,7 +22243,7 @@
-
+
@@ -22299,7 +22315,7 @@
-
+
@@ -22320,13 +22336,13 @@
-
+
-
+
-
+
@@ -22334,10 +22350,10 @@
-
+
-
+
@@ -22348,12 +22364,12 @@
-
+
-
+
@@ -22400,41 +22416,41 @@
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -22449,22 +22465,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -22477,7 +22493,7 @@
-
+
@@ -22487,7 +22503,7 @@
-
+
@@ -22495,10 +22511,10 @@
-
+
-
+
@@ -22553,42 +22569,42 @@
-
+
-
-
-
-
+
-
+
-
+
-
+
-
+
+
+
+
-
+
-
+
-
-
-
-
+
+
+
+
@@ -22635,37 +22651,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -22680,17 +22696,17 @@
-
-
-
+
+
+
-
-
+
+
-
+
@@ -22708,7 +22724,7 @@
-
+
@@ -22720,30 +22736,30 @@
-
+
-
+
-
-
+
+
-
+
-
-
-
-
+
+
+
+
-
+
-
+
@@ -22754,10 +22770,10 @@
-
+
-
+
@@ -22770,7 +22786,7 @@
-
+
@@ -22779,7 +22795,7 @@
-
+
@@ -22800,13 +22816,13 @@
-
+
-
+
@@ -22819,31 +22835,31 @@
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
@@ -22872,43 +22888,43 @@
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -22958,10 +22974,10 @@
-
+
-
+
@@ -22977,10 +22993,10 @@
-
+
-
+
@@ -22988,27 +23004,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -23024,15 +23040,15 @@
-
+
-
+
-
+
@@ -23040,19 +23056,19 @@
-
+
-
+
-
+
-
+
@@ -23061,44 +23077,44 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -23116,19 +23132,19 @@
-
+
-
+
-
+
-
+
@@ -23140,7 +23156,7 @@
-
+
@@ -23152,18 +23168,18 @@
-
-
-
+
+
+
-
+
-
+
@@ -23194,12 +23210,12 @@
-
+
-
+
@@ -23214,7 +23230,7 @@
-
+
@@ -23244,7 +23260,7 @@
-
+
@@ -23259,22 +23275,22 @@
-
+
-
+
-
+
-
+
-
+
@@ -23286,7 +23302,7 @@
-
+
@@ -23346,7 +23362,7 @@
-
+
@@ -23370,10 +23386,10 @@
-
+
-
+
@@ -23408,7 +23424,7 @@
-
+
@@ -23473,7 +23489,7 @@
-
+
@@ -23515,7 +23531,7 @@
-
+
@@ -23524,7 +23540,7 @@
-
+
@@ -23568,7 +23584,7 @@
-
+
@@ -23577,17 +23593,17 @@
-
-
-
-
+
+
+
+
-
+
-
-
+
+
-
+
@@ -23603,13 +23619,13 @@
-
-
+
+
-
-
-
-
+
+
+
+
@@ -23618,15 +23634,15 @@
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -23634,7 +23650,7 @@
-
+
@@ -23643,7 +23659,7 @@
-
+
@@ -23668,10 +23684,10 @@
-
+
-
+
@@ -23694,15 +23710,15 @@
-
+
-
+
-
+
@@ -23710,9 +23726,9 @@
-
-
-
+
+
+
@@ -23720,16 +23736,16 @@
-
+
-
+
-
-
+
+
@@ -23738,7 +23754,7 @@
-
+
@@ -23750,16 +23766,16 @@
-
+
-
+
-
+
@@ -23776,7 +23792,7 @@
-
+
@@ -23802,7 +23818,7 @@
-
+
@@ -23815,31 +23831,31 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -23884,27 +23900,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -23937,13 +23953,13 @@
-
+
-
+
-
+
@@ -23954,7 +23970,7 @@
-
+
@@ -23995,7 +24011,7 @@
-
+
@@ -24005,8 +24021,8 @@
-
-
+
+
@@ -24015,7 +24031,7 @@
-
+
@@ -24030,7 +24046,7 @@
-
+
@@ -24042,7 +24058,7 @@
-
+
@@ -24067,12 +24083,12 @@
-
+
-
+
@@ -24082,12 +24098,12 @@
-
+
-
-
+
+
@@ -24108,7 +24124,7 @@
-
+
@@ -24117,7 +24133,7 @@
-
+
@@ -24136,25 +24152,25 @@
-
+
-
+
-
+
-
+
@@ -24166,17 +24182,17 @@
-
+
-
+
-
+
@@ -24199,7 +24215,7 @@
-
+
@@ -24216,43 +24232,43 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
@@ -24261,51 +24277,51 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -24326,7 +24342,7 @@
-
+
@@ -24339,9 +24355,9 @@
-
-
-
+
+
+
@@ -24362,7 +24378,7 @@
-
+
@@ -24376,7 +24392,7 @@
-
+
@@ -24394,8 +24410,8 @@
-
-
+
+
@@ -24403,8 +24419,8 @@
-
-
+
+
@@ -24420,7 +24436,7 @@
-
+
@@ -24431,7 +24447,7 @@
-
+
@@ -24453,7 +24469,7 @@
-
+
@@ -24466,22 +24482,22 @@
-
-
+
+
-
+
-
+
-
+
-
+
@@ -24491,12 +24507,12 @@
-
+
-
+
-
-
+
+
@@ -24519,41 +24535,41 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
@@ -24570,7 +24586,7 @@
-
+
@@ -24578,20 +24594,20 @@
-
+
-
+
-
+
@@ -24637,7 +24653,7 @@
-
+
@@ -24650,13 +24666,13 @@
-
+
-
+
@@ -24706,7 +24722,7 @@
-
+
@@ -24715,33 +24731,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -24749,8 +24765,8 @@
-
-
+
+
@@ -24760,8 +24776,8 @@
-
-
+
+
@@ -24879,7 +24895,7 @@
-
+
@@ -24894,7 +24910,7 @@
-
+
@@ -24932,11 +24948,11 @@
-
+
-
+
@@ -24946,7 +24962,7 @@
-
+
@@ -24955,7 +24971,7 @@
-
+
@@ -25000,9 +25016,9 @@
-
-
-
+
+
+
@@ -25013,18 +25029,18 @@
-
+
-
+
-
+
-
+
@@ -25032,14 +25048,14 @@
-
+
-
+
@@ -25070,23 +25086,23 @@
-
+
-
+
-
+
-
+
-
+
@@ -25102,10 +25118,10 @@
-
+
-
+
@@ -25125,8 +25141,8 @@
-
-
+
+
@@ -25146,7 +25162,7 @@
-
+
@@ -25161,7 +25177,7 @@
-
+
@@ -25171,49 +25187,49 @@
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -25228,13 +25244,13 @@
-
+
-
+
@@ -25246,8 +25262,8 @@
-
-
+
+
@@ -25267,51 +25283,51 @@
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -25321,57 +25337,57 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -25379,114 +25395,114 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
@@ -25495,7 +25511,7 @@
-
+
@@ -25503,8 +25519,8 @@
-
-
+
+
@@ -25514,7 +25530,7 @@
-
+
@@ -25530,11 +25546,11 @@
-
+
-
+
@@ -25548,7 +25564,7 @@
-
+
@@ -25556,11 +25572,11 @@
-
+
-
+
@@ -25568,7 +25584,7 @@
-
+
@@ -25578,7 +25594,7 @@
-
+
@@ -25590,27 +25606,27 @@
-
+
-
-
+
+
-
+
-
+
-
+
@@ -25618,50 +25634,50 @@
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
@@ -25669,17 +25685,17 @@
-
-
-
+
+
+
-
+
-
+
@@ -25703,7 +25719,7 @@
-
+
@@ -25726,56 +25742,56 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -25784,31 +25800,31 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
@@ -25824,51 +25840,51 @@
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -25907,7 +25923,7 @@
-
+
@@ -25923,20 +25939,20 @@
-
+
-
+
-
+
-
+
@@ -25948,25 +25964,25 @@
-
+
-
+
-
+
-
+
-
+
@@ -25987,7 +26003,7 @@
-
+
@@ -26060,7 +26076,7 @@
-
+
@@ -26084,7 +26100,7 @@
-
+
@@ -26094,7 +26110,7 @@
-
+
@@ -26102,8 +26118,8 @@
-
-
+
+
@@ -26145,7 +26161,7 @@
-
+
@@ -26153,7 +26169,7 @@
-
+
@@ -26182,7 +26198,7 @@
-
+
@@ -26209,13 +26225,13 @@
-
+
-
+
-
+
@@ -26231,22 +26247,22 @@
-
+
-
+
-
+
-
+
@@ -26257,7 +26273,7 @@
-
+
@@ -26305,7 +26321,7 @@
-
+
@@ -26338,55 +26354,55 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -26398,12 +26414,12 @@
-
+
-
+
@@ -26416,7 +26432,7 @@
-
+
@@ -26427,7 +26443,7 @@
-
+
@@ -26444,7 +26460,7 @@
-
+
@@ -26477,8 +26493,8 @@
-
-
+
+
@@ -26532,7 +26548,7 @@
-
+
@@ -26550,7 +26566,7 @@
-
+
@@ -26572,7 +26588,7 @@
-
+
@@ -26586,7 +26602,7 @@
-
+
@@ -26644,7 +26660,7 @@
-
+
@@ -26656,13 +26672,13 @@
-
-
+
+
-
-
+
+
@@ -26694,7 +26710,7 @@
-
+
@@ -26724,7 +26740,7 @@
-
+
@@ -26756,7 +26772,7 @@
-
+
@@ -26780,8 +26796,8 @@
-
-
+
+
@@ -26794,7 +26810,7 @@
-
+
@@ -26826,10 +26842,10 @@
-
+
-
+
@@ -26847,7 +26863,7 @@
-
+
@@ -26860,7 +26876,7 @@
-
+
@@ -26872,10 +26888,10 @@
-
-
-
-
+
+
+
+
@@ -26893,7 +26909,7 @@
-
+
@@ -26963,54 +26979,54 @@
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
@@ -27076,7 +27092,7 @@
-
+
@@ -27103,45 +27119,45 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -27149,33 +27165,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -27186,48 +27202,48 @@
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -27244,36 +27260,36 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
@@ -27288,213 +27304,213 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -27512,13 +27528,13 @@
-
+
-
+
@@ -27530,7 +27546,7 @@
-
+
@@ -27540,7 +27556,7 @@
-
+
@@ -27550,7 +27566,7 @@
-
+
@@ -27564,7 +27580,7 @@
-
+
@@ -27575,9 +27591,9 @@
-
-
-
+
+
+
@@ -27614,16 +27630,16 @@
-
+
-
+
-
+
@@ -27633,42 +27649,42 @@
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
+
-
+
-
-
-
+
+
+
@@ -27683,7 +27699,7 @@
-
+
@@ -27693,16 +27709,16 @@
-
+
-
+
-
+
@@ -27712,29 +27728,29 @@
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -27747,35 +27763,35 @@
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -27810,90 +27826,90 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -27908,10 +27924,10 @@
-
+
-
+
@@ -27931,28 +27947,24 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
-
-
-
@@ -27988,34 +28000,34 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
@@ -28023,7 +28035,7 @@
-
+
@@ -28040,31 +28052,31 @@
-
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
@@ -28098,7 +28110,7 @@
-
+
@@ -28112,8 +28124,8 @@
-
-
+
+
@@ -28134,7 +28146,7 @@
-
+
@@ -28143,13 +28155,13 @@
-
+
-
+
@@ -28165,7 +28177,7 @@
-
+
@@ -28173,13 +28185,13 @@
-
+
-
+
@@ -28192,31 +28204,31 @@
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
-
+
+
@@ -28225,13 +28237,13 @@
-
-
+
+
-
+
@@ -28245,15 +28257,15 @@
-
-
-
+
+
+
-
+
@@ -28261,7 +28273,7 @@
-
+
@@ -28319,7 +28331,7 @@
-
+
@@ -28330,23 +28342,23 @@
-
-
+
+
-
+
-
+
-
+
@@ -28374,7 +28386,7 @@
-
+
@@ -28384,45 +28396,45 @@
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
@@ -28433,110 +28445,110 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
@@ -28544,13 +28556,13 @@
-
+
-
+
@@ -28577,7 +28589,7 @@
-
+
@@ -28586,31 +28598,31 @@
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
@@ -28631,31 +28643,31 @@
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
@@ -28664,15 +28676,15 @@
-
+
-
+
-
-
+
+
@@ -28681,23 +28693,23 @@
-
+
-
+
-
+
-
-
-
+
+
+
@@ -28706,7 +28718,7 @@
-
+
@@ -28716,32 +28728,32 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -28749,24 +28761,24 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
@@ -28785,7 +28797,7 @@
-
+
@@ -28809,104 +28821,104 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
@@ -28920,12 +28932,12 @@
-
+
-
+
@@ -28942,19 +28954,19 @@
-
+
-
+
-
+
@@ -28973,7 +28985,7 @@
-
+
@@ -28992,7 +29004,7 @@
-
+
@@ -29005,25 +29017,25 @@
-
+
-
+
-
+
-
-
+
+
-
+
@@ -29167,7 +29179,7 @@
-
+
@@ -29176,13 +29188,13 @@
-
+
-
+
@@ -29209,13 +29221,13 @@
-
+
-
+
@@ -29233,27 +29245,27 @@
-
+
-
+
-
+
-
+
-
+
@@ -29267,19 +29279,19 @@
-
+
-
+
-
+
@@ -29293,25 +29305,25 @@
-
+
-
+
-
-
+
+
-
+
@@ -29327,7 +29339,7 @@
-
+
@@ -29337,31 +29349,31 @@
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -29378,13 +29390,13 @@
-
-
-
+
+
+
-
-
+
+
@@ -29403,7 +29415,7 @@
-
+
@@ -29437,11 +29449,11 @@
-
+
-
+
@@ -29449,12 +29461,12 @@
-
+
-
-
+
+
@@ -29465,7 +29477,7 @@
-
+
@@ -29474,19 +29486,19 @@
-
+
-
+
-
+
-
+
@@ -29498,73 +29510,73 @@
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
-
+
@@ -29574,12 +29586,12 @@
-
+
-
+
@@ -29600,27 +29612,27 @@
-
+
-
+
-
+
-
+
-
+
@@ -29636,14 +29648,14 @@
-
-
+
+
-
+
@@ -29656,8 +29668,8 @@
-
-
+
+
@@ -29670,78 +29682,78 @@
-
-
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -29751,7 +29763,7 @@
-
+
@@ -29774,13 +29786,13 @@
-
+
-
-
+
+
@@ -29792,7 +29804,7 @@
-
+
@@ -29804,8 +29816,8 @@
-
-
+
+
@@ -29820,21 +29832,21 @@
-
+
-
+
-
+
-
-
+
+
-
+
@@ -29845,10 +29857,10 @@
-
+
-
+
@@ -29871,18 +29883,18 @@
-
+
-
+
-
+
-
+
@@ -29890,7 +29902,7 @@
-
+
@@ -29898,7 +29910,7 @@
-
+
@@ -29910,9 +29922,9 @@
-
+
-
+
@@ -29924,34 +29936,34 @@
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
@@ -29962,73 +29974,73 @@
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -30040,121 +30052,121 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
@@ -30170,57 +30182,57 @@
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
@@ -30228,20 +30240,20 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -30263,136 +30275,136 @@
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
@@ -30402,8 +30414,8 @@
-
-
+
+
@@ -30418,7 +30430,7 @@
-
+
@@ -30426,62 +30438,62 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -30495,10 +30507,10 @@
-
+
-
+
@@ -30510,7 +30522,7 @@
-
+
@@ -30523,14 +30535,14 @@
-
+
-
-
+
+
-
-
+
+
@@ -30539,41 +30551,41 @@
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
@@ -30582,85 +30594,85 @@
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -30669,12 +30681,12 @@
-
+
-
+
@@ -30699,99 +30711,99 @@
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
@@ -30805,20 +30817,20 @@
-
+
-
+
-
+
-
+
@@ -30826,37 +30838,37 @@
-
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
@@ -30867,141 +30879,141 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -31017,7 +31029,7 @@
-
+
@@ -31050,192 +31062,192 @@
-
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
@@ -31280,7 +31292,7 @@
-
+
@@ -31304,16 +31316,16 @@
-
+
-
+
-
+
-
+
@@ -31322,7 +31334,7 @@
-
+
@@ -31330,31 +31342,31 @@
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
@@ -31367,7 +31379,7 @@
-
+
@@ -31389,7 +31401,7 @@
-
+
@@ -31402,7 +31414,7 @@
-
+
@@ -31413,32 +31425,32 @@
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
@@ -31466,7 +31478,7 @@
-
+
@@ -31475,7 +31487,7 @@
-
+
@@ -31490,13 +31502,13 @@
-
+
-
+
@@ -31512,9 +31524,9 @@
-
+
-
+
@@ -31525,14 +31537,14 @@
-
+
-
+
@@ -31547,10 +31559,10 @@
-
+
-
+
@@ -31565,19 +31577,19 @@
-
+
-
+
-
-
+
+
@@ -31586,48 +31598,48 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
@@ -31646,20 +31658,20 @@
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
diff --git a/Include/cpython/pystate.h b/Include/cpython/pystate.h
index f428396411c5e5..c1b97d428e2e9b 100644
--- a/Include/cpython/pystate.h
+++ b/Include/cpython/pystate.h
@@ -208,6 +208,8 @@ struct _ts {
*/
PyObject *threading_local_sentinel;
_PyRemoteDebuggerSupport remote_debugger_support;
+
+ _PyStackChunk *datastack_cached_chunk;
};
/* other API */
diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-11-00-13-59.gh-issue-142183.2iVhJH.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-03-11-00-13-59.gh-issue-142183.2iVhJH.rst
new file mode 100644
index 00000000000000..827224dc71e827
--- /dev/null
+++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-03-11-00-13-59.gh-issue-142183.2iVhJH.rst
@@ -0,0 +1 @@
+Avoid a pathological case where repeated calls at a specific stack depth could be significantly slower.
diff --git a/Python/pystate.c b/Python/pystate.c
index 7188e5bf361fa5..2b67a40fe4f787 100644
--- a/Python/pystate.c
+++ b/Python/pystate.c
@@ -1575,6 +1575,7 @@ init_threadstate(_PyThreadStateImpl *_tstate,
tstate->datastack_chunk = NULL;
tstate->datastack_top = NULL;
tstate->datastack_limit = NULL;
+ tstate->datastack_cached_chunk = NULL;
tstate->what_event = -1;
tstate->current_executor = NULL;
tstate->dict_global_version = 0;
@@ -1714,6 +1715,11 @@ clear_datastack(PyThreadState *tstate)
_PyObject_VirtualFree(chunk, chunk->size);
chunk = prev;
}
+ if (tstate->datastack_cached_chunk != NULL) {
+ _PyObject_VirtualFree(tstate->datastack_cached_chunk,
+ tstate->datastack_cached_chunk->size);
+ tstate->datastack_cached_chunk = NULL;
+ }
}
void
@@ -3029,9 +3035,20 @@ push_chunk(PyThreadState *tstate, int size)
while (allocate_size < (int)sizeof(PyObject*)*(size + MINIMUM_OVERHEAD)) {
allocate_size *= 2;
}
- _PyStackChunk *new = allocate_chunk(allocate_size, tstate->datastack_chunk);
- if (new == NULL) {
- return NULL;
+ _PyStackChunk *new;
+ if (tstate->datastack_cached_chunk != NULL
+ && (size_t)allocate_size <= tstate->datastack_cached_chunk->size)
+ {
+ new = tstate->datastack_cached_chunk;
+ tstate->datastack_cached_chunk = NULL;
+ new->previous = tstate->datastack_chunk;
+ new->top = 0;
+ }
+ else {
+ new = allocate_chunk(allocate_size, tstate->datastack_chunk);
+ if (new == NULL) {
+ return NULL;
+ }
}
if (tstate->datastack_chunk) {
tstate->datastack_chunk->top = tstate->datastack_top -
@@ -3067,12 +3084,17 @@ _PyThreadState_PopFrame(PyThreadState *tstate, _PyInterpreterFrame * frame)
if (base == &tstate->datastack_chunk->data[0]) {
_PyStackChunk *chunk = tstate->datastack_chunk;
_PyStackChunk *previous = chunk->previous;
+ _PyStackChunk *cached = tstate->datastack_cached_chunk;
// push_chunk ensures that the root chunk is never popped:
assert(previous);
tstate->datastack_top = &previous->data[previous->top];
tstate->datastack_chunk = previous;
- _PyObject_VirtualFree(chunk, chunk->size);
tstate->datastack_limit = (PyObject **)(((char *)previous) + previous->size);
+ chunk->previous = NULL;
+ if (cached != NULL) {
+ _PyObject_VirtualFree(cached, cached->size);
+ }
+ tstate->datastack_cached_chunk = chunk;
}
else {
assert(tstate->datastack_top);