diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml
index a9267c8755f9..5cf98b3e7288 100644
--- a/android/abi_gki_aarch64.xml
+++ b/android/abi_gki_aarch64.xml
@@ -1842,12 +1842,14 @@
+
+
@@ -2856,7 +2858,6 @@
-
@@ -3169,6 +3170,7 @@
+
@@ -3406,7 +3408,6 @@
-
@@ -3451,25 +3452,16 @@
-
-
-
-
-
-
-
-
-
@@ -3798,6 +3790,7 @@
+
@@ -3816,6 +3809,7 @@
+
@@ -3902,6 +3896,7 @@
+
@@ -3914,6 +3909,7 @@
+
@@ -4688,6 +4684,7 @@
+
@@ -5032,16 +5029,16 @@
-
+
-
+
-
+
-
+
@@ -5894,13 +5891,13 @@
-
+
-
+
-
+
@@ -6143,15 +6140,15 @@
-
+
-
+
-
+
@@ -6383,21 +6380,21 @@
-
+
-
+
-
+
-
+
-
+
@@ -6611,13 +6608,13 @@
-
+
-
+
-
+
@@ -6836,12 +6833,12 @@
-
+
-
+
-
+
@@ -6864,13 +6861,13 @@
-
+
-
+
-
+
@@ -7173,10 +7170,10 @@
-
+
-
+
@@ -8161,10 +8158,10 @@
-
+
-
+
@@ -9249,26 +9246,26 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -11050,29 +11047,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -12563,42 +12560,42 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -14732,74 +14729,74 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -17688,106 +17685,106 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -18766,12 +18763,12 @@
-
+
-
+
-
+
@@ -20367,78 +20364,78 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -21677,38 +21674,38 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -22809,15 +22806,15 @@
-
+
-
+
-
+
-
+
@@ -23491,190 +23488,190 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -23884,33 +23881,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -25596,60 +25593,60 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -26142,7 +26139,7 @@
-
+
@@ -26186,174 +26183,174 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -27579,18 +27576,18 @@
-
+
-
+
-
+
-
+
-
+
@@ -28212,7 +28209,7 @@
-
+
@@ -28535,59 +28532,59 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -30229,26 +30226,26 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
+
@@ -31214,48 +31211,48 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -31960,21 +31957,21 @@
-
+
-
+
-
+
-
-
+
+
-
+
@@ -32510,21 +32507,21 @@
-
+
-
+
-
-
+
+
-
+
-
+
@@ -36863,16 +36860,16 @@
-
+
-
+
-
+
-
+
@@ -36922,10 +36919,10 @@
-
+
-
+
@@ -37036,10 +37033,10 @@
-
+
-
+
@@ -37308,13 +37305,13 @@
-
+
-
+
-
+
@@ -37330,10 +37327,10 @@
-
+
-
+
@@ -37349,28 +37346,28 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -37384,10 +37381,10 @@
-
+
-
+
@@ -37402,42 +37399,42 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -37794,7 +37791,7 @@
-
+
@@ -37810,13 +37807,13 @@
-
+
-
+
-
+
@@ -38031,10 +38028,10 @@
-
+
-
+
@@ -38138,10 +38135,10 @@
-
+
-
+
@@ -38921,13 +38918,13 @@
-
+
-
+
-
+
@@ -38992,28 +38989,28 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -39258,16 +39255,16 @@
-
+
-
+
-
+
-
+
@@ -39393,10 +39390,10 @@
-
+
-
+
@@ -39507,10 +39504,10 @@
-
+
-
+
@@ -39551,10 +39548,10 @@
-
+
-
+
@@ -39570,13 +39567,13 @@
-
+
-
+
-
+
@@ -39635,10 +39632,10 @@
-
+
-
+
@@ -39890,10 +39887,10 @@
-
+
-
+
@@ -40672,10 +40669,10 @@
-
+
-
+
@@ -41162,13 +41159,13 @@
-
+
-
+
-
+
@@ -41213,10 +41210,10 @@
-
+
-
+
@@ -41568,27 +41565,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -41610,10 +41607,10 @@
-
+
-
+
@@ -41654,10 +41651,10 @@
-
+
-
+
@@ -41701,10 +41698,10 @@
-
+
-
+
@@ -42106,18 +42103,18 @@
-
+
-
+
-
+
-
+
@@ -42142,25 +42139,25 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -42189,10 +42186,10 @@
-
+
-
+
@@ -42234,13 +42231,13 @@
-
+
-
+
-
+
@@ -42290,10 +42287,10 @@
-
+
-
+
@@ -42336,10 +42333,10 @@
-
+
-
+
@@ -42695,16 +42692,16 @@
-
+
-
+
-
+
-
+
@@ -43285,26 +43282,26 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -43544,13 +43541,13 @@
-
+
-
+
-
+
@@ -43596,19 +43593,19 @@
-
+
-
+
-
+
-
+
-
+
@@ -43618,10 +43615,10 @@
-
+
-
+
@@ -43634,21 +43631,21 @@
-
+
-
+
-
+
-
+
-
+
@@ -43777,13 +43774,13 @@
-
+
-
+
-
+
@@ -43958,10 +43955,10 @@
-
+
-
+
@@ -44046,13 +44043,13 @@
-
+
-
+
-
+
@@ -44236,13 +44233,13 @@
-
+
-
+
-
+
@@ -44471,16 +44468,16 @@
-
+
-
+
-
+
-
+
@@ -44665,10 +44662,10 @@
-
+
-
+
@@ -46830,27 +46827,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -47593,7 +47590,7 @@
-
+
@@ -47604,7 +47601,7 @@
-
+
@@ -47773,13 +47770,13 @@
-
+
-
+
-
+
@@ -48070,7 +48067,7 @@
-
+
@@ -48180,14 +48177,14 @@
-
-
-
-
+
+
+
+
-
-
+
+
@@ -48308,10 +48305,10 @@
-
-
-
-
+
+
+
+
@@ -48914,19 +48911,19 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -49176,23 +49173,23 @@
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
@@ -49206,9 +49203,9 @@
-
-
-
+
+
+
@@ -49843,7 +49840,7 @@
-
+
@@ -51367,48 +51364,48 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -51454,25 +51451,25 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -51819,48 +51816,48 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -51891,16 +51888,16 @@
-
+
-
+
-
+
-
+
@@ -52128,10 +52125,10 @@
-
+
-
+
@@ -52269,16 +52266,16 @@
-
+
-
+
-
+
-
+
@@ -52930,46 +52927,46 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -53101,10 +53098,10 @@
-
+
-
+
@@ -53595,16 +53592,16 @@
-
+
-
+
-
+
-
+
@@ -55783,104 +55780,104 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
@@ -56358,10 +56355,10 @@
-
+
-
+
@@ -56377,36 +56374,36 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -56721,10 +56718,10 @@
-
+
-
+
@@ -58007,10 +58004,10 @@
-
+
-
+
@@ -58444,50 +58441,50 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
@@ -58533,6 +58530,9 @@
+
+
+
@@ -60145,10 +60145,10 @@
-
+
-
+
@@ -64012,7 +64012,7 @@
-
+
@@ -64030,7 +64030,7 @@
-
+
@@ -67036,55 +67036,55 @@
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -67301,13 +67301,13 @@
-
+
-
+
-
+
@@ -67847,7 +67847,7 @@
-
+
@@ -67910,7 +67910,7 @@
-
+
@@ -67958,12 +67958,12 @@
-
-
+
+
-
-
+
+
@@ -68003,489 +68003,489 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -68798,22 +68798,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -69115,6 +69115,12 @@
+
+
+
+
+
+
@@ -70847,7 +70853,7 @@
-
+
@@ -72336,10 +72342,10 @@
-
+
-
+
@@ -73144,13 +73150,13 @@
-
+
-
+
-
+
@@ -73293,10 +73299,10 @@
-
+
-
+
@@ -75769,10 +75775,10 @@
-
+
-
+
@@ -76203,13 +76209,13 @@
-
+
-
+
-
+
@@ -77417,7 +77423,7 @@
-
+
@@ -79166,10 +79172,10 @@
-
+
-
+
@@ -79685,13 +79691,13 @@
-
+
-
+
-
+
@@ -79820,19 +79826,19 @@
-
+
-
+
-
+
-
+
-
+
@@ -80257,40 +80263,40 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -80821,11 +80827,11 @@
-
-
+
+
-
+
@@ -80893,20 +80899,20 @@
-
-
+
+
-
+
-
+
-
+
-
+
@@ -80966,11 +80972,11 @@
-
-
+
+
-
+
@@ -82224,19 +82230,19 @@
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
@@ -82279,10 +82285,10 @@
-
-
-
-
+
+
+
+
@@ -83213,11 +83219,11 @@
-
-
+
+
-
+
@@ -83285,20 +83291,20 @@
-
-
+
+
-
+
-
+
-
+
-
+
@@ -83330,11 +83336,11 @@
-
-
+
+
-
+
@@ -85287,10 +85293,10 @@
-
+
-
+
@@ -85860,10 +85866,10 @@
-
+
-
+
@@ -86333,13 +86339,13 @@
-
+
-
+
-
+
@@ -88409,19 +88415,19 @@
-
+
-
+
-
+
-
+
-
+
@@ -89276,7 +89282,7 @@
-
+
@@ -89286,7 +89292,7 @@
-
+
@@ -89380,30 +89386,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -89461,35 +89467,35 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -89577,112 +89583,112 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -89756,30 +89762,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -89821,33 +89827,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -90717,16 +90723,16 @@
-
+
-
+
-
+
-
+
@@ -91178,56 +91184,56 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -91251,16 +91257,16 @@
-
+
-
+
-
+
-
+
@@ -91302,10 +91308,10 @@
-
+
-
+
@@ -91328,10 +91334,10 @@
-
+
-
+
@@ -91907,27 +91913,27 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -91974,13 +91980,13 @@
-
+
-
+
@@ -91988,7 +91994,7 @@
-
+
@@ -93510,11 +93516,11 @@
-
-
-
-
-
+
+
+
+
+
@@ -93692,7 +93698,7 @@
-
+
@@ -93709,7 +93715,7 @@
-
+
@@ -93755,7 +93761,7 @@
-
+
@@ -94267,13 +94273,13 @@
-
+
-
+
-
+
@@ -94366,10 +94372,10 @@
-
+
-
+
@@ -95099,13 +95105,13 @@
-
+
-
+
-
+
@@ -95383,7 +95389,7 @@
-
+
@@ -95467,21 +95473,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -95804,52 +95810,52 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -96060,29 +96066,29 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -96397,13 +96403,13 @@
-
+
-
+
-
+
@@ -96422,13 +96428,13 @@
-
+
-
+
-
+
@@ -96441,7 +96447,7 @@
-
+
@@ -96914,16 +96920,16 @@
-
+
-
+
-
+
-
+
@@ -97626,52 +97632,52 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -98523,18 +98529,18 @@
-
+
-
+
-
+
-
+
@@ -98886,13 +98892,13 @@
-
+
-
+
-
+
@@ -98998,136 +99004,136 @@
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
@@ -99229,22 +99235,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -99345,10 +99351,10 @@
-
+
-
+
@@ -100227,10 +100233,10 @@
-
+
-
+
@@ -100740,10 +100746,10 @@
-
+
-
+
@@ -100864,16 +100870,16 @@
-
+
-
+
-
+
-
+
@@ -101373,28 +101379,28 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -101437,10 +101443,10 @@
-
+
-
+
@@ -101494,10 +101500,10 @@
-
+
-
+
@@ -101633,16 +101639,16 @@
-
+
-
+
-
+
-
+
@@ -101664,21 +101670,21 @@
-
+
-
+
-
+
-
+
-
+
@@ -101934,7 +101940,7 @@
-
+
@@ -101953,25 +101959,25 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -101990,10 +101996,10 @@
-
+
-
+
@@ -102114,7 +102120,7 @@
-
+
@@ -102135,13 +102141,13 @@
-
+
-
+
-
+
@@ -102172,13 +102178,13 @@
-
+
-
+
-
+
@@ -102266,10 +102272,10 @@
-
+
-
+
@@ -102325,10 +102331,10 @@
-
+
-
+
@@ -103700,52 +103706,52 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -104314,18 +104320,18 @@
-
+
-
+
-
+
-
+
@@ -104494,13 +104500,13 @@
-
+
-
+
-
+
@@ -104609,22 +104615,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -104660,10 +104666,10 @@
-
+
-
+
@@ -104748,10 +104754,10 @@
-
-
-
-
+
+
+
+
@@ -105061,13 +105067,13 @@
-
+
-
+
-
+
@@ -106759,16 +106765,16 @@
-
+
-
+
-
+
-
+
@@ -106807,11 +106813,11 @@
-
+
-
+
@@ -106820,11 +106826,11 @@
-
+
-
+
@@ -106834,7 +106840,7 @@
-
+
@@ -107402,8 +107408,8 @@
-
-
+
+
@@ -107418,15 +107424,15 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
@@ -107446,29 +107452,29 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
@@ -107477,18 +107483,18 @@
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -107498,28 +107504,28 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
@@ -108113,12 +108119,12 @@
-
+
-
+
@@ -108289,10 +108295,10 @@
-
+
-
+
@@ -108464,7 +108470,7 @@
-
+
@@ -108478,7 +108484,7 @@
-
+
@@ -108536,7 +108542,7 @@
-
+
@@ -108638,22 +108644,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -108692,16 +108698,16 @@
-
+
-
+
-
+
-
+
@@ -108742,7 +108748,7 @@
-
+
@@ -108750,13 +108756,13 @@
-
+
-
+
@@ -109345,7 +109351,7 @@
-
+
@@ -110075,33 +110081,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -110136,87 +110142,87 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -110474,7 +110480,7 @@
-
+
@@ -110486,7 +110492,7 @@
-
+
@@ -110651,112 +110657,112 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -111107,7 +111113,7 @@
-
+
@@ -111120,19 +111126,19 @@
-
+
-
+
-
+
@@ -111159,7 +111165,7 @@
-
+
@@ -111169,7 +111175,7 @@
-
+
@@ -111183,7 +111189,7 @@
-
+
@@ -111199,7 +111205,7 @@
-
+
@@ -111230,7 +111236,7 @@
-
+
@@ -111246,7 +111252,7 @@
-
+
@@ -111870,10 +111876,10 @@
-
+
-
+
@@ -111887,18 +111893,18 @@
-
+
-
+
-
+
-
+
@@ -111912,10 +111918,10 @@
-
+
-
+
@@ -112192,16 +112198,16 @@
-
+
-
+
-
+
-
+
@@ -112214,43 +112220,43 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -112516,10 +112522,10 @@
-
+
-
+
@@ -112546,18 +112552,18 @@
-
+
-
+
-
+
-
+
@@ -112706,13 +112712,13 @@
-
+
-
+
-
+
@@ -112982,10 +112988,10 @@
-
+
-
+
@@ -113234,16 +113240,16 @@
-
+
-
+
-
+
-
+
@@ -113303,22 +113309,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -113417,10 +113423,10 @@
-
+
-
+
@@ -113573,10 +113579,10 @@
-
+
-
+
@@ -113587,10 +113593,10 @@
-
+
-
+
@@ -113615,10 +113621,10 @@
-
+
-
+
@@ -113803,10 +113809,10 @@
-
+
-
+
@@ -113882,10 +113888,10 @@
-
+
-
+
@@ -113931,10 +113937,10 @@
-
+
-
+
@@ -114222,13 +114228,13 @@
-
+
-
+
-
+
@@ -115064,11 +115070,11 @@
-
+
-
+
@@ -115140,7 +115146,7 @@
-
+
@@ -115167,7 +115173,7 @@
-
+
@@ -116084,35 +116090,35 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -116175,10 +116181,6 @@
-
-
-
-
@@ -117722,7 +117724,7 @@
-
+
@@ -118308,8 +118310,8 @@
-
-
+
+
@@ -118366,56 +118368,56 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
@@ -119573,10 +119575,10 @@
-
+
-
+
@@ -119920,6 +119922,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -120781,9 +120794,9 @@
-
-
-
+
+
+
@@ -120794,54 +120807,54 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
@@ -120856,56 +120869,56 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
@@ -120920,16 +120933,16 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -121957,44 +121970,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -122042,14 +122017,12 @@
-
-
@@ -122058,89 +122031,57 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
+
+
+
@@ -122152,11 +122093,6 @@
-
-
-
-
-
@@ -122207,48 +122143,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -122501,10 +122406,10 @@
-
+
-
+
@@ -126017,6 +125922,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -126748,14 +126669,6 @@
-
-
-
-
-
-
-
-
@@ -126764,14 +126677,6 @@
-
-
-
-
-
-
-
-
@@ -126925,16 +126830,16 @@
-
+
-
+
-
+
-
+
@@ -126981,10 +126886,10 @@
-
+
-
+
@@ -127638,10 +127543,10 @@
-
+
-
+
@@ -128421,10 +128326,10 @@
-
+
-
+
@@ -129087,13 +128992,13 @@
-
+
-
+
-
+
@@ -129377,8 +129282,8 @@
-
-
+
+
@@ -130743,10 +130648,10 @@
-
+
-
+
@@ -135374,8 +135279,8 @@
-
-
+
+
@@ -135798,8 +135703,8 @@
-
-
+
+
@@ -137267,13 +137172,13 @@
-
+
-
+
-
+
@@ -137442,10 +137347,10 @@
-
+
-
+
@@ -138207,16 +138112,16 @@
-
+
-
-
-
+
+
+
@@ -138809,9 +138714,9 @@
-
-
-
+
+
+
@@ -139276,7 +139181,7 @@
-
+
@@ -141332,10 +141237,10 @@
-
+
-
+
@@ -141525,9 +141430,9 @@
-
-
-
+
+
+
@@ -141535,25 +141440,25 @@
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -141564,8 +141469,8 @@
-
-
+
+
@@ -142470,10 +142375,10 @@
-
+
-
+
@@ -143058,22 +142963,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -143126,10 +143031,10 @@
-
+
-
+
@@ -143712,7 +143617,7 @@
-
+
@@ -143741,7 +143646,7 @@
-
+
@@ -143808,16 +143713,16 @@
-
+
-
+
-
+
-
+
@@ -144001,6 +143906,11 @@
+
+
+
+
+
@@ -144020,11 +143930,6 @@
-
-
-
-
-
@@ -144531,7 +144436,7 @@
-
+
@@ -144848,23 +144753,23 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
@@ -145117,13 +145022,13 @@
-
+
-
+
-
+
@@ -145397,10 +145302,10 @@
-
+
-
+
@@ -145410,13 +145315,13 @@
-
+
-
+
-
+
@@ -145655,7 +145560,7 @@
-
+
@@ -145690,16 +145595,16 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
@@ -145752,11 +145657,11 @@
-
+
-
+
@@ -145767,12 +145672,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -145784,10 +145689,10 @@
-
+
-
+
@@ -146035,44 +145940,44 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -146306,13 +146211,13 @@
-
+
-
+
-
+
@@ -146380,10 +146285,10 @@
-
+
-
+
@@ -146465,26 +146370,26 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
@@ -147256,10 +147161,10 @@
-
+
-
+
@@ -147744,19 +147649,19 @@
-
+
-
+
-
+
@@ -148009,7 +147914,7 @@
-
+
@@ -148061,7 +147966,7 @@
-
+
@@ -148201,7 +148106,7 @@
-
+
@@ -148384,10 +148289,10 @@
-
+
-
+
@@ -148548,10 +148453,10 @@
-
+
-
+
@@ -148583,7 +148488,7 @@
-
+
@@ -148594,7 +148499,7 @@
-
+
@@ -148758,7 +148663,7 @@
-
+
@@ -149091,55 +148996,55 @@
-
-
-
+
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -149217,67 +149122,67 @@
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
@@ -149303,14 +149208,14 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -149420,12 +149325,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -149778,7 +149683,7 @@
-
+
@@ -150841,10 +150746,10 @@
-
+
-
+
@@ -151657,33 +151562,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -152931,71 +152836,71 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -153896,10 +153801,10 @@
-
+
-
+
@@ -154078,10 +153983,10 @@
-
+
-
+
@@ -154707,10 +154612,10 @@
-
+
-
+
@@ -154776,10 +154681,10 @@
-
+
-
+
@@ -154904,10 +154809,10 @@
-
+
-
+
@@ -155292,10 +155197,10 @@
-
+
-
+
@@ -155805,47 +155710,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
@@ -156708,10 +156613,10 @@
-
+
-
+
@@ -156759,13 +156664,13 @@
-
+
-
+
-
+
@@ -157843,32 +157748,32 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -157900,10 +157805,10 @@
-
+
-
+
@@ -159306,46 +159211,46 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -159391,22 +159296,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -159632,10 +159537,10 @@
-
+
-
+
@@ -159678,10 +159583,10 @@
-
+
-
+
@@ -160184,13 +160089,13 @@
-
+
-
+
-
+
@@ -160572,10 +160477,10 @@
-
+
-
+
@@ -160979,7 +160884,7 @@
-
+
@@ -161980,8 +161885,8 @@
-
-
+
+
@@ -162416,26 +162321,26 @@
-
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
@@ -163369,16 +163274,16 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -163515,10 +163420,10 @@
-
+
-
+
@@ -163642,12 +163547,12 @@
-
+
-
+
-
+
@@ -163671,16 +163576,16 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -163692,7 +163597,7 @@
-
+
@@ -163875,10 +163780,10 @@
-
+
-
+
@@ -163956,58 +163861,58 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
@@ -164094,10 +163999,10 @@
-
-
-
-
+
+
+
+
@@ -164404,18 +164309,18 @@
-
+
-
+
-
+
-
+
@@ -164776,18 +164681,18 @@
-
+
-
+
-
+
-
+
@@ -164971,7 +164876,7 @@
-
+
@@ -165042,21 +164947,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -165344,7 +165249,7 @@
-
+
@@ -165451,10 +165356,10 @@
-
+
-
+
@@ -165501,10 +165406,10 @@
-
+
-
+
@@ -165629,7 +165534,7 @@
-
+
@@ -165657,6 +165562,11 @@
+
+
+
+
+
@@ -165818,12 +165728,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -165863,10 +165773,10 @@
-
-
-
-
+
+
+
+
@@ -165877,7 +165787,7 @@
-
+
@@ -165961,7 +165871,7 @@
-
+
@@ -166022,14 +165932,14 @@
-
-
-
+
+
+
-
-
-
+
+
+
@@ -166144,60 +166054,60 @@
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
@@ -166286,9 +166196,9 @@
-
-
-
+
+
+
@@ -166296,9 +166206,9 @@
-
-
-
+
+
+
@@ -166421,106 +166331,106 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
+
+
@@ -166807,7 +166717,7 @@
-
+
@@ -166869,7 +166779,7 @@
-
+
@@ -167684,21 +167594,21 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -167728,10 +167638,10 @@
-
+
-
+
@@ -167773,106 +167683,103 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
-
+
-
+
@@ -168013,50 +167920,50 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
+
+
-
+
+
+
+
@@ -168344,30 +168251,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -168447,10 +168354,10 @@
-
+
-
+
@@ -168657,10 +168564,10 @@
-
+
-
+
@@ -168864,30 +168771,30 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -168896,93 +168803,90 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
-
+
-
+
@@ -169196,10 +169100,10 @@
-
+
-
+
@@ -169396,10 +169300,10 @@
-
+
-
+
@@ -169614,50 +169518,50 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
+
+
-
+
+
+
+
@@ -169906,10 +169810,10 @@
-
+
-
+
@@ -170387,16 +170291,16 @@
-
+
-
+
-
+
-
+
@@ -170485,21 +170389,21 @@
-
+
-
+
-
+
@@ -172654,22 +172558,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -172818,13 +172722,13 @@
-
+
-
+
-
+
@@ -174209,9 +174113,9 @@
-
-
-
+
+
+
@@ -174292,19 +174196,19 @@
-
+
-
+
-
+
-
+
-
+
@@ -174326,10 +174230,10 @@
-
+
-
+
@@ -174666,65 +174570,65 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -174793,19 +174697,19 @@
-
+
-
+
-
+
-
+
-
+
@@ -174815,25 +174719,25 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -174868,25 +174772,25 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -174979,22 +174883,22 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -175467,7 +175371,7 @@
-
+
@@ -175576,7 +175480,7 @@
-
+
@@ -175585,63 +175489,63 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -175663,13 +175567,13 @@
-
+
-
+
-
+
@@ -175848,7 +175752,7 @@
-
+
@@ -175877,7 +175781,7 @@
-
+
@@ -175955,7 +175859,7 @@
-
+
@@ -176106,10 +176010,10 @@
-
+
-
+
@@ -176208,7 +176112,7 @@
-
+
@@ -176218,7 +176122,7 @@
-
+
@@ -176305,7 +176209,7 @@
-
+
@@ -176395,10 +176299,10 @@
-
+
-
+
@@ -176493,10 +176397,10 @@
-
+
-
+
@@ -176960,7 +176864,7 @@
-
+
@@ -177276,58 +177180,58 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -178182,6 +178086,157 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -178235,6 +178290,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -178249,24 +178389,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -178369,29 +178491,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -178662,201 +178761,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -180452,11 +180356,11 @@
-
-
+
+
-
+
@@ -182912,38 +182816,38 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -183032,56 +182936,56 @@
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -183640,29 +183544,29 @@
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -183797,7 +183701,7 @@
-
+
@@ -183868,13 +183772,13 @@
-
-
+
+
-
-
-
+
+
+
@@ -183900,7 +183804,7 @@
-
+
@@ -183967,10 +183871,10 @@
-
+
-
+
@@ -184037,7 +183941,7 @@
-
+
@@ -184294,19 +184198,19 @@
-
+
-
+
-
+
-
+
-
+
@@ -184694,16 +184598,16 @@
-
+
-
+
-
+
-
+
@@ -184747,10 +184651,10 @@
-
+
-
+
@@ -184773,51 +184677,51 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -184837,10 +184741,10 @@
-
+
-
+
@@ -185651,6 +185555,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -185678,6 +185604,10 @@
+
+
+
+
@@ -185686,6 +185616,13 @@
+
+
+
+
+
+
+
@@ -185693,6 +185630,13 @@
+
+
+
+
+
+
+
@@ -185722,6 +185666,9 @@
+
+
+
@@ -185834,22 +185781,22 @@
-
-
+
+
-
-
-
+
+
+
-
+
-
+
@@ -186895,10 +186842,10 @@
-
+
-
+
@@ -188186,10 +188133,10 @@
-
+
-
+
@@ -188274,10 +188221,10 @@
-
+
-
+
@@ -188296,13 +188243,13 @@
-
+
-
+
-
+
@@ -189143,10 +189090,10 @@
-
+
-
+
@@ -190007,16 +189954,16 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -190025,69 +189972,69 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -190319,6 +190266,12 @@
+
+
+
+
+
+
@@ -190383,6 +190336,10 @@
+
+
+
+
@@ -191080,6 +191037,6 @@
diff --git a/android/abi_gki_aarch64_cuttlefish b/android/abi_gki_aarch64_cuttlefish
index ed9d96a0557b..cce8b465f8a2 100644
--- a/android/abi_gki_aarch64_cuttlefish
+++ b/android/abi_gki_aarch64_cuttlefish
@@ -614,8 +614,8 @@
kmalloc_order_trace
kvfree
kvmalloc_node
- memdup_user
mutex_trylock
+ sg_alloc_table
__sg_alloc_table_from_pages
sg_free_table
sg_next
@@ -644,6 +644,8 @@
ttm_eu_fence_buffer_objects
ttm_eu_reserve_buffers
ttm_tt_init
+ vmalloc_to_page
+ vmemdup_user
vmemmap
ww_mutex_lock_interruptible
ww_mutex_unlock
diff --git a/android/abi_gki_aarch64_galaxy b/android/abi_gki_aarch64_galaxy
index bef65a0d87b9..b65bf734e98c 100644
--- a/android/abi_gki_aarch64_galaxy
+++ b/android/abi_gki_aarch64_galaxy
@@ -1103,9 +1103,11 @@
gpiochip_generic_free
gpiochip_generic_request
gpiochip_get_data
+ gpiochip_irqchip_add_key
gpiochip_line_is_valid
gpiochip_lock_as_irq
gpiochip_remove
+ gpiochip_set_nested_irqchip
gpiochip_unlock_as_irq
gpiod_direction_input
gpiod_direction_output
diff --git a/android/abi_gki_aarch64_imx b/android/abi_gki_aarch64_imx
index ce8c8cb823f1..f5d9826fcde9 100644
--- a/android/abi_gki_aarch64_imx
+++ b/android/abi_gki_aarch64_imx
@@ -255,12 +255,14 @@
fwnode_graph_get_next_endpoint
fwnode_handle_put
fwnode_property_read_u32_array
+ gcd
generic_handle_irq
get_cpu_device
__get_free_pages
get_random_bytes
get_unused_fd_flags
gpiod_direction_output_raw
+ gpiod_set_raw_value
gpiod_set_raw_value_cansleep
gpiod_set_value_cansleep
gpio_request
@@ -272,6 +274,7 @@
i2c_add_adapter
i2c_del_adapter
i2c_del_driver
+ i2c_put_adapter
i2c_register_driver
i2c_transfer
i2c_transfer_buffer_flags
@@ -306,9 +309,9 @@
kmalloc_caches
kmalloc_order_trace
kmem_cache_alloc_trace
- kmemdup
kobject_create_and_add
kobject_put
+ kstrtoull
kthread_create_on_node
kthread_should_stop
ktime_get
@@ -323,6 +326,7 @@
media_entity_remote_pad
memcpy
memset
+ __memset_io
mipi_dsi_attach
mipi_dsi_detach
mipi_dsi_driver_register_full
@@ -359,7 +363,6 @@
of_clk_get
of_clk_get_by_name
of_clk_src_onecell_get
- of_count_phandle_with_args
of_device_get_match_data
of_device_is_available
of_device_is_compatible
@@ -394,6 +397,7 @@
of_property_read_string
of_property_read_u32_index
of_property_read_variable_u32_array
+ of_reserved_mem_device_init_by_idx
of_reset_control_array_get
param_array_ops
param_ops_bool
@@ -478,6 +482,7 @@
__register_chrdev
register_netdev
__register_rpmsg_driver
+ register_virtio_device
register_virtio_driver
regmap_attach_dev
regmap_read
@@ -547,7 +552,9 @@
snd_soc_info_volsw
snd_soc_jack_add_gpios
snd_soc_of_parse_audio_routing
+ snd_soc_of_parse_audio_simple_widgets
snd_soc_of_parse_card_name
+ snd_soc_of_parse_daifmt
snd_soc_params_to_bclk
snd_soc_pm_ops
snd_soc_put_enum_double
@@ -665,6 +672,9 @@
vmalloc
vmalloc_to_page
vmemmap
+ vring_del_virtqueue
+ vring_interrupt
+ vring_new_virtqueue
vsnprintf
wait_for_completion_interruptible_timeout
wait_for_completion_timeout
@@ -777,7 +787,6 @@
drm_scdc_set_high_tmds_clock_ratio
drm_scdc_set_scrambling
drm_scdc_write
- i2c_put_adapter
of_get_i2c_adapter_by_node
# required by dw_hdmi-imx.ko
@@ -794,6 +803,7 @@
# required by dwc3-qcom.ko
devm_extcon_register_notifier
+ kmemdup
of_clk_get_parent_count
# required by dwc3.ko
@@ -845,7 +855,6 @@
of_mdiobus_register
of_phy_connect
of_phy_deregister_fixed_link
- of_phy_find_device
of_phy_is_fixed_link
of_phy_register_fixed_link
param_ops_byte
@@ -977,7 +986,6 @@
clk_notifier_register
clk_notifier_unregister
dma_request_chan
- gpiod_set_raw_value
i2c_add_numbered_adapter
i2c_generic_scl_recovery
i2c_recover_bus
@@ -1117,6 +1125,13 @@
# required by imx8mp-ldb.ko
devm_of_phy_get
+# required by imx_rpmsg.ko
+ mbox_free_channel
+ mbox_request_channel_byname
+ mbox_send_message
+ of_reserved_mem_device_release
+ vring_transport_features
+
# required by imx_rpmsg_tty.ko
print_hex_dump
put_tty_driver
@@ -1132,30 +1147,6 @@
tty_std_termios
tty_unregister_driver
-# required by imx_rproc.ko
- mbox_free_channel
- mbox_request_channel_byname
- mbox_send_message
- of_phandle_iterator_init
- of_phandle_iterator_next
- of_reserved_mem_lookup
- reset_control_status
- rproc_add
- rproc_add_carveout
- rproc_alloc
- rproc_coredump_add_segment
- rproc_da_to_va
- rproc_del
- rproc_elf_find_loaded_rsc_table
- rproc_elf_get_boot_addr
- rproc_elf_load_rsc_table
- rproc_elf_load_segments
- rproc_elf_sanity_check
- rproc_free
- rproc_mem_entry_init
- rproc_of_resm_mem_entry_init
- rproc_vq_interrupt
-
# required by imxdrm.ko
component_bind_all
component_master_add_with_match
@@ -1225,13 +1216,11 @@
match_token
mutex_is_locked
notify_change
- override_creds
pagecache_get_page
path_get
path_put
__put_cred
register_filesystem
- revert_creds
set_anon_super
sget
simple_getattr
@@ -1276,6 +1265,9 @@
i2c_new_dummy
regmap_bulk_read
+# required by lpa_ctrl.ko
+ sysfs_create_groups
+
# required by moal.ko
alloc_netdev_mqs
__alloc_skb
@@ -1626,7 +1618,7 @@
# required by snd-soc-fsl-dsp.ko
dev_pm_domain_attach_by_id
- __memset_io
+ of_count_phandle_with_args
of_irq_get
pm_system_wakeup
sysfs_streq
@@ -1634,7 +1626,6 @@
# required by snd-soc-fsl-easrc.ko
completion_done
- gcd
snd_pcm_format_big_endian
snd_pcm_format_linear
snd_pcm_format_unsigned
@@ -1643,7 +1634,6 @@
# required by snd-soc-fsl-micfil.ko
kobject_uevent_env
- kstrtoull
snd_soc_get_volsw_sx
snd_soc_info_volsw_sx
snd_soc_put_volsw_sx
@@ -1666,9 +1656,6 @@
snd_pcm_hw_constraint_eld
snd_soc_jack_report
-# required by snd-soc-imx-rpmsg.ko
- of_reserved_mem_device_init_by_idx
-
# required by snd-soc-imx-wm8960.ko
gpiod_get_raw_value_cansleep
of_parse_phandle_with_fixed_args
@@ -1684,6 +1671,22 @@
# required by snd-soc-rpmsg-cs42xx8.ko
regcache_cache_bypass
+# required by snd-soc-rpmsg-imx-pcm512x.ko
+ i2c_get_adapter
+ i2c_smbus_read_byte
+ snd_soc_dai_set_bclk_ratio
+ snd_soc_get_pcm_runtime
+ snd_soc_limit_volume
+ snd_soc_unregister_card
+
+# required by snd-soc-rpmsg-pcm512x.ko
+ devm_regulator_register_notifier
+ snd_ctl_boolean_stereo_info
+ snd_interval_ranges
+ snd_pcm_hw_constraint_ratnums
+ snd_pcm_hw_rule_add
+ snd_soc_params_to_frame_size
+
# required by snd-soc-simple-card-utils.ko
devm_get_clk_from_child
devm_kasprintf
@@ -1692,14 +1695,15 @@
snd_soc_dapm_get_pin_switch
snd_soc_dapm_info_pin_switch
snd_soc_dapm_put_pin_switch
- snd_soc_of_parse_audio_simple_widgets
- snd_soc_of_parse_daifmt
# required by snd-soc-simple-card.ko
snd_soc_of_get_dai_name
snd_soc_of_parse_node_prefix
snd_soc_of_parse_tdm_slot
+# required by snd-soc-tpa6130a2.ko
+ devm_gpio_request
+
# required by snvs_pwrkey.ko
devm_input_allocate_device
pm_relax
@@ -1763,11 +1767,7 @@
panic_notifier_list
# required by trusty-virtio.ko
- register_virtio_device
unregister_virtio_device
- vring_del_virtqueue
- vring_interrupt
- vring_new_virtqueue
# required by trusty.ko
atomic_notifier_call_chain
diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom
index af413ee22491..13187bc671f8 100644
--- a/android/abi_gki_aarch64_qcom
+++ b/android/abi_gki_aarch64_qcom
@@ -45,10 +45,12 @@
backlight_device_unregister
bin2hex
__bitmap_clear
+ bitmap_find_free_region
bitmap_find_next_zero_area_off
bitmap_free
bitmap_parselist
bitmap_print_to_pagebuf
+ bitmap_release_region
__bitmap_set
__bitmap_subset
bitmap_zalloc
@@ -1802,6 +1804,7 @@
__pm_runtime_use_autosuspend
__pm_stay_awake
pm_stay_awake
+ pm_system_cancel_wakeup
pm_system_wakeup
pm_wakeup_dev_event
pm_wakeup_ws_event
@@ -2022,6 +2025,7 @@
rpmsg_set_signals
rpmsg_trysend
rpmsg_unregister_device
+ rtc_add_group
rtc_class_close
rtc_class_open
rtc_read_time
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 5e056470c7f4..d67e7d8ff600 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -1388,7 +1388,7 @@ static void device_links_purge(struct device *dev)
return;
mutex_lock(&wfs_lock);
- list_del(&dev->links.needs_suppliers);
+ list_del_init(&dev->links.needs_suppliers);
mutex_unlock(&wfs_lock);
/*
diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
index 911f1e85d44c..ffda3dad256a 100644
--- a/drivers/base/power/wakeup.c
+++ b/drivers/base/power/wakeup.c
@@ -922,6 +922,7 @@ void pm_system_cancel_wakeup(void)
{
atomic_dec_if_positive(&pm_abort_suspend);
}
+EXPORT_SYMBOL_GPL(pm_system_cancel_wakeup);
void pm_wakeup_clear(bool reset)
{
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index a9fc831eba60..bc4618ae9c5f 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -4041,7 +4041,7 @@ static void hwsim_virtio_rx_work(struct work_struct *work)
}
vq = hwsim_vqs[HWSIM_VQ_RX];
sg_init_one(sg, skb->head, skb_end_offset(skb));
- err = virtqueue_add_inbuf(vq, sg, 1, skb, GFP_KERNEL);
+ err = virtqueue_add_inbuf(vq, sg, 1, skb, GFP_ATOMIC);
if (WARN(err, "virtqueue_add_inbuf returned %d\n", err))
nlmsg_free(skb);
else
diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c
index ce92ae227aa1..a08568c85126 100644
--- a/drivers/remoteproc/remoteproc_core.c
+++ b/drivers/remoteproc/remoteproc_core.c
@@ -445,7 +445,7 @@ static void rproc_rvdev_release(struct device *dev)
/**
* rproc_handle_vdev() - handle a vdev fw resource
* @rproc: the remote processor
- * @rsc: the vring resource descriptor
+ * ptr: the vring resource descriptor
* @avail: size of available data (for sanity checking the image)
*
* This resource entry requests the host to statically register a virtio
@@ -469,9 +469,10 @@ static void rproc_rvdev_release(struct device *dev)
*
* Returns 0 on success, or an appropriate error code otherwise
*/
-static int rproc_handle_vdev(struct rproc *rproc, struct fw_rsc_vdev *rsc,
+static int rproc_handle_vdev(struct rproc *rproc, void *ptr,
int offset, int avail)
{
+ struct fw_rsc_vdev *rsc = ptr;
struct device *dev = &rproc->dev;
struct rproc_vdev *rvdev;
int i, ret;
@@ -587,7 +588,7 @@ void rproc_vdev_release(struct kref *ref)
/**
* rproc_handle_trace() - handle a shared trace buffer resource
* @rproc: the remote processor
- * @rsc: the trace resource descriptor
+ * @ptr: the trace resource descriptor
* @avail: size of available data (for sanity checking the image)
*
* In case the remote processor dumps trace logs into memory,
@@ -600,9 +601,10 @@ void rproc_vdev_release(struct kref *ref)
*
* Returns 0 on success, or an appropriate error code otherwise
*/
-static int rproc_handle_trace(struct rproc *rproc, struct fw_rsc_trace *rsc,
+static int rproc_handle_trace(struct rproc *rproc, void *ptr,
int offset, int avail)
{
+ struct fw_rsc_trace *rsc = ptr;
struct rproc_debug_trace *trace;
struct device *dev = &rproc->dev;
char name[15];
@@ -652,7 +654,7 @@ static int rproc_handle_trace(struct rproc *rproc, struct fw_rsc_trace *rsc,
/**
* rproc_handle_devmem() - handle devmem resource entry
* @rproc: remote processor handle
- * @rsc: the devmem resource entry
+ * @ptr: the devmem resource entry
* @avail: size of available data (for sanity checking the image)
*
* Remote processors commonly need to access certain on-chip peripherals.
@@ -674,9 +676,10 @@ static int rproc_handle_trace(struct rproc *rproc, struct fw_rsc_trace *rsc,
* and not allow firmwares to request access to physical addresses that
* are outside those ranges.
*/
-static int rproc_handle_devmem(struct rproc *rproc, struct fw_rsc_devmem *rsc,
+static int rproc_handle_devmem(struct rproc *rproc, void *ptr,
int offset, int avail)
{
+ struct fw_rsc_devmem *rsc = ptr;
struct rproc_mem_entry *mapping;
struct device *dev = &rproc->dev;
int ret;
@@ -853,7 +856,7 @@ static int rproc_release_carveout(struct rproc *rproc,
/**
* rproc_handle_carveout() - handle phys contig memory allocation requests
* @rproc: rproc handle
- * @rsc: the resource entry
+ * @ptr: the resource entry
* @avail: size of available data (for image validation)
*
* This function will handle firmware requests for allocation of physically
@@ -869,9 +872,9 @@ static int rproc_release_carveout(struct rproc *rproc,
* pressure is important; it may have a substantial impact on performance.
*/
static int rproc_handle_carveout(struct rproc *rproc,
- struct fw_rsc_carveout *rsc,
- int offset, int avail)
+ void *ptr, int offset, int avail)
{
+ struct fw_rsc_carveout *rsc = ptr;
struct rproc_mem_entry *carveout;
struct device *dev = &rproc->dev;
@@ -1028,10 +1031,10 @@ EXPORT_SYMBOL(rproc_of_resm_mem_entry_init);
* enum fw_resource_type.
*/
static rproc_handle_resource_t rproc_loading_handlers[RSC_LAST] = {
- [RSC_CARVEOUT] = (rproc_handle_resource_t)rproc_handle_carveout,
- [RSC_DEVMEM] = (rproc_handle_resource_t)rproc_handle_devmem,
- [RSC_TRACE] = (rproc_handle_resource_t)rproc_handle_trace,
- [RSC_VDEV] = (rproc_handle_resource_t)rproc_handle_vdev,
+ [RSC_CARVEOUT] = rproc_handle_carveout,
+ [RSC_DEVMEM] = rproc_handle_devmem,
+ [RSC_TRACE] = rproc_handle_trace,
+ [RSC_VDEV] = rproc_handle_vdev,
};
/* handle firmware resource entries before booting the remote processor */
diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c
index e22f91695b04..6ac8f1e39796 100644
--- a/drivers/scsi/ufs/ufs-mediatek.c
+++ b/drivers/scsi/ufs/ufs-mediatek.c
@@ -582,7 +582,7 @@ static void ufs_mtk_vreg_set_lpm(struct ufs_hba *hba, bool lpm)
if (!hba->vreg_info.vccq2 || !hba->vreg_info.vcc)
return;
- if (lpm & !hba->vreg_info.vcc->enabled)
+ if (lpm && !hba->vreg_info.vcc->enabled)
regulator_set_mode(hba->vreg_info.vccq2->reg,
REGULATOR_MODE_IDLE);
else if (!lpm)
diff --git a/drivers/scsi/ufs/ufshcd-crypto.c b/drivers/scsi/ufs/ufshcd-crypto.c
index 43d105bc0e26..f667a946c740 100644
--- a/drivers/scsi/ufs/ufshcd-crypto.c
+++ b/drivers/scsi/ufs/ufshcd-crypto.c
@@ -159,7 +159,7 @@ out:
static void ufshcd_clear_keyslot(struct ufs_hba *hba, int slot)
{
- union ufs_crypto_cfg_entry cfg = { 0 };
+ union ufs_crypto_cfg_entry cfg = {};
int err;
err = ufshcd_program_key(hba, &cfg, slot);
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 704c3a4eebe1..918d4bdcfdf8 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -8847,7 +8847,8 @@ int ufshcd_system_suspend(struct ufs_hba *hba)
if ((ufs_get_pm_lvl_to_dev_pwr_mode(hba->spm_lvl) ==
hba->curr_dev_pwr_mode) &&
(ufs_get_pm_lvl_to_link_pwr_state(hba->spm_lvl) ==
- hba->uic_link_state))
+ hba->uic_link_state) &&
+ !hba->dev_info.b_rpm_dev_flush_capable)
goto out;
if (pm_runtime_suspended(hba->dev)) {
@@ -9022,6 +9023,7 @@ void ufshcd_remove(struct ufs_hba *hba)
ufs_bsg_remove(hba);
ufs_sysfs_remove_nodes(hba->dev);
scsi_remove_host(hba->host);
+ destroy_workqueue(hba->eh_wq);
/* disable interrupts */
ufshcd_disable_intr(hba, hba->intr_mask);
ufshcd_hba_stop(hba, true);
@@ -9293,6 +9295,7 @@ out_remove_scsi_host:
exit_gating:
ufshcd_exit_clk_scaling(hba);
ufshcd_exit_clk_gating(hba);
+ destroy_workqueue(hba->eh_wq);
out_disable:
hba->is_irq_enabled = false;
ufshcd_hba_exit(hba);
diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
index 13783dc5a0b4..c794fdc2fa10 100644
--- a/drivers/scsi/ufs/ufshcd.h
+++ b/drivers/scsi/ufs/ufshcd.h
@@ -1266,6 +1266,10 @@ static inline void ufshcd_vops_device_reset(struct ufs_hba *hba)
if (hba->vops && hba->vops->device_reset) {
hba->vops->device_reset(hba);
ufshcd_set_ufs_dev_active(hba);
+ if (ufshcd_is_wb_allowed(hba)) {
+ hba->wb_enabled = false;
+ hba->wb_buf_flush_enabled = false;
+ }
ufshcd_update_reg_hist(&hba->ufs_stats.dev_reset, 0);
}
}
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 0070253199b1..5be1c5bc72bb 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -3843,6 +3843,7 @@ free_bio_info:
#ifdef CONFIG_UNICODE
utf8_unload(sb->s_encoding);
+ sb->s_encoding = NULL;
#endif
free_options:
#ifdef CONFIG_QUOTA
diff --git a/fs/incfs/format.c b/fs/incfs/format.c
index 193cd8f23792..d326415fc6de 100644
--- a/fs/incfs/format.c
+++ b/fs/incfs/format.c
@@ -549,7 +549,6 @@ int incfs_read_file_header(struct backing_file_context *bfc,
if (!bfc || !first_md_off)
return -EFAULT;
- LOCK_REQUIRED(bfc->bc_mutex);
bytes_read = incfs_kread(bfc, &fh, sizeof(fh), 0);
if (bytes_read < 0)
return bytes_read;
diff --git a/fs/incfs/main.c b/fs/incfs/main.c
index 7c4ec4fa13d8..0fde230d5337 100644
--- a/fs/incfs/main.c
+++ b/fs/incfs/main.c
@@ -30,8 +30,18 @@ static ssize_t corefs_show(struct kobject *kobj,
static struct kobj_attribute corefs_attr = __ATTR_RO(corefs);
+static ssize_t mounter_context_for_backing_rw_show(struct kobject *kobj,
+ struct kobj_attribute *attr, char *buff)
+{
+ return snprintf(buff, PAGE_SIZE, "supported\n");
+}
+
+static struct kobj_attribute mounter_context_for_backing_rw_attr =
+ __ATTR_RO(mounter_context_for_backing_rw);
+
static struct attribute *attributes[] = {
&corefs_attr.attr,
+ &mounter_context_for_backing_rw_attr.attr,
NULL,
};
diff --git a/include/net/udp.h b/include/net/udp.h
index e55d5f765807..9ab282cbff20 100644
--- a/include/net/udp.h
+++ b/include/net/udp.h
@@ -171,7 +171,7 @@ struct sk_buff *udp_gro_receive(struct list_head *head, struct sk_buff *skb,
int udp_gro_complete(struct sk_buff *skb, int nhoff, udp_lookup_t lookup);
struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb,
- netdev_features_t features);
+ netdev_features_t features, bool is_ipv6);
static inline struct udphdr *udp_gro_udphdr(struct sk_buff *skb)
{
diff --git a/kernel/.gitignore b/kernel/.gitignore
index 34d1e77ee9df..16670321c138 100644
--- a/kernel/.gitignore
+++ b/kernel/.gitignore
@@ -1,6 +1,7 @@
#
# Generated files
#
+config_data
kheaders.md5
timeconst.h
hz.bc
diff --git a/kernel/Makefile b/kernel/Makefile
index 45bf07cb28f3..54a4b3311786 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -127,10 +127,15 @@ KCOV_INSTRUMENT_stackleak.o := n
$(obj)/configs.o: $(obj)/config_data.gz
-targets += config_data.gz
-$(obj)/config_data.gz: $(KCONFIG_CONFIG) FORCE
+targets += config_data config_data.gz
+$(obj)/config_data.gz: $(obj)/config_data FORCE
$(call if_changed,gzip)
+filechk_cat = cat $<
+
+$(obj)/config_data: $(KCONFIG_CONFIG) FORCE
+ $(call filechk,cat)
+
$(obj)/kheaders.o: $(obj)/kheaders_data.tar.xz
quiet_cmd_genikh = CHK $(obj)/kheaders_data.tar.xz
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index b062ae335e0c..4c134e44741c 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -6085,21 +6085,21 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, int t
static int
select_idle_capacity(struct task_struct *p, struct sched_domain *sd, int target)
{
- unsigned long best_cap = 0;
+ unsigned long task_util, best_cap = 0;
int cpu, best_cpu = -1;
struct cpumask *cpus;
- sync_entity_load_avg(&p->se);
-
cpus = this_cpu_cpumask_var_ptr(select_idle_mask);
cpumask_and(cpus, sched_domain_span(sd), p->cpus_ptr);
+ task_util = uclamp_task_util(p);
+
for_each_cpu_wrap(cpu, cpus, target) {
unsigned long cpu_cap = capacity_of(cpu);
if (!available_idle_cpu(cpu) && !sched_idle_cpu(cpu))
continue;
- if (task_fits_capacity(p, cpu_cap))
+ if (fits_capacity(task_util, cpu_cap))
return cpu;
if (cpu_cap > best_cap) {
@@ -6111,14 +6111,60 @@ select_idle_capacity(struct task_struct *p, struct sched_domain *sd, int target)
return best_cpu;
}
+static inline bool asym_fits_capacity(int task_util, int cpu)
+{
+ if (static_branch_unlikely(&sched_asym_cpucapacity))
+ return fits_capacity(task_util, capacity_of(cpu));
+
+ return true;
+}
+
/*
* Try and locate an idle core/thread in the LLC cache domain.
*/
static int select_idle_sibling(struct task_struct *p, int prev, int target)
{
struct sched_domain *sd;
+ unsigned long task_util;
int i, recent_used_cpu;
+ /*
+ * On asymmetric system, update task utilization because we will check
+ * that the task fits with cpu's capacity.
+ */
+ if (static_branch_unlikely(&sched_asym_cpucapacity)) {
+ sync_entity_load_avg(&p->se);
+ task_util = uclamp_task_util(p);
+ }
+
+ if ((available_idle_cpu(target) || sched_idle_cpu(target)) &&
+ asym_fits_capacity(task_util, target))
+ return target;
+
+ /*
+ * If the previous CPU is cache affine and idle, don't be stupid:
+ */
+ if (prev != target && cpus_share_cache(prev, target) &&
+ (available_idle_cpu(prev) || sched_idle_cpu(prev)) &&
+ asym_fits_capacity(task_util, prev))
+ return prev;
+
+ /* Check a recently used CPU as a potential idle candidate: */
+ recent_used_cpu = p->recent_used_cpu;
+ if (recent_used_cpu != prev &&
+ recent_used_cpu != target &&
+ cpus_share_cache(recent_used_cpu, target) &&
+ (available_idle_cpu(recent_used_cpu) || sched_idle_cpu(recent_used_cpu)) &&
+ cpumask_test_cpu(p->recent_used_cpu, p->cpus_ptr) &&
+ asym_fits_capacity(task_util, recent_used_cpu)) {
+ /*
+ * Replace recent_used_cpu with prev as it is a potential
+ * candidate for the next wake:
+ */
+ p->recent_used_cpu = prev;
+ return recent_used_cpu;
+ }
+
/*
* For asymmetric CPU capacity systems, our domain of interest is
* sd_asym_cpucapacity rather than sd_llc.
@@ -6133,37 +6179,10 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target)
* SD_ASYM_CPUCAPACITY. These should follow the usual symmetric
* capacity path.
*/
- if (!sd)
- goto symmetric;
-
- i = select_idle_capacity(p, sd, target);
- return ((unsigned)i < nr_cpumask_bits) ? i : target;
- }
-
-symmetric:
- if (available_idle_cpu(target) || sched_idle_cpu(target))
- return target;
-
- /*
- * If the previous CPU is cache affine and idle, don't be stupid:
- */
- if (prev != target && cpus_share_cache(prev, target) &&
- (available_idle_cpu(prev) || sched_idle_cpu(prev)))
- return prev;
-
- /* Check a recently used CPU as a potential idle candidate: */
- recent_used_cpu = p->recent_used_cpu;
- if (recent_used_cpu != prev &&
- recent_used_cpu != target &&
- cpus_share_cache(recent_used_cpu, target) &&
- (available_idle_cpu(recent_used_cpu) || sched_idle_cpu(recent_used_cpu)) &&
- cpumask_test_cpu(p->recent_used_cpu, p->cpus_ptr)) {
- /*
- * Replace recent_used_cpu with prev as it is a potential
- * candidate for the next wake:
- */
- p->recent_used_cpu = prev;
- return recent_used_cpu;
+ if (sd) {
+ i = select_idle_capacity(p, sd, target);
+ return ((unsigned)i < nr_cpumask_bits) ? i : target;
+ }
}
sd = rcu_dereference(per_cpu(sd_llc, target));
diff --git a/mm/cma.c b/mm/cma.c
index e1bf400016b3..def0df5a32f8 100644
--- a/mm/cma.c
+++ b/mm/cma.c
@@ -39,7 +39,6 @@
struct cma cma_areas[MAX_CMA_AREAS];
unsigned cma_area_count;
-static DEFINE_MUTEX(cma_mutex);
phys_addr_t cma_get_base(const struct cma *cma)
{
@@ -455,10 +454,9 @@ struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align,
mutex_unlock(&cma->lock);
pfn = cma->base_pfn + (bitmap_no << cma->order_per_bit);
- mutex_lock(&cma_mutex);
ret = alloc_contig_range(pfn, pfn + count, MIGRATE_CMA,
GFP_KERNEL | (no_warn ? __GFP_NOWARN : 0));
- mutex_unlock(&cma_mutex);
+
if (ret == 0) {
page = pfn_to_page(pfn);
break;
diff --git a/net/core/ethtool.c b/net/core/ethtool.c
index cd9bc67381b2..99ce0ccc66df 100644
--- a/net/core/ethtool.c
+++ b/net/core/ethtool.c
@@ -92,6 +92,7 @@ static const char netdev_features_strings[NETDEV_FEATURE_COUNT][ETH_GSTRING_LEN]
[NETIF_F_GSO_SCTP_BIT] = "tx-sctp-segmentation",
[NETIF_F_GSO_ESP_BIT] = "tx-esp-segmentation",
[NETIF_F_GSO_UDP_L4_BIT] = "tx-udp-segmentation",
+ [NETIF_F_GSO_FRAGLIST_BIT] = "tx-gso-list",
[NETIF_F_FCOE_CRC_BIT] = "tx-checksum-fcoe-crc",
[NETIF_F_SCTP_CRC_BIT] = "tx-checksum-sctp",
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 57d05125e638..72aba9b88c71 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -3676,7 +3676,8 @@ struct sk_buff *skb_segment_list(struct sk_buff *skb,
unsigned int delta_truesize = 0;
unsigned int delta_len = 0;
struct sk_buff *tail = NULL;
- struct sk_buff *nskb;
+ struct sk_buff *nskb, *tmp;
+ int err;
skb_push(skb, -skb_network_offset(skb) + offset);
@@ -3686,11 +3687,28 @@ struct sk_buff *skb_segment_list(struct sk_buff *skb,
nskb = list_skb;
list_skb = list_skb->next;
+ err = 0;
+ if (skb_shared(nskb)) {
+ tmp = skb_clone(nskb, GFP_ATOMIC);
+ if (tmp) {
+ consume_skb(nskb);
+ nskb = tmp;
+ err = skb_unclone(nskb, GFP_ATOMIC);
+ } else {
+ err = -ENOMEM;
+ }
+ }
+
if (!tail)
skb->next = nskb;
else
tail->next = nskb;
+ if (unlikely(err)) {
+ nskb->next = list_skb;
+ goto err_linearize;
+ }
+
tail = nskb;
delta_len += nskb->len;
diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c
index 4c3cb317b0f9..e07a37b052a1 100644
--- a/net/ipv4/udp_offload.c
+++ b/net/ipv4/udp_offload.c
@@ -184,8 +184,67 @@ out_unlock:
}
EXPORT_SYMBOL(skb_udp_tunnel_segment);
+static void __udpv4_gso_segment_csum(struct sk_buff *seg,
+ __be32 *oldip, __be32 *newip,
+ __be16 *oldport, __be16 *newport)
+{
+ struct udphdr *uh;
+ struct iphdr *iph;
+
+ if (*oldip == *newip && *oldport == *newport)
+ return;
+
+ uh = udp_hdr(seg);
+ iph = ip_hdr(seg);
+
+ if (uh->check) {
+ inet_proto_csum_replace4(&uh->check, seg, *oldip, *newip,
+ true);
+ inet_proto_csum_replace2(&uh->check, seg, *oldport, *newport,
+ false);
+ if (!uh->check)
+ uh->check = CSUM_MANGLED_0;
+ }
+ *oldport = *newport;
+
+ csum_replace4(&iph->check, *oldip, *newip);
+ *oldip = *newip;
+}
+
+static struct sk_buff *__udpv4_gso_segment_list_csum(struct sk_buff *segs)
+{
+ struct sk_buff *seg;
+ struct udphdr *uh, *uh2;
+ struct iphdr *iph, *iph2;
+
+ seg = segs;
+ uh = udp_hdr(seg);
+ iph = ip_hdr(seg);
+
+ if ((udp_hdr(seg)->dest == udp_hdr(seg->next)->dest) &&
+ (udp_hdr(seg)->source == udp_hdr(seg->next)->source) &&
+ (ip_hdr(seg)->daddr == ip_hdr(seg->next)->daddr) &&
+ (ip_hdr(seg)->saddr == ip_hdr(seg->next)->saddr))
+ return segs;
+
+ while ((seg = seg->next)) {
+ uh2 = udp_hdr(seg);
+ iph2 = ip_hdr(seg);
+
+ __udpv4_gso_segment_csum(seg,
+ &iph2->saddr, &iph->saddr,
+ &uh2->source, &uh->source);
+ __udpv4_gso_segment_csum(seg,
+ &iph2->daddr, &iph->daddr,
+ &uh2->dest, &uh->dest);
+ }
+
+ return segs;
+}
+
static struct sk_buff *__udp_gso_segment_list(struct sk_buff *skb,
- netdev_features_t features)
+ netdev_features_t features,
+ bool is_ipv6)
{
unsigned int mss = skb_shinfo(skb)->gso_size;
@@ -195,11 +254,11 @@ static struct sk_buff *__udp_gso_segment_list(struct sk_buff *skb,
udp_hdr(skb)->len = htons(sizeof(struct udphdr) + mss);
- return skb;
+ return is_ipv6 ? skb : __udpv4_gso_segment_list_csum(skb);
}
struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb,
- netdev_features_t features)
+ netdev_features_t features, bool is_ipv6)
{
struct sock *sk = gso_skb->sk;
unsigned int sum_truesize = 0;
@@ -211,7 +270,7 @@ struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb,
__be16 newlen;
if (skb_shinfo(gso_skb)->gso_type & SKB_GSO_FRAGLIST)
- return __udp_gso_segment_list(gso_skb, features);
+ return __udp_gso_segment_list(gso_skb, features, is_ipv6);
mss = skb_shinfo(gso_skb)->gso_size;
if (gso_skb->len <= sizeof(*uh) + mss)
@@ -325,7 +384,7 @@ static struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb,
goto out;
if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4)
- return __udp_gso_segment(skb, features);
+ return __udp_gso_segment(skb, features, false);
mss = skb_shinfo(skb)->gso_size;
if (unlikely(skb->len <= mss))
diff --git a/net/ipv6/udp_offload.c b/net/ipv6/udp_offload.c
index 7a46bd33fa2f..6e06c90fa318 100644
--- a/net/ipv6/udp_offload.c
+++ b/net/ipv6/udp_offload.c
@@ -46,7 +46,7 @@ static struct sk_buff *udp6_ufo_fragment(struct sk_buff *skb,
goto out;
if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_L4)
- return __udp_gso_segment(skb, features);
+ return __udp_gso_segment(skb, features, true);
/* Do software UFO. Complete and fill in the UDP checksum as HW cannot
* do checksum of UDP packets sent as multiple IP fragments.
diff --git a/net/xfrm/xfrm_compat.c b/net/xfrm/xfrm_compat.c
index c1dee0696dfb..aacbf250a25e 100644
--- a/net/xfrm/xfrm_compat.c
+++ b/net/xfrm/xfrm_compat.c
@@ -234,6 +234,7 @@ static int xfrm_xlate64_attr(struct sk_buff *dst, const struct nlattr *src)
case XFRMA_PAD:
/* Ignore */
return 0;
+ case XFRMA_UNSPEC:
case XFRMA_ALG_AUTH:
case XFRMA_ALG_CRYPT:
case XFRMA_ALG_COMP:
@@ -387,7 +388,7 @@ static int xfrm_attr_cpy32(void *dst, size_t *pos, const struct nlattr *src,
memcpy(nla, src, nla_attr_size(copy_len));
nla->nla_len = nla_attr_size(payload);
- *pos += nla_attr_size(payload);
+ *pos += nla_attr_size(copy_len);
nlmsg->nlmsg_len += nla->nla_len;
memset(dst + *pos, 0, payload - copy_len);
@@ -563,7 +564,7 @@ static struct nlmsghdr *xfrm_user_rcv_msg_compat(const struct nlmsghdr *h32,
return NULL;
len += NLMSG_HDRLEN;
- h64 = kvmalloc(len, GFP_KERNEL | __GFP_ZERO);
+ h64 = kvmalloc(len, GFP_KERNEL);
if (!h64)
return ERR_PTR(-ENOMEM);
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 83a8cbf2a37a..8bb052bb137e 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -2381,8 +2381,10 @@ int xfrm_user_policy(struct sock *sk, int optname, u8 __user *optval, int optlen
if (in_compat_syscall()) {
struct xfrm_translator *xtr = xfrm_get_translator();
- if (!xtr)
+ if (!xtr) {
+ kfree(data);
return -EOPNOTSUPP;
+ }
err = xtr->xlate_user_policy_sockptr(&data, optlen);
xfrm_put_translator(xtr);
diff --git a/scripts/adjust_autoksyms.sh b/scripts/adjust_autoksyms.sh
index 2b366d945ccb..d8f6f9c63043 100755
--- a/scripts/adjust_autoksyms.sh
+++ b/scripts/adjust_autoksyms.sh
@@ -34,9 +34,6 @@ case "$KBUILD_VERBOSE" in
;;
esac
-# We need access to CONFIG_ symbols
-. include/config/auto.conf
-
# Generate a new symbol list file
$CONFIG_SHELL $srctree/scripts/gen_autoksyms.sh "$new_ksyms_file"